Compare commits

...

38 Commits

Author SHA1 Message Date
Fabio Caccamo c050c4f94c Updated CHANGELOG and version. 2020-09-15 09:54:30 +02:00
Fabio Caccamo 97cea97307 Removed python 3.4 from tox test matrix. 2020-09-15 09:54:01 +02:00
Fabio Caccamo 826340c9be Fixed loaddata error with initial_data.json fixture. #97 2020-09-15 09:49:50 +02:00
Fabio Caccamo 28dfc70474 Fixed tests warning (admin.W411). 2020-09-15 09:47:01 +02:00
Fabio Caccamo e9038157be Fixed changelist thead links color. 2020-09-07 23:30:35 +02:00
Fabio Caccamo be21550c6a Fixed changelist filter links hover color. 2020-09-07 14:10:53 +02:00
Fabio Caccamo db87a2aae2 Added "See also" section to README. [ci skip] 2020-09-04 17:00:02 +02:00
Fabio Caccamo 97ac8268b6 Updated version and CHANGELOG. 2020-09-04 15:35:54 +02:00
Fabio Caccamo 941835b5ee Removed old import. 2020-09-04 15:32:58 +02:00
Fabio Caccamo b050d7cb61 Added conditional imports to avoid Django deprecation warnings. #92 2020-09-04 15:30:03 +02:00
Fabio Caccamo 7d64545031 Updated header user-tools margins. 2020-09-04 11:43:42 +02:00
Fabio Caccamo 892bfa5e16 Changed header content vertical align to top. 2020-09-02 18:08:48 +02:00
Fabio Caccamo b165e6d27c Updated version. 2020-09-02 14:53:28 +02:00
Fabio Caccamo f0a72d5e40 Added django-json-widget theming support. 2020-09-02 14:53:19 +02:00
Fabio Caccamo 869d4c31ad Updated README testing section. [ci skip] 2020-08-27 12:52:48 +02:00
Fabio Caccamo a7788b98ed Updated requirements. [ci skip] 2020-08-27 12:52:38 +02:00
Fabio Caccamo 1045690678 Updated changelog and version. 2020-08-21 17:49:29 +02:00
Fabio Caccamo 09548dbcdc Fixed related modal not closing on edit save and create with django 3.1 - #96 2020-08-21 17:48:27 +02:00
Fabio Caccamo 0a4949c75a Updated CHANGELOG and version. 2020-08-18 17:53:37 +02:00
Fabio Caccamo f36e904faf Resized toogle-nav-sidebar button. 2020-08-18 17:51:10 +02:00
Fabio Caccamo f9a6f501e1 Added border when there is not breadcrumbs module. 2020-08-18 17:50:34 +02:00
Fabio Caccamo f9629f5ef1 Added max-width to logo. 2020-08-18 17:16:43 +02:00
Fabio Caccamo 084b0d65f3 Increased sidebar padding-top. 2020-08-18 16:41:32 +02:00
Fabio Caccamo 5935ee9d40 Added requirements-dev.txt 2020-08-18 16:39:45 +02:00
Fabio Caccamo ac66bfddb9 Added views badge to README. [ci skip] 2020-08-06 11:29:40 +02:00
Fabio Caccamo 62ccb31793 Updated CHANGELOG. 2020-08-05 21:24:30 +02:00
Fabio Caccamo 4e243962d1 Updated version. 2020-08-05 21:21:52 +02:00
Fabio Caccamo 51202a1def Improved header style. 2020-08-05 21:21:37 +02:00
Fabio Caccamo d799242714 Improved nav-sidebar style. 2020-08-05 21:19:22 +02:00
Fabio Caccamo e37142e0f4 Fixed tox django version error. 2020-08-04 17:43:03 +02:00
Fabio Caccamo 79dcc111da Added django 3.1 to CI. 2020-08-04 17:38:33 +02:00
Fabio Caccamo 651557bfc2 Updated CHANGELOG.md [ci skip] 2020-07-20 17:57:22 +02:00
Fabio Caccamo 5456e7ac53 Updated version. 2020-07-20 17:14:49 +02:00
Fabio Caccamo 03f8a2704e Fixed unreadable text in autocomplete multi-selects. #83 2020-07-20 17:14:40 +02:00
Fabio Caccamo ceab3232ad Unmerged admin-index PR. 2020-07-13 14:41:53 +02:00
Fabio Caccamo 6a0576cb7a Merge pull request #87 from carlosmonari/master
Hi again Mr Fabio, add suport a django-admin-index
2020-07-01 13:47:11 +02:00
carlosmonari 2935c890cf include stylishment to package django-admin-index
include stylishment to package https://github.com/maykinmedia/django-admin-index
2020-06-28 18:16:30 -03:00
carlosmonari 36f13ce164 include stylishment to package django-admin-index
include stylishment to package https://github.com/maykinmedia/django-admin-index
2020-06-28 18:13:02 -03:00
18 changed files with 429 additions and 57 deletions
+12
View File
@@ -72,6 +72,10 @@ jobs:
env: TOX_ENV=py36-dj30-sqlite
- python: "3.6"
env: TOX_ENV=py36-dj30-postgres
- python: "3.6"
env: TOX_ENV=py36-dj31-sqlite
- python: "3.6"
env: TOX_ENV=py36-dj31-postgres
- python: "3.6"
env: TOX_ENV=py36-djmaster-sqlite
- python: "3.6"
@@ -92,6 +96,10 @@ jobs:
env: TOX_ENV=py37-dj30-sqlite
- python: "3.7"
env: TOX_ENV=py37-dj30-postgres
- python: "3.7"
env: TOX_ENV=py37-dj31-sqlite
- python: "3.7"
env: TOX_ENV=py37-dj31-postgres
- python: "3.7"
env: TOX_ENV=py37-djmaster-sqlite
- python: "3.7"
@@ -104,6 +112,10 @@ jobs:
env: TOX_ENV=py38-dj30-sqlite
- python: "3.8"
env: TOX_ENV=py38-dj30-postgres
- python: "3.8"
env: TOX_ENV=py38-dj31-sqlite
- python: "3.8"
env: TOX_ENV=py38-dj31-postgres
- python: "3.8"
env: TOX_ENV=py38-djmaster-sqlite
- python: "3.8"
+28
View File
@@ -4,6 +4,34 @@ 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.13.5](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.13.5) - 2020-09-15
- Fixed loaddata error with initial_data.json fixture. #97
- Fixed tests warning (admin.W411).
- Fixed changelist thead links color.
- Fixed changelist filter links hover color.
## [0.13.4](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.13.4) - 2020-09-04
- Added conditional imports to avoid Django deprecation warnings. #92
- Changed admin header content vertical align to top.
## [0.13.3](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.13.3) - 2020-09-02
- Added `django-json-widget` theming support.
## [0.13.2](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.13.2) - 2020-08-21
- Fixed related modal not closing on edit save and create with django 3.1 - #96
## [0.13.1](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.13.1) - 2020-08-18
- Improved header and nav-sidebar style.
- Added `max-width` to logo.
- Added `requirements-dev.txt`
## [0.13.0](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.13.0) - 2020-08-05
- Improved nav-sidebar style (`django>=3.1` support).
- Improved header style.
## [0.12.3](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.12.3) - 2020-07-20
- Fixed unreadable text in autocomplete multi-selects. #83
## [0.12.2](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.12.2) - 2020-04-07
- Fixed popup javascript error when related modal is inactive. #76
- Fixed js self invoking anonymous function expression.
+39 -1
View File
@@ -4,6 +4,7 @@
[![](https://img.shields.io/pypi/v/django-admin-interface.svg?color=blue&logo=pypi&logoColor=white)](https://pypi.org/project/django-admin-interface/)
[![](https://pepy.tech/badge/django-admin-interface)](https://pepy.tech/project/django-admin-interface)
[![](https://img.shields.io/github/stars/fabiocaccamo/django-admin-interface?logo=github)](https://github.com/fabiocaccamo/django-admin-interface/)
[![](https://badges.pufler.dev/visits/fabiocaccamo/django-admin-interface?label=visitors&color=blue)](https://badges.pufler.dev)
[![](https://img.shields.io/pypi/l/django-admin-interface.svg?color=blue)](https://github.com/fabiocaccamo/django-admin-interface/blob/master/LICENSE.txt)
[![](https://img.shields.io/travis/fabiocaccamo/django-admin-interface?logo=travis&label=build)](https://travis-ci.org/fabiocaccamo/django-admin-interface)
@@ -28,6 +29,7 @@ django-admin-interface is a modern **responsive flat admin interface customizabl
- Compatibility / Style optimizations for:
- `django-ckeditor`
- `django-dynamic-raw-id`
- `django-json-widget`
- `django-modeltranslation`
- `django-tabbed-admin`
- `sorl-thumbnail`
@@ -104,7 +106,43 @@ You can add a theme you've created through the admin to this repository by [send
You can use [django-apptemplates](https://github.com/bittner/django-apptemplates), then add `{% extends "admin_interface:admin/base_site.html" %}` to your `base_site.html`
---
## Testing
```bash
# create python virtual environment
virtualenv testing_django_admin_interface
# activate virtualenv
cd testing_django_admin_interface && . bin/activate
# clone repo
git clone https://github.com/fabiocaccamo/django-admin-interface.git src && cd src
# install dependencies
pip install -r requirements.txt
# run tests
tox
# or
python setup.py test
# or
python -m django test --settings "tests.settings"
```
## License
Released under [MIT License](LICENSE.txt).
---
## See also
- [`django-colorfield`](https://github.com/fabiocaccamo/django-colorfield) - simple color field for models with a nice color-picker in the admin. 🎨
- [`django-extra-settings`](https://github.com/fabiocaccamo/django-extra-settings) - config and manage typed extra settings using just the django admin. ⚙️
- [`django-maintenance-mode`](https://github.com/fabiocaccamo/django-maintenance-mode) - shows a 503 error page when maintenance-mode is on. 🚧 🛠️
- [`django-treenode`](https://github.com/fabiocaccamo/django-treenode) - probably the best abstract model / admin for your tree based stuff. 🌳
- [`python-benedict`](https://github.com/fabiocaccamo/python-benedict) - dict subclass with keylist/keypath support, I/O shortcuts (Base64, CSV, JSON, TOML, XML, YAML, pickle, query-string) and many utilities. 📘 👼
- [`python-codicefiscale`](https://github.com/fabiocaccamo/python-codicefiscale) - encode/decode Italian fiscal codes - codifica/decodifica del Codice Fiscale. 🇮🇹 💳
+5 -1
View File
@@ -2,8 +2,12 @@
from admin_interface.models import Theme
import django
from django.contrib import admin
from django.utils.translation import ugettext_lazy as _
if django.VERSION < (2, 0):
from django.utils.translation import ugettext_lazy as _
else:
from django.utils.translation import gettext_lazy as _
class ThemeAdmin(admin.ModelAdmin):
+5 -1
View File
@@ -1,8 +1,12 @@
# -*- coding: utf-8 -*-
import django
from django.apps import AppConfig
from django.db.models.signals import post_migrate
from django.utils.translation import ugettext_lazy as _
if django.VERSION < (2, 0):
from django.utils.translation import ugettext_lazy as _
else:
from django.utils.translation import gettext_lazy as _
class AdminInterfaceConfig(AppConfig):
+39 -1
View File
@@ -1 +1,39 @@
[{"model": "admin_interface.theme", "pk": 1, "fields": {"name": "Django", "active": true, "title": "Django administration", "title_visible": true, "logo": "", "logo_visible": true, "css_header_background_color": "#0C4B33", "css_header_title_color": "#F5DD5D", "css_header_text_color": "#44B78B", "css_header_link_color": "#FFFFFF", "css_header_link_hover_color": "#C9F0DD", "css_module_background_color": "#44B78B", "css_module_text_color": "#FFFFFF", "css_module_link_color": "#FFFFFF", "css_module_link_hover_color": "#C9F0DD", "css_module_rounded_corners": true, "css_generic_link_color": "#0C3C26", "css_generic_link_hover_color": "#156641", "css_save_button_background_color": "#0C4B33", "css_save_button_background_hover_color": "#0C3C26", "css_save_button_text_color": "#FFFFFF", "css_delete_button_background_color": "#BA2121", "css_delete_button_background_hover_color": "#A41515", "css_delete_button_text_color": "#FFFFFF", "css": "", "related_modal_active": true, "related_modal_background_color": "#000000", "related_modal_background_opacity": 0.2, "related_modal_rounded_corners": true, "list_filter_dropdown": false}}]
[
{
"model": "admin_interface.theme",
"fields": {
"name": "Django",
"active": true,
"title": "Django administration",
"title_color": "#F5DD5D",
"title_visible": true,
"logo": "",
"logo_color": "#FFFFFF",
"logo_visible": true,
"css_header_background_color": "#0C4B33",
"css_header_text_color": "#44B78B",
"css_header_link_color": "#FFFFFF",
"css_header_link_hover_color": "#C9F0DD",
"css_module_background_color": "#44B78B",
"css_module_text_color": "#FFFFFF",
"css_module_link_color": "#FFFFFF",
"css_module_link_hover_color": "#C9F0DD",
"css_module_rounded_corners": true,
"css_generic_link_color": "#0C3C26",
"css_generic_link_hover_color": "#156641",
"css_save_button_background_color": "#0C4B33",
"css_save_button_background_hover_color": "#0C3C26",
"css_save_button_text_color": "#FFFFFF",
"css_delete_button_background_color": "#BA2121",
"css_delete_button_background_hover_color": "#A41515",
"css_delete_button_text_color": "#FFFFFF",
"css": "",
"related_modal_active": true,
"related_modal_background_color": "#000000",
"related_modal_background_opacity": 0.2,
"related_modal_rounded_corners": true,
"list_filter_dropdown": false,
"recent_actions_visible": true
}
}
]
+8 -3
View File
@@ -6,10 +6,15 @@ from admin_interface.cache import del_cached_active_theme
from colorfield.fields import ColorField
import django
from django.db import models
from django.db.models.signals import post_delete, post_save, pre_save
from django.utils.encoding import force_text
from django.utils.translation import ugettext_lazy as _
if django.VERSION < (2, 0):
from django.utils.encoding import force_text as force_str
from django.utils.translation import ugettext_lazy as _
else:
from django.utils.encoding import force_str
from django.utils.translation import gettext_lazy as _
from six import python_2_unicode_compatible
@@ -301,7 +306,7 @@ class Theme(models.Model):
verbose_name_plural = _('Themes')
def __str__(self):
return force_text(self.name)
return force_str(self.name)
post_delete.connect(Theme.post_delete_handler, sender=Theme)
@@ -10,8 +10,12 @@
openerRef = windowRef.parent;
windowName = windowRef.name;
widgetName = windowName.replace(/^(change|add|delete|lookup)_/, '');
if (typeof(openerRef.id_to_windowname) === 'function') {
// django < 3.1 compatibility
widgetName = openerRef.id_to_windowname(widgetName);
}
windowRef = {
name: openerRef.id_to_windowname(widgetName),
name: widgetName,
close: function() {
openerRef.dismissRelatedObjectModal();
}
@@ -25,6 +25,7 @@ https://github.com/fabiocaccamo/django-admin-interface
{% include "admin_interface/css/tabbed-admin.css" %}
{% include "admin_interface/css/ckeditor.css" %}
{% include "admin_interface/css/tinymce.css" %}
{% include "admin_interface/css/json-widget.css" %}
{% if theme.css %}
{{ theme.css|safe }}
@@ -68,5 +69,5 @@ https://github.com/fabiocaccamo/django-admin-interface
{% get_admin_interface_languages as languages %}
{% include "admin_interface/language_chooser.html" %}
{% endif %}
{% if theme.env_visible_in_header %}<span class="environment-label {{ theme.env_name }}"></span> - {% endif %}{{ block.super }}<br>
{% if theme.env_visible_in_header %}<span class="environment-label {{ theme.env_name }}"></span><br>{% endif %}{{ block.super }}<br>
{% endblock %}
@@ -1,68 +1,89 @@
/* fix login */
.admin-interface.login #container {
width:320px;
margin:90px auto;
box-sizing:border-box;
-moz-box-sizing:border-box;
-webkit-box-sizing:border-box;
width: 100%;
max-width: 360px;
margin: 15px auto;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
.admin-interface.login #content {
padding:15px 30px 10px 30px;
padding: 15px 30px 30px 30px;
}
@media (max-width:767px){
@media (min-width:768px){
.admin-interface.login #container {
margin:0px auto;
}
.admin-interface.login #content {
padding:20px 30px 30px 30px;
margin: 90px auto;
}
}
.admin-interface.login #header {
padding:15px 30px 10px;
line-height:30px;
padding: 10px 30px;
line-height: 30px;
align-items: flex-start;
justify-content: flex-start;
}
.admin-interface.login #branding h1 {
.admin-interface.login #header #branding h1 {
margin-right:0;
}
.admin-interface.login #branding h1 img.logo {
max-width:100%;
margin-right:0;
.admin-interface.login #header #branding h1 img.logo {
max-width: 100%;
margin-right: 0;
}
.admin-interface.login #header #branding h1 img.logo+span {
display:block;
display: block;
margin-bottom: 5px;
}
.admin-interface.login .submit-row {
padding-left:0;
text-align:right;
.admin-interface.login #login-form {
display: flex;
flex-direction: column;
}
@media (max-width:767px){
.admin-interface.login .submit-row label {
display:none;
}
.admin-interface.login .submit-row {
float: left;
width: 100%;
margin-top: 20px;
margin-bottom: 30px;
}
.admin-interface.login .submit-row {
float: left;
width: 100%;
margin-top: 20px;
padding-top: 0;
padding-left: 0;
text-align: right;
}
.admin-interface.login .submit-row label {
display: none;
}
.admin-interface.login .submit-row input[type="submit"] {
width: 100%;
text-transform: uppercase;
}
.admin-interface.login #footer {
display: none;
}
/* end login fix*/
.admin-interface #header {
height:auto;
min-height:40px;
display: flex;
justify-content: space-between;
align-items: start;
}
@media (max-width:1024px) {
.admin-interface #header {
align-items: flex-start;
}
}
.admin-interface #branding h1 img.logo {
max-width: 400px;
max-height:100px;
margin-top:10px;
margin-bottom:10px;
@@ -70,6 +91,11 @@
display:inline-block !important; /* override inline display:none; */
}
.admin-interface #branding h1 span {
display: inline-block;
margin-bottom: 5px;
}
.admin-interface #branding h1 img.logo+span {
white-space:nowrap;
}
@@ -240,10 +266,13 @@ body.admin-interface .paginator a.showall:visited {
/* begin fix lateral padding to align text with field labels */
.admin-interface .module h2,
.admin-interface.dashboard .module caption,
.admin-interface.dashboard .module th,
.admin-interface .module.filtered h2,
.admin-interface .inline-group h2 {
padding-left:10px;
padding-right:10px;
.admin-interface .inline-group h2,
.admin-interface #nav-sidebar .module caption,
.admin-interface #nav-sidebar .module th {
padding-left: 10px;
padding-right: 10px;
}
/* end fix */
@@ -337,3 +366,100 @@ body.admin-interface .paginator a.showall:visited {
.admin-interface .selector:not(.stacked) .selector-chosen select {
height: calc(46px + 17.2em) !important;
}
/* fix nav-sidebar (added in django 3.1.0) */
.admin-interface #toggle-nav-sidebar {
top: 10px;
left: 0;
z-index: 20;
flex: 0 0 30px;
width: 30px;
height: 45px;
margin-top: 10px;
margin-right: 10px;
background-color: #FFFFFF;
font-size: 16px;
border: 1px solid #eaeaea;
border-left: none;
outline: none;
-webkit-box-shadow: 4px 2px 8px -4px #DBDBDB;
-moz-box-shadow: 4px 2px 8px -4px #DBDBDB;
box-shadow: 4px 2px 8px -4px #DBDBDB;
}
.admin-interface .toggle-nav-sidebar::before {
margin-top: -2px;
}
/* hide nav-sidebar below 1280px to prevent horizontal overflow issues */
@media (max-width:1279px) {
.admin-interface #nav-sidebar,
.admin-interface #toggle-nav-sidebar {
display: none;
}
}
.admin-interface #nav-sidebar {
flex: 0 0 320px;
left: -320px;
margin-left: -360px;
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
padding: 40px 40px 40px 0px;
border-top: none;
border-bottom: none;
border-left: none;
}
@media (min-width:1280px) {
.admin-interface #main.shifted > #toggle-nav-sidebar {
left: 359px;
}
.admin-interface #main.shifted > #nav-sidebar {
left: 0px;
margin-left: 0;
}
.admin-interface.change-list:not(.popup) #main.shifted > .content,
.admin-interface.change-form:not(.popup) #main.shifted > .content {
max-width: calc(100% - 360px);
}
}
/* fix related-widget when the nav-sidebar is collapsed */
@media (max-width:1100px) {
.admin-interface.change-form #main .related-widget-wrapper {
clear: left;
margin-top: 5px;
}
.admin-interface.change-form #main .related-widget-wrapper + .help {
margin-top: 10px;
margin-left: 0;
padding-left: 0;
padding-right: 0;
}
}
/* fix related-widget when the nav-sidebar is expanded */
@media (min-width:1280px) and (max-width:1480px) {
.admin-interface.change-form:not(.popup) .related-widget-wrapper {
clear: left;
margin-top: 5px;
}
.admin-interface.change-form #main.shifted .related-widget-wrapper + .help {
margin-top: 10px;
margin-left: 0;
padding-left: 0;
padding-right: 0;
}
}
.admin-interface #nav-sidebar .current-app .section:link,
.admin-interface #nav-sidebar .current-app .section:visited {
color: #FFFFCC;
font-weight: normal;
}
.admin-interface #nav-sidebar .current-model {
background: #FFFFCC;
}
File diff suppressed because one or more lines are too long
@@ -0,0 +1,29 @@
/*
django-json-widget support
https://github.com/jmrivas86/django-json-widget
*/
.admin-interface div.jsoneditor {
border: 1px solid {{ theme.css_module_background_color }};
{% if theme.css_module_rounded_corners %}
border-radius: 4px;
overflow: hidden;
{% endif %}
}
.admin-interface div.jsoneditor-menu {
background-color: {{ theme.css_module_background_color }};
border-bottom: 1px solid {{ theme.css_module_background_color }};
}
.admin-interface div.jsoneditor-menu a.jsoneditor-poweredBy {
color: {{ theme.css_module_link_color }};
}
.admin-interface div.jsoneditor-contextmenu ul li button.jsoneditor-selected,
.admin-interface div.jsoneditor-contextmenu ul li button.jsoneditor-selected:focus,
.admin-interface div.jsoneditor-contextmenu ul li button.jsoneditor-selected:hover {
background-color: #FFFFCC;
color: #000000;
font-weight: bold;
}
+1 -1
View File
@@ -1,3 +1,3 @@
# -*- coding: utf-8 -*-
__version__ = '0.12.2'
__version__ = '0.13.5'
+5 -1
View File
@@ -1,4 +1,8 @@
codecov
coverage
django>=1.7
django-colorfield
django-flat-theme
django-flat-responsive
six>=1.9.0
six>=1.9.0
tox
+1
View File
@@ -53,6 +53,7 @@ setup(
'Framework :: Django :: 2.1',
'Framework :: Django :: 2.2',
'Framework :: Django :: 3.0',
'Framework :: Django :: 3.1',
'Intended Audience :: Developers',
'License :: OSI Approved :: MIT License',
'Natural Language :: English',
+1
View File
@@ -58,6 +58,7 @@ TEMPLATES = [{
'context_processors': [
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'django.template.context_processors.request',
]
},
},]
+4
View File
@@ -17,6 +17,10 @@ class AdminInterfaceFixturesTestCase(TestCase):
def __load_theme(self, theme_name):
call_command('loaddata', 'admin_interface_theme_%s.json' % (theme_name, ))
def test_import_initial_data(self):
call_command('loaddata', 'initial_data.json')
self.assertEqual(Theme.objects.count(), 1);
def test_import_all(self):
self.__load_theme('django')
self.__load_theme('bootstrap')
+4 -4
View File
@@ -1,11 +1,10 @@
[tox]
envlist =
py27-{dj17,dj18,dj19,dj110,dj111}-{sqlite,postgres},
py34-{dj17,dj18,dj19,dj110,dj111,dj20}-{sqlite,postgres},
py35-{dj18,dj19,dj110,dj111,dj20,dj21,dj22}-{sqlite,postgres},
py36-{dj18,dj19,dj110,dj111,dj20,dj21,dj22,dj30,djmaster}-{sqlite,postgres},
py37-{dj20,dj21,dj22,dj30,djmaster}-{sqlite,postgres},
py38-{dj22,dj30,djmaster}-{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},
[testenv]
passenv = CI TRAVIS TRAVIS_*
deps =
@@ -18,6 +17,7 @@ deps =
dj21: Django == 2.1.*
dj22: Django == 2.2.*
dj30: Django == 3.0.*
dj31: Django == 3.1.*
djmaster: https://github.com/django/django/archive/master.tar.gz
# mysql: mysqlclient
postgres: psycopg2-binary