version 0.8.0 beta 3 (5-March-2014): * Security Improvements: * Added CSRF protection to all remaining forms. It's expected now that all templates will make use of {% csrf_token %} when interfacing with a Djblets-provided form view. * djblets.datagrid: * Improved sorting of available dashboard columns. (Bug #3260) Columns can now take both `detailed_label` and `detailed_label_html` parameters. The `detailed_label` is intended to now be a human-readable label without any HTML that can be used for sorting purposes. If columns take advantage of this, they will be better sorted in the drop-down list of columns. * djblets.extensions: * Added an easier way of getting an extension's instance. Extensions often needed to jump through hoops to get the current instance of the extension in code where the instance couldn't directly be provided. There's now an `instance` parameter on the Extension subclass that will be set when the extension is enabled. Extension code can access this to get the current running instance of the extension without ever needing to use the ExtensionMgr. * Added a `settings` attribute on SettingsForm. SettingsForm subclasses can now access a `settings` attribute that points to the extension settings that will be used. This is meant to be used instead of the previously undocumented `siteconfig` attribute. * Added support for extra context to TemplateHook. TemplateHook can now take an `extra_context` parameter containing data that will be passed to the template. Subclasses can also override get_extra_context() to return any additional dynamically-computed data that should be passed to the template. * Fixed bugs using static bundles with apply_to. * Reduced the number of queries used when loading extensions. * djblets.log: * log_timed now properly represents microseconds. The microseconds were missing the zero padding, causing operations to appear to take longer than they really did.