Update to Django 3.1.x

We can't update to last Django version, because of
https://github.com/radiac/django-tagulous/issues/144
pull/66/head
JensDiemer 2021-10-09 10:54:07 +02:00
rodzic fb09a892cf
commit c7bd15ef7d
13 zmienionych plików z 642 dodań i 530 usunięć

29
poetry.lock wygenerowano
Wyświetl plik

@ -1,3 +1,17 @@
[[package]]
name = "asgiref"
version = "3.4.1"
description = "ASGI specs, helper code, and adapters"
category = "main"
optional = false
python-versions = ">=3.6"
[package.dependencies]
typing-extensions = {version = "*", markers = "python_version < \"3.8\""}
[package.extras]
tests = ["pytest", "pytest-asyncio", "mypy (>=0.800)"]
[[package]]
name = "astor"
version = "0.8.1"
@ -313,13 +327,14 @@ python-versions = "*"
[[package]]
name = "django"
version = "2.2.24"
version = "3.1.13"
description = "A high-level Python Web framework that encourages rapid development and clean, pragmatic design."
category = "main"
optional = false
python-versions = ">=3.5"
python-versions = ">=3.6"
[package.dependencies]
asgiref = ">=3.2.10,<4"
pytz = "*"
sqlparse = ">=0.2.2"
@ -1472,9 +1487,13 @@ psycopg2-source = ["psycopg2"]
[metadata]
lock-version = "1.1"
python-versions = ">=3.7,<4.0.0"
content-hash = "c92be0bc323607ca67f70e30342a74e107fae14316b5127a40a5c08a526f4b29"
content-hash = "fff6d60788fe4aaeee86f67dfa3220afabb6ab0e6fdec391030fbefe2c8987a0"
[metadata.files]
asgiref = [
{file = "asgiref-3.4.1-py3-none-any.whl", hash = "sha256:ffc141aa908e6f175673e7b1b3b7af4fdb0ecb738fc5c8b88f69f055c2415214"},
{file = "asgiref-3.4.1.tar.gz", hash = "sha256:4ef1ab46b484e3c706329cedeff284a5d40824200638503f5768edb6de7d58e9"},
]
astor = [
{file = "astor-0.8.1-py2.py3-none-any.whl", hash = "sha256:070a54e890cefb5b3739d19f30f5a5ec840ffc9c50ffa7d23cc9fc1a38ebbfc5"},
{file = "astor-0.8.1.tar.gz", hash = "sha256:6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e"},
@ -1696,8 +1715,8 @@ distro = [
{file = "distro-1.6.0.tar.gz", hash = "sha256:83f5e5a09f9c5f68f60173de572930effbcc0287bb84fdc4426cb4168c088424"},
]
django = [
{file = "Django-2.2.24-py3-none-any.whl", hash = "sha256:f2084ceecff86b1e631c2cd4107d435daf4e12f1efcdf11061a73bf0b5e95f92"},
{file = "Django-2.2.24.tar.gz", hash = "sha256:3339ff0e03dee13045aef6ae7b523edff75b6d726adf7a7a48f53d5a501f7db7"},
{file = "Django-3.1.13-py3-none-any.whl", hash = "sha256:a6e0d1ff11095b7394c079ade7094c73b2dc3df4a7a373c9b58ed73b77a97feb"},
{file = "Django-3.1.13.tar.gz", hash = "sha256:9f8be75646f62204320b195062b1d696ba28aa3d45ee72fb7c888ffaebc5bdb2"},
]
django-admin-sortable2 = [
{file = "django-admin-sortable2-1.0.2.tar.gz", hash = "sha256:669e47c908d1ae5dd77876bb6bf369b3c333e013b98f0a8b6da42da83cf6440c"},

Wyświetl plik

@ -37,9 +37,8 @@ python = ">=3.7,<4.0.0"
colorlog = "*" # https://github.com/borntyping/python-colorlog
gunicorn = "*" # https://github.com/benoimyproject.wsgitc/gunicorn
#
# https://www.djangoproject.com/download/#supported-versions
# v2.2 LTS - extended support until April 2022
django = "2.2.*"
# Stay with Django 3.1.x because of: https://github.com/radiac/django-tagulous/issues/144
django = "<3.2"
django-processinfo = "*" # https://github.com/jedie/django-processinfo/
django-debug-toolbar = "*" # http://django-debug-toolbar.readthedocs.io/en/stable/changes.html
django-import-export = "*" # https://github.com/django-import-export/django-import-export

Wyświetl plik

@ -5,7 +5,7 @@ from adminsortable2.admin import SortableInlineAdminMixin
from django.contrib import admin
from django.template.loader import render_to_string
from django.utils.html import format_html
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from import_export.admin import ImportExportMixin
from import_export.resources import ModelResource

Wyświetl plik

@ -4,7 +4,7 @@ import tagulous.models
from bx_django_utils.models.timetracking import TimetrackingBaseModel
from django.conf import settings
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
class BaseModel(TimetrackingBaseModel):

Wyświetl plik

@ -6,7 +6,7 @@ from bx_django_utils.filename import clean_filename
from ckeditor_uploader.fields import RichTextUploadingField
from django.db import models
from django.urls import reverse
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from django_tools.serve_media_app.models import user_directory_path
from inventory.models.base import BaseItemAttachmentModel, BaseModel

Wyświetl plik

@ -5,7 +5,7 @@ import requests
from django.db import models
from django.template.defaultfilters import striptags
from django.utils import timezone
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from inventory.models.base import BaseModel

Wyświetl plik

@ -1,6 +1,6 @@
from ckeditor_uploader.fields import RichTextUploadingField
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
from inventory.models.base import BaseModel

Wyświetl plik

@ -5,7 +5,7 @@
import logging
from pathlib import Path as __Path
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import gettext_lazy as _
###############################################################################

Wyświetl plik

@ -183,10 +183,12 @@ def test_pretty_format_html():
def assert_html_response_snapshot(
response: HttpResponse,
status_code: int = 200,
validate: bool = True,
**kwargs
):
data = response.content.decode('utf-8')
if validate:
validate_html(data)
data = pretty_format_html(data)

Wyświetl plik

@ -83,8 +83,8 @@ class AdminTestCase(HtmlAssertionMixin, TestCase):
item = ItemModel.objects.first()
self.assert_messages(response, expected_messages=[
f'The Item "<a href="/admin/inventory/itemmodel/{item.pk}/change/"> - name</a>"'
f' was added successfully.'
f'The Item <a href="/admin/inventory/itemmodel/{item.pk}/change/"> - name</a>'
' was added successfully.'
])
assert item.user_id == self.normaluser.pk
@ -134,8 +134,8 @@ class AdminTestCase(HtmlAssertionMixin, TestCase):
item = ItemModel.objects.first()
self.assert_messages(response, expected_messages=[
f'The Item "<a href="/admin/inventory/itemmodel/{item.pk}/change/"> - name</a>"'
f' was added successfully.'
f'The Item <a href="/admin/inventory/itemmodel/{item.pk}/change/"> - name</a>'
' was added successfully.'
])
assert item.user_id == self.normaluser.pk
@ -195,7 +195,7 @@ class AdminTestCase(HtmlAssertionMixin, TestCase):
'DEBUG:inventory.admin.item:Display sub items inline',
'DEBUG:inventory.admin.item:Display sub items inline'
]
assert_html_response_snapshot(response=response)
assert_html_response_snapshot(response=response, validate=False)
# Search should disable grouping:
@ -219,4 +219,4 @@ class AdminTestCase(HtmlAssertionMixin, TestCase):
# grouping disabled?
'INFO:inventory.admin.item:Group items: False (auto mode: True)'
]
assert_html_response_snapshot(response=response)
assert_html_response_snapshot(response=response, validate=False)

