Easymode : toolkit for making xml based flash websites¶
With easymode you can create backends for dynamic flash/flex websites. Easymode makes internationalization simple and outputs xml by default. To tailor the xml to your application, you can transform it using xslt templates, which easymode integrates.
For more info, look at Why does easymode exist?
Manual¶
- Release Notes
- Internationalization and localization of django models, with admin support
- Translation of database content using gettext
- Automatic generation of xml from models using xslt
- Admin support for model trees with more than 2 levels of related items
- Basic approval support for models
- Easymode settings
- Management Commands
- Easyfilters
- Middlewares
- Injecting extra data into the XSLT
The best way to learn how easymode works, is to read the above topics in sequence and then look at the example_app. If you have questions please send them to the mailing list at easymode@librelist.com.
Installation¶
You can download easymode from:
http://github.com/specialunderwear/django-easymode/downloads/
Or you can do:
pip install django-easymode
Or:
pip install -e git://github.com/specialunderwear/django-easymode.git#egg=easymode
Note the version number in the top left corner and use:
easy_install http://github.com/specialunderwear/django-easymode/tarball/[VERSION]
Which, if the version was v0.1.0 would become http://github.com/specialunderwear/django-easymode/tarball/v0.1.0.
If you want to use easymode’s xslt fascilities, make sure to install either lxml or libxslt.
If you want to make use of Basic approval support for models, make sure you’ve got django-reversion installed.
Requirements¶
Easymode requires python 2.6, furthermore the following packages must be installed:
- Django
The following packages might also be required, depending on what features you are using.
- lxml
- polib
- django-reversion
Example¶
Easymode comes with an example app which is available from github:
http://github.com/specialunderwear/django-easymode/
To run the example app, you must clone the repository, install the dependencies and initialize the database:
git clone http://github.com/specialunderwear/django-easymode.git
cd django-easymode
pip install -r requirements.txt
cd example
python manage.py syncdb
python manage.py loaddata example_data.xml
python manage.py runserver
open http://127.0.0.1:8000/
Unsupported django features¶
The following features, which django supports, are not supported by easymode:
unique_together
unique_for_date
,unique_for_month
,unique_for_year
django.contrib.admin.ModelAdmin.fields
, usedjango.contrib.admin.ModelAdmin.fieldsets
instead.- Inheritance for models is restricted to
abstract
base classes. This is a direct result of the fact thatOneToOneField
are not supported by the serializer. django.contrib.admin.ModelAdmin.prepopulated_fields
is not supported.
Most these features are not supported because the ammount of work to have them was greater than the benefit of having them. However, it could also be that I just didn’t need it yet.
Actionscript bindings¶
If you are developing flex or flash sites with easymode, you are invited to try out the new actionscript bindings at
http://github.com/specialunderwear/robotlegs-dungdungdung
These integrate object creation and databinding for easymode’s xml output.
Api docs¶
easymode.urls
easymode.i18n
easymode.i18n.decorators
easymode.i18n.admin.decorators
easymode.tree
easymode.tree.decorators
easymode.tree.query
easymode.tree.admin.relation
easymode.tree.introspection
easymode.xslt
easymode.xslt.response
easymode.easypublisher
easymode.easypublisher.admin
easymode.easypublisher.models
easymode.easypublisher.urls
easymode.easypublisher.response
easymode.easypublisher.utils
easymode.utils
easymode.utils.xmlutils
easymode.utils.languagecode
easymode.utils.polibext
easymode.utils.standin
easymode.utils.template
easymode.admin.utils
easymode.admin.models.fields
easymode.admin.forms.fields
easymode.debug
easymode.debug.middleware
Version naming convention¶
- Each update to the development status will increase the first digit. (eg beta or alpha or production ready)
- Each new feature will increase the second digit.
- Each bugfix or refactor will increase the last digit
- An update to a ‘big’ digit, resets the ‘smaller’ digits.