Djblets 0.8 Alpha 2 Release Notes¶
Release date: January 16, 2014
Made more progress toward Python 3 support.
Marked all human-readable strings for translation.
Switched code to use ugettext_lazy where appropriate.
Djblets will now compile and ship localization files as part of the package.
Improved the default labels for
RegistrationFormbasically had to have a custom template to be usable before, as the default labels were terrible. We now provide sane defaults, allowing it to be rendered with the default templates.
Removed many old functions and classes.
djblets.authwas from the Django pre-1.0 days, and are no longer necessary. This removes:
Added support for checkbox columns.
Checkbox columns allow for selecting one or more rows of items in the datagrid. The consumer can then act on those lines to perform batch operations.
This is based on work by Graeme Coupar.
Allow the datagrid header to be anchored while scrolling.
The datagrid contents can now scroll without scrolling the header. This makes it easier to see and manipulate columns without scrolling back to the top.
To make it independently scrollable, a height must be assigned to the datagrid element, and
datagrid.resizeToFitmust be called on resize.
Rewrote the Manage Extensions view.
This is a full rewrite that provides:
Fixes for several interaction issues with the page that broke in 0.8 alpha 1.
Dynamic updating when enabling or disabling an extension.
A button to rescan for extensions.
Better visual hints for enabled, disabled, and broken extensions.
Helpful error reporting when an extension fails to load, complete with a traceback.
Better shipped CSS for the page.
Added support for custom context processors.
Context processors provide new variables for all templates. This allows extensions to provide new ones that will work so long as the extension is enabled.
Added support for Django admin widgets in extension configuration pages.
Extension configuration pages can now make use of the same widgets a Django admin form can use. These include such useful widgets as
Added a signal to notify when an extension’s settings are saved.
djblets.extensions.signals.settings_savedsignal is now emitted whenever an extension’s settings are saved. This allows the extension to act immediately on any new settings.
Provided include paths for
Djblets will now provide a list of include paths based on all registered Django apps’ static directories. These can be used at runtime or package time to include
.lessfiles inside an extension’s
.lessfile, in order to reuse any definitions or macros the app may provide.
Provided global variables for
.lessfiles will now have access to some built-in global variables. By default, this includes
@STATIC_ROOT. These are available both at runtime and at package time.
These can be used to provide different styling based on, for instance, whether it’s running in debug mode or not.
Consumers of Djblets can provide additional global variables as well.
This requires LessCSS 1.5.1 or higher.
Added an optional
extensionparameter to custom middleware.
Custom middleware provided by an extension can now take an optional
extensionparameter, in order to be able to reference configuration or methods on the extension.
Added ref-counting to apps.
Apps provided or required by extensions are now reference-counted. This ensures that if two extensions list the same third-party app, disabling one extension won’t break the other.
Fixed breakages during initialization if an extension failed to load.
Fixed breakages with the extension list API when extensions failed to load.
Fixed evolving models provided by the extension.
Restructured much of
Much of the code in
djblets.utilhas been moved out into new modules. This introduces
Importing from the old locations will still work, but will log a deprecation warning. They will be removed in a future release.
Added support for custom “end” prefixes for
@blocktagno longer hard-codes “end” as the prefix for the end tag. Consumers can change it to a custom prefix, such as
end_, by calling:
json_dumps()now serializes lazy-localizable strings.
ugettext_lazy()can now be properly serialized using json_dumps, instead of throwing an error.
Added accessors for the buttons of an
Removed the fade in/out of the buttons, making the editor feel more snappy.
resizeevents when the field changes size.
Fixed clicking on an
inlineEditorwas created on a
<a/>element, clicking the element would cause the link to be followed instead of opening the editor.
Fixed sizing when using
inlineEditoron an element with a custom text-align CSS property.
Fixed fading the edit icon in after editing was completed.
Removed the default z-indexes for
It is now up to the consumer to decide what the appropriate z-indexes should be.
Added new arguments and better heuristics to
positionToSidehad trouble matching an element when positioned, say, to either above/below another element, when the left or right would be scrolled off-screen. It now does a better job of deciding the optimal place to position the element so it fits on-screen.
There are also new options for setting the distance and offset for the element in relation to the other element.
yDistancecontrols the distance in pixels between the elements.
yOffsetcontrol the offsets of the element in the direction not matched to a side, in order to shift the element by a few pixels for alignment.
fitOnScreencontrols whether the element must fit onto the screen.