|Version 5 (modified by rjwittams, 9 years ago) (diff)|
The new-admin branch contains a number of changes. All of these changes may be reverted (more likely with some than others) or further modified.
Manipulators have a new optional argument to their constructors: follow. The argument is a dictionary indicating which fields and related objects to extract in flatten_data and examine when saving the object.
The default set to follow is:
- Any fields without editable=False.
- Any related objects with edit_inline set on the ForeignKey relating to the class the manipulator is concerned with.
This is the set of fields shown by the admin.
Manipulators have a new method, flatten_data(). This takes the data from the existing object (or the defaults in the case of an AddManipulator) and turns it into a suitable form for an HTTP post. It must be called before creating the formfield wrapper is created.
The data from a post must have manipulator.do_html2python(new_data) called on it before it is used to repopulate a formfieldwrapper.
A new tag, called include, which is an improvement on ssi parsed. See #598.
Improved error reporting when debug is on. See #603. Also note that loaders must return a tuple of (source, filename) rather than just the source of a loaded template.
Admin converted to separate templates
The admin is now rendered using separate templates. These can be overloaded, meaning the admin is a bit easily customizable. Inline editing can use a custom template, reather than using edit_inline=meta.TABULAR or meta.SOURCE, just use a path to a template, eg edit_inline="edit_inline_horizontal".
This does require knowing the contents of the context for that template which is undocumented. Also this will probably change to a class to allow more flexibility, eg processing for style/grouping logic etc.