django-pfx 1.4.dev88__tar.gz → 1.4.dev92__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.dev88 → django_pfx-1.4.dev92}/PKG-INFO +1 -1
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/django_pfx.egg-info/PKG-INFO +1 -1
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/django_pfx.egg-info/SOURCES.txt +2 -1
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/make_messages +1 -1
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/locale/fr/LC_MESSAGES/django.po +3 -3
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/models/abstract_pfx_base_user.py +26 -3
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/views/fields.py +2 -3
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/locale/fr/LC_MESSAGES/django.po +23 -10
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/tests/__init__.py +2 -1
- django_pfx-1.4.dev92/tests/tests/test_fields_choices.py +88 -0
- django_pfx-1.4.dev88/tests/tests/test_fields.py → django_pfx-1.4.dev92/tests/tests/test_fields_minutes_duration.py +1 -1
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/.gitignore +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/.gitlab-ci.yml +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/.pre-commit-config.yaml +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/LICENSE +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/MANIFEST.in +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/README.md +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/django_pfx.egg-info/dependency_links.txt +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/django_pfx.egg-info/requires.txt +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/django_pfx.egg-info/top_level.txt +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/doc/Makefile +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/doc/conf.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/doc/index.rst +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/doc/source/api.views.rst +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/doc/source/authentication.md +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/doc/source/decorator.md +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/doc/source/generate_openapi.md +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/doc/source/getting_started.md +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/doc/source/internationalisation.md +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/doc/source/model.md +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/doc/source/pfx_views.md +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/doc/source/profiling.md +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/doc/source/settings.md +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/doc/source/testing.md +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/img/pfx.png +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/img/pfx.svg +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/manage.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/__init__.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/__init__.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/apidoc/__init__.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/apidoc/parameters.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/apidoc/schema.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/apidoc/tags.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/apps.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/decorator/__init__.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/decorator/rest.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/default_settings.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/exceptions.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/fields.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/http/__init__.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/http/json_response.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/locale/fr/LC_MESSAGES/django.mo +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/management/__init__.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/management/commands/__init__.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/management/commands/makeapidoc.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/management/commands/profile.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/middleware/__init__.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/middleware/authentication.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/middleware/locale.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/middleware/profiling.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/migrations/0001_initial.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/migrations/0002_pfxpermissionsuser.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/migrations/0003_delete_pfxpermissionsuser.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/migrations/__init__.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/migrations/operations/__init__.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/migrations/operations/permissions.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/models/__init__.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/models/cache_mixins.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/models/login_ban.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/models/not_null_fields.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/models/ordered_model_mixin.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/models/otp_user_mixin.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/models/pfx_models.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/models/pfx_user.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/models/user_filtered_queryset_mixin.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/serializers/__init__.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/serializers/json.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/settings.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/shortcuts.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/storage/__init__.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/storage/s3_storage.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/templates/registration/otp_code_email.txt +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/templates/registration/otp_code_subject.txt +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/templates/registration/password_reset_email.txt +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/templates/registration/password_reset_subject.txt +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/templates/registration/welcome_email.txt +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/templates/registration/welcome_subject.txt +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/test.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/urls.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/views/__init__.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/views/authentication_views.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/views/filters_views.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/views/locale_views.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/views/ordered_rest_view_mixin.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/views/parameters/__init__.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/views/parameters/date_format.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/views/parameters/groups.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/views/parameters/list_count.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/views/parameters/list_items.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/views/parameters/list_mode.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/views/parameters/list_order.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/views/parameters/list_search.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/views/parameters/media_redirect.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/views/parameters/meta_fields.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/views/parameters/meta_filters.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/views/parameters/meta_orders.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/views/parameters/subset.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/views/parameters/subset_limit.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/views/parameters/subset_offset.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/views/parameters/subset_page.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/views/parameters/subset_page_size.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/views/parameters/subset_page_subset.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/views/rest_views.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/settings/__init__.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/settings/dev.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pyproject.toml +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/requirements.txt +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/serve-doc +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/setup.cfg +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/setup.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/__init__.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/migrations/0001_initial.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/migrations/__init__.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/models.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/settings/__init__.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/settings/ci.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/settings/common.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/settings/dev.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/settings/dev_custom_example.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/settings/dev_default.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/tests/basic_api_errors.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/tests/basic_api_test.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/tests/test_api_doc.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/tests/test_api_doc_search.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/tests/test_auth_api.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/tests/test_body_mixin.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/tests/test_cache.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/tests/test_client.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/tests/test_filters.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/tests/test_locale_api.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/tests/test_ordered_rest_view_mixin.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/tests/test_perm_tests.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/tests/test_permissions.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/tests/test_perms_api.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/tests/test_post_migrate_groups_update.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/tests/test_profiling_middleware.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/tests/test_settings.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/tests/test_shortcuts.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/tests/test_timezone_middleware.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/tests/test_tools.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/tests/test_user_queryset.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/tests/test_view_decorators.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/tests/test_view_fields.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/urls.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests/views.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests_base_user/__init__.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests_base_user/migrations/0001_initial.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests_base_user/migrations/__init__.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests_base_user/settings/__init__.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests_base_user/settings/ci.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests_base_user/settings/common.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests_base_user/settings/dev.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests_base_user/settings/dev_custom_example.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests_base_user/settings/dev_default.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests_base_user/tests/__init__.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests_base_user/tests/test_api.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests_base_user/tests/test_auth_api.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests_base_user/urls.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests_base_user/views.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests_custom_user/__init__.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests_custom_user/migrations/0001_initial.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests_custom_user/migrations/__init__.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests_custom_user/models.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests_custom_user/settings/__init__.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests_custom_user/settings/ci.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests_custom_user/settings/common.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests_custom_user/settings/dev.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests_custom_user/settings/dev_custom_example.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests_custom_user/settings/dev_default.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests_custom_user/tests/__init__.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests_custom_user/tests/test_api.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests_custom_user/tests/test_auth_api.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests_custom_user/urls.py +0 -0
- {django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/tests_custom_user/views.py +0 -0
|
@@ -135,7 +135,8 @@ tests/tests/test_auth_api.py
|
|
|
135
135
|
tests/tests/test_body_mixin.py
|
|
136
136
|
tests/tests/test_cache.py
|
|
137
137
|
tests/tests/test_client.py
|
|
138
|
-
tests/tests/
|
|
138
|
+
tests/tests/test_fields_choices.py
|
|
139
|
+
tests/tests/test_fields_minutes_duration.py
|
|
139
140
|
tests/tests/test_filters.py
|
|
140
141
|
tests/tests/test_locale_api.py
|
|
141
142
|
tests/tests/test_ordered_rest_view_mixin.py
|
|
@@ -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-02-
|
|
10
|
+
"POT-Creation-Date: 2025-02-17 14:15+0100\n"
|
|
11
11
|
"PO-Revision-Date: 2021-06-22 23:31+0200\n"
|
|
12
12
|
"Last-Translator: \n"
|
|
13
13
|
"Language-Team: \n"
|
|
@@ -59,11 +59,11 @@ msgstr ""
|
|
|
59
59
|
"Format non valide, il peut s’agir d’un nombre en heures, « 1:05 », « :05 », "
|
|
60
60
|
"« 1h 5m », « 1.5h » ou « 30m »."
|
|
61
61
|
|
|
62
|
-
#: models/abstract_pfx_base_user.py:
|
|
62
|
+
#: models/abstract_pfx_base_user.py:49
|
|
63
63
|
msgid "user"
|
|
64
64
|
msgstr ""
|
|
65
65
|
|
|
66
|
-
#: models/abstract_pfx_base_user.py:
|
|
66
|
+
#: models/abstract_pfx_base_user.py:50
|
|
67
67
|
msgid "users"
|
|
68
68
|
msgstr ""
|
|
69
69
|
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
from django.contrib.auth.models import
|
|
1
|
+
from django.contrib.auth.models import (
|
|
2
|
+
AbstractBaseUser,
|
|
3
|
+
AbstractUser,
|
|
4
|
+
PermissionsMixin,
|
|
5
|
+
)
|
|
2
6
|
from django.utils.translation import gettext_lazy as _
|
|
3
7
|
|
|
4
8
|
from .pfx_models import PFXModelMixin
|
|
@@ -10,8 +14,18 @@ class AbstractPFXBaseUser(PFXModelMixin, AbstractBaseUser):
|
|
|
10
14
|
class Meta:
|
|
11
15
|
abstract = True
|
|
12
16
|
|
|
13
|
-
def auth_json_repr(self):
|
|
14
|
-
|
|
17
|
+
def auth_json_repr(self, **kw):
|
|
18
|
+
res = self.json_repr(
|
|
19
|
+
username=self.get_username(),
|
|
20
|
+
is_active=self.is_active,
|
|
21
|
+
**kw)
|
|
22
|
+
email_field = self.get_email_field_name()
|
|
23
|
+
if email_field != self.USERNAME_FIELD and hasattr(self, email_field):
|
|
24
|
+
res['email'] = getattr(self, email_field)
|
|
25
|
+
if isinstance(self, PermissionsMixin):
|
|
26
|
+
res['is_superuser'] = self.is_superuser
|
|
27
|
+
res['permissions'] = list(self.get_all_permissions())
|
|
28
|
+
return res
|
|
15
29
|
|
|
16
30
|
@classmethod
|
|
17
31
|
def auth_json_repr_schema(cls):
|
|
@@ -35,3 +49,12 @@ class AbstractPFXUser(AbstractUser, AbstractPFXBaseUser):
|
|
|
35
49
|
verbose_name = _("user")
|
|
36
50
|
verbose_name_plural = _("users")
|
|
37
51
|
abstract = True
|
|
52
|
+
|
|
53
|
+
def auth_json_repr(self, **kw):
|
|
54
|
+
res = super().auth_json_repr(
|
|
55
|
+
first_name=self.first_name,
|
|
56
|
+
last_name=self.last_name,
|
|
57
|
+
is_staff=self.is_staff,
|
|
58
|
+
date_joined=self.date_joined,
|
|
59
|
+
**kw)
|
|
60
|
+
return res
|
|
@@ -7,7 +7,6 @@ from django.db import models
|
|
|
7
7
|
from django.db.models.constants import LOOKUP_SEP
|
|
8
8
|
from django.utils.formats import date_format
|
|
9
9
|
from django.utils.functional import cached_property
|
|
10
|
-
from django.utils.translation import gettext_lazy as _
|
|
11
10
|
|
|
12
11
|
from apispec.utils import deepupdate
|
|
13
12
|
from apispec.yaml_utils import load_yaml_from_docstring
|
|
@@ -119,7 +118,7 @@ class ViewField:
|
|
|
119
118
|
res = dict(type=self.field_type, name=self.verbose_name)
|
|
120
119
|
if self.choices:
|
|
121
120
|
res['choices'] = [
|
|
122
|
-
dict(label=
|
|
121
|
+
dict(label=str(v), value=k) for k, v in self.choices.items()]
|
|
123
122
|
if self.related_model:
|
|
124
123
|
res['model'] = self.related_model._meta.label
|
|
125
124
|
res['api'] = self.related_model_api or getattr(
|
|
@@ -160,7 +159,7 @@ class ViewField:
|
|
|
160
159
|
return [self._json_repr(o) for o in value.all()]
|
|
161
160
|
if self.choices:
|
|
162
161
|
if value in self.choices:
|
|
163
|
-
return dict(value=value, label=
|
|
162
|
+
return dict(value=value, label=str(self.choices[value]))
|
|
164
163
|
else:
|
|
165
164
|
return None
|
|
166
165
|
return value
|
|
@@ -8,7 +8,7 @@ msgid ""
|
|
|
8
8
|
msgstr ""
|
|
9
9
|
"Project-Id-Version: PACKAGE VERSION\n"
|
|
10
10
|
"Report-Msgid-Bugs-To: \n"
|
|
11
|
-
"POT-Creation-Date:
|
|
11
|
+
"POT-Creation-Date: 2025-02-17 12:19+0100\n"
|
|
12
12
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
|
13
13
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
14
14
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
|
@@ -17,38 +17,51 @@ msgstr ""
|
|
|
17
17
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
18
18
|
"Content-Transfer-Encoding: 8bit\n"
|
|
19
19
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
|
20
|
-
|
|
20
|
+
|
|
21
|
+
#: models.py:68
|
|
21
22
|
msgid "First Name"
|
|
22
23
|
msgstr "Prénom"
|
|
23
24
|
|
|
24
|
-
#: models.py:
|
|
25
|
+
#: models.py:69
|
|
25
26
|
msgid "Last Name"
|
|
26
27
|
msgstr "Nom"
|
|
27
28
|
|
|
28
|
-
#:
|
|
29
|
+
#: tests/test_fields_choices.py:16
|
|
30
|
+
msgid "Value 2"
|
|
31
|
+
msgstr "Valeur 2"
|
|
32
|
+
|
|
33
|
+
#: tests/test_fields_choices.py:25
|
|
34
|
+
msgid "Value 3"
|
|
35
|
+
msgstr "Valeur 3"
|
|
36
|
+
|
|
37
|
+
#: tests/test_fields_choices.py:26
|
|
38
|
+
msgid "Value 4"
|
|
39
|
+
msgstr "Valeur 4"
|
|
40
|
+
|
|
41
|
+
#: views.py:65
|
|
29
42
|
msgid "Book Type"
|
|
30
43
|
msgstr "Type de livre"
|
|
31
44
|
|
|
32
|
-
#: views.py:
|
|
45
|
+
#: views.py:68
|
|
33
46
|
msgid "Heroic Fantasy"
|
|
34
47
|
msgstr ""
|
|
35
48
|
|
|
36
|
-
#: views.py:
|
|
49
|
+
#: views.py:72 views.py:224
|
|
37
50
|
msgid "Custom"
|
|
38
51
|
msgstr ""
|
|
39
52
|
|
|
40
|
-
#: views.py:
|
|
53
|
+
#: views.py:79
|
|
41
54
|
msgid "Tolkien or Asimov"
|
|
42
55
|
msgstr ""
|
|
43
56
|
|
|
44
|
-
#: views.py:
|
|
57
|
+
#: views.py:231
|
|
45
58
|
msgid "Publication Date greater than"
|
|
46
59
|
msgstr ""
|
|
47
60
|
|
|
48
|
-
#: views.py:
|
|
61
|
+
#: views.py:234
|
|
49
62
|
msgid "Author PK"
|
|
50
63
|
msgstr ""
|
|
51
64
|
|
|
52
|
-
#: views.py:
|
|
65
|
+
#: views.py:294
|
|
53
66
|
msgid "Monday"
|
|
54
67
|
msgstr ""
|
|
@@ -6,7 +6,8 @@ from .test_auth_api import AuthAPITest
|
|
|
6
6
|
from .test_body_mixin import TestBodyMixin
|
|
7
7
|
from .test_cache import TestCache
|
|
8
8
|
from .test_client import TestApiClient
|
|
9
|
-
from .
|
|
9
|
+
from .test_fields_choices import TestFieldsChoices
|
|
10
|
+
from .test_fields_minutes_duration import TestFieldsMinutesDuration
|
|
10
11
|
from .test_filters import FiltersTest
|
|
11
12
|
from .test_locale_api import LocaleAPITest
|
|
12
13
|
from .test_ordered_rest_view_mixin import TestOrderedRestViewMixin
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
from django.db import connection, models
|
|
2
|
+
from django.test import TestCase
|
|
3
|
+
from django.test.utils import override_settings
|
|
4
|
+
from django.urls import include, path
|
|
5
|
+
from django.utils.translation import gettext_lazy as _
|
|
6
|
+
|
|
7
|
+
from pfx.pfxcore import register_views
|
|
8
|
+
from pfx.pfxcore.decorator import rest_view
|
|
9
|
+
from pfx.pfxcore.models import JSONReprMixin
|
|
10
|
+
from pfx.pfxcore.test import APIClient, TestAssertMixin
|
|
11
|
+
from pfx.pfxcore.views import RestView
|
|
12
|
+
from tests.views import FakeViewMixin
|
|
13
|
+
|
|
14
|
+
# Add i18n string for Value 2, to check this is not used to translate
|
|
15
|
+
# the same value in choices.
|
|
16
|
+
_("Value 2")
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class TestChoicesModel(JSONReprMixin, models.Model):
|
|
20
|
+
choice1 = models.CharField(max_length=30, choices=[
|
|
21
|
+
('v1', "Value 1"),
|
|
22
|
+
('v2', "Value 2"),
|
|
23
|
+
])
|
|
24
|
+
choice2 = models.CharField(max_length=30, choices=[
|
|
25
|
+
('v3', _("Value 3")),
|
|
26
|
+
('v4', _("Value 4")),
|
|
27
|
+
])
|
|
28
|
+
|
|
29
|
+
class Meta:
|
|
30
|
+
verbose_name = "TestModel"
|
|
31
|
+
verbose_name_plural = "TestModels"
|
|
32
|
+
ordering = ['pk']
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
@rest_view("/test")
|
|
36
|
+
class TestChoicesRestView(FakeViewMixin, RestView):
|
|
37
|
+
default_public = True
|
|
38
|
+
model = TestChoicesModel
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
urlpatterns = [
|
|
42
|
+
path('api/', include(register_views(TestChoicesRestView))),
|
|
43
|
+
path('api/', include('pfx.pfxcore.urls'))
|
|
44
|
+
]
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
@override_settings(ROOT_URLCONF=__name__)
|
|
48
|
+
class TestFieldsChoices(TestAssertMixin, TestCase):
|
|
49
|
+
|
|
50
|
+
def setUp(self):
|
|
51
|
+
self.client = APIClient(default_locale='en')
|
|
52
|
+
|
|
53
|
+
@classmethod
|
|
54
|
+
def setUpTestData(cls):
|
|
55
|
+
with connection.schema_editor() as schema_editor:
|
|
56
|
+
schema_editor.create_model(TestChoicesModel)
|
|
57
|
+
|
|
58
|
+
def test_meta(self):
|
|
59
|
+
response = self.client.get('/api/test/meta', locale='fr')
|
|
60
|
+
self.assertRC(response, 200)
|
|
61
|
+
self.assertJE(response, 'fields.choice1.choices.@0.label', "Value 1")
|
|
62
|
+
self.assertJE(response, 'fields.choice1.choices.@1.label', "Value 2")
|
|
63
|
+
self.assertJE(response, 'fields.choice2.choices.@0.label', "Valeur 3")
|
|
64
|
+
self.assertJE(response, 'fields.choice2.choices.@1.label', "Valeur 4")
|
|
65
|
+
|
|
66
|
+
def test_meta_list(self):
|
|
67
|
+
response = self.client.get('/api/test/meta/list', locale='fr')
|
|
68
|
+
self.assertRC(response, 200)
|
|
69
|
+
self.assertJE(response, 'fields.choice1.choices.@0.label', "Value 1")
|
|
70
|
+
self.assertJE(response, 'fields.choice1.choices.@1.label', "Value 2")
|
|
71
|
+
self.assertJE(response, 'fields.choice2.choices.@0.label', "Valeur 3")
|
|
72
|
+
self.assertJE(response, 'fields.choice2.choices.@1.label', "Valeur 4")
|
|
73
|
+
|
|
74
|
+
def test_get(self):
|
|
75
|
+
c1 = TestChoicesModel.objects.create(choice1='v2', choice2='v3')
|
|
76
|
+
|
|
77
|
+
response = self.client.get(f'/api/test/{c1.pk}', locale='fr')
|
|
78
|
+
self.assertRC(response, 200)
|
|
79
|
+
self.assertJE(response, 'choice1.label', "Value 2")
|
|
80
|
+
self.assertJE(response, 'choice2.label', "Valeur 3")
|
|
81
|
+
|
|
82
|
+
def test_get_list(self):
|
|
83
|
+
TestChoicesModel.objects.create(choice1='v2', choice2='v3')
|
|
84
|
+
|
|
85
|
+
response = self.client.get('/api/test', locale='fr')
|
|
86
|
+
self.assertRC(response, 200)
|
|
87
|
+
self.assertJE(response, 'items.@0.choice1.label', "Value 2")
|
|
88
|
+
self.assertJE(response, 'items.@0.choice2.label', "Valeur 3")
|
|
@@ -10,7 +10,7 @@ from pfx.pfxcore.test import APIClient, TestAssertMixin
|
|
|
10
10
|
from tests.models import Author, Book
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
class
|
|
13
|
+
class TestFieldsMinutesDuration(TestAssertMixin, TestCase):
|
|
14
14
|
|
|
15
15
|
def setUp(self):
|
|
16
16
|
self.client = APIClient(default_locale='en')
|
|
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
|
|
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.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/migrations/0002_pfxpermissionsuser.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/migrations/operations/permissions.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.dev88 → django_pfx-1.4.dev92}/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
|
{django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/templates/registration/otp_code_email.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/templates/registration/welcome_email.txt
RENAMED
|
File without changes
|
{django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/templates/registration/welcome_subject.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/views/parameters/media_redirect.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.dev88 → django_pfx-1.4.dev92}/pfx/pfxcore/views/parameters/subset_page_size.py
RENAMED
|
File without changes
|
{django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/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
|
{django_pfx-1.4.dev88 → django_pfx-1.4.dev92}/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.dev88 → django_pfx-1.4.dev92}/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
|
|
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.dev88 → django_pfx-1.4.dev92}/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
|