Wyświetl plik

@ -5,27 +5,30 @@
Select Item to change | PyInventory v0.10.0
</title>
<link href="/static/admin/css/base.css" rel="stylesheet" type="text/css"/>
<link href="/static/admin/css/nav_sidebar.css" rel="stylesheet" type="text/css"/>
<script defer="" src="/static/admin/js/nav_sidebar.js">
</script>
<link href="/static/admin/css/changelists.css" rel="stylesheet" type="text/css"/>
<script src="/admin/jsi18n/" type="text/javascript">
<script src="/admin/jsi18n/">
</script>
<meta content="notranslate" name="google"/>
<meta content="noindex,nofollow" name="robots">
<link href="/static/inventory.css" rel="stylesheet" type="text/css"/>
<script src="/static/admin/js/vendor/jquery/jquery.min.js" type="text/javascript">
<script src="/static/admin/js/vendor/jquery/jquery.min.js">
</script>
<script src="/static/admin/js/jquery.init.js" type="text/javascript">
<script src="/static/admin/js/jquery.init.js">
</script>
<script src="/static/admin/js/core.js" type="text/javascript">
<script src="/static/admin/js/core.js">
</script>
<script src="/static/admin/js/admin/RelatedObjectLookups.js" type="text/javascript">
<script src="/static/admin/js/admin/RelatedObjectLookups.js">
</script>
<script src="/static/admin/js/actions.min.js" type="text/javascript">
<script src="/static/admin/js/actions.min.js">
</script>
<script src="/static/admin/js/urlify.js" type="text/javascript">
<script src="/static/admin/js/urlify.js">
</script>
<script src="/static/admin/js/prepopulate.min.js" type="text/javascript">
<script src="/static/admin/js/prepopulate.min.js">
</script>
<script src="/static/admin/js/vendor/xregexp/xregexp.min.js" type="text/javascript">
<script src="/static/admin/js/vendor/xregexp/xregexp.min.js">
</script>
<meta content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0" name="viewport"/>
<link href="/static/admin/css/responsive.css" rel="stylesheet" type="text/css"/>
@ -74,6 +77,45 @@
</a>
Items
</div>
<div class="main shifted" id="main">
<button aria-label="Toggle navigation" class="sticky toggle-nav-sidebar" id="toggle-nav-sidebar">
</button>
<nav class="sticky" id="nav-sidebar">
<div class="app-inventory module current-app">
<table>
<caption>
<a class="section" href="/admin/inventory/" title="Models in the Inventory application">
Inventory
</a>
</caption>
<tr class="model-itemmodel current-model">
<th scope="row">
<a aria-current="page" href="/admin/inventory/itemmodel/">
Items
</a>
</th>
<td>
<a class="addlink" href="/admin/inventory/itemmodel/add/">
Add
</a>
</td>
</tr>
<tr class="model-locationmodel">
<th scope="row">
<a href="/admin/inventory/locationmodel/">
Locations
</a>
</th>
<td>
<a class="addlink" href="/admin/inventory/locationmodel/add/">
Add
</a>
</td>
</tr>
</table>
</div>
</nav>
<div class="content">
<!-- Content -->
<div class="flex" id="content">
<h1>
@ -98,6 +140,7 @@
</li>
</ul>
<div class="module filtered" id="changelist">
<div class="changelist-form-container">
<div id="toolbar">
<form id="changelist-search" method="get">
<div>
@ -132,26 +175,6 @@
</ul>
<br class="clear"/>
</div>
<div id="changelist-filter">
<h2>
Filter
</h2>
<h3>
By Group Items
</h3>
<ul>
<li class="selected">
<a href="?" title="Automatic">
Automatic
</a>
</li>
<li>
<a href="?grouping=no" title="No">
No
</a>
</li>
</ul>
</div>
<form id="changelist-form" method="post" novalidate="">
MockedCsrfTokenNode
<div class="actions">
@ -244,7 +267,7 @@
</tr>
</thead>
<tbody>
<tr class="row1">
<tr>
<td class="action-checkbox">
<input class="action-select" name="_selected_action" type="checkbox" value="00000000-0001-0000-0000-000000000000"/>
</td>
@ -281,7 +304,7 @@
Jan. 1, 2000, 1:01 a.m.
</td>
</tr>
<tr class="row2">
<tr>
<td class="action-checkbox">
<input class="action-select" name="_selected_action" type="checkbox" value="00000000-0002-0000-0000-000000000000"/>
</td>
@ -326,6 +349,27 @@
</p>
</form>
</div>
<div id="changelist-filter">
<h2>
Filter
</h2>
<h3>
By Group Items
</h3>
<ul>
<li class="selected">
<a href="?" title="Automatic">
Automatic
</a>
</li>
<li>
<a href="?grouping=no" title="No">
No
</a>
</li>
</ul>
</div>
</div>
</div>
<br class="clear"/>
</div>
@ -336,6 +380,8 @@
</a>
</div>
</div>
</div>
</div>
<!-- END Container -->
</body>
</html>

