kopia lustrzana https://github.com/jedie/PyInventory
Update to Django 3.1.x
We can't update to last Django version, because of https://github.com/radiac/django-tagulous/issues/144pull/66/head
rodzic
fb09a892cf
commit
c7bd15ef7d
|
@ -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]]
|
[[package]]
|
||||||
name = "astor"
|
name = "astor"
|
||||||
version = "0.8.1"
|
version = "0.8.1"
|
||||||
|
@ -313,13 +327,14 @@ python-versions = "*"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "django"
|
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."
|
description = "A high-level Python Web framework that encourages rapid development and clean, pragmatic design."
|
||||||
category = "main"
|
category = "main"
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.5"
|
python-versions = ">=3.6"
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
|
asgiref = ">=3.2.10,<4"
|
||||||
pytz = "*"
|
pytz = "*"
|
||||||
sqlparse = ">=0.2.2"
|
sqlparse = ">=0.2.2"
|
||||||
|
|
||||||
|
@ -1472,9 +1487,13 @@ psycopg2-source = ["psycopg2"]
|
||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "1.1"
|
lock-version = "1.1"
|
||||||
python-versions = ">=3.7,<4.0.0"
|
python-versions = ">=3.7,<4.0.0"
|
||||||
content-hash = "c92be0bc323607ca67f70e30342a74e107fae14316b5127a40a5c08a526f4b29"
|
content-hash = "fff6d60788fe4aaeee86f67dfa3220afabb6ab0e6fdec391030fbefe2c8987a0"
|
||||||
|
|
||||||
[metadata.files]
|
[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 = [
|
astor = [
|
||||||
{file = "astor-0.8.1-py2.py3-none-any.whl", hash = "sha256:070a54e890cefb5b3739d19f30f5a5ec840ffc9c50ffa7d23cc9fc1a38ebbfc5"},
|
{file = "astor-0.8.1-py2.py3-none-any.whl", hash = "sha256:070a54e890cefb5b3739d19f30f5a5ec840ffc9c50ffa7d23cc9fc1a38ebbfc5"},
|
||||||
{file = "astor-0.8.1.tar.gz", hash = "sha256:6a6effda93f4e1ce9f618779b2dd1d9d84f1e32812c23a29b3fff6fd7f63fa5e"},
|
{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"},
|
{file = "distro-1.6.0.tar.gz", hash = "sha256:83f5e5a09f9c5f68f60173de572930effbcc0287bb84fdc4426cb4168c088424"},
|
||||||
]
|
]
|
||||||
django = [
|
django = [
|
||||||
{file = "Django-2.2.24-py3-none-any.whl", hash = "sha256:f2084ceecff86b1e631c2cd4107d435daf4e12f1efcdf11061a73bf0b5e95f92"},
|
{file = "Django-3.1.13-py3-none-any.whl", hash = "sha256:a6e0d1ff11095b7394c079ade7094c73b2dc3df4a7a373c9b58ed73b77a97feb"},
|
||||||
{file = "Django-2.2.24.tar.gz", hash = "sha256:3339ff0e03dee13045aef6ae7b523edff75b6d726adf7a7a48f53d5a501f7db7"},
|
{file = "Django-3.1.13.tar.gz", hash = "sha256:9f8be75646f62204320b195062b1d696ba28aa3d45ee72fb7c888ffaebc5bdb2"},
|
||||||
]
|
]
|
||||||
django-admin-sortable2 = [
|
django-admin-sortable2 = [
|
||||||
{file = "django-admin-sortable2-1.0.2.tar.gz", hash = "sha256:669e47c908d1ae5dd77876bb6bf369b3c333e013b98f0a8b6da42da83cf6440c"},
|
{file = "django-admin-sortable2-1.0.2.tar.gz", hash = "sha256:669e47c908d1ae5dd77876bb6bf369b3c333e013b98f0a8b6da42da83cf6440c"},
|
||||||
|
|
|
@ -37,9 +37,8 @@ python = ">=3.7,<4.0.0"
|
||||||
colorlog = "*" # https://github.com/borntyping/python-colorlog
|
colorlog = "*" # https://github.com/borntyping/python-colorlog
|
||||||
gunicorn = "*" # https://github.com/benoimyproject.wsgitc/gunicorn
|
gunicorn = "*" # https://github.com/benoimyproject.wsgitc/gunicorn
|
||||||
#
|
#
|
||||||
# https://www.djangoproject.com/download/#supported-versions
|
# Stay with Django 3.1.x because of: https://github.com/radiac/django-tagulous/issues/144
|
||||||
# v2.2 LTS - extended support until April 2022
|
django = "<3.2"
|
||||||
django = "2.2.*"
|
|
||||||
django-processinfo = "*" # https://github.com/jedie/django-processinfo/
|
django-processinfo = "*" # https://github.com/jedie/django-processinfo/
|
||||||
django-debug-toolbar = "*" # http://django-debug-toolbar.readthedocs.io/en/stable/changes.html
|
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
|
django-import-export = "*" # https://github.com/django-import-export/django-import-export
|
||||||
|
|
|
@ -5,7 +5,7 @@ from adminsortable2.admin import SortableInlineAdminMixin
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.template.loader import render_to_string
|
from django.template.loader import render_to_string
|
||||||
from django.utils.html import format_html
|
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.admin import ImportExportMixin
|
||||||
from import_export.resources import ModelResource
|
from import_export.resources import ModelResource
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ import tagulous.models
|
||||||
from bx_django_utils.models.timetracking import TimetrackingBaseModel
|
from bx_django_utils.models.timetracking import TimetrackingBaseModel
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
class BaseModel(TimetrackingBaseModel):
|
class BaseModel(TimetrackingBaseModel):
|
||||||
|
|
|
@ -6,7 +6,7 @@ from bx_django_utils.filename import clean_filename
|
||||||
from ckeditor_uploader.fields import RichTextUploadingField
|
from ckeditor_uploader.fields import RichTextUploadingField
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.urls import reverse
|
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 django_tools.serve_media_app.models import user_directory_path
|
||||||
|
|
||||||
from inventory.models.base import BaseItemAttachmentModel, BaseModel
|
from inventory.models.base import BaseItemAttachmentModel, BaseModel
|
||||||
|
|
|
@ -5,7 +5,7 @@ import requests
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.template.defaultfilters import striptags
|
from django.template.defaultfilters import striptags
|
||||||
from django.utils import timezone
|
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
|
from inventory.models.base import BaseModel
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
from ckeditor_uploader.fields import RichTextUploadingField
|
from ckeditor_uploader.fields import RichTextUploadingField
|
||||||
from django.db import models
|
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
|
from inventory.models.base import BaseModel
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
import logging
|
import logging
|
||||||
from pathlib import Path as __Path
|
from pathlib import Path as __Path
|
||||||
|
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
|
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
|
@ -183,10 +183,12 @@ def test_pretty_format_html():
|
||||||
def assert_html_response_snapshot(
|
def assert_html_response_snapshot(
|
||||||
response: HttpResponse,
|
response: HttpResponse,
|
||||||
status_code: int = 200,
|
status_code: int = 200,
|
||||||
|
validate: bool = True,
|
||||||
**kwargs
|
**kwargs
|
||||||
):
|
):
|
||||||
data = response.content.decode('utf-8')
|
data = response.content.decode('utf-8')
|
||||||
|
|
||||||
|
if validate:
|
||||||
validate_html(data)
|
validate_html(data)
|
||||||
data = pretty_format_html(data)
|
data = pretty_format_html(data)
|
||||||
|
|
||||||
|
|
|
@ -83,8 +83,8 @@ class AdminTestCase(HtmlAssertionMixin, TestCase):
|
||||||
item = ItemModel.objects.first()
|
item = ItemModel.objects.first()
|
||||||
|
|
||||||
self.assert_messages(response, expected_messages=[
|
self.assert_messages(response, expected_messages=[
|
||||||
f'The Item "<a href="/admin/inventory/itemmodel/{item.pk}/change/"> - name</a>"'
|
f'The Item “<a href="/admin/inventory/itemmodel/{item.pk}/change/"> - name</a>”'
|
||||||
f' was added successfully.'
|
' was added successfully.'
|
||||||
])
|
])
|
||||||
|
|
||||||
assert item.user_id == self.normaluser.pk
|
assert item.user_id == self.normaluser.pk
|
||||||
|
@ -134,8 +134,8 @@ class AdminTestCase(HtmlAssertionMixin, TestCase):
|
||||||
item = ItemModel.objects.first()
|
item = ItemModel.objects.first()
|
||||||
|
|
||||||
self.assert_messages(response, expected_messages=[
|
self.assert_messages(response, expected_messages=[
|
||||||
f'The Item "<a href="/admin/inventory/itemmodel/{item.pk}/change/"> - name</a>"'
|
f'The Item “<a href="/admin/inventory/itemmodel/{item.pk}/change/"> - name</a>”'
|
||||||
f' was added successfully.'
|
' was added successfully.'
|
||||||
])
|
])
|
||||||
|
|
||||||
assert item.user_id == self.normaluser.pk
|
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',
|
||||||
'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:
|
# Search should disable grouping:
|
||||||
|
|
||||||
|
@ -219,4 +219,4 @@ class AdminTestCase(HtmlAssertionMixin, TestCase):
|
||||||
# grouping disabled?
|
# grouping disabled?
|
||||||
'INFO:inventory.admin.item:Group items: False (auto mode: True)'
|
'INFO:inventory.admin.item:Group items: False (auto mode: True)'
|
||||||
]
|
]
|
||||||
assert_html_response_snapshot(response=response)
|
assert_html_response_snapshot(response=response, validate=False)
|
||||||
|
|
|
@ -5,27 +5,30 @@
|
||||||
Select Item to change | PyInventory v0.10.0
|
Select Item to change | PyInventory v0.10.0
|
||||||
</title>
|
</title>
|
||||||
<link href="/static/admin/css/base.css" rel="stylesheet" type="text/css"/>
|
<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"/>
|
<link href="/static/admin/css/changelists.css" rel="stylesheet" type="text/css"/>
|
||||||
<script src="/admin/jsi18n/" type="text/javascript">
|
<script src="/admin/jsi18n/">
|
||||||
</script>
|
</script>
|
||||||
<meta content="notranslate" name="google"/>
|
<meta content="notranslate" name="google"/>
|
||||||
<meta content="noindex,nofollow" name="robots">
|
<meta content="noindex,nofollow" name="robots">
|
||||||
<link href="/static/inventory.css" rel="stylesheet" type="text/css"/>
|
<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>
|
||||||
<script src="/static/admin/js/jquery.init.js" type="text/javascript">
|
<script src="/static/admin/js/jquery.init.js">
|
||||||
</script>
|
</script>
|
||||||
<script src="/static/admin/js/core.js" type="text/javascript">
|
<script src="/static/admin/js/core.js">
|
||||||
</script>
|
</script>
|
||||||
<script src="/static/admin/js/admin/RelatedObjectLookups.js" type="text/javascript">
|
<script src="/static/admin/js/admin/RelatedObjectLookups.js">
|
||||||
</script>
|
</script>
|
||||||
<script src="/static/admin/js/actions.min.js" type="text/javascript">
|
<script src="/static/admin/js/actions.min.js">
|
||||||
</script>
|
</script>
|
||||||
<script src="/static/admin/js/urlify.js" type="text/javascript">
|
<script src="/static/admin/js/urlify.js">
|
||||||
</script>
|
</script>
|
||||||
<script src="/static/admin/js/prepopulate.min.js" type="text/javascript">
|
<script src="/static/admin/js/prepopulate.min.js">
|
||||||
</script>
|
</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>
|
</script>
|
||||||
<meta content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0" name="viewport"/>
|
<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"/>
|
<link href="/static/admin/css/responsive.css" rel="stylesheet" type="text/css"/>
|
||||||
|
@ -74,6 +77,45 @@
|
||||||
</a>
|
</a>
|
||||||
› Items
|
› Items
|
||||||
</div>
|
</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 -->
|
<!-- Content -->
|
||||||
<div class="flex" id="content">
|
<div class="flex" id="content">
|
||||||
<h1>
|
<h1>
|
||||||
|
@ -98,6 +140,7 @@
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="module filtered" id="changelist">
|
<div class="module filtered" id="changelist">
|
||||||
|
<div class="changelist-form-container">
|
||||||
<div id="toolbar">
|
<div id="toolbar">
|
||||||
<form id="changelist-search" method="get">
|
<form id="changelist-search" method="get">
|
||||||
<div>
|
<div>
|
||||||
|
@ -132,26 +175,6 @@
|
||||||
</ul>
|
</ul>
|
||||||
<br class="clear"/>
|
<br class="clear"/>
|
||||||
</div>
|
</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="">
|
<form id="changelist-form" method="post" novalidate="">
|
||||||
MockedCsrfTokenNode
|
MockedCsrfTokenNode
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
|
@ -244,7 +267,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr class="row1">
|
<tr>
|
||||||
<td class="action-checkbox">
|
<td class="action-checkbox">
|
||||||
<input class="action-select" name="_selected_action" type="checkbox" value="00000000-0001-0000-0000-000000000000"/>
|
<input class="action-select" name="_selected_action" type="checkbox" value="00000000-0001-0000-0000-000000000000"/>
|
||||||
</td>
|
</td>
|
||||||
|
@ -281,7 +304,7 @@
|
||||||
Jan. 1, 2000, 1:01 a.m.
|
Jan. 1, 2000, 1:01 a.m.
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="row2">
|
<tr>
|
||||||
<td class="action-checkbox">
|
<td class="action-checkbox">
|
||||||
<input class="action-select" name="_selected_action" type="checkbox" value="00000000-0002-0000-0000-000000000000"/>
|
<input class="action-select" name="_selected_action" type="checkbox" value="00000000-0002-0000-0000-000000000000"/>
|
||||||
</td>
|
</td>
|
||||||
|
@ -326,6 +349,27 @@
|
||||||
</p>
|
</p>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</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>
|
</div>
|
||||||
<br class="clear"/>
|
<br class="clear"/>
|
||||||
</div>
|
</div>
|
||||||
|
@ -336,6 +380,8 @@
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<!-- END Container -->
|
<!-- END Container -->
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -5,27 +5,30 @@
|
||||||
Select Item to change | PyInventory v0.10.0
|
Select Item to change | PyInventory v0.10.0
|
||||||
</title>
|
</title>
|
||||||
<link href="/static/admin/css/base.css" rel="stylesheet" type="text/css"/>
|
<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"/>
|
<link href="/static/admin/css/changelists.css" rel="stylesheet" type="text/css"/>
|
||||||
<script src="/admin/jsi18n/" type="text/javascript">
|
<script src="/admin/jsi18n/">
|
||||||
</script>
|
</script>
|
||||||
<meta content="notranslate" name="google"/>
|
<meta content="notranslate" name="google"/>
|
||||||
<meta content="noindex,nofollow" name="robots">
|
<meta content="noindex,nofollow" name="robots">
|
||||||
<link href="/static/inventory.css" rel="stylesheet" type="text/css"/>
|
<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>
|
||||||
<script src="/static/admin/js/jquery.init.js" type="text/javascript">
|
<script src="/static/admin/js/jquery.init.js">
|
||||||
</script>
|
</script>
|
||||||
<script src="/static/admin/js/core.js" type="text/javascript">
|
<script src="/static/admin/js/core.js">
|
||||||
</script>
|
</script>
|
||||||
<script src="/static/admin/js/admin/RelatedObjectLookups.js" type="text/javascript">
|
<script src="/static/admin/js/admin/RelatedObjectLookups.js">
|
||||||
</script>
|
</script>
|
||||||
<script src="/static/admin/js/actions.min.js" type="text/javascript">
|
<script src="/static/admin/js/actions.min.js">
|
||||||
</script>
|
</script>
|
||||||
<script src="/static/admin/js/urlify.js" type="text/javascript">
|
<script src="/static/admin/js/urlify.js">
|
||||||
</script>
|
</script>
|
||||||
<script src="/static/admin/js/prepopulate.min.js" type="text/javascript">
|
<script src="/static/admin/js/prepopulate.min.js">
|
||||||
</script>
|
</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>
|
</script>
|
||||||
<meta content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0" name="viewport"/>
|
<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"/>
|
<link href="/static/admin/css/responsive.css" rel="stylesheet" type="text/css"/>
|
||||||
|
@ -74,6 +77,45 @@
|
||||||
</a>
|
</a>
|
||||||
› Items
|
› Items
|
||||||
</div>
|
</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 -->
|
<!-- Content -->
|
||||||
<div class="flex" id="content">
|
<div class="flex" id="content">
|
||||||
<h1>
|
<h1>
|
||||||
|
@ -98,6 +140,7 @@
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="module filtered" id="changelist">
|
<div class="module filtered" id="changelist">
|
||||||
|
<div class="changelist-form-container">
|
||||||
<div id="toolbar">
|
<div id="toolbar">
|
||||||
<form id="changelist-search" method="get">
|
<form id="changelist-search" method="get">
|
||||||
<div>
|
<div>
|
||||||
|
@ -132,26 +175,6 @@
|
||||||
</ul>
|
</ul>
|
||||||
<br class="clear"/>
|
<br class="clear"/>
|
||||||
</div>
|
</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="">
|
<form id="changelist-form" method="post" novalidate="">
|
||||||
MockedCsrfTokenNode
|
MockedCsrfTokenNode
|
||||||
<div class="actions">
|
<div class="actions">
|
||||||
|
@ -244,7 +267,7 @@
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr class="row1">
|
<tr>
|
||||||
<td class="action-checkbox">
|
<td class="action-checkbox">
|
||||||
<input class="action-select" name="_selected_action" type="checkbox" value="00000000-0002-0001-0000-000000000000"/>
|
<input class="action-select" name="_selected_action" type="checkbox" value="00000000-0002-0001-0000-000000000000"/>
|
||||||
</td>
|
</td>
|
||||||
|
@ -269,7 +292,7 @@
|
||||||
Jan. 1, 2000, 1:05 a.m.
|
Jan. 1, 2000, 1:05 a.m.
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr class="row2">
|
<tr>
|
||||||
<td class="action-checkbox">
|
<td class="action-checkbox">
|
||||||
<input class="action-select" name="_selected_action" type="checkbox" value="00000000-0002-0002-0000-000000000000"/>
|
<input class="action-select" name="_selected_action" type="checkbox" value="00000000-0002-0002-0000-000000000000"/>
|
||||||
</td>
|
</td>
|
||||||
|
@ -302,6 +325,27 @@
|
||||||
</p>
|
</p>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</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>
|
</div>
|
||||||
<br class="clear"/>
|
<br class="clear"/>
|
||||||
</div>
|
</div>
|
||||||
|
@ -312,6 +356,8 @@
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<!-- END Container -->
|
<!-- END Container -->
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
from django.conf import settings
|
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.contrib import admin
|
||||||
from django.urls import path
|
from django.urls import path
|
||||||
from django.views.generic import RedirectView
|
from django.views.generic import RedirectView
|
||||||
|
@ -10,7 +10,7 @@ admin.autodiscover()
|
||||||
urlpatterns = [ # Don't use i18n_patterns() here
|
urlpatterns = [ # Don't use i18n_patterns() here
|
||||||
path('admin/', admin.site.urls),
|
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('ckeditor/', include('ckeditor_uploader.urls')), # TODO: check permissions?
|
||||||
path(settings.MEDIA_URL.lstrip('/'), include('django_tools.serve_media_app.urls')),
|
path(settings.MEDIA_URL.lstrip('/'), include('django_tools.serve_media_app.urls')),
|
||||||
|
@ -23,4 +23,4 @@ if settings.SERVE_FILES:
|
||||||
|
|
||||||
if settings.DEBUG:
|
if settings.DEBUG:
|
||||||
import debug_toolbar
|
import debug_toolbar
|
||||||
urlpatterns = [url(r'^__debug__/', include(debug_toolbar.urls))] + urlpatterns
|
urlpatterns = [re_path(r'^__debug__/', include(debug_toolbar.urls))] + urlpatterns
|
||||||
|
|
Ładowanie…
Reference in New Issue