adminita 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.
- adminita-0.1.0/LICENSE +21 -0
- adminita-0.1.0/MANIFEST.in +8 -0
- adminita-0.1.0/PKG-INFO +416 -0
- adminita-0.1.0/README.md +375 -0
- adminita-0.1.0/adminita/__init__.py +0 -0
- adminita-0.1.0/adminita/apps.py +7 -0
- adminita-0.1.0/adminita/static/adminita/adminita-tailwind.css +2 -0
- adminita-0.1.0/adminita/static/adminita/adminita-tailwind.js +101 -0
- adminita-0.1.0/adminita/static/css/output.css +2700 -0
- adminita-0.1.0/adminita/static/src/input.css +370 -0
- adminita-0.1.0/adminita/templates/admin/base.html +173 -0
- adminita-0.1.0/adminita/templates/admin/change_form.html +185 -0
- adminita-0.1.0/adminita/templates/admin/change_list.html +175 -0
- adminita-0.1.0/adminita/templates/admin/index.html +120 -0
- adminita-0.1.0/adminita/templates/admin/logged_out.html +103 -0
- adminita-0.1.0/adminita/templates/admin/login.html +142 -0
- adminita-0.1.0/adminita/utils.py +70 -0
- adminita-0.1.0/adminita.egg-info/PKG-INFO +416 -0
- adminita-0.1.0/adminita.egg-info/SOURCES.txt +22 -0
- adminita-0.1.0/adminita.egg-info/dependency_links.txt +1 -0
- adminita-0.1.0/adminita.egg-info/requires.txt +7 -0
- adminita-0.1.0/adminita.egg-info/top_level.txt +1 -0
- adminita-0.1.0/pyproject.toml +71 -0
- adminita-0.1.0/setup.cfg +4 -0
adminita-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Diane Corriette @Djangify
|
|
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
|
|
13
|
+
all 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
|
|
20
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
21
|
+
DEALINGS IN THE SOFTWARE.
|
adminita-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,416 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: adminita
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: A modern, beautiful admin interface for Django using Tailwind CSS v4
|
|
5
|
+
Author-email: Djangify <djangify@djangify.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://adminita.djangify.com
|
|
8
|
+
Project-URL: Repository, https://github.com/djangify/adminita
|
|
9
|
+
Project-URL: Issues, https://github.com/djangify/adminita/issues
|
|
10
|
+
Keywords: django,admin,tailwind,tailwindcss,ui,adminita
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Environment :: Web Environment
|
|
13
|
+
Classifier: Framework :: Django
|
|
14
|
+
Classifier: Framework :: Django :: 4.2
|
|
15
|
+
Classifier: Framework :: Django :: 5.0
|
|
16
|
+
Classifier: Framework :: Django :: 5.1
|
|
17
|
+
Classifier: Framework :: Django :: 5.2
|
|
18
|
+
Classifier: Framework :: Django :: 6.0
|
|
19
|
+
Classifier: Intended Audience :: Developers
|
|
20
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
21
|
+
Classifier: Operating System :: OS Independent
|
|
22
|
+
Classifier: Programming Language :: Python
|
|
23
|
+
Classifier: Programming Language :: Python :: 3
|
|
24
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
25
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
26
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
27
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
28
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
29
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
30
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
31
|
+
Requires-Python: >=3.8
|
|
32
|
+
Description-Content-Type: text/markdown
|
|
33
|
+
License-File: LICENSE
|
|
34
|
+
Requires-Dist: Django>=4.0
|
|
35
|
+
Provides-Extra: dev
|
|
36
|
+
Requires-Dist: pytest; extra == "dev"
|
|
37
|
+
Requires-Dist: pytest-django; extra == "dev"
|
|
38
|
+
Requires-Dist: black; extra == "dev"
|
|
39
|
+
Requires-Dist: ruff; extra == "dev"
|
|
40
|
+
Dynamic: license-file
|
|
41
|
+
|
|
42
|
+
readme for Adminita
|
|
43
|
+
|
|
44
|
+

