django-admin-js 0.1.0__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.
Files changed (72) hide show
  1. django_admin_js-0.1.0/CHANGELOG.md +16 -0
  2. django_admin_js-0.1.0/CONTRIBUTING.md +41 -0
  3. django_admin_js-0.1.0/LICENSE +21 -0
  4. django_admin_js-0.1.0/MANIFEST.in +8 -0
  5. django_admin_js-0.1.0/PKG-INFO +122 -0
  6. django_admin_js-0.1.0/README.md +91 -0
  7. django_admin_js-0.1.0/django_admin_js/__init__.py +0 -0
  8. django_admin_js-0.1.0/django_admin_js/admin.py +1 -0
  9. django_admin_js-0.1.0/django_admin_js/apps.py +7 -0
  10. django_admin_js-0.1.0/django_admin_js/migrations/__init__.py +0 -0
  11. django_admin_js-0.1.0/django_admin_js/models.py +1 -0
  12. django_admin_js-0.1.0/django_admin_js/templates/admin/404.html +27 -0
  13. django_admin_js-0.1.0/django_admin_js/templates/admin/500.html +34 -0
  14. django_admin_js-0.1.0/django_admin_js/templates/admin/actions.html +33 -0
  15. django_admin_js-0.1.0/django_admin_js/templates/admin/admin_styles.css +895 -0
  16. django_admin_js-0.1.0/django_admin_js/templates/admin/app_index.html +20 -0
  17. django_admin_js-0.1.0/django_admin_js/templates/admin/app_list.html +60 -0
  18. django_admin_js-0.1.0/django_admin_js/templates/admin/auth/user/add_form.html +10 -0
  19. django_admin_js-0.1.0/django_admin_js/templates/admin/auth/user/change_password.html +57 -0
  20. django_admin_js-0.1.0/django_admin_js/templates/admin/base.html +971 -0
  21. django_admin_js-0.1.0/django_admin_js/templates/admin/base_site.html +19 -0
  22. django_admin_js-0.1.0/django_admin_js/templates/admin/change_form.html +92 -0
  23. django_admin_js-0.1.0/django_admin_js/templates/admin/change_form_object_tools.html +8 -0
  24. django_admin_js-0.1.0/django_admin_js/templates/admin/change_list.html +323 -0
  25. django_admin_js-0.1.0/django_admin_js/templates/admin/change_list_object_tools.html +13 -0
  26. django_admin_js-0.1.0/django_admin_js/templates/admin/change_list_results.html +36 -0
  27. django_admin_js-0.1.0/django_admin_js/templates/admin/color_theme_toggle.html +15 -0
  28. django_admin_js-0.1.0/django_admin_js/templates/admin/date_hierarchy.html +14 -0
  29. django_admin_js-0.1.0/django_admin_js/templates/admin/delete_confirmation.html +82 -0
  30. django_admin_js-0.1.0/django_admin_js/templates/admin/delete_selected_confirmation.html +81 -0
  31. django_admin_js-0.1.0/django_admin_js/templates/admin/edit_inline/stacked.html +66 -0
  32. django_admin_js-0.1.0/django_admin_js/templates/admin/edit_inline/tabular.html +94 -0
  33. django_admin_js-0.1.0/django_admin_js/templates/admin/filter.html +19 -0
  34. django_admin_js-0.1.0/django_admin_js/templates/admin/includes/aurora_bg.html +4 -0
  35. django_admin_js-0.1.0/django_admin_js/templates/admin/includes/breadcrumbs.html +12 -0
  36. django_admin_js-0.1.0/django_admin_js/templates/admin/includes/command_palette.html +217 -0
  37. django_admin_js-0.1.0/django_admin_js/templates/admin/includes/dashboard_stats.html +41 -0
  38. django_admin_js-0.1.0/django_admin_js/templates/admin/includes/fieldset.html +34 -0
  39. django_admin_js-0.1.0/django_admin_js/templates/admin/includes/header.html +95 -0
  40. django_admin_js-0.1.0/django_admin_js/templates/admin/includes/object_delete_summary.html +7 -0
  41. django_admin_js-0.1.0/django_admin_js/templates/admin/index.html +61 -0
  42. django_admin_js-0.1.0/django_admin_js/templates/admin/invalid_setup.html +13 -0
  43. django_admin_js-0.1.0/django_admin_js/templates/admin/login.html +120 -0
  44. django_admin_js-0.1.0/django_admin_js/templates/admin/nav_sidebar.html +17 -0
  45. django_admin_js-0.1.0/django_admin_js/templates/admin/object_history.html +66 -0
  46. django_admin_js-0.1.0/django_admin_js/templates/admin/pagination.html +12 -0
  47. django_admin_js-0.1.0/django_admin_js/templates/admin/popup_response.html +10 -0
  48. django_admin_js-0.1.0/django_admin_js/templates/admin/prepopulated_fields_js.html +5 -0
  49. django_admin_js-0.1.0/django_admin_js/templates/admin/search_form.html +46 -0
  50. django_admin_js-0.1.0/django_admin_js/templates/admin/submit_line.html +41 -0
  51. django_admin_js-0.1.0/django_admin_js/templates/admin/widgets/clearable_file_input.html +6 -0
  52. django_admin_js-0.1.0/django_admin_js/templates/admin/widgets/date.html +3 -0
  53. django_admin_js-0.1.0/django_admin_js/templates/admin/widgets/foreign_key_raw_id.html +2 -0
  54. django_admin_js-0.1.0/django_admin_js/templates/admin/widgets/many_to_many_raw_id.html +1 -0
  55. django_admin_js-0.1.0/django_admin_js/templates/admin/widgets/radio.html +1 -0
  56. django_admin_js-0.1.0/django_admin_js/templates/admin/widgets/related_widget_wrapper.html +52 -0
  57. django_admin_js-0.1.0/django_admin_js/templates/admin/widgets/split_datetime.html +4 -0
  58. django_admin_js-0.1.0/django_admin_js/templates/admin/widgets/time.html +3 -0
  59. django_admin_js-0.1.0/django_admin_js/templates/admin/widgets/url.html +1 -0
  60. django_admin_js-0.1.0/django_admin_js/templates/registration/logged_out.html +92 -0
  61. django_admin_js-0.1.0/django_admin_js/templatetags/__init__.py +0 -0
  62. django_admin_js-0.1.0/django_admin_js/templatetags/admin_stats.py +84 -0
  63. django_admin_js-0.1.0/django_admin_js/tests.py +1 -0
  64. django_admin_js-0.1.0/django_admin_js/tests_settings.py +32 -0
  65. django_admin_js-0.1.0/django_admin_js/views.py +1 -0
  66. django_admin_js-0.1.0/django_admin_js.egg-info/PKG-INFO +122 -0
  67. django_admin_js-0.1.0/django_admin_js.egg-info/SOURCES.txt +70 -0
  68. django_admin_js-0.1.0/django_admin_js.egg-info/dependency_links.txt +1 -0
  69. django_admin_js-0.1.0/django_admin_js.egg-info/requires.txt +1 -0
  70. django_admin_js-0.1.0/django_admin_js.egg-info/top_level.txt +1 -0
  71. django_admin_js-0.1.0/pyproject.toml +47 -0
  72. django_admin_js-0.1.0/setup.cfg +4 -0
