django-pfx 1.4.dev170__tar.gz → 1.4.dev174__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.dev170 → django_pfx-1.4.dev174}/PKG-INFO +1 -1
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/django_pfx.egg-info/PKG-INFO +1 -1
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/locale/fr/LC_MESSAGES/django.po +5 -5
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/test.py +13 -7
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/views/rest_views.py +9 -1
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/.gitignore +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/.gitlab-ci.yml +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/.pre-commit-config.yaml +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/LICENSE +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/MANIFEST.in +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/README.md +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/django_pfx.egg-info/SOURCES.txt +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/django_pfx.egg-info/dependency_links.txt +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/django_pfx.egg-info/requires.txt +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/django_pfx.egg-info/top_level.txt +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/doc/Makefile +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/doc/conf.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/doc/index.rst +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/doc/source/api.views.rst +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/doc/source/authentication.md +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/doc/source/decorator.md +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/doc/source/generate_openapi.md +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/doc/source/getting_started.md +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/doc/source/internationalisation.md +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/doc/source/model.md +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/doc/source/pfx_views.md +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/doc/source/profiling.md +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/doc/source/settings.md +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/doc/source/testing.md +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/img/pfx.png +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/img/pfx.svg +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/make_messages +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/manage.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/__init__.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/__init__.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/apidoc/__init__.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/apidoc/parameters.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/apidoc/schema.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/apidoc/tags.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/apps.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/decorator/__init__.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/decorator/rest.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/default_settings.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/exceptions.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/fields/__init__.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/fields/decimal_field.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/fields/media_field.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/fields/minutes_duration_field.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/fields/rich_text_field.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/http/__init__.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/http/json_response.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/locale/fr/LC_MESSAGES/django.mo +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/management/__init__.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/management/commands/__init__.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/management/commands/makeapidoc.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/management/commands/profile.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/middleware/__init__.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/middleware/authentication.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/middleware/locale.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/middleware/profiling.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/migrations/0001_initial.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/migrations/0002_pfxpermissionsuser.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/migrations/0003_delete_pfxpermissionsuser.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/migrations/__init__.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/migrations/operations/__init__.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/migrations/operations/permissions.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/models/__init__.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/models/abstract_pfx_base_user.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/models/cache_mixins.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/models/login_ban.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/models/not_null_fields.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/models/ordered_model_mixin.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/models/otp_user_mixin.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/models/pfx_models.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/models/pfx_user.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/models/user_filtered_queryset_mixin.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/serializers/__init__.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/serializers/json.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/settings.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/shortcuts.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/storage/__init__.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/storage/exceptions.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/storage/local_storage.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/storage/s3_storage.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/templates/registration/otp_code_email.txt +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/templates/registration/otp_code_subject.txt +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/templates/registration/password_reset_email.txt +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/templates/registration/password_reset_subject.txt +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/templates/registration/welcome_email.txt +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/templates/registration/welcome_subject.txt +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/urls.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/views/__init__.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/views/authentication_views.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/views/fields.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/views/filters_views.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/views/locale_views.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/views/media_rest_view_mixin.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/views/ordered_rest_view_mixin.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/views/parameters/__init__.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/views/parameters/date_format.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/views/parameters/groups.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/views/parameters/list_count.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/views/parameters/list_items.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/views/parameters/list_mode.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/views/parameters/list_order.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/views/parameters/list_search.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/views/parameters/media_redirect.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/views/parameters/meta_fields.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/views/parameters/meta_filters.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/views/parameters/meta_orders.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/views/parameters/subset.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/views/parameters/subset_limit.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/views/parameters/subset_offset.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/views/parameters/subset_page.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/views/parameters/subset_page_size.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/views/parameters/subset_page_subset.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/settings/__init__.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/settings/dev.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pyproject.toml +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/requirements.txt +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/serve-doc +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/setup.cfg +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/setup.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/__init__.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/apps.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/locale/fr/LC_MESSAGES/django.po +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/migrations/0001_initial.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/migrations/0002_alter_book_cover.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/migrations/0003_book_local_file.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/migrations/__init__.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/models.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/settings/__init__.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/settings/ci.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/settings/common.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/settings/dev.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/settings/dev_custom_example.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/settings/dev_default.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/tests/__init__.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/tests/basic_api_errors.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/tests/basic_api_test.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/tests/test_api_doc.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/tests/test_api_doc_search.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/tests/test_auth_api.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/tests/test_body_mixin.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/tests/test_cache.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/tests/test_client.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/tests/test_fields_choices.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/tests/test_fields_date.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/tests/test_fields_decimal.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/tests/test_fields_minutes_duration.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/tests/test_fields_one2many.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/tests/test_fields_rich_text.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/tests/test_filters.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/tests/test_locale_api.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/tests/test_ordered_rest_view_mixin.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/tests/test_perm_tests.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/tests/test_permissions.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/tests/test_perms_api.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/tests/test_post_migrate_groups_update.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/tests/test_profiling_middleware.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/tests/test_settings.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/tests/test_shortcuts.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/tests/test_timezone_middleware.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/tests/test_tools.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/tests/test_user_queryset.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/tests/test_view_decorators.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/tests/test_view_fields.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/urls.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests/views.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests_base_user/__init__.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests_base_user/migrations/0001_initial.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests_base_user/migrations/__init__.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests_base_user/settings/__init__.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests_base_user/settings/ci.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests_base_user/settings/common.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests_base_user/settings/dev.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests_base_user/settings/dev_custom_example.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests_base_user/settings/dev_default.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests_base_user/tests/__init__.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests_base_user/tests/test_api.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests_base_user/tests/test_auth_api.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests_base_user/urls.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests_base_user/views.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests_custom_user/__init__.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests_custom_user/migrations/0001_initial.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests_custom_user/migrations/__init__.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests_custom_user/models.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests_custom_user/settings/__init__.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests_custom_user/settings/ci.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests_custom_user/settings/common.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests_custom_user/settings/dev.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests_custom_user/settings/dev_custom_example.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests_custom_user/settings/dev_default.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests_custom_user/tests/__init__.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests_custom_user/tests/test_api.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests_custom_user/tests/test_auth_api.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/tests_custom_user/urls.py +0 -0
- {django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/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.dev174
|
|
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.dev174
|
|
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
|
+
"POT-Creation-Date: 2025-12-18 12:52+0100\n"
|
|
11
11
|
"PO-Revision-Date: 2021-06-22 23:31+0200\n"
|
|
12
12
|
"Last-Translator: \n"
|
|
13
13
|
"Language-Team: \n"
|
|
@@ -286,23 +286,23 @@ msgstr "Le paramètre object est requis pour move={move}."
|
|
|
286
286
|
msgid "object {pk} does not exists in this move context."
|
|
287
287
|
msgstr "object {pk} n'existe pas dans ce contexte de déplacement."
|
|
288
288
|
|
|
289
|
-
#: views/rest_views.py:
|
|
289
|
+
#: views/rest_views.py:225 views/rest_views.py:391
|
|
290
290
|
#, python-brace-format
|
|
291
291
|
msgid "{obj} cannot be deleted because it is referenced by other objects."
|
|
292
292
|
msgstr ""
|
|
293
293
|
"{obj} ne peut pas être supprimé car il est référencé par d’autres objets."
|
|
294
294
|
|
|
295
|
-
#: views/rest_views.py:
|
|
295
|
+
#: views/rest_views.py:355
|
|
296
296
|
#, python-brace-format
|
|
297
297
|
msgid "{model} {obj} created."
|
|
298
298
|
msgstr "{model} {obj} créé."
|
|
299
299
|
|
|
300
|
-
#: views/rest_views.py:
|
|
300
|
+
#: views/rest_views.py:356
|
|
301
301
|
#, python-brace-format
|
|
302
302
|
msgid "{model} {obj} updated."
|
|
303
303
|
msgstr "{model} {obj} modifié."
|
|
304
304
|
|
|
305
|
-
#: views/rest_views.py:
|
|
305
|
+
#: views/rest_views.py:1270
|
|
306
306
|
#, python-brace-format
|
|
307
307
|
msgid "{model} {obj} deleted."
|
|
308
308
|
msgstr "{model} {obj} supprimé."
|
|
@@ -73,21 +73,22 @@ def get_url(path, **params):
|
|
|
73
73
|
|
|
74
74
|
|
|
75
75
|
class APIClient(DjangoClient):
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
default_locale = None
|
|
79
|
-
auth_cookie = None
|
|
76
|
+
class AuthFailedException(Exception):
|
|
77
|
+
pass
|
|
80
78
|
|
|
81
79
|
def __init__(self, enforce_csrf_checks=False, raise_request_exception=True,
|
|
82
80
|
default_locale=None, with_cookie=False, **defaults):
|
|
83
81
|
super().__init__(enforce_csrf_checks, raise_request_exception,
|
|
84
82
|
**defaults)
|
|
83
|
+
self.token = None
|
|
84
|
+
self.auth_cookie = None
|
|
85
85
|
self.default_locale = default_locale
|
|
86
86
|
self.with_cookie = with_cookie
|
|
87
87
|
|
|
88
88
|
def login(self, username, password='test',
|
|
89
|
-
path='/api/auth/login', locale=None, remember_me=False
|
|
90
|
-
|
|
89
|
+
path='/api/auth/login', locale=None, remember_me=False,
|
|
90
|
+
print_response=False):
|
|
91
|
+
self.logout() # Ensure cleaning token and cookies
|
|
91
92
|
response = self.post(
|
|
92
93
|
get_url(path, mode=(self.with_cookie and 'cookie' or 'jwt')),
|
|
93
94
|
dict(
|
|
@@ -95,6 +96,8 @@ class APIClient(DjangoClient):
|
|
|
95
96
|
password=password,
|
|
96
97
|
remember_me=remember_me),
|
|
97
98
|
locale=locale)
|
|
99
|
+
if print_response:
|
|
100
|
+
response.print()
|
|
98
101
|
if response.status_code == 200:
|
|
99
102
|
if self.with_cookie:
|
|
100
103
|
self.auth_cookie = get_auth_cookie(response)
|
|
@@ -103,10 +106,13 @@ class APIClient(DjangoClient):
|
|
|
103
106
|
else:
|
|
104
107
|
self.token = response.json_content['token']
|
|
105
108
|
return True
|
|
106
|
-
|
|
109
|
+
raise APIClient.AuthFailedException(
|
|
110
|
+
f"Authentication failed for user {username} on {path}")
|
|
107
111
|
|
|
108
112
|
def logout(self):
|
|
109
113
|
self.token = None
|
|
114
|
+
self.auth_cookie = None
|
|
115
|
+
self.cookies.clear()
|
|
110
116
|
|
|
111
117
|
def generic(self, method, path, data='',
|
|
112
118
|
content_type='application/octet-stream', secure=False,
|
|
@@ -28,7 +28,11 @@ from pfx.pfxcore.exceptions import (
|
|
|
28
28
|
UnauthorizedError,
|
|
29
29
|
)
|
|
30
30
|
from pfx.pfxcore.http import JsonResponse
|
|
31
|
-
from pfx.pfxcore.models import
|
|
31
|
+
from pfx.pfxcore.models import (
|
|
32
|
+
JSONReprMixin,
|
|
33
|
+
OrderedModelMixin,
|
|
34
|
+
UserFilteredQuerySetMixin,
|
|
35
|
+
)
|
|
32
36
|
from pfx.pfxcore.shortcuts import (
|
|
33
37
|
class_key,
|
|
34
38
|
f,
|
|
@@ -387,12 +391,16 @@ class ModelResponseMixin(ModelMixin):
|
|
|
387
391
|
"{obj} cannot be deleted because "
|
|
388
392
|
"it is referenced by other "
|
|
389
393
|
"objects."), obj=str(cur)))
|
|
394
|
+
prev = None
|
|
390
395
|
for o in v:
|
|
391
396
|
save_field = getattr(o, '_save_related', False)
|
|
392
397
|
if save_field:
|
|
393
398
|
setattr(o, save_field, obj)
|
|
394
399
|
funcs += self.pre_save(o, created=created)
|
|
395
400
|
o.save()
|
|
401
|
+
if isinstance(o, OrderedModelMixin) and prev:
|
|
402
|
+
o.below(prev)
|
|
403
|
+
prev = o
|
|
396
404
|
getattr(obj, k).set(v)
|
|
397
405
|
self.post_save(obj, created=created, funcs=funcs)
|
|
398
406
|
obj = self.get_object(pk=obj.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.dev170 → django_pfx-1.4.dev174}/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.dev170 → django_pfx-1.4.dev174}/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.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/migrations/0002_pfxpermissionsuser.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/migrations/operations/__init__.py
RENAMED
|
File without changes
|
{django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/migrations/operations/permissions.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/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
|
|
File without changes
|
{django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/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
|
|
File without changes
|
{django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/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
|
{django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/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.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/views/parameters/media_redirect.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/views/parameters/meta_filters.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/views/parameters/subset_limit.py
RENAMED
|
File without changes
|
{django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/views/parameters/subset_offset.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/pfx/pfxcore/views/parameters/subset_page_size.py
RENAMED
|
File without changes
|
{django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/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
|
|
File without changes
|
{django_pfx-1.4.dev170 → django_pfx-1.4.dev174}/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.dev170 → django_pfx-1.4.dev174}/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.dev170 → django_pfx-1.4.dev174}/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.dev170 → django_pfx-1.4.dev174}/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
|