fastadmin 0.3.5__tar.gz → 0.3.7__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.
Files changed (49) hide show
  1. {fastadmin-0.3.5 → fastadmin-0.3.7}/PKG-INFO +1 -1
  2. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/models/base.py +0 -4
  3. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/models/orms/django.py +0 -10
  4. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/models/orms/ponyorm.py +0 -10
  5. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/models/orms/sqlalchemy.py +0 -30
  6. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/models/orms/tortoise.py +0 -10
  7. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/static/index.min.js +166 -166
  8. {fastadmin-0.3.5 → fastadmin-0.3.7}/pyproject.toml +1 -1
  9. {fastadmin-0.3.5 → fastadmin-0.3.7}/LICENSE +0 -0
  10. {fastadmin-0.3.5 → fastadmin-0.3.7}/README.md +0 -0
  11. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/__init__.py +0 -0
  12. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/api/__init__.py +0 -0
  13. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/api/exceptions.py +0 -0
  14. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/api/frameworks/__init__.py +0 -0
  15. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/api/frameworks/django/__init__.py +0 -0
  16. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/api/frameworks/django/app/__init__.py +0 -0
  17. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/api/frameworks/django/app/api.py +0 -0
  18. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/api/frameworks/django/app/urls.py +0 -0
  19. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/api/frameworks/django/app/views.py +0 -0
  20. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/api/frameworks/fastapi/__init__.py +0 -0
  21. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/api/frameworks/fastapi/api.py +0 -0
  22. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/api/frameworks/fastapi/app.py +0 -0
  23. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/api/frameworks/fastapi/views.py +0 -0
  24. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/api/frameworks/flask/__init__.py +0 -0
  25. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/api/frameworks/flask/api.py +0 -0
  26. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/api/frameworks/flask/app.py +0 -0
  27. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/api/frameworks/flask/views.py +0 -0
  28. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/api/helpers.py +0 -0
  29. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/api/schemas.py +0 -0
  30. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/api/service.py +0 -0
  31. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/models/__init__.py +0 -0
  32. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/models/decorators.py +0 -0
  33. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/models/helpers.py +0 -0
  34. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/models/orms/__init__.py +0 -0
  35. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/models/schemas.py +0 -0
  36. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/settings.py +0 -0
  37. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/static/assets/worker-6Z7niv9l.js +0 -0
  38. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/static/assets/worker-C151k0-L.js +0 -0
  39. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/static/assets/worker-C9KPOOKD.js +0 -0
  40. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/static/assets/worker-D1fCgYB7.js +0 -0
  41. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/static/assets/worker-D3TWcJOI.js +0 -0
  42. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/static/assets/worker-DRNcaZ-V.js +0 -0
  43. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/static/assets/worker-MF2p-l5_.js +0 -0
  44. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/static/images/favicon.png +0 -0
  45. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/static/images/header-logo.svg +0 -0
  46. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/static/images/sign-in-logo.svg +0 -0
  47. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/static/index.html +0 -0
  48. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/static/index.min.css +0 -0
  49. {fastadmin-0.3.5 → fastadmin-0.3.7}/fastadmin/templates/index.html +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fastadmin
3
- Version: 0.3.5
3
+ Version: 0.3.7
4
4
  Summary: FastAdmin is an easy-to-use Admin Dashboard App for FastAPI/Flask/Django inspired by Django Admin.
5
5
  License: MIT
6
6
  License-File: LICENSE
@@ -248,8 +248,6 @@ class BaseModelAdmin:
248
248
  search: str | None = None,
249
249
  sort_by: str | None = None,
250
250
  filters: dict | None = None,
251
- prefetch_related_fields: list[str] | None = None,
252
- additional_search_fields: list[str] | None = None,
253
251
  ) -> tuple[list[Any], int]:
254
252
  """This method is used to get list of orm/db model objects.
255
253
 
@@ -258,8 +256,6 @@ class BaseModelAdmin:
258
256
  :params search: a search query.
259
257
  :params sort_by: a sort by field name.
260
258
  :params filters: a dict of filters.
261
- :params prefetch_related_fields: a list of related fields to prefetch.
262
- :params additional_search_fields: a list of additional search fields.
263
259
  :return: A tuple of list of objects and total count.
264
260
  """
265
261
  raise NotImplementedError
@@ -244,8 +244,6 @@ class DjangoORMMixin:
244
244
  search: str | None = None,
245
245
  sort_by: str | None = None,
246
246
  filters: dict | None = None,
247
- prefetch_related_fields: list[str] | None = None,
248
- additional_search_fields: list[str] | None = None,
249
247
  ) -> tuple[list[Any], int]:
250
248
  """This method is used to get list of orm/db model objects.
251
249
 
@@ -254,15 +252,10 @@ class DjangoORMMixin:
254
252
  :params search: a search query.
255
253
  :params sort_by: a sort by field name.
256
254
  :params filters: a dict of filters.
257
- :params prefetch_related_fields: a list of related fields to prefetch.
258
- :params additional_search_fields: a list of additional search fields.
259
255
  :return: A tuple of list of objects and total count.
260
256
  """
261
257
  qs = self.model_cls.objects.all()
262
258
 
263
- if prefetch_related_fields:
264
- qs = qs.prefetch_related(*prefetch_related_fields)
265
-
266
259
  if filters:
267
260
  for field_with_condition, value in filters.items():
268
261
  field = field_with_condition[0]
@@ -270,9 +263,6 @@ class DjangoORMMixin:
270
263
  qs = qs.filter(**{f"{field}__{condition}" if condition != "exact" else field: value})
271
264
 
272
265
  search_fields = list(self.search_fields)
273
- if additional_search_fields:
274
- search_fields.extend(additional_search_fields)
275
-
276
266
  if search and search_fields:
277
267
  search_conditions = [Q(**{f + "__icontains": search}) for f in search_fields]
278
268
  search_q = search_conditions[0]
@@ -224,8 +224,6 @@ class PonyORMMixin:
224
224
  search: str | None = None,
225
225
  sort_by: str | None = None,
226
226
  filters: dict | None = None,
227
- prefetch_related_fields: list[str] | None = None,
228
- additional_search_fields: list[str] | None = None,
229
227
  ) -> tuple[list[Any], int]:
230
228
  """This method is used to get list of orm/db model objects.
231
229
 
@@ -234,8 +232,6 @@ class PonyORMMixin:
234
232
  :params search: a search query.
235
233
  :params sort_by: a sort by field name.
236
234
  :params filters: a dict of filters.
237
- :params prefetch_related_fields: a list of related fields to prefetch.
238
- :params additional_search_fields: a list of additional search fields.
239
235
  :return: A tuple of list of objects and total count.
240
236
  """
241
237
 
@@ -276,9 +272,6 @@ class PonyORMMixin:
276
272
  qs = qs.filter(filter_expr)
277
273
 
278
274
  search_fields = list(self.search_fields)
279
- if additional_search_fields:
280
- search_fields.extend(additional_search_fields)
281
-
282
275
  if search and search_fields:
283
276
  ids = []
284
277
  for search_field in search_fields:
@@ -304,9 +297,6 @@ class PonyORMMixin:
304
297
  if self.list_select_related:
305
298
  qs = qs.prefetch(*[getattr(self.model_cls, field) for field in self.list_select_related])
306
299
 
307
- if prefetch_related_fields:
308
- qs = qs.prefetch(*[getattr(self.model_cls, field) for field in prefetch_related_fields])
309
-
310
300
  if offset is not None and limit is not None:
311
301
  qs = qs.limit(limit, offset=offset)
312
302
 
@@ -300,8 +300,6 @@ class SqlAlchemyMixin:
300
300
  search: str | None = None,
301
301
  sort_by: str | None = None,
302
302
  filters: dict | None = None,
303
- prefetch_related_fields: list[str] | None = None,
304
- additional_search_fields: list[str] | None = None,
305
303
  ) -> tuple[list[Any], int]:
306
304
  """This method is used to get list of orm/db model objects.
307
305
 
@@ -310,8 +308,6 @@ class SqlAlchemyMixin:
310
308
  :params search: a search query.
311
309
  :params sort_by: a sort by field name.
312
310
  :params filters: a dict of filters.
313
- :params prefetch_related_fields: a list of related fields to prefetch.
314
- :params additional_search_fields: a list of additional search fields.
315
311
  :return: A tuple of list of objects and total count.
316
312
  """
317
313
 
@@ -324,7 +320,6 @@ class SqlAlchemyMixin:
324
320
  sessionmaker = self.get_sessionmaker()
325
321
  async with sessionmaker() as session:
326
322
  qs = select(self.model_cls)
327
-
328
323
  if filters:
329
324
  q = []
330
325
  for field_with_condition, value in filters.items():
@@ -359,9 +354,6 @@ class SqlAlchemyMixin:
359
354
  qs = qs.where(and_(*q))
360
355
 
361
356
  search_fields = list(self.search_fields)
362
- if additional_search_fields:
363
- search_fields.extend(additional_search_fields)
364
-
365
357
  if search and search_fields:
366
358
  q = []
367
359
  for field in search_fields:
@@ -385,28 +377,6 @@ class SqlAlchemyMixin:
385
377
  for field in self.list_select_related:
386
378
  qs = qs.options(selectinload(getattr(self.model_cls, field)))
387
379
 
388
- if prefetch_related_fields:
389
- for field_path in prefetch_related_fields:
390
- parts = field_path.split("__")
391
- current_model = self.model_cls
392
- attr = getattr(current_model, parts[0], None)
393
- if attr is None:
394
- continue
395
- option = selectinload(attr)
396
- current_model = getattrs(attr, "property.mapper.class_")
397
- for part in parts[1:]:
398
- if current_model is None:
399
- break
400
- nested_attr = getattr(current_model, part, None)
401
- if nested_attr is None:
402
- break
403
- next_model = getattrs(nested_attr, "property.mapper.class_")
404
- if next_model is None:
405
- break
406
- option = option.selectinload(nested_attr)
407
- current_model = next_model
408
- qs = qs.options(option)
409
-
410
380
  if offset is not None and limit is not None:
411
381
  qs = qs.offset(offset)
412
382
  qs = qs.limit(limit)
@@ -254,8 +254,6 @@ class TortoiseMixin:
254
254
  search: str | None = None,
255
255
  sort_by: str | None = None,
256
256
  filters: dict | None = None,
257
- prefetch_related_fields: list[str] | None = None,
258
- additional_search_fields: list[str] | None = None,
259
257
  ) -> tuple[list[Any], int]:
260
258
  """This method is used to get list of orm/db model objects.
261
259
 
@@ -264,15 +262,10 @@ class TortoiseMixin:
264
262
  :params search: a search query.
265
263
  :params sort_by: a sort by field name.
266
264
  :params filters: a dict of filters.
267
- :params prefetch_related_fields: a list of related fields to prefetch.
268
- :params additional_search_fields: a list of additional search fields.
269
265
  :return: A tuple of list of objects and total count.
270
266
  """
271
267
  qs = self.model_cls.all()
272
268
 
273
- if prefetch_related_fields:
274
- qs = qs.prefetch_related(*prefetch_related_fields).distinct()
275
-
276
269
  if filters:
277
270
  for field_with_condition, value in filters.items():
278
271
  field = field_with_condition[0]
@@ -280,9 +273,6 @@ class TortoiseMixin:
280
273
  qs = qs.filter(**{f"{field}__{condition}" if condition != "exact" else field: value})
281
274
 
282
275
  search_fields = list(self.search_fields)
283
- if additional_search_fields:
284
- search_fields.extend(additional_search_fields)
285
-
286
276
  if search and search_fields:
287
277
  qs = qs.filter(
288
278
  functools.reduce(