Change Log¶
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
, respectively - Renamed
ArchivableMixin
toArchivable
- Renamed
VersioningMixin
andVersioningQuerySet
toVersionable
andVersionableQuerySet
, respectively - Renamed
CommonInfoForm
toAuditableForm
- Renamed
DJEM_COMMON_INFO_USER_REQUIRED_ON_SAVE
setting toDJEM_AUDITABLE_USER_REQUIRED_ON_SAVE
- Added
UNDEFINED
constant - Added
Loggable
for instance-based logging - Added
OLPMixin
for custom user models, to support advanced OLP-related functionality - Added
MixableQuerySet
mixin for customQuerySet
classes - Added
DJEM_UNIVERSAL_OLP
setting - Added
DJEM_PERM_LOG_VERBOSITY
setting - Added
AuditableQuerySet
create()
,get_or_create()
, andupdate_or_create()
methods - Added
ArchivableQuerySet
archived()
andunarchived()
methods - Added
ajax_login_required()
decorator - Added
UserSavable
mixin for forms - Removed default implementations of
_user_can_change_*()
and_user_can_delete_*()
onAuditable
- this was far too specific a use-case to be the default - Removed
ArchivableQuerySet
’sarchive()
andunarchive()
methods - Removed
Archivable
’slive
andarchived
Managers - Removed explicit
Manager
classes for mixins - Moved 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 tag - Added
paginate
template tag - Added
form_field
andcheckbox
template tags - Added
MessageMiddleware
- Added
MessagingRequestFactory
- Added
TemplateRendererMixin
- Updated
AjaxResponse
to allow message strings marked as safe to skip being escaped - Moved
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 permissions - Added
get_page()
helper function - Added
Table
helper class - Added
M
andMon
helper classes for simple code performance debugging - Added
mon()
decorator as a shortcut for monitoring a function - Added 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
setting - Added 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