- refactor: drop django-tree-queries & implement array-based tree functions
This brings a massive performance improvement compared to 2.1.0
(
30ed6c43f293c5e45bbacbd735580142fa567e78
)
- feat(models): (re)introduce some convenience methods for working with scope trees
The Django-MPTT module provided some useful methods that are not available anymore with django-tree-queries. Luckily, it's relatively easy to provide workarounds.
Note that they might not have the same performance/efficiency as the
MPTT variants, and could possibly be built in a better way. However,
let's keep it to the motto "first make it right, then fast, then
pretty" (e2f38f1
)
- refactor: drop django-mptt in favour of django-tree-queries
Django-Tree-Queries works with recursive CTEs (common table expressions) to deal
with hierarchical relationships, generally achieving the same result, but without
the right
, left
and tree_id
fields.
Django-MPTT has been unmaintained for several years, and we're suspecting some subtle bugs in it that we can't really reproduce or verify right now. Anyway it's a good time to get rid of it.
Note: Some old migrations needed to be changed, as we cannot refer to MPTT fields anymore. They were essentially regular foreign keys however, so this won't break the database.
BREAKING! This breaks if Emeis is used as a Django app directly, and depends on
any of the MPTT API / features. (61a30e0
)
- fix(setup): further loosen base requirements (
8b21078
)
- fix(setup): loosen requirements (
310d841
)
- fix(setup): update install requirements (
2dff19b
)
- deps: update dependencies(
8890b3b
)
- export: Add filtering support (
7830dc3
) - tests: Verify that creating circular scope structures fails (
629c20e
)
- scopes: Update subscope's full names when scope changes (
4f125ce
)
- signals: Do not crash while loading fixtures (
be45eff
)
- views: Apply localized default ordering (
7e1265c
)
- models: Set scope full_name correctly in all situations (
47ff9b5
) - ordering: Correct ordering when forced local is in use (
a7ee5d3
)
- scopes: Denormalize full_name and use it for sorting (
4921028
) - visibilities: Respect visibilities in includes & relationships (
1ef2a88
) - Add advanced filters for ACL model (
184c9a2
) - Add "is_active" filter for user model (
8efbdc0
) - Search by metainfo fields (
be26f41
) - Order by metainfo fields (
17a9849
) - Add id__in filter for scopes (
b7602a9
) - models: Add is_active property for scope (
cf5f01f
) - search: Search for user's roles and scopes (
5418e18
) - search: Enable forcing models to be monolingual in search (
1dc55fd
)
- dev-env: Start runserver with keep-meta-shutdown (
749ee20
) - Remove subtree when removing scope (
fc1e4ff
) - Rename translation in export (
4b4a4c0
) - Xlsx file on pypi, take 3 (
5e9262b
)
- Include xlsx file in pypi publish, take 2 (
5acc687
)
- Add xlsx template to pip package (
532b379
)
- Set correct content-disposition header in export (
35e0f09
)
This release upgrades dependency pinnings and loosens requirement ranges in setup.py
.
- core Alter deprecated postgres JSON field to Django's own (
f6cded9
)
Release only pinning dependency version, not adding any features.
- chore: upgrade dependency psycopg2 to 2.9.3
Bump to latest Django LTS and lift other dependencies while giving some slack on the version requirements in setup.py
so it won't be too hard to bump to this release.
- core Rename the basemodel's
meta
field tometainfo
in order to respect reserved words of django-restframework-json-api (be444a6
)
- Rename basemodel's
meta
field tometainfo
- Expose full scope name on api (
3465b97
) - new
create_scope
command (93fa60
) Note: The settingsADMIN_USERNAME
,ADMIN_ROLE_SLUG
, andADMIN_SCOPE_NAME
have been removed. Usemanage.py createsuperuser
andmanage.py create_scope
instead.
- permissions: Introduce django generic api permissions (
ff5aa2f
) - auth: Introduce user factory setting and oidc user object (
0716162
) - Add filters on User endpoint (
95b15d2
) - scopes: Expose level on api (
ddc36ee
)
- add missing migration for new manager on user model
- auth: make emeis user model able to authenticate (#249)
Various bugfixes to make Emeis usable as a Django app
Initial release