Compare commits

...

18 Commits

Author SHA1 Message Date
Fabio Caccamo 5c85dc9cd4 Updated version and CHANGELOG. 2021-04-23 15:00:26 +02:00
Fabio Caccamo 66966501f8 Added FileExtensionValidator to logo and favicon fields. #112 2021-04-23 14:53:02 +02:00
Fabio Caccamo 30af685edf Improved selects min-width. 2021-04-21 11:30:30 +02:00
Fabio Caccamo 96d1568c13 Added min-width to selects. 2021-04-20 16:54:29 +02:00
Fabio Caccamo 7c04b35b44 Fixed related widget wrapper margin/padding with normal select. 2021-04-20 16:54:13 +02:00
Fabio Caccamo 004cd5fbcb Improved tabular inlines horizontal scroll. 2021-04-20 15:04:51 +02:00
Fabio Caccamo 8e37cdd218 Fixed related widget wrapper margin/padding in inlines. 2021-04-20 15:04:30 +02:00
Fabio Caccamo ba6807b7f3 Fixed changelist search and actions horizontal margins. 2021-04-16 12:33:21 +02:00
Fabio Caccamo 59a8b4d2d7 Removed invalid property. 2021-04-16 12:32:36 +02:00
Fabio Caccamo f72aac8848 Fixed changelist submit button margin left (with html minified). 2021-04-14 16:03:52 +02:00
Fabio Caccamo 41c6d5b7f1 Fixed header min-height. 2021-04-14 11:31:38 +02:00
Fabio Caccamo 554d8d27b7 Fixed models.W042 warning on django 3.2. 2021-04-14 11:18:58 +02:00
Fabio Caccamo c337c21a03 Added python 3.9 and django 3.2 to tox and travis. 2021-04-12 10:00:22 +02:00
Fabio Caccamo 0f9d502e4f Updated CHANGELOG and version. 2021-04-07 15:16:36 +02:00
Fabio Caccamo c961de3391 Overridden dark-mode css variables introduced in django 3.2. #124 2021-04-07 15:14:36 +02:00
Fabio Caccamo aec7ede184 Fixed delete confirmation styles selector prefix. 2021-04-07 15:13:23 +02:00
Natán d338e5914e Added custom style for the "Delete" and "Save" buttons from the delete confirmation page. (#123)
![Confirmation page](https://i.imgur.com/h4hflxu.png)
2021-04-07 15:09:20 +02:00
Fabio Caccamo 36971ad662 Fixed README links. [ci skip] 2021-03-30 18:17:29 +02:00
10 changed files with 163 additions and 45 deletions
+34 -18
View File
@@ -76,6 +76,10 @@ jobs:
env: TOX_ENV=py36-dj31-sqlite
- python: "3.6"
env: TOX_ENV=py36-dj31-postgres
- python: "3.6"
env: TOX_ENV=py36-dj32-sqlite
- python: "3.6"
env: TOX_ENV=py36-dj32-postgres
- python: "3.6"
env: TOX_ENV=py36-djmaster-sqlite
- python: "3.6"
@@ -100,6 +104,10 @@ jobs:
env: TOX_ENV=py37-dj31-sqlite
- python: "3.7"
env: TOX_ENV=py37-dj31-postgres
- python: "3.7"
env: TOX_ENV=py37-dj32-sqlite
- python: "3.7"
env: TOX_ENV=py37-dj32-postgres
- python: "3.7"
env: TOX_ENV=py37-djmaster-sqlite
- python: "3.7"
@@ -116,26 +124,34 @@ jobs:
env: TOX_ENV=py38-dj31-sqlite
- python: "3.8"
env: TOX_ENV=py38-dj31-postgres
- python: "3.8"
env: TOX_ENV=py38-dj32-sqlite
- python: "3.8"
env: TOX_ENV=py38-dj32-postgres
- python: "3.8"
env: TOX_ENV=py38-djmaster-sqlite
- python: "3.8"
env: TOX_ENV=py38-djmaster-postgres
# - python: "3.9"
# env: TOX_ENV=py39-dj22-sqlite
# - python: "3.9"
# env: TOX_ENV=py39-dj22-postgres
# - python: "3.9"
# env: TOX_ENV=py39-dj30-sqlite
# - python: "3.9"
# env: TOX_ENV=py39-dj30-postgres
# - python: "3.9"
# env: TOX_ENV=py39-dj31-sqlite
# - python: "3.9"
# env: TOX_ENV=py39-dj31-postgres
# - python: "3.9"
# env: TOX_ENV=py39-djmaster-sqlite
# - python: "3.9"
# env: TOX_ENV=py39-djmaster-postgres
- python: "3.9"
env: TOX_ENV=py39-dj22-sqlite
- python: "3.9"
env: TOX_ENV=py39-dj22-postgres
- python: "3.9"
env: TOX_ENV=py39-dj30-sqlite
- python: "3.9"
env: TOX_ENV=py39-dj30-postgres
- python: "3.9"
env: TOX_ENV=py39-dj31-sqlite
- python: "3.9"
env: TOX_ENV=py39-dj31-postgres
- python: "3.9"
env: TOX_ENV=py39-dj32-sqlite
- python: "3.9"
env: TOX_ENV=py39-dj32-postgres
- python: "3.9"
env: TOX_ENV=py39-djmaster-sqlite
- python: "3.9"
env: TOX_ENV=py39-djmaster-postgres
allow_failures:
- env: TOX_ENV=py36-djmaster-sqlite
- env: TOX_ENV=py36-djmaster-postgres
@@ -143,8 +159,8 @@ jobs:
- env: TOX_ENV=py37-djmaster-postgres
- env: TOX_ENV=py38-djmaster-sqlite
- env: TOX_ENV=py38-djmaster-postgres
# - env: TOX_ENV=py39-djmaster-sqlite
# - env: TOX_ENV=py39-djmaster-postgres
- env: TOX_ENV=py39-djmaster-sqlite
- env: TOX_ENV=py39-djmaster-postgres
install:
- pip install tox
services:
+14
View File
@@ -4,6 +4,20 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.16.2](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.16.2) - 2021-04-23
- Added `python 3.9` and `django 3.2` to CI.
- Added `FileExtensionValidator` to `logo` and `favicon` fields. #112
- Fixed `models.W042` warning on `django 3.2`.
- Fixed header `min-height`.
- Fixed selects `min-width`.
- Fixed changelist search, actions and submit button horizontal margins.
- Fixed related widget wrapper margin/padding with normal select and in inlines.
- Fixed tabular inlines horizontal scroll.
## [0.16.1](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.16.1) - 2021-04-07
- Fixed style of "Delete" and "Save" buttons in the delete confirmation page. #123
- Overridden dark-mode css variables introduced in `django 3.2`. #124
## [0.16.0](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.16.0) - 2021-03-30
- Added customizable colors for selected apps and models in dashboard. #122
- Added `responsive_rtl.css` stylesheet. #98
+2 -2
View File
@@ -171,8 +171,8 @@ As everyone knows open-source projects takes up a lot of time that is unpaid. :m
If you are using this package in commercial project(s), please consider the idea to become a sponsor or donating once:
- ![GitHub Sponsor](https://github.com/sponsors/fabiocaccamo)
- ![PayPal](https://www.paypal.me/fabiocaccamo)
- [GitHub Sponsor](https://github.com/sponsors/fabiocaccamo)
- [PayPal](https://www.paypal.me/fabiocaccamo)
- BTC: bc1q2t0pv8z3udpyuvfnx5kskhqdad4dcvtfuzmvjw
- ETH: 0x8B55Fb7798b5A9F797A4455C00821B6e53daca74
+1
View File
@@ -13,6 +13,7 @@ class AdminInterfaceConfig(AppConfig):
name = 'admin_interface'
verbose_name = _('Admin Interface')
default_auto_field = 'django.db.models.AutoField'
def ready(self):
+9
View File
@@ -7,6 +7,11 @@ from admin_interface.cache import del_cached_active_theme
from colorfield.fields import ColorField
import django
if django.VERSION >= (1, 11):
from django.core.validators import FileExtensionValidator
else:
FileExtensionValidator = lambda allowed_extensions: None
from django.db import models
from django.db.models.signals import post_delete, post_save, pre_save
if django.VERSION < (2, 0):
@@ -99,6 +104,8 @@ class Theme(models.Model):
logo = models.FileField(
upload_to='admin-interface/logo/',
blank=True,
validators=[FileExtensionValidator(
allowed_extensions=['gif', 'jpg', 'jpeg', 'png', 'svg'])],
help_text=_('Leave blank to use the default Django logo'),
verbose_name=_('logo'))
logo_color = ColorField(
@@ -114,6 +121,8 @@ class Theme(models.Model):
favicon = models.FileField(
upload_to='admin-interface/favicon/',
blank=True,
validators=[FileExtensionValidator(
allowed_extensions=['gif', 'ico', 'jpg', 'jpeg', 'png', 'svg'])],
help_text=_('(.ico|.png|.gif - 16x16|32x32 px)'),
verbose_name=_('favicon'))
@@ -72,8 +72,9 @@
/* end login fix*/
.admin-interface #header {
height:auto;
min-height:40px;
height: auto;
min-height: 55px;
box-sizing: border-box;
display: flex;
justify-content: space-between;
align-items: start;
@@ -122,6 +123,13 @@
padding: 0 1px;
}
@media (min-width: 1024px) {
.admin-interface #changelist .actions .button,
.admin-interface #changelist .actions .action-counter {
margin-left: 8px;
}
}
.admin-interface #changelist .paginator {
margin-top:-1px; /* merge 2 borders into 1 */
line-height:42px;
@@ -184,7 +192,6 @@ body.admin-interface .paginator a.showall:visited {
.admin-interface form .form-row p.file-upload .clearable-file-input {
display:inline-block;
margin-left:
}
.admin-interface form .form-row p.file-upload .clearable-file-input label {
@@ -303,16 +310,12 @@ body.admin-interface .paginator a.showall:visited {
}
/* end fix */
/* begin fix issue #10 - Related widget broken in long tabular inline */
.admin-interface .inline-group .tabular .related-widget-wrapper {
white-space:nowrap;
}
/* end fix */
/* begin fix tabular inlines horizontal scroll */
.admin-interface .inline-related.tabular {
overflow-x: scroll;
}
.admin-interface .inline-related.tabular fieldset.module {
display: contents;
overflow-x: scroll;
width: 100%;
white-space: nowrap;
position: relative;
@@ -458,17 +461,31 @@ body.admin-interface .paginator a.showall:visited {
}
/* fixed related widget and select2 */
.admin-interface .aligned .form-row .related-widget-wrapper {
/* begin fix issue #10 - Related widget broken in long tabular inline */
.admin-interface .related-widget-wrapper {
white-space: nowrap;
}
/* end fix */
.admin-interface .aligned .form-row .related-widget-wrapper .select2-container ~ .related-widget-wrapper-link {
margin-left: 0;
padding: 4px 8px 6px 8px;
.admin-interface .related-widget-wrapper select + .related-widget-wrapper-link,
.admin-interface .related-widget-wrapper .select2-container + .related-widget-wrapper-link {
margin-left: 12px !important;
}
.admin-interface .aligned .form-row .related-widget-wrapper .select2-container + .related-widget-wrapper-link {
margin-left: 5px !important;
@media (min-width: 768px) {
.admin-interface.change-form select {
min-width: 150px;
}
}
@media (min-width: 1024px) {
.admin-interface.change-form select {
min-width: 200px;
}
}
.admin-interface.change-form .inline-related.tabular select {
min-width: auto !important;
}
/* fixed time widget header border radius */
@@ -482,6 +499,18 @@ body.admin-interface .paginator a.showall:visited {
padding: 2px 5px 3px 5px;
}
@media (min-width: 1024px) {
.admin-interface #changelist #changelist-search #searchbar,
.admin-interface #changelist #changelist-search input[type="submit"],
.admin-interface #changelist #changelist-search .quiet {
margin-left: 8px;
}
.admin-interface #changelist #changelist-search label img {
vertical-align: text-top;
margin-right: 0px;
}
}
@media (max-width: 1024px) {
.admin-interface #changelist #toolbar {
border-top: 1px solid #eee;
@@ -1,4 +1,48 @@
:root {
@media (prefers-color-scheme: dark) {
:root .admin-interface {
--primary: #79aec8;
--secondary: #417690;
--accent: #f5dd5d;
--primary-fg: #fff;
--body-fg: #333;
--body-bg: #fff;
--body-quiet-color: #666;
--body-loud-color: #000;
--header-color: #ffc;
--header-branding-color: var(--accent);
--header-bg: var(--secondary);
--header-link-color: var(--primary-fg);
--breadcrumbs-fg: #c4dce8;
--breadcrumbs-link-fg: var(--body-bg);
--breadcrumbs-bg: var(--primary);
--link-fg: #447e9b;
--link-hover-color: #036;
--link-selected-fg: #5b80b2;
--hairline-color: #e8e8e8;
--border-color: #ccc;
--error-fg: #ba2121;
--message-success-bg: #dfd;
--message-warning-bg: #ffc;
--message-error-bg: #ffefef;
--darkened-bg: #f8f8f8;
--selected-bg: #e4e4e4;
--selected-row: #ffc;
--button-fg: #fff;
--button-bg: var(--primary);
--button-hover-bg: #609ab6;
--default-button-bg: var(--secondary);
--default-button-hover-bg: #205067;
--close-button-bg: #888;
--close-button-hover-bg: #747474;
--delete-button-bg: #ba2121;
--delete-button-hover-bg: #a41515;
--object-tools-fg: var(--button-fg);
--object-tools-bg: var(--close-button-bg);
--object-tools-hover-bg: var(--close-button-hover-bg);
}
}
:root .admin-interface {
--admin-interface-title-color: {{ theme.title_color }};
--admin-interface-logo-color: {{ theme.logo_color }};
--admin-interface-env-color: {{ theme.env_color }};
@@ -274,19 +318,22 @@
.admin-interface .button.default:hover,
.admin-interface input[type=submit].default:active,
.admin-interface input[type=submit].default:focus,
.admin-interface input[type=submit].default:hover {
.admin-interface input[type=submit].default:hover,
.admin-interface.delete-confirmation form .cancel-link:hover {
background:{{ theme.css_save_button_background_hover_color }};
color:{{ theme.css_save_button_text_color }};
outline: none;
}
.admin-interface .submit-row a.deletelink:link,
.admin-interface .submit-row a.deletelink:visited {
.admin-interface .submit-row a.deletelink:visited,
.admin-interface.delete-confirmation form input[type="submit"] {
background:{{ theme.css_delete_button_background_color }};
color:{{ theme.css_delete_button_text_color }};
}
.admin-interface .submit-row a.deletelink:hover {
.admin-interface .submit-row a.deletelink:hover,
.admin-interface.delete-confirmation form input[type="submit"]:hover {
background:{{ theme.css_delete_button_background_hover_color }};
color:{{ theme.css_delete_button_text_color }};
}
+1 -1
View File
@@ -1,3 +1,3 @@
# -*- coding: utf-8 -*-
__version__ = '0.16.0'
__version__ = '0.16.2'
+1
View File
@@ -55,6 +55,7 @@ setup(
'Framework :: Django :: 2.2',
'Framework :: Django :: 3.0',
'Framework :: Django :: 3.1',
'Framework :: Django :: 3.2',
'Intended Audience :: Developers',
'License :: OSI Approved :: MIT License',
'Natural Language :: English',
+5 -4
View File
@@ -2,10 +2,10 @@
envlist =
py27-{dj17,dj18,dj19,dj110,dj111}-{sqlite,postgres},
py35-{dj18,dj19,dj110,dj111,dj20,dj21,dj22}-{sqlite,postgres},
py36-{dj18,dj19,dj110,dj111,dj20,dj21,dj22,dj30,dj31,djmaster}-{sqlite,postgres},
py37-{dj20,dj21,dj22,dj30,dj31,djmaster}-{sqlite,postgres},
py38-{dj22,dj30,dj31,djmaster}-{sqlite,postgres},
py39-{dj22,dj30,dj31,djmaster}-{sqlite,postgres},
py36-{dj18,dj19,dj110,dj111,dj20,dj21,dj22,dj30,dj31,dj32,djmaster}-{sqlite,postgres},
py37-{dj20,dj21,dj22,dj30,dj31,dj32,djmaster}-{sqlite,postgres},
py38-{dj22,dj30,dj31,dj32,djmaster}-{sqlite,postgres},
py39-{dj22,dj30,dj31,dj32,djmaster}-{sqlite,postgres},
[testenv]
passenv = CI TRAVIS TRAVIS_*
deps =
@@ -19,6 +19,7 @@ deps =
dj22: Django == 2.2.*
dj30: Django == 3.0.*
dj31: Django == 3.1.*
dj32: Django == 3.2.*
djmaster: https://github.com/django/django/archive/master.tar.gz
# mysql: mysqlclient
postgres: psycopg2-binary