|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
# Adminita
|
|
48
|
+
|
|
49
|
+
A modern, beautiful Django admin theme built with Tailwind CSS v4. Transform your Django admin interface into a sleek, responsive dashboard with dark mode support.
|
|
50
|
+
|
|
51
|
+

|
|
52
|
+

|
|
53
|
+

|
|
54
|
+

|
|
55
|
+
|
|
56
|
+
## ✨ Features
|
|
57
|
+
|
|
58
|
+
- 🎨 **Modern UI** - Clean, professional interface built with Tailwind CSS v4
|
|
59
|
+
- 🌓 **Dark Mode** - System preference detection with manual toggle
|
|
60
|
+
- 📱 **Responsive Design** - Works seamlessly on desktop, tablet, and mobile
|
|
61
|
+
- 🎯 **Easy Integration** - Drop-in replacement for Django's default admin
|
|
62
|
+
- ⚡ **Fast** - Optimized CSS with no unnecessary bloat
|
|
63
|
+
- 🔧 **Customizable** - Easy to customize colors and styling
|
|
64
|
+
- 🆓 **Open Source** - MIT licensed, free to use and modify
|
|
65
|
+
|
|
66
|
+
## 📸 Screenshots
|
|
67
|
+
|
|
68
|
+
### Light Mode
|
|
69
|
+
|
|
70
|
+

