django-pfx 1.4.dev158__tar.gz → 1.4.dev162__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/PKG-INFO +1 -1
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/django_pfx.egg-info/PKG-INFO +1 -1
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/locale/fr/LC_MESSAGES/django.po +2 -2
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/models/ordered_model_mixin.py +4 -2
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/storage/local_storage.py +5 -1
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/rest_views.py +16 -12
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/tests/basic_api_test.py +7 -1
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/.gitignore +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/.gitlab-ci.yml +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/.pre-commit-config.yaml +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/LICENSE +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/MANIFEST.in +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/README.md +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/django_pfx.egg-info/SOURCES.txt +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/django_pfx.egg-info/dependency_links.txt +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/django_pfx.egg-info/requires.txt +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/django_pfx.egg-info/top_level.txt +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/doc/Makefile +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/doc/conf.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/doc/index.rst +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/doc/source/api.views.rst +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/doc/source/authentication.md +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/doc/source/decorator.md +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/doc/source/generate_openapi.md +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/doc/source/getting_started.md +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/doc/source/internationalisation.md +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/doc/source/model.md +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/doc/source/pfx_views.md +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/doc/source/profiling.md +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/doc/source/settings.md +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/doc/source/testing.md +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/img/pfx.png +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/img/pfx.svg +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/make_messages +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/manage.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/__init__.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/__init__.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/apidoc/__init__.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/apidoc/parameters.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/apidoc/schema.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/apidoc/tags.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/apps.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/decorator/__init__.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/decorator/rest.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/default_settings.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/exceptions.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/fields/__init__.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/fields/decimal_field.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/fields/media_field.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/fields/minutes_duration_field.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/fields/rich_text_field.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/http/__init__.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/http/json_response.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/locale/fr/LC_MESSAGES/django.mo +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/management/__init__.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/management/commands/__init__.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/management/commands/makeapidoc.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/management/commands/profile.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/middleware/__init__.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/middleware/authentication.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/middleware/locale.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/middleware/profiling.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/migrations/0001_initial.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/migrations/0002_pfxpermissionsuser.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/migrations/0003_delete_pfxpermissionsuser.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/migrations/__init__.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/migrations/operations/__init__.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/migrations/operations/permissions.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/models/__init__.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/models/abstract_pfx_base_user.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/models/cache_mixins.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/models/login_ban.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/models/not_null_fields.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/models/otp_user_mixin.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/models/pfx_models.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/models/pfx_user.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/models/user_filtered_queryset_mixin.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/serializers/__init__.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/serializers/json.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/settings.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/shortcuts.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/storage/__init__.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/storage/exceptions.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/storage/s3_storage.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/templates/registration/otp_code_email.txt +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/templates/registration/otp_code_subject.txt +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/templates/registration/password_reset_email.txt +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/templates/registration/password_reset_subject.txt +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/templates/registration/welcome_email.txt +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/templates/registration/welcome_subject.txt +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/test.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/urls.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/__init__.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/authentication_views.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/fields.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/filters_views.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/locale_views.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/media_rest_view_mixin.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/ordered_rest_view_mixin.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/parameters/__init__.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/parameters/date_format.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/parameters/groups.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/parameters/list_count.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/parameters/list_items.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/parameters/list_mode.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/parameters/list_order.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/parameters/list_search.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/parameters/media_redirect.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/parameters/meta_fields.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/parameters/meta_filters.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/parameters/meta_orders.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/parameters/subset.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/parameters/subset_limit.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/parameters/subset_offset.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/parameters/subset_page.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/parameters/subset_page_size.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/parameters/subset_page_subset.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/settings/__init__.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/settings/dev.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pyproject.toml +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/requirements.txt +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/serve-doc +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/setup.cfg +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/setup.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/__init__.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/apps.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/locale/fr/LC_MESSAGES/django.po +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/migrations/0001_initial.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/migrations/0002_alter_book_cover.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/migrations/0003_book_local_file.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/migrations/__init__.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/models.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/settings/__init__.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/settings/ci.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/settings/common.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/settings/dev.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/settings/dev_custom_example.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/settings/dev_default.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/tests/__init__.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/tests/basic_api_errors.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/tests/test_api_doc.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/tests/test_api_doc_search.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/tests/test_auth_api.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/tests/test_body_mixin.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/tests/test_cache.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/tests/test_client.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/tests/test_fields_choices.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/tests/test_fields_date.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/tests/test_fields_decimal.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/tests/test_fields_minutes_duration.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/tests/test_fields_one2many.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/tests/test_fields_rich_text.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/tests/test_filters.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/tests/test_locale_api.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/tests/test_ordered_rest_view_mixin.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/tests/test_perm_tests.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/tests/test_permissions.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/tests/test_perms_api.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/tests/test_post_migrate_groups_update.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/tests/test_profiling_middleware.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/tests/test_settings.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/tests/test_shortcuts.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/tests/test_timezone_middleware.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/tests/test_tools.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/tests/test_user_queryset.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/tests/test_view_decorators.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/tests/test_view_fields.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/urls.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/views.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_base_user/__init__.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_base_user/migrations/0001_initial.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_base_user/migrations/__init__.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_base_user/settings/__init__.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_base_user/settings/ci.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_base_user/settings/common.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_base_user/settings/dev.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_base_user/settings/dev_custom_example.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_base_user/settings/dev_default.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_base_user/tests/__init__.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_base_user/tests/test_api.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_base_user/tests/test_auth_api.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_base_user/urls.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_base_user/views.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_custom_user/__init__.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_custom_user/migrations/0001_initial.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_custom_user/migrations/__init__.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_custom_user/models.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_custom_user/settings/__init__.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_custom_user/settings/ci.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_custom_user/settings/common.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_custom_user/settings/dev.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_custom_user/settings/dev_custom_example.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_custom_user/settings/dev_default.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_custom_user/tests/__init__.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_custom_user/tests/test_api.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_custom_user/tests/test_auth_api.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_custom_user/urls.py +0 -0
- {django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_custom_user/views.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: django-pfx
|
|
3
|
-
Version: 1.4.
|
|
3
|
+
Version: 1.4.dev162
|
|
4
4
|
Summary: Django PFX is a toolkit designed to streamline the development of RESTful APIs using the Django framework.
|
|
5
5
|
Author: Hervé Martinet
|
|
6
6
|
Author-email: herve.martinet@gmail.com
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: django-pfx
|
|
3
|
-
Version: 1.4.
|
|
3
|
+
Version: 1.4.dev162
|
|
4
4
|
Summary: Django PFX is a toolkit designed to streamline the development of RESTful APIs using the Django framework.
|
|
5
5
|
Author: Hervé Martinet
|
|
6
6
|
Author-email: herve.martinet@gmail.com
|
|
@@ -7,7 +7,7 @@ msgid ""
|
|
|
7
7
|
msgstr ""
|
|
8
8
|
"Project-Id-Version: \n"
|
|
9
9
|
"Report-Msgid-Bugs-To: \n"
|
|
10
|
-
"POT-Creation-Date: 2025-10-22
|
|
10
|
+
"POT-Creation-Date: 2025-10-22 16:49+0200\n"
|
|
11
11
|
"PO-Revision-Date: 2021-06-22 23:31+0200\n"
|
|
12
12
|
"Last-Translator: \n"
|
|
13
13
|
"Language-Team: \n"
|
|
@@ -302,7 +302,7 @@ msgstr "{model} {obj} créé."
|
|
|
302
302
|
msgid "{model} {obj} updated."
|
|
303
303
|
msgstr "{model} {obj} modifié."
|
|
304
304
|
|
|
305
|
-
#: views/rest_views.py:
|
|
305
|
+
#: views/rest_views.py:1261
|
|
306
306
|
#, python-brace-format
|
|
307
307
|
msgid "{model} {obj} deleted."
|
|
308
308
|
msgstr "{model} {obj} supprimé."
|
|
@@ -41,11 +41,13 @@ class OrderedModelMixin(models.Model):
|
|
|
41
41
|
|
|
42
42
|
@property
|
|
43
43
|
def _order_max(self):
|
|
44
|
-
return self._order_qs.
|
|
44
|
+
return self._order_qs.exclude(
|
|
45
|
+
pk=self.pk).aggregate(Max('seq'))['seq__max']
|
|
45
46
|
|
|
46
47
|
@property
|
|
47
48
|
def _order_min(self):
|
|
48
|
-
return self._order_qs.
|
|
49
|
+
return self._order_qs.exclude(
|
|
50
|
+
pk=self.pk).aggregate(Min('seq'))['seq__min']
|
|
49
51
|
|
|
50
52
|
@property
|
|
51
53
|
def _order_default(self):
|
|
@@ -24,7 +24,11 @@ class LocalStorage:
|
|
|
24
24
|
relative_path = Path(*key_list[:-1])
|
|
25
25
|
dirname = Path(settings.STORAGE_LOCAL_ROOT, relative_path)
|
|
26
26
|
dirname.mkdir(parents=True, exist_ok=True)
|
|
27
|
-
|
|
27
|
+
suffixes = Path(filename).suffixes
|
|
28
|
+
if suffixes[-1] in ['gz', 'bz2'] and len(suffixes) > 1:
|
|
29
|
+
ext = ''.join(suffixes[-2:])
|
|
30
|
+
else:
|
|
31
|
+
ext = suffixes[-1]
|
|
28
32
|
hashname = f'{hashlib.sha1(file).hexdigest()}{ext}'
|
|
29
33
|
final_key = str(Path(relative_path, hashname))
|
|
30
34
|
with open(Path(dirname, hashname), 'wb') as f:
|
|
@@ -7,9 +7,9 @@ from django.conf import settings
|
|
|
7
7
|
from django.core.cache import cache
|
|
8
8
|
from django.core.exceptions import FieldError, ValidationError
|
|
9
9
|
from django.db import IntegrityError, connection, transaction
|
|
10
|
-
from django.db.models import ForeignKey, ManyToOneRel, Model, Q, Window
|
|
10
|
+
from django.db.models import F, ForeignKey, ManyToOneRel, Model, Q, Window
|
|
11
11
|
from django.db.models.fields import AutoFieldMixin
|
|
12
|
-
from django.db.models.functions import Lag, Lead
|
|
12
|
+
from django.db.models.functions import Lag, Lead, RowNumber
|
|
13
13
|
from django.urls import path
|
|
14
14
|
from django.utils.translation import gettext_lazy as _
|
|
15
15
|
from django.views import View
|
|
@@ -953,22 +953,26 @@ class ListRestViewMixin(ModelResponseMixin):
|
|
|
953
953
|
order = qs.query.order_by
|
|
954
954
|
qs_window = qs.annotate(
|
|
955
955
|
prev_id=Window(Lag('id'), order_by=order),
|
|
956
|
-
next_id=Window(Lead('id'), order_by=order)
|
|
956
|
+
next_id=Window(Lead('id'), order_by=order),
|
|
957
|
+
index=Window(RowNumber(), order_by=order)).values(
|
|
958
|
+
'prev_id', 'next_id', 'index', obj_id=F('id'))
|
|
959
|
+
compiler = qs_window.query.get_compiler(connection=connection)
|
|
960
|
+
inner_sql, params = compiler.as_sql()
|
|
957
961
|
sql = f"""
|
|
958
|
-
WITH annotated AS (
|
|
959
|
-
|
|
960
|
-
)
|
|
961
|
-
SELECT prev_id, next_id
|
|
962
|
+
WITH annotated AS ({inner_sql})
|
|
963
|
+
SELECT prev_id, next_id, index
|
|
962
964
|
FROM annotated
|
|
963
|
-
WHERE
|
|
965
|
+
WHERE obj_id = %s;
|
|
964
966
|
"""
|
|
965
967
|
|
|
966
968
|
with connection.cursor() as cursor:
|
|
967
|
-
cursor.execute(sql, [obj.pk])
|
|
968
|
-
prev_id, next_id = cursor.fetchone() or (None, None)
|
|
969
|
+
cursor.execute(sql, list(params) + [obj.pk])
|
|
970
|
+
prev_id, next_id, index = cursor.fetchone() or (None, None)
|
|
969
971
|
return {
|
|
970
|
-
'previous_pk': prev_id,
|
|
971
|
-
'next_pk': next_id
|
|
972
|
+
'previous_pk': prev_id or qs.last().pk,
|
|
973
|
+
'next_pk': next_id or qs.first().pk,
|
|
974
|
+
'index': index,
|
|
975
|
+
'count': qs.count()}
|
|
972
976
|
|
|
973
977
|
@classmethod
|
|
974
978
|
def generate_schemas(cls):
|
|
@@ -636,20 +636,26 @@ class BasicAPITest(TestAssertMixin, TestCase):
|
|
|
636
636
|
response = self.client.get(
|
|
637
637
|
f'/api/authors/{self.author3.pk}?navigation=1&order=last_name')
|
|
638
638
|
self.assertRC(response, 200)
|
|
639
|
-
self.assertJE(response, 'meta.previous_pk',
|
|
639
|
+
self.assertJE(response, 'meta.previous_pk', self.author1.pk)
|
|
640
640
|
self.assertJE(response, 'meta.next_pk', self.author2.pk)
|
|
641
|
+
self.assertJE(response, 'meta.index', 1)
|
|
642
|
+
self.assertJE(response, 'meta.count', 4)
|
|
641
643
|
|
|
642
644
|
response = self.client.get(
|
|
643
645
|
f'/api/authors/{self.author2.pk}?navigation=1&order=last_name')
|
|
644
646
|
self.assertRC(response, 200)
|
|
645
647
|
self.assertJE(response, 'meta.previous_pk', self.author3.pk)
|
|
646
648
|
self.assertJE(response, 'meta.next_pk', self.author4.pk)
|
|
649
|
+
self.assertJE(response, 'meta.index', 2)
|
|
650
|
+
self.assertJE(response, 'meta.count', 4)
|
|
647
651
|
|
|
648
652
|
response = self.client.get(
|
|
649
653
|
f'/api/authors/{self.author2.pk}?navigation=1&order=-last_name')
|
|
650
654
|
self.assertRC(response, 200)
|
|
651
655
|
self.assertJE(response, 'meta.previous_pk', self.author4.pk)
|
|
652
656
|
self.assertJE(response, 'meta.next_pk', self.author3.pk)
|
|
657
|
+
self.assertJE(response, 'meta.index', 3)
|
|
658
|
+
self.assertJE(response, 'meta.count', 4)
|
|
653
659
|
|
|
654
660
|
def test_get_date_format(self):
|
|
655
661
|
response = self.client.get(f'/api/books/{self.author1_book1.pk}')
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/fields/minutes_duration_field.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/management/commands/makeapidoc.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/migrations/0002_pfxpermissionsuser.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/migrations/operations/__init__.py
RENAMED
|
File without changes
|
{django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/migrations/operations/permissions.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/models/abstract_pfx_base_user.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/models/user_filtered_queryset_mixin.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/templates/registration/welcome_email.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/ordered_rest_view_mixin.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/parameters/media_redirect.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/parameters/meta_filters.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/parameters/subset_limit.py
RENAMED
|
File without changes
|
{django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/parameters/subset_offset.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/parameters/subset_page_size.py
RENAMED
|
File without changes
|
{django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/pfx/pfxcore/views/parameters/subset_page_subset.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests/tests/test_post_migrate_groups_update.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_base_user/settings/dev_custom_example.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_custom_user/migrations/0001_initial.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev158 → django_pfx-1.4.dev162}/tests_custom_user/settings/dev_custom_example.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|