mirror of
https://github.com/fastapi-admin/fastapi-admin.git
synced 2025-08-26 10:40:18 +08:00
update
This commit is contained in:
@ -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
7
examples/providers.py
Normal 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
|
@ -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"
|
||||
|
37
examples/templates/password.html
Normal file
37
examples/templates/password.html
Normal 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 %}
|
Reference in New Issue
Block a user