50 | {% for tab in section_block.content %}
51 |
52 | {% for section_block in tab.content %}
53 | {% include "templates/block.html" %}
54 | {% endfor %}
55 |
56 | {% endfor %}
57 |
58 | {% endif %}
59 |
--------------------------------------------------------------------------------
/fastadmin/__init__.py:
--------------------------------------------------------------------------------
1 | # api
2 | import logging
3 |
4 | try:
5 | from fastadmin.api.frameworks.django.app.urls import get_admin_urls as get_django_admin_urls # noqa: F401
6 | from fastadmin.models.orms.django import DjangoInlineModelAdmin, DjangoModelAdmin # noqa: F401
7 | except ModuleNotFoundError: # pragma: no cover
8 | logging.info("Django is not installed") # pragma: no cover
9 |
10 | try:
11 | from fastadmin.api.frameworks.fastapi.app import app as fastapi_app # noqa: F401
12 | except ModuleNotFoundError: # pragma: no cover
13 | logging.info("FastAPI is not installed") # pragma: no cover
14 |
15 | try:
16 | from fastadmin.api.frameworks.flask.app import app as flask_app # noqa: F401
17 | except ModuleNotFoundError: # pragma: no cover
18 | logging.info("Flask is not installed") # pragma: no cover
19 |
20 | try:
21 | from fastadmin.models.orms.ponyorm import PonyORMInlineModelAdmin, PonyORMModelAdmin # noqa: F401
22 | except ModuleNotFoundError: # pragma: no cover
23 | logging.info("PonyORM is not installed") # pragma: no cover
24 |
25 | try:
26 | from fastadmin.models.orms.sqlalchemy import SqlAlchemyInlineModelAdmin, SqlAlchemyModelAdmin # noqa: F401
27 | except ModuleNotFoundError: # pragma: no cover
28 | logging.info("SQLAlchemy is not installed") # pragma: no cover
29 |
30 | try:
31 | from fastadmin.models.orms.tortoise import TortoiseInlineModelAdmin, TortoiseModelAdmin # noqa: F401
32 | except ModuleNotFoundError: # pragma: no cover
33 | logging.info("TortoiseORM is not installed") # pragma: no cover
34 |
35 | # models
36 | from fastadmin.models.base import DashboardWidgetAdmin, InlineModelAdmin, ModelAdmin # noqa: F401
37 | from fastadmin.models.decorators import action, display, register, register_widget # noqa: F401
38 | from fastadmin.models.helpers import register_admin_model_class, unregister_admin_model_class # noqa: F401
39 | from fastadmin.models.schemas import DashboardWidgetType, WidgetType # noqa: F401
40 |
--------------------------------------------------------------------------------
/frontend/src/providers/ConfigurationProvider/provider.tsx:
--------------------------------------------------------------------------------
1 | import { useQuery } from "@tanstack/react-query";
2 | import { Button, Popover, Result } from "antd";
3 | import type React from "react";
4 | import { useTranslation } from "react-i18next";
5 |
6 | import { getFetcher } from "@/fetchers/fetchers";
7 | import type { IConfiguration } from "@/interfaces/configuration";
8 |
9 | import { ConfigurationContext, defaultConfiguration } from ".";
10 |
11 | interface IConfigurationProvider {
12 | children?: React.ReactNode;
13 | }
14 |
15 | // export const ConfigurationConsumer = ConfigurationContext.Consumer;
16 |
17 | export const ConfigurationProvider = ({ children }: IConfigurationProvider) => {
18 | const { t: _t } = useTranslation("ConfigurationProvider");
19 | const configurationData = useQuery({
20 | queryKey: ["/configuration"],
21 | queryFn: () => getFetcher("/configuration"),
22 | retry: false,
23 | refetchOnWindowFocus: false,
24 | });
25 | if (configurationData.isLoading) {
26 | return null;
27 | }
28 | if (configurationData.error) {
29 | const error: any = configurationData.error;
30 | return (
31 |