django-pfx 1.3.dev12__tar.gz → 1.3.dev16__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.3.dev12 → django-pfx-1.3.dev16}/PKG-INFO +1 -2
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/django_pfx.egg-info/PKG-INFO +1 -2
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/django_pfx.egg-info/requires.txt +0 -1
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/views/filters_views.py +10 -15
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/views/rest_views.py +1 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/setup.cfg +0 -1
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/tests/tests/basic_api_test.py +9 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/tests/views.py +2 -1
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/.gitignore +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/.gitlab-ci.yml +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/.pre-commit-config.yaml +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/LICENSE +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/MANIFEST.in +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/README.md +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/django-admin-test +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/django_pfx.egg-info/SOURCES.txt +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/django_pfx.egg-info/dependency_links.txt +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/django_pfx.egg-info/top_level.txt +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/doc/Makefile +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/doc/conf.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/doc/index.rst +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/doc/source/api.views.rst +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/doc/source/authentication.md +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/doc/source/decorator.md +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/doc/source/generate_openapi.md +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/doc/source/getting_started.md +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/doc/source/internationalisation.md +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/doc/source/model.md +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/doc/source/pfx_views.md +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/doc/source/profiling.md +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/doc/source/settings.md +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/doc/source/testing.md +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/img/pfx.png +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/img/pfx.svg +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/__init__.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/__init__.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/apidoc/__init__.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/apidoc/parameters.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/apidoc/schema.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/apidoc/tags.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/apps.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/decorator/__init__.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/decorator/rest.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/default_settings.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/exceptions.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/fields.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/http/__init__.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/http/json_response.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/locale/fr/LC_MESSAGES/django.mo +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/locale/fr/LC_MESSAGES/django.po +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/management/__init__.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/management/commands/__init__.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/management/commands/makeapidoc.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/management/commands/profile.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/middleware/__init__.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/middleware/authentication.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/middleware/locale.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/middleware/profiling.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/models/__init__.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/models/cache_mixins.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/models/not_null_fields.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/models/pfx_models.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/models/user_filtered_queryset_mixin.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/serializers/__init__.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/serializers/json.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/settings.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/shortcuts.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/storage/__init__.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/storage/s3_storage.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/templates/registration/password_reset_email.txt +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/templates/registration/password_reset_subject.txt +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/templates/registration/welcome_email.txt +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/templates/registration/welcome_subject.txt +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/test.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/urls.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/views/__init__.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/views/authentication_views.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/views/fields.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/views/locale_views.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/views/parameters/__init__.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/views/parameters/date_format.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/views/parameters/groups.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/views/parameters/list_count.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/views/parameters/list_items.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/views/parameters/list_mode.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/views/parameters/list_order.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/views/parameters/list_search.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/views/parameters/media_redirect.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/views/parameters/meta_fields.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/views/parameters/meta_filters.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/views/parameters/meta_orders.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/views/parameters/subset.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/views/parameters/subset_limit.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/views/parameters/subset_offset.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/views/parameters/subset_page.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/views/parameters/subset_page_size.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/views/parameters/subset_page_subset.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pyproject.toml +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/requirements.txt +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/runtest.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/serve-doc +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/setup.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/tests/__init__.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/tests/locale/fr/LC_MESSAGES/django.po +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/tests/models.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/tests/settings/__init__.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/tests/settings/ci.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/tests/settings/common.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/tests/settings/dev.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/tests/settings/dev_custom_example.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/tests/settings/dev_default.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/tests/tests/__init__.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/tests/tests/basic_api_errors.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/tests/tests/test_api_doc.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/tests/tests/test_auth_api.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/tests/tests/test_cache.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/tests/tests/test_client.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/tests/tests/test_fields.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/tests/tests/test_filters.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/tests/tests/test_locale_api.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/tests/tests/test_perm_tests.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/tests/tests/test_perms_api.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/tests/tests/test_profiling_middleware.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/tests/tests/test_shortcuts.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/tests/tests/test_timezone_middleware.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/tests/tests/test_tools.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/tests/tests/test_user_queryset.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/tests/tests/test_view_decorators.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/tests/tests/test_view_fields.py +0 -0
- {django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/tests/urls.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: django-pfx
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.dev16
|
|
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
|
|
@@ -27,7 +27,6 @@ Description-Content-Type: text/markdown
|
|
|
27
27
|
License-File: LICENSE
|
|
28
28
|
Requires-Dist: django<5.0,>=4.2
|
|
29
29
|
Requires-Dist: django-cors-headers
|
|
30
|
-
Requires-Dist: django_json_widget
|
|
31
30
|
Requires-Dist: pyjwt>=2.1
|
|
32
31
|
Requires-Dist: Babel
|
|
33
32
|
Requires-Dist: boto3
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: django-pfx
|
|
3
|
-
Version: 1.3.
|
|
3
|
+
Version: 1.3.dev16
|
|
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
|
|
@@ -27,7 +27,6 @@ Description-Content-Type: text/markdown
|
|
|
27
27
|
License-File: LICENSE
|
|
28
28
|
Requires-Dist: django<5.0,>=4.2
|
|
29
29
|
Requires-Dist: django-cors-headers
|
|
30
|
-
Requires-Dist: django_json_widget
|
|
31
30
|
Requires-Dist: pyjwt>=2.1
|
|
32
31
|
Requires-Dist: Babel
|
|
33
32
|
Requires-Dist: boto3
|
|
@@ -32,7 +32,8 @@ class Filter():
|
|
|
32
32
|
def __init__(
|
|
33
33
|
self, name, label, type=None, filter_func=None,
|
|
34
34
|
filter_func_and=False, filter_func_list=False, choices=None,
|
|
35
|
-
related_model=None, technical=False, defaults=None,
|
|
35
|
+
related_model=None, technical=False, defaults=None,
|
|
36
|
+
empty_value=True):
|
|
36
37
|
self.name = name
|
|
37
38
|
self.label = label
|
|
38
39
|
self.type = type
|
|
@@ -43,13 +44,16 @@ class Filter():
|
|
|
43
44
|
self.related_model = related_model
|
|
44
45
|
self.technical = technical
|
|
45
46
|
self.defaults = defaults or []
|
|
47
|
+
self.empty_value = empty_value
|
|
46
48
|
|
|
47
49
|
@property
|
|
48
50
|
def meta(self):
|
|
49
51
|
res = dict(
|
|
52
|
+
is_group=False,
|
|
50
53
|
label=_(self.label),
|
|
51
54
|
name=self.name,
|
|
52
55
|
type=self.type,
|
|
56
|
+
empty_value=self.empty_value,
|
|
53
57
|
technical=self.technical)
|
|
54
58
|
if self.choices:
|
|
55
59
|
res['choices'] = [
|
|
@@ -89,9 +93,12 @@ class ModelFilter(Filter):
|
|
|
89
93
|
def __init__(
|
|
90
94
|
self, model, name, label=None, type=None,
|
|
91
95
|
filter_func=None, filter_func_and=False, filter_func_list=False,
|
|
92
|
-
choices=None, related_model=None, technical=False, defaults=None
|
|
96
|
+
choices=None, related_model=None, technical=False, defaults=None,
|
|
97
|
+
empty_value=None):
|
|
93
98
|
self.model = model
|
|
94
99
|
self.field = model._meta.get_field(name)
|
|
100
|
+
if empty_value is None:
|
|
101
|
+
empty_value = self.field.blank
|
|
95
102
|
super().__init__(
|
|
96
103
|
name, label or self.field.verbose_name,
|
|
97
104
|
type or self._type_from_model,
|
|
@@ -100,7 +107,7 @@ class ModelFilter(Filter):
|
|
|
100
107
|
related_model or (
|
|
101
108
|
self.field.remote_field and
|
|
102
109
|
self.field.remote_field.model),
|
|
103
|
-
technical=technical, defaults=defaults)
|
|
110
|
+
technical=technical, defaults=defaults, empty_value=empty_value)
|
|
104
111
|
|
|
105
112
|
@property
|
|
106
113
|
def _type_from_model(self):
|
|
@@ -112,18 +119,6 @@ class ModelFilter(Filter):
|
|
|
112
119
|
return FieldType.ModelObject
|
|
113
120
|
return model_type
|
|
114
121
|
|
|
115
|
-
@property
|
|
116
|
-
def meta(self):
|
|
117
|
-
res = dict(
|
|
118
|
-
is_group=False, label=_(self.label), name=self.name,
|
|
119
|
-
type=self.type, technical=self.technical)
|
|
120
|
-
if self.choices:
|
|
121
|
-
res['choices'] = [
|
|
122
|
-
dict(label=_(v), value=k) for k, v in self.choices]
|
|
123
|
-
if self.related_model:
|
|
124
|
-
res['related_model'] = str(self.related_model.__name__)
|
|
125
|
-
return res
|
|
126
|
-
|
|
127
122
|
def query(self, params):
|
|
128
123
|
values = self._get_values(params)
|
|
129
124
|
if self.filter_func and values:
|
|
@@ -831,6 +831,7 @@ class ListRestViewMixin(ModelResponseMixin):
|
|
|
831
831
|
choices=dict(
|
|
832
832
|
type='array', items=dict(type='string'),
|
|
833
833
|
example=["value1", "value2"]),
|
|
834
|
+
empty_value=dict(type='boolean'),
|
|
834
835
|
technical=dict(type='boolean'),
|
|
835
836
|
related_model=dict(type='string'))),
|
|
836
837
|
description="List of fields."),
|
|
@@ -203,6 +203,7 @@ class BasicAPITest(TestAssertMixin, TestCase):
|
|
|
203
203
|
self.assertJE(response, 'filters.@0.name', 'book_type')
|
|
204
204
|
self.assertJE(response, 'filters.@0.items', [
|
|
205
205
|
{
|
|
206
|
+
'empty_value': False,
|
|
206
207
|
"is_group": False,
|
|
207
208
|
"label": "Science Fiction",
|
|
208
209
|
"name": "science_fiction",
|
|
@@ -210,12 +211,15 @@ class BasicAPITest(TestAssertMixin, TestCase):
|
|
|
210
211
|
"type": "BooleanField"
|
|
211
212
|
},
|
|
212
213
|
{
|
|
214
|
+
'empty_value': True,
|
|
215
|
+
"is_group": False,
|
|
213
216
|
"label": "Heroic Fantasy",
|
|
214
217
|
"name": "heroic_fantasy",
|
|
215
218
|
"technical": False,
|
|
216
219
|
"type": "BooleanField"
|
|
217
220
|
},
|
|
218
221
|
{
|
|
222
|
+
'empty_value': False,
|
|
219
223
|
"is_group": False,
|
|
220
224
|
"label": "Types",
|
|
221
225
|
"name": "types",
|
|
@@ -227,6 +231,7 @@ class BasicAPITest(TestAssertMixin, TestCase):
|
|
|
227
231
|
self.assertJE(response, 'filters.@1.name', 'custom')
|
|
228
232
|
self.assertJE(response, 'filters.@1.items', [
|
|
229
233
|
{
|
|
234
|
+
'empty_value': False,
|
|
230
235
|
"is_group": False,
|
|
231
236
|
"label": "Last Name",
|
|
232
237
|
"name": "last_name",
|
|
@@ -234,6 +239,7 @@ class BasicAPITest(TestAssertMixin, TestCase):
|
|
|
234
239
|
"type": "BooleanField"
|
|
235
240
|
},
|
|
236
241
|
{
|
|
242
|
+
'empty_value': False,
|
|
237
243
|
"is_group": False,
|
|
238
244
|
"label": "First Name",
|
|
239
245
|
"name": "first_name",
|
|
@@ -251,6 +257,7 @@ class BasicAPITest(TestAssertMixin, TestCase):
|
|
|
251
257
|
"value": "female"
|
|
252
258
|
}
|
|
253
259
|
],
|
|
260
|
+
'empty_value': False,
|
|
254
261
|
"is_group": False,
|
|
255
262
|
"label": "Gender",
|
|
256
263
|
"name": "gender",
|
|
@@ -268,6 +275,8 @@ class BasicAPITest(TestAssertMixin, TestCase):
|
|
|
268
275
|
"value": "Asimov"
|
|
269
276
|
}
|
|
270
277
|
],
|
|
278
|
+
'empty_value': False,
|
|
279
|
+
"is_group": False,
|
|
271
280
|
"label": "Tolkien or Asimov",
|
|
272
281
|
"name": "last_name_choices",
|
|
273
282
|
"technical": False,
|
|
@@ -75,7 +75,8 @@ class AuthorRestView(AuthorRestViewMixin, SlugDetailRestViewMixin, RestView):
|
|
|
75
75
|
Filter(
|
|
76
76
|
'last_name_choices', _("Tolkien or Asimov"),
|
|
77
77
|
FieldType.CharField, last_name_choices_filter,
|
|
78
|
-
choices=[('Tolkien', "Tolkien"), ('Asimov', "Asimov")]
|
|
78
|
+
choices=[('Tolkien', "Tolkien"), ('Asimov', "Asimov")],
|
|
79
|
+
empty_value=False),
|
|
79
80
|
]),
|
|
80
81
|
]
|
|
81
82
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.3.dev12 → django-pfx-1.3.dev16}/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
|
{django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/templates/registration/welcome_email.txt
RENAMED
|
File without changes
|
{django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/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
|
{django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/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.3.dev12 → django-pfx-1.3.dev16}/pfx/pfxcore/views/parameters/subset_page_size.py
RENAMED
|
File without changes
|
{django-pfx-1.3.dev12 → django-pfx-1.3.dev16}/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
|