The official ISO-639-1 code for Indonesia is "id"; replaced this
problematic suffix with the ISO-639-2 3-letter code in the translation
field names (http://en.wikipedia.org/wiki/Indonesian_language).
in the tabbed admin script.
Javascript has a nasty semantic of moving initializers to the beginning of a block, thus
rewritting ``var a = a || b`` as ``var a; a = a || b``. With such a code, if ``a`` starts
as a global variable with some value, you could think that it would end up having the same
value, but it is actually first set to ``undefined`` at the beginning of the block and
then always set to ``b`` in the statement [1][2].
This is mostly of importance if you actually have more than one jQuery loaded.
For instance, this happens with Mezzanine -- first Grappelli-safe loads a copy, and calls
``$.noConflict`` thus storing its version as ``jQuery``, second is Django, loading another
copy and calling ``django.jQuery = jQuery.noConflict(true)``. So far so good, we have one
copy on ``jQuery`` and another on ``django.jQuery``; jQuery UI chooses to load itself onto
the ``jQuery`` (Grappelli) copy. But now runs the tabbed_translation_fields script, hiding
the jQuery with UI loaded at the very beggining of the first block, and a moment later
complaining that ``.tabs()`` or something else is not defined.
[1]: http://www.ecma-international.org/ecma-262/5.1/#sec-12.2 (note the first paragraph after the grammar)
[2]: http://stackoverflow.com/questions/500431/what-is-the-scope-of-variables-in-javascript (point 8)
Also:
- optimize fields to related model access
- more elegant way to access DefferedModel real class
- fix select_related rewriting and add some code to contemplate possible solutions
- update docs about select_related
- add 2 test for implemented features