django-cfg 1.4.88__py3-none-any.whl → 1.4.89__py3-none-any.whl

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.

Potentially problematic release.


This version of django-cfg might be problematic. Click here for more details.

Files changed (146) hide show
  1. django_cfg/__init__.py +1 -1
  2. django_cfg/apps/centrifugo/views/__init__.py +0 -2
  3. django_cfg/apps/dashboard/services/__init__.py +2 -0
  4. django_cfg/apps/dashboard/services/overview_service.py +205 -0
  5. django_cfg/apps/frontend/test_routing.py +134 -0
  6. django_cfg/apps/frontend/views.py +69 -28
  7. django_cfg/apps/urls.py +0 -1
  8. django_cfg/core/builders/apps_builder.py +0 -58
  9. django_cfg/modules/django_unfold/__init__.py +5 -24
  10. django_cfg/modules/django_unfold/models/__init__.py +0 -23
  11. django_cfg/modules/django_unfold/models/config.py +11 -65
  12. django_cfg/modules/django_unfold/{dashboard.py → navigation.py} +21 -152
  13. django_cfg/modules/django_unfold/tailwind.py +2 -4
  14. django_cfg/pyproject.toml +1 -1
  15. django_cfg/registry/third_party.py +0 -9
  16. django_cfg/routing/callbacks.py +1 -43
  17. django_cfg/static/frontend/admin/404/index.html +1 -1
  18. django_cfg/static/frontend/admin/404.html +1 -1
  19. django_cfg/static/frontend/admin/500/index.html +1 -1
  20. django_cfg/static/frontend/admin/_next/static/{D_d9HRw5Yn7BRHAX5q89_ → 0sN9ktsgXH48ygtGSrhfu}/_buildManifest.js +1 -1
  21. django_cfg/static/frontend/admin/_next/static/chunks/50314-9443faa6df24aebf.js +1 -0
  22. django_cfg/static/frontend/admin/_next/static/chunks/pages/{_app-1c0fff0f59a6d683.js → _app-c7dcd3aa616fab68.js} +1 -1
  23. django_cfg/static/frontend/admin/_next/static/chunks/pages/private/{centrifugo-44a8313fa040e9ad.js → centrifugo-f9ecbc3ae0052a03.js} +1 -1
  24. django_cfg/static/frontend/admin/auth/index.html +1 -1
  25. django_cfg/static/frontend/admin/index.html +1 -1
  26. django_cfg/static/frontend/admin/legal/cookies/index.html +1 -1
  27. django_cfg/static/frontend/admin/legal/privacy/index.html +1 -1
  28. django_cfg/static/frontend/admin/legal/security/index.html +1 -1
  29. django_cfg/static/frontend/admin/legal/terms/index.html +1 -1
  30. django_cfg/static/frontend/admin/private/centrifugo/index.html +1 -1
  31. django_cfg/static/frontend/admin/private/index.html +1 -1
  32. django_cfg/static/frontend/admin/private/profile/index.html +1 -1
  33. django_cfg/static/frontend/admin/private/ui/index.html +2 -2
  34. {django_cfg-1.4.88.dist-info → django_cfg-1.4.89.dist-info}/METADATA +1 -1
  35. {django_cfg-1.4.88.dist-info → django_cfg-1.4.89.dist-info}/RECORD +39 -143
  36. django_cfg/apps/centrifugo/static/django_cfg_centrifugo/css/dashboard.css +0 -260
  37. django_cfg/apps/centrifugo/static/django_cfg_centrifugo/js/dashboard/live_channels.mjs +0 -313
  38. django_cfg/apps/centrifugo/static/django_cfg_centrifugo/js/dashboard/live_testing.mjs +0 -803
  39. django_cfg/apps/centrifugo/static/django_cfg_centrifugo/js/dashboard/main.mjs +0 -341
  40. django_cfg/apps/centrifugo/static/django_cfg_centrifugo/js/dashboard/overview.mjs +0 -432
  41. django_cfg/apps/centrifugo/static/django_cfg_centrifugo/js/dashboard/testing.mjs +0 -33
  42. django_cfg/apps/centrifugo/static/django_cfg_centrifugo/js/dashboard/websocket.mjs +0 -210
  43. django_cfg/apps/centrifugo/templates/django_cfg_centrifugo/components/channels_content.html +0 -46
  44. django_cfg/apps/centrifugo/templates/django_cfg_centrifugo/components/live_channels_content.html +0 -123
  45. django_cfg/apps/centrifugo/templates/django_cfg_centrifugo/components/overview_content.html +0 -45
  46. django_cfg/apps/centrifugo/templates/django_cfg_centrifugo/components/publishes_content.html +0 -84
  47. django_cfg/apps/centrifugo/templates/django_cfg_centrifugo/components/stat_cards.html +0 -53
  48. django_cfg/apps/centrifugo/templates/django_cfg_centrifugo/components/system_status.html +0 -91
  49. django_cfg/apps/centrifugo/templates/django_cfg_centrifugo/components/tab_navigation.html +0 -29
  50. django_cfg/apps/centrifugo/templates/django_cfg_centrifugo/components/testing_tools.html +0 -415
  51. django_cfg/apps/centrifugo/templates/django_cfg_centrifugo/layout/base.html +0 -61
  52. django_cfg/apps/centrifugo/templates/django_cfg_centrifugo/pages/dashboard.html +0 -58
  53. django_cfg/apps/centrifugo/templates/django_cfg_centrifugo/tags/connection_script.html +0 -48
  54. django_cfg/apps/centrifugo/templatetags/__init__.py +0 -1
  55. django_cfg/apps/centrifugo/templatetags/centrifugo_tags.py +0 -81
  56. django_cfg/apps/centrifugo/urls_admin.py +0 -20
  57. django_cfg/apps/centrifugo/views/dashboard.py +0 -28
  58. django_cfg/modules/django_dashboard/__init__.py +0 -23
  59. django_cfg/modules/django_dashboard/components.py +0 -312
  60. django_cfg/modules/django_dashboard/debug.py +0 -174
  61. django_cfg/modules/django_dashboard/management/__init__.py +0 -0
  62. django_cfg/modules/django_dashboard/management/commands/__init__.py +0 -0
  63. django_cfg/modules/django_dashboard/management/commands/debug_dashboard.py +0 -109
  64. django_cfg/modules/django_dashboard/sections/__init__.py +0 -1
  65. django_cfg/modules/django_dashboard/sections/base.py +0 -129
  66. django_cfg/modules/django_dashboard/sections/commands.py +0 -33
  67. django_cfg/modules/django_dashboard/sections/documentation.py +0 -393
  68. django_cfg/modules/django_dashboard/sections/overview.py +0 -398
  69. django_cfg/modules/django_dashboard/sections/stats.py +0 -48
  70. django_cfg/modules/django_dashboard/sections/system.py +0 -74
  71. django_cfg/modules/django_dashboard/sections/widgets.py +0 -222
  72. django_cfg/modules/django_unfold/callbacks/__init__.py +0 -9
  73. django_cfg/modules/django_unfold/callbacks/actions.py +0 -51
  74. django_cfg/modules/django_unfold/callbacks/apizones.py +0 -122
  75. django_cfg/modules/django_unfold/callbacks/base.py +0 -290
  76. django_cfg/modules/django_unfold/callbacks/charts.py +0 -223
  77. django_cfg/modules/django_unfold/callbacks/commands.py +0 -40
  78. django_cfg/modules/django_unfold/callbacks/main.py +0 -322
  79. django_cfg/modules/django_unfold/callbacks/statistics.py +0 -240
  80. django_cfg/modules/django_unfold/callbacks/system.py +0 -180
  81. django_cfg/modules/django_unfold/callbacks/users.py +0 -65
  82. django_cfg/modules/django_unfold/models/dashboard.py +0 -207
  83. django_cfg/modules/django_unfold/models/tabs.py +0 -26
  84. django_cfg/modules/django_unfold/models.py +0 -98
  85. django_cfg/modules/django_unfold/templates/unfold/helpers/app_list.html +0 -102
  86. django_cfg/static/frontend/admin/_next/static/chunks/50314-5ec79b293c2283dd.js +0 -1
  87. django_cfg/templates/admin/sections/commands_section.html +0 -5
  88. django_cfg/templates/admin/sections/documentation_section.html +0 -5
  89. django_cfg/templates/admin/sections/overview_section.html +0 -5
  90. django_cfg/templates/admin/sections/stats_section.html +0 -5
  91. django_cfg/templates/admin/sections/system_section.html +0 -5
  92. django_cfg/templates/admin/sections/widgets_section.html +0 -11
  93. django_cfg/templates/admin_old/components/action_grid.html +0 -49
  94. django_cfg/templates/admin_old/components/card.html +0 -50
  95. django_cfg/templates/admin_old/components/data_table.html +0 -67
  96. django_cfg/templates/admin_old/components/metric_card.html +0 -39
  97. django_cfg/templates/admin_old/components/modal.html +0 -58
  98. django_cfg/templates/admin_old/components/progress_bar.html +0 -20
  99. django_cfg/templates/admin_old/components/section_header.html +0 -26
  100. django_cfg/templates/admin_old/components/stat_item.html +0 -32
  101. django_cfg/templates/admin_old/components/stats_grid.html +0 -72
  102. django_cfg/templates/admin_old/components/status_badge.html +0 -28
  103. django_cfg/templates/admin_old/components/user_avatar.html +0 -27
  104. django_cfg/templates/admin_old/constance/change_list.html +0 -74
  105. django_cfg/templates/admin_old/constance/includes/default_value.html +0 -24
  106. django_cfg/templates/admin_old/constance/includes/fieldset_header.html +0 -15
  107. django_cfg/templates/admin_old/constance/includes/results_list.html +0 -16
  108. django_cfg/templates/admin_old/constance/includes/setting_row.html +0 -50
  109. django_cfg/templates/admin_old/constance/includes/table_headers.html +0 -10
  110. django_cfg/templates/admin_old/examples/component_class_example.html +0 -156
  111. django_cfg/templates/admin_old/import_export/change_list_export.html +0 -24
  112. django_cfg/templates/admin_old/import_export/change_list_import.html +0 -24
  113. django_cfg/templates/admin_old/import_export/change_list_import_export.html +0 -34
  114. django_cfg/templates/admin_old/index.html +0 -80
  115. django_cfg/templates/admin_old/index_new.html +0 -119
  116. django_cfg/templates/admin_old/layouts/base_dashboard.html +0 -62
  117. django_cfg/templates/admin_old/layouts/dashboard_with_tabs.html +0 -176
  118. django_cfg/templates/admin_old/sections/commands_section.html +0 -549
  119. django_cfg/templates/admin_old/sections/documentation_section.html +0 -152
  120. django_cfg/templates/admin_old/sections/overview_section.html +0 -112
  121. django_cfg/templates/admin_old/sections/stats_section.html +0 -35
  122. django_cfg/templates/admin_old/sections/system_section.html +0 -99
  123. django_cfg/templates/admin_old/sections/widgets_section.html +0 -129
  124. django_cfg/templates/admin_old/snippets/components/activity_tracker.html +0 -70
  125. django_cfg/templates/admin_old/snippets/components/charts_section.html +0 -113
  126. django_cfg/templates/admin_old/snippets/components/django_commands.html +0 -270
  127. django_cfg/templates/admin_old/snippets/components/quick_actions.html +0 -66
  128. django_cfg/templates/admin_old/snippets/components/recent_activity_improved.html +0 -25
  129. django_cfg/templates/admin_old/snippets/components/recent_users_table.html +0 -102
  130. django_cfg/templates/admin_old/snippets/components/stats_cards.html +0 -4
  131. django_cfg/templates/admin_old/snippets/components/stats_tiles.html +0 -92
  132. django_cfg/templates/admin_old/snippets/components/system_health.html +0 -22
  133. django_cfg/templates/admin_old/snippets/components/system_metrics.html +0 -199
  134. django_cfg/templates/admin_old/snippets/components/user_permissions.html +0 -57
  135. django_cfg/templates/admin_old/snippets/tabs/app_stats_tab.html +0 -201
  136. django_cfg/templates/admin_old/snippets/tabs/commands_tab.html +0 -114
  137. django_cfg/templates/admin_old/snippets/tabs/documentation_tab.html +0 -42
  138. django_cfg/templates/admin_old/snippets/tabs/overview_tab.html +0 -116
  139. django_cfg/templates/admin_old/snippets/tabs/stats_tab.html +0 -89
  140. django_cfg/templates/admin_old/snippets/tabs/users_tab.html +0 -51
  141. django_cfg/templates/admin_old/snippets/tabs/widgets_tab.html +0 -38
  142. django_cfg/templates/admin_old/snippets/zones/zones_table.html +0 -176
  143. /django_cfg/static/frontend/admin/_next/static/{D_d9HRw5Yn7BRHAX5q89_ → 0sN9ktsgXH48ygtGSrhfu}/_ssgManifest.js +0 -0
  144. {django_cfg-1.4.88.dist-info → django_cfg-1.4.89.dist-info}/WHEEL +0 -0
  145. {django_cfg-1.4.88.dist-info → django_cfg-1.4.89.dist-info}/entry_points.txt +0 -0
  146. {django_cfg-1.4.88.dist-info → django_cfg-1.4.89.dist-info}/licenses/LICENSE +0 -0
