kopia lustrzana https://github.com/jedie/PyInventory
Compare HTML code in pretty format
Use own code until https://github.com/boxine/bx_py_utils/pull/95 is released.pull/67/head
rodzic
8b8564e89b
commit
584d229b43
|
@ -71,6 +71,21 @@ six = ">=1.4.1"
|
|||
tests = ["pytest (>=3.2.1,!=3.3.0)"]
|
||||
typecheck = ["mypy"]
|
||||
|
||||
[[package]]
|
||||
name = "beautifulsoup4"
|
||||
version = "4.10.0"
|
||||
description = "Screen-scraping library"
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">3.0.0"
|
||||
|
||||
[package.dependencies]
|
||||
soupsieve = ">1.2"
|
||||
|
||||
[package.extras]
|
||||
html5lib = ["html5lib"]
|
||||
lxml = ["lxml"]
|
||||
|
||||
[[package]]
|
||||
name = "bleach"
|
||||
version = "4.1.0"
|
||||
|
@ -99,7 +114,7 @@ python-stdnum = "*"
|
|||
|
||||
[[package]]
|
||||
name = "bx-py-utils"
|
||||
version = "44"
|
||||
version = "45"
|
||||
description = "Various Python utility functions"
|
||||
category = "main"
|
||||
optional = false
|
||||
|
@ -115,7 +130,7 @@ python-versions = "*"
|
|||
|
||||
[[package]]
|
||||
name = "certifi"
|
||||
version = "2021.5.30"
|
||||
version = "2021.10.8"
|
||||
description = "Python package for providing Mozilla's CA Bundle."
|
||||
category = "main"
|
||||
optional = false
|
||||
|
@ -191,7 +206,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
|||
|
||||
[[package]]
|
||||
name = "colorlog"
|
||||
version = "6.4.1"
|
||||
version = "6.5.0"
|
||||
description = "Add colours to the output of Python's logging module."
|
||||
category = "main"
|
||||
optional = false
|
||||
|
@ -211,6 +226,9 @@ category = "dev"
|
|||
optional = false
|
||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
|
||||
|
||||
[package.dependencies]
|
||||
toml = {version = "*", optional = true, markers = "extra == \"toml\""}
|
||||
|
||||
[package.extras]
|
||||
toml = ["toml"]
|
||||
|
||||
|
@ -232,7 +250,7 @@ yaml = ["PyYAML (>=3.10)"]
|
|||
|
||||
[[package]]
|
||||
name = "cryptography"
|
||||
version = "3.4.8"
|
||||
version = "35.0.0"
|
||||
description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers."
|
||||
category = "main"
|
||||
optional = false
|
||||
|
@ -245,9 +263,9 @@ cffi = ">=1.12"
|
|||
docs = ["sphinx (>=1.6.5,!=1.8.0,!=3.1.0,!=3.1.1)", "sphinx-rtd-theme"]
|
||||
docstest = ["doc8", "pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"]
|
||||
pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"]
|
||||
sdist = ["setuptools-rust (>=0.11.4)"]
|
||||
sdist = ["setuptools_rust (>=0.11.4)"]
|
||||
ssh = ["bcrypt (>=3.1.5)"]
|
||||
test = ["pytest (>=6.0)", "pytest-cov", "pytest-subtests", "pytest-xdist", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,!=3.79.2)"]
|
||||
test = ["pytest (>=6.2.0)", "pytest-cov", "pytest-subtests", "pytest-xdist", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,!=3.79.2)"]
|
||||
|
||||
[[package]]
|
||||
name = "defusedxml"
|
||||
|
@ -311,7 +329,7 @@ bcrypt = ["bcrypt"]
|
|||
|
||||
[[package]]
|
||||
name = "django-admin-sortable2"
|
||||
version = "1.0"
|
||||
version = "1.0.2"
|
||||
description = "Generic drag-and-drop sorting for the List, the Stacked- and the Tabular-Inlines Views in the Django Admin"
|
||||
category = "main"
|
||||
optional = false
|
||||
|
@ -370,7 +388,7 @@ sqlparse = ">=0.2.0"
|
|||
|
||||
[[package]]
|
||||
name = "django-import-export"
|
||||
version = "2.6.0"
|
||||
version = "2.6.1"
|
||||
description = "Django application and library for importing and exporting data with included admin integration."
|
||||
category = "main"
|
||||
optional = false
|
||||
|
@ -462,7 +480,7 @@ pprintpp = "*"
|
|||
|
||||
[[package]]
|
||||
name = "docker"
|
||||
version = "5.0.2"
|
||||
version = "5.0.3"
|
||||
description = "A Python library for the Docker Engine API."
|
||||
category = "main"
|
||||
optional = true
|
||||
|
@ -541,15 +559,15 @@ python-versions = ">=3.6"
|
|||
|
||||
[[package]]
|
||||
name = "filelock"
|
||||
version = "3.1.0"
|
||||
version = "3.3.0"
|
||||
description = "A platform independent file lock."
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
|
||||
python-versions = ">=3.6"
|
||||
|
||||
[package.extras]
|
||||
docs = ["furo (>=2021.8.17b43)", "sphinx (>=4.1)", "sphinx-autodoc-typehints (>=1.12)"]
|
||||
testing = ["coverage (>=4)", "pytest (>=4)", "pytest-cov"]
|
||||
testing = ["covdefaults (>=1.2.0)", "coverage (>=4)", "pytest (>=4)", "pytest-cov", "pytest-timeout (>=1.4.2)"]
|
||||
|
||||
[[package]]
|
||||
name = "flake8"
|
||||
|
@ -701,6 +719,20 @@ SecretStorage = {version = ">=3.2", markers = "sys_platform == \"linux\""}
|
|||
docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
|
||||
testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "pytest-black (>=0.3.7)", "pytest-mypy"]
|
||||
|
||||
[[package]]
|
||||
name = "lxml"
|
||||
version = "4.6.3"
|
||||
description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API."
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*"
|
||||
|
||||
[package.extras]
|
||||
cssselect = ["cssselect (>=0.7)"]
|
||||
html5 = ["html5lib"]
|
||||
htmlsoup = ["beautifulsoup4"]
|
||||
source = ["Cython (>=0.29.7)"]
|
||||
|
||||
[[package]]
|
||||
name = "markuppy"
|
||||
version = "1.14"
|
||||
|
@ -719,7 +751,7 @@ python-versions = "*"
|
|||
|
||||
[[package]]
|
||||
name = "model-bakery"
|
||||
version = "1.3.2"
|
||||
version = "1.3.3"
|
||||
description = "Smart object creation facility for Django."
|
||||
category = "dev"
|
||||
optional = false
|
||||
|
@ -982,16 +1014,15 @@ testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xm
|
|||
|
||||
[[package]]
|
||||
name = "pytest-cov"
|
||||
version = "2.12.1"
|
||||
version = "3.0.0"
|
||||
description = "Pytest plugin for measuring coverage."
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
|
||||
python-versions = ">=3.6"
|
||||
|
||||
[package.dependencies]
|
||||
coverage = ">=5.2.1"
|
||||
coverage = {version = ">=5.2.1", extras = ["toml"]}
|
||||
pytest = ">=4.6"
|
||||
toml = "*"
|
||||
|
||||
[package.extras]
|
||||
testing = ["fields", "hunter", "process-tests", "six", "pytest-xdist", "virtualenv"]
|
||||
|
@ -1048,7 +1079,7 @@ docutils = "*"
|
|||
|
||||
[[package]]
|
||||
name = "python-dotenv"
|
||||
version = "0.19.0"
|
||||
version = "0.19.1"
|
||||
description = "Read key-value pairs from a .env file and set them as environment variables"
|
||||
category = "main"
|
||||
optional = true
|
||||
|
@ -1059,7 +1090,7 @@ cli = ["click (>=5.0)"]
|
|||
|
||||
[[package]]
|
||||
name = "python-stdnum"
|
||||
version = "1.16"
|
||||
version = "1.17"
|
||||
description = "Python module to handle standardized numbers and codes"
|
||||
category = "main"
|
||||
optional = false
|
||||
|
@ -1072,7 +1103,7 @@ soap-fallback = ["pysimplesoap"]
|
|||
|
||||
[[package]]
|
||||
name = "pytz"
|
||||
version = "2021.1"
|
||||
version = "2021.3"
|
||||
description = "World timezone definitions, modern and historical"
|
||||
category = "main"
|
||||
optional = false
|
||||
|
@ -1115,7 +1146,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
|
|||
|
||||
[[package]]
|
||||
name = "readme-renderer"
|
||||
version = "29.0"
|
||||
version = "30.0"
|
||||
description = "readme_renderer is a library for rendering \"readme\" descriptions for Warehouse"
|
||||
category = "dev"
|
||||
optional = false
|
||||
|
@ -1125,10 +1156,9 @@ python-versions = "*"
|
|||
bleach = ">=2.1.0"
|
||||
docutils = ">=0.13.1"
|
||||
Pygments = ">=2.5.1"
|
||||
six = "*"
|
||||
|
||||
[package.extras]
|
||||
md = ["cmarkgfm (>=0.5.0,<0.6.0)"]
|
||||
md = ["cmarkgfm (>=0.5.0,<0.7.0)"]
|
||||
|
||||
[[package]]
|
||||
name = "requests"
|
||||
|
@ -1201,6 +1231,14 @@ category = "main"
|
|||
optional = false
|
||||
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
|
||||
|
||||
[[package]]
|
||||
name = "soupsieve"
|
||||
version = "2.2.1"
|
||||
description = "A modern CSS selector implementation for Beautiful Soup."
|
||||
category = "dev"
|
||||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
|
||||
[[package]]
|
||||
name = "sqlparse"
|
||||
version = "0.4.2"
|
||||
|
@ -1434,7 +1472,7 @@ psycopg2-source = ["psycopg2"]
|
|||
[metadata]
|
||||
lock-version = "1.1"
|
||||
python-versions = ">=3.7,<4.0.0"
|
||||
content-hash = "79cf17d085abc06e6ec8ea7b2aa414f50e46281e433df02be8c78620ce0ef431"
|
||||
content-hash = "c92be0bc323607ca67f70e30342a74e107fae14316b5127a40a5c08a526f4b29"
|
||||
|
||||
[metadata.files]
|
||||
astor = [
|
||||
|
@ -1466,6 +1504,10 @@ bcrypt = [
|
|||
{file = "bcrypt-3.2.0-cp36-abi3-win_amd64.whl", hash = "sha256:81fec756feff5b6818ea7ab031205e1d323d8943d237303baca2c5f9c7846f34"},
|
||||
{file = "bcrypt-3.2.0.tar.gz", hash = "sha256:5b93c1726e50a93a033c36e5ca7fdcd29a5c7395af50a6892f5d9e7c6cfbfb29"},
|
||||
]
|
||||
beautifulsoup4 = [
|
||||
{file = "beautifulsoup4-4.10.0-py3-none-any.whl", hash = "sha256:9a315ce70049920ea4572a4055bc4bd700c940521d36fc858205ad4fcde149bf"},
|
||||
{file = "beautifulsoup4-4.10.0.tar.gz", hash = "sha256:c23ad23c521d818955a4151a67d81580319d4bf548d3d49f4223ae041ff98891"},
|
||||
]
|
||||
bleach = [
|
||||
{file = "bleach-4.1.0-py2.py3-none-any.whl", hash = "sha256:4d2651ab93271d1129ac9cbc679f524565cc8a1b791909c4a51eac4446a15994"},
|
||||
{file = "bleach-4.1.0.tar.gz", hash = "sha256:0900d8b37eba61a802ee40ac0061f8c2b5dee29c1927dd1d233e075ebf5a71da"},
|
||||
|
@ -1475,16 +1517,16 @@ bx-django-utils = [
|
|||
{file = "bx_django_utils-6.tar.gz", hash = "sha256:d92fde43fba1a0403613958be5fc530b55a0ce8f36f744d3060601d38b6d0641"},
|
||||
]
|
||||
bx-py-utils = [
|
||||
{file = "bx_py_utils-44-py3-none-any.whl", hash = "sha256:d253c0daf32682201a03e4f80a90028ebdfbad7a93b102a7befcf003a1624a4d"},
|
||||
{file = "bx_py_utils-44.tar.gz", hash = "sha256:693daa83e5037db527b0e7254de4bacc6c05f1c0153714eacfa7d366d58709e8"},
|
||||
{file = "bx_py_utils-45-py3-none-any.whl", hash = "sha256:276e7f5d06b85de21628eb5cbbdac7e23226a9c760ece2fb93a14116008c0d85"},
|
||||
{file = "bx_py_utils-45.tar.gz", hash = "sha256:ac403213b0f411edc5678ba8a9749f141b9e25fbe5509c3ca817c9b977e15e4f"},
|
||||
]
|
||||
cached-property = [
|
||||
{file = "cached-property-1.5.2.tar.gz", hash = "sha256:9fa5755838eecbb2d234c3aa390bd80fbd3ac6b6869109bfc1b499f7bd89a130"},
|
||||
{file = "cached_property-1.5.2-py2.py3-none-any.whl", hash = "sha256:df4f613cf7ad9a588cc381aaf4a512d26265ecebd5eb9e1ba12f1319eb85a6a0"},
|
||||
]
|
||||
certifi = [
|
||||
{file = "certifi-2021.5.30-py2.py3-none-any.whl", hash = "sha256:50b1e4f8446b06f41be7dd6338db18e0990601dce795c2b1686458aa7e8fa7d8"},
|
||||
{file = "certifi-2021.5.30.tar.gz", hash = "sha256:2bbf76fd432960138b3ef6dda3dde0544f27cbf8546c458e60baf371917ba9ee"},
|
||||
{file = "certifi-2021.10.8-py2.py3-none-any.whl", hash = "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"},
|
||||
{file = "certifi-2021.10.8.tar.gz", hash = "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872"},
|
||||
]
|
||||
cffi = [
|
||||
{file = "cffi-1.14.6-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:22b9c3c320171c108e903d61a3723b51e37aaa8c81255b5e7ce102775bd01e2c"},
|
||||
|
@ -1550,8 +1592,8 @@ colorama = [
|
|||
{file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"},
|
||||
]
|
||||
colorlog = [
|
||||
{file = "colorlog-6.4.1-py2.py3-none-any.whl", hash = "sha256:b13da382156711f7973bf7cbd1f40ea544aff51fde5dc3fb8f3fa602c321d645"},
|
||||
{file = "colorlog-6.4.1.tar.gz", hash = "sha256:af99440154a01f27c09256760ea3477982bf782721feaa345904e806879df4d8"},
|
||||
{file = "colorlog-6.5.0-py2.py3-none-any.whl", hash = "sha256:d334b1b8dae5989b786232f05586a7a0111feb24ff9cfc8310c3347a91388717"},
|
||||
{file = "colorlog-6.5.0.tar.gz", hash = "sha256:cf62a8e389d5660d0d22be17937b25b9abef9497ddc940197d1773aa1f604339"},
|
||||
]
|
||||
coverage = [
|
||||
{file = "coverage-5.5-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:b6d534e4b2ab35c9f93f46229363e17f63c53ad01330df9f2d6bd1187e5eaacf"},
|
||||
|
@ -1612,23 +1654,26 @@ coveralls = [
|
|||
{file = "coveralls-3.2.0.tar.gz", hash = "sha256:15a987d9df877fff44cd81948c5806ffb6eafb757b3443f737888358e96156ee"},
|
||||
]
|
||||
cryptography = [
|
||||
{file = "cryptography-3.4.8-cp36-abi3-macosx_10_10_x86_64.whl", hash = "sha256:a00cf305f07b26c351d8d4e1af84ad7501eca8a342dedf24a7acb0e7b7406e14"},
|
||||
{file = "cryptography-3.4.8-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:f44d141b8c4ea5eb4dbc9b3ad992d45580c1d22bf5e24363f2fbf50c2d7ae8a7"},
|
||||
{file = "cryptography-3.4.8-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:0a7dcbcd3f1913f664aca35d47c1331fce738d44ec34b7be8b9d332151b0b01e"},
|
||||
{file = "cryptography-3.4.8-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34dae04a0dce5730d8eb7894eab617d8a70d0c97da76b905de9efb7128ad7085"},
|
||||
{file = "cryptography-3.4.8-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1eb7bb0df6f6f583dd8e054689def236255161ebbcf62b226454ab9ec663746b"},
|
||||
{file = "cryptography-3.4.8-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:9965c46c674ba8cc572bc09a03f4c649292ee73e1b683adb1ce81e82e9a6a0fb"},
|
||||
{file = "cryptography-3.4.8-cp36-abi3-win32.whl", hash = "sha256:21ca464b3a4b8d8e86ba0ee5045e103a1fcfac3b39319727bc0fc58c09c6aff7"},
|
||||
{file = "cryptography-3.4.8-cp36-abi3-win_amd64.whl", hash = "sha256:3520667fda779eb788ea00080124875be18f2d8f0848ec00733c0ec3bb8219fc"},
|
||||
{file = "cryptography-3.4.8-pp36-pypy36_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d2a6e5ef66503da51d2110edf6c403dc6b494cc0082f85db12f54e9c5d4c3ec5"},
|
||||
{file = "cryptography-3.4.8-pp36-pypy36_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a305600e7a6b7b855cd798e00278161b681ad6e9b7eca94c721d5f588ab212af"},
|
||||
{file = "cryptography-3.4.8-pp36-pypy36_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:3fa3a7ccf96e826affdf1a0a9432be74dc73423125c8f96a909e3835a5ef194a"},
|
||||
{file = "cryptography-3.4.8-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:d9ec0e67a14f9d1d48dd87a2531009a9b251c02ea42851c060b25c782516ff06"},
|
||||
{file = "cryptography-3.4.8-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5b0fbfae7ff7febdb74b574055c7466da334a5371f253732d7e2e7525d570498"},
|
||||
{file = "cryptography-3.4.8-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94fff993ee9bc1b2440d3b7243d488c6a3d9724cc2b09cdb297f6a886d040ef7"},
|
||||
{file = "cryptography-3.4.8-pp37-pypy37_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:8695456444f277af73a4877db9fc979849cd3ee74c198d04fc0776ebc3db52b9"},
|
||||
{file = "cryptography-3.4.8-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:cd65b60cfe004790c795cc35f272e41a3df4631e2fb6b35aa7ac6ef2859d554e"},
|
||||
{file = "cryptography-3.4.8.tar.gz", hash = "sha256:94cc5ed4ceaefcbe5bf38c8fba6a21fc1d365bb8fb826ea1688e3370b2e24a1c"},
|
||||
{file = "cryptography-35.0.0-cp36-abi3-macosx_10_10_x86_64.whl", hash = "sha256:d57e0cdc1b44b6cdf8af1d01807db06886f10177469312fbde8f44ccbb284bc9"},
|
||||
{file = "cryptography-35.0.0-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:ced40344e811d6abba00295ced98c01aecf0c2de39481792d87af4fa58b7b4d6"},
|
||||
{file = "cryptography-35.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:54b2605e5475944e2213258e0ab8696f4f357a31371e538ef21e8d61c843c28d"},
|
||||
{file = "cryptography-35.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:7b7ceeff114c31f285528ba8b390d3e9cfa2da17b56f11d366769a807f17cbaa"},
|
||||
{file = "cryptography-35.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d69645f535f4b2c722cfb07a8eab916265545b3475fdb34e0be2f4ee8b0b15e"},
|
||||
{file = "cryptography-35.0.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a2d0e0acc20ede0f06ef7aa58546eee96d2592c00f450c9acb89c5879b61992"},
|
||||
{file = "cryptography-35.0.0-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:07bb7fbfb5de0980590ddfc7f13081520def06dc9ed214000ad4372fb4e3c7f6"},
|
||||
{file = "cryptography-35.0.0-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:7eba2cebca600a7806b893cb1d541a6e910afa87e97acf2021a22b32da1df52d"},
|
||||
{file = "cryptography-35.0.0-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:18d90f4711bf63e2fb21e8c8e51ed8189438e6b35a6d996201ebd98a26abbbe6"},
|
||||
{file = "cryptography-35.0.0-cp36-abi3-win32.whl", hash = "sha256:c10c797ac89c746e488d2ee92bd4abd593615694ee17b2500578b63cad6b93a8"},
|
||||
{file = "cryptography-35.0.0-cp36-abi3-win_amd64.whl", hash = "sha256:7075b304cd567694dc692ffc9747f3e9cb393cc4aa4fb7b9f3abd6f5c4e43588"},
|
||||
{file = "cryptography-35.0.0-pp36-pypy36_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a688ebcd08250eab5bb5bca318cc05a8c66de5e4171a65ca51db6bd753ff8953"},
|
||||
{file = "cryptography-35.0.0-pp36-pypy36_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d99915d6ab265c22873f1b4d6ea5ef462ef797b4140be4c9d8b179915e0985c6"},
|
||||
{file = "cryptography-35.0.0-pp36-pypy36_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:928185a6d1ccdb816e883f56ebe92e975a262d31cc536429041921f8cb5a62fd"},
|
||||
{file = "cryptography-35.0.0-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:ebeddd119f526bcf323a89f853afb12e225902a24d29b55fe18dd6fcb2838a76"},
|
||||
{file = "cryptography-35.0.0-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:22a38e96118a4ce3b97509443feace1d1011d0571fae81fc3ad35f25ba3ea999"},
|
||||
{file = "cryptography-35.0.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb80e8a1f91e4b7ef8b33041591e6d89b2b8e122d787e87eeb2b08da71bb16ad"},
|
||||
{file = "cryptography-35.0.0-pp37-pypy37_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:abb5a361d2585bb95012a19ed9b2c8f412c5d723a9836418fab7aaa0243e67d2"},
|
||||
{file = "cryptography-35.0.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:1ed82abf16df40a60942a8c211251ae72858b25b7421ce2497c2eb7a1cee817c"},
|
||||
{file = "cryptography-35.0.0.tar.gz", hash = "sha256:9933f28f70d0517686bd7de36166dda42094eac49415459d9bdf5e7df3e0086d"},
|
||||
]
|
||||
defusedxml = [
|
||||
{file = "defusedxml-0.7.1-py2.py3-none-any.whl", hash = "sha256:a352e7e428770286cc899e2542b6cdaedb2b4953ff269a210103ec58f6198a61"},
|
||||
|
@ -1655,8 +1700,8 @@ django = [
|
|||
{file = "Django-2.2.24.tar.gz", hash = "sha256:3339ff0e03dee13045aef6ae7b523edff75b6d726adf7a7a48f53d5a501f7db7"},
|
||||
]
|
||||
django-admin-sortable2 = [
|
||||
{file = "django-admin-sortable2-1.0.tar.gz", hash = "sha256:e62624f5c8ea66d8564205abf2e4a46d862ee62f87103571004623b51d0e4ced"},
|
||||
{file = "django_admin_sortable2-1.0-py3-none-any.whl", hash = "sha256:0a90bc3210d215fdb0696705c0f2705f8417d6f07d47cc24de71ee57061508e9"},
|
||||
{file = "django-admin-sortable2-1.0.2.tar.gz", hash = "sha256:669e47c908d1ae5dd77876bb6bf369b3c333e013b98f0a8b6da42da83cf6440c"},
|
||||
{file = "django_admin_sortable2-1.0.2-py3-none-any.whl", hash = "sha256:0108b003907fcdaf18af4f7bf4a84599e1ebd789c6be9fcd0dd86555f9526fc5"},
|
||||
]
|
||||
django-axes = [
|
||||
{file = "django-axes-5.25.0.tar.gz", hash = "sha256:835327df91e039c3eb7479441b7b3cbcc5aecc25025753c5ae00969309b23dd6"},
|
||||
|
@ -1674,7 +1719,8 @@ django-debug-toolbar = [
|
|||
{file = "django_debug_toolbar-3.2.2-py3-none-any.whl", hash = "sha256:d7bab7573fab35b0fd029163371b7182f5826c13da69734beb675c761d06a4d3"},
|
||||
]
|
||||
django-import-export = [
|
||||
{file = "django-import-export-2.6.0.tar.gz", hash = "sha256:ef7dbf0ffb81f5534ac46c5f221b9455bdfcfca873652a2b44a03b28814e2be2"},
|
||||
{file = "django-import-export-2.6.1.tar.gz", hash = "sha256:056624f3d6af04f74ed7adc0ba64841a9ff033162432c668877b53a6832e6c57"},
|
||||
{file = "django_import_export-2.6.1-py3-none-any.whl", hash = "sha256:c8509fcc5176a34f1c90fc15aeaedcb8011c6a397ef64caf0b38eabcd723a9f9"},
|
||||
]
|
||||
django-ipware = [
|
||||
{file = "django-ipware-4.0.0.tar.gz", hash = "sha256:1294f916f3b3475e40e1b0ec1bd320aa2397978eae672721c81cbc2ed517e9ee"},
|
||||
|
@ -1705,8 +1751,8 @@ django-tools = [
|
|||
{file = "django_tools-0.48.3-py3-none-any.whl", hash = "sha256:40444fa16b703b7c6960a800ba76aad42472c9aa70040d549a4d91dbb47a5ddb"},
|
||||
]
|
||||
docker = [
|
||||
{file = "docker-5.0.2-py2.py3-none-any.whl", hash = "sha256:9b17f0723d83c1f3418d2aa17bf90b24dbe97deda06208dd4262fa30a6ee87eb"},
|
||||
{file = "docker-5.0.2.tar.gz", hash = "sha256:21ec4998e90dff7a7aaaa098ca8d839c7de412b89e6f6c30908372d58fecf663"},
|
||||
{file = "docker-5.0.3-py2.py3-none-any.whl", hash = "sha256:7a79bb439e3df59d0a72621775d600bc8bc8b422d285824cb37103eab91d1ce0"},
|
||||
{file = "docker-5.0.3.tar.gz", hash = "sha256:d916a26b62970e7c2f554110ed6af04c7ccff8e9f81ad17d0d40c75637e227fb"},
|
||||
]
|
||||
docker-compose = [
|
||||
{file = "docker-compose-1.29.2.tar.gz", hash = "sha256:4c8cd9d21d237412793d18bd33110049ee9af8dab3fe2c213bbd0733959b09b7"},
|
||||
|
@ -1727,8 +1773,8 @@ et-xmlfile = [
|
|||
{file = "et_xmlfile-1.1.0.tar.gz", hash = "sha256:8eb9e2bc2f8c97e37a2dc85a09ecdcdec9d8a396530a6d5a33b30b9a92da0c5c"},
|
||||
]
|
||||
filelock = [
|
||||
{file = "filelock-3.1.0-py2.py3-none-any.whl", hash = "sha256:d9e9c7d8191e915339843c81c90d3e44f7c84e5fb03bdc6b1b4d019025cf953b"},
|
||||
{file = "filelock-3.1.0.tar.gz", hash = "sha256:78925788ce8c8945fac28a68c1d05cf33a6a6c4fba14fe02835122c53268ceef"},
|
||||
{file = "filelock-3.3.0-py3-none-any.whl", hash = "sha256:bbc6a0382fe8ec4744ecdf6683a2e07f65eb10ff1aff53fc02a202565446cde0"},
|
||||
{file = "filelock-3.3.0.tar.gz", hash = "sha256:8c7eab13dc442dc249e95158bcc12dec724465919bdc9831fdbf0660f03d1785"},
|
||||
]
|
||||
flake8 = [
|
||||
{file = "flake8-3.9.2-py2.py3-none-any.whl", hash = "sha256:bf8fd333346d844f616e8d47905ef3a3384edae6b4e9beb0c5101e25e3110907"},
|
||||
|
@ -1786,6 +1832,54 @@ keyring = [
|
|||
{file = "keyring-23.2.1-py3-none-any.whl", hash = "sha256:bd2145a237ed70c8ce72978b497619ddfcae640b6dcf494402d5143e37755c6e"},
|
||||
{file = "keyring-23.2.1.tar.gz", hash = "sha256:6334aee6073db2fb1f30892697b1730105b5e9a77ce7e61fca6b435225493efe"},
|
||||
]
|
||||
lxml = [
|
||||
{file = "lxml-4.6.3-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:df7c53783a46febb0e70f6b05df2ba104610f2fb0d27023409734a3ecbb78fb2"},
|
||||
{file = "lxml-4.6.3-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:1b7584d421d254ab86d4f0b13ec662a9014397678a7c4265a02a6d7c2b18a75f"},
|
||||
{file = "lxml-4.6.3-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:079f3ae844f38982d156efce585bc540c16a926d4436712cf4baee0cce487a3d"},
|
||||
{file = "lxml-4.6.3-cp27-cp27m-win32.whl", hash = "sha256:bc4313cbeb0e7a416a488d72f9680fffffc645f8a838bd2193809881c67dd106"},
|
||||
{file = "lxml-4.6.3-cp27-cp27m-win_amd64.whl", hash = "sha256:8157dadbb09a34a6bd95a50690595e1fa0af1a99445e2744110e3dca7831c4ee"},
|
||||
{file = "lxml-4.6.3-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:7728e05c35412ba36d3e9795ae8995e3c86958179c9770e65558ec3fdfd3724f"},
|
||||
{file = "lxml-4.6.3-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:4bff24dfeea62f2e56f5bab929b4428ae6caba2d1eea0c2d6eb618e30a71e6d4"},
|
||||
{file = "lxml-4.6.3-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:74f7d8d439b18fa4c385f3f5dfd11144bb87c1da034a466c5b5577d23a1d9b51"},
|
||||
{file = "lxml-4.6.3-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:f90ba11136bfdd25cae3951af8da2e95121c9b9b93727b1b896e3fa105b2f586"},
|
||||
{file = "lxml-4.6.3-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:4c61b3a0db43a1607d6264166b230438f85bfed02e8cff20c22e564d0faff354"},
|
||||
{file = "lxml-4.6.3-cp35-cp35m-manylinux2014_x86_64.whl", hash = "sha256:5c8c163396cc0df3fd151b927e74f6e4acd67160d6c33304e805b84293351d16"},
|
||||
{file = "lxml-4.6.3-cp35-cp35m-win32.whl", hash = "sha256:f2380a6376dfa090227b663f9678150ef27543483055cc327555fb592c5967e2"},
|
||||
{file = "lxml-4.6.3-cp35-cp35m-win_amd64.whl", hash = "sha256:c4f05c5a7c49d2fb70223d0d5bcfbe474cf928310ac9fa6a7c6dddc831d0b1d4"},
|
||||
{file = "lxml-4.6.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d2e35d7bf1c1ac8c538f88d26b396e73dd81440d59c1ef8522e1ea77b345ede4"},
|
||||
{file = "lxml-4.6.3-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:289e9ca1a9287f08daaf796d96e06cb2bc2958891d7911ac7cae1c5f9e1e0ee3"},
|
||||
{file = "lxml-4.6.3-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:bccbfc27563652de7dc9bdc595cb25e90b59c5f8e23e806ed0fd623755b6565d"},
|
||||
{file = "lxml-4.6.3-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:d916d31fd85b2f78c76400d625076d9124de3e4bda8b016d25a050cc7d603f24"},
|
||||
{file = "lxml-4.6.3-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:820628b7b3135403540202e60551e741f9b6d3304371712521be939470b454ec"},
|
||||
{file = "lxml-4.6.3-cp36-cp36m-manylinux2014_x86_64.whl", hash = "sha256:c47ff7e0a36d4efac9fd692cfa33fbd0636674c102e9e8d9b26e1b93a94e7617"},
|
||||
{file = "lxml-4.6.3-cp36-cp36m-win32.whl", hash = "sha256:5a0a14e264069c03e46f926be0d8919f4105c1623d620e7ec0e612a2e9bf1c04"},
|
||||
{file = "lxml-4.6.3-cp36-cp36m-win_amd64.whl", hash = "sha256:92e821e43ad382332eade6812e298dc9701c75fe289f2a2d39c7960b43d1e92a"},
|
||||
{file = "lxml-4.6.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:efd7a09678fd8b53117f6bae4fa3825e0a22b03ef0a932e070c0bdbb3a35e654"},
|
||||
{file = "lxml-4.6.3-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:efac139c3f0bf4f0939f9375af4b02c5ad83a622de52d6dfa8e438e8e01d0eb0"},
|
||||
{file = "lxml-4.6.3-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:0fbcf5565ac01dff87cbfc0ff323515c823081c5777a9fc7703ff58388c258c3"},
|
||||
{file = "lxml-4.6.3-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:36108c73739985979bf302006527cf8a20515ce444ba916281d1c43938b8bb96"},
|
||||
{file = "lxml-4.6.3-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:122fba10466c7bd4178b07dba427aa516286b846b2cbd6f6169141917283aae2"},
|
||||
{file = "lxml-4.6.3-cp37-cp37m-manylinux2014_x86_64.whl", hash = "sha256:cdaf11d2bd275bf391b5308f86731e5194a21af45fbaaaf1d9e8147b9160ea92"},
|
||||
{file = "lxml-4.6.3-cp37-cp37m-win32.whl", hash = "sha256:3439c71103ef0e904ea0a1901611863e51f50b5cd5e8654a151740fde5e1cade"},
|
||||
{file = "lxml-4.6.3-cp37-cp37m-win_amd64.whl", hash = "sha256:4289728b5e2000a4ad4ab8da6e1db2e093c63c08bdc0414799ee776a3f78da4b"},
|
||||
{file = "lxml-4.6.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b007cbb845b28db4fb8b6a5cdcbf65bacb16a8bd328b53cbc0698688a68e1caa"},
|
||||
{file = "lxml-4.6.3-cp38-cp38-manylinux1_i686.whl", hash = "sha256:76fa7b1362d19f8fbd3e75fe2fb7c79359b0af8747e6f7141c338f0bee2f871a"},
|
||||
{file = "lxml-4.6.3-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:26e761ab5b07adf5f555ee82fb4bfc35bf93750499c6c7614bd64d12aaa67927"},
|
||||
{file = "lxml-4.6.3-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:e1cbd3f19a61e27e011e02f9600837b921ac661f0c40560eefb366e4e4fb275e"},
|
||||
{file = "lxml-4.6.3-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:66e575c62792c3f9ca47cb8b6fab9e35bab91360c783d1606f758761810c9791"},
|
||||
{file = "lxml-4.6.3-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:1b38116b6e628118dea5b2186ee6820ab138dbb1e24a13e478490c7db2f326ae"},
|
||||
{file = "lxml-4.6.3-cp38-cp38-win32.whl", hash = "sha256:89b8b22a5ff72d89d48d0e62abb14340d9e99fd637d046c27b8b257a01ffbe28"},
|
||||
{file = "lxml-4.6.3-cp38-cp38-win_amd64.whl", hash = "sha256:2a9d50e69aac3ebee695424f7dbd7b8c6d6eb7de2a2eb6b0f6c7db6aa41e02b7"},
|
||||
{file = "lxml-4.6.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ce256aaa50f6cc9a649c51be3cd4ff142d67295bfc4f490c9134d0f9f6d58ef0"},
|
||||
{file = "lxml-4.6.3-cp39-cp39-manylinux1_i686.whl", hash = "sha256:7610b8c31688f0b1be0ef882889817939490a36d0ee880ea562a4e1399c447a1"},
|
||||
{file = "lxml-4.6.3-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:f8380c03e45cf09f8557bdaa41e1fa7c81f3ae22828e1db470ab2a6c96d8bc23"},
|
||||
{file = "lxml-4.6.3-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:3082c518be8e97324390614dacd041bb1358c882d77108ca1957ba47738d9d59"},
|
||||
{file = "lxml-4.6.3-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:884ab9b29feaca361f7f88d811b1eea9bfca36cf3da27768d28ad45c3ee6f969"},
|
||||
{file = "lxml-4.6.3-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:6f12e1427285008fd32a6025e38e977d44d6382cf28e7201ed10d6c1698d2a9a"},
|
||||
{file = "lxml-4.6.3-cp39-cp39-win32.whl", hash = "sha256:33bb934a044cf32157c12bfcfbb6649807da20aa92c062ef51903415c704704f"},
|
||||
{file = "lxml-4.6.3-cp39-cp39-win_amd64.whl", hash = "sha256:542d454665a3e277f76954418124d67516c5f88e51a900365ed54a9806122b83"},
|
||||
{file = "lxml-4.6.3.tar.gz", hash = "sha256:39b78571b3b30645ac77b95f7c69d1bffc4cf8c3b157c435a34da72e78c82468"},
|
||||
]
|
||||
markuppy = [
|
||||
{file = "MarkupPy-1.14.tar.gz", hash = "sha256:1adee2c0a542af378fe84548ff6f6b0168f3cb7f426b46961038a2bcfaad0d5f"},
|
||||
]
|
||||
|
@ -1794,8 +1888,8 @@ mccabe = [
|
|||
{file = "mccabe-0.6.1.tar.gz", hash = "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f"},
|
||||
]
|
||||
model-bakery = [
|
||||
{file = "model_bakery-1.3.2-py2.py3-none-any.whl", hash = "sha256:bebde0d4f895f55a8cf26706275a238fecdf0fddd227214675b7351598c99ce5"},
|
||||
{file = "model_bakery-1.3.2.tar.gz", hash = "sha256:7e06071c7ba5c58f9c1d7245b4b80cc5240806f30c4561f5c04a652d67626725"},
|
||||
{file = "model_bakery-1.3.3-py2.py3-none-any.whl", hash = "sha256:32f4c993242afd1024f0d5a6aa913850788bc2694db5a69e6d44b20936b52f60"},
|
||||
{file = "model_bakery-1.3.3.tar.gz", hash = "sha256:4e44f5d58f11a8e1f733264f3d3659bd8e6d9c731779f91a3c70281df5066cd2"},
|
||||
]
|
||||
odfpy = [
|
||||
{file = "odfpy-1.4.1-py2.7.egg", hash = "sha256:fc3b8d1bc098eba4a0fda865a76d9d1e577c4ceec771426bcb169a82c5e9dfe0"},
|
||||
|
@ -2026,8 +2120,8 @@ pytest = [
|
|||
{file = "pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89"},
|
||||
]
|
||||
pytest-cov = [
|
||||
{file = "pytest-cov-2.12.1.tar.gz", hash = "sha256:261ceeb8c227b726249b376b8526b600f38667ee314f910353fa318caa01f4d7"},
|
||||
{file = "pytest_cov-2.12.1-py2.py3-none-any.whl", hash = "sha256:261bb9e47e65bd099c89c3edf92972865210c36813f80ede5277dceb77a4a62a"},
|
||||
{file = "pytest-cov-3.0.0.tar.gz", hash = "sha256:e7f0f5b1617d2210a2cabc266dfe2f4c75a8d32fb89eafb7ad9d06f6d076d470"},
|
||||
{file = "pytest_cov-3.0.0-py3-none-any.whl", hash = "sha256:578d5d15ac4a25e5f961c938b85a05b09fdaae9deef3bb6de9a6e766622ca7a6"},
|
||||
]
|
||||
pytest-django = [
|
||||
{file = "pytest-django-4.4.0.tar.gz", hash = "sha256:b5171e3798bf7e3fc5ea7072fe87324db67a4dd9f1192b037fed4cc3c1b7f455"},
|
||||
|
@ -2046,16 +2140,16 @@ python-creole = [
|
|||
{file = "python_creole-1.4.10-py3-none-any.whl", hash = "sha256:dc24325f4ba2af3e8d73ca2905e4665df932af0cfe0ec95d5790d55a7c5c10e2"},
|
||||
]
|
||||
python-dotenv = [
|
||||
{file = "python-dotenv-0.19.0.tar.gz", hash = "sha256:f521bc2ac9a8e03c736f62911605c5d83970021e3fa95b37d769e2bbbe9b6172"},
|
||||
{file = "python_dotenv-0.19.0-py2.py3-none-any.whl", hash = "sha256:aae25dc1ebe97c420f50b81fb0e5c949659af713f31fdb63c749ca68748f34b1"},
|
||||
{file = "python-dotenv-0.19.1.tar.gz", hash = "sha256:14f8185cc8d494662683e6914addcb7e95374771e707601dfc70166946b4c4b8"},
|
||||
{file = "python_dotenv-0.19.1-py2.py3-none-any.whl", hash = "sha256:bbd3da593fc49c249397cbfbcc449cf36cb02e75afc8157fcc6a81df6fb7750a"},
|
||||
]
|
||||
python-stdnum = [
|
||||
{file = "python-stdnum-1.16.tar.gz", hash = "sha256:4248d898042a801fc4eff96fbfe4bf63a43324854efe3b5534718c1c195c6f43"},
|
||||
{file = "python_stdnum-1.16-py2.py3-none-any.whl", hash = "sha256:2e2c56c548ca166b95547a8d748f4d71320a5b4896960717c8e6380e08d993a5"},
|
||||
{file = "python-stdnum-1.17.tar.gz", hash = "sha256:374e2b5e13912ccdbf50b0b23fca2c3e0531174805c32d74e145f37756328340"},
|
||||
{file = "python_stdnum-1.17-py2.py3-none-any.whl", hash = "sha256:a46e6cf9652807314d369b654b255c86a59f93d18be2834f3d567ed1a346c547"},
|
||||
]
|
||||
pytz = [
|
||||
{file = "pytz-2021.1-py2.py3-none-any.whl", hash = "sha256:eb10ce3e7736052ed3623d49975ce333bcd712c7bb19a58b9e2089d4057d0798"},
|
||||
{file = "pytz-2021.1.tar.gz", hash = "sha256:83a4a90894bf38e243cf052c8b58f381bfe9a7a483f6a9cab140bc7f702ac4da"},
|
||||
{file = "pytz-2021.3-py2.py3-none-any.whl", hash = "sha256:3672058bc3453457b622aab7a1c3bfd5ab0bdae451512f6cf25f64ed37f5b87c"},
|
||||
{file = "pytz-2021.3.tar.gz", hash = "sha256:acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326"},
|
||||
]
|
||||
pyupgrade = [
|
||||
{file = "pyupgrade-2.29.0-py2.py3-none-any.whl", hash = "sha256:04938c7e8e4e8b476ae2b727306ecfaea95a83b707acbe6929864100dd6d9701"},
|
||||
|
@ -2103,8 +2197,8 @@ pyyaml = [
|
|||
{file = "PyYAML-5.4.1.tar.gz", hash = "sha256:607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e"},
|
||||
]
|
||||
readme-renderer = [
|
||||
{file = "readme_renderer-29.0-py2.py3-none-any.whl", hash = "sha256:63b4075c6698fcfa78e584930f07f39e05d46f3ec97f65006e430b595ca6348c"},
|
||||
{file = "readme_renderer-29.0.tar.gz", hash = "sha256:92fd5ac2bf8677f310f3303aa4bce5b9d5f9f2094ab98c29f13791d7b805a3db"},
|
||||
{file = "readme_renderer-30.0-py2.py3-none-any.whl", hash = "sha256:3286806450d9961d6e3b5f8a59f77e61503799aca5155c8d8d40359b4e1e1adc"},
|
||||
{file = "readme_renderer-30.0.tar.gz", hash = "sha256:8299700d7a910c304072a7601eafada6712a5b011a20139417e1b1e9f04645d8"},
|
||||
]
|
||||
requests = [
|
||||
{file = "requests-2.26.0-py2.py3-none-any.whl", hash = "sha256:6c1246513ecd5ecd4528a0906f910e8f0f9c6b8ec72030dc9fd154dc1a6efd24"},
|
||||
|
@ -2130,6 +2224,10 @@ six = [
|
|||
{file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
|
||||
{file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
|
||||
]
|
||||
soupsieve = [
|
||||
{file = "soupsieve-2.2.1-py3-none-any.whl", hash = "sha256:c2c1c2d44f158cdbddab7824a9af8c4f83c76b1e23e049479aa432feb6c4c23b"},
|
||||
{file = "soupsieve-2.2.1.tar.gz", hash = "sha256:052774848f448cf19c7e959adf5566904d525f33a3f8b6ba6f6f8f26ec7de0cc"},
|
||||
]
|
||||
sqlparse = [
|
||||
{file = "sqlparse-0.4.2-py3-none-any.whl", hash = "sha256:48719e356bb8b42991bdbb1e8b83223757b93789c00910a616a071910ca4a64d"},
|
||||
{file = "sqlparse-0.4.2.tar.gz", hash = "sha256:0c00730c74263a94e5a9919ade150dfc3b19c574389985446148402998287dae"},
|
||||
|
|
|
@ -87,6 +87,8 @@ flynt = "*"
|
|||
autopep8 = "*"
|
||||
pyupgrade = "*"
|
||||
model_bakery = "*" # https://github.com/model-bakers/model_bakery
|
||||
beautifulsoup4 = "*"
|
||||
lxml = "*"
|
||||
|
||||
[tool.poetry.scripts]
|
||||
devshell = 'inventory_project.dev_shell:devshell_cmdloop'
|
||||
|
|
|
@ -0,0 +1,66 @@
|
|||
"""
|
||||
Remove this if https://github.com/boxine/bx_py_utils/pull/95 merged!
|
||||
"""
|
||||
from pathlib import Path
|
||||
|
||||
import pytest
|
||||
from bs4 import BeautifulSoup
|
||||
from bx_py_utils.test_utils.snapshot import assert_text_snapshot
|
||||
from django.http import HttpResponse
|
||||
from lxml import html
|
||||
|
||||
|
||||
def validate_html(data):
|
||||
parser = html.HTMLParser(
|
||||
recover=False, # Crash faster on broken HTML
|
||||
)
|
||||
parser.feed(data)
|
||||
parser.close()
|
||||
|
||||
|
||||
def test_validate_html():
|
||||
validate_html('<p>Test</p>')
|
||||
validate_html('<a><b/></a>')
|
||||
|
||||
from lxml.etree import XMLSyntaxError
|
||||
with pytest.raises(XMLSyntaxError) as exc_info:
|
||||
validate_html('<p> >broken< </p>')
|
||||
assert exc_info.value.args[0] == 'htmlParseStartTag: invalid element name, line 1, column 13'
|
||||
|
||||
|
||||
def pretty_format_html(data):
|
||||
soup = BeautifulSoup(data, 'html.parser')
|
||||
return soup.prettify(
|
||||
formatter=None # Do not perform any substitution
|
||||
)
|
||||
|
||||
|
||||
def test_pretty_format_html():
|
||||
assert pretty_format_html('<p>Test</p>') == '<p>\n Test\n</p>'
|
||||
|
||||
html = pretty_format_html('''
|
||||
\r\n <h1>X</h1> \r\n \r\n
|
||||
<p><strong>Test</strong></p> \r\n \r\n
|
||||
''')
|
||||
assert html == '<h1>\n X\n</h1>\n<p>\n <strong>\n Test\n </strong>\n</p>\n'
|
||||
|
||||
|
||||
def assert_html_response_snapshot(
|
||||
response: HttpResponse,
|
||||
status_code: int = 200,
|
||||
**kwargs
|
||||
):
|
||||
data = response.content.decode('utf-8')
|
||||
|
||||
validate_html(data)
|
||||
data = pretty_format_html(data)
|
||||
|
||||
assert_text_snapshot(
|
||||
got=data,
|
||||
extension='.html',
|
||||
self_file_path=Path(__file__),
|
||||
**kwargs
|
||||
)
|
||||
assert response.status_code == status_code, (
|
||||
f'Status code is {response.status_code} but excepted {status_code}'
|
||||
)
|
|
@ -3,7 +3,7 @@ import logging
|
|||
from unittest import mock
|
||||
|
||||
from bx_django_utils.test_utils.datetime import MockDatetimeGenerator
|
||||
from bx_django_utils.test_utils.html_assertion import HtmlAssertionMixin, assert_html_response_snapshot
|
||||
from bx_django_utils.test_utils.html_assertion import HtmlAssertionMixin
|
||||
from django.contrib.auth.models import User
|
||||
from django.template.defaulttags import CsrfTokenNode
|
||||
from django.test import TestCase
|
||||
|
@ -14,6 +14,7 @@ from model_bakery import baker
|
|||
from inventory import __version__
|
||||
from inventory.models import ItemImageModel, ItemModel
|
||||
from inventory.permissions import get_or_create_normal_user_group
|
||||
from inventory_project.tests.temp_utils import assert_html_response_snapshot
|
||||
|
||||
|
||||
class AdminAnonymousTests(TestCase):
|
||||
|
|
|
@ -1,160 +1,341 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" >
|
||||
<head>
|
||||
<title>Select Item to change | PyInventory v0.10.0</title>
|
||||
<link rel="stylesheet" type="text/css" href="/static/admin/css/base.css">
|
||||
<link rel="stylesheet" type="text/css" href="/static/admin/css/changelists.css">
|
||||
<script type="text/javascript" src="/admin/jsi18n/"></script>
|
||||
<meta name="google" content="notranslate">
|
||||
<meta name="robots" content="noindex,nofollow" />
|
||||
<link rel="stylesheet" type="text/css" href="/static/inventory.css">
|
||||
<script type="text/javascript" src="/static/admin/js/vendor/jquery/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="/static/admin/js/jquery.init.js"></script>
|
||||
<script type="text/javascript" src="/static/admin/js/core.js"></script>
|
||||
<script type="text/javascript" src="/static/admin/js/admin/RelatedObjectLookups.js"></script>
|
||||
<script type="text/javascript" src="/static/admin/js/actions.min.js"></script>
|
||||
<script type="text/javascript" src="/static/admin/js/urlify.js"></script>
|
||||
<script type="text/javascript" src="/static/admin/js/prepopulate.min.js"></script>
|
||||
<script type="text/javascript" src="/static/admin/js/vendor/xregexp/xregexp.min.js"></script>
|
||||
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0">
|
||||
<link rel="stylesheet" type="text/css" href="/static/admin/css/responsive.css">
|
||||
<meta name="robots" content="NONE,NOARCHIVE">
|
||||
</head>
|
||||
<body class=" app-inventory model-itemmodel change-list"
|
||||
data-admin-utc-offset="7200">
|
||||
<!-- Container -->
|
||||
<div id="container">
|
||||
<!-- Header -->
|
||||
<div id="header">
|
||||
<div id="branding">
|
||||
<h1 id="site-name">
|
||||
<a href="/admin/">PyInventory v0.10.0</a>
|
||||
</h1>
|
||||
</div>
|
||||
<div id="user-tools">
|
||||
Welcome,
|
||||
<strong>NormalUser</strong>.
|
||||
<a href="/">View site</a> /
|
||||
<a href="/admin/password_change/">Change password</a> /
|
||||
<a href="/admin/logout/">Log out</a>
|
||||
</div>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>
|
||||
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/changelists.css" rel="stylesheet" type="text/css"/>
|
||||
<script src="/admin/jsi18n/" type="text/javascript">
|
||||
</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>
|
||||
<script src="/static/admin/js/jquery.init.js" type="text/javascript">
|
||||
</script>
|
||||
<script src="/static/admin/js/core.js" type="text/javascript">
|
||||
</script>
|
||||
<script src="/static/admin/js/admin/RelatedObjectLookups.js" type="text/javascript">
|
||||
</script>
|
||||
<script src="/static/admin/js/actions.min.js" type="text/javascript">
|
||||
</script>
|
||||
<script src="/static/admin/js/urlify.js" type="text/javascript">
|
||||
</script>
|
||||
<script src="/static/admin/js/prepopulate.min.js" type="text/javascript">
|
||||
</script>
|
||||
<script src="/static/admin/js/vendor/xregexp/xregexp.min.js" type="text/javascript">
|
||||
</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"/>
|
||||
<meta content="NONE,NOARCHIVE" name="robots"/>
|
||||
</meta>
|
||||
</head>
|
||||
<body class="app-inventory model-itemmodel change-list" data-admin-utc-offset="7200">
|
||||
<!-- Container -->
|
||||
<div id="container">
|
||||
<!-- Header -->
|
||||
<div id="header">
|
||||
<div id="branding">
|
||||
<h1 id="site-name">
|
||||
<a href="/admin/">
|
||||
PyInventory v0.10.0
|
||||
</a>
|
||||
</h1>
|
||||
</div>
|
||||
<!-- END Header -->
|
||||
<div class="breadcrumbs">
|
||||
<a href="/admin/">Home</a>
|
||||
› <a href="/admin/inventory/">Inventory</a>
|
||||
› Items
|
||||
</div>
|
||||
<!-- Content -->
|
||||
<div id="content" class="flex">
|
||||
<h1>Select Item to change</h1>
|
||||
<div id="content-main">
|
||||
<ul class="object-tools">
|
||||
<li><a href='/admin/inventory/itemmodel/import/' class="import_link">Import</a></li>
|
||||
<li><a href="/admin/inventory/itemmodel/export/?" class="export_link">Export</a></li>
|
||||
<li>
|
||||
<a href="/admin/inventory/itemmodel/add/" class="addlink">
|
||||
Add Item
|
||||
<div id="user-tools">
|
||||
Welcome,
|
||||
<strong>
|
||||
NormalUser
|
||||
</strong>
|
||||
.
|
||||
<a href="/">
|
||||
View site
|
||||
</a>
|
||||
/
|
||||
<a href="/admin/password_change/">
|
||||
Change password
|
||||
</a>
|
||||
/
|
||||
<a href="/admin/logout/">
|
||||
Log out
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END Header -->
|
||||
<div class="breadcrumbs">
|
||||
<a href="/admin/">
|
||||
Home
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="module filtered" id="changelist">
|
||||
<div id="toolbar"><form id="changelist-search" method="get">
|
||||
<div><!-- DIV needed for valid HTML -->
|
||||
<label for="searchbar"><img src="/static/admin/img/search.svg" alt="Search"></label>
|
||||
<input type="text" size="40" name="q" value="" id="searchbar" autofocus>
|
||||
<input type="submit" value="Search">
|
||||
<span class="small quiet">2 results (<a href="?">6 total</a>)</span>
|
||||
</div>
|
||||
</form></div>
|
||||
<div class="xfull">
|
||||
<ul class="toplinks">
|
||||
<li class="date-back"><a href="?create_dt__year=2000">‹ 2000</a></li>
|
||||
<li> <a href="?create_dt__day=1&create_dt__month=1&create_dt__year=2000">January 1</a></li>
|
||||
</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">
|
||||
<label>Action: <select name="action" required>
|
||||
<option value="" selected>---------</option>
|
||||
<option value="delete_selected">Delete selected Items</option>
|
||||
</select></label><input type="hidden" name="select_across" value="0" class="select-across">
|
||||
<button type="submit" class="button" title="Run the selected action" name="index" value="0">Go</button>
|
||||
<span class="action-counter" data-actions-icnt="2">0 of 2 selected</span>
|
||||
</div>
|
||||
<div class="results">
|
||||
<table id="result_list">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="action-checkbox-column">
|
||||
<div class="text"><span><input type="checkbox" id="action-toggle"></span></div>
|
||||
<div class="clear"></div>
|
||||
</th>
|
||||
<th scope="col" class="column-_tagulous_display_kind">
|
||||
<div class="text"><span>Kind</span></div>
|
||||
<div class="clear"></div>
|
||||
</th>
|
||||
<th scope="col" class="column-_tagulous_display_producer">
|
||||
<div class="text"><span>Producer</span></div>
|
||||
<div class="clear"></div>
|
||||
</th>
|
||||
<th scope="col" class="column-column_item">
|
||||
<div class="text"><span>Items</span></div>
|
||||
<div class="clear"></div>
|
||||
</th>
|
||||
<th scope="col" class="sortable column-location">
|
||||
<div class="text"><a href="?o=4">Location</a></div>
|
||||
<div class="clear"></div>
|
||||
</th>
|
||||
<th scope="col" class="sortable column-received_date">
|
||||
<div class="text"><a href="?o=5">Received date</a></div>
|
||||
<div class="clear"></div>
|
||||
</th>
|
||||
<th scope="col" class="sortable column-update_dt">
|
||||
<div class="text"><a href="?o=6">Last update</a></div>
|
||||
<div class="clear"></div>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="row1"><td class="action-checkbox"><input type="checkbox" name="_selected_action" value="00000000-0001-0000-0000-000000000000" class="action-select"></td><td class="field-_tagulous_display_kind"> </td><td class="field-_tagulous_display_producer"> </td><td class="field-column_item"><strong><a href="/admin/inventory/itemmodel/00000000-0001-0000-0000-000000000000/change/">main item 1</a></strong>
|
||||
<ul>
|
||||
<li><a href="/admin/inventory/itemmodel/00000000-0001-0001-0000-000000000000/change/">sub item 1.1</a></li>
|
||||
<li><a href="/admin/inventory/itemmodel/00000000-0001-0002-0000-000000000000/change/">sub item 1.2</a></li>
|
||||
</ul>
|
||||
</td><td class="field-location nowrap">-</td><td class="field-received_date nowrap">-</td><td class="field-update_dt nowrap">Jan. 1, 2000, 1:01 a.m.</td></tr>
|
||||
<tr class="row2"><td class="action-checkbox"><input type="checkbox" name="_selected_action" value="00000000-0002-0000-0000-000000000000" class="action-select"></td><td class="field-_tagulous_display_kind"> </td><td class="field-_tagulous_display_producer"> </td><td class="field-column_item"><strong><a href="/admin/inventory/itemmodel/00000000-0002-0000-0000-000000000000/change/">main item 2</a></strong>
|
||||
<ul>
|
||||
<li><a href="/admin/inventory/itemmodel/00000000-0002-0001-0000-000000000000/change/">sub item 2.1</a></li>
|
||||
<li><a href="/admin/inventory/itemmodel/00000000-0002-0002-0000-000000000000/change/">sub item 2.2</a></li>
|
||||
</ul>
|
||||
</td><td class="field-location nowrap">-</td><td class="field-received_date nowrap">-</td><td class="field-update_dt nowrap">Jan. 1, 2000, 1:04 a.m.</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<p class="paginator">
|
||||
2 Items
|
||||
</p>
|
||||
›
|
||||
<a href="/admin/inventory/">
|
||||
Inventory
|
||||
</a>
|
||||
› Items
|
||||
</div>
|
||||
<!-- Content -->
|
||||
<div class="flex" id="content">
|
||||
<h1>
|
||||
Select Item to change
|
||||
</h1>
|
||||
<div id="content-main">
|
||||
<ul class="object-tools">
|
||||
<li>
|
||||
<a class="import_link" href="/admin/inventory/itemmodel/import/">
|
||||
Import
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export_link" href="/admin/inventory/itemmodel/export/?">
|
||||
Export
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="addlink" href="/admin/inventory/itemmodel/add/">
|
||||
Add Item
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="module filtered" id="changelist">
|
||||
<div id="toolbar">
|
||||
<form id="changelist-search" method="get">
|
||||
<div>
|
||||
<!-- DIV needed for valid HTML -->
|
||||
<label for="searchbar">
|
||||
<img alt="Search" src="/static/admin/img/search.svg"/>
|
||||
</label>
|
||||
<input autofocus="" id="searchbar" name="q" size="40" type="text" value=""/>
|
||||
<input type="submit" value="Search"/>
|
||||
<span class="small quiet">
|
||||
2 results (
|
||||
<a href="?">
|
||||
6 total
|
||||
</a>
|
||||
)
|
||||
</span>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="xfull">
|
||||
<ul class="toplinks">
|
||||
<li class="date-back">
|
||||
<a href="?create_dt__year=2000">
|
||||
‹ 2000
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="?create_dt__day=1&create_dt__month=1&create_dt__year=2000">
|
||||
January 1
|
||||
</a>
|
||||
</li>
|
||||
</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">
|
||||
<label>
|
||||
Action:
|
||||
<select name="action" required="">
|
||||
<option selected="" value="">
|
||||
---------
|
||||
</option>
|
||||
<option value="delete_selected">
|
||||
Delete selected Items
|
||||
</option>
|
||||
</select>
|
||||
</label>
|
||||
<input class="select-across" name="select_across" type="hidden" value="0"/>
|
||||
<button class="button" name="index" title="Run the selected action" type="submit" value="0">
|
||||
Go
|
||||
</button>
|
||||
<span class="action-counter" data-actions-icnt="2">
|
||||
0 of 2 selected
|
||||
</span>
|
||||
</div>
|
||||
<div class="results">
|
||||
<table id="result_list">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="action-checkbox-column" scope="col">
|
||||
<div class="text">
|
||||
<span>
|
||||
<input id="action-toggle" type="checkbox"/>
|
||||
</span>
|
||||
</div>
|
||||
<div class="clear">
|
||||
</div>
|
||||
</th>
|
||||
<th class="column-_tagulous_display_kind" scope="col">
|
||||
<div class="text">
|
||||
<span>
|
||||
Kind
|
||||
</span>
|
||||
</div>
|
||||
<div class="clear">
|
||||
</div>
|
||||
</th>
|
||||
<th class="column-_tagulous_display_producer" scope="col">
|
||||
<div class="text">
|
||||
<span>
|
||||
Producer
|
||||
</span>
|
||||
</div>
|
||||
<div class="clear">
|
||||
</div>
|
||||
</th>
|
||||
<th class="column-column_item" scope="col">
|
||||
<div class="text">
|
||||
<span>
|
||||
Items
|
||||
</span>
|
||||
</div>
|
||||
<div class="clear">
|
||||
</div>
|
||||
</th>
|
||||
<th class="sortable column-location" scope="col">
|
||||
<div class="text">
|
||||
<a href="?o=4">
|
||||
Location
|
||||
</a>
|
||||
</div>
|
||||
<div class="clear">
|
||||
</div>
|
||||
</th>
|
||||
<th class="sortable column-received_date" scope="col">
|
||||
<div class="text">
|
||||
<a href="?o=5">
|
||||
Received date
|
||||
</a>
|
||||
</div>
|
||||
<div class="clear">
|
||||
</div>
|
||||
</th>
|
||||
<th class="sortable column-update_dt" scope="col">
|
||||
<div class="text">
|
||||
<a href="?o=6">
|
||||
Last update
|
||||
</a>
|
||||
</div>
|
||||
<div class="clear">
|
||||
</div>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="row1">
|
||||
<td class="action-checkbox">
|
||||
<input class="action-select" name="_selected_action" type="checkbox" value="00000000-0001-0000-0000-000000000000"/>
|
||||
</td>
|
||||
<td class="field-_tagulous_display_kind">
|
||||
</td>
|
||||
<td class="field-_tagulous_display_producer">
|
||||
</td>
|
||||
<td class="field-column_item">
|
||||
<strong>
|
||||
<a href="/admin/inventory/itemmodel/00000000-0001-0000-0000-000000000000/change/">
|
||||
main item 1
|
||||
</a>
|
||||
</strong>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/admin/inventory/itemmodel/00000000-0001-0001-0000-000000000000/change/">
|
||||
sub item 1.1
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/admin/inventory/itemmodel/00000000-0001-0002-0000-000000000000/change/">
|
||||
sub item 1.2
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</td>
|
||||
<td class="field-location nowrap">
|
||||
-
|
||||
</td>
|
||||
<td class="field-received_date nowrap">
|
||||
-
|
||||
</td>
|
||||
<td class="field-update_dt nowrap">
|
||||
Jan. 1, 2000, 1:01 a.m.
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="row2">
|
||||
<td class="action-checkbox">
|
||||
<input class="action-select" name="_selected_action" type="checkbox" value="00000000-0002-0000-0000-000000000000"/>
|
||||
</td>
|
||||
<td class="field-_tagulous_display_kind">
|
||||
</td>
|
||||
<td class="field-_tagulous_display_producer">
|
||||
</td>
|
||||
<td class="field-column_item">
|
||||
<strong>
|
||||
<a href="/admin/inventory/itemmodel/00000000-0002-0000-0000-000000000000/change/">
|
||||
main item 2
|
||||
</a>
|
||||
</strong>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="/admin/inventory/itemmodel/00000000-0002-0001-0000-000000000000/change/">
|
||||
sub item 2.1
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="/admin/inventory/itemmodel/00000000-0002-0002-0000-000000000000/change/">
|
||||
sub item 2.2
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</td>
|
||||
<td class="field-location nowrap">
|
||||
-
|
||||
</td>
|
||||
<td class="field-received_date nowrap">
|
||||
-
|
||||
</td>
|
||||
<td class="field-update_dt nowrap">
|
||||
Jan. 1, 2000, 1:04 a.m.
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<p class="paginator">
|
||||
2 Items
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<br class="clear"/>
|
||||
</div>
|
||||
<!-- END Content -->
|
||||
<div id="footer">
|
||||
<a href="https://github.com/jedie/PyInventory">
|
||||
https://github.com/jedie/PyInventory
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<br class="clear">
|
||||
</div>
|
||||
<!-- END Content -->
|
||||
<div id="footer">
|
||||
<a href="https://github.com/jedie/PyInventory">https://github.com/jedie/PyInventory</a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END Container -->
|
||||
</body>
|
||||
</html>
|
||||
<!-- END Container -->
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1,152 +1,317 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" >
|
||||
<head>
|
||||
<title>Select Item to change | PyInventory v0.10.0</title>
|
||||
<link rel="stylesheet" type="text/css" href="/static/admin/css/base.css">
|
||||
<link rel="stylesheet" type="text/css" href="/static/admin/css/changelists.css">
|
||||
<script type="text/javascript" src="/admin/jsi18n/"></script>
|
||||
<meta name="google" content="notranslate">
|
||||
<meta name="robots" content="noindex,nofollow" />
|
||||
<link rel="stylesheet" type="text/css" href="/static/inventory.css">
|
||||
<script type="text/javascript" src="/static/admin/js/vendor/jquery/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="/static/admin/js/jquery.init.js"></script>
|
||||
<script type="text/javascript" src="/static/admin/js/core.js"></script>
|
||||
<script type="text/javascript" src="/static/admin/js/admin/RelatedObjectLookups.js"></script>
|
||||
<script type="text/javascript" src="/static/admin/js/actions.min.js"></script>
|
||||
<script type="text/javascript" src="/static/admin/js/urlify.js"></script>
|
||||
<script type="text/javascript" src="/static/admin/js/prepopulate.min.js"></script>
|
||||
<script type="text/javascript" src="/static/admin/js/vendor/xregexp/xregexp.min.js"></script>
|
||||
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0, maximum-scale=1.0">
|
||||
<link rel="stylesheet" type="text/css" href="/static/admin/css/responsive.css">
|
||||
<meta name="robots" content="NONE,NOARCHIVE">
|
||||
</head>
|
||||
<body class=" app-inventory model-itemmodel change-list"
|
||||
data-admin-utc-offset="7200">
|
||||
<!-- Container -->
|
||||
<div id="container">
|
||||
<!-- Header -->
|
||||
<div id="header">
|
||||
<div id="branding">
|
||||
<h1 id="site-name">
|
||||
<a href="/admin/">PyInventory v0.10.0</a>
|
||||
</h1>
|
||||
</div>
|
||||
<div id="user-tools">
|
||||
Welcome,
|
||||
<strong>NormalUser</strong>.
|
||||
<a href="/">View site</a> /
|
||||
<a href="/admin/password_change/">Change password</a> /
|
||||
<a href="/admin/logout/">Log out</a>
|
||||
</div>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>
|
||||
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/changelists.css" rel="stylesheet" type="text/css"/>
|
||||
<script src="/admin/jsi18n/" type="text/javascript">
|
||||
</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>
|
||||
<script src="/static/admin/js/jquery.init.js" type="text/javascript">
|
||||
</script>
|
||||
<script src="/static/admin/js/core.js" type="text/javascript">
|
||||
</script>
|
||||
<script src="/static/admin/js/admin/RelatedObjectLookups.js" type="text/javascript">
|
||||
</script>
|
||||
<script src="/static/admin/js/actions.min.js" type="text/javascript">
|
||||
</script>
|
||||
<script src="/static/admin/js/urlify.js" type="text/javascript">
|
||||
</script>
|
||||
<script src="/static/admin/js/prepopulate.min.js" type="text/javascript">
|
||||
</script>
|
||||
<script src="/static/admin/js/vendor/xregexp/xregexp.min.js" type="text/javascript">
|
||||
</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"/>
|
||||
<meta content="NONE,NOARCHIVE" name="robots"/>
|
||||
</meta>
|
||||
</head>
|
||||
<body class="app-inventory model-itemmodel change-list" data-admin-utc-offset="7200">
|
||||
<!-- Container -->
|
||||
<div id="container">
|
||||
<!-- Header -->
|
||||
<div id="header">
|
||||
<div id="branding">
|
||||
<h1 id="site-name">
|
||||
<a href="/admin/">
|
||||
PyInventory v0.10.0
|
||||
</a>
|
||||
</h1>
|
||||
</div>
|
||||
<!-- END Header -->
|
||||
<div class="breadcrumbs">
|
||||
<a href="/admin/">Home</a>
|
||||
› <a href="/admin/inventory/">Inventory</a>
|
||||
› Items
|
||||
</div>
|
||||
<!-- Content -->
|
||||
<div id="content" class="flex">
|
||||
<h1>Select Item to change</h1>
|
||||
<div id="content-main">
|
||||
<ul class="object-tools">
|
||||
<li><a href='/admin/inventory/itemmodel/import/' class="import_link">Import</a></li>
|
||||
<li><a href="/admin/inventory/itemmodel/export/?q=sub+item+2." class="export_link">Export</a></li>
|
||||
<li>
|
||||
<a href="/admin/inventory/itemmodel/add/?_changelist_filters=q%3Dsub%2Bitem%2B2." class="addlink">
|
||||
Add Item
|
||||
<div id="user-tools">
|
||||
Welcome,
|
||||
<strong>
|
||||
NormalUser
|
||||
</strong>
|
||||
.
|
||||
<a href="/">
|
||||
View site
|
||||
</a>
|
||||
/
|
||||
<a href="/admin/password_change/">
|
||||
Change password
|
||||
</a>
|
||||
/
|
||||
<a href="/admin/logout/">
|
||||
Log out
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END Header -->
|
||||
<div class="breadcrumbs">
|
||||
<a href="/admin/">
|
||||
Home
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="module filtered" id="changelist">
|
||||
<div id="toolbar"><form id="changelist-search" method="get">
|
||||
<div><!-- DIV needed for valid HTML -->
|
||||
<label for="searchbar"><img src="/static/admin/img/search.svg" alt="Search"></label>
|
||||
<input type="text" size="40" name="q" value="sub item 2." id="searchbar" autofocus>
|
||||
<input type="submit" value="Search">
|
||||
<span class="small quiet">2 results (<a href="?">6 total</a>)</span>
|
||||
</div>
|
||||
</form></div>
|
||||
<div class="xfull">
|
||||
<ul class="toplinks">
|
||||
<li class="date-back"><a href="?create_dt__year=2000&q=sub+item+2.">‹ 2000</a></li>
|
||||
<li> <a href="?create_dt__day=1&create_dt__month=1&create_dt__year=2000&q=sub+item+2.">January 1</a></li>
|
||||
</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">
|
||||
<label>Action: <select name="action" required>
|
||||
<option value="" selected>---------</option>
|
||||
<option value="delete_selected">Delete selected Items</option>
|
||||
</select></label><input type="hidden" name="select_across" value="0" class="select-across">
|
||||
<button type="submit" class="button" title="Run the selected action" name="index" value="0">Go</button>
|
||||
<span class="action-counter" data-actions-icnt="2">0 of 2 selected</span>
|
||||
</div>
|
||||
<div class="results">
|
||||
<table id="result_list">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="action-checkbox-column">
|
||||
<div class="text"><span><input type="checkbox" id="action-toggle"></span></div>
|
||||
<div class="clear"></div>
|
||||
</th>
|
||||
<th scope="col" class="column-_tagulous_display_kind">
|
||||
<div class="text"><span>Kind</span></div>
|
||||
<div class="clear"></div>
|
||||
</th>
|
||||
<th scope="col" class="column-_tagulous_display_producer">
|
||||
<div class="text"><span>Producer</span></div>
|
||||
<div class="clear"></div>
|
||||
</th>
|
||||
<th scope="col" class="column-column_item">
|
||||
<div class="text"><span>Items</span></div>
|
||||
<div class="clear"></div>
|
||||
</th>
|
||||
<th scope="col" class="sortable column-location">
|
||||
<div class="text"><a href="?o=4&q=sub+item+2.">Location</a></div>
|
||||
<div class="clear"></div>
|
||||
</th>
|
||||
<th scope="col" class="sortable column-received_date">
|
||||
<div class="text"><a href="?o=5&q=sub+item+2.">Received date</a></div>
|
||||
<div class="clear"></div>
|
||||
</th>
|
||||
<th scope="col" class="sortable column-update_dt">
|
||||
<div class="text"><a href="?o=6&q=sub+item+2.">Last update</a></div>
|
||||
<div class="clear"></div>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="row1"><td class="action-checkbox"><input type="checkbox" name="_selected_action" value="00000000-0002-0001-0000-000000000000" class="action-select"></td><td class="field-_tagulous_display_kind"> </td><td class="field-_tagulous_display_producer"> </td><td class="field-column_item"><strong><a href="/admin/inventory/itemmodel/00000000-0002-0001-0000-000000000000/change/">sub item 2.1</a></strong>
|
||||
</td><td class="field-location nowrap">-</td><td class="field-received_date nowrap">-</td><td class="field-update_dt nowrap">Jan. 1, 2000, 1:05 a.m.</td></tr>
|
||||
<tr class="row2"><td class="action-checkbox"><input type="checkbox" name="_selected_action" value="00000000-0002-0002-0000-000000000000" class="action-select"></td><td class="field-_tagulous_display_kind"> </td><td class="field-_tagulous_display_producer"> </td><td class="field-column_item"><strong><a href="/admin/inventory/itemmodel/00000000-0002-0002-0000-000000000000/change/">sub item 2.2</a></strong>
|
||||
</td><td class="field-location nowrap">-</td><td class="field-received_date nowrap">-</td><td class="field-update_dt nowrap">Jan. 1, 2000, 1:06 a.m.</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<p class="paginator">
|
||||
2 Items
|
||||
</p>
|
||||
›
|
||||
<a href="/admin/inventory/">
|
||||
Inventory
|
||||
</a>
|
||||
› Items
|
||||
</div>
|
||||
<!-- Content -->
|
||||
<div class="flex" id="content">
|
||||
<h1>
|
||||
Select Item to change
|
||||
</h1>
|
||||
<div id="content-main">
|
||||
<ul class="object-tools">
|
||||
<li>
|
||||
<a class="import_link" href="/admin/inventory/itemmodel/import/">
|
||||
Import
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="export_link" href="/admin/inventory/itemmodel/export/?q=sub+item+2.">
|
||||
Export
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="addlink" href="/admin/inventory/itemmodel/add/?_changelist_filters=q%3Dsub%2Bitem%2B2.">
|
||||
Add Item
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="module filtered" id="changelist">
|
||||
<div id="toolbar">
|
||||
<form id="changelist-search" method="get">
|
||||
<div>
|
||||
<!-- DIV needed for valid HTML -->
|
||||
<label for="searchbar">
|
||||
<img alt="Search" src="/static/admin/img/search.svg"/>
|
||||
</label>
|
||||
<input autofocus="" id="searchbar" name="q" size="40" type="text" value="sub item 2."/>
|
||||
<input type="submit" value="Search"/>
|
||||
<span class="small quiet">
|
||||
2 results (
|
||||
<a href="?">
|
||||
6 total
|
||||
</a>
|
||||
)
|
||||
</span>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="xfull">
|
||||
<ul class="toplinks">
|
||||
<li class="date-back">
|
||||
<a href="?create_dt__year=2000&q=sub+item+2.">
|
||||
‹ 2000
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="?create_dt__day=1&create_dt__month=1&create_dt__year=2000&q=sub+item+2.">
|
||||
January 1
|
||||
</a>
|
||||
</li>
|
||||
</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">
|
||||
<label>
|
||||
Action:
|
||||
<select name="action" required="">
|
||||
<option selected="" value="">
|
||||
---------
|
||||
</option>
|
||||
<option value="delete_selected">
|
||||
Delete selected Items
|
||||
</option>
|
||||
</select>
|
||||
</label>
|
||||
<input class="select-across" name="select_across" type="hidden" value="0"/>
|
||||
<button class="button" name="index" title="Run the selected action" type="submit" value="0">
|
||||
Go
|
||||
</button>
|
||||
<span class="action-counter" data-actions-icnt="2">
|
||||
0 of 2 selected
|
||||
</span>
|
||||
</div>
|
||||
<div class="results">
|
||||
<table id="result_list">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="action-checkbox-column" scope="col">
|
||||
<div class="text">
|
||||
<span>
|
||||
<input id="action-toggle" type="checkbox"/>
|
||||
</span>
|
||||
</div>
|
||||
<div class="clear">
|
||||
</div>
|
||||
</th>
|
||||
<th class="column-_tagulous_display_kind" scope="col">
|
||||
<div class="text">
|
||||
<span>
|
||||
Kind
|
||||
</span>
|
||||
</div>
|
||||
<div class="clear">
|
||||
</div>
|
||||
</th>
|
||||
<th class="column-_tagulous_display_producer" scope="col">
|
||||
<div class="text">
|
||||
<span>
|
||||
Producer
|
||||
</span>
|
||||
</div>
|
||||
<div class="clear">
|
||||
</div>
|
||||
</th>
|
||||
<th class="column-column_item" scope="col">
|
||||
<div class="text">
|
||||
<span>
|
||||
Items
|
||||
</span>
|
||||
</div>
|
||||
<div class="clear">
|
||||
</div>
|
||||
</th>
|
||||
<th class="sortable column-location" scope="col">
|
||||
<div class="text">
|
||||
<a href="?o=4&q=sub+item+2.">
|
||||
Location
|
||||
</a>
|
||||
</div>
|
||||
<div class="clear">
|
||||
</div>
|
||||
</th>
|
||||
<th class="sortable column-received_date" scope="col">
|
||||
<div class="text">
|
||||
<a href="?o=5&q=sub+item+2.">
|
||||
Received date
|
||||
</a>
|
||||
</div>
|
||||
<div class="clear">
|
||||
</div>
|
||||
</th>
|
||||
<th class="sortable column-update_dt" scope="col">
|
||||
<div class="text">
|
||||
<a href="?o=6&q=sub+item+2.">
|
||||
Last update
|
||||
</a>
|
||||
</div>
|
||||
<div class="clear">
|
||||
</div>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="row1">
|
||||
<td class="action-checkbox">
|
||||
<input class="action-select" name="_selected_action" type="checkbox" value="00000000-0002-0001-0000-000000000000"/>
|
||||
</td>
|
||||
<td class="field-_tagulous_display_kind">
|
||||
</td>
|
||||
<td class="field-_tagulous_display_producer">
|
||||
</td>
|
||||
<td class="field-column_item">
|
||||
<strong>
|
||||
<a href="/admin/inventory/itemmodel/00000000-0002-0001-0000-000000000000/change/">
|
||||
sub item 2.1
|
||||
</a>
|
||||
</strong>
|
||||
</td>
|
||||
<td class="field-location nowrap">
|
||||
-
|
||||
</td>
|
||||
<td class="field-received_date nowrap">
|
||||
-
|
||||
</td>
|
||||
<td class="field-update_dt nowrap">
|
||||
Jan. 1, 2000, 1:05 a.m.
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="row2">
|
||||
<td class="action-checkbox">
|
||||
<input class="action-select" name="_selected_action" type="checkbox" value="00000000-0002-0002-0000-000000000000"/>
|
||||
</td>
|
||||
<td class="field-_tagulous_display_kind">
|
||||
</td>
|
||||
<td class="field-_tagulous_display_producer">
|
||||
</td>
|
||||
<td class="field-column_item">
|
||||
<strong>
|
||||
<a href="/admin/inventory/itemmodel/00000000-0002-0002-0000-000000000000/change/">
|
||||
sub item 2.2
|
||||
</a>
|
||||
</strong>
|
||||
</td>
|
||||
<td class="field-location nowrap">
|
||||
-
|
||||
</td>
|
||||
<td class="field-received_date nowrap">
|
||||
-
|
||||
</td>
|
||||
<td class="field-update_dt nowrap">
|
||||
Jan. 1, 2000, 1:06 a.m.
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<p class="paginator">
|
||||
2 Items
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<br class="clear"/>
|
||||
</div>
|
||||
<!-- END Content -->
|
||||
<div id="footer">
|
||||
<a href="https://github.com/jedie/PyInventory">
|
||||
https://github.com/jedie/PyInventory
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<br class="clear">
|
||||
</div>
|
||||
<!-- END Content -->
|
||||
<div id="footer">
|
||||
<a href="https://github.com/jedie/PyInventory">https://github.com/jedie/PyInventory</a>
|
||||
</div>
|
||||
</div>
|
||||
<!-- END Container -->
|
||||
</body>
|
||||
</html>
|
||||
<!-- END Container -->
|
||||
</body>
|
||||
</html>
|
||||
|
|
Ładowanie…
Reference in New Issue