|
|
71
|
+
|
|
72
|
+
### Dark Mode
|
|
73
|
+
![Dark Mode Dashboard - IMAGE COMING SOON - once I fix it!]
|
|
74
|
+
|
|
75
|
+
## 🚀 Quick Start
|
|
76
|
+
|
|
77
|
+
### Installation
|
|
78
|
+
|
|
79
|
+
1. **Install via pip** (recommended for production):
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
pip install adminita
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
2. **Or install from source** (for development):
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
git clone https://github.com/djangify/adminita.git
|
|
89
|
+
cd adminita
|
|
90
|
+
pip install -e .
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Configuration
|
|
94
|
+
|
|
95
|
+
1. **Add to INSTALLED_APPS** in your Django settings (must be before `django.contrib.admin`):
|
|
96
|
+
|
|
97
|
+
```python
|
|
98
|
+
INSTALLED_APPS = [
|
|
99
|
+
"adminita", # Must be FIRST!
|
|
100
|
+
"django.contrib.admin",
|
|
101
|
+
"django.contrib.auth",
|
|
102
|
+
"django.contrib.contenttypes",
|
|
103
|
+
"django.contrib.sessions",
|
|
104
|
+
"django.contrib.messages",
|
|
105
|
+
"django.contrib.staticfiles",
|
|
106
|
+
# ... your other apps
|
|
107
|
+
]
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
2. **Configure static files**:
|
|
111
|
+
|
|
112
|
+
```python
|
|
113
|
+
STATIC_URL = "/static/"
|
|
114
|
+
STATIC_ROOT = BASE_DIR / "staticfiles"
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
3. **Add customization to project urls.py file**:
|
|
118
|
+
Adminita uses Django's built-in admin site customization. Add these lines to your `urls.py`:
|
|
119
|
+
```python
|
|
120
|
+
from django.contrib import admin
|
|
121
|
+
|
|
122
|
+
admin.site.site_header = "Your Site Name"
|
|
123
|
+
admin.site.site_title = "Your Site Title"
|
|
124
|
+
admin.site.index_title = "Welcome to Your Site"
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
4. **Collect static files**:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
python manage.py collectstatic --noinput
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
5. **Run your server**:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
python manage.py runserver
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
6. **Visit the admin** at `http://localhost:8000/admin/`
|
|
140
|
+
|
|
141
|
+
That's it! Your Django admin should now have the Adminita theme applied.
|
|
142
|
+
|
|
143
|
+
## 🎨 Customization
|
|
144
|
+
|
|
145
|
+
### Changing Colors
|
|
146
|
+
|
|
147
|
+
Adminita uses Tailwind CSS v4's new `@theme` syntax. To customize colors:
|
|
148
|
+
|
|
149
|
+
1. **Edit the source CSS** at `adminita/static/src/input.css`:
|
|
150
|
+
|
|
151
|
+
```css
|
|
152
|
+
@theme {
|
|
153
|
+
/* Change primary colors to match your brand */
|
|
154
|
+
--color-primary-500: #10b981; /* Your brand color */
|
|
155
|
+
--color-primary-600: #059669; /* Darker shade */
|
|
156
|
+
--color-primary-700: #047857; /* Even darker */
|
|
157
|
+
}
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
2. **Rebuild the CSS**:
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
cd path/to/adminita
|
|
164
|
+
npm install # If you haven't already
|
|
165
|
+
npm run build
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
3. **Collect static files** in your project:
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
python manage.py collectstatic --noinput
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Available Color Variables
|
|
175
|
+
|
|
176
|
+
```css
|
|
177
|
+
--color-primary-50 through --color-primary-950
|
|
178
|
+
--color-gray-50 through --color-gray-900
|
|
179
|
+
--color-gray-750 (custom for dark mode)
|
|
180
|
+
```
|
|
181
|
+
## 🔧 Utility Classes
|
|
182
|
+
|
|
183
|
+
Adminita provides utility classes to help with common admin patterns.
|
|
184
|
+
|
|
185
|
+
### AlwaysVisibleAdmin
|
|
186
|
+
|
|
187
|
+
Ensures models always appear in the admin index, even if they have custom permissions:
|
|
188
|
+
```python
|
|
189
|
+
from adminita.utils import AlwaysVisibleAdmin
|
|
190
|
+
|
|
191
|
+
@admin.register(MyModel)
|
|
192
|
+
class MyModelAdmin(AlwaysVisibleAdmin):
|
|
193
|
+
pass
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### SingletonAdmin
|
|
197
|
+
|
|
198
|
+
For models that should only have one instance (like Site Settings):
|
|
199
|
+
```python
|
|
200
|
+
from adminita.utils import SingletonAdmin
|
|
201
|
+
|
|
202
|
+
@admin.register(SiteConfiguration)
|
|
203
|
+
class SiteConfigurationAdmin(SingletonAdmin):
|
|
204
|
+
list_display = ['site_name']
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
## 🛠️ Development
|
|
208
|
+
|
|
209
|
+
### Setting Up Development Environment
|
|
210
|
+
|
|
211
|
+
1. **Clone the repository**:
|
|
212
|
+
|
|
213
|
+
```bash
|
|
214
|
+
git clone https://github.com/djangify/adminita.git
|
|
215
|
+
cd adminita
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
2. **Create a virtual environment**:
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
python -m venv venv
|
|
222
|
+
source venv/bin/activate # On Windows: venv\Scripts\activate
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
3. **Install dependencies**:
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
pip install -r requirements.txt
|
|
229
|
+
npm install
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
4. **Build CSS**:
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
npm run build # One-time build
|
|
236
|
+
npm run watch # Auto-rebuild on changes
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
5. **Run the demo project**:
|
|
240
|
+
|
|
241
|
+
```bash
|
|
242
|
+
python manage.py migrate
|
|
243
|
+
python manage.py createsuperuser
|
|
244
|
+
python manage.py runserver
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
### Project Structure
|
|
248
|
+
|
|
249
|
+
```
|
|
250
|
+
adminita/
|
|
251
|
+
├── adminita/ # The Django app package
|
|
252
|
+
│ ├── static/
|
|
253
|
+
│ │ ├── css/
|
|
254
|
+
│ │ │ └── output.css # Generated CSS (don't edit)
|
|
255
|
+
│ │ ├── js/
|
|
256
|
+
│ │ │ └── admin.js # JavaScript for dark mode & mobile menu
|
|
257
|
+
│ │ └── src/
|
|
258
|
+
│ │ └── input.css # Source CSS with Tailwind v4 syntax
|
|
259
|
+
│ ├── templates/
|
|
260
|
+
│ │ └── admin/ # Template overrides
|
|
261
|
+
│ │ ├── base.html
|
|
262
|
+
│ │ ├── base_site.html
|
|
263
|
+
│ │ ├── index.html
|
|
264
|
+
│ │ ├── login.html
|
|
265
|
+
│ │ ├── change_list.html
|
|
266
|
+
│ │ └── change_form.html
|
|
267
|
+
│ ├── __init__.py
|
|
268
|
+
│ └── apps.py
|
|
269
|
+
├── config/ # Django project settings
|
|
270
|
+
│ ├── settings.py
|
|
271
|
+
│ ├── urls.py
|
|
272
|
+
│ └── wsgi.py
|
|
273
|
+
├── manage.py
|
|
274
|
+
├── package.json # Node.js dependencies for Tailwind
|
|
275
|
+
├── pyproject.toml # Python package configuration
|
|
276
|
+
└── README.md
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
## 🐛 Known Issues
|
|
280
|
+
|
|
281
|
+
### Dark Mode Not Working
|
|
282
|
+
|
|
283
|
+
**Status**: Open Issue
|
|
284
|
+
**Priority**: High
|
|
285
|
+
|
|
286
|
+
The dark mode toggle button appears in the interface, but clicking it does not switch between light and dark themes. This is a known bug that we're actively working on.
|
|
287
|
+
|
|
288
|
+
**Expected Behavior**: Clicking the moon/sun icon should toggle between light and dark mode, with the preference saved to localStorage.
|
|
289
|
+
|
|
290
|
+
**Current Behavior**: Nothing happens when the toggle button is clicked.
|
|
291
|
+
|
|
292
|
+
**Workaround**: None currently available.
|
|
293
|
+
|
|
294
|
+
**Help Wanted**: If you have experience with JavaScript and dark mode implementation, we'd love your help! See [Contributing](#-contributing) below.
|
|
295
|
+
|
|
296
|
+
### Adding Filter Sidebar
|
|
297
|
+
|
|
298
|
+
~~Wanted to include a filter section on the side but kept clashing with Django files. Need to pay more time to it to get it working~~
|
|
299
|
+
|
|
300
|
+
**Status**: Still experimenting
|
|
301
|
+
|
|
302
|
+
## 📚 Documentation
|
|
303
|
+
|
|
304
|
+
### Tailwind CSS v4 Notes
|
|
305
|
+
|
|
306
|
+
Adminita uses Tailwind CSS v4, which has a different syntax than v3:
|
|
307
|
+
|
|
308
|
+
- Uses `@import "tailwindcss"` instead of `@tailwind` directives
|
|
309
|
+
- Theme customization uses `@theme {}` blocks in CSS
|
|
310
|
+
- More streamlined, CSS-first approach
|
|
311
|
+
|
|
312
|
+
### Template Inheritance
|
|
313
|
+
|
|
314
|
+
When extending Adminita templates in your own project:
|
|
315
|
+
|
|
316
|
+
```django
|
|
317
|
+
{% extends "admin/base.html" %}
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
**Not** `adminita/admin/base.html` - Django finds templates automatically because `adminita` is in `INSTALLED_APPS`.
|
|
321
|
+
|
|
322
|
+
## 🤝 Contributing
|
|
323
|
+
|
|
324
|
+
We welcome contributions! Adminita is an open-source project and we'd love your help making it better.
|
|
325
|
+
|
|
326
|
+
### How to Contribute
|
|
327
|
+
|
|
328
|
+
1. **Fork the repository**
|
|
329
|
+
2. **Create a feature branch**: `git checkout -b feature/amazing-feature`
|
|
330
|
+
3. **Make your changes**
|
|
331
|
+
4. **Test thoroughly**
|
|
332
|
+
5. **Commit your changes**: `git commit -m 'Add amazing feature'`
|
|
333
|
+
6. **Push to the branch**: `git push origin feature/amazing-feature`
|
|
334
|
+
7. **Open a Pull Request**
|
|
335
|
+
|
|
336
|
+
### Priority Issues
|
|
337
|
+
|
|
338
|
+
We especially need help with:
|
|
339
|
+
|
|
340
|
+
- 🐛 **Dark Mode Bug** - The toggle isn't working (see [Known Issues](#-known-issues))
|
|
341
|
+
- 📱 **Mobile Responsiveness** - Testing on various devices
|
|
342
|
+
- ♿ **Accessibility** - ARIA labels, keyboard navigation, screen reader support
|
|
343
|
+
- 🎨 **Additional Themes** - Creating alternative color schemes
|
|
344
|
+
- 📝 **Documentation** - Improving guides and examples
|
|
345
|
+
|
|
346
|
+
### Development Guidelines
|
|
347
|
+
|
|
348
|
+
- Follow Django's template style guidelines
|
|
349
|
+
- Use Tailwind CSS utility classes (avoid custom CSS when possible)
|
|
350
|
+
- Test on multiple browsers (Chrome, Firefox, Safari, Edge)
|
|
351
|
+
- Ensure dark mode compatibility for all new features
|
|
352
|
+
- Update documentation for any new features
|
|
353
|
+
|
|
354
|
+
## 📦 Requirements
|
|
355
|
+
|
|
356
|
+
- Python 3.10+
|
|
357
|
+
- Django 4.2+
|
|
358
|
+
- Node.js (for building CSS during development)
|
|
359
|
+
- npm (for managing Tailwind CSS)
|
|
360
|
+
|
|
361
|
+
## 🧪 Testing
|
|
362
|
+
|
|
363
|
+
```bash
|
|
364
|
+
# Run Django tests
|
|
365
|
+
python manage.py test
|
|
366
|
+
|
|
367
|
+
# Test in multiple browsers
|
|
368
|
+
# Test dark mode toggle
|
|
369
|
+
# Test responsive design on mobile devices
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
## 📄 License
|
|
373
|
+
|
|
374
|
+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
375
|
+
|
|
376
|
+
## 👏 Acknowledgments
|
|
377
|
+
|
|
378
|
+
- Built with [Django](https://www.djangoproject.com/)
|
|
379
|
+
- Styled with [Tailwind CSS v4](https://tailwindcss.com/)
|
|
380
|
+
- Inspired by modern admin dashboards
|
|
381
|
+
|
|
382
|
+
## 🔗 Links
|
|
383
|
+
|
|
384
|
+
- **GitHub**: https://github.com/djangify/adminita
|
|
385
|
+
- **Issues**: https://github.com/djangify/adminita/issues
|
|
386
|
+
- **PyPI**: https://pypi.org/project/adminita/ (coming soon)
|
|
387
|
+
|
|
388
|
+
## 💬 Support
|
|
389
|
+
|
|
390
|
+
Having trouble? Here are some ways to get help:
|
|
391
|
+
|
|
392
|
+
- 📖 Check the [documentation](https://github.com/djangify/adminita/wiki)
|
|
393
|
+
- 🐛 [Open an issue](https://github.com/djangify/adminita/issues/new)
|
|
394
|
+
- 💡 [Start a discussion](https://github.com/djangify/adminita/discussions)
|
|
395
|
+
|
|
396
|
+
## 🗺️ Roadmap
|
|
397
|
+
|
|
398
|
+
- [ ] Fix dark mode toggle functionality
|
|
399
|
+
- [ ] Add more customization options
|
|
400
|
+
- [ ] Create additional color themes
|
|
401
|
+
- [ ] Improve accessibility (ARIA labels, keyboard navigation)
|
|
402
|
+
- [ ] Add comprehensive test suite
|
|
403
|
+
- [ ] Create video tutorials
|
|
404
|
+
- [ ] Publish to PyPI
|
|
405
|
+
- [ ] Add support for Django inline forms
|
|
406
|
+
- [ ] Create a documentation website
|
|
407
|
+
|
|
408
|
+
## ⭐ Star History
|
|
409
|
+
|
|
410
|
+
If you find Adminita useful, please consider giving it a star on GitHub! It helps others discover the project.
|
|
411
|
+
|
|
412
|
+
---
|
|
413
|
+
|
|
414
|
+
Made with ❤️ by a Django enthusiast
|
|
415
|
+
|
|
416
|
+
**Note**: This is an open-source project. I appreciate your patience and contributions!
|