@@ -1,16 +0,0 @@
1
- {% load admin_list static i18n %}
2
-
3
- <tbody x-data="{ rowsOpen: {% if forloop.first %}true{% else %}false{% endif %} }"
4
- @collapse-all.window="rowsOpen = false"
5
- @expand-all.window="rowsOpen = true">
6
- <!-- Fieldset Header -->
7
- {% include "admin/constance/includes/fieldset_header.html" %}
8
-
9
- <!-- Table Headers -->
10
- {% include "admin/constance/includes/table_headers.html" %}
11
-
12
- <!-- Setting Rows -->
13
- {% for item in config_values %}
14
- {% include "admin/constance/includes/setting_row.html" %}
15
- {% endfor %}
16
- </tbody>
@@ -1,50 +0,0 @@
1
- {% load i18n %}
2
-
3
- <tr class="border-t border-base-200 h-[55px] *:px-3 *:py-2 *:align-middle dark:border-base-800 hover:bg-base-25 dark:hover:bg-base-900 transition-colors" x-show="rowsOpen" x-transition:enter="transition ease-out duration-200" x-transition:enter-start="opacity-0 transform -translate-y-1" x-transition:enter-end="opacity-100 transform translate-y-0">
4
- <!-- Name/Description Column -->
5
- <td class="font-normal text-left align-top">
6
- <div class="text-sm text-font-default-light dark:text-font-default-dark">
7
- {{ item.help_text|linebreaksbr }}
8
- </div>
9
- </td>
10
-
11
- <!-- Value Column -->
12
- <td class="{% if item.form_field.errors %}group errors{% endif %} align-top">
13
- {{ item.form_field }}
14
- {% include "unfold/helpers/form_errors.html" with errors=item.form_field.errors %}
15
- </td>
16
-
17
- <!-- Default Value Column -->
18
- <td class="align-top">
19
- {% include "admin/constance/includes/default_value.html" %}
20
- </td>
21
-
22
- <!-- Code Column -->
23
- <td class="align-top">
24
- <a class="item-name item-anchor" href="#{{ item.name|slugify }}" tabindex="-1" id="{{ item.name|slugify }}" title="Link to this setting">
25
- {% include "unfold/helpers/label.html" with text=item.name type="info" %}
26
- </a>
27
- </td>
28
-
29
- <!-- Modified Column -->
30
- <td class="align-top text-center">
31
- {% include "unfold/helpers/boolean.html" with value=item.modified %}
32
- </td>
33
-
34
- <!-- Reset Column -->
35
- <td class="w-px align-top text-center">
36
- {% if not item.is_file %}
37
- <a href="#"
38
- tabindex="-1"
39
- class="flex items-center gap-1 reset-link whitespace-nowrap hover:bg-base-100 dark:hover:bg-base-800 p-1 rounded transition-colors"
40
- data-default="{% spaceless %}{% if item.is_checkbox %}{% if item.raw_default %} true {% else %} false {% endif %}{% elif item.is_date %}{{ item.raw_default|date:"U" }}{% elif item.is_datetime %}{{ item.raw_default|date:"U" }}{% else %}{{ item.default }}{% endif %}{% endspaceless %}"
41
- data-field-type="{% spaceless %}{% if item.is_checkbox %}checkbox{% elif item.is_datetime %}datetime{% elif item.is_date %}date{% endif %}{% endspaceless %}"
42
- data-field-id="{{ item.form_field.auto_id }}"
43
- title="{% trans "Reset to default" %}">
44
- <span class="material-symbols-outlined text-base-400 hover:text-base-700 dark:text-base-500 dark:hover:text-base-200 transition-colors">
45
- refresh
46
- </span>
47
- </a>
48
- {% endif %}
49
- </td>
50
- </tr>
@@ -1,10 +0,0 @@
1
- {% load i18n %}
2
-
3
- <tr class="{% if fieldset.title %}border-t{% endif %} border-base-200 dark:border-base-800 *:font-semibold *:px-3 *:py-2 *:text-left *:text-font-important-light dark:*:text-font-important-dark" x-show="rowsOpen" x-transition:enter="transition ease-out duration-200" x-transition:enter-start="opacity-0 transform -translate-y-2" x-transition:enter-end="opacity-100 transform translate-y-0">
4
- <th class="w-1/4">{% trans "Name" %}</th>
5
- <th class="w-1/3">{% trans "Value" %}</th>
6
- <th class="w-1/5">{% trans "Default" %}</th>
7
- <th class="w-1/6">{% trans "Code" %}</th>
8
- <th class="w-16">{% trans "Modified" %}</th>
9
- <th class="w-12"></th>
10
- </tr>
@@ -1,156 +0,0 @@
1
- {% load unfold %}
2
-
3
- <!--
4
- Component Class Example Template
5
-
6
- This demonstrates using Unfold's Component Class system with @register_component.
7
- This is an ALTERNATIVE approach to the section-based architecture.
8
-
9
- Benefits:
10
- - Templates specify which component to use
11
- - Components handle their own data fetching
12
- - More self-contained and reusable
13
-
14
- Usage:
15
- - Add to UNFOLD settings: custom page or tab
16
- - Components automatically fetch data when rendered
17
- -->
18
-
19
- <div class="space-y-8">
20
- <!-- System Metrics using Component Class -->
21
- <div>
22
- <h2 class="text-xl font-semibold mb-4">System Metrics (Component Class)</h2>
23
-
24
- <div class="grid grid-cols-1 md:grid-cols-2 gap-6">
25
- <!-- Database Metric -->
26
- {% component "unfold/components/card.html" with title="Database" component_class="SystemMetricsComponent" %}
27
- {% if data.database %}
28
- {% component "unfold/components/progress.html" with
29
- value=data.database.value
30
- title=data.database.title
31
- description=data.database.description %}
32
- {% endcomponent %}
33
- {% endif %}
34
- {% endcomponent %}
35
-
36
- <!-- Cache Metric -->
37
- {% component "unfold/components/card.html" with title="Cache" component_class="SystemMetricsComponent" %}
38
- {% if data.cache %}
39
- {% component "unfold/components/progress.html" with
40
- value=data.cache.value
41
- title=data.cache.title
42
- description=data.cache.description %}
43
- {% endcomponent %}
44
- {% endif %}
45
- {% endcomponent %}
46
-
47
- <!-- Storage Metric -->
48
- {% component "unfold/components/card.html" with title="Storage" component_class="SystemMetricsComponent" %}
49
- {% if data.storage %}
50
- {% component "unfold/components/progress.html" with
51
- value=data.storage.value
52
- title=data.storage.title
53
- description=data.storage.description %}
54
- {% endcomponent %}
55
- {% endif %}
56
- {% endcomponent %}
57
-
58
- <!-- API Metric -->
59
- {% component "unfold/components/card.html" with title="API" component_class="SystemMetricsComponent" %}
60
- {% if data.api %}
61
- {% component "unfold/components/progress.html" with
62
- value=data.api.value
63
- title=data.api.title
64
- description=data.api.description %}
65
- {% endcomponent %}
66
- {% endif %}
67
- {% endcomponent %}
68
- </div>
69
- </div>
70
-
71
- <!-- Recent Users using Component Class -->
72
- <div>
73
- <h2 class="text-xl font-semibold mb-4">Recent Users (Component Class)</h2>
74
-
75
- {% component "unfold/components/card.html" with title="Latest Registrations" component_class="RecentUsersComponent" %}
76
- {% if data.rows %}
77
- {% component "unfold/components/table.html" with
78
- table=data
79
- striped=1
80
- height=400 %}
81
- {% endcomponent %}
82
- {% else %}
83
- <p class="text-font-subtle-light dark:text-font-subtle-dark">No users yet</p>
84
- {% endif %}
85
- {% endcomponent %}
86
- </div>
87
-
88
- <!-- Charts using Component Class -->
89
- <div>
90
- <h2 class="text-xl font-semibold mb-4">Analytics (Component Class)</h2>
91
-
92
- <div class="grid grid-cols-1 lg:grid-cols-2 gap-6">
93
- <!-- User Registrations Chart -->
94
- {% component "unfold/components/card.html" with title="User Registrations" component_class="ChartsComponent" days=7 %}
95
- {% if data.registrations %}
96
- {% component "unfold/components/chart/line.html" with
97
- data=data.registrations
98
- height=300 %}
99
- {% endcomponent %}
100
- {% else %}
101
- <p class="text-font-subtle-light dark:text-font-subtle-dark">No data available</p>
102
- {% endif %}
103
- {% endcomponent %}
104
-
105
- <!-- User Activity Chart -->
106
- {% component "unfold/components/card.html" with title="User Activity" component_class="ChartsComponent" days=7 %}
107
- {% if data.activity %}
108
- {% component "unfold/components/chart/bar.html" with
109
- data=data.activity
110
- height=300 %}
111
- {% endcomponent %}
112
- {% else %}
113
- <p class="text-font-subtle-light dark:text-font-subtle-dark">No data available</p>
114
- {% endif %}
115
- {% endcomponent %}
116
- </div>
117
- </div>
118
-
119
- <!-- Activity Tracker using Component Class -->
120
- <div>
121
- <h2 class="text-xl font-semibold mb-4">Activity Tracker (Component Class)</h2>
122
-
123
- {% component "unfold/components/card.html" with title="365 Day Heatmap" component_class="ActivityTrackerComponent" %}
124
- {% if data %}
125
- {% component "unfold/components/tracker.html" with data=data %}
126
- {% endcomponent %}
127
- {% else %}
128
- <p class="text-font-subtle-light dark:text-font-subtle-dark">No activity data</p>
129
- {% endif %}
130
- {% endcomponent %}
131
- </div>
132
- </div>
133
-
134
- <!--
135
- How Component Classes Work:
136
-
137
- 1. Template specifies: component_class="SystemMetricsComponent"
138
- 2. Unfold finds registered component by name
139
- 3. Component's get_context_data() is called
140
- 4. Data is fetched and returned
141
- 5. Template receives data and renders
142
-
143
- Comparison with Section-Based Approach:
144
-
145
- Section-Based (current):
146
- - Section class prepares all data
147
- - Template receives pre-processed data
148
- - Single render call for entire section
149
-
150
- Component Classes:
151
- - Each component fetches its own data
152
- - More granular, reusable components
153
- - Multiple component renders per page
154
-
155
- Both approaches are valid - choose based on needs!
156
- -->
@@ -1,24 +0,0 @@
1
- {% extends "admin/change_list.html" %}
2
- {% load admin_urls i18n %}
3
-
4
- {% block object-tools %}
5
- {# Export only button #}
6
- <div class="ml-2 flex flex-row items-center gap-2">
7
- {% if has_export_permission %}
8
- <a href="{% url opts|admin_urlname:'export' %}{{ cl.get_query_string }}"
9
- class="bg-white border border-base-200 cursor-pointer flex font-medium gap-2 items-center px-3 py-2 rounded-default shadow-xs text-sm hover:text-primary-600 dark:bg-base-900 dark:border-base-700 dark:hover:text-primary-500">
10
- <span class="material-symbols-outlined">download</span>
11
- {% trans "Export" %}
12
- </a>
13
- {% endif %}
14
-
15
- {# Add button and other standard tools #}
16
- {% if has_add_permission %}
17
- <a href="{% url cl.opts|admin_urlname:'add' %}{% if is_popup %}?{{ popup_var }}=1{% endif %}"
18
- class="addlink bg-primary-600 flex items-center h-9 justify-center -my-1 rounded-full w-9"
19
- title="{% blocktrans with cl.opts.verbose_name as name %}Add {{ name }}{% endblocktrans %}">
20
- <span class="material-symbols-outlined text-white">add</span>
21
- </a>
22
- {% endif %}
23
- </div>
24
- {% endblock %}
@@ -1,24 +0,0 @@
1
- {% extends "admin/change_list.html" %}
2
- {% load admin_urls i18n %}
3
-
4
- {% block object-tools %}
5
- {# Import only button #}
6
- <div class="ml-2 flex flex-row items-center gap-2">
7
- {% if has_import_permission %}
8
- <a href="{% url opts|admin_urlname:"import" %}"
9
- class="bg-white border border-base-200 cursor-pointer flex font-medium gap-2 items-center px-3 py-2 rounded-default shadow-xs text-sm hover:text-primary-600 dark:bg-base-900 dark:border-base-700 dark:hover:text-primary-500">
10
- <span class="material-symbols-outlined">upload</span>
11
- {% trans "Import" %}
12
- </a>
13
- {% endif %}
14
-
15
- {# Add button and other standard tools #}
16
- {% if has_add_permission %}
17
- <a href="{% url cl.opts|admin_urlname:'add' %}{% if is_popup %}?{{ popup_var }}=1{% endif %}"
18
- class="addlink bg-primary-600 flex items-center h-9 justify-center -my-1 rounded-full w-9"
19
- title="{% blocktrans with cl.opts.verbose_name as name %}Add {{ name }}{% endblocktrans %}">
20
- <span class="material-symbols-outlined text-white">add</span>
21
- </a>
22
- {% endif %}
23
- </div>
24
- {% endblock %}
@@ -1,34 +0,0 @@
1
- {% extends "admin/change_list.html" %}
2
- {% load admin_urls i18n %}
3
-
4
- {% block object-tools %}
5
- {# Override object-tools to integrate import/export buttons into unfold header #}
6
- <div class="ml-2 flex flex-row items-center gap-2">
7
- {# Import button #}
8
- {% if has_import_permission %}
9
- <a href="{% url opts|admin_urlname:"import" %}"
10
- class="bg-white border border-base-200 cursor-pointer flex font-medium gap-2 items-center px-3 py-2 rounded-default shadow-xs text-sm hover:text-primary-600 dark:bg-base-900 dark:border-base-700 dark:hover:text-primary-500">
11
- <span class="material-symbols-outlined">upload</span>
12
- {% trans "Import" %}
13
- </a>
14
- {% endif %}
15
-
16
- {# Export button #}
17
- {% if has_export_permission %}
18
- <a href="{% url opts|admin_urlname:'export' %}{{ cl.get_query_string }}"
19
- class="bg-white border border-base-200 cursor-pointer flex font-medium gap-2 items-center px-3 py-2 rounded-default shadow-xs text-sm hover:text-primary-600 dark:bg-base-900 dark:border-base-700 dark:hover:text-primary-500">
20
- <span class="material-symbols-outlined">download</span>
21
- {% trans "Export" %}
22
- </a>
23
- {% endif %}
24
-
25
- {# Add button and other standard tools #}
26
- {% if has_add_permission %}
27
- <a href="{% url cl.opts|admin_urlname:'add' %}{% if is_popup %}?{{ popup_var }}=1{% endif %}"
28
- class="addlink bg-primary-600 flex items-center h-9 justify-center -my-1 rounded-full w-9"
29
- title="{% blocktrans with cl.opts.verbose_name as name %}Add {{ name }}{% endblocktrans %}">
30
- <span class="material-symbols-outlined text-white">add</span>
31
- </a>
32
- {% endif %}
33
- </div>
34
- {% endblock %}
@@ -1,80 +0,0 @@
1
- {% extends 'admin/layouts/dashboard_with_tabs.html' %}
2
-
3
- {% load unfold %}
4
-
5
- {% block overview_tab %}
6
- {% if overview_section %}
7
- {{ overview_section|safe }}
8
- {% else %}
9
- {% include 'admin/snippets/tabs/overview_tab.html' %}
10
- {% endif %}
11
- {% endblock %}
12
-
13
- {% block zones_tab %}
14
- {% if zones_section %}
15
- {{ zones_section|safe }}
16
- {% else %}
17
- {% include 'admin/snippets/zones/zones_table.html' %}
18
- {% endif %}
19
- {% endblock %}
20
-
21
- {% block users_tab %}
22
- {% if users_section %}
23
- {{ users_section|safe }}
24
- {% else %}
25
- {% include 'admin/snippets/tabs/users_tab.html' %}
26
- {% endif %}
27
- {% endblock %}
28
-
29
- {% block system_tab %}
30
- {% if system_section %}
31
- {{ system_section|safe }}
32
- {% else %}
33
- <div class="space-y-8">
34
- <h2 class="text-xl font-semibold text-font-important-light dark:text-font-important-dark mb-4">
35
- System Management
36
- </h2>
37
-
38
- <!-- System Health -->
39
- {% include 'admin/snippets/components/system_health.html' %}
40
-
41
- <!-- System Metrics -->
42
- {% include 'admin/snippets/components/system_metrics.html' %}
43
-
44
- <!-- Activity Tracker -->
45
- {% include 'admin/snippets/components/activity_tracker.html' %}
46
- </div>
47
- {% endif %}
48
- {% endblock %}
49
-
50
- {% block stats_tab %}
51
- {% if stats_section %}
52
- {{ stats_section|safe }}
53
- {% else %}
54
- {% include 'admin/snippets/tabs/stats_tab.html' %}
55
- {% endif %}
56
- {% endblock %}
57
-
58
- {% block app_stats_tab %}
59
- {% if app_stats_section %}
60
- {{ app_stats_section|safe }}
61
- {% else %}
62
- {% include 'admin/snippets/tabs/app_stats_tab.html' with stats_groups=stats_groups %}
63
- {% endif %}
64
- {% endblock %}
65
-
66
- {% block commands_tab %}
67
- {% if commands_section %}
68
- {{ commands_section|safe }}
69
- {% else %}
70
- {% include 'admin/snippets/tabs/commands_tab.html' %}
71
- {% endif %}
72
- {% endblock %}
73
-
74
- {% block widgets_tab %}
75
- {% if widgets_section %}
76
- {{ widgets_section|safe }}
77
- {% else %}
78
- {% include 'admin/snippets/tabs/widgets_tab.html' %}
79
- {% endif %}
80
- {% endblock %}
@@ -1,119 +0,0 @@
1
- {% extends 'admin/layouts/base_dashboard.html' %}
2
-
3
- {% load unfold %}
4
-
5
- {% block tabs %}
6
- <button type="button" data-tab="0" class="px-4 py-3 rounded-t-lg focus:outline-none font-semibold active">
7
- <span class="material-icons mr-2 align-middle text-sm">dashboard</span>
8
- Overview
9
- </button>
10
- <button type="button" data-tab="1" class="px-4 py-3 rounded-t-lg focus:outline-none">
11
- <span class="material-icons mr-2 align-middle text-sm">public</span>
12
- API Zones
13
- </button>
14
- <button type="button" data-tab="2" class="px-4 py-3 rounded-t-lg focus:outline-none">
15
- <span class="material-icons mr-2 align-middle text-sm">people</span>
16
- Users
17
- </button>
18
- <button type="button" data-tab="3" class="px-4 py-3 rounded-t-lg focus:outline-none">
19
- <span class="material-icons mr-2 align-middle text-sm">settings</span>
20
- System
21
- </button>
22
- <button type="button" data-tab="4" class="px-4 py-3 rounded-t-lg focus:outline-none">
23
- <span class="material-icons mr-2 align-middle text-sm">analytics</span>
24
- Statistics
25
- </button>
26
- <button type="button" data-tab="5" class="px-4 py-3 rounded-t-lg focus:outline-none">
27
- <span class="material-icons mr-2 align-middle text-sm">apps</span>
28
- App Stats
29
- </button>
30
- <button type="button" data-tab="6" class="px-4 py-3 rounded-t-lg focus:outline-none">
31
- <span class="material-icons mr-2 align-middle text-sm">terminal</span>
32
- Commands
33
- </button>
34
- <button type="button" data-tab="7" class="px-4 py-3 rounded-t-lg focus:outline-none">
35
- <span class="material-icons mr-2 align-middle text-sm">description</span>
36
- Documentation
37
- </button>
38
- {% endblock %}
39
-
40
- {% block tab_content %}
41
- <!-- Overview Tab -->
42
- <div class="tab-content active" data-tab="0">
43
- {% if overview_section %}
44
- {{ overview_section|safe }}
45
- {% else %}
46
- {% include 'admin/snippets/tabs/overview_tab.html' %}
47
- {% endif %}
48
- </div>
49
-
50
- <!-- Zones Tab -->
51
- <div class="tab-content" data-tab="1">
52
- {% if zones_section %}
53
- {{ zones_section|safe }}
54
- {% else %}
55
- {% include 'admin/snippets/zones/zones_table.html' %}
56
- {% endif %}
57
- </div>
58
-
59
- <!-- Users Tab -->
60
- <div class="tab-content" data-tab="2">
61
- {% if users_section %}
62
- {{ users_section|safe }}
63
- {% else %}
64
- {% include 'admin/snippets/tabs/users_tab.html' %}
65
- {% endif %}
66
- </div>
67
-
68
- <!-- System Tab -->
69
- <div class="tab-content" data-tab="3">
70
- {% if system_section %}
71
- {{ system_section|safe }}
72
- {% else %}
73
- <div class="space-y-8">
74
- <h2 class="text-xl font-semibold text-font-important-light dark:text-font-important-dark mb-4">
75
- System Management
76
- </h2>
77
- {% include 'admin/snippets/components/system_health.html' %}
78
- {% include 'admin/snippets/components/system_metrics.html' %}
79
- {% include 'admin/snippets/components/activity_tracker.html' %}
80
- </div>
81
- {% endif %}
82
- </div>
83
-
84
- <!-- Stats Tab -->
85
- <div class="tab-content" data-tab="4">
86
- {% if stats_section %}
87
- {{ stats_section|safe }}
88
- {% else %}
89
- {% include 'admin/snippets/tabs/stats_tab.html' %}
90
- {% endif %}
91
- </div>
92
-
93
- <!-- App Stats Tab -->
94
- <div class="tab-content" data-tab="5">
95
- {% if app_stats_section %}
96
- {{ app_stats_section|safe }}
97
- {% else %}
98
- {% include 'admin/snippets/tabs/app_stats_tab.html' with stats_groups=stats_groups %}
99
- {% endif %}
100
- </div>
101
-
102
- <!-- Commands Tab -->
103
- <div class="tab-content" data-tab="6">
104
- {% if commands_section %}
105
- {{ commands_section|safe }}
106
- {% else %}
107
- {% include 'admin/snippets/tabs/commands_tab.html' %}
108
- {% endif %}
109
- </div>
110
-
111
- <!-- Documentation Tab -->
112
- <div class="tab-content" data-tab="7">
113
- {% if documentation_section %}
114
- {{ documentation_section|safe }}
115
- {% else %}
116
- {% include 'admin/snippets/tabs/documentation_tab.html' %}
117
- {% endif %}
118
- </div>
119
- {% endblock %}
@@ -1,62 +0,0 @@
1
- {% extends 'admin/base.html' %}
2
-
3
- {% load static %}
4
- {% load unfold %}
5
-
6
- {% block extrahead %}
7
- {{ block.super }}
8
- <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
9
- <link rel="stylesheet" href="{% static 'admin/css/dashboard.css' %}">
10
- {% endblock %}
11
-
12
- {% block breadcrumbs %}{% endblock %}
13
-
14
- {% block title %}
15
- {% if subtitle %}{{ subtitle }} | {% endif %}
16
- {{ title }} | {{ site_title|default:'Django site admin' }}
17
- {% endblock %}
18
-
19
- {% block branding %}
20
- {% include "unfold/helpers/site_branding.html" %}
21
- {% endblock %}
22
-
23
- {% block content %}
24
- <!-- Main Container -->
25
- {% component "unfold/components/container.html" %}
26
- <!-- Tab Navigation -->
27
- {% block tab_navigation %}
28
- <div class="flex gap-1 mb-6" id="dashboard-tabs">
29
- {% block tabs %}{% endblock %}
30
- </div>
31
- {% endblock %}
32
-
33
- <!-- Tab Content -->
34
- <div class="flex flex-col gap-5">
35
- {% block tab_content %}{% endblock %}
36
- </div>
37
-
38
- <!-- Footer -->
39
- {% block dashboard_footer %}
40
- <div class="text-center py-8 border-t theme-border mt-5">
41
- <p class="text-sm text-gray-500 dark:text-gray-400">
42
- {% load django_cfg %}
43
- <a href="{% lib_site_url %}" class="text-blue-600 hover:text-blue-700 font-medium">
44
- {% lib_name %}
45
- </a>
46
- <span class="mx-2">•</span>
47
- <a href="{% lib_health_url %}" class="text-blue-600 hover:text-blue-700">
48
- System Health
49
- </a>
50
- </p>
51
- </div>
52
- {% endblock %}
53
- {% endcomponent %}
54
- {% endblock %}
55
-
56
- {% block footer %}
57
- {{ block.super }}
58
-
59
- <!-- Utils.js is loaded in dashboard_with_tabs.html extrahead -->
60
- <!-- All legacy Vanilla JS files have been migrated to Alpine.js components -->
61
- <!-- Old files removed: dashboard.js, commands.js -->
62
- {% endblock %}