This commit is contained in:
long2ice
2021-05-04 22:33:30 +08:00
parent 16c54efb2c
commit 6af5852082
20 changed files with 338 additions and 162 deletions

View File

@ -11,10 +11,10 @@ from tortoise.contrib.fastapi import register_tortoise
from examples import settings
from examples.constants import BASE_DIR
from examples.models import Admin
from examples.providers import LoginProvider
from fastapi_admin.app import app as admin_app
from fastapi_admin.providers.login import UsernamePasswordProvider
login_provider = UsernamePasswordProvider(admin_model=Admin)
login_provider = LoginProvider(admin_model=Admin)
def create_app():

7
examples/providers.py Normal file
View File

@ -0,0 +1,7 @@
from fastapi_admin.models import AbstractAdmin
from fastapi_admin.providers.login import UsernamePasswordProvider
class LoginProvider(UsernamePasswordProvider):
async def update_password(self, admin: AbstractAdmin, password: str):
pass

View File

@ -1,11 +1,12 @@
import os
from typing import List
from examples import enums
from examples.constants import BASE_DIR
from examples.models import Admin, Category, Config, Product
from fastapi_admin.app import app
from fastapi_admin.providers.file_upload import FileUploadProvider
from fastapi_admin.resources import Dropdown, Field, Link, Model
from fastapi_admin.resources import Action, Dropdown, Field, Link, Model
from fastapi_admin.widgets import displays, filters, inputs
upload_provider = FileUploadProvider(uploads_dir=os.path.join(BASE_DIR, "static", "uploads"))
@ -14,7 +15,7 @@ upload_provider = FileUploadProvider(uploads_dir=os.path.join(BASE_DIR, "static"
@app.register
class Home(Link):
label = "Home"
icon = "ti ti-home"
icon = "fas fa-home"
url = "/admin"
@ -22,7 +23,7 @@ class Home(Link):
class AdminResource(Model):
label = "Admin"
model = Admin
icon = "ti ti-user"
icon = "fas fa-user"
page_pre_title = "admin list"
page_title = "admin model"
filters = [
@ -49,6 +50,13 @@ class AdminResource(Model):
),
"created_at",
]
can_create = False
def get_actions(self) -> List[Action]:
return []
def get_bulk_actions(self) -> List[Action]:
return []
@app.register
@ -78,7 +86,7 @@ class Content(Dropdown):
]
label = "Content"
icon = "ti ti-package"
icon = "fas fa-bars"
resources = [ProductResource, CategoryResource]
@ -86,7 +94,7 @@ class Content(Dropdown):
class ConfigResource(Model):
label = "Config"
model = Config
icon = "ti ti-settings"
icon = "fas fa-cogs"
filters = [
filters.Enum(enum=enums.Status, name="status", label="Status"),
filters.Search(name="key", label="Key", search_mode="equal"),
@ -107,8 +115,8 @@ class ConfigResource(Model):
@app.register
class GithubLink(Link):
label = "Github"
url = "https://github.com/long2ice"
icon = "ti ti-brand-github"
url = "https://github.com/fastapi-admin/fastapi-admin"
icon = "fab fa-github"
target = "_blank"
@ -116,5 +124,5 @@ class GithubLink(Link):
class DocumentationLink(Link):
label = "Documentation"
url = "https://long2ice.github.io/fastadmin"
icon = "ti ti-file-text"
icon = "fas fa-file-code"
target = "_blank"

View File

@ -0,0 +1,37 @@
{% extends "layout.html" %}
{% block page_body %}
{% include "components/alert_error.html" %}
<div class="card">
<div class="card-header">
<h3 class="card-title">{{ _('update_password') }} (This will not take effect because is overwrite in examples)</h3>
</div>
<div class="card-body">
<form method="post" action="{{ request.app.admin_path }}/password">
<div class="form-group mb-3">
<label class="form-label">
{{ _('old_password') }}
</label>
<input class="form-control" type="password" name="old_password"
placeholder="{{ _('old_password_placeholder') }}"/>
</div>
<div class="form-group mb-3">
<label class="form-label">
{{ _('new_password') }}
</label>
<input class="form-control" type="password" name="new_password"
placeholder="{{ _('new_password_placeholder') }}"/>
</div>
<div class="form-group mb-3">
<label class="form-label">
{{ _('re_new_password') }}
</label>
<input class="form-control" type="password" name="re_new_password"
placeholder="{{ _('re_new_password_placeholder') }}"/>
</div>
<div class="form-footer">
<button type="submit" class="btn btn-primary">{{ _('submit') }}</button>
</div>
</form>
</div>
</div>
{% endblock %}