Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4e243962d1 | |||
| 51202a1def | |||
| d799242714 | |||
| e37142e0f4 | |||
| 79dcc111da | |||
| 651557bfc2 | |||
| 5456e7ac53 | |||
| 03f8a2704e | |||
| ceab3232ad | |||
| 6a0576cb7a | |||
| 2935c890cf | |||
| 36f13ce164 | |||
| 6aec3c0c7b | |||
| 147a2a6abf | |||
| f7ec79eb75 | |||
| 32e4afd90f |
+61
-54
@@ -1,46 +1,57 @@
|
||||
os: linux
|
||||
dist: xenial
|
||||
language: python
|
||||
python: 3.5
|
||||
cache: pip
|
||||
env:
|
||||
- TOX_ENV=py27-dj17-sqlite
|
||||
- TOX_ENV=py27-dj17-postgres
|
||||
- TOX_ENV=py27-dj18-sqlite
|
||||
- TOX_ENV=py27-dj18-postgres
|
||||
- TOX_ENV=py27-dj19-sqlite
|
||||
- TOX_ENV=py27-dj19-postgres
|
||||
- TOX_ENV=py27-dj110-sqlite
|
||||
- TOX_ENV=py27-dj110-postgres
|
||||
- TOX_ENV=py27-dj111-sqlite
|
||||
- TOX_ENV=py27-dj111-postgres
|
||||
# - TOX_ENV=py34-dj17-sqlite
|
||||
# - TOX_ENV=py34-dj17-postgres
|
||||
# - TOX_ENV=py34-dj18-sqlite
|
||||
# - TOX_ENV=py34-dj18-postgres
|
||||
# - TOX_ENV=py34-dj19-sqlite
|
||||
# - TOX_ENV=py34-dj19-postgres
|
||||
# - TOX_ENV=py34-dj110-sqlite
|
||||
# - TOX_ENV=py34-dj110-postgres
|
||||
# - TOX_ENV=py34-dj111-sqlite
|
||||
# - TOX_ENV=py34-dj111-postgres
|
||||
# - TOX_ENV=py34-dj20-sqlite
|
||||
# - TOX_ENV=py34-dj20-postgres
|
||||
- TOX_ENV=py35-dj18-sqlite
|
||||
- TOX_ENV=py35-dj18-postgres
|
||||
- TOX_ENV=py35-dj19-sqlite
|
||||
- TOX_ENV=py35-dj19-postgres
|
||||
- TOX_ENV=py35-dj110-sqlite
|
||||
- TOX_ENV=py35-dj110-postgres
|
||||
- TOX_ENV=py35-dj111-sqlite
|
||||
- TOX_ENV=py35-dj111-postgres
|
||||
- TOX_ENV=py35-dj20-sqlite
|
||||
- TOX_ENV=py35-dj20-postgres
|
||||
- TOX_ENV=py35-dj21-sqlite
|
||||
- TOX_ENV=py35-dj21-postgres
|
||||
# - TOX_ENV=py35-dj22-sqlite
|
||||
- TOX_ENV=py35-dj22-postgres
|
||||
jobs:
|
||||
include:
|
||||
- python: "2.7"
|
||||
env: TOX_ENV=py27-dj17-sqlite
|
||||
- python: "2.7"
|
||||
env: TOX_ENV=py27-dj17-postgres
|
||||
- python: "2.7"
|
||||
env: TOX_ENV=py27-dj18-sqlite
|
||||
- python: "2.7"
|
||||
env: TOX_ENV=py27-dj18-postgres
|
||||
- python: "2.7"
|
||||
env: TOX_ENV=py27-dj19-sqlite
|
||||
- python: "2.7"
|
||||
env: TOX_ENV=py27-dj19-postgres
|
||||
- python: "2.7"
|
||||
env: TOX_ENV=py27-dj110-sqlite
|
||||
- python: "2.7"
|
||||
env: TOX_ENV=py27-dj110-postgres
|
||||
- python: "2.7"
|
||||
env: TOX_ENV=py27-dj111-sqlite
|
||||
- python: "2.7"
|
||||
env: TOX_ENV=py27-dj111-postgres
|
||||
- python: "3.5"
|
||||
env: TOX_ENV=py35-dj18-sqlite
|
||||
- python: "3.5"
|
||||
env: TOX_ENV=py35-dj18-postgres
|
||||
- python: "3.5"
|
||||
env: TOX_ENV=py35-dj19-sqlite
|
||||
- python: "3.5"
|
||||
env: TOX_ENV=py35-dj19-postgres
|
||||
- python: "3.5"
|
||||
env: TOX_ENV=py35-dj110-sqlite
|
||||
- python: "3.5"
|
||||
env: TOX_ENV=py35-dj110-postgres
|
||||
- python: "3.5"
|
||||
env: TOX_ENV=py35-dj111-sqlite
|
||||
- python: "3.5"
|
||||
env: TOX_ENV=py35-dj111-postgres
|
||||
- python: "3.5"
|
||||
env: TOX_ENV=py35-dj20-sqlite
|
||||
- python: "3.5"
|
||||
env: TOX_ENV=py35-dj20-postgres
|
||||
- python: "3.5"
|
||||
env: TOX_ENV=py35-dj21-sqlite
|
||||
- python: "3.5"
|
||||
env: TOX_ENV=py35-dj21-postgres
|
||||
# - python: "3.5"
|
||||
# env: TOX_ENV=py35-dj22-sqlite
|
||||
- python: "3.5"
|
||||
env: TOX_ENV=py35-dj22-postgres
|
||||
- python: "3.6"
|
||||
env: TOX_ENV=py36-dj111-sqlite
|
||||
- python: "3.6"
|
||||
@@ -61,57 +72,53 @@ 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"
|
||||
env: TOX_ENV=py36-djmaster-postgres
|
||||
- python: "3.7"
|
||||
dist: xenial
|
||||
env: TOX_ENV=py37-dj20-sqlite
|
||||
- python: "3.7"
|
||||
dist: xenial
|
||||
env: TOX_ENV=py37-dj20-postgres
|
||||
- python: "3.7"
|
||||
dist: xenial
|
||||
env: TOX_ENV=py37-dj21-sqlite
|
||||
- python: "3.7"
|
||||
dist: xenial
|
||||
env: TOX_ENV=py37-dj21-postgres
|
||||
- python: "3.7"
|
||||
dist: xenial
|
||||
env: TOX_ENV=py37-dj22-sqlite
|
||||
- python: "3.7"
|
||||
dist: xenial
|
||||
env: TOX_ENV=py37-dj22-postgres
|
||||
- python: "3.7"
|
||||
dist: xenial
|
||||
env: TOX_ENV=py37-dj30-sqlite
|
||||
- python: "3.7"
|
||||
dist: xenial
|
||||
env: TOX_ENV=py37-dj30-postgres
|
||||
- python: "3.7"
|
||||
dist: xenial
|
||||
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"
|
||||
dist: xenial
|
||||
env: TOX_ENV=py37-djmaster-postgres
|
||||
- python: "3.8"
|
||||
dist: xenial
|
||||
env: TOX_ENV=py38-dj22-sqlite
|
||||
- python: "3.8"
|
||||
dist: xenial
|
||||
env: TOX_ENV=py38-dj22-postgres
|
||||
- python: "3.8"
|
||||
dist: xenial
|
||||
env: TOX_ENV=py38-dj30-sqlite
|
||||
- python: "3.8"
|
||||
dist: xenial
|
||||
env: TOX_ENV=py38-dj30-postgres
|
||||
- python: "3.8"
|
||||
dist: xenial
|
||||
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"
|
||||
dist: xenial
|
||||
env: TOX_ENV=py38-djmaster-postgres
|
||||
allow_failures:
|
||||
- env: TOX_ENV=py36-djmaster-sqlite
|
||||
|
||||
@@ -4,6 +4,13 @@ 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.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.
|
||||
|
||||
## [0.12.1](https://github.com/fabiocaccamo/django-admin-interface/releases/tag/0.12.1) - 2020-02-21
|
||||
- Updated `.travis` config.
|
||||
- Fixed custom django admin header. #75
|
||||
|
||||
@@ -16,5 +16,5 @@ if (typeof(django) !== 'undefined' && typeof(django.jQuery) !== 'undefined') {
|
||||
return false;
|
||||
});
|
||||
});
|
||||
}(django.jQuery));
|
||||
})(django.jQuery);
|
||||
}
|
||||
@@ -2,51 +2,44 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
function getModalWindowData()
|
||||
{
|
||||
var windowRef = window;
|
||||
var windowName = windowRef.name;
|
||||
var widgetName = windowName.replace(/^(change|add|delete|lookup)_/, '');
|
||||
var modalRef = {};
|
||||
var openerRef = windowRef.opener;
|
||||
if (!openerRef) {
|
||||
openerRef = windowRef.parent;
|
||||
modalRef = {
|
||||
name: openerRef.id_to_windowname(widgetName),
|
||||
close: function() {
|
||||
openerRef.dismissRelatedObjectModal();
|
||||
}
|
||||
};
|
||||
}
|
||||
return { opener:openerRef, modal:modalRef };
|
||||
var windowRef = window;
|
||||
var windowName, widgetName;
|
||||
var openerRef = windowRef.opener;
|
||||
if (!openerRef) {
|
||||
// related modal is active
|
||||
openerRef = windowRef.parent;
|
||||
windowName = windowRef.name;
|
||||
widgetName = windowName.replace(/^(change|add|delete|lookup)_/, '');
|
||||
windowRef = {
|
||||
name: openerRef.id_to_windowname(widgetName),
|
||||
close: function() {
|
||||
openerRef.dismissRelatedObjectModal();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
var modalData = getModalWindowData();
|
||||
var modalRef = modalData['modal'];
|
||||
var openerRef = modalData['opener'];
|
||||
|
||||
// default django popup_response.js
|
||||
var initData = JSON.parse(document.getElementById('django-admin-popup-response-constants').dataset.popupResponse);
|
||||
// console.log(initData);
|
||||
switch (initData.action) {
|
||||
case 'change':
|
||||
if (typeof(openerRef.dismissChangeRelatedObjectPopup) === 'function') {
|
||||
openerRef.dismissChangeRelatedObjectPopup(modalRef, initData.value, initData.obj, initData.new_value);
|
||||
openerRef.dismissChangeRelatedObjectPopup(windowRef, initData.value, initData.obj, initData.new_value);
|
||||
}
|
||||
break;
|
||||
case 'delete':
|
||||
if (typeof(openerRef.dismissDeleteRelatedObjectPopup) === 'function') {
|
||||
openerRef.dismissDeleteRelatedObjectPopup(modalRef, initData.value);
|
||||
openerRef.dismissDeleteRelatedObjectPopup(windowRef, initData.value);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (typeof(openerRef.dismissAddRelatedObjectPopup) === 'function') {
|
||||
openerRef.dismissAddRelatedObjectPopup(modalRef, initData.value, initData.obj);
|
||||
openerRef.dismissAddRelatedObjectPopup(windowRef, initData.value, initData.obj);
|
||||
}
|
||||
else if (typeof(openerRef.dismissAddAnotherPopup) === 'function') {
|
||||
// django 1.7 compatibility
|
||||
openerRef.dismissAddAnotherPopup(modalRef, initData.value, initData.obj);
|
||||
openerRef.dismissAddAnotherPopup(windowRef, initData.value, initData.obj);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
}());
|
||||
})();
|
||||
@@ -147,5 +147,5 @@ if (typeof(django) !== 'undefined' && typeof(django.jQuery) !== 'undefined')
|
||||
presentRelatedObjectModalOnClickOn('a.dynamic_raw_id-related-lookup', true);
|
||||
});
|
||||
|
||||
}(django.jQuery));
|
||||
})(django.jQuery);
|
||||
}
|
||||
@@ -68,5 +68,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,65 +1,85 @@
|
||||
/* 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: center;
|
||||
}
|
||||
|
||||
@media (max-width:1024px) {
|
||||
.admin-interface #header {
|
||||
align-items: flex-start;
|
||||
}
|
||||
}
|
||||
|
||||
.admin-interface #branding h1 img.logo {
|
||||
@@ -70,6 +90,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 +265,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 +365,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: 11px;
|
||||
left: 0;
|
||||
z-index: 20;
|
||||
flex: 0 0 30px;
|
||||
width: 30px;
|
||||
height: 40px;
|
||||
margin-top: 11px;
|
||||
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: 18px 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
@@ -1,3 +1,3 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
__version__ = '0.12.1'
|
||||
__version__ = '0.13.0'
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -3,21 +3,22 @@ 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 =
|
||||
dj17: Django >= 1.7, < 1.8
|
||||
dj18: Django >= 1.8, < 1.9
|
||||
dj19: Django >= 1.9, < 1.10
|
||||
dj110: Django >= 1.10, < 1.11
|
||||
dj111: Django >= 1.11, < 1.12
|
||||
dj20: Django >= 2.0, < 2.1
|
||||
dj21: Django >= 2.1, < 2.2
|
||||
dj22: Django >= 2.2, < 2.3
|
||||
dj30: Django >= 3.0, < 3.1
|
||||
dj17: Django == 1.7.*
|
||||
dj18: Django == 1.8.*
|
||||
dj19: Django == 1.9.*
|
||||
dj110: Django == 1.10.*
|
||||
dj111: Django == 1.11.*
|
||||
dj20: Django == 2.0.*
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user