fastadmin 0.2.18__py3-none-any.whl → 0.2.20__py3-none-any.whl
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.
- fastadmin/api/frameworks/django/app/urls.py +1 -1
- fastadmin/models/helpers.py +1 -2
- fastadmin/models/orms/django.py +12 -1
- fastadmin/models/orms/ponyorm.py +8 -8
- fastadmin/models/orms/sqlalchemy.py +0 -1
- fastadmin/models/orms/tortoise.py +2 -3
- fastadmin/static/assets/worker-6Z7niv9l.js +13 -0
- fastadmin/static/assets/worker-D1fCgYB7.js +13 -0
- fastadmin/static/assets/worker-DRNcaZ-V.js +13 -0
- fastadmin/static/index.min.css +4 -3
- fastadmin/static/index.min.js +315 -279
- {fastadmin-0.2.18.dist-info → fastadmin-0.2.20.dist-info}/METADATA +4 -4
- {fastadmin-0.2.18.dist-info → fastadmin-0.2.20.dist-info}/RECORD +15 -13
- {fastadmin-0.2.18.dist-info → fastadmin-0.2.20.dist-info}/WHEEL +1 -1
- fastadmin-0.2.18.dist-info/LICENSE +0 -21
- /LICENSE → /fastadmin-0.2.20.dist-info/LICENSE +0 -0
@@ -41,7 +41,7 @@ def get_admin_urls():
|
|
41
41
|
path("api/action/<str:model>/<str:action>", action),
|
42
42
|
path("api/configuration", configuration),
|
43
43
|
re_path(
|
44
|
-
r"^%s(?P<path>.*)$" % re.escape("static"),
|
44
|
+
r"^%s(?P<path>.*)$" % re.escape("static"), # noqa: UP031
|
45
45
|
serve,
|
46
46
|
kwargs={"document_root": ROOT_DIR / "static"},
|
47
47
|
),
|
fastadmin/models/helpers.py
CHANGED
@@ -110,8 +110,7 @@ async def generate_models_schema(
|
|
110
110
|
:return: A list of models / inline models schemas.
|
111
111
|
"""
|
112
112
|
models_schemas: list[ModelSchema | InlineModelSchema] = []
|
113
|
-
for orm_model_cls in admin_models:
|
114
|
-
admin_model_obj: ModelAdmin | InlineModelAdmin = admin_models[orm_model_cls]
|
113
|
+
for orm_model_cls, admin_model_obj in admin_models.items():
|
115
114
|
orm_model_fields = admin_model_obj.get_model_fields_with_widget_types()
|
116
115
|
orm_model_fields_for_serialize = admin_model_obj.get_fields_for_serialize()
|
117
116
|
|
fastadmin/models/orms/django.py
CHANGED
@@ -113,7 +113,18 @@ class DjangoORMMixin:
|
|
113
113
|
form_widget_props["mode"] = "tags"
|
114
114
|
filter_widget_type = WidgetType.Select
|
115
115
|
filter_widget_props["mode"] = "tags"
|
116
|
-
case
|
116
|
+
case (
|
117
|
+
"SmallAutoField"
|
118
|
+
| "AutoField"
|
119
|
+
| "BigAutoField"
|
120
|
+
| "SmallIntegerField"
|
121
|
+
| "BigIntegerField"
|
122
|
+
| "PositiveIntegerField"
|
123
|
+
| "PositiveSmallIntegerField"
|
124
|
+
| "IntegerField"
|
125
|
+
| "FloatField"
|
126
|
+
| "DecimalField"
|
127
|
+
):
|
117
128
|
form_widget_type = WidgetType.InputNumber
|
118
129
|
filter_widget_type = WidgetType.InputNumber
|
119
130
|
case "DateField":
|
fastadmin/models/orms/ponyorm.py
CHANGED
@@ -267,7 +267,8 @@ class PonyORMMixin:
|
|
267
267
|
# TODO: support icontains here
|
268
268
|
filter_expr = f""""{search}" in m.{search_field}"""
|
269
269
|
qs_ids = qs.filter(filter_expr)
|
270
|
-
|
270
|
+
objs = list(qs_ids)
|
271
|
+
ids += [o.id for o in objs]
|
271
272
|
qs = qs.filter(lambda m: m.id in set(ids))
|
272
273
|
|
273
274
|
ordering = [sort_by] if sort_by else self.ordering
|
@@ -298,7 +299,7 @@ class PonyORMMixin:
|
|
298
299
|
:params id: an id of object.
|
299
300
|
:return: An object.
|
300
301
|
"""
|
301
|
-
return
|
302
|
+
return self.model_cls.select(**{self.get_model_pk_name(self.model_cls): id}).first()
|
302
303
|
|
303
304
|
@sync_to_async
|
304
305
|
@db_session
|
@@ -310,7 +311,7 @@ class PonyORMMixin:
|
|
310
311
|
:return: An object.
|
311
312
|
"""
|
312
313
|
if id:
|
313
|
-
obj =
|
314
|
+
obj = self.model_cls.select(**{self.get_model_pk_name(self.model_cls): id}).first()
|
314
315
|
if not obj:
|
315
316
|
return None
|
316
317
|
obj.set(**payload)
|
@@ -328,7 +329,7 @@ class PonyORMMixin:
|
|
328
329
|
:params id: an id of object.
|
329
330
|
:return: None.
|
330
331
|
"""
|
331
|
-
obj =
|
332
|
+
obj = self.model_cls.select(**{self.get_model_pk_name(self.model_cls): id}).first()
|
332
333
|
if not obj:
|
333
334
|
return
|
334
335
|
obj.delete()
|
@@ -346,7 +347,7 @@ class PonyORMMixin:
|
|
346
347
|
:return: A list of ids.
|
347
348
|
"""
|
348
349
|
key_id = self.get_model_pk_name(self.model_cls)
|
349
|
-
obj =
|
350
|
+
obj = self.model_cls.select(**{key_id: getattr(obj, key_id)}).first()
|
350
351
|
if not obj:
|
351
352
|
return []
|
352
353
|
rel_model_cls = getattr(self.model_cls, field).py_type
|
@@ -365,7 +366,7 @@ class PonyORMMixin:
|
|
365
366
|
:return: A list of ids.
|
366
367
|
"""
|
367
368
|
key_id = self.get_model_pk_name(self.model_cls)
|
368
|
-
obj =
|
369
|
+
obj = self.model_cls.select(**{key_id: getattr(obj, key_id)}).first()
|
369
370
|
if not obj:
|
370
371
|
return
|
371
372
|
getattr(obj, field).clear()
|
@@ -388,7 +389,6 @@ class PonyORMMixin:
|
|
388
389
|
|
389
390
|
:return: A list of ids.
|
390
391
|
"""
|
391
|
-
...
|
392
392
|
|
393
393
|
@sync_to_async
|
394
394
|
@db_session
|
@@ -403,7 +403,7 @@ class PonyORMMixin:
|
|
403
403
|
"""
|
404
404
|
data = {}
|
405
405
|
key_id = self.get_model_pk_name(self.model_cls)
|
406
|
-
obj =
|
406
|
+
obj = self.model_cls.select(**{key_id: getattr(obj, key_id)}).first()
|
407
407
|
if not obj:
|
408
408
|
return data
|
409
409
|
|
@@ -43,7 +43,7 @@ class TortoiseMixin:
|
|
43
43
|
if field_type in ("BackwardFKRelation", "BackwardOneToOneRelation"):
|
44
44
|
continue
|
45
45
|
|
46
|
-
if field_name.endswith("_id") and
|
46
|
+
if field_name.endswith("_id") and getattr(orm_model_field, "reference", False):
|
47
47
|
# ignore _id fields for relations
|
48
48
|
continue
|
49
49
|
|
@@ -62,7 +62,7 @@ class TortoiseMixin:
|
|
62
62
|
if with_upload is not None and with_upload and not is_upload:
|
63
63
|
continue
|
64
64
|
|
65
|
-
is_pk = getattr(orm_model_field, "
|
65
|
+
is_pk = getattr(orm_model_field, "pk", False)
|
66
66
|
is_immutable = (
|
67
67
|
is_pk or getattr(orm_model_field, "auto_now", False) or getattr(orm_model_field, "auto_now_add", False)
|
68
68
|
) and field_name not in self.readonly_fields
|
@@ -351,7 +351,6 @@ class TortoiseMixin:
|
|
351
351
|
|
352
352
|
:return: A list of ids.
|
353
353
|
"""
|
354
|
-
...
|
355
354
|
|
356
355
|
|
357
356
|
class TortoiseModelAdmin(TortoiseMixin, ModelAdmin):
|