Change Log¶
0.9.0 (unreleased)¶
Improved customisability of pagination template
Updated
UNDEFINED
to ensure it cannot be deep copied (it will always be the same instance)Updated the
Archivable.archive()
method to raiseProtectedError
andRestrictedError
asdelete()
would, when inbound foreign keys usingon_delete=models.PROTECT
oron_delete=models.RESTRICT
are detected against unarchived recordsUpdated
Loggable
to support tagging individual log entries and subsequently filtering retrieved log entries
0.8.0 (2022-12-12)¶
Added compatibility with Django versions 4.0 and 4.1
Dropped support for Django versions below 3.2
Updated
Auditable
andVersionable
to useself._state.adding
to differentiate between records being added or updatedSwitched development environment from Vagrant to Docker
Note: As of this release, TimeZoneField
/TimeZoneHelper
still require pytz
, despite the Django 4.0+ move to zoneinfo
.
0.7.2 (2021-10-05)¶
Removed public
djem.auth.get_user_log_verbosity()
function due to the apparent potential for causing cyclic imports, as observed in real world usage.
0.7.1 (2021-08-25)¶
Fixed readthedocs configuration
Fixed README badges
0.7 (2021-08-24)¶
A number of features are renamed. In all cases, the old names remain available for backwards compatibility, but are deprecated.
Dropped support for Python 2 (minimum supported version is 3.6)
Dropped support for Django versions below 2.2
Renamed
CommonInfoMixin
andCommonInfoQuerySet
toAuditable
andAuditableQuerySet
, respectivelyRenamed
ArchivableMixin
toArchivable
Renamed
VersioningMixin
andVersioningQuerySet
toVersionable
andVersionableQuerySet
, respectivelyRenamed
CommonInfoForm
toAuditableForm
Renamed
DJEM_COMMON_INFO_USER_REQUIRED_ON_SAVE
setting toDJEM_AUDITABLE_USER_REQUIRED_ON_SAVE
Added
UNDEFINED
constantAdded
Loggable
for instance-based loggingAdded
OLPMixin
for custom user models, to support advanced OLP-related functionalityAdded
MixableQuerySet
mixin for customQuerySet
classesAdded
DJEM_UNIVERSAL_OLP
settingAdded
DJEM_PERM_LOG_VERBOSITY
settingAdded
AuditableQuerySet
create()
,get_or_create()
, andupdate_or_create()
methodsAdded
ArchivableQuerySet
archived()
andunarchived()
methodsAdded
ajax_login_required()
decoratorAdded
UserSavable
mixin for formsRemoved default implementations of
_user_can_change_*()
and_user_can_delete_*()
onAuditable
- this was far too specific a use-case to be the defaultRemoved
ArchivableQuerySet
’sarchive()
andunarchive()
methodsRemoved
Archivable
’slive
andarchived
ManagersRemoved explicit
Manager
classes for mixinsMoved custom
QuerySet
classes for mixins intodjem.models.models
0.6.4 (2018-12-06)¶
Fixed setup.py to include
include_package_data=True
0.6.3 (2018-12-06)¶
Updated MANIFEST.in to include the templates directory
0.6.2 (2018-03-25)¶
Fixed #2: Object level access now defaults open when no model method exists to define it explicitly
0.6.1 (2018-03-02)¶
Updated PyPi details
0.6 (2018-03-02)¶
Renamed project
Added
csrfify_ajax
template tagAdded
paginate
template tagAdded
form_field
andcheckbox
template tagsAdded
MessageMiddleware
Added
MessagingRequestFactory
Added
TemplateRendererMixin
Updated
AjaxResponse
to allow message strings marked as safe to skip being escapedMoved
AjaxResponse
fromdjem.misc.AjaxResponse
todjem.ajax.AjaxResponse
. Also removed shortcut importdjem.AjaxResponse
.Moved
get_page()
fromdjem.misc.get_page
todjem.pagination.get_page
. Also removed shortcut importdjem.get_page
.
0.5 (unreleased)¶
Never released: project renaming took precedence. These features were released under 0.6, and the new project name, instead.
Added replacements for
permission_required
decorator andPermissionRequiredMixin
that support object-level permissionsAdded
get_page()
helper functionAdded
Table
helper classAdded
M
andMon
helper classes for simple code performance debuggingAdded
mon()
decorator as a shortcut for monitoring a functionAdded inspection/prettyprint utilities for debugging
Added extensible
Developer
class as a home for shortcuts to common user-based operations useful to developers
0.4.3 (2016-09-17)¶
Added
authenticate()
method toObjectPermissionsBackend
, fixing a bug where it broke authentication if a user’s credentials were not authenticated by earlier backends
0.4.2 (2016-06-21)¶
Fixed missing commits under 0.4.1 tag
0.4.1 (2016-06-21)¶
Fixed documentation build issues on
readthedocs.org
0.4 (2016-06-21)¶
Added
AjaxResponse
Added
GOODIES_COMMON_INFO_REQUIRE_USER_ON_SAVE
settingAdded object-level permission support (
ObjectPermissionsBackend
,ifperm
andifnotperm
template tags)Updated
CommonInfoMixin
to provide default object-level permissions for subclasses, based on ownership
0.3 (2016-03-19)¶
Added
TimeZoneField
/TimeZoneHelper
Cleaned code as per
isort
andflake8
Pre-0.3¶
CommonInfoMixin
, with associated manager and querysetArchivableMixin
, with associated manager and querysetVersioningMixin
, with associated manager and querysetStaticAbstract
parent model, with associated manager and querysetCommonInfoForm
for ModelForms based onCommonInfoMixin
models