Fixes compatibity with django 1.7. Use setuptools instead of distutils.
Fixed Django 1.5 template requirements for admin media.
Fixes I18n for models with tuple permissions. Allow custom admin class for register_all. fixes wrong import in easymode.tree.admin.forms.
This release fixes most incompatibilities of easymode with django 1.4. Most importantly, it fixes i18n. This release is therefor meant to be used with django 1.4.
Easymode is now moving towards the 1.0 release. I took the liberty of removing code whose usefulness was dubious and also refactor mercilessly. You will also find some very nice new features in this release!
That being said, you can not simply update and run an existing application on this release!
Backward incompatible changes:
- The names of localized table columns are constructed differently now. Upgrading means migrating all your column names!
- Easypublisher was removed, because it was too hard to maintain.
- All xml related code moved to the package easmode.tree.xml.
- New tree module, which uses real inlines See Admin support for model trees with more than 2 levels of related items.
- You can now hook into xml serialization and have custom serialization for both your models as your custom model fields See When the standard serializer is not enough.
Fields marked for translation with
I18ncan now be sorted on in the admin when they are included in
Order_by now works on translated fields with 5 letter locales:
from django.utils.languagecode import get_real_fieldname # this now works: MyModel.objects.order_by(get_real_fieldname('somefield', 'en-us'))
Models decorated with
I18n nolonger have problems deleting related models in
Easymode nolonger installs any packages automatically during installation, these should now be installed by hand.
super in an admin class decorated with L10n, will nolonger result in
buttons property, which can be used to override the tinymce buttons per field.
ForeignKeyAwareModelAdmin now properly handles parent_link that points to a model in a different app.
Added nofollow option to mark foreign keys that shouldn’t be followed by the serializer. Nofollow can be used to optimize easymodes queries when generating xml, see Exclude certain relations from being followed by the serializer.
- Fallbacks for translatable fields now also work when the first fallback is not the MSGID_LANGUAGE.
- You can now override the model form of an admin class decorated with L10n, just like normal admin classes.
- Easymode nolonger patches SubFieldBase. Fields that throw Exceptions when their descriptor is accessed can now also be internationalized using I18n. This includes ImageField and FileField.
- register_all will nolonger try to register abstract models
- search_fields is now supported for ModelAdmin classes that use L10n, however it will not let you access related items.
- You can now use fieldsets with the Can edit untranslated fields permission.
- Added support for creating new objects to easypublisher.
- Added tools to build preview functionality for drafts.
- Added filter that removes unpublished items from the xml.
- fixed error ‘cannot import name introspection’ caused by a circular import.
- Added option to exclude models from register_all
- Backwards incompatible change: easymode nolonger has any bindings for django-cms.
- Easymode will now show you the origin of a value, by displaying symbols next to
the input field in the admin:
- If a value is from the gettext catalog or fallback, easymode will display ∴°
- If a value is from the database, but the catalog has a different value, easymode will display ∴⁺ . You can hover over this symbol to see the catalog value.
- If a value is from the database and there is no conflict with the catalog, easymode will display only ∴
- Fixed bug where a value that evaluated to None was set with the
stringNone instead of
- fixes bug where get_localized_property would crash if settings did not have FALLBACK_LANGUAGES defined.
django.db.models.ForeignKeyare now handled by the default xslt (‘xslt/model-to-xml.xsl’).
- register_all will ignore models that are
django.contrib.admin.sites.AlreadyRegistered, but still register other models in the module.
- Fixed bug in recursion_depth context manager and added tests.
- Modified the xslt parser to use the file path instead of a string, so you can use xsl:include now.
- libxsltmod is nolonger a supported xslt engine
- Added util to add register all models in some module in one go.
- Easymode will nolonger complain about rosetta, polib and tinymce when none of the features that require these packages are used.
- Moved polib util to
easymode.utils.polibextto avoid name clashes
DiocoreTextFieldnow accepts cols and rows as parameters.
- The mechanism to add extra attributes to the xml produced by the serializer is now more generic. If a field has the ‘extra_attrs’ property, these attributes will be added as attributes to the field xml.
- Updated the serializer to support natural keys: http://docs.djangoproject.com/en/dev/topics/serialization/#natural-keys
- Now easymode can automatically serialize many to many fields. The recursion is guarded, and will let you know when you made a cyclic relation in you model tree. (see RECURSION_LIMIT).
SemaphoreExceptioninstead of doing sys.exit().
- When to_python returns a weird object on a field instead of a string, it is now converted to unicode before it is used as a msgid.
DiocoreHTMLFieldwill now also show a tinymce editor when it is not internationalized.
When there is a problem with monkey patching
django.db.models.SubfieldBaseeasymode will throw an exception. (Monkey patch fixes http://code.djangoproject.com/ticket/12568).
New field aded,
CSSField, which allows specification of css classes for a rich text field, the css classes will appear in the xml as:
- Django 1.2 is required for easymode as of v0.6.0.
get_real_fieldname()now returns a string instead of
unicode. This way a
dictcan be constructed using it’s results as keys, and the dict can be turned into keyword arguments of
filterwhen doing a query in a specific language.
- Small improvements in error handling when AUTO_CATALOG is
easymode.admin.models.fields.SafeTextField, a textfield which strips all cariage returns before saving, which is required when using Automatic catalog management.
- Updated django requirement to v1.1.2 because python 2.6.5 will otherwise make the unit tests fail.
- The example app now has a working fixture.
- Special admin widgets are nolonger discarded by easymode (issue #3)
- Some data files where not installed correctly by setup.py