django-pfx 1.7.3.dev10__tar.gz → 1.7.3.dev14__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.7.3.dev10 → django_pfx-1.7.3.dev14}/PKG-INFO +1 -1
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/django_pfx.egg-info/PKG-INFO +1 -1
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/django_pfx.egg-info/SOURCES.txt +3 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/middleware/__init__.py +4 -0
- django_pfx-1.7.3.dev14/pfx/pfxcore/middleware/request_too_big_middleware.py +25 -0
- django_pfx-1.7.3.dev14/pfx/pfxcore/middleware/ws_cookie_authentication_middleware.py +45 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/__init__.py +1 -0
- django_pfx-1.7.3.dev14/tests/tests/test_user_websocket.py +79 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/.gitignore +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/.gitlab-ci.yml +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/.pre-commit-config.yaml +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/LICENSE +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/MANIFEST.in +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/README.md +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/django_pfx.egg-info/dependency_links.txt +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/django_pfx.egg-info/requires.txt +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/django_pfx.egg-info/top_level.txt +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/doc/Makefile +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/doc/conf.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/doc/index.rst +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/doc/source/api.views.rst +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/doc/source/authentication.md +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/doc/source/decorator.md +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/doc/source/generate_openapi.md +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/doc/source/getting_started.md +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/doc/source/internationalisation.md +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/doc/source/model.md +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/doc/source/pfx_views.md +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/doc/source/profiling.md +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/doc/source/settings.md +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/doc/source/testing.md +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/img/pfx.png +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/img/pfx.svg +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/make_messages +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/manage.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/emails/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/emails/apps.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/emails/email_backend/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/emails/email_backend/q_mailjet_email_backend.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/emails/exceptions.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/emails/mailjet/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/emails/mailjet/mailjet.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/emails/mailjet/message_result.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/emails/migrations/0001_initial.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/emails/migrations/0002_alter_email_headers.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/emails/migrations/0003_alter_email_options.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/emails/migrations/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/emails/models/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/emails/models/email.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/emails/providers/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/emails/providers/email_django_q_executor.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/emails/shortcuts.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/emails/tasks.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/emails/templates/emails/base_template.html +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/emails/templates/emails/base_template.txt +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/emails/templates/emails/base_template_subject.txt +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/emails/urls.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/emails/views/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/emails/views/email_rest_view.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/apidoc/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/apidoc/parameters.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/apidoc/schema.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/apidoc/tags.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/apps.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/decorator/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/decorator/rest.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/default_settings.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/exceptions.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/fields/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/fields/decimal_field.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/fields/media_field.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/fields/minutes_duration_field.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/fields/rich_text_field.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/http/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/http/json_response.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/locale/fr/LC_MESSAGES/django.mo +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/locale/fr/LC_MESSAGES/django.po +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/management/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/management/commands/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/management/commands/makeapidoc.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/management/commands/profile.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/middleware/authentication.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/middleware/locale.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/middleware/profiling.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/migrations/0001_initial.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/migrations/0002_pfxpermissionsuser.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/migrations/0003_delete_pfxpermissionsuser.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/migrations/0004_alter_loginban_failed_counter_and_more.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/migrations/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/migrations/operations/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/migrations/operations/permissions.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/models/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/models/abstract_pfx_base_user.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/models/attachment_mixin.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/models/cache_mixins.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/models/login_ban.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/models/mfa_user_mixin.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/models/not_null_fields.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/models/ordered_model_mixin.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/models/pfx_models.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/models/pfx_user.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/models/user_filtered_queryset_mixin.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/serializers/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/serializers/json.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/settings.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/shortcuts.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/sms/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/sms/backends/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/sms/backends/base.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/sms/backends/console.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/storage/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/storage/exceptions.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/storage/local_storage.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/storage/s3_storage.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/templates/registration/otp_code_email.txt +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/templates/registration/otp_code_subject.txt +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/templates/registration/password_reset_email.txt +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/templates/registration/password_reset_subject.txt +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/templates/registration/welcome_email.txt +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/templates/registration/welcome_subject.txt +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/test.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/urls.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/authentication_views.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/fields.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/filters_views.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/locale_views.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/media_rest_view_mixin.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/ordered_rest_view_mixin.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/parameters/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/parameters/date_format.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/parameters/groups.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/parameters/list_count.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/parameters/list_items.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/parameters/list_mode.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/parameters/list_order.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/parameters/list_search.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/parameters/media_redirect.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/parameters/meta_fields.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/parameters/meta_filters.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/parameters/meta_orders.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/parameters/subset.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/parameters/subset_limit.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/parameters/subset_offset.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/parameters/subset_page.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/parameters/subset_page_size.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/parameters/subset_page_subset.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/rest_views.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/settings/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/settings/dev.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/userjobs/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/userjobs/apps.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/userjobs/locale/fr/LC_MESSAGES/django.mo +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/userjobs/locale/fr/LC_MESSAGES/django.po +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/userjobs/migrations/0001_initial.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/userjobs/migrations/0002_alter_userjob_options_alter_userjob_auto_queued_and_more.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/userjobs/migrations/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/userjobs/models/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/userjobs/models/user_job.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/userjobs/models/user_job_attachment.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/userjobs/providers/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/userjobs/providers/user_job_django_q_executor.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/userjobs/providers/user_job_websocket_channel_provider.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/userjobs/tasks.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/userjobs/urls.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/userjobs/views/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/userjobs/views/user_job_attachment_view.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/userjobs/views/user_job_view.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/userjobs/views/user_websocket_consumer.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pyproject.toml +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/requirements.txt +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/serve-doc +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/setup.cfg +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/setup.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/apps.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/channel_group_send_calls.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/locale/fr/LC_MESSAGES/django.po +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/migrations/0001_initial.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/migrations/0002_alter_book_cover.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/migrations/0003_book_local_file.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/migrations/0004_mfausermixin_fields.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/migrations/0005_mfausermixin_fields_fix.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/migrations/0006_rename_otp_enabled_user_mfa_authenticator_enabled_and_more.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/migrations/0007_attachment.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/migrations/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/models.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/settings/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/settings/ci.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/settings/common.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/settings/dev.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/settings/dev_custom_example.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/settings/dev_default.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/basic_api_errors.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/basic_api_test.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_api_doc.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_api_doc_search.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_auth_api.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_body_mixin.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_cache.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_client.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_emails_email_api.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_emails_email_model.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_emails_q_mailjet_email_backend.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_emails_send_email_message.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_fields_choices.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_fields_date.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_fields_decimal.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_fields_minutes_duration.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_fields_one2many.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_fields_rich_text.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_fields_time.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_filters.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_locale_api.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_ordered_rest_view_mixin.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_perm_tests.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_permissions.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_perms_api.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_post_migrate_groups_update.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_profiling_middleware.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_settings.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_shortcuts.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_timezone_middleware.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_tools.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_user_job_api.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_user_job_messages.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_user_job_model.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_user_queryset.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_view_decorators.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/tests/test_view_fields.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/urls.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests/views.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests_base_user/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests_base_user/migrations/0001_initial.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests_base_user/migrations/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests_base_user/settings/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests_base_user/settings/ci.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests_base_user/settings/common.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests_base_user/settings/dev.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests_base_user/settings/dev_custom_example.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests_base_user/settings/dev_default.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests_base_user/tests/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests_base_user/tests/test_api.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests_base_user/tests/test_auth_api.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests_base_user/urls.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests_base_user/views.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests_custom_user/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests_custom_user/migrations/0001_initial.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests_custom_user/migrations/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests_custom_user/models.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests_custom_user/settings/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests_custom_user/settings/ci.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests_custom_user/settings/common.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests_custom_user/settings/dev.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests_custom_user/settings/dev_custom_example.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests_custom_user/settings/dev_default.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests_custom_user/tests/__init__.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests_custom_user/tests/test_api.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests_custom_user/tests/test_auth_api.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/tests_custom_user/urls.py +0 -0
- {django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/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.7.3.
|
|
3
|
+
Version: 1.7.3.dev14
|
|
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.7.3.
|
|
3
|
+
Version: 1.7.3.dev14
|
|
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
|
|
@@ -88,6 +88,8 @@ pfx/pfxcore/middleware/__init__.py
|
|
|
88
88
|
pfx/pfxcore/middleware/authentication.py
|
|
89
89
|
pfx/pfxcore/middleware/locale.py
|
|
90
90
|
pfx/pfxcore/middleware/profiling.py
|
|
91
|
+
pfx/pfxcore/middleware/request_too_big_middleware.py
|
|
92
|
+
pfx/pfxcore/middleware/ws_cookie_authentication_middleware.py
|
|
91
93
|
pfx/pfxcore/migrations/0001_initial.py
|
|
92
94
|
pfx/pfxcore/migrations/0002_pfxpermissionsuser.py
|
|
93
95
|
pfx/pfxcore/migrations/0003_delete_pfxpermissionsuser.py
|
|
@@ -226,6 +228,7 @@ tests/tests/test_user_job_api.py
|
|
|
226
228
|
tests/tests/test_user_job_messages.py
|
|
227
229
|
tests/tests/test_user_job_model.py
|
|
228
230
|
tests/tests/test_user_queryset.py
|
|
231
|
+
tests/tests/test_user_websocket.py
|
|
229
232
|
tests/tests/test_view_decorators.py
|
|
230
233
|
tests/tests/test_view_fields.py
|
|
231
234
|
tests_base_user/__init__.py
|
|
@@ -4,3 +4,7 @@ from .authentication import (
|
|
|
4
4
|
)
|
|
5
5
|
from .locale import LocaleMiddleware
|
|
6
6
|
from .profiling import ProfilingDatabaseRouter, ProfilingMiddleware
|
|
7
|
+
from .request_too_big_middleware import RequestTooBigMiddleware
|
|
8
|
+
from .ws_cookie_authentication_middleware import (
|
|
9
|
+
WSCookieAuthenticationMiddleware,
|
|
10
|
+
)
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
from django.conf import settings
|
|
2
|
+
from django.core.exceptions import RequestDataTooBig
|
|
3
|
+
from django.http import HttpResponse
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class RequestTooBigMiddleware:
|
|
7
|
+
"""Dev middleware to simulate 413 from HTTP reverse proxy.
|
|
8
|
+
Don't use it in production,
|
|
9
|
+
set DATA_UPLOAD_MAX_MEMORY_SIZE > reverse proxy limit.
|
|
10
|
+
"""
|
|
11
|
+
def __init__(self, get_response):
|
|
12
|
+
self.get_response = get_response
|
|
13
|
+
|
|
14
|
+
def __call__(self, request):
|
|
15
|
+
try:
|
|
16
|
+
# force body reading to catch RequestDataTooBig early
|
|
17
|
+
_ = request.body
|
|
18
|
+
except RequestDataTooBig:
|
|
19
|
+
response = HttpResponse("Request Entity Too Large", status=413)
|
|
20
|
+
# In dev, UI and API are on different ports,
|
|
21
|
+
# so we need CORS headers.
|
|
22
|
+
response["Access-Control-Allow-Origin"] = settings.PFX_BASE_URL
|
|
23
|
+
response["Access-Control-Allow-Credentials"] = "true"
|
|
24
|
+
return response
|
|
25
|
+
return self.get_response(request)
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
|
|
3
|
+
from django.contrib.auth import get_user_model
|
|
4
|
+
from django.contrib.auth.models import AnonymousUser
|
|
5
|
+
from django.http import parse_cookie
|
|
6
|
+
|
|
7
|
+
from channels.db import database_sync_to_async
|
|
8
|
+
from channels.middleware import BaseMiddleware
|
|
9
|
+
|
|
10
|
+
from pfx.pfxcore.exceptions import APIError
|
|
11
|
+
from pfx.pfxcore.http import JsonResponse
|
|
12
|
+
from pfx.pfxcore.middleware.authentication import JWTTokenDecodeMixin
|
|
13
|
+
|
|
14
|
+
logger = logging.getLogger(__name__)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class WSCookieAuthenticationMiddleware(JWTTokenDecodeMixin, BaseMiddleware):
|
|
18
|
+
async def __call__(self, scope, receive, send):
|
|
19
|
+
scope = dict(scope)
|
|
20
|
+
if "headers" not in scope:
|
|
21
|
+
raise ValueError("No headers")
|
|
22
|
+
# Go through headers to find the cookie one
|
|
23
|
+
for name, value in scope.get("headers", []):
|
|
24
|
+
if name == b"cookie":
|
|
25
|
+
cookies = parse_cookie(value.decode("utf-8"))
|
|
26
|
+
break
|
|
27
|
+
else:
|
|
28
|
+
# No cookie header found - add an empty default.
|
|
29
|
+
cookies = {}
|
|
30
|
+
# Return inner application
|
|
31
|
+
key = cookies.get('token')
|
|
32
|
+
if key:
|
|
33
|
+
try:
|
|
34
|
+
user, __, __ = await database_sync_to_async(
|
|
35
|
+
self.decode_jwt)(key)
|
|
36
|
+
except get_user_model().DoesNotExist:
|
|
37
|
+
return JsonResponse(
|
|
38
|
+
{'message': 'Authentication error'}, status=401)
|
|
39
|
+
except APIError as e:
|
|
40
|
+
return e.response
|
|
41
|
+
elif not scope.get('user'):
|
|
42
|
+
user = AnonymousUser()
|
|
43
|
+
|
|
44
|
+
scope['user'] = user
|
|
45
|
+
return await super().__call__(scope, receive, send)
|
|
@@ -33,5 +33,6 @@ from .test_user_job_api import TestUserJobApi
|
|
|
33
33
|
from .test_user_job_messages import TestUserJobMessages
|
|
34
34
|
from .test_user_job_model import TestUserJobModel
|
|
35
35
|
from .test_user_queryset import TestUserQuerySet
|
|
36
|
+
from .test_user_websocket import TestUserWebsocket
|
|
36
37
|
from .test_view_decorators import ViewDecoratorTest
|
|
37
38
|
from .test_view_fields import ViewFieldTest
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import json
|
|
2
|
+
import logging
|
|
3
|
+
|
|
4
|
+
from django.test import TransactionTestCase
|
|
5
|
+
|
|
6
|
+
from asgiref.sync import sync_to_async
|
|
7
|
+
from channels.routing import URLRouter
|
|
8
|
+
from channels.testing import WebsocketCommunicator
|
|
9
|
+
|
|
10
|
+
from pfx.pfxcore.middleware import WSCookieAuthenticationMiddleware
|
|
11
|
+
from pfx.pfxcore.test import APIClient, TestAssertMixin
|
|
12
|
+
from pfx.userjobs.urls import websocket_urlpatterns
|
|
13
|
+
from tests.models import User
|
|
14
|
+
|
|
15
|
+
logger = logging.getLogger(__name__)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def WebsocketMiddlewareStack(inner):
|
|
19
|
+
return WSCookieAuthenticationMiddleware(inner)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class TestUserWebsocket(TestAssertMixin, TransactionTestCase):
|
|
23
|
+
async def asyncSetUp(self):
|
|
24
|
+
"""Ensure parent setUp is called for async tests"""
|
|
25
|
+
await sync_to_async(super().setUp)()
|
|
26
|
+
|
|
27
|
+
async def async_setup(self):
|
|
28
|
+
@sync_to_async
|
|
29
|
+
def setup_all():
|
|
30
|
+
User.objects.create_user(
|
|
31
|
+
username='user',
|
|
32
|
+
email="user@example.com",
|
|
33
|
+
password='test',
|
|
34
|
+
first_name="Test",
|
|
35
|
+
last_name="User",
|
|
36
|
+
is_superuser=False)
|
|
37
|
+
client = APIClient(with_cookie=True, default_locale='en')
|
|
38
|
+
client.login(username='user')
|
|
39
|
+
return client
|
|
40
|
+
return await setup_all()
|
|
41
|
+
|
|
42
|
+
@staticmethod
|
|
43
|
+
def get_websocket_communicator(headers=[]):
|
|
44
|
+
headers.append((b"host", b"localhost:8000"))
|
|
45
|
+
return WebsocketCommunicator(
|
|
46
|
+
WebsocketMiddlewareStack(URLRouter(websocket_urlpatterns)),
|
|
47
|
+
'ws/user', headers)
|
|
48
|
+
|
|
49
|
+
async def test_websocket(self):
|
|
50
|
+
client = await self.async_setup()
|
|
51
|
+
headers = [(
|
|
52
|
+
b'cookie',
|
|
53
|
+
client.cookies.output(header='', sep='; ').encode())]
|
|
54
|
+
|
|
55
|
+
communicator = self.get_websocket_communicator(headers)
|
|
56
|
+
connected, sub_protocol = await communicator.connect()
|
|
57
|
+
self.assertTrue(connected)
|
|
58
|
+
# Test sending message
|
|
59
|
+
await communicator.send_json_to(
|
|
60
|
+
dict(type='send_event',
|
|
61
|
+
message='123 updated')
|
|
62
|
+
)
|
|
63
|
+
response = await communicator.receive_from()
|
|
64
|
+
res = json.loads(response)
|
|
65
|
+
self.assertEqual(
|
|
66
|
+
res['message'], '123 updated')
|
|
67
|
+
|
|
68
|
+
# Close
|
|
69
|
+
await communicator.disconnect()
|
|
70
|
+
|
|
71
|
+
async def test_anonymous(self):
|
|
72
|
+
await self.async_setup()
|
|
73
|
+
headers = []
|
|
74
|
+
|
|
75
|
+
communicator = self.get_websocket_communicator(headers)
|
|
76
|
+
connected, sub_protocol = await communicator.connect()
|
|
77
|
+
|
|
78
|
+
self.assertFalse(connected)
|
|
79
|
+
self.assertEqual(sub_protocol, 4001)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/emails/migrations/0002_alter_email_headers.py
RENAMED
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/emails/migrations/0003_alter_email_options.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/emails/providers/email_django_q_executor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/emails/templates/emails/base_template.html
RENAMED
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/emails/templates/emails/base_template.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
|
|
File without changes
|
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/fields/minutes_duration_field.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/locale/fr/LC_MESSAGES/django.mo
RENAMED
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/locale/fr/LC_MESSAGES/django.po
RENAMED
|
File without changes
|
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/management/commands/__init__.py
RENAMED
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/management/commands/makeapidoc.py
RENAMED
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/management/commands/profile.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/migrations/0002_pfxpermissionsuser.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/migrations/operations/__init__.py
RENAMED
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/migrations/operations/permissions.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/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
|
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/media_rest_view_mixin.py
RENAMED
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/ordered_rest_view_mixin.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/parameters/date_format.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/parameters/list_count.py
RENAMED
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/parameters/list_items.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/parameters/list_order.py
RENAMED
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/parameters/list_search.py
RENAMED
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/parameters/media_redirect.py
RENAMED
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/parameters/meta_fields.py
RENAMED
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/parameters/meta_filters.py
RENAMED
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/parameters/meta_orders.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/parameters/subset_limit.py
RENAMED
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/parameters/subset_offset.py
RENAMED
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/parameters/subset_page.py
RENAMED
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/pfxcore/views/parameters/subset_page_size.py
RENAMED
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/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
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/userjobs/locale/fr/LC_MESSAGES/django.mo
RENAMED
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/userjobs/locale/fr/LC_MESSAGES/django.po
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_pfx-1.7.3.dev10 → django_pfx-1.7.3.dev14}/pfx/userjobs/models/user_job_attachment.py
RENAMED
|
File without changes
|