@@ -0,0 +1,16 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [0.1.0] - 2026-06-12
9
+ ### Added
10
+ - Initial release of DjangoAdmin.JS.
11
+ - Redesigned Django Admin templates with Tailwind CSS.
12
+ - Modern dashboard with statistics.
13
+ - Responsive navigation and layout.
14
+ - Dark mode support.
15
+ - Professional package structure with `pyproject.toml`.
16
+ - GitHub Actions for CI/CD.
@@ -0,0 +1,41 @@
1
+ # Contributing to DjangoAdmin.JS
2
+
3
+ Thank you for your interest in contributing to DjangoAdmin.JS! We welcome contributions of all kinds, from bug reports to new features.
4
+
5
+ ## How to Contribute
6
+
7
+ ### Reporting Bugs
8
+ - Use the [GitHub issue tracker](https://github.com/rocco/DjangoAdmin.JS/issues) to report bugs.
9
+ - Include a clear description of the bug and steps to reproduce it.
10
+
11
+ ### Feature Requests
12
+ - Use the issue tracker to suggest new features.
13
+ - Provide as much detail as possible about the proposed feature.
14
+
15
+ ### Pull Requests
16
+ 1. Fork the repository.
17
+ 2. Create a new branch for your changes.
18
+ 3. Make your changes and include tests if applicable.
19
+ 4. Submit a pull request with a clear description of your changes.
20
+
21
+ ## Development Setup
22
+
23
+ 1. Clone the repository:
24
+ ```bash
25
+ git clone https://github.com/yourusername/DjangoAdmin.JS.git
26
+ cd DjangoAdmin.JS
27
+ ```
28
+ 2. Create a virtual environment and install dependencies:
29
+ ```bash
30
+ python -m venv venv
31
+ source venv/bin/activate
32
+ pip install -e .
33
+ ```
34
+
35
+ ## Coding Standards
36
+ - Follow PEP 8 for Python code.
37
+ - Use meaningful variable names and comments.
38
+ - Ensure your code is well-tested.
39
+
40
+ ## License
41
+ By contributing to DjangoAdmin.JS, you agree that your contributions will be licensed under the MIT License.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Rocco
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,8 @@
1
+ include LICENSE
2
+ include README.md
3
+ include CHANGELOG.md
4
+ include CONTRIBUTING.md
5
+ recursive-include django_admin_js/templates *
6
+ recursive-include django_admin_js/static *
7
+ recursive-exclude * __pycache__
8
+ recursive-exclude * *.py[co]
@@ -0,0 +1,122 @@
1
+ Metadata-Version: 2.4
2
+ Name: django-admin-js
3
+ Version: 0.1.0
4
+ Summary: A modern Django Admin experience built with Tailwind CSS and progressive JavaScript enhancements.
5
+ Author-email: Rocco <rocco@example.com>
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/rocco/DjangoAdmin.JS
8
+ Project-URL: Issues, https://github.com/rocco/DjangoAdmin.JS/issues
9
+ Keywords: django,admin,tailwind,ui,ux
10
+ Classifier: Development Status :: 4 - Beta
11
+ Classifier: Environment :: Web Environment
12
+ Classifier: Framework :: Django
13
+ Classifier: Framework :: Django :: 5.0
14
+ Classifier: Framework :: Django :: 5.1
15
+ Classifier: Framework :: Django :: 5.2
16
+ Classifier: Intended Audience :: Developers
17
+ Classifier: License :: OSI Approved :: MIT License
18
+ Classifier: Operating System :: OS Independent
19
+ Classifier: Programming Language :: Python
20
+ Classifier: Programming Language :: Python :: 3
21
+ Classifier: Programming Language :: Python :: 3.10
22
+ Classifier: Programming Language :: Python :: 3.11
23
+ Classifier: Programming Language :: Python :: 3.12
24
+ Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
25
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
26
+ Requires-Python: >=3.10
27
+ Description-Content-Type: text/markdown
28
+ License-File: LICENSE
29
+ Requires-Dist: django>=5.0
30
+ Dynamic: license-file
31
+
32
+ # DjangoAdmin.JS
33
+
34
+ [![PyPI version](https://img.shields.io/pypi/v/django-admin-js.svg)](https://pypi.org/project/django-admin-js/)
35
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
36
+ [![Build Status](https://github.com/rocco/DjangoAdmin.JS/workflows/build/badge.svg)](https://github.com/rocco/DjangoAdmin.JS/actions)
37
+
38
+ A modern Django Admin experience built with Tailwind CSS and progressive JavaScript enhancements. Features a redesigned UI, improved UX, asynchronous interactions, and a foundation for a faster, more responsive administration panel.
39
+
40
+ ---
41
+
42
+ ## 📸 Screenshots
43
+
44
+ ![Dashboard Placeholder](https://via.placeholder.com/800x450?text=DjangoAdmin.JS+Dashboard)
45
+ *Modern, clean, and responsive dashboard.*
46
+
47
+ ![Detail View Placeholder](https://via.placeholder.com/800x450?text=DjangoAdmin.JS+Detail+View)
48
+ *Refined form layouts and tabs.*
49
+
50
+ ---
51
+
52
+ ## ✨ Features
53
+
54
+ - **Tailwind CSS Driven**: Clean, modern aesthetics using the latest utility-first CSS.
55
+ - **Responsive Layout**: Optimized for mobile, tablet, and desktop.
56
+ - **Dark Mode Support**: Built-in support for dark themes.
57
+ - **Enhanced UX**: Improved navigation, breadcrumbs, and interactive components.
58
+ - **No JS Bloat**: Uses progressive enhancements with minimal dependencies.
59
+
60
+ ---
61
+
62
+ ## 🚀 Quick Start
63
+
64
+ ### 1. Installation
65
+
66
+ Install via pip:
67
+
68
+ ```bash
69
+ pip install django-admin-js
70
+ ```
71
+
72
+ ### 2. Configuration
73
+
74
+ Add `django_admin_js` to your `INSTALLED_APPS` **before** `django.contrib.admin`:
75
+
76
+ ```python
77
+ INSTALLED_APPS = [
78
+ "django_admin_js", # Must be before admin
79
+ "django.contrib.admin",
80
+ "django.contrib.auth",
81
+ "django.contrib.contenttypes",
82
+ "django.contrib.sessions",
83
+ "django.contrib.messages",
84
+ "django.contrib.staticfiles",
85
+ # ... your apps
86
+ ]
87
+ ```
88
+
89
+ ### 3. Usage
90
+
91
+ That's it! Your Django Admin will now use the new theme automatically.
92
+
93
+ ---
94
+
95
+ ## 📊 Compatibility
96
+
97
+ - **Django**: 5.0, 5.1, 5.2+
98
+ - **Python**: 3.10, 3.11, 3.12+
99
+
100
+ ---
101
+
102
+ ## đź›  Roadmap
103
+
104
+ - [ ] **Tailwind UI**: Full implementation of all admin components.
105
+ - [ ] **Dark Mode**: Refinement of dark mode transitions.
106
+ - [ ] **Async Actions**: Perform admin actions without page reloads.
107
+ - [ ] **Fetch API**: Modernize all data interactions.
108
+ - [ ] **REST-powered interactions**: Better integration with API-driven data.
109
+ - [ ] **Modal CRUD**: Create and edit related objects in modals.
110
+ - [ ] **Inline Editing**: Quick edit fields directly in the list view.
111
+
112
+ ---
113
+
114
+ ## 🤝 Contributing
115
+
116
+ Contributions are welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for details.
117
+
118
+ ---
119
+
120
+ ## đź“„ License
121
+
122
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
@@ -0,0 +1,91 @@
1
+ # DjangoAdmin.JS
2
+
3
+ [![PyPI version](https://img.shields.io/pypi/v/django-admin-js.svg)](https://pypi.org/project/django-admin-js/)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+ [![Build Status](https://github.com/rocco/DjangoAdmin.JS/workflows/build/badge.svg)](https://github.com/rocco/DjangoAdmin.JS/actions)
6
+
7
+ A modern Django Admin experience built with Tailwind CSS and progressive JavaScript enhancements. Features a redesigned UI, improved UX, asynchronous interactions, and a foundation for a faster, more responsive administration panel.
8
+
9
+ ---
10
+
11
+ ## 📸 Screenshots
12
+
13
+ ![Dashboard Placeholder](https://via.placeholder.com/800x450?text=DjangoAdmin.JS+Dashboard)
14
+ *Modern, clean, and responsive dashboard.*
15
+
16
+ ![Detail View Placeholder](https://via.placeholder.com/800x450?text=DjangoAdmin.JS+Detail+View)
17
+ *Refined form layouts and tabs.*
18
+
19
+ ---
20
+
21
+ ## ✨ Features
22
+
23
+ - **Tailwind CSS Driven**: Clean, modern aesthetics using the latest utility-first CSS.
24
+ - **Responsive Layout**: Optimized for mobile, tablet, and desktop.
25
+ - **Dark Mode Support**: Built-in support for dark themes.
26
+ - **Enhanced UX**: Improved navigation, breadcrumbs, and interactive components.
27
+ - **No JS Bloat**: Uses progressive enhancements with minimal dependencies.
28
+
29
+ ---
30
+
31
+ ## 🚀 Quick Start
32
+
33
+ ### 1. Installation
34
+
35
+ Install via pip:
36
+
37
+ ```bash
38
+ pip install django-admin-js
39
+ ```
40
+
41
+ ### 2. Configuration
42
+
43
+ Add `django_admin_js` to your `INSTALLED_APPS` **before** `django.contrib.admin`:
44
+
45
+ ```python
46
+ INSTALLED_APPS = [
47
+ "django_admin_js", # Must be before admin
48
+ "django.contrib.admin",
49
+ "django.contrib.auth",
50
+ "django.contrib.contenttypes",
51
+ "django.contrib.sessions",
52
+ "django.contrib.messages",
53
+ "django.contrib.staticfiles",
54
+ # ... your apps
55
+ ]
56
+ ```
57
+
58
+ ### 3. Usage
59
+
60
+ That's it! Your Django Admin will now use the new theme automatically.
61
+
62
+ ---
63
+
64
+ ## 📊 Compatibility
65
+
66
+ - **Django**: 5.0, 5.1, 5.2+
67
+ - **Python**: 3.10, 3.11, 3.12+
68
+
69
+ ---
70
+
71
+ ## đź›  Roadmap
72
+
73
+ - [ ] **Tailwind UI**: Full implementation of all admin components.
74
+ - [ ] **Dark Mode**: Refinement of dark mode transitions.
75
+ - [ ] **Async Actions**: Perform admin actions without page reloads.
76
+ - [ ] **Fetch API**: Modernize all data interactions.
77
+ - [ ] **REST-powered interactions**: Better integration with API-driven data.
78
+ - [ ] **Modal CRUD**: Create and edit related objects in modals.
79
+ - [ ] **Inline Editing**: Quick edit fields directly in the list view.
80
+
81
+ ---
82
+
83
+ ## 🤝 Contributing
84
+
85
+ Contributions are welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for details.
86
+
87
+ ---
88
+
89
+ ## đź“„ License
90
+
91
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
File without changes
@@ -0,0 +1 @@
1
+ # Register your models here.
@@ -0,0 +1,7 @@
1
+ from django.apps import AppConfig
2
+
3
+
4
+ class DjangoAdminJSConfig(AppConfig):
5
+ default_auto_field = "django.db.models.BigAutoField"
6
+ name = "django_admin_js"
7
+ verbose_name = "Django Admin JS"
@@ -0,0 +1 @@
1
+ # Create your models here.
@@ -0,0 +1,27 @@
1
+ {% extends "admin/base_site.html" %}
2
+ {% load i18n %}
3
+
4
+ {% block title %}{% translate 'Page not found' %}{% endblock %}
5
+
6
+ {% block content %}
7
+ <div class="max-w-md mx-auto my-12 text-center">
8
+ <div class="bg-white dark:bg-apple-darkcard border border-apple-border/40 dark:border-apple-darkborder/40 rounded-2xl shadow-xl p-8 space-y-6">
9
+ <div class="inline-flex items-center justify-center w-16 h-16 rounded-full bg-indigo-50 dark:bg-indigo-950/20 text-apple-blue mb-2">
10
+ <svg class="w-8 h-8" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
11
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.172 16.172a4 4 0 015.656 0M9 10h.01M15 10h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
12
+ </svg>
13
+ </div>
14
+
15
+ <div class="space-y-2">
16
+ <h2 class="text-2xl font-bold tracking-tight text-apple-text dark:text-apple-darktext">{% translate 'Page not found' %}</h2>
17
+ <p class="text-apple-secondary text-sm">{% translate 'We’re sorry, but the page you are looking for could not be found.' %}</p>
18
+ </div>
19
+
20
+ <div class="pt-4 border-t border-apple-border/20 dark:border-apple-darkborder/20">
21
+ <a href="{% url 'admin:index' %}" class="inline-block px-5 py-2 text-sm font-semibold text-white bg-apple-blue hover:bg-apple-blue-hover rounded-lg shadow-sm transition-all duration-150">
22
+ {% translate 'Go back home' %}
23
+ </a>
24
+ </div>
25
+ </div>
26
+ </div>
27
+ {% endblock %}
@@ -0,0 +1,34 @@
1
+ {% extends "admin/base_site.html" %}
2
+ {% load i18n %}
3
+
4
+ {% block breadcrumbs %}
5
+ <div class="breadcrumbs">
6
+ <a href="{% url 'admin:index' %}">{% translate 'Home' %}</a>
7
+ &rsaquo; {% translate 'Server error' %}
8
+ </div>
9
+ {% endblock %}
10
+
11
+ {% block title %}{% translate 'Server error (500)' %}{% endblock %}
12
+
13
+ {% block content %}
14
+ <div class="max-w-md mx-auto my-12 text-center">
15
+ <div class="bg-white dark:bg-apple-darkcard border border-apple-border/40 dark:border-apple-darkborder/40 rounded-2xl shadow-xl p-8 space-y-6">
16
+ <div class="inline-flex items-center justify-center w-16 h-16 rounded-full bg-red-50 dark:bg-red-950/20 text-red-500 mb-2">
17
+ <svg class="w-8 h-8" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
18
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"></path>
19
+ </svg>
20
+ </div>
21
+
22
+ <div class="space-y-2">
23
+ <h2 class="text-2xl font-bold tracking-tight text-apple-text dark:text-apple-darktext">{% translate 'Server Error (500)' %}</h2>
24
+ <p class="text-apple-secondary text-sm">{% translate 'There’s been an error. It’s been reported to the site administrators and should be fixed shortly. Thanks for your patience.' %}</p>
25
+ </div>
26
+
27
+ <div class="pt-4 border-t border-apple-border/20 dark:border-apple-darkborder/20">
28
+ <a href="{% url 'admin:index' %}" class="inline-block px-5 py-2 text-sm font-semibold text-white bg-apple-blue hover:bg-apple-blue-hover rounded-lg shadow-sm transition-all duration-150">
29
+ {% translate 'Go back home' %}
30
+ </a>
31
+ </div>
32
+ </div>
33
+ </div>
34
+ {% endblock %}
@@ -0,0 +1,33 @@
1
+ {% load i18n %}
2
+ <div class="actions flex flex-wrap items-center gap-3 text-sm text-apple-secondary">
3
+ {% block actions %}
4
+ {% block actions-form %}
5
+ <div class="flex items-center gap-2">
6
+ {% for field in action_form %}
7
+ {% if field.label %}
8
+ <label class="font-semibold text-apple-text dark:text-apple-darktext">{{ field.label }}</label>
9
+ {% endif %}
10
+ {{ field }}
11
+ {% endfor %}
12
+ </div>
13
+ {% endblock %}
14
+ {% block actions-submit %}
15
+ <button type="submit" class="!inline-flex !items-center !gap-1.5 button !px-4 !py-2 !text-sm !font-semibold !text-white !bg-apple-blue hover:!bg-apple-blue-hover !rounded-lg !shadow-sm !transition-all !duration-150 !cursor-pointer !h-[38px] !m-0" title="{% translate "Run the selected action" %}" name="index" value="{{ action_index|default:0 }}">
16
+ <svg class="w-3.5 h-3.5 text-white" fill="none" stroke="currentColor" stroke-width="2.5" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" d="M3.75 13.5l10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75z" /></svg>
17
+ <span>{% translate "Go" %}</span>
18
+ </button>
19
+ {% endblock %}
20
+ {% block actions-counter %}
21
+ {% if actions_selection_counter %}
22
+ <span class="action-counter text-xs text-apple-secondary" data-actions-icnt="{{ cl.result_list|length }}">{{ selection_note }}</span>
23
+ {% if cl.result_count != cl.result_list|length %}
24
+ <span class="all hidden text-xs text-apple-secondary">{{ selection_note_all }}</span>
25
+ <span class="question hidden text-xs">
26
+ <a href="#" class="text-apple-blue hover:underline font-semibold" title="{% translate "Click here to select the objects across all pages" %}">{% blocktranslate with cl.result_count as total_count %}Select all {{ total_count }} {{ module_name }}{% endblocktranslate %}</a>
27
+ </span>
28
+ <span class="clear hidden text-xs"><a href="#" class="text-red-500 hover:underline">{% translate "Clear selection" %}</a></span>
29
+ {% endif %}
30
+ {% endif %}
31
+ {% endblock %}
32
+ {% endblock %}
33
+ </div>