Wyświetl plik

@ -5,27 +5,30 @@
Select Item to change | PyInventory v0.10.0
</title>
<link href="/static/admin/css/base.css" rel="stylesheet" type="text/css"/>
<link href="/static/admin/css/nav_sidebar.css" rel="stylesheet" type="text/css"/>
<script defer="" src="/static/admin/js/nav_sidebar.js">
</script>
<link href="/static/admin/css/changelists.css" rel="stylesheet" type="text/css"/>
<script src="/admin/jsi18n/" type="text/javascript">
<script src="/admin/jsi18n/">
</script>
<meta content="notranslate" name="google"/>
<meta content="noindex,nofollow" name="robots">
<link href="/static/inventory.css" rel="stylesheet" type="text/css"/>
<script src="/static/admin/js/vendor/jquery/jquery.min.js" type="text/javascript">
<script src="/static/admin/js/vendor/jquery/jquery.min.js">
</script>
<script src="/static/admin/js/jquery.init.js" type="text/javascript">
<script src="/static/admin/js/jquery.init.js">
</script>
<script src="/static/admin/js/core.js" type="text/javascript">
<script src="/static/admin/js/core.js">
</script>
<script src="/static/admin/js/admin/RelatedObjectLookups.js" type="text/javascript">
<script src="/static/admin/js/admin/RelatedObjectLookups.js">
</script>
<script src="/static/admin/js/actions.min.js" type="text/javascript">
<script src="/static/admin/js/actions.min.js">
</script>
<script src="/static/admin/js/urlify.js" type="text/javascript">
<script src="/static/admin/js/urlify.js">
</script>
<script src="/static/admin/js/prepopulate.min.js" type="text/javascript">
<script src="/static/admin/js/prepopulate.min.js">
</script>
<script src="/static/admin/js/vendor/xregexp/xregexp.min.js" type="text/javascript">
<script src="/static/admin/js/vendor/xregexp/xregexp.min.js">
</script>
<meta content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0" name="viewport"/>
<link href="/static/admin/css/responsive.css" rel="stylesheet" type="text/css"/>
@ -74,6 +77,45 @@
</a>
Items
</div>
<div class="main shifted" id="main">
<button aria-label="Toggle navigation" class="sticky toggle-nav-sidebar" id="toggle-nav-sidebar">
</button>
<nav class="sticky" id="nav-sidebar">
<div class="app-inventory module current-app">
<table>
<caption>
<a class="section" href="/admin/inventory/" title="Models in the Inventory application">
Inventory
</a>
</caption>
<tr class="model-itemmodel current-model">
<th scope="row">
<a aria-current="page" href="/admin/inventory/itemmodel/">
Items
</a>
</th>
<td>
<a class="addlink" href="/admin/inventory/itemmodel/add/">
Add
</a>
</td>
</tr>
<tr class="model-locationmodel">
<th scope="row">
<a href="/admin/inventory/locationmodel/">
Locations
</a>
</th>
<td>
<a class="addlink" href="/admin/inventory/locationmodel/add/">
Add
</a>
</td>
</tr>
</table>
</div>
</nav>
<div class="content">
<!-- Content -->
<div class="flex" id="content">
<h1>
@ -98,6 +140,7 @@
</li>
</ul>
<div class="module filtered" id="changelist">
<div class="changelist-form-container">
<div id="toolbar">
<form id="changelist-search" method="get">
<div>
@ -132,26 +175,6 @@
</ul>
<br class="clear"/>
</div>
<div id="changelist-filter">
<h2>
Filter
</h2>
<h3>
By Group Items
</h3>
<ul>
<li class="selected">
<a href="?q=sub+item+2." title="Automatic">
Automatic
</a>
</li>
<li>
<a href="?grouping=no&q=sub+item+2." title="No">
No
</a>
</li>
</ul>
</div>
<form id="changelist-form" method="post" novalidate="">
MockedCsrfTokenNode
<div class="actions">
@ -244,7 +267,7 @@
</tr>
</thead>
<tbody>
<tr class="row1">
<tr>
<td class="action-checkbox">
<input class="action-select" name="_selected_action" type="checkbox" value="00000000-0002-0001-0000-000000000000"/>
</td>
@ -269,7 +292,7 @@
Jan. 1, 2000, 1:05 a.m.
</td>
</tr>
<tr class="row2">
<tr>
<td class="action-checkbox">
<input class="action-select" name="_selected_action" type="checkbox" value="00000000-0002-0002-0000-000000000000"/>
</td>
@ -302,6 +325,27 @@
</p>
</form>
</div>
<div id="changelist-filter">
<h2>
Filter
</h2>
<h3>
By Group Items
</h3>
<ul>
<li class="selected">
<a href="?q=sub+item+2." title="Automatic">
Automatic
</a>
</li>
<li>
<a href="?grouping=no&q=sub+item+2." title="No">
No
</a>
</li>
</ul>
</div>
</div>
</div>
<br class="clear"/>
</div>
@ -312,6 +356,8 @@
</a>
</div>
</div>
</div>
</div>
<!-- END Container -->
</body>
</html>

Wyświetl plik

@ -1,5 +1,5 @@
from django.conf import settings
from django.conf.urls import include, static, url
from django.conf.urls import include, re_path, static
from django.contrib import admin
from django.urls import path
from django.views.generic import RedirectView
@ -10,7 +10,7 @@ admin.autodiscover()
urlpatterns = [ # Don't use i18n_patterns() here
path('admin/', admin.site.urls),
url(r'^$', RedirectView.as_view(pattern_name='admin:index')),
re_path(r'^$', RedirectView.as_view(pattern_name='admin:index')),
path('ckeditor/', include('ckeditor_uploader.urls')), # TODO: check permissions?
path(settings.MEDIA_URL.lstrip('/'), include('django_tools.serve_media_app.urls')),
@ -23,4 +23,4 @@ if settings.SERVE_FILES:
if settings.DEBUG:
import debug_toolbar
urlpatterns = [url(r'^__debug__/', include(debug_toolbar.urls))] + urlpatterns
urlpatterns = [re_path(r'^__debug__/', include(debug_toolbar.urls))] + urlpatterns