Euler-Lagrange equations and partial derivatives



This has come up before but no clearly satisfactory answer came out of it:

http://www.ma.utexas.edu/pipermail/maxima/2007/008593.html

I want to derive some Euler-Lagrange equations of motion for a system. 
After fooling around for a while, I just realized that sometimes I need 
maxima to take partials and sometimes I need maxima to take total 
derivatives. I was fooled by the fact that without dependencies, diff is 
basically a partial derivative. However, as soon as I started adding 
dependencies, I fixed one problem and broke the other....

In Euler-Lagrange equations we need to mix these things.

diff(partdiff(foo, bardot),t) - partdiff(foo,bar) = 0

where only the "diff" should take total derivatives, and the 
non-existent partdiff should do partials only. Unfortunately it is not 
easily possible (or at least not obvious how) to mix partials and total 
derivatives in maxima. Does anyone have any suggestions about how to go 
about it?