fastadmin 0.2.2__tar.gz → 0.2.4__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.
- {fastadmin-0.2.2 → fastadmin-0.2.4}/PKG-INFO +3 -6
- fastadmin-0.2.4/fastadmin/api/frameworks/django/app/views.py +19 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/api/frameworks/fastapi/views.py +9 -5
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/api/frameworks/flask/app.py +0 -1
- fastadmin-0.2.4/fastadmin/api/frameworks/flask/views.py +26 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/api/helpers.py +9 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/models/helpers.py +4 -8
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/static/index.min.js +2 -2
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/templates/index.html +3 -3
- {fastadmin-0.2.2 → fastadmin-0.2.4}/pyproject.toml +5 -8
- fastadmin-0.2.2/fastadmin/api/frameworks/django/app/views.py +0 -27
- fastadmin-0.2.2/fastadmin/api/frameworks/flask/views.py +0 -20
- {fastadmin-0.2.2 → fastadmin-0.2.4}/LICENSE +0 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/README.md +0 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/__init__.py +0 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/api/__init__.py +0 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/api/exceptions.py +0 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/api/frameworks/__init__.py +0 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/api/frameworks/django/__init__.py +0 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/api/frameworks/django/app/__init__.py +0 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/api/frameworks/django/app/api.py +0 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/api/frameworks/django/app/urls.py +0 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/api/frameworks/fastapi/__init__.py +0 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/api/frameworks/fastapi/api.py +0 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/api/frameworks/fastapi/app.py +0 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/api/frameworks/flask/__init__.py +0 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/api/frameworks/flask/api.py +0 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/api/schemas.py +0 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/api/service.py +0 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/models/__init__.py +0 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/models/base.py +0 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/models/decorators.py +0 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/models/orms/__init__.py +0 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/models/orms/django.py +0 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/models/orms/ponyorm.py +0 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/models/orms/sqlalchemy.py +0 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/models/orms/tortoise.py +0 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/models/schemas.py +0 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/settings.py +0 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/static/images/favicon.png +0 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/static/images/header-logo.svg +0 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/static/images/sign-in-logo.svg +0 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/static/index.html +0 -0
- {fastadmin-0.2.2 → fastadmin-0.2.4}/fastadmin/static/index.min.css +0 -0
@@ -1,7 +1,7 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: fastadmin
|
3
|
-
Version: 0.2.
|
4
|
-
Summary:
|
3
|
+
Version: 0.2.4
|
4
|
+
Summary: FastAdmin is an easy-to-use Admin Dashboard App for FastAPI/Flask/Django inspired by Django Admin.
|
5
5
|
Home-page: https://github.com/vsdudakov/fastadmin
|
6
6
|
License: MIT
|
7
7
|
Keywords: fastapi,admin
|
@@ -31,12 +31,9 @@ Requires-Dist: asgiref (==3.6.0)
|
|
31
31
|
Requires-Dist: django (==4.*) ; extra == "django"
|
32
32
|
Requires-Dist: fastapi (==0.*) ; extra == "fastapi"
|
33
33
|
Requires-Dist: flask (==2.*) ; extra == "flask"
|
34
|
-
Requires-Dist: greenlet (>=3.0.3,<4.0.0)
|
35
|
-
Requires-Dist: jinja2 (>=3.1.2,<4.0.0)
|
36
34
|
Requires-Dist: pony (==0.*) ; extra == "pony"
|
37
35
|
Requires-Dist: pyjwt (>=2.6.0,<3.0.0)
|
38
|
-
Requires-Dist:
|
39
|
-
Requires-Dist: sqlalchemy (==2.*) ; extra == "sqlalchemy"
|
36
|
+
Requires-Dist: sqlalchemy[asyncio] (==2.*) ; extra == "sqlalchemy"
|
40
37
|
Requires-Dist: tortoise-orm (==0.*) ; extra == "tortoise-orm"
|
41
38
|
Project-URL: Repository, https://github.com/vsdudakov/fastadmin
|
42
39
|
Description-Content-Type: text/markdown
|
@@ -0,0 +1,19 @@
|
|
1
|
+
from django.http import HttpResponse
|
2
|
+
|
3
|
+
from fastadmin.api.helpers import get_template
|
4
|
+
from fastadmin.settings import ROOT_DIR, settings
|
5
|
+
|
6
|
+
|
7
|
+
def index(request):
|
8
|
+
"""This method is used to render index page.
|
9
|
+
|
10
|
+
:params request: a request object.
|
11
|
+
:return: A response object.
|
12
|
+
"""
|
13
|
+
template = get_template(
|
14
|
+
ROOT_DIR / "templates" / "index.html",
|
15
|
+
{
|
16
|
+
"ADMIN_PREFIX": settings.ADMIN_PREFIX,
|
17
|
+
},
|
18
|
+
)
|
19
|
+
return HttpResponse(template)
|
@@ -1,21 +1,25 @@
|
|
1
1
|
import logging
|
2
2
|
|
3
|
-
from fastapi import APIRouter
|
3
|
+
from fastapi import APIRouter
|
4
4
|
from fastapi.responses import HTMLResponse
|
5
|
-
from fastapi.templating import Jinja2Templates
|
6
5
|
|
6
|
+
from fastadmin.api.helpers import get_template
|
7
7
|
from fastadmin.settings import ROOT_DIR, settings
|
8
8
|
|
9
9
|
logger = logging.getLogger(__name__)
|
10
10
|
router = APIRouter()
|
11
|
-
templates = Jinja2Templates(directory=ROOT_DIR / "templates")
|
12
11
|
|
13
12
|
|
14
13
|
@router.get("/", response_class=HTMLResponse)
|
15
|
-
|
14
|
+
def index():
|
16
15
|
"""This method is used to render index page.
|
17
16
|
|
18
17
|
:params request: a request object.
|
19
18
|
:return: A response object.
|
20
19
|
"""
|
21
|
-
return
|
20
|
+
return get_template(
|
21
|
+
ROOT_DIR / "templates" / "index.html",
|
22
|
+
{
|
23
|
+
"ADMIN_PREFIX": settings.ADMIN_PREFIX,
|
24
|
+
},
|
25
|
+
)
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import logging
|
2
|
+
|
3
|
+
from flask import Blueprint
|
4
|
+
|
5
|
+
from fastadmin.api.helpers import get_template
|
6
|
+
from fastadmin.settings import ROOT_DIR, settings
|
7
|
+
|
8
|
+
logger = logging.getLogger(__name__)
|
9
|
+
views_router = Blueprint(
|
10
|
+
"views_router",
|
11
|
+
__name__,
|
12
|
+
)
|
13
|
+
|
14
|
+
|
15
|
+
@views_router.route("/")
|
16
|
+
def index():
|
17
|
+
"""This method is used to render index page.
|
18
|
+
|
19
|
+
:return: A response object.
|
20
|
+
"""
|
21
|
+
return get_template(
|
22
|
+
ROOT_DIR / "templates" / "index.html",
|
23
|
+
{
|
24
|
+
"ADMIN_PREFIX": settings.ADMIN_PREFIX,
|
25
|
+
},
|
26
|
+
)
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import base64
|
2
2
|
import binascii
|
3
|
+
from pathlib import Path
|
3
4
|
from uuid import UUID
|
4
5
|
|
5
6
|
from fastadmin.models.schemas import ModelFieldWidgetSchema
|
@@ -78,3 +79,11 @@ def is_valid_base64(value: str) -> bool:
|
|
78
79
|
return True
|
79
80
|
except binascii.Error:
|
80
81
|
return False
|
82
|
+
|
83
|
+
|
84
|
+
def get_template(template: Path, context: dict) -> str:
|
85
|
+
with Path.open(template, "r") as file:
|
86
|
+
content = file.read()
|
87
|
+
for key, value in context.items():
|
88
|
+
content = content.replace(f"{{{{{key}}}}}", value)
|
89
|
+
return content
|
@@ -73,17 +73,13 @@ def get_admin_or_admin_inline_model(orm_model_cls: str) -> ModelAdmin | InlineMo
|
|
73
73
|
:params orm_model_cls_name: a name of model.
|
74
74
|
:return: An admin model class or an inline model class or None.
|
75
75
|
"""
|
76
|
-
if orm_model_cls.startswith("inlines."):
|
77
|
-
orm_model_cls = orm_model_cls.replace("inlines.", "")
|
78
|
-
for _, admin_model in admin_models.items():
|
79
|
-
for inline_model in admin_model.inlines:
|
80
|
-
if inline_model.model.__name__ == orm_model_cls:
|
81
|
-
return inline_model(inline_model.model)
|
82
|
-
return None
|
83
|
-
|
84
76
|
admin_model = get_admin_model(orm_model_cls)
|
85
77
|
if admin_model:
|
86
78
|
return admin_model
|
79
|
+
for admin_model in admin_models.values():
|
80
|
+
for inline in admin_model.inlines:
|
81
|
+
if inline.model.__name__ == orm_model_cls:
|
82
|
+
return inline(inline.model)
|
87
83
|
return None
|
88
84
|
|
89
85
|
|