From ff27f768744508689713d4c17bd672c45e880a0c Mon Sep 17 00:00:00 2001 From: Prince Kurt Laurence Date: Thu, 26 Oct 2023 14:22:11 +0800 Subject: [PATCH 01/43] initial commit --- ERD/Backend_ERD.drawio.png | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 ERD/Backend_ERD.drawio.png diff --git a/ERD/Backend_ERD.drawio.png b/ERD/Backend_ERD.drawio.png new file mode 100644 index 0000000..e69de29 From 3afbbf04d56a63fa59682a8208787d3d47d93e1e Mon Sep 17 00:00:00 2001 From: Prince Kurt Laurence Date: Thu, 26 Oct 2023 17:16:03 +0800 Subject: [PATCH 02/43] ERD changes still subject to change --- ERD/Backend_ERD.drawio.png | Bin 0 -> 74265 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ERD/Backend_ERD.drawio.png b/ERD/Backend_ERD.drawio.png index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..ee3e9813b4bcecd1f9a636e15c10668db5cae2c8 100644 GIT binary patch literal 74265 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 Y9J|%lo)BV60ROZ#&a1ysy&Cd=0ArtON&o-= literal 0 HcmV?d00001 From 6ec649b1c6b8560951a553ba58dbd19b40028217 Mon Sep 17 00:00:00 2001 From: Keannu Bernasol Date: Thu, 26 Oct 2023 19:23:51 +0800 Subject: [PATCH 03/43] Revised ERD --- ERD/Backend_ERD.drawio.png | Bin 74265 -> 84053 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/ERD/Backend_ERD.drawio.png b/ERD/Backend_ERD.drawio.png index ee3e9813b4bcecd1f9a636e15c10668db5cae2c8..8f934f25412990b8226697b603d85bbc0756ac4a 100644 GIT binary patch literal 84053 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 Y9J|%lo)BV60ROZ#&a1ysy&Cd=0ArtON&o-= From 1c563690446ab3a8bacda0bd7ba8320476b7c1ac Mon Sep 17 00:00:00 2001 From: Keannu Bernasol Date: Thu, 9 Nov 2023 19:48:13 +0800 Subject: [PATCH 04/43] Added user model --- Pipfile | 4 + Pipfile.lock | 565 ++++++++++++++---- equipment_tracker/accounts/__init__.py | 0 equipment_tracker/accounts/admin.py | 11 + equipment_tracker/accounts/apps.py | 6 + .../accounts/migrations/0001_initial.py | 46 ++ .../accounts/migrations/__init__.py | 0 equipment_tracker/accounts/models.py | 82 +++ equipment_tracker/accounts/serializers.py | 45 ++ equipment_tracker/accounts/tests.py | 3 + equipment_tracker/accounts/urls.py | 7 + equipment_tracker/accounts/views.py | 3 + equipment_tracker/api/urls.py | 2 +- equipment_tracker/config/settings.py | 13 +- equipment_tracker/db.sqlite3 | Bin 131072 -> 131072 bytes 15 files changed, 659 insertions(+), 128 deletions(-) create mode 100644 equipment_tracker/accounts/__init__.py create mode 100644 equipment_tracker/accounts/admin.py create mode 100644 equipment_tracker/accounts/apps.py create mode 100644 equipment_tracker/accounts/migrations/0001_initial.py create mode 100644 equipment_tracker/accounts/migrations/__init__.py create mode 100644 equipment_tracker/accounts/models.py create mode 100644 equipment_tracker/accounts/serializers.py create mode 100644 equipment_tracker/accounts/tests.py create mode 100644 equipment_tracker/accounts/urls.py create mode 100644 equipment_tracker/accounts/views.py diff --git a/Pipfile b/Pipfile index 1ca75d8..627e336 100644 --- a/Pipfile +++ b/Pipfile @@ -10,6 +10,10 @@ python-dotenv = "*" whitenoise = "*" djoser = "*" django-cors-headers = "*" +drf-spectacular = {version = "*", extras = ["sidecar"]} +django-extra-fields = "*" +pillow = "*" +psycopg2 = "*" [dev-packages] diff --git a/Pipfile.lock b/Pipfile.lock index 4857364..f1f704a 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "78c49b7899d981508de476af5e9aa819ee18a8c6ecaa040961788004559f5cac" + "sha256": "7ca25164f3d5c5501004130b514ab73101cc9d6937aa0af8356bf65a3cb354fe" }, "pipfile-spec": 6, "requires": { @@ -24,6 +24,14 @@ "markers": "python_version >= '3.7'", "version": "==3.7.2" }, + "attrs": { + "hashes": [ + "sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04", + "sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015" + ], + "markers": "python_version >= '3.7'", + "version": "==23.1.0" + }, "certifi": { "hashes": [ "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082", @@ -92,128 +100,128 @@ }, "charset-normalizer": { "hashes": [ - "sha256:06cf46bdff72f58645434d467bf5228080801298fbba19fe268a01b4534467f5", - "sha256:0c8c61fb505c7dad1d251c284e712d4e0372cef3b067f7ddf82a7fa82e1e9a93", - "sha256:10b8dd31e10f32410751b3430996f9807fc4d1587ca69772e2aa940a82ab571a", - "sha256:1171ef1fc5ab4693c5d151ae0fdad7f7349920eabbaca6271f95969fa0756c2d", - "sha256:17a866d61259c7de1bdadef418a37755050ddb4b922df8b356503234fff7932c", - "sha256:1d6bfc32a68bc0933819cfdfe45f9abc3cae3877e1d90aac7259d57e6e0f85b1", - "sha256:1ec937546cad86d0dce5396748bf392bb7b62a9eeb8c66efac60e947697f0e58", - "sha256:223b4d54561c01048f657fa6ce41461d5ad8ff128b9678cfe8b2ecd951e3f8a2", - "sha256:2465aa50c9299d615d757c1c888bc6fef384b7c4aec81c05a0172b4400f98557", - "sha256:28f512b9a33235545fbbdac6a330a510b63be278a50071a336afc1b78781b147", - "sha256:2c092be3885a1b7899cd85ce24acedc1034199d6fca1483fa2c3a35c86e43041", - "sha256:2c4c99f98fc3a1835af8179dcc9013f93594d0670e2fa80c83aa36346ee763d2", - "sha256:31445f38053476a0c4e6d12b047b08ced81e2c7c712e5a1ad97bc913256f91b2", - "sha256:31bbaba7218904d2eabecf4feec0d07469284e952a27400f23b6628439439fa7", - "sha256:34d95638ff3613849f473afc33f65c401a89f3b9528d0d213c7037c398a51296", - "sha256:352a88c3df0d1fa886562384b86f9a9e27563d4704ee0e9d56ec6fcd270ea690", - "sha256:39b70a6f88eebe239fa775190796d55a33cfb6d36b9ffdd37843f7c4c1b5dc67", - "sha256:3c66df3f41abee950d6638adc7eac4730a306b022570f71dd0bd6ba53503ab57", - "sha256:3f70fd716855cd3b855316b226a1ac8bdb3caf4f7ea96edcccc6f484217c9597", - "sha256:3f9bc2ce123637a60ebe819f9fccc614da1bcc05798bbbaf2dd4ec91f3e08846", - "sha256:3fb765362688821404ad6cf86772fc54993ec11577cd5a92ac44b4c2ba52155b", - "sha256:45f053a0ece92c734d874861ffe6e3cc92150e32136dd59ab1fb070575189c97", - "sha256:46fb9970aa5eeca547d7aa0de5d4b124a288b42eaefac677bde805013c95725c", - "sha256:4cb50a0335382aac15c31b61d8531bc9bb657cfd848b1d7158009472189f3d62", - "sha256:4e12f8ee80aa35e746230a2af83e81bd6b52daa92a8afaef4fea4a2ce9b9f4fa", - "sha256:4f3100d86dcd03c03f7e9c3fdb23d92e32abbca07e7c13ebd7ddfbcb06f5991f", - "sha256:4f6e2a839f83a6a76854d12dbebde50e4b1afa63e27761549d006fa53e9aa80e", - "sha256:4f861d94c2a450b974b86093c6c027888627b8082f1299dfd5a4bae8e2292821", - "sha256:501adc5eb6cd5f40a6f77fbd90e5ab915c8fd6e8c614af2db5561e16c600d6f3", - "sha256:520b7a142d2524f999447b3a0cf95115df81c4f33003c51a6ab637cbda9d0bf4", - "sha256:548eefad783ed787b38cb6f9a574bd8664468cc76d1538215d510a3cd41406cb", - "sha256:555fe186da0068d3354cdf4bbcbc609b0ecae4d04c921cc13e209eece7720727", - "sha256:55602981b2dbf8184c098bc10287e8c245e351cd4fdcad050bd7199d5a8bf514", - "sha256:58e875eb7016fd014c0eea46c6fa92b87b62c0cb31b9feae25cbbe62c919f54d", - "sha256:5a3580a4fdc4ac05f9e53c57f965e3594b2f99796231380adb2baaab96e22761", - "sha256:5b70bab78accbc672f50e878a5b73ca692f45f5b5e25c8066d748c09405e6a55", - "sha256:5ceca5876032362ae73b83347be8b5dbd2d1faf3358deb38c9c88776779b2e2f", - "sha256:61f1e3fb621f5420523abb71f5771a204b33c21d31e7d9d86881b2cffe92c47c", - "sha256:633968254f8d421e70f91c6ebe71ed0ab140220469cf87a9857e21c16687c034", - "sha256:63a6f59e2d01310f754c270e4a257426fe5a591dc487f1983b3bbe793cf6bac6", - "sha256:63accd11149c0f9a99e3bc095bbdb5a464862d77a7e309ad5938fbc8721235ae", - "sha256:6db3cfb9b4fcecb4390db154e75b49578c87a3b9979b40cdf90d7e4b945656e1", - "sha256:71ef3b9be10070360f289aea4838c784f8b851be3ba58cf796262b57775c2f14", - "sha256:7ae8e5142dcc7a49168f4055255dbcced01dc1714a90a21f87448dc8d90617d1", - "sha256:7b6cefa579e1237ce198619b76eaa148b71894fb0d6bcf9024460f9bf30fd228", - "sha256:800561453acdecedaac137bf09cd719c7a440b6800ec182f077bb8e7025fb708", - "sha256:82ca51ff0fc5b641a2d4e1cc8c5ff108699b7a56d7f3ad6f6da9dbb6f0145b48", - "sha256:851cf693fb3aaef71031237cd68699dded198657ec1e76a76eb8be58c03a5d1f", - "sha256:854cc74367180beb327ab9d00f964f6d91da06450b0855cbbb09187bcdb02de5", - "sha256:87071618d3d8ec8b186d53cb6e66955ef2a0e4fa63ccd3709c0c90ac5a43520f", - "sha256:871d045d6ccc181fd863a3cd66ee8e395523ebfbc57f85f91f035f50cee8e3d4", - "sha256:8aee051c89e13565c6bd366813c386939f8e928af93c29fda4af86d25b73d8f8", - "sha256:8af5a8917b8af42295e86b64903156b4f110a30dca5f3b5aedea123fbd638bff", - "sha256:8ec8ef42c6cd5856a7613dcd1eaf21e5573b2185263d87d27c8edcae33b62a61", - "sha256:91e43805ccafa0a91831f9cd5443aa34528c0c3f2cc48c4cb3d9a7721053874b", - "sha256:9505dc359edb6a330efcd2be825fdb73ee3e628d9010597aa1aee5aa63442e97", - "sha256:985c7965f62f6f32bf432e2681173db41336a9c2611693247069288bcb0c7f8b", - "sha256:9a74041ba0bfa9bc9b9bb2cd3238a6ab3b7618e759b41bd15b5f6ad958d17605", - "sha256:9edbe6a5bf8b56a4a84533ba2b2f489d0046e755c29616ef8830f9e7d9cf5728", - "sha256:a15c1fe6d26e83fd2e5972425a772cca158eae58b05d4a25a4e474c221053e2d", - "sha256:a66bcdf19c1a523e41b8e9d53d0cedbfbac2e93c649a2e9502cb26c014d0980c", - "sha256:ae4070f741f8d809075ef697877fd350ecf0b7c5837ed68738607ee0a2c572cf", - "sha256:ae55d592b02c4349525b6ed8f74c692509e5adffa842e582c0f861751701a673", - "sha256:b578cbe580e3b41ad17b1c428f382c814b32a6ce90f2d8e39e2e635d49e498d1", - "sha256:b891a2f68e09c5ef989007fac11476ed33c5c9994449a4e2c3386529d703dc8b", - "sha256:baec8148d6b8bd5cee1ae138ba658c71f5b03e0d69d5907703e3e1df96db5e41", - "sha256:bb06098d019766ca16fc915ecaa455c1f1cd594204e7f840cd6258237b5079a8", - "sha256:bc791ec3fd0c4309a753f95bb6c749ef0d8ea3aea91f07ee1cf06b7b02118f2f", - "sha256:bd28b31730f0e982ace8663d108e01199098432a30a4c410d06fe08fdb9e93f4", - "sha256:be4d9c2770044a59715eb57c1144dedea7c5d5ae80c68fb9959515037cde2008", - "sha256:c0c72d34e7de5604df0fde3644cc079feee5e55464967d10b24b1de268deceb9", - "sha256:c0e842112fe3f1a4ffcf64b06dc4c61a88441c2f02f373367f7b4c1aa9be2ad5", - "sha256:c15070ebf11b8b7fd1bfff7217e9324963c82dbdf6182ff7050519e350e7ad9f", - "sha256:c2000c54c395d9e5e44c99dc7c20a64dc371f777faf8bae4919ad3e99ce5253e", - "sha256:c30187840d36d0ba2893bc3271a36a517a717f9fd383a98e2697ee890a37c273", - "sha256:cb7cd68814308aade9d0c93c5bd2ade9f9441666f8ba5aa9c2d4b389cb5e2a45", - "sha256:cd805513198304026bd379d1d516afbf6c3c13f4382134a2c526b8b854da1c2e", - "sha256:d0bf89afcbcf4d1bb2652f6580e5e55a840fdf87384f6063c4a4f0c95e378656", - "sha256:d9137a876020661972ca6eec0766d81aef8a5627df628b664b234b73396e727e", - "sha256:dbd95e300367aa0827496fe75a1766d198d34385a58f97683fe6e07f89ca3e3c", - "sha256:dced27917823df984fe0c80a5c4ad75cf58df0fbfae890bc08004cd3888922a2", - "sha256:de0b4caa1c8a21394e8ce971997614a17648f94e1cd0640fbd6b4d14cab13a72", - "sha256:debb633f3f7856f95ad957d9b9c781f8e2c6303ef21724ec94bea2ce2fcbd056", - "sha256:e372d7dfd154009142631de2d316adad3cc1c36c32a38b16a4751ba78da2a397", - "sha256:ecd26be9f112c4f96718290c10f4caea6cc798459a3a76636b817a0ed7874e42", - "sha256:edc0202099ea1d82844316604e17d2b175044f9bcb6b398aab781eba957224bd", - "sha256:f194cce575e59ffe442c10a360182a986535fd90b57f7debfaa5c845c409ecc3", - "sha256:f5fb672c396d826ca16a022ac04c9dce74e00a1c344f6ad1a0fdc1ba1f332213", - "sha256:f6a02a3c7950cafaadcd46a226ad9e12fc9744652cc69f9e5534f98b47f3bbcf", - "sha256:fe81b35c33772e56f4b6cf62cf4aedc1762ef7162a31e6ac7fe5e40d0149eb67" + "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027", + "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087", + "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786", + "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8", + "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09", + "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185", + "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574", + "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e", + "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519", + "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898", + "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269", + "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3", + "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f", + "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6", + "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8", + "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a", + "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73", + "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc", + "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714", + "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2", + "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc", + "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce", + "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d", + "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e", + "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6", + "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269", + "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96", + "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d", + "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a", + "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4", + "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77", + "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d", + "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0", + "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed", + "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068", + "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac", + "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25", + "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8", + "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab", + "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26", + "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2", + "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db", + "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f", + "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5", + "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99", + "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c", + "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d", + "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811", + "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa", + "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a", + "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03", + "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b", + "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04", + "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c", + "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001", + "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458", + "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389", + "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99", + "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985", + "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537", + "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238", + "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f", + "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d", + "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796", + "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a", + "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143", + "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8", + "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c", + "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5", + "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5", + "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711", + "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4", + "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6", + "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c", + "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7", + "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4", + "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b", + "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae", + "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12", + "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c", + "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae", + "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8", + "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887", + "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b", + "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4", + "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f", + "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5", + "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33", + "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519", + "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561" ], "markers": "python_full_version >= '3.7.0'", - "version": "==3.3.1" + "version": "==3.3.2" }, "cryptography": { "hashes": [ - "sha256:004b6ccc95943f6a9ad3142cfabcc769d7ee38a3f60fb0dddbfb431f818c3a67", - "sha256:047c4603aeb4bbd8db2756e38f5b8bd7e94318c047cfe4efeb5d715e08b49311", - "sha256:0d9409894f495d465fe6fda92cb70e8323e9648af912d5b9141d616df40a87b8", - "sha256:23a25c09dfd0d9f28da2352503b23e086f8e78096b9fd585d1d14eca01613e13", - "sha256:2ed09183922d66c4ec5fdaa59b4d14e105c084dd0febd27452de8f6f74704143", - "sha256:35c00f637cd0b9d5b6c6bd11b6c3359194a8eba9c46d4e875a3660e3b400005f", - "sha256:37480760ae08065437e6573d14be973112c9e6dcaf5f11d00147ee74f37a3829", - "sha256:3b224890962a2d7b57cf5eeb16ccaafba6083f7b811829f00476309bce2fe0fd", - "sha256:5a0f09cefded00e648a127048119f77bc2b2ec61e736660b5789e638f43cc397", - "sha256:5b72205a360f3b6176485a333256b9bcd48700fc755fef51c8e7e67c4b63e3ac", - "sha256:7e53db173370dea832190870e975a1e09c86a879b613948f09eb49324218c14d", - "sha256:7febc3094125fc126a7f6fb1f420d0da639f3f32cb15c8ff0dc3997c4549f51a", - "sha256:80907d3faa55dc5434a16579952ac6da800935cd98d14dbd62f6f042c7f5e839", - "sha256:86defa8d248c3fa029da68ce61fe735432b047e32179883bdb1e79ed9bb8195e", - "sha256:8ac4f9ead4bbd0bc8ab2d318f97d85147167a488be0e08814a37eb2f439d5cf6", - "sha256:93530900d14c37a46ce3d6c9e6fd35dbe5f5601bf6b3a5c325c7bffc030344d9", - "sha256:9eeb77214afae972a00dee47382d2591abe77bdae166bda672fb1e24702a3860", - "sha256:b5f4dfe950ff0479f1f00eda09c18798d4f49b98f4e2006d644b3301682ebdca", - "sha256:c3391bd8e6de35f6f1140e50aaeb3e2b3d6a9012536ca23ab0d9c35ec18c8a91", - "sha256:c880eba5175f4307129784eca96f4e70b88e57aa3f680aeba3bab0e980b0f37d", - "sha256:cecfefa17042941f94ab54f769c8ce0fe14beff2694e9ac684176a2535bf9714", - "sha256:e40211b4923ba5a6dc9769eab704bdb3fbb58d56c5b336d30996c24fcf12aadb", - "sha256:efc8ad4e6fc4f1752ebfb58aefece8b4e3c4cae940b0994d43649bdfce8d0d4f" + "sha256:0c327cac00f082013c7c9fb6c46b7cc9fa3c288ca702c74773968173bda421bf", + "sha256:0d2a6a598847c46e3e321a7aef8af1436f11c27f1254933746304ff014664d84", + "sha256:227ec057cd32a41c6651701abc0328135e472ed450f47c2766f23267b792a88e", + "sha256:22892cc830d8b2c89ea60148227631bb96a7da0c1b722f2aac8824b1b7c0b6b8", + "sha256:392cb88b597247177172e02da6b7a63deeff1937fa6fec3bbf902ebd75d97ec7", + "sha256:3be3ca726e1572517d2bef99a818378bbcf7d7799d5372a46c79c29eb8d166c1", + "sha256:573eb7128cbca75f9157dcde974781209463ce56b5804983e11a1c462f0f4e88", + "sha256:580afc7b7216deeb87a098ef0674d6ee34ab55993140838b14c9b83312b37b86", + "sha256:5a70187954ba7292c7876734183e810b728b4f3965fbe571421cb2434d279179", + "sha256:73801ac9736741f220e20435f84ecec75ed70eda90f781a148f1bad546963d81", + "sha256:7d208c21e47940369accfc9e85f0de7693d9a5d843c2509b3846b2db170dfd20", + "sha256:8254962e6ba1f4d2090c44daf50a547cd5f0bf446dc658a8e5f8156cae0d8548", + "sha256:88417bff20162f635f24f849ab182b092697922088b477a7abd6664ddd82291d", + "sha256:a48e74dad1fb349f3dc1d449ed88e0017d792997a7ad2ec9587ed17405667e6d", + "sha256:b948e09fe5fb18517d99994184854ebd50b57248736fd4c720ad540560174ec5", + "sha256:c707f7afd813478e2019ae32a7c49cd932dd60ab2d2a93e796f68236b7e1fbf1", + "sha256:d38e6031e113b7421db1de0c1b1f7739564a88f1684c6b89234fbf6c11b75147", + "sha256:d3977f0e276f6f5bf245c403156673db103283266601405376f075c849a0b936", + "sha256:da6a0ff8f1016ccc7477e6339e1d50ce5f59b88905585f77193ebd5068f1e797", + "sha256:e270c04f4d9b5671ebcc792b3ba5d4488bf7c42c3c241a3748e2599776f29696", + "sha256:e886098619d3815e0ad5790c973afeee2c0e6e04b4da90b88e6bd06e2a0b1b72", + "sha256:ec3b055ff8f1dce8e6ef28f626e0972981475173d7973d63f271b29c8a2897da", + "sha256:fba1e91467c65fe64a82c689dc6cf58151158993b13eb7a7f3f4b7f395636723" ], "markers": "python_version >= '3.7'", - "version": "==41.0.4" + "version": "==41.0.5" }, "defusedxml": { "hashes": [ @@ -225,11 +233,11 @@ }, "django": { "hashes": [ - "sha256:08f41f468b63335aea0d904c5729e0250300f6a1907bf293a65499496cdbc68f", - "sha256:a64d2487cdb00ad7461434320ccc38e60af9c404773a2f95ab0093b4453a3215" + "sha256:8e0f1c2c2786b5c0e39fe1afce24c926040fad47c8ea8ad30aaf1188df29fc41", + "sha256:e1d37c51ad26186de355cbcec16613ebdabfa9689bbade9c538835205a8abbe9" ], "index": "pypi", - "version": "==4.2.6" + "version": "==4.2.7" }, "django-cors-headers": { "hashes": [ @@ -239,6 +247,13 @@ "index": "pypi", "version": "==4.3.0" }, + "django-extra-fields": { + "hashes": [ + "sha256:2334e914b346c0a19a7765bf0ff7895c46cf35d5f40315a68418f44b7ddbb33b" + ], + "index": "pypi", + "version": "==3.0.2" + }, "django-templated-mail": { "hashes": [ "sha256:8db807effebb42a532622e2d142dfd453dafcd0d7794c4c3332acb90656315f9", @@ -264,11 +279,29 @@ }, "djoser": { "hashes": [ - "sha256:4aa48502df870c8b5f07109ad4a749cc881c37bb5efa85cf5462ea695a0dca8c", - "sha256:7b24718cdc51b4294b0abcf6bf0ead11aa3ca83652e351dfb04b7b8b15afa3b0" + "sha256:9deb831a1c8781ceff325699e1407b4e1be8b4588e87071621d88ba31c09349f", + "sha256:efb91ad61e4d5b8d664db029b5947df9d34078289ef2680a1ab665e047144b74" ], "index": "pypi", - "version": "==2.2.0" + "version": "==2.2.2" + }, + "drf-spectacular": { + "extras": [ + "sidecar" + ], + "hashes": [ + "sha256:aee55330a774ba8a9cbdb125714d1c9ee05a8aafd3ce3be8bfd26527649aeb44", + "sha256:c0002a820b11771fdbf37853deb371947caf0159d1afeeffe7598e964bc1db94" + ], + "index": "pypi", + "version": "==0.26.5" + }, + "drf-spectacular-sidecar": { + "hashes": [ + "sha256:3d042a6772512f4d238f0385d3430acf5f669f595fd0be2641fe6bbfb4c7b376", + "sha256:546a83c173589715e530fad211af60cbcda2db54eb9e0935d44251639332af6d" + ], + "version": "==2023.10.1" }, "idna": { "hashes": [ @@ -278,6 +311,30 @@ "markers": "python_version >= '3.5'", "version": "==3.4" }, + "inflection": { + "hashes": [ + "sha256:1a29730d366e996aaacffb2f1f1cb9593dc38e2ddd30c91250c6dde09ea9b417", + "sha256:f38b2b640938a4f35ade69ac3d053042959b62a0f1076a5bbaa1b9526605a8a2" + ], + "markers": "python_version >= '3.5'", + "version": "==0.5.1" + }, + "jsonschema": { + "hashes": [ + "sha256:c9ff4d7447eed9592c23a12ccee508baf0dd0d59650615e847feb6cdca74f392", + "sha256:eee9e502c788e89cb166d4d37f43084e3b64ab405c795c03d343a4dbc2c810fc" + ], + "markers": "python_version >= '3.8'", + "version": "==4.19.2" + }, + "jsonschema-specifications": { + "hashes": [ + "sha256:05adf340b659828a004220a9613be00fa3f223f2b82002e273dee62fd50524b1", + "sha256:c91a50404e88a1f6ba40636778e2ee08f6e24c5613fe4c53ac24578a5a7f72bb" + ], + "markers": "python_version >= '3.8'", + "version": "==2023.7.1" + }, "oauthlib": { "hashes": [ "sha256:8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca", @@ -286,6 +343,85 @@ "markers": "python_version >= '3.6'", "version": "==3.2.2" }, + "pillow": { + "hashes": [ + "sha256:00f438bb841382b15d7deb9a05cc946ee0f2c352653c7aa659e75e592f6fa17d", + "sha256:0248f86b3ea061e67817c47ecbe82c23f9dd5d5226200eb9090b3873d3ca32de", + "sha256:04f6f6149f266a100374ca3cc368b67fb27c4af9f1cc8cb6306d849dcdf12616", + "sha256:062a1610e3bc258bff2328ec43f34244fcec972ee0717200cb1425214fe5b839", + "sha256:0a026c188be3b443916179f5d04548092e253beb0c3e2ee0a4e2cdad72f66099", + "sha256:0f7c276c05a9767e877a0b4c5050c8bee6a6d960d7f0c11ebda6b99746068c2a", + "sha256:1a8413794b4ad9719346cd9306118450b7b00d9a15846451549314a58ac42219", + "sha256:1ab05f3db77e98f93964697c8efc49c7954b08dd61cff526b7f2531a22410106", + "sha256:1c3ac5423c8c1da5928aa12c6e258921956757d976405e9467c5f39d1d577a4b", + "sha256:1c41d960babf951e01a49c9746f92c5a7e0d939d1652d7ba30f6b3090f27e412", + "sha256:1fafabe50a6977ac70dfe829b2d5735fd54e190ab55259ec8aea4aaea412fa0b", + "sha256:1fb29c07478e6c06a46b867e43b0bcdb241b44cc52be9bc25ce5944eed4648e7", + "sha256:24fadc71218ad2b8ffe437b54876c9382b4a29e030a05a9879f615091f42ffc2", + "sha256:2cdc65a46e74514ce742c2013cd4a2d12e8553e3a2563c64879f7c7e4d28bce7", + "sha256:2ef6721c97894a7aa77723740a09547197533146fba8355e86d6d9a4a1056b14", + "sha256:3b834f4b16173e5b92ab6566f0473bfb09f939ba14b23b8da1f54fa63e4b623f", + "sha256:3d929a19f5469b3f4df33a3df2983db070ebb2088a1e145e18facbc28cae5b27", + "sha256:41f67248d92a5e0a2076d3517d8d4b1e41a97e2df10eb8f93106c89107f38b57", + "sha256:47e5bf85b80abc03be7455c95b6d6e4896a62f6541c1f2ce77a7d2bb832af262", + "sha256:4d0152565c6aa6ebbfb1e5d8624140a440f2b99bf7afaafbdbf6430426497f28", + "sha256:50d08cd0a2ecd2a8657bd3d82c71efd5a58edb04d9308185d66c3a5a5bed9610", + "sha256:61f1a9d247317fa08a308daaa8ee7b3f760ab1809ca2da14ecc88ae4257d6172", + "sha256:6932a7652464746fcb484f7fc3618e6503d2066d853f68a4bd97193a3996e273", + "sha256:7a7e3daa202beb61821c06d2517428e8e7c1aab08943e92ec9e5755c2fc9ba5e", + "sha256:7dbaa3c7de82ef37e7708521be41db5565004258ca76945ad74a8e998c30af8d", + "sha256:7df5608bc38bd37ef585ae9c38c9cd46d7c81498f086915b0f97255ea60c2818", + "sha256:806abdd8249ba3953c33742506fe414880bad78ac25cc9a9b1c6ae97bedd573f", + "sha256:883f216eac8712b83a63f41b76ddfb7b2afab1b74abbb413c5df6680f071a6b9", + "sha256:912e3812a1dbbc834da2b32299b124b5ddcb664ed354916fd1ed6f193f0e2d01", + "sha256:937bdc5a7f5343d1c97dc98149a0be7eb9704e937fe3dc7140e229ae4fc572a7", + "sha256:9882a7451c680c12f232a422730f986a1fcd808da0fd428f08b671237237d651", + "sha256:9a92109192b360634a4489c0c756364c0c3a2992906752165ecb50544c251312", + "sha256:9d7bc666bd8c5a4225e7ac71f2f9d12466ec555e89092728ea0f5c0c2422ea80", + "sha256:a5f63b5a68daedc54c7c3464508d8c12075e56dcfbd42f8c1bf40169061ae666", + "sha256:a646e48de237d860c36e0db37ecaecaa3619e6f3e9d5319e527ccbc8151df061", + "sha256:a89b8312d51715b510a4fe9fc13686283f376cfd5abca8cd1c65e4c76e21081b", + "sha256:a92386125e9ee90381c3369f57a2a50fa9e6aa8b1cf1d9c4b200d41a7dd8e992", + "sha256:ae88931f93214777c7a3aa0a8f92a683f83ecde27f65a45f95f22d289a69e593", + "sha256:afc8eef765d948543a4775f00b7b8c079b3321d6b675dde0d02afa2ee23000b4", + "sha256:b0eb01ca85b2361b09480784a7931fc648ed8b7836f01fb9241141b968feb1db", + "sha256:b1c25762197144e211efb5f4e8ad656f36c8d214d390585d1d21281f46d556ba", + "sha256:b4005fee46ed9be0b8fb42be0c20e79411533d1fd58edabebc0dd24626882cfd", + "sha256:b920e4d028f6442bea9a75b7491c063f0b9a3972520731ed26c83e254302eb1e", + "sha256:baada14941c83079bf84c037e2d8b7506ce201e92e3d2fa0d1303507a8538212", + "sha256:bb40c011447712d2e19cc261c82655f75f32cb724788df315ed992a4d65696bb", + "sha256:c0949b55eb607898e28eaccb525ab104b2d86542a85c74baf3a6dc24002edec2", + "sha256:c9aeea7b63edb7884b031a35305629a7593272b54f429a9869a4f63a1bf04c34", + "sha256:cfe96560c6ce2f4c07d6647af2d0f3c54cc33289894ebd88cfbb3bcd5391e256", + "sha256:d27b5997bdd2eb9fb199982bb7eb6164db0426904020dc38c10203187ae2ff2f", + "sha256:d921bc90b1defa55c9917ca6b6b71430e4286fc9e44c55ead78ca1a9f9eba5f2", + "sha256:e6bf8de6c36ed96c86ea3b6e1d5273c53f46ef518a062464cd7ef5dd2cf92e38", + "sha256:eaed6977fa73408b7b8a24e8b14e59e1668cfc0f4c40193ea7ced8e210adf996", + "sha256:fa1d323703cfdac2036af05191b969b910d8f115cf53093125e4058f62012c9a", + "sha256:fe1e26e1ffc38be097f0ba1d0d07fcade2bcfd1d023cda5b29935ae8052bd793" + ], + "index": "pypi", + "version": "==10.1.0" + }, + "psycopg2": { + "hashes": [ + "sha256:121081ea2e76729acfb0673ff33755e8703d45e926e416cb59bae3a86c6a4981", + "sha256:38a8dcc6856f569068b47de286b472b7c473ac7977243593a288ebce0dc89516", + "sha256:426f9f29bde126913a20a96ff8ce7d73fd8a216cfb323b1f04da402d452853c3", + "sha256:5e0d98cade4f0e0304d7d6f25bbfbc5bd186e07b38eac65379309c4ca3193efa", + "sha256:7e2dacf8b009a1c1e843b5213a87f7c544b2b042476ed7755be813eaf4e8347a", + "sha256:a7653d00b732afb6fc597e29c50ad28087dcb4fbfb28e86092277a559ae4e693", + "sha256:ade01303ccf7ae12c356a5e10911c9e1c51136003a9a1d92f7aa9d010fb98372", + "sha256:bac58c024c9922c23550af2a581998624d6e02350f4ae9c5f0bc642c633a2d5e", + "sha256:c92811b2d4c9b6ea0285942b2e7cac98a59e166d59c588fe5cfe1eda58e72d59", + "sha256:d1454bde93fb1e224166811694d600e746430c006fbb031ea06ecc2ea41bf156", + "sha256:d735786acc7dd25815e89cc4ad529a43af779db2e25aa7c626de864127e5a024", + "sha256:de80739447af31525feddeb8effd640782cf5998e1a4e9192ebdf829717e3913", + "sha256:ff432630e510709564c01dafdbe996cb552e0b9f3f065eb89bdce5bd31fabf4c" + ], + "index": "pypi", + "version": "==2.9.9" + }, "pycparser": { "hashes": [ "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9", @@ -323,6 +459,70 @@ ], "version": "==2023.3.post1" }, + "pyyaml": { + "hashes": [ + "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5", + "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc", + "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df", + "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741", + "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206", + "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27", + "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595", + "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62", + "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98", + "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696", + "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290", + "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9", + "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d", + "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6", + "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867", + "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47", + "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486", + "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6", + "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3", + "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007", + "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938", + "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0", + "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c", + "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735", + "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d", + "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28", + "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4", + "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba", + "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8", + "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5", + "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd", + "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3", + "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0", + "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515", + "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c", + "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c", + "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924", + "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34", + "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43", + "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859", + "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673", + "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54", + "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a", + "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b", + "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab", + "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa", + "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c", + "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585", + "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d", + "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f" + ], + "markers": "python_version >= '3.6'", + "version": "==6.0.1" + }, + "referencing": { + "hashes": [ + "sha256:449b6669b6121a9e96a7f9e410b245d471e8d48964c67113ce9afe50c8dd7bdf", + "sha256:794ad8003c65938edcdbc027f1933215e0d0ccc0291e3ce20a4d87432b59efc0" + ], + "markers": "python_version >= '3.8'", + "version": "==0.30.2" + }, "requests": { "hashes": [ "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f", @@ -339,6 +539,111 @@ "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", "version": "==1.3.1" }, + "rpds-py": { + "hashes": [ + "sha256:0525847f83f506aa1e28eb2057b696fe38217e12931c8b1b02198cfe6975e142", + "sha256:05942656cb2cb4989cd50ced52df16be94d344eae5097e8583966a1d27da73a5", + "sha256:0831d3ecdea22e4559cc1793f22e77067c9d8c451d55ae6a75bf1d116a8e7f42", + "sha256:0853da3d5e9bc6a07b2486054a410b7b03f34046c123c6561b535bb48cc509e1", + "sha256:08e6e7ff286254016b945e1ab632ee843e43d45e40683b66dd12b73791366dd1", + "sha256:0a38612d07a36138507d69646c470aedbfe2b75b43a4643f7bd8e51e52779624", + "sha256:0bedd91ae1dd142a4dc15970ed2c729ff6c73f33a40fa84ed0cdbf55de87c777", + "sha256:0c5441b7626c29dbd54a3f6f3713ec8e956b009f419ffdaaa3c80eaf98ddb523", + "sha256:0e9e976e0dbed4f51c56db10831c9623d0fd67aac02853fe5476262e5a22acb7", + "sha256:0fadfdda275c838cba5102c7f90a20f2abd7727bf8f4a2b654a5b617529c5c18", + "sha256:1096ca0bf2d3426cbe79d4ccc91dc5aaa73629b08ea2d8467375fad8447ce11a", + "sha256:171d9a159f1b2f42a42a64a985e4ba46fc7268c78299272ceba970743a67ee50", + "sha256:188912b22b6c8225f4c4ffa020a2baa6ad8fabb3c141a12dbe6edbb34e7f1425", + "sha256:1b4cf9ab9a0ae0cb122685209806d3f1dcb63b9fccdf1424fb42a129dc8c2faa", + "sha256:1e04581c6117ad9479b6cfae313e212fe0dfa226ac727755f0d539cd54792963", + "sha256:1fa73ed22c40a1bec98d7c93b5659cd35abcfa5a0a95ce876b91adbda170537c", + "sha256:2124f9e645a94ab7c853bc0a3644e0ca8ffbe5bb2d72db49aef8f9ec1c285733", + "sha256:240687b5be0f91fbde4936a329c9b7589d9259742766f74de575e1b2046575e4", + "sha256:25740fb56e8bd37692ed380e15ec734be44d7c71974d8993f452b4527814601e", + "sha256:27ccc93c7457ef890b0dd31564d2a05e1aca330623c942b7e818e9e7c2669ee4", + "sha256:281c8b219d4f4b3581b918b816764098d04964915b2f272d1476654143801aa2", + "sha256:2d34a5450a402b00d20aeb7632489ffa2556ca7b26f4a63c35f6fccae1977427", + "sha256:301bd744a1adaa2f6a5e06c98f1ac2b6f8dc31a5c23b838f862d65e32fca0d4b", + "sha256:30e5ce9f501fb1f970e4a59098028cf20676dee64fc496d55c33e04bbbee097d", + "sha256:33ab498f9ac30598b6406e2be1b45fd231195b83d948ebd4bd77f337cb6a2bff", + "sha256:35585a8cb5917161f42c2104567bb83a1d96194095fc54a543113ed5df9fa436", + "sha256:389c0e38358fdc4e38e9995e7291269a3aead7acfcf8942010ee7bc5baee091c", + "sha256:3acadbab8b59f63b87b518e09c4c64b142e7286b9ca7a208107d6f9f4c393c5c", + "sha256:3b7a64d43e2a1fa2dd46b678e00cabd9a49ebb123b339ce799204c44a593ae1c", + "sha256:3c8c0226c71bd0ce9892eaf6afa77ae8f43a3d9313124a03df0b389c01f832de", + "sha256:429349a510da82c85431f0f3e66212d83efe9fd2850f50f339341b6532c62fe4", + "sha256:466030a42724780794dea71eb32db83cc51214d66ab3fb3156edd88b9c8f0d78", + "sha256:47aeceb4363851d17f63069318ba5721ae695d9da55d599b4d6fb31508595278", + "sha256:48aa98987d54a46e13e6954880056c204700c65616af4395d1f0639eba11764b", + "sha256:4b2416ed743ec5debcf61e1242e012652a4348de14ecc7df3512da072b074440", + "sha256:4d0a675a7acbbc16179188d8c6d0afb8628604fc1241faf41007255957335a0b", + "sha256:4eb74d44776b0fb0782560ea84d986dffec8ddd94947f383eba2284b0f32e35e", + "sha256:4f8a1d990dc198a6c68ec3d9a637ba1ce489b38cbfb65440a27901afbc5df575", + "sha256:513ccbf7420c30e283c25c82d5a8f439d625a838d3ba69e79a110c260c46813f", + "sha256:5210a0018c7e09c75fa788648617ebba861ae242944111d3079034e14498223f", + "sha256:54cdfcda59251b9c2f87a05d038c2ae02121219a04d4a1e6fc345794295bdc07", + "sha256:56dd500411d03c5e9927a1eb55621e906837a83b02350a9dc401247d0353717c", + "sha256:57ec6baec231bb19bb5fd5fc7bae21231860a1605174b11585660236627e390e", + "sha256:5f1519b080d8ce0a814f17ad9fb49fb3a1d4d7ce5891f5c85fc38631ca3a8dc4", + "sha256:6174d6ad6b58a6bcf67afbbf1723420a53d06c4b89f4c50763d6fa0a6ac9afd2", + "sha256:68172622a5a57deb079a2c78511c40f91193548e8ab342c31e8cb0764d362459", + "sha256:6915fc9fa6b3ec3569566832e1bb03bd801c12cea030200e68663b9a87974e76", + "sha256:6b75b912a0baa033350367a8a07a8b2d44fd5b90c890bfbd063a8a5f945f644b", + "sha256:6f5dcb658d597410bb7c967c1d24eaf9377b0d621358cbe9d2ff804e5dd12e81", + "sha256:6f8d7fe73d1816eeb5378409adc658f9525ecbfaf9e1ede1e2d67a338b0c7348", + "sha256:7036316cc26b93e401cedd781a579be606dad174829e6ad9e9c5a0da6e036f80", + "sha256:7188ddc1a8887194f984fa4110d5a3d5b9b5cd35f6bafdff1b649049cbc0ce29", + "sha256:761531076df51309075133a6bc1db02d98ec7f66e22b064b1d513bc909f29743", + "sha256:7979d90ee2190d000129598c2b0c82f13053dba432b94e45e68253b09bb1f0f6", + "sha256:8015835494b21aa7abd3b43fdea0614ee35ef6b03db7ecba9beb58eadf01c24f", + "sha256:81c4d1a3a564775c44732b94135d06e33417e829ff25226c164664f4a1046213", + "sha256:81cf9d306c04df1b45971c13167dc3bad625808aa01281d55f3cf852dde0e206", + "sha256:88857060b690a57d2ea8569bca58758143c8faa4639fb17d745ce60ff84c867e", + "sha256:8c567c664fc2f44130a20edac73e0a867f8e012bf7370276f15c6adc3586c37c", + "sha256:91bd2b7cf0f4d252eec8b7046fa6a43cee17e8acdfc00eaa8b3dbf2f9a59d061", + "sha256:9620650c364c01ed5b497dcae7c3d4b948daeae6e1883ae185fef1c927b6b534", + "sha256:9b007c2444705a2dc4a525964fd4dd28c3320b19b3410da6517cab28716f27d3", + "sha256:9bf9acce44e967a5103fcd820fc7580c7b0ab8583eec4e2051aec560f7b31a63", + "sha256:a239303acb0315091d54c7ff36712dba24554993b9a93941cf301391d8a997ee", + "sha256:a2baa6be130e8a00b6cbb9f18a33611ec150b4537f8563bddadb54c1b74b8193", + "sha256:a54917b7e9cd3a67e429a630e237a90b096e0ba18897bfb99ee8bd1068a5fea0", + "sha256:a689e1ded7137552bea36305a7a16ad2b40be511740b80748d3140614993db98", + "sha256:a952ae3eb460c6712388ac2ec706d24b0e651b9396d90c9a9e0a69eb27737fdc", + "sha256:aa32205358a76bf578854bf31698a86dc8b2cb591fd1d79a833283f4a403f04b", + "sha256:b2287c09482949e0ca0c0eb68b2aca6cf57f8af8c6dfd29dcd3bc45f17b57978", + "sha256:b6b0e17d39d21698185097652c611f9cf30f7c56ccec189789920e3e7f1cee56", + "sha256:b710bf7e7ae61957d5c4026b486be593ed3ec3dca3e5be15e0f6d8cf5d0a4990", + "sha256:b8e11715178f3608874508f08e990d3771e0b8c66c73eb4e183038d600a9b274", + "sha256:b92aafcfab3d41580d54aca35a8057341f1cfc7c9af9e8bdfc652f83a20ced31", + "sha256:bec29b801b4adbf388314c0d050e851d53762ab424af22657021ce4b6eb41543", + "sha256:c694bee70ece3b232df4678448fdda245fd3b1bb4ba481fb6cd20e13bb784c46", + "sha256:c6b52b7028b547866c2413f614ee306c2d4eafdd444b1ff656bf3295bf1484aa", + "sha256:cb41ad20064e18a900dd427d7cf41cfaec83bcd1184001f3d91a1f76b3fcea4e", + "sha256:cd316dbcc74c76266ba94eb021b0cc090b97cca122f50bd7a845f587ff4bf03f", + "sha256:ced40cdbb6dd47a032725a038896cceae9ce267d340f59508b23537f05455431", + "sha256:d1c562a9bb72244fa767d1c1ab55ca1d92dd5f7c4d77878fee5483a22ffac808", + "sha256:d389ff1e95b6e46ebedccf7fd1fadd10559add595ac6a7c2ea730268325f832c", + "sha256:d56b1cd606ba4cedd64bb43479d56580e147c6ef3f5d1c5e64203a1adab784a2", + "sha256:d72a4315514e5a0b9837a086cb433b004eea630afb0cc129de76d77654a9606f", + "sha256:d9e7f29c00577aff6b318681e730a519b235af292732a149337f6aaa4d1c5e31", + "sha256:dbc25baa6abb205766fb8606f8263b02c3503a55957fcb4576a6bb0a59d37d10", + "sha256:e57919c32ee295a2fca458bb73e4b20b05c115627f96f95a10f9f5acbd61172d", + "sha256:e5bbe011a2cea9060fef1bb3d668a2fd8432b8888e6d92e74c9c794d3c101595", + "sha256:e6aea5c0eb5b0faf52c7b5c4a47c8bb64437173be97227c819ffa31801fa4e34", + "sha256:e888be685fa42d8b8a3d3911d5604d14db87538aa7d0b29b1a7ea80d354c732d", + "sha256:eebaf8c76c39604d52852366249ab807fe6f7a3ffb0dd5484b9944917244cdbe", + "sha256:efbe0b5e0fd078ed7b005faa0170da4f72666360f66f0bb2d7f73526ecfd99f9", + "sha256:efddca2d02254a52078c35cadad34762adbae3ff01c6b0c7787b59d038b63e0d", + "sha256:f05450fa1cd7c525c0b9d1a7916e595d3041ac0afbed2ff6926e5afb6a781b7f", + "sha256:f12d69d568f5647ec503b64932874dade5a20255736c89936bf690951a5e79f5", + "sha256:f45321224144c25a62052035ce96cbcf264667bcb0d81823b1bbc22c4addd194", + "sha256:f62581d7e884dd01ee1707b7c21148f61f2febb7de092ae2f108743fcbef5985", + "sha256:f8832a4f83d4782a8f5a7b831c47e8ffe164e43c2c148c8160ed9a6d630bc02a", + "sha256:fa35ad36440aaf1ac8332b4a4a433d4acd28f1613f0d480995f5cfd3580e90b7" + ], + "markers": "python_version >= '3.8'", + "version": "==0.12.0" + }, "social-auth-app-django": { "hashes": [ "sha256:09ac02a063cb313eed5e9ef2f9ac4477c8bf5bbd685925ff3aba43f9072f1bbb", @@ -349,11 +654,11 @@ }, "social-auth-core": { "hashes": [ - "sha256:9791d7c7aee2ac8517fe7a2ea2f942a8a5492b3a4ccb44a9b0dacc87d182f2aa", - "sha256:ea7a19c46b791b767e95f467881b53c5fd0d1efb40048d9ed3dbc46daa05c954" + "sha256:3d4154f45c0bacffe54ccf4361bce7e66cf5f5cd1bb0ebb7507ad09a1b07d9d9", + "sha256:f4ae5d8e503a401f319498bcad59fd1f6c473517eeae89c22299250f63c33365" ], - "markers": "python_version >= '3.6'", - "version": "==4.4.2" + "markers": "python_version >= '3.8'", + "version": "==4.5.0" }, "sqlparse": { "hashes": [ @@ -371,6 +676,14 @@ "markers": "sys_platform == 'win32'", "version": "==2023.3" }, + "uritemplate": { + "hashes": [ + "sha256:4346edfc5c3b79f694bccd6d6099a322bbeb628dbf2cd86eea55a456ce5124f0", + "sha256:830c08b8d99bdd312ea4ead05994a38e8936266f84b9a7878232db50b044e02e" + ], + "markers": "python_version >= '3.6'", + "version": "==4.1.1" + }, "urllib3": { "hashes": [ "sha256:c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84", diff --git a/equipment_tracker/accounts/__init__.py b/equipment_tracker/accounts/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/equipment_tracker/accounts/admin.py b/equipment_tracker/accounts/admin.py new file mode 100644 index 0000000..81a42c3 --- /dev/null +++ b/equipment_tracker/accounts/admin.py @@ -0,0 +1,11 @@ +from django import forms +from django.contrib import admin +from django.contrib.auth.admin import UserAdmin +from .models import CustomUser + + +class CustomUserAdmin(UserAdmin): + model = CustomUser + + +admin.site.register(CustomUser, CustomUserAdmin) diff --git a/equipment_tracker/accounts/apps.py b/equipment_tracker/accounts/apps.py new file mode 100644 index 0000000..3e3c765 --- /dev/null +++ b/equipment_tracker/accounts/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class AccountsConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'accounts' diff --git a/equipment_tracker/accounts/migrations/0001_initial.py b/equipment_tracker/accounts/migrations/0001_initial.py new file mode 100644 index 0000000..4e58eae --- /dev/null +++ b/equipment_tracker/accounts/migrations/0001_initial.py @@ -0,0 +1,46 @@ +# Generated by Django 4.2.7 on 2023-11-09 11:42 + +import accounts.models +import django.contrib.auth.models +import django.contrib.auth.validators +from django.db import migrations, models +import django.utils.timezone + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('auth', '0012_alter_user_first_name_max_length'), + ] + + operations = [ + migrations.CreateModel( + name='CustomUser', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('password', models.CharField(max_length=128, verbose_name='password')), + ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), + ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), + ('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username')), + ('email', models.EmailField(blank=True, max_length=254, verbose_name='email address')), + ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')), + ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')), + ('first_name', models.CharField(max_length=100)), + ('last_name', models.CharField(max_length=100)), + ('is_active', models.BooleanField(default=False)), + ('avatar', models.ImageField(null=True, upload_to=accounts.models.CustomUser._get_upload_to)), + ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.group', verbose_name='groups')), + ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.permission', verbose_name='user permissions')), + ], + options={ + 'verbose_name': 'user', + 'verbose_name_plural': 'users', + 'abstract': False, + }, + managers=[ + ('objects', django.contrib.auth.models.UserManager()), + ], + ), + ] diff --git a/equipment_tracker/accounts/migrations/__init__.py b/equipment_tracker/accounts/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/equipment_tracker/accounts/models.py b/equipment_tracker/accounts/models.py new file mode 100644 index 0000000..cf14fa9 --- /dev/null +++ b/equipment_tracker/accounts/models.py @@ -0,0 +1,82 @@ +from django.db import models +from django.contrib.auth.models import AbstractUser +from django.db import models +from django.db.models.signals import post_migrate +from django.dispatch import receiver +import os +from uuid import uuid4 + + +class CustomUser(AbstractUser): + # Function for avatar uploads + def _get_upload_to(instance, filename): + base_filename, file_extension = os.path.splitext(filename) + # Get the student ID number + ext = base_filename.split('.')[-1] + filename = '{}.{}'.format(uuid4().hex, ext) + + student_id = str(instance.student_id_number) + new_filename = f"{student_id}_{filename}_{file_extension}" + return os.path.join('avatars', new_filename) + + # Delete old avatar file if new one is uploaded + def save(self, *args, **kwargs): + try: + # is the object in the database yet? + this = CustomUser.objects.get(id=self.id) + if this.avatar != self.avatar: + this.avatar.delete(save=False) + except: + pass # when new photo then we do nothing, normal case + super(CustomUser, self).save(*args, **kwargs) + + first_name = models.CharField(max_length=100) + last_name = models.CharField(max_length=100) + # Email inherited from base user class + # Username inherited from base user class + # Password inherited from base user class + # is_admin inherited from base user class + is_active = models.BooleanField(default=False) + avatar = models.ImageField(upload_to=_get_upload_to, null=True) + + @property + def full_name(self): + return f"{self.first_name} {self.last_name}" + pass + + +@receiver(post_migrate) +def create_superuser(sender, **kwargs): + if sender.name == 'accounts': + User = CustomUser + username = os.getenv('DJANGO_ADMIN_USERNAME') + email = os.getenv('DJANGO_ADMIN_EMAIL') + password = os.getenv('DJANGO_ADMIN_PASSWORD') + first_name = 'Admin' + last_name = 'Admin' + + if not User.objects.filter(username=username).exists(): + # Create the superuser with is_active set to False + superuser = User.objects.create_superuser( + username=username, email=email, password=password, first_name=first_name, last_name=last_name) + + # Activate the superuser + superuser.is_active = True + print('Created admin account') + superuser.save() + + username = 'usertest1' + email = os.getenv('DJANGO_ADMIN_EMAIL') + password = os.getenv('DJANGO_ADMIN_PASSWORD') + first_name = 'Test' + last_name = 'User' + + if not User.objects.filter(username=username).exists(): + # Create the superuser with is_active set to False + user = User.objects.create_user( + username=username, email=email, password=password, first_name=first_name, last_name=last_name) + + # Activate the user + user.is_active = True + print('Created debug user account') + user.save() diff --git a/equipment_tracker/accounts/serializers.py b/equipment_tracker/accounts/serializers.py new file mode 100644 index 0000000..f862d18 --- /dev/null +++ b/equipment_tracker/accounts/serializers.py @@ -0,0 +1,45 @@ +from djoser.serializers import UserCreateSerializer as BaseUserRegistrationSerializer +from djoser.serializers import UserSerializer as BaseUserSerializer +from django.core import exceptions as django_exceptions +from rest_framework import serializers +from accounts.models import CustomUser +from rest_framework.settings import api_settings +from django.contrib.auth.password_validation import validate_password +from django.utils.encoding import smart_str +from drf_spectacular.utils import extend_schema_field +from drf_spectacular.types import OpenApiTypes +from drf_extra_fields.fields import Base64ImageField + +# There can be multiple subject instances with the same name, only differing in course, year level, and semester. We filter them here + + +class CustomUserSerializer(BaseUserSerializer): + avatar = Base64ImageField() + + class Meta(BaseUserSerializer.Meta): + model = CustomUser + fields = ('username', 'email', 'avatar', 'first_name', 'last_name',) + + +class UserRegistrationSerializer(serializers.ModelSerializer): + email = serializers.EmailField(required=True) + password = serializers.CharField( + write_only=True, style={'input_type': 'password', 'placeholder': 'Password'}) + + class Meta: + model = CustomUser # Use your custom user model here + fields = ('username', 'email', 'password', 'avatar', + 'first_name', 'last_name') + + def validate(self, attrs): + user = self.Meta.model(**attrs) + password = attrs.get("password") + try: + validate_password(password, user) + except django_exceptions.ValidationError as e: + serializer_error = serializers.as_serializer_error(e) + raise serializers.ValidationError( + {"password": serializer_error[api_settings.NON_FIELD_ERRORS_KEY]} + ) + + return super().validate(attrs) diff --git a/equipment_tracker/accounts/tests.py b/equipment_tracker/accounts/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/equipment_tracker/accounts/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/equipment_tracker/accounts/urls.py b/equipment_tracker/accounts/urls.py new file mode 100644 index 0000000..22c121e --- /dev/null +++ b/equipment_tracker/accounts/urls.py @@ -0,0 +1,7 @@ +from django.contrib import admin +from django.urls import path, include + +urlpatterns = [ + path('', include('djoser.urls')), + path('', include('djoser.urls.jwt')), +] diff --git a/equipment_tracker/accounts/views.py b/equipment_tracker/accounts/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/equipment_tracker/accounts/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. diff --git a/equipment_tracker/api/urls.py b/equipment_tracker/api/urls.py index 130dc54..14fb12e 100644 --- a/equipment_tracker/api/urls.py +++ b/equipment_tracker/api/urls.py @@ -1,5 +1,5 @@ from django.urls import path, include urlpatterns = [ - path('accounts/', include('djoser.urls')) + path('accounts/', include('accounts.urls')) ] diff --git a/equipment_tracker/config/settings.py b/equipment_tracker/config/settings.py index 7954525..0ba6849 100644 --- a/equipment_tracker/config/settings.py +++ b/equipment_tracker/config/settings.py @@ -65,7 +65,8 @@ INSTALLED_APPS = [ 'rest_framework', 'rest_framework_simplejwt', 'djoser', - 'corsheaders' + 'corsheaders', + 'accounts' ] MIDDLEWARE = [ @@ -139,11 +140,21 @@ DATABASES = { } } +AUTH_USER_MODEL = 'accounts.CustomUser' + DJOSER = { 'SEND_ACTIVATION_EMAIL': True, 'SEND_CONFIRMATION_EMAIL': True, + 'EMAIL': { + 'activation': 'config.email.ActivationEmail' + }, 'ACTIVATION_URL': 'activation/{uid}/{token}', 'USER_AUTHENTICATION_RULES': ['djoser.authentication.TokenAuthenticationRule'], + 'SERIALIZERS': { + 'user': 'accounts.serializers.CustomUserSerializer', + 'current_user': 'accounts.serializers.CustomUserSerializer', + 'user_create': 'accounts.serializers.UserRegistrationSerializer', + }, } # Password validation diff --git a/equipment_tracker/db.sqlite3 b/equipment_tracker/db.sqlite3 index 2cd41471cc632d87bc3a3879eb5c2c9fbcfbd7df..151391c1e3878bf8ec113c43d881832c7b9b3572 100644 GIT binary patch delta 5729 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 Date: Thu, 9 Nov 2023 19:52:03 +0800 Subject: [PATCH 05/43] Added schema documentation --- .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 198 bytes .../__pycache__/admin.cpython-311.pyc | Bin 0 -> 790 bytes .../accounts/__pycache__/apps.cpython-311.pyc | Bin 0 -> 573 bytes .../__pycache__/models.cpython-311.pyc | Bin 0 -> 4479 bytes .../__pycache__/serializers.cpython-311.pyc | Bin 0 -> 3397 bytes .../accounts/__pycache__/urls.cpython-311.pyc | Bin 0 -> 519 bytes .../api/__pycache__/__init__.cpython-311.pyc | Bin 0 -> 193 bytes .../api/__pycache__/urls.cpython-311.pyc | Bin 0 -> 382 bytes .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 196 bytes .../__pycache__/settings.cpython-311.pyc | Bin 0 -> 5915 bytes .../config/__pycache__/urls.cpython-311.pyc | Bin 0 -> 1197 bytes equipment_tracker/config/settings.py | 15 + equipment_tracker/config/urls.py | 8 +- equipment_tracker/schema.yml | 710 ++++++++++++++++++ 14 files changed, 732 insertions(+), 1 deletion(-) create mode 100644 equipment_tracker/accounts/__pycache__/__init__.cpython-311.pyc create mode 100644 equipment_tracker/accounts/__pycache__/admin.cpython-311.pyc create mode 100644 equipment_tracker/accounts/__pycache__/apps.cpython-311.pyc create mode 100644 equipment_tracker/accounts/__pycache__/models.cpython-311.pyc create mode 100644 equipment_tracker/accounts/__pycache__/serializers.cpython-311.pyc create mode 100644 equipment_tracker/accounts/__pycache__/urls.cpython-311.pyc create mode 100644 equipment_tracker/api/__pycache__/__init__.cpython-311.pyc create mode 100644 equipment_tracker/api/__pycache__/urls.cpython-311.pyc create mode 100644 equipment_tracker/config/__pycache__/__init__.cpython-311.pyc create mode 100644 equipment_tracker/config/__pycache__/settings.cpython-311.pyc create mode 100644 equipment_tracker/config/__pycache__/urls.cpython-311.pyc create mode 100644 equipment_tracker/schema.yml diff --git a/equipment_tracker/accounts/__pycache__/__init__.cpython-311.pyc b/equipment_tracker/accounts/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2d605aa040b6d84b9950525d37981c597610518a GIT binary patch literal 198 zcmZ3^%ge<81P2cKq=M+jAOZ#$p^VRLK*n^26oz01O-8?!3`I;p{%4TnuSi#`n1G`E ztkmR^;uy~m1=k!PE3+(B!6e4Dur#wEH#M&$q$n{tJGDsH2}I?k#H7L`;!7YhF^S2^ z`K5V46XN4D^D;}~V%&|s7^dTKY#B%`+a^+KCZ9#LCJ?NPnbafexlQf{TD3X zD=-HNl%&9kPY7ZoHMr@U8k?!bZQoYdqIT+V*LMjR@DQkT1k`2rsR{5|%~pJmnX_K! zo#-2MUbixrd8dXtrDiLty7vsmy)$&jMB1-%!3zWtSM?|H$*J#@}gFSw`wpeo9o zV?1uFv=-AS%PY#vfq_pb_y#k5ixNd*$ic-)U2$h@OD_zwh_f)1{V?P?ty08mVR%qQ zX`2zQDkyE0Wa%eZBFFiQ>2~l`t%(` zy*uqo-4&b4#fLBE$}CJmNCVgERc&BYuWAFg>Q!yvM!l*Fhmg$${BMqvUl{#;k@A2z ZNBti#{0770$0viYu=O3b>Q42={{U=T$1DH< literal 0 HcmV?d00001 diff --git a/equipment_tracker/accounts/__pycache__/apps.cpython-311.pyc b/equipment_tracker/accounts/__pycache__/apps.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0a01fe93c51d155a4fe85e6f779822d49d2e7ebc GIT binary patch literal 573 zcmZut%SyvQ6upzAQu`1QEOa5%Wfo@TLPUgCtB6tr>%tHiVrE)W(*V|I;H5f_v;vkC(vpr9fG z>?~46BB&A(nTHfD)eXZ5?Z8hQZr4apx4Vu)E|tDRsO2jSvs(`X=fI>EiSl|XZ^^kR zkFl-yDaKI&W2O!*j!PI1LfuN46+%0DXa!hj9=H>mNSu3y8NcBCyt%ENdQOiTfv+94 zYfXzG^P1K+wdNo+-9EL0wx=6c)Z1wAViS#K1P&5L%dVyAuInrAjmIY&Cy4>S%F^&> zO{!aCsWK_94)^);%9*w$i%~Hh05|gZ%oD2;N3n2;p?Q8M`QKe{nYDb>{xM5a5g{~z Z_3`g#x*(v+6#l0Bi%mMrq*f)}TmLUKD literal 0 HcmV?d00001 diff --git a/equipment_tracker/accounts/__pycache__/models.cpython-311.pyc b/equipment_tracker/accounts/__pycache__/models.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b1db7fafbe0b334dfdb41a89ddb1a15f15415701 GIT binary patch literal 4479 zcmcH-TWk~A_0G$lG2__52{<7O&VvO9>hMS?tq^KR!me4!u1L0Yt*E1kXOcMhk)0Vs zHrQ3vMyiY0C0bE|x?9PWC{0DA_LJXARn^aNG*zsTB1NiJDt|`VkBFc4+?jZs3DDAy zy`DL9?z!jQIrrT28vnuX_aSHlf4eFV@Cf}Acj}GVLAHJa$U`I{iAbXikst_+lW8(T zB`6EuO{dayhDk6Molbi)-h|h}nKYYVVV)<=Wqb)Afk^ZolDtbuVrA+Hh0s&D?UvX_ zBH1f5PY9sGZ8wQqLQepFS|^|cFEL{%>U)kUQNr|Oa*~`@0pkZJRZS6-+Q+J_;Qm}r z)r3rHS`jrF`m7=+<!@v!OQ;F zD5$A~=7~fAE6MZ?zhKsaBmFs$Us2I_loufSl(9nE=cI%@^Xo1Ee1vJandv1w~ zOo90dNpyj*AoUgcEmQQoK?lwm)z`vLi79y8?*?sqMqd)K=l_Pbz}zXu?i5WzFumd} zQ4O4Hrc6ETF#0Y+4N6}sw_C&CX5O27CEb?a#@qYFZ4B* zH2JK2+hJGnyCZgcd1K^<6CWwLSvjex6Y=rLNE$G3ok;)0$fx<#Tn2<12Uoi(E8n|> zA6aQat`7*<31MVHOeS;rEUaL=Xl(8?vq_kiH6cHj&WVzsR$ zA71?O;_r|C?%3mFk58m`6+6Auyh|G5*Ib=+ok zkE?)FQL~PFfI&O>O>2&FX!m%z9=kz~Mw7@@%5DAx%6hvIfj&W5YM%N8-6lw+`5QBK zJ3;}u&3qPHiPZ{33Khu5#1~d(0Q0ADSS3@^Wq8o4cuS753U(gTo13%@$)w=ym2OP( z*j{0JAau)`3~rF0lNF^0#-a?&meW%vEh^Kh>A88^deYiVN;Nq_NTx+q6$BM;7F+A0 zas)7I>Ox?bHDL)3!if5F0NabGMtZpBZ$j@Fp`+`e=vpYcGQN644@E1X0V6a}8mS+GTdw0PwwqmG%&Ualq4V5Y-6iJ4Ooeje-LrAwET5S>IGj zfy8Kq3=XtuqftWXh3P7u6|r<`a#Qe9i*KQ2mu4NR#orG6i)eHIfd_p$cu1hXJp6dn z#=u>aP8f~`O;)hh5d_mG2oMhP5Sav%7lcpqVj4>#2ucK4t#efHzD#atMpQ1RMK`&WDnP!6z-0R38F5;+*^gmPc23EGO=+Jg=W*A+V>w9~wj{u2 zV?ebw`y<c1MzG6OZ_fCDUZ4tHMxEogt&@&Ti{b7f3#K3!=( zZ8V==yiyHDmOVx=vNEIxPgR1ajNqxoc+H2Jdoa0sWke62sRYj$!842Ts{e55$A*INA3-J^uMACsN*#+Mad8njuyoxf)`>R1j|LdgS?(s;Oo$X}wsmvMOFkxoF8cr=+r)6=KbOJ1lqab1U}^&26%T$ z9D^$uG(s@vtZLGDwu-GBXJWhA(eyf=gTX1d)g?$OkR!bQr8~>BYu-r38`%i7mFSI7 z>w_QY@AU8FV0I(8{{g4B$11@-BiL7B_KsIuJD_B1IaJ~{AzK&L16^x@u9f%oKvyL& zU<3x%0~gi;7b<~^M&KfZXYQTNaL3pDdU#+hJWy@xTxoq4{`;&hWoi^^JNE(+Z8_pw z3zp(F7Ihyh#SQ+*2H&jjk5>3zgYVV(-YVaEfAsEXh3_!<4xR7V3>_}Lg`kJ9pzUuf zXm~Sp@WF-k(22Fsi9Le0oCHBzEI|R5hC$H7U8UiBqn4bp3g2h&eLCL<1)uF*P-v71OGMgQFR!52sZ4zDdp~I27A$}D_UThP8M0T#ih1*N^ zf?W<=RDKFwTz#nj08pa{f~cYn-F;QjS>1iTj_0(FTvrwK=bH%dtMG@0Z!ugtSs@M@#K9WbNr0jOK!PU2E{a9Aw*4Og%L^m` literal 0 HcmV?d00001 diff --git a/equipment_tracker/accounts/__pycache__/serializers.cpython-311.pyc b/equipment_tracker/accounts/__pycache__/serializers.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b5a7eacf9db3f646da193391be2d90116adaa6cc GIT binary patch literal 3397 zcma)8O>7&-6`o!0QvB6Yq7*q&Wy(Lb!?t2$z-bXTNNYQEfwF+nLxI9M6on3j>cq)CKu_(VD2g6d1%VO+_|#Kx6r=)%PknEeD{5&a z=y3SD{n3-6-fZnykJY%7?6`t=w%= z9QzNdixQuB&!y}#qozl1Q)Ziv{Sjp#A4PdYlA`x2wCUN6x(oU=sQcFVn!4O_y+#cO z!CS^`+J;L#&#teacI+t7VYM6z ze8w>Dv`h!>4TAxs30FZ$!K2t#_fxWm%YD97zOZzYHLA4Yxl30U=gJOn_FX!6eyMz? zWjAZI?kzI2@*!pOm+(=ymT0Ijyg;*LRw|8F9XuQYM5(#X75pwX1{3As?;ZoPdGPDz zrrT{>gHKXx3HY!1jmafG2IL-ev~Bv~XAK=?QweiW8s5Sv94;iG_@7Lpt=t`6kT z#MxOtJG+xDbh3rbD?LS4uS-30H1)L;9qr7n(C&YQO)xFa7{Nn`sJ#cE`Q;%*AQr0% z2t~7`&*g2v&XW*7L|27HI35y?6|)pe{hj=Id|L)f_y%-7UIeL&TXF#se%bLTDuzo-LymPlQ3r6F0+fm3hjpH(Q?JK_v2Y z(=jV_wc%J0?x0#@HpF(L?yPgw_0|DL;VSVNe%#jwN8ziN7lcThje|3WXky<)f}miN zNHFRa*c7ruSeQfEcYvVWML-?G0)nt7OXKsyFsvNxG7P}8h{1nPhY$I!^axV$2C0G| zXw~rZAeY!=L;8dCYw5ncA#EM@5gNmJM$h|xEJ-|!(SF;AZOGBnlt}&EQ^ZSz7KBv8 zJV#Cw_QU&%hau8$)dOD}%Fs+|#O}a{C2go4MoQ=*8FB{|gxEu?{srXK`^wLhHEE69 zi+w=WBoEJ_-?rg7$hBMPP=5HiG2{{R<3ez(cv8ho5ZN=p^VkaY7_N$sSyi*X(l7>< zh->c$r3LU@W~{*&9v9D>F4Ui}Kp9kMa0~gw!i@#v%GL6 zDdUN-P8CPE;!PZ~xAQnPCqE*`*~Xq!x=qw^s6=+xJs zJDl_+7`k5qdA3Qq+VQscaQ)%WeeEptt;yioR=W9Pk6!=H>!0X5`BysmSK5i598Zou z&CGtX`dHb?%y%;LzUa@MYI7a!)gDojqXY7^@U2ea%`fll6fSlO7yZmPo{rCU#^<|Z zGyd%S7fz>iqceNc&%L`Flk=mH^ztxP&W=8V)>FX~JpY>^xyfIxJzV>jR`{n@*iv`2 zGmt0!#2FVs@LBE$e-Tt_vo$ltR9#{W1?H3lI_hM4+eQB2<-4}H8?Or^l&iBZRWEW-o14SyW zp6!wUj|7zi7raoM;p0}d0jMeskmWK=I{bK8^p4Kl3~LEHftKkYI7*cUqYT5FeHX=} zjKY;+nZb1cE?yr7@u7uPyCiM~Zg5SQikiY=f*TwYk#qLIf8AsDPfKRYTP=m9!svq- z!Y~Nc$-Z^VvmLiY>y?HDmqCViZ9ZwSWy5X4ZNsdz9FvuV5yM3Bq7Dm=%QC2&!f|j> zWc>@GTM8~T!5smMFxRf*P3QJO=nF&)6@}-CH-gL3o9rhr1~KHm1{987lDgzQKia$G zvLEeT@_j$ryX1@??MF#o^+}|6N!gF~F8Q_}?OpPkAMIUI@}s>=&im2cOQ{lGY>uY> f%>1rU?H@MCO-caX7s=L4=foSksMtS3D`5OT_QGN- literal 0 HcmV?d00001 diff --git a/equipment_tracker/accounts/__pycache__/urls.cpython-311.pyc b/equipment_tracker/accounts/__pycache__/urls.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0a1c87ab62757c1e4bd3f3718438ae96b6c68898 GIT binary patch literal 519 zcmaJ-Jxjwt7`{s`ZM8%}a4)plW-ybJh=bTc5D}~tLPTQjsEPTgm!x8+jvd|n2NiMh zKR7uxkfCICaw~M}$}fDw8Ho6A6e3~Vk-bJBlvEkToL?i?xkuWV7lsbo;s z@)RK@Z6mx%^Ok2i5oIar7OCwAjH?lMg6{fKqT2W2sgg_AsBL&HUp0L%&@~f+kQx(~J6^e#U*9nPH$GH%fH}kkw(OUA=x6S#6hjVS^jy zE#o_fS@5XN7LBWL-q8)y^dk>0WQ=P2VOrRCeHuCJfXl#=eOTaw8;cm@5h@LT>j-TP z|I%>|Nh`gh{zkvqZ$4heaygO9F{vb^G9raVW4O5;%hg1##-x^z+E^0Tgh=2h`DC095kTIPhg&~+hlhJP_LlF~@{~09tE5y|*CZH%k zD>b>KIL0$X!8HfS$}CG&Fo|(3EX^#)P0cF_DN0PvPA$@P0#SJ>F{v<#_!5XrOkzQ1 xOniK1US>&ryk0@&FAkgB{FKt1RJ$Tppd}z@6!Qa#56p~=j2{?aL=iJk3;+&6F=PM$ literal 0 HcmV?d00001 diff --git a/equipment_tracker/api/__pycache__/urls.cpython-311.pyc b/equipment_tracker/api/__pycache__/urls.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0544ad250c009d00b9ba63f4b1f0581b9c1d9ba0 GIT binary patch literal 382 zcmZ3^%ge<81m}r0S;CetmJg2a-HTkM&6$vLGdsa2eb z$;tVpc_qdARlG2!UTINIv7aW(E$)=8#Ju!;Fu#ZysK1B>NZjHE$^%U)NiE7NUdiwo zWbm&5SF4zSqWrAXF*!T6NY@EO<)y@= z!X)BLATlwD1(`7*%k>H>e{tC4=BJeAq}mmMLJ8!*VrL-nftit!@dktH1#IX88v`q6 ogG-0>g!BpNGx9Hr>0J@iyU3z{g+>1ZGZQ~k12+g3aRAK$07&&{-2eap literal 0 HcmV?d00001 diff --git a/equipment_tracker/config/__pycache__/__init__.cpython-311.pyc b/equipment_tracker/config/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a880ab5f36e573a1d70c25311aceb5282017a571 GIT binary patch literal 196 zcmZ3^%ge<81R~jHsUZ3>h=2h`DC095kTIPhg&~+hlhJP_LlF~@{~09tE8Nv8CZH%k zD>b>KIL0$X!8HfS$}CG&Fo|(3EX^#)P0cF_DN0PvPA$@P0#SJ>F{v<#_!5XrOmco+ zT4s7oe0*kJW=VX!UP0wA4x8Nkl+v73yCPPgJs_79^8<+w%#4hT9~fXn5i?K>0L0HS AqW}N^ literal 0 HcmV?d00001 diff --git a/equipment_tracker/config/__pycache__/settings.cpython-311.pyc b/equipment_tracker/config/__pycache__/settings.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..06dbdcb670abec13036737b7ecfddb41b5d2c021 GIT binary patch literal 5915 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 literal 0 HcmV?d00001 diff --git a/equipment_tracker/config/settings.py b/equipment_tracker/config/settings.py index 0ba6849..86a6e26 100644 --- a/equipment_tracker/config/settings.py +++ b/equipment_tracker/config/settings.py @@ -66,6 +66,8 @@ INSTALLED_APPS = [ 'rest_framework_simplejwt', 'djoser', 'corsheaders', + 'drf_spectacular', + 'drf_spectacular_sidecar', 'accounts' ] @@ -125,6 +127,19 @@ REST_FRAMEWORK = { 'user': '1440/min' }, + 'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema', +} + +# DRF-Spectacular +SPECTACULAR_SETTINGS = { + 'TITLE': 'CITC Equipment Tracker Backend', + 'DESCRIPTION': 'An IT Elective 4 Project', + 'VERSION': '1.0.0', + 'SERVE_INCLUDE_SCHEMA': False, + 'SWAGGER_UI_DIST': 'SIDECAR', + 'SWAGGER_UI_FAVICON_HREF': 'SIDECAR', + 'REDOC_DIST': 'SIDECAR', + # OTHER SETTINGS } WSGI_APPLICATION = 'config.wsgi.application' diff --git a/equipment_tracker/config/urls.py b/equipment_tracker/config/urls.py index cad3e39..8c0ff9e 100644 --- a/equipment_tracker/config/urls.py +++ b/equipment_tracker/config/urls.py @@ -16,8 +16,14 @@ Including another URLconf """ from django.contrib import admin from django.urls import path, include +from drf_spectacular.views import SpectacularAPIView, SpectacularRedocView, SpectacularSwaggerView urlpatterns = [ path('admin/', admin.site.urls), - path('api/v1/', include('api.urls')) + path('api/v1/', include('api.urls')), + path('schema/', SpectacularAPIView.as_view(), name='schema'), + path('swagger/', + SpectacularSwaggerView.as_view(url_name='schema'), name='swagger-ui'), + path('redoc/', + SpectacularRedocView.as_view(url_name='schema'), name='redoc'), ] diff --git a/equipment_tracker/schema.yml b/equipment_tracker/schema.yml new file mode 100644 index 0000000..01a35d8 --- /dev/null +++ b/equipment_tracker/schema.yml @@ -0,0 +1,710 @@ +openapi: 3.0.3 +info: + title: CITC Equipment Tracker Backend + version: 1.0.0 + description: An IT Elective 4 Project +paths: + /api/v1/accounts/jwt/create/: + post: + operationId: api_v1_accounts_jwt_create_create + description: |- + Takes a set of user credentials and returns an access and refresh JSON web + token pair to prove the authentication of those credentials. + tags: + - api + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TokenObtainPair' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TokenObtainPair' + multipart/form-data: + schema: + $ref: '#/components/schemas/TokenObtainPair' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TokenObtainPair' + description: '' + /api/v1/accounts/jwt/refresh/: + post: + operationId: api_v1_accounts_jwt_refresh_create + description: |- + Takes a refresh type JSON web token and returns an access type JSON web + token if the refresh token is valid. + tags: + - api + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TokenRefresh' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TokenRefresh' + multipart/form-data: + schema: + $ref: '#/components/schemas/TokenRefresh' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TokenRefresh' + description: '' + /api/v1/accounts/jwt/verify/: + post: + operationId: api_v1_accounts_jwt_verify_create + description: |- + Takes a token and indicates if it is valid. This view provides no + information about a token's fitness for a particular use. + tags: + - api + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/TokenVerify' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/TokenVerify' + multipart/form-data: + schema: + $ref: '#/components/schemas/TokenVerify' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/TokenVerify' + description: '' + /api/v1/accounts/users/: + get: + operationId: api_v1_accounts_users_list + tags: + - api + security: + - jwtAuth: [] + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/CustomUser' + description: '' + post: + operationId: api_v1_accounts_users_create + tags: + - api + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UserRegistration' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UserRegistration' + multipart/form-data: + schema: + $ref: '#/components/schemas/UserRegistration' + required: true + security: + - jwtAuth: [] + - {} + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/UserRegistration' + description: '' + /api/v1/accounts/users/{id}/: + get: + operationId: api_v1_accounts_users_retrieve + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this user. + required: true + tags: + - api + security: + - jwtAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CustomUser' + description: '' + put: + operationId: api_v1_accounts_users_update + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this user. + required: true + tags: + - api + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CustomUser' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CustomUser' + multipart/form-data: + schema: + $ref: '#/components/schemas/CustomUser' + required: true + security: + - jwtAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CustomUser' + description: '' + patch: + operationId: api_v1_accounts_users_partial_update + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this user. + required: true + tags: + - api + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedCustomUser' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedCustomUser' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedCustomUser' + security: + - jwtAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CustomUser' + description: '' + delete: + operationId: api_v1_accounts_users_destroy + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this user. + required: true + tags: + - api + security: + - jwtAuth: [] + responses: + '204': + description: No response body + /api/v1/accounts/users/activation/: + post: + operationId: api_v1_accounts_users_activation_create + tags: + - api + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Activation' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Activation' + multipart/form-data: + schema: + $ref: '#/components/schemas/Activation' + required: true + security: + - jwtAuth: [] + - {} + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Activation' + description: '' + /api/v1/accounts/users/me/: + get: + operationId: api_v1_accounts_users_me_retrieve + tags: + - api + security: + - jwtAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CustomUser' + description: '' + put: + operationId: api_v1_accounts_users_me_update + tags: + - api + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/CustomUser' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/CustomUser' + multipart/form-data: + schema: + $ref: '#/components/schemas/CustomUser' + required: true + security: + - jwtAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CustomUser' + description: '' + patch: + operationId: api_v1_accounts_users_me_partial_update + tags: + - api + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedCustomUser' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedCustomUser' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedCustomUser' + security: + - jwtAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/CustomUser' + description: '' + delete: + operationId: api_v1_accounts_users_me_destroy + tags: + - api + security: + - jwtAuth: [] + responses: + '204': + description: No response body + /api/v1/accounts/users/resend_activation/: + post: + operationId: api_v1_accounts_users_resend_activation_create + tags: + - api + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SendEmailReset' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SendEmailReset' + multipart/form-data: + schema: + $ref: '#/components/schemas/SendEmailReset' + required: true + security: + - jwtAuth: [] + - {} + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SendEmailReset' + description: '' + /api/v1/accounts/users/reset_password/: + post: + operationId: api_v1_accounts_users_reset_password_create + tags: + - api + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SendEmailReset' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SendEmailReset' + multipart/form-data: + schema: + $ref: '#/components/schemas/SendEmailReset' + required: true + security: + - jwtAuth: [] + - {} + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SendEmailReset' + description: '' + /api/v1/accounts/users/reset_password_confirm/: + post: + operationId: api_v1_accounts_users_reset_password_confirm_create + tags: + - api + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PasswordResetConfirm' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PasswordResetConfirm' + multipart/form-data: + schema: + $ref: '#/components/schemas/PasswordResetConfirm' + required: true + security: + - jwtAuth: [] + - {} + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/PasswordResetConfirm' + description: '' + /api/v1/accounts/users/reset_username/: + post: + operationId: api_v1_accounts_users_reset_username_create + tags: + - api + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SendEmailReset' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SendEmailReset' + multipart/form-data: + schema: + $ref: '#/components/schemas/SendEmailReset' + required: true + security: + - jwtAuth: [] + - {} + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SendEmailReset' + description: '' + /api/v1/accounts/users/reset_username_confirm/: + post: + operationId: api_v1_accounts_users_reset_username_confirm_create + tags: + - api + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UsernameResetConfirm' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/UsernameResetConfirm' + multipart/form-data: + schema: + $ref: '#/components/schemas/UsernameResetConfirm' + required: true + security: + - jwtAuth: [] + - {} + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/UsernameResetConfirm' + description: '' + /api/v1/accounts/users/set_password/: + post: + operationId: api_v1_accounts_users_set_password_create + tags: + - api + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SetPassword' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SetPassword' + multipart/form-data: + schema: + $ref: '#/components/schemas/SetPassword' + required: true + security: + - jwtAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SetPassword' + description: '' + /api/v1/accounts/users/set_username/: + post: + operationId: api_v1_accounts_users_set_username_create + tags: + - api + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/SetUsername' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/SetUsername' + multipart/form-data: + schema: + $ref: '#/components/schemas/SetUsername' + required: true + security: + - jwtAuth: [] + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/SetUsername' + description: '' +components: + schemas: + Activation: + type: object + properties: + uid: + type: string + token: + type: string + required: + - token + - uid + CustomUser: + type: object + properties: + username: + type: string + readOnly: true + description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ + only. + email: + type: string + format: email + title: Email address + maxLength: 254 + avatar: + type: string + format: uri + first_name: + type: string + maxLength: 100 + last_name: + type: string + maxLength: 100 + required: + - avatar + - first_name + - last_name + - username + PasswordResetConfirm: + type: object + properties: + uid: + type: string + token: + type: string + new_password: + type: string + required: + - new_password + - token + - uid + PatchedCustomUser: + type: object + properties: + username: + type: string + readOnly: true + description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ + only. + email: + type: string + format: email + title: Email address + maxLength: 254 + avatar: + type: string + format: uri + first_name: + type: string + maxLength: 100 + last_name: + type: string + maxLength: 100 + SendEmailReset: + type: object + properties: + email: + type: string + format: email + required: + - email + SetPassword: + type: object + properties: + new_password: + type: string + current_password: + type: string + required: + - current_password + - new_password + SetUsername: + type: object + properties: + current_password: + type: string + new_username: + type: string + title: Username + description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ + only. + pattern: ^[\w.@+-]+$ + maxLength: 150 + required: + - current_password + - new_username + TokenObtainPair: + type: object + properties: + username: + type: string + writeOnly: true + password: + type: string + writeOnly: true + access: + type: string + readOnly: true + refresh: + type: string + readOnly: true + required: + - access + - password + - refresh + - username + TokenRefresh: + type: object + properties: + access: + type: string + readOnly: true + refresh: + type: string + writeOnly: true + required: + - access + - refresh + TokenVerify: + type: object + properties: + token: + type: string + writeOnly: true + required: + - token + UserRegistration: + type: object + properties: + username: + type: string + description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ + only. + pattern: ^[\w.@+-]+$ + maxLength: 150 + email: + type: string + format: email + password: + type: string + writeOnly: true + avatar: + type: string + format: uri + nullable: true + first_name: + type: string + maxLength: 100 + last_name: + type: string + maxLength: 100 + required: + - email + - first_name + - last_name + - password + - username + UsernameResetConfirm: + type: object + properties: + new_username: + type: string + title: Username + description: Required. 150 characters or fewer. Letters, digits and @/./+/-/_ + only. + pattern: ^[\w.@+-]+$ + maxLength: 150 + required: + - new_username + securitySchemes: + jwtAuth: + type: http + scheme: bearer + bearerFormat: JWT From 760915276720336dcf7aaa32fed7698bb901ed61 Mon Sep 17 00:00:00 2001 From: Keannu Bernasol Date: Sun, 12 Nov 2023 21:45:39 +0800 Subject: [PATCH 06/43] Added all required functionality for equipments and equipment handling --- Pipfile | 1 + Pipfile.lock | 10 +- equipment_tracker/api/urls.py | 3 +- equipment_tracker/config/settings.py | 4 +- equipment_tracker/db.sqlite3 | Bin 131072 -> 184320 bytes equipment_tracker/equipments/__init__.py | 0 equipment_tracker/equipments/admin.py | 5 + equipment_tracker/equipments/apps.py | 6 + .../equipments/migrations/0001_initial.py | 66 ++++++++ ...move_equipment_last_changed_by_and_more.py | 25 +++ .../migrations/0003_historicalequipment.py | 40 +++++ .../equipments/migrations/__init__.py | 0 equipment_tracker/equipments/models.py | 50 ++++++ equipment_tracker/equipments/serializers.py | 157 ++++++++++++++++++ equipment_tracker/equipments/tests.py | 3 + equipment_tracker/equipments/urls.py | 29 ++++ equipment_tracker/equipments/views.py | 89 ++++++++++ 17 files changed, 485 insertions(+), 3 deletions(-) create mode 100644 equipment_tracker/equipments/__init__.py create mode 100644 equipment_tracker/equipments/admin.py create mode 100644 equipment_tracker/equipments/apps.py create mode 100644 equipment_tracker/equipments/migrations/0001_initial.py create mode 100644 equipment_tracker/equipments/migrations/0002_remove_equipment_last_changed_by_and_more.py create mode 100644 equipment_tracker/equipments/migrations/0003_historicalequipment.py create mode 100644 equipment_tracker/equipments/migrations/__init__.py create mode 100644 equipment_tracker/equipments/models.py create mode 100644 equipment_tracker/equipments/serializers.py create mode 100644 equipment_tracker/equipments/tests.py create mode 100644 equipment_tracker/equipments/urls.py create mode 100644 equipment_tracker/equipments/views.py diff --git a/Pipfile b/Pipfile index 627e336..bf53dd8 100644 --- a/Pipfile +++ b/Pipfile @@ -14,6 +14,7 @@ drf-spectacular = {version = "*", extras = ["sidecar"]} django-extra-fields = "*" pillow = "*" psycopg2 = "*" +django-simple-history = "*" [dev-packages] diff --git a/Pipfile.lock b/Pipfile.lock index f1f704a..8120404 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "7ca25164f3d5c5501004130b514ab73101cc9d6937aa0af8356bf65a3cb354fe" + "sha256": "ebe508cba3dbd2fa271c39d69ab71cb95f5630e21875aea04ad9f6893ced1877" }, "pipfile-spec": 6, "requires": { @@ -254,6 +254,14 @@ "index": "pypi", "version": "==3.0.2" }, + "django-simple-history": { + "hashes": [ + "sha256:19bd1a87e1e2eba34dfd43eab1fcf2da5752221f343232f2372b2121c7e3b97d", + "sha256:992dcca3cddc0b67b470fc91f77292e2d2a6010d37c9eac3536e9d80e8754032" + ], + "index": "pypi", + "version": "==3.4.0" + }, "django-templated-mail": { "hashes": [ "sha256:8db807effebb42a532622e2d142dfd453dafcd0d7794c4c3332acb90656315f9", diff --git a/equipment_tracker/api/urls.py b/equipment_tracker/api/urls.py index 14fb12e..03edd51 100644 --- a/equipment_tracker/api/urls.py +++ b/equipment_tracker/api/urls.py @@ -1,5 +1,6 @@ from django.urls import path, include urlpatterns = [ - path('accounts/', include('accounts.urls')) + path('accounts/', include('accounts.urls')), + path('equipments/', include('equipments.urls')) ] diff --git a/equipment_tracker/config/settings.py b/equipment_tracker/config/settings.py index 86a6e26..cc422ea 100644 --- a/equipment_tracker/config/settings.py +++ b/equipment_tracker/config/settings.py @@ -64,11 +64,13 @@ INSTALLED_APPS = [ 'django.contrib.staticfiles', 'rest_framework', 'rest_framework_simplejwt', + 'simple_history', 'djoser', 'corsheaders', 'drf_spectacular', 'drf_spectacular_sidecar', - 'accounts' + 'accounts', + 'equipments', ] MIDDLEWARE = [ diff --git a/equipment_tracker/db.sqlite3 b/equipment_tracker/db.sqlite3 index 151391c1e3878bf8ec113c43d881832c7b9b3572..87da6db199c737d132b64699dfe3dde8dc390bf9 100644 GIT binary patch literal 184320 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 delta 1281 zcmb`FO>7%Q6vuaVV>`*(8JjdXV*Rn9Ax&j!&+hE5cU>a7`KULk6FW`XwDb_wm?)NL z?8vx|_>vtsAfeDkQ)#IqfBx+;-Lt@yPb^zcsDTg!E>81B+lg* zMM@5Z19a}^1>y^i0Kpj&Z}+mepUgZm^bj&cNy;c{2FXbSV-;(pAQ)~eD=JpWTY}`q z62&t4SrA=VHw+bH5{w)U9n7ukDw4=##GP8#bc9rLC4$^JGzrn@?<3faRg92K9*(Bn zSWytdWI3w2G1d@L$WHXQ8_Tq$PX3Cz-RLsvluXBDceJ#h/logs/', + views.EquipmentLogViewSet.as_view({'get': 'list'})), + # Last changed equipment + path('equipments/latest', views.LastUpdatedEquipmentViewSet.as_view()), + # Logs for all equipment instances + path('equipment_instances/logs', views.EquipmentInstancesLogsViewSet.as_view()), + # Logs for each equipment instance + path('equipment_instances//logs/', + views.EquipmentInstanceLogViewSet.as_view({'get': 'list'})), + # Last changed equipment instance + path('equipment_instances/latest', + views.LastUpdatedEquipmentInstanceViewSet.as_view()) +] diff --git a/equipment_tracker/equipments/views.py b/equipment_tracker/equipments/views.py new file mode 100644 index 0000000..b97306d --- /dev/null +++ b/equipment_tracker/equipments/views.py @@ -0,0 +1,89 @@ +from rest_framework.permissions import IsAuthenticated +from rest_framework import viewsets, generics +from .models import Equipment, EquipmentInstance +from . import serializers +from config.settings import DEBUG + +# -- Equipment Viewsets + + +class EquipmentViewSet(viewsets.ModelViewSet): + if (not DEBUG): + permission_classes = [IsAuthenticated] + serializer_class = serializers.EquipmentSerializer + queryset = Equipment.objects.all().order_by('-date_added') + +# For viewing all logs for all equipments + + +class EquipmentsLogsViewSet(generics.ListAPIView): + if (not DEBUG): + permission_classes = [IsAuthenticated] + serializer_class = serializers.EquipmentLogsSerializer + queryset = Equipment.history.all().order_by('-history_date') + +# For viewing logs per individual equipment + + +class EquipmentLogViewSet(viewsets.ReadOnlyModelViewSet): + if (not DEBUG): + permission_classes = [IsAuthenticated] + serializer_class = serializers.EquipmentLogSerializer + + def get_queryset(self): + equipment_id = self.kwargs['equipment_id'] + return Equipment.objects.filter(id=equipment_id) + +# Last changed equipment + + +class LastUpdatedEquipmentViewSet(generics.ListAPIView): + if (not DEBUG): + permission_classes = [IsAuthenticated] + serializer_class = serializers.EquipmentSerializer + queryset = Equipment.objects.all().order_by('-date_added') + + def get_queryset(self): + return super().get_queryset()[:1] + +# -- Equipment Instance Viewsets + + +class EquipmentInstanceViewSet(viewsets.ModelViewSet): + if (not DEBUG): + permission_classes = [IsAuthenticated] + serializer_class = serializers.EquipmentInstanceSerializer + queryset = EquipmentInstance.objects.all().order_by('-date_added') + +# For viewing all equipment instance logs + + +class EquipmentInstancesLogsViewSet(generics.ListAPIView): + if (not DEBUG): + permission_classes = [IsAuthenticated] + serializer_class = serializers.EquipmentInstanceLogsSerializer + queryset = EquipmentInstance.history.all().order_by('-history_date') + +# For viewing logs per individual equipment instance + + +class EquipmentInstanceLogViewSet(viewsets.ReadOnlyModelViewSet): + if (not DEBUG): + permission_classes = [IsAuthenticated] + serializer_class = serializers.EquipmentInstanceLogSerializer + + def get_queryset(self): + equipment_id = self.kwargs['equipment_id'] + return EquipmentInstance.objects.filter(id=equipment_id) + +# Last changed equipment instance + + +class LastUpdatedEquipmentInstanceViewSet(generics.ListAPIView): + if (not DEBUG): + permission_classes = [IsAuthenticated] + serializer_class = serializers.EquipmentInstanceSerializer + queryset = EquipmentInstance.objects.all().order_by('-date_added') + + def get_queryset(self): + return super().get_queryset()[:1] From 1f9ed88e2e09e1e01fef4b00de17b0ccd348a23a Mon Sep 17 00:00:00 2001 From: Keannu Bernasol Date: Sun, 12 Nov 2023 21:49:07 +0800 Subject: [PATCH 07/43] Remove sqlite db from repo --- equipment_tracker/db.sqlite3 | Bin 184320 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 equipment_tracker/db.sqlite3 diff --git a/equipment_tracker/db.sqlite3 b/equipment_tracker/db.sqlite3 deleted file mode 100644 index 87da6db199c737d132b64699dfe3dde8dc390bf9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 184320 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 From 4b33401221a6edc7b7aa07f24efcc3695880ff52 Mon Sep 17 00:00:00 2001 From: Keannu Bernasol Date: Sun, 12 Nov 2023 21:50:39 +0800 Subject: [PATCH 08/43] Updated drf schema --- equipment_tracker/db.sqlite3 | Bin 0 -> 184320 bytes equipment_tracker/schema.yml | 642 +++++++++++++++++++++++++++++++++++ 2 files changed, 642 insertions(+) create mode 100644 equipment_tracker/db.sqlite3 diff --git a/equipment_tracker/db.sqlite3 b/equipment_tracker/db.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..de41c92c457ad41877053ef00c589423e4130bf6 GIT binary patch literal 184320 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 G@c#h4$Cv*A literal 0 HcmV?d00001 diff --git a/equipment_tracker/schema.yml b/equipment_tracker/schema.yml index 01a35d8..e9d73b7 100644 --- a/equipment_tracker/schema.yml +++ b/equipment_tracker/schema.yml @@ -513,6 +513,414 @@ paths: schema: $ref: '#/components/schemas/SetUsername' description: '' + /api/v1/equipments/equipment_instances/: + get: + operationId: api_v1_equipments_equipment_instances_list + tags: + - api + security: + - jwtAuth: [] + - {} + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/EquipmentInstance' + description: '' + post: + operationId: api_v1_equipments_equipment_instances_create + tags: + - api + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/EquipmentInstance' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/EquipmentInstance' + multipart/form-data: + schema: + $ref: '#/components/schemas/EquipmentInstance' + required: true + security: + - jwtAuth: [] + - {} + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/EquipmentInstance' + description: '' + /api/v1/equipments/equipment_instances/{equipment_id}/logs/: + get: + operationId: api_v1_equipments_equipment_instances_logs_list_2 + parameters: + - in: path + name: equipment_id + schema: + type: integer + required: true + tags: + - api + security: + - jwtAuth: [] + - {} + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/EquipmentInstanceLog' + description: '' + /api/v1/equipments/equipment_instances/{id}/: + get: + operationId: api_v1_equipments_equipment_instances_retrieve + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this equipment instance. + required: true + tags: + - api + security: + - jwtAuth: [] + - {} + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/EquipmentInstance' + description: '' + put: + operationId: api_v1_equipments_equipment_instances_update + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this equipment instance. + required: true + tags: + - api + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/EquipmentInstance' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/EquipmentInstance' + multipart/form-data: + schema: + $ref: '#/components/schemas/EquipmentInstance' + required: true + security: + - jwtAuth: [] + - {} + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/EquipmentInstance' + description: '' + patch: + operationId: api_v1_equipments_equipment_instances_partial_update + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this equipment instance. + required: true + tags: + - api + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedEquipmentInstance' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedEquipmentInstance' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedEquipmentInstance' + security: + - jwtAuth: [] + - {} + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/EquipmentInstance' + description: '' + delete: + operationId: api_v1_equipments_equipment_instances_destroy + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this equipment instance. + required: true + tags: + - api + security: + - jwtAuth: [] + - {} + responses: + '204': + description: No response body + /api/v1/equipments/equipment_instances/latest: + get: + operationId: api_v1_equipments_equipment_instances_latest_list + tags: + - api + security: + - jwtAuth: [] + - {} + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/EquipmentInstance' + description: '' + /api/v1/equipments/equipment_instances/logs: + get: + operationId: api_v1_equipments_equipment_instances_logs_list + tags: + - api + security: + - jwtAuth: [] + - {} + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/EquipmentInstanceLogs' + description: '' + /api/v1/equipments/equipments/: + get: + operationId: api_v1_equipments_equipments_list + tags: + - api + security: + - jwtAuth: [] + - {} + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Equipment' + description: '' + post: + operationId: api_v1_equipments_equipments_create + tags: + - api + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Equipment' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Equipment' + multipart/form-data: + schema: + $ref: '#/components/schemas/Equipment' + required: true + security: + - jwtAuth: [] + - {} + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/Equipment' + description: '' + /api/v1/equipments/equipments/{equipment_id}/logs/: + get: + operationId: api_v1_equipments_equipments_logs_list_2 + parameters: + - in: path + name: equipment_id + schema: + type: integer + required: true + tags: + - api + security: + - jwtAuth: [] + - {} + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/EquipmentLog' + description: '' + /api/v1/equipments/equipments/{id}/: + get: + operationId: api_v1_equipments_equipments_retrieve + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this equipment. + required: true + tags: + - api + security: + - jwtAuth: [] + - {} + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Equipment' + description: '' + put: + operationId: api_v1_equipments_equipments_update + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this equipment. + required: true + tags: + - api + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Equipment' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/Equipment' + multipart/form-data: + schema: + $ref: '#/components/schemas/Equipment' + required: true + security: + - jwtAuth: [] + - {} + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Equipment' + description: '' + patch: + operationId: api_v1_equipments_equipments_partial_update + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this equipment. + required: true + tags: + - api + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/PatchedEquipment' + application/x-www-form-urlencoded: + schema: + $ref: '#/components/schemas/PatchedEquipment' + multipart/form-data: + schema: + $ref: '#/components/schemas/PatchedEquipment' + security: + - jwtAuth: [] + - {} + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/Equipment' + description: '' + delete: + operationId: api_v1_equipments_equipments_destroy + parameters: + - in: path + name: id + schema: + type: integer + description: A unique integer value identifying this equipment. + required: true + tags: + - api + security: + - jwtAuth: [] + - {} + responses: + '204': + description: No response body + /api/v1/equipments/equipments/latest: + get: + operationId: api_v1_equipments_equipments_latest_list + tags: + - api + security: + - jwtAuth: [] + - {} + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/Equipment' + description: '' + /api/v1/equipments/equipments/logs: + get: + operationId: api_v1_equipments_equipments_logs_list + tags: + - api + security: + - jwtAuth: [] + - {} + responses: + '200': + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/EquipmentLogs' + description: '' components: schemas: Activation: @@ -552,6 +960,187 @@ components: - first_name - last_name - username + Equipment: + type: object + properties: + id: + type: integer + readOnly: true + name: + type: string + description: + type: string + last_updated: + type: string + format: date-time + readOnly: true + last_updated_by: + type: string + readOnly: true + date_added: + type: string + format: date-time + readOnly: true + required: + - date_added + - description + - id + - last_updated + - last_updated_by + - name + EquipmentInstance: + type: object + properties: + id: + type: integer + readOnly: true + equipment: + type: integer + status: + type: string + remarks: + type: string + last_updated: + type: string + format: date-time + readOnly: true + last_updated_by: + type: string + readOnly: true + date_added: + type: string + format: date-time + readOnly: true + required: + - date_added + - equipment + - id + - last_updated + - last_updated_by + - remarks + - status + EquipmentInstanceLog: + type: object + properties: + id: + type: integer + readOnly: true + equipment: + type: integer + status: + type: string + remarks: + type: string + last_updated: + type: string + format: date-time + readOnly: true + date_added: + type: string + format: date-time + readOnly: true + last_updated_by: + type: string + readOnly: true + history: + type: array + items: + type: object + additionalProperties: {} + required: + - date_added + - equipment + - history + - id + - last_updated + - last_updated_by + - remarks + - status + EquipmentInstanceLogs: + type: object + properties: + history_id: + type: integer + readOnly: true + status: + allOf: + - $ref: '#/components/schemas/StatusEnum' + readOnly: true + remarks: + type: string + readOnly: true + history_date: + type: string + format: date-time + readOnly: true + history_user: + type: string + readOnly: true + required: + - history_date + - history_id + - history_user + - remarks + - status + EquipmentLog: + type: object + properties: + id: + type: integer + readOnly: true + name: + type: string + description: + type: string + last_updated: + type: string + format: date-time + readOnly: true + date_added: + type: string + format: date-time + readOnly: true + last_updated_by: + type: string + readOnly: true + history: + type: array + items: + type: object + additionalProperties: {} + required: + - date_added + - description + - history + - id + - last_updated + - last_updated_by + - name + EquipmentLogs: + type: object + properties: + history_id: + type: integer + readOnly: true + name: + type: string + readOnly: true + description: + type: string + readOnly: true + history_date: + type: string + format: date-time + readOnly: true + history_user: + type: string + readOnly: true + required: + - description + - history_date + - history_id + - history_user + - name PasswordResetConfirm: type: object properties: @@ -587,6 +1176,50 @@ components: last_name: type: string maxLength: 100 + PatchedEquipment: + type: object + properties: + id: + type: integer + readOnly: true + name: + type: string + description: + type: string + last_updated: + type: string + format: date-time + readOnly: true + last_updated_by: + type: string + readOnly: true + date_added: + type: string + format: date-time + readOnly: true + PatchedEquipmentInstance: + type: object + properties: + id: + type: integer + readOnly: true + equipment: + type: integer + status: + type: string + remarks: + type: string + last_updated: + type: string + format: date-time + readOnly: true + last_updated_by: + type: string + readOnly: true + date_added: + type: string + format: date-time + readOnly: true SendEmailReset: type: object properties: @@ -620,6 +1253,15 @@ components: required: - current_password - new_username + StatusEnum: + enum: + - Working + - Broken + - Under Maintenance + - Decomissioned + type: string + description: "* `Working` - Working\n* `Broken` - Broken\n* `Under Maintenance`\ + \ - Under Maintenance\n* `Decomissioned` - Decomissioned " TokenObtainPair: type: object properties: From 5b401c382433f1e60bf77fe332df318bb44b9f0d Mon Sep 17 00:00:00 2001 From: Keannu Bernasol Date: Sun, 12 Nov 2023 21:54:37 +0800 Subject: [PATCH 09/43] Remove sqlite db again --- equipment_tracker/db.sqlite3 | Bin 184320 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 equipment_tracker/db.sqlite3 diff --git a/equipment_tracker/db.sqlite3 b/equipment_tracker/db.sqlite3 deleted file mode 100644 index de41c92c457ad41877053ef00c589423e4130bf6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 184320 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 G@c#h4$Cv*A From 449dd38fc104815c472a998948794b3b6e6f8c00 Mon Sep 17 00:00:00 2001 From: Keannu Bernasol Date: Sun, 12 Nov 2023 21:55:42 +0800 Subject: [PATCH 10/43] Fix gitignore to properly exclude sqlite db and static folder --- equipment_tracker/db.sqlite3 | Bin 0 -> 184320 bytes gitignore | 1 + 2 files changed, 1 insertion(+) create mode 100644 equipment_tracker/db.sqlite3 diff --git a/equipment_tracker/db.sqlite3 b/equipment_tracker/db.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..5df1aa987973eceac72ddf86987f63e6c856e0e4 GIT binary patch literal 184320 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 Date: Sun, 12 Nov 2023 21:55:49 +0800 Subject: [PATCH 11/43] Fix gitignore to properly exclude sqlite db and static folder --- gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/gitignore b/gitignore index 987bb83..b0ccb97 100644 --- a/gitignore +++ b/gitignore @@ -65,6 +65,7 @@ local_settings.py db.sqlite3 db.sqlite3-journal equipment_tracker/db.sqlite3 +equipment_tracker/static/* # Flask stuff: instance/ From 3ce93d840d77f03e5eb35f833a2d2ca0752a3cfd Mon Sep 17 00:00:00 2001 From: Keannu Bernasol Date: Sun, 12 Nov 2023 21:56:14 +0800 Subject: [PATCH 12/43] Delete sqlite db --- equipment_tracker/db.sqlite3 | Bin 184320 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 equipment_tracker/db.sqlite3 diff --git a/equipment_tracker/db.sqlite3 b/equipment_tracker/db.sqlite3 deleted file mode 100644 index 5df1aa987973eceac72ddf86987f63e6c856e0e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 184320 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 Date: Sun, 12 Nov 2023 21:58:30 +0800 Subject: [PATCH 13/43] Remove .env from repo --- equipment_tracker/.env | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 equipment_tracker/.env diff --git a/equipment_tracker/.env b/equipment_tracker/.env deleted file mode 100644 index 7996e3d..0000000 --- a/equipment_tracker/.env +++ /dev/null @@ -1,20 +0,0 @@ -# Django -SECRET_KEY = 'django-insecure-aorh!j+^*hmepp%&(cna!8)yeo!is)zly-^x*41jdi=(tl#v40' - -# Superuser Credentials -DJANGO_ADMIN_USERNAME = 'admin' -DJANGO_ADMIN_EMAIL = 'admin@admin.com' -DJANGO_ADMIN_PASSWORD = 'admin*(9125' - -# Production Email Credentials -PROD_EMAIL_HOST = "smtp.gmail.com" -PROD_EMAIL_HOST_USER = '' -PROD_EMAIL_HOST_PASSWORD = '' -PROD_EMAIL_PORT = '587' -PROD_EMAIL_TLS = 'True' - -# Dev Email Credentials -DEV_EMAIL_HOST = 'sandbox.smtp.mailtrap.io' -DEV_EMAIL_HOST_USER = '' -DEV_EMAIL_HOST_PASSWORD = '' -DEV_EMAIL_PORT = '2525' From 928a73b081866247e3753051df79615ce9985749 Mon Sep 17 00:00:00 2001 From: Keannu Bernasol Date: Sun, 12 Nov 2023 22:00:26 +0800 Subject: [PATCH 14/43] Fix gitignore --- gitignore => .gitignore | 1 + 1 file changed, 1 insertion(+) rename gitignore => .gitignore (99%) diff --git a/gitignore b/.gitignore similarity index 99% rename from gitignore rename to .gitignore index b0ccb97..5c62827 100644 --- a/gitignore +++ b/.gitignore @@ -65,6 +65,7 @@ local_settings.py db.sqlite3 db.sqlite3-journal equipment_tracker/db.sqlite3 +equipment_tracker/.env equipment_tracker/static/* # Flask stuff: From 53e4d8e02de619a32ee99b2bbd1a69681f534cbe Mon Sep 17 00:00:00 2001 From: Keannu Bernasol Date: Sun, 12 Nov 2023 22:01:28 +0800 Subject: [PATCH 15/43] Fix committed stuff --- .../admin/css/autocomplete.4a81fc4242d0.css | 275 - .../css/autocomplete.4a81fc4242d0.css.gz | Bin 1147 -> 0 bytes .../static/admin/css/autocomplete.css | 275 - .../static/admin/css/autocomplete.css.gz | Bin 1147 -> 0 bytes .../static/admin/css/base.64976e0f7339.css | 1138 -- .../static/admin/css/base.64976e0f7339.css.gz | Bin 4847 -> 0 bytes equipment_tracker/static/admin/css/base.css | 1138 -- .../static/admin/css/base.css.gz | Bin 4737 -> 0 bytes .../admin/css/changelists.9237a1ac391b.css | 328 - .../admin/css/changelists.9237a1ac391b.css.gz | Bin 1564 -> 0 bytes .../static/admin/css/changelists.css | 328 - .../static/admin/css/changelists.css.gz | Bin 1564 -> 0 bytes .../static/admin/css/dark_mode.css | 137 - .../static/admin/css/dark_mode.css.gz | Bin 849 -> 0 bytes .../admin/css/dark_mode.ef27a31af300.css | 137 - .../admin/css/dark_mode.ef27a31af300.css.gz | Bin 849 -> 0 bytes .../static/admin/css/dashboard.css | 29 - .../static/admin/css/dashboard.css.gz | Bin 267 -> 0 bytes .../admin/css/dashboard.e90f2068217b.css | 29 - .../admin/css/dashboard.e90f2068217b.css.gz | Bin 267 -> 0 bytes .../static/admin/css/forms.3b181cba6653.css | 530 - .../admin/css/forms.3b181cba6653.css.gz | Bin 2236 -> 0 bytes equipment_tracker/static/admin/css/forms.css | 530 - .../static/admin/css/forms.css.gz | Bin 2199 -> 0 bytes .../static/admin/css/login.586129c60a93.css | 61 - .../admin/css/login.586129c60a93.css.gz | Bin 417 -> 0 bytes equipment_tracker/static/admin/css/login.css | 61 - .../static/admin/css/login.css.gz | Bin 417 -> 0 bytes .../admin/css/nav_sidebar.269a1bd44627.css | 144 - .../admin/css/nav_sidebar.269a1bd44627.css.gz | Bin 779 -> 0 bytes .../static/admin/css/nav_sidebar.css | 144 - .../static/admin/css/nav_sidebar.css.gz | Bin 779 -> 0 bytes .../admin/css/responsive.107cd2690311.css | 998 -- .../admin/css/responsive.107cd2690311.css.gz | Bin 3432 -> 0 bytes .../static/admin/css/responsive.css | 998 -- .../static/admin/css/responsive.css.gz | Bin 3432 -> 0 bytes .../admin/css/responsive_rtl.97b066429fd8.css | 81 - .../css/responsive_rtl.97b066429fd8.css.gz | Bin 527 -> 0 bytes .../static/admin/css/responsive_rtl.css | 81 - .../static/admin/css/responsive_rtl.css.gz | Bin 527 -> 0 bytes .../static/admin/css/rtl.4685390ad96d.css | 288 - .../static/admin/css/rtl.4685390ad96d.css.gz | Bin 1256 -> 0 bytes equipment_tracker/static/admin/css/rtl.css | 288 - equipment_tracker/static/admin/css/rtl.css.gz | Bin 1229 -> 0 bytes .../select2/LICENSE-SELECT2.f94142512c91.md | 21 - .../LICENSE-SELECT2.f94142512c91.md.gz | Bin 685 -> 0 bytes .../css/vendor/select2/LICENSE-SELECT2.md | 21 - .../css/vendor/select2/LICENSE-SELECT2.md.gz | Bin 685 -> 0 bytes .../vendor/select2/select2.a2194c262648.css | 481 - .../select2/select2.a2194c262648.css.gz | Bin 2232 -> 0 bytes .../admin/css/vendor/select2/select2.css | 481 - .../admin/css/vendor/select2/select2.css.gz | Bin 2232 -> 0 bytes .../select2/select2.min.9f54e6414f87.css | 1 - .../select2/select2.min.9f54e6414f87.css.gz | Bin 1978 -> 0 bytes .../admin/css/vendor/select2/select2.min.css | 1 - .../css/vendor/select2/select2.min.css.gz | Bin 1978 -> 0 bytes .../static/admin/css/widgets.0a3765e806b3.css | 603 - .../admin/css/widgets.0a3765e806b3.css.gz | Bin 2561 -> 0 bytes .../static/admin/css/widgets.css | 603 - .../static/admin/css/widgets.css.gz | Bin 2468 -> 0 bytes equipment_tracker/static/admin/img/LICENSE | 20 - .../static/admin/img/LICENSE.2c54f4e1ca1c | 20 - .../static/admin/img/LICENSE.2c54f4e1ca1c.gz | Bin 656 -> 0 bytes equipment_tracker/static/admin/img/LICENSE.gz | Bin 656 -> 0 bytes .../static/admin/img/README.a70711a38d87.txt | 7 - .../admin/img/README.a70711a38d87.txt.gz | Bin 214 -> 0 bytes equipment_tracker/static/admin/img/README.txt | 7 - .../static/admin/img/README.txt.gz | Bin 214 -> 0 bytes .../admin/img/calendar-icons.39b290681a8b.svg | 14 - .../img/calendar-icons.39b290681a8b.svg.gz | Bin 385 -> 0 bytes .../static/admin/img/calendar-icons.svg | 14 - .../static/admin/img/calendar-icons.svg.gz | Bin 385 -> 0 bytes .../img/gis/move_vertex_off.7a23bf31ef8a.svg | 1 - .../gis/move_vertex_off.7a23bf31ef8a.svg.gz | Bin 470 -> 0 bytes .../static/admin/img/gis/move_vertex_off.svg | 1 - .../admin/img/gis/move_vertex_off.svg.gz | Bin 470 -> 0 bytes .../img/gis/move_vertex_on.0047eba25b67.svg | 1 - .../gis/move_vertex_on.0047eba25b67.svg.gz | Bin 472 -> 0 bytes .../static/admin/img/gis/move_vertex_on.svg | 1 - .../admin/img/gis/move_vertex_on.svg.gz | Bin 472 -> 0 bytes .../admin/img/icon-addlink.d519b3bab011.svg | 3 - .../img/icon-addlink.d519b3bab011.svg.gz | Bin 206 -> 0 bytes .../static/admin/img/icon-addlink.svg | 3 - .../static/admin/img/icon-addlink.svg.gz | Bin 206 -> 0 bytes .../admin/img/icon-alert.034cc7d8a67f.svg | 3 - .../admin/img/icon-alert.034cc7d8a67f.svg.gz | Bin 329 -> 0 bytes .../static/admin/img/icon-alert.svg | 3 - .../static/admin/img/icon-alert.svg.gz | Bin 329 -> 0 bytes .../admin/img/icon-calendar.ac7aea671bea.svg | 9 - .../img/icon-calendar.ac7aea671bea.svg.gz | Bin 438 -> 0 bytes .../static/admin/img/icon-calendar.svg | 9 - .../static/admin/img/icon-calendar.svg.gz | Bin 438 -> 0 bytes .../img/icon-changelink.18d2fd706348.svg | 3 - .../img/icon-changelink.18d2fd706348.svg.gz | Bin 269 -> 0 bytes .../static/admin/img/icon-changelink.svg | 3 - .../static/admin/img/icon-changelink.svg.gz | Bin 269 -> 0 bytes .../admin/img/icon-clock.e1d4dfac3f2b.svg | 9 - .../admin/img/icon-clock.e1d4dfac3f2b.svg.gz | Bin 357 -> 0 bytes .../static/admin/img/icon-clock.svg | 9 - .../static/admin/img/icon-clock.svg.gz | Bin 357 -> 0 bytes .../img/icon-deletelink.564ef9dc3854.svg | 3 - .../img/icon-deletelink.564ef9dc3854.svg.gz | Bin 221 -> 0 bytes .../static/admin/img/icon-deletelink.svg | 3 - .../static/admin/img/icon-deletelink.svg.gz | Bin 221 -> 0 bytes .../static/admin/img/icon-no.439e821418cd.svg | 3 - .../admin/img/icon-no.439e821418cd.svg.gz | Bin 297 -> 0 bytes .../static/admin/img/icon-no.svg | 3 - .../static/admin/img/icon-no.svg.gz | Bin 297 -> 0 bytes .../img/icon-unknown-alt.81536e128bb6.svg | 3 - .../img/icon-unknown-alt.81536e128bb6.svg.gz | Bin 377 -> 0 bytes .../static/admin/img/icon-unknown-alt.svg | 3 - .../static/admin/img/icon-unknown-alt.svg.gz | Bin 377 -> 0 bytes .../admin/img/icon-unknown.a18cb4398978.svg | 3 - .../img/icon-unknown.a18cb4398978.svg.gz | Bin 377 -> 0 bytes .../static/admin/img/icon-unknown.svg | 3 - .../static/admin/img/icon-unknown.svg.gz | Bin 377 -> 0 bytes .../admin/img/icon-viewlink.41eb31f7826e.svg | 3 - .../img/icon-viewlink.41eb31f7826e.svg.gz | Bin 346 -> 0 bytes .../static/admin/img/icon-viewlink.svg | 3 - .../static/admin/img/icon-viewlink.svg.gz | Bin 346 -> 0 bytes .../admin/img/icon-yes.d2f9f035226a.svg | 3 - .../admin/img/icon-yes.d2f9f035226a.svg.gz | Bin 266 -> 0 bytes .../static/admin/img/icon-yes.svg | 3 - .../static/admin/img/icon-yes.svg.gz | Bin 266 -> 0 bytes .../admin/img/inline-delete.fec1b761f254.svg | 3 - .../img/inline-delete.fec1b761f254.svg.gz | Bin 293 -> 0 bytes .../static/admin/img/inline-delete.svg | 3 - .../static/admin/img/inline-delete.svg.gz | Bin 293 -> 0 bytes .../static/admin/img/search.7cf54ff789c6.svg | 3 - .../admin/img/search.7cf54ff789c6.svg.gz | Bin 264 -> 0 bytes equipment_tracker/static/admin/img/search.svg | 3 - .../static/admin/img/search.svg.gz | Bin 264 -> 0 bytes .../admin/img/selector-icons.b4555096cea2.svg | 34 - .../img/selector-icons.b4555096cea2.svg.gz | Bin 770 -> 0 bytes .../static/admin/img/selector-icons.svg | 34 - .../static/admin/img/selector-icons.svg.gz | Bin 770 -> 0 bytes .../admin/img/sorting-icons.3a097b59f104.svg | 19 - .../img/sorting-icons.3a097b59f104.svg.gz | Bin 366 -> 0 bytes .../static/admin/img/sorting-icons.svg | 19 - .../static/admin/img/sorting-icons.svg.gz | Bin 366 -> 0 bytes .../admin/img/tooltag-add.e59d620a9742.svg | 3 - .../admin/img/tooltag-add.e59d620a9742.svg.gz | Bin 203 -> 0 bytes .../static/admin/img/tooltag-add.svg | 3 - .../static/admin/img/tooltag-add.svg.gz | Bin 203 -> 0 bytes .../img/tooltag-arrowright.bbfb788a849e.svg | 3 - .../tooltag-arrowright.bbfb788a849e.svg.gz | Bin 194 -> 0 bytes .../static/admin/img/tooltag-arrowright.svg | 3 - .../admin/img/tooltag-arrowright.svg.gz | Bin 194 -> 0 bytes .../static/admin/js/SelectBox.7d3ce5a98007.js | 116 - .../admin/js/SelectBox.7d3ce5a98007.js.gz | Bin 1025 -> 0 bytes .../static/admin/js/SelectBox.js | 116 - .../static/admin/js/SelectBox.js.gz | Bin 1025 -> 0 bytes .../admin/js/SelectFilter2.bdb8d0cc579e.js | 283 - .../admin/js/SelectFilter2.bdb8d0cc579e.js.gz | Bin 2914 -> 0 bytes .../static/admin/js/SelectFilter2.js | 283 - .../static/admin/js/SelectFilter2.js.gz | Bin 2914 -> 0 bytes .../static/admin/js/actions.eac7e3441574.js | 201 - .../admin/js/actions.eac7e3441574.js.gz | Bin 1874 -> 0 bytes equipment_tracker/static/admin/js/actions.js | 201 - .../static/admin/js/actions.js.gz | Bin 1874 -> 0 bytes .../admin/DateTimeShortcuts.9f6e209cebca.js | 408 - .../DateTimeShortcuts.9f6e209cebca.js.gz | Bin 3645 -> 0 bytes .../admin/js/admin/DateTimeShortcuts.js | 408 - .../admin/js/admin/DateTimeShortcuts.js.gz | Bin 3645 -> 0 bytes .../RelatedObjectLookups.8609f99b9ab2.js | 238 - .../RelatedObjectLookups.8609f99b9ab2.js.gz | Bin 2301 -> 0 bytes .../admin/js/admin/RelatedObjectLookups.js | 238 - .../admin/js/admin/RelatedObjectLookups.js.gz | Bin 2301 -> 0 bytes .../admin/js/autocomplete.01591ab27be7.js | 33 - .../admin/js/autocomplete.01591ab27be7.js.gz | Bin 425 -> 0 bytes .../static/admin/js/autocomplete.js | 33 - .../static/admin/js/autocomplete.js.gz | Bin 425 -> 0 bytes .../static/admin/js/calendar.f8a5d055eb33.js | 221 - .../admin/js/calendar.f8a5d055eb33.js.gz | Bin 2193 -> 0 bytes equipment_tracker/static/admin/js/calendar.js | 221 - .../static/admin/js/calendar.js.gz | Bin 2193 -> 0 bytes .../static/admin/js/cancel.ecc4c5ca7b32.js | 29 - .../static/admin/js/cancel.ecc4c5ca7b32.js.gz | Bin 430 -> 0 bytes equipment_tracker/static/admin/js/cancel.js | 29 - .../static/admin/js/cancel.js.gz | Bin 430 -> 0 bytes .../admin/js/change_form.9d8ca4f96b75.js | 16 - .../admin/js/change_form.9d8ca4f96b75.js.gz | Bin 322 -> 0 bytes .../static/admin/js/change_form.js | 16 - .../static/admin/js/change_form.js.gz | Bin 322 -> 0 bytes .../static/admin/js/collapse.f84e7410290f.js | 43 - .../admin/js/collapse.f84e7410290f.js.gz | Bin 614 -> 0 bytes equipment_tracker/static/admin/js/collapse.js | 43 - .../static/admin/js/collapse.js.gz | Bin 614 -> 0 bytes .../static/admin/js/core.cf103cd04ebf.js | 170 - .../static/admin/js/core.cf103cd04ebf.js.gz | Bin 1505 -> 0 bytes equipment_tracker/static/admin/js/core.js | 170 - equipment_tracker/static/admin/js/core.js.gz | Bin 1505 -> 0 bytes .../static/admin/js/filters.0e360b7a9f80.js | 30 - .../admin/js/filters.0e360b7a9f80.js.gz | Bin 502 -> 0 bytes equipment_tracker/static/admin/js/filters.js | 30 - .../static/admin/js/filters.js.gz | Bin 502 -> 0 bytes .../static/admin/js/inlines.22d4d93c00b4.js | 359 - .../admin/js/inlines.22d4d93c00b4.js.gz | Bin 3744 -> 0 bytes equipment_tracker/static/admin/js/inlines.js | 359 - .../static/admin/js/inlines.js.gz | Bin 3744 -> 0 bytes .../admin/js/jquery.init.b7781a0897fc.js | 8 - .../admin/js/jquery.init.b7781a0897fc.js.gz | Bin 236 -> 0 bytes .../static/admin/js/jquery.init.js | 8 - .../static/admin/js/jquery.init.js.gz | Bin 236 -> 0 bytes .../admin/js/nav_sidebar.3b9190d420b1.js | 79 - .../admin/js/nav_sidebar.3b9190d420b1.js.gz | Bin 845 -> 0 bytes .../static/admin/js/nav_sidebar.js | 79 - .../static/admin/js/nav_sidebar.js.gz | Bin 845 -> 0 bytes .../admin/js/popup_response.c6cc78ea5551.js | 16 - .../js/popup_response.c6cc78ea5551.js.gz | Bin 270 -> 0 bytes .../static/admin/js/popup_response.js | 16 - .../static/admin/js/popup_response.js.gz | Bin 270 -> 0 bytes .../admin/js/prepopulate.bd2361dfd64d.js | 43 - .../admin/js/prepopulate.bd2361dfd64d.js.gz | Bin 536 -> 0 bytes .../static/admin/js/prepopulate.js | 43 - .../static/admin/js/prepopulate.js.gz | Bin 536 -> 0 bytes .../admin/js/prepopulate_init.6cac7f3105b8.js | 15 - .../js/prepopulate_init.6cac7f3105b8.js.gz | Bin 277 -> 0 bytes .../static/admin/js/prepopulate_init.js | 15 - .../static/admin/js/prepopulate_init.js.gz | Bin 277 -> 0 bytes .../static/admin/js/theme.ab270f56bb9c.js | 56 - .../static/admin/js/theme.ab270f56bb9c.js.gz | Bin 605 -> 0 bytes equipment_tracker/static/admin/js/theme.js | 56 - equipment_tracker/static/admin/js/theme.js.gz | Bin 605 -> 0 bytes .../static/admin/js/urlify.ae970a820212.js | 169 - .../static/admin/js/urlify.ae970a820212.js.gz | Bin 2578 -> 0 bytes equipment_tracker/static/admin/js/urlify.js | 169 - .../static/admin/js/urlify.js.gz | Bin 2578 -> 0 bytes .../js/vendor/jquery/LICENSE.de877aa6d744.txt | 20 - .../vendor/jquery/LICENSE.de877aa6d744.txt.gz | Bin 656 -> 0 bytes .../static/admin/js/vendor/jquery/LICENSE.txt | 20 - .../admin/js/vendor/jquery/LICENSE.txt.gz | Bin 656 -> 0 bytes .../js/vendor/jquery/jquery.0208b96062ba.js | 10965 ---------------- .../vendor/jquery/jquery.0208b96062ba.js.gz | Bin 86002 -> 0 bytes .../static/admin/js/vendor/jquery/jquery.js | 10965 ---------------- .../admin/js/vendor/jquery/jquery.js.gz | Bin 86002 -> 0 bytes .../vendor/jquery/jquery.min.641dd1437010.js | 2 - .../jquery/jquery.min.641dd1437010.js.gz | Bin 31011 -> 0 bytes .../admin/js/vendor/jquery/jquery.min.js | 2 - .../admin/js/vendor/jquery/jquery.min.js.gz | Bin 31011 -> 0 bytes .../js/vendor/select2/LICENSE.f94142512c91.md | 21 - .../vendor/select2/LICENSE.f94142512c91.md.gz | Bin 685 -> 0 bytes .../static/admin/js/vendor/select2/LICENSE.md | 21 - .../admin/js/vendor/select2/LICENSE.md.gz | Bin 685 -> 0 bytes .../js/vendor/select2/i18n/af.4f6fcd73488c.js | 3 - .../vendor/select2/i18n/af.4f6fcd73488c.js.gz | Bin 460 -> 0 bytes .../static/admin/js/vendor/select2/i18n/af.js | 3 - .../admin/js/vendor/select2/i18n/af.js.gz | Bin 460 -> 0 bytes .../js/vendor/select2/i18n/ar.65aa8e36bf5d.js | 3 - .../vendor/select2/i18n/ar.65aa8e36bf5d.js.gz | Bin 498 -> 0 bytes .../static/admin/js/vendor/select2/i18n/ar.js | 3 - .../admin/js/vendor/select2/i18n/ar.js.gz | Bin 498 -> 0 bytes .../js/vendor/select2/i18n/az.270c257daf81.js | 3 - .../vendor/select2/i18n/az.270c257daf81.js.gz | Bin 413 -> 0 bytes .../static/admin/js/vendor/select2/i18n/az.js | 3 - .../admin/js/vendor/select2/i18n/az.js.gz | Bin 413 -> 0 bytes .../js/vendor/select2/i18n/bg.39b8be30d4f0.js | 3 - .../vendor/select2/i18n/bg.39b8be30d4f0.js.gz | Bin 541 -> 0 bytes .../static/admin/js/vendor/select2/i18n/bg.js | 3 - .../admin/js/vendor/select2/i18n/bg.js.gz | Bin 541 -> 0 bytes .../js/vendor/select2/i18n/bn.6d42b4dd5665.js | 3 - .../vendor/select2/i18n/bn.6d42b4dd5665.js.gz | Bin 553 -> 0 bytes .../static/admin/js/vendor/select2/i18n/bn.js | 3 - .../admin/js/vendor/select2/i18n/bn.js.gz | Bin 553 -> 0 bytes .../js/vendor/select2/i18n/bs.91624382358e.js | 3 - .../vendor/select2/i18n/bs.91624382358e.js.gz | Bin 523 -> 0 bytes .../static/admin/js/vendor/select2/i18n/bs.js | 3 - .../admin/js/vendor/select2/i18n/bs.js.gz | Bin 523 -> 0 bytes .../js/vendor/select2/i18n/ca.a166b745933a.js | 3 - .../vendor/select2/i18n/ca.a166b745933a.js.gz | Bin 470 -> 0 bytes .../static/admin/js/vendor/select2/i18n/ca.js | 3 - .../admin/js/vendor/select2/i18n/ca.js.gz | Bin 470 -> 0 bytes .../js/vendor/select2/i18n/cs.4f43e8e7d33a.js | 3 - .../vendor/select2/i18n/cs.4f43e8e7d33a.js.gz | Bin 623 -> 0 bytes .../static/admin/js/vendor/select2/i18n/cs.js | 3 - .../admin/js/vendor/select2/i18n/cs.js.gz | Bin 623 -> 0 bytes .../js/vendor/select2/i18n/da.766346afe4dd.js | 3 - .../vendor/select2/i18n/da.766346afe4dd.js.gz | Bin 441 -> 0 bytes .../static/admin/js/vendor/select2/i18n/da.js | 3 - .../admin/js/vendor/select2/i18n/da.js.gz | Bin 441 -> 0 bytes .../js/vendor/select2/i18n/de.8a1c222b0204.js | 3 - .../vendor/select2/i18n/de.8a1c222b0204.js.gz | Bin 467 -> 0 bytes .../static/admin/js/vendor/select2/i18n/de.js | 3 - .../admin/js/vendor/select2/i18n/de.js.gz | Bin 467 -> 0 bytes .../vendor/select2/i18n/dsb.56372c92d2f1.js | 3 - .../select2/i18n/dsb.56372c92d2f1.js.gz | Bin 551 -> 0 bytes .../admin/js/vendor/select2/i18n/dsb.js | 3 - .../admin/js/vendor/select2/i18n/dsb.js.gz | Bin 551 -> 0 bytes .../js/vendor/select2/i18n/el.27097f071856.js | 3 - .../vendor/select2/i18n/el.27097f071856.js.gz | Bin 644 -> 0 bytes .../static/admin/js/vendor/select2/i18n/el.js | 3 - .../admin/js/vendor/select2/i18n/el.js.gz | Bin 644 -> 0 bytes .../js/vendor/select2/i18n/en.cf932ba09a98.js | 3 - .../vendor/select2/i18n/en.cf932ba09a98.js.gz | Bin 447 -> 0 bytes .../static/admin/js/vendor/select2/i18n/en.js | 3 - .../admin/js/vendor/select2/i18n/en.js.gz | Bin 447 -> 0 bytes .../js/vendor/select2/i18n/es.66dbc2652fb1.js | 3 - .../vendor/select2/i18n/es.66dbc2652fb1.js.gz | Bin 474 -> 0 bytes .../static/admin/js/vendor/select2/i18n/es.js | 3 - .../admin/js/vendor/select2/i18n/es.js.gz | Bin 474 -> 0 bytes .../js/vendor/select2/i18n/et.2b96fd98289d.js | 3 - .../vendor/select2/i18n/et.2b96fd98289d.js.gz | Bin 432 -> 0 bytes .../static/admin/js/vendor/select2/i18n/et.js | 3 - .../admin/js/vendor/select2/i18n/et.js.gz | Bin 432 -> 0 bytes .../js/vendor/select2/i18n/eu.adfe5c97b72c.js | 3 - .../vendor/select2/i18n/eu.adfe5c97b72c.js.gz | Bin 450 -> 0 bytes .../static/admin/js/vendor/select2/i18n/eu.js | 3 - .../admin/js/vendor/select2/i18n/eu.js.gz | Bin 450 -> 0 bytes .../js/vendor/select2/i18n/fa.3b5bd1961cfd.js | 3 - .../vendor/select2/i18n/fa.3b5bd1961cfd.js.gz | Bin 538 -> 0 bytes .../static/admin/js/vendor/select2/i18n/fa.js | 3 - .../admin/js/vendor/select2/i18n/fa.js.gz | Bin 538 -> 0 bytes .../js/vendor/select2/i18n/fi.614ec42aa9ba.js | 3 - .../vendor/select2/i18n/fi.614ec42aa9ba.js.gz | Bin 429 -> 0 bytes .../static/admin/js/vendor/select2/i18n/fi.js | 3 - .../admin/js/vendor/select2/i18n/fi.js.gz | Bin 429 -> 0 bytes .../js/vendor/select2/i18n/fr.05e0542fcfe6.js | 3 - .../vendor/select2/i18n/fr.05e0542fcfe6.js.gz | Bin 484 -> 0 bytes .../static/admin/js/vendor/select2/i18n/fr.js | 3 - .../admin/js/vendor/select2/i18n/fr.js.gz | Bin 484 -> 0 bytes .../js/vendor/select2/i18n/gl.d99b1fedaa86.js | 3 - .../vendor/select2/i18n/gl.d99b1fedaa86.js.gz | Bin 465 -> 0 bytes .../static/admin/js/vendor/select2/i18n/gl.js | 3 - .../admin/js/vendor/select2/i18n/gl.js.gz | Bin 465 -> 0 bytes .../js/vendor/select2/i18n/he.e420ff6cd3ed.js | 3 - .../vendor/select2/i18n/he.e420ff6cd3ed.js.gz | Bin 518 -> 0 bytes .../static/admin/js/vendor/select2/i18n/he.js | 3 - .../admin/js/vendor/select2/i18n/he.js.gz | Bin 518 -> 0 bytes .../js/vendor/select2/i18n/hi.70640d41628f.js | 3 - .../vendor/select2/i18n/hi.70640d41628f.js.gz | Bin 572 -> 0 bytes .../static/admin/js/vendor/select2/i18n/hi.js | 3 - .../admin/js/vendor/select2/i18n/hi.js.gz | Bin 572 -> 0 bytes .../js/vendor/select2/i18n/hr.a2b092cc1147.js | 3 - .../vendor/select2/i18n/hr.a2b092cc1147.js.gz | Bin 477 -> 0 bytes .../static/admin/js/vendor/select2/i18n/hr.js | 3 - .../admin/js/vendor/select2/i18n/hr.js.gz | Bin 477 -> 0 bytes .../vendor/select2/i18n/hsb.fa3b55265efe.js | 3 - .../select2/i18n/hsb.fa3b55265efe.js.gz | Bin 556 -> 0 bytes .../admin/js/vendor/select2/i18n/hsb.js | 3 - .../admin/js/vendor/select2/i18n/hsb.js.gz | Bin 556 -> 0 bytes .../js/vendor/select2/i18n/hu.6ec6039cb8a3.js | 3 - .../vendor/select2/i18n/hu.6ec6039cb8a3.js.gz | Bin 467 -> 0 bytes .../static/admin/js/vendor/select2/i18n/hu.js | 3 - .../admin/js/vendor/select2/i18n/hu.js.gz | Bin 467 -> 0 bytes .../js/vendor/select2/i18n/hy.c7babaeef5a6.js | 3 - .../vendor/select2/i18n/hy.c7babaeef5a6.js.gz | Bin 530 -> 0 bytes .../static/admin/js/vendor/select2/i18n/hy.js | 3 - .../admin/js/vendor/select2/i18n/hy.js.gz | Bin 530 -> 0 bytes .../js/vendor/select2/i18n/id.04debded514d.js | 3 - .../vendor/select2/i18n/id.04debded514d.js.gz | Bin 416 -> 0 bytes .../static/admin/js/vendor/select2/i18n/id.js | 3 - .../admin/js/vendor/select2/i18n/id.js.gz | Bin 416 -> 0 bytes .../js/vendor/select2/i18n/is.3ddd9a6a97e9.js | 3 - .../vendor/select2/i18n/is.3ddd9a6a97e9.js.gz | Bin 465 -> 0 bytes .../static/admin/js/vendor/select2/i18n/is.js | 3 - .../admin/js/vendor/select2/i18n/is.js.gz | Bin 465 -> 0 bytes .../js/vendor/select2/i18n/it.be4fe8d365b5.js | 3 - .../vendor/select2/i18n/it.be4fe8d365b5.js.gz | Bin 488 -> 0 bytes .../static/admin/js/vendor/select2/i18n/it.js | 3 - .../admin/js/vendor/select2/i18n/it.js.gz | Bin 488 -> 0 bytes .../js/vendor/select2/i18n/ja.170ae885d74f.js | 3 - .../vendor/select2/i18n/ja.170ae885d74f.js.gz | Bin 511 -> 0 bytes .../static/admin/js/vendor/select2/i18n/ja.js | 3 - .../admin/js/vendor/select2/i18n/ja.js.gz | Bin 511 -> 0 bytes .../js/vendor/select2/i18n/ka.2083264a54f0.js | 3 - .../vendor/select2/i18n/ka.2083264a54f0.js.gz | Bin 533 -> 0 bytes .../static/admin/js/vendor/select2/i18n/ka.js | 3 - .../admin/js/vendor/select2/i18n/ka.js.gz | Bin 533 -> 0 bytes .../js/vendor/select2/i18n/km.c23089cb06ca.js | 3 - .../vendor/select2/i18n/km.c23089cb06ca.js.gz | Bin 540 -> 0 bytes .../static/admin/js/vendor/select2/i18n/km.js | 3 - .../admin/js/vendor/select2/i18n/km.js.gz | Bin 540 -> 0 bytes .../js/vendor/select2/i18n/ko.e7be6c20e673.js | 3 - .../vendor/select2/i18n/ko.e7be6c20e673.js.gz | Bin 506 -> 0 bytes .../static/admin/js/vendor/select2/i18n/ko.js | 3 - .../admin/js/vendor/select2/i18n/ko.js.gz | Bin 506 -> 0 bytes .../js/vendor/select2/i18n/lt.23c7ce903300.js | 3 - .../vendor/select2/i18n/lt.23c7ce903300.js.gz | Bin 521 -> 0 bytes .../static/admin/js/vendor/select2/i18n/lt.js | 3 - .../admin/js/vendor/select2/i18n/lt.js.gz | Bin 521 -> 0 bytes .../js/vendor/select2/i18n/lv.08e62128eac1.js | 3 - .../vendor/select2/i18n/lv.08e62128eac1.js.gz | Bin 505 -> 0 bytes .../static/admin/js/vendor/select2/i18n/lv.js | 3 - .../admin/js/vendor/select2/i18n/lv.js.gz | Bin 505 -> 0 bytes .../js/vendor/select2/i18n/mk.dabbb9087130.js | 3 - .../vendor/select2/i18n/mk.dabbb9087130.js.gz | Bin 557 -> 0 bytes .../static/admin/js/vendor/select2/i18n/mk.js | 3 - .../admin/js/vendor/select2/i18n/mk.js.gz | Bin 557 -> 0 bytes .../js/vendor/select2/i18n/ms.4ba82c9a51ce.js | 3 - .../vendor/select2/i18n/ms.4ba82c9a51ce.js.gz | Bin 436 -> 0 bytes .../static/admin/js/vendor/select2/i18n/ms.js | 3 - .../admin/js/vendor/select2/i18n/ms.js.gz | Bin 436 -> 0 bytes .../js/vendor/select2/i18n/nb.da2fce143f27.js | 3 - .../vendor/select2/i18n/nb.da2fce143f27.js.gz | Bin 413 -> 0 bytes .../static/admin/js/vendor/select2/i18n/nb.js | 3 - .../admin/js/vendor/select2/i18n/nb.js.gz | Bin 413 -> 0 bytes .../js/vendor/select2/i18n/ne.3d79fd3f08db.js | 3 - .../vendor/select2/i18n/ne.3d79fd3f08db.js.gz | Bin 591 -> 0 bytes .../static/admin/js/vendor/select2/i18n/ne.js | 3 - .../admin/js/vendor/select2/i18n/ne.js.gz | Bin 591 -> 0 bytes .../js/vendor/select2/i18n/nl.997868a37ed8.js | 3 - .../vendor/select2/i18n/nl.997868a37ed8.js.gz | Bin 469 -> 0 bytes .../static/admin/js/vendor/select2/i18n/nl.js | 3 - .../admin/js/vendor/select2/i18n/nl.js.gz | Bin 469 -> 0 bytes .../js/vendor/select2/i18n/pl.6031b4f16452.js | 3 - .../vendor/select2/i18n/pl.6031b4f16452.js.gz | Bin 524 -> 0 bytes .../static/admin/js/vendor/select2/i18n/pl.js | 3 - .../admin/js/vendor/select2/i18n/pl.js.gz | Bin 524 -> 0 bytes .../js/vendor/select2/i18n/ps.38dfa47af9e0.js | 3 - .../vendor/select2/i18n/ps.38dfa47af9e0.js.gz | Bin 587 -> 0 bytes .../static/admin/js/vendor/select2/i18n/ps.js | 3 - .../admin/js/vendor/select2/i18n/ps.js.gz | Bin 587 -> 0 bytes .../vendor/select2/i18n/pt-BR.e1b294433e7f.js | 3 - .../select2/i18n/pt-BR.e1b294433e7f.js.gz | Bin 486 -> 0 bytes .../admin/js/vendor/select2/i18n/pt-BR.js | 3 - .../admin/js/vendor/select2/i18n/pt-BR.js.gz | Bin 486 -> 0 bytes .../js/vendor/select2/i18n/pt.33b4a3b44d43.js | 3 - .../vendor/select2/i18n/pt.33b4a3b44d43.js.gz | Bin 470 -> 0 bytes .../static/admin/js/vendor/select2/i18n/pt.js | 3 - .../admin/js/vendor/select2/i18n/pt.js.gz | Bin 470 -> 0 bytes .../js/vendor/select2/i18n/ro.f75cb460ec3b.js | 3 - .../vendor/select2/i18n/ro.f75cb460ec3b.js.gz | Bin 511 -> 0 bytes .../static/admin/js/vendor/select2/i18n/ro.js | 3 - .../admin/js/vendor/select2/i18n/ro.js.gz | Bin 511 -> 0 bytes .../js/vendor/select2/i18n/ru.934aa95f5b5f.js | 3 - .../vendor/select2/i18n/ru.934aa95f5b5f.js.gz | Bin 632 -> 0 bytes .../static/admin/js/vendor/select2/i18n/ru.js | 3 - .../admin/js/vendor/select2/i18n/ru.js.gz | Bin 632 -> 0 bytes .../js/vendor/select2/i18n/sk.33d02cef8d11.js | 3 - .../vendor/select2/i18n/sk.33d02cef8d11.js.gz | Bin 617 -> 0 bytes .../static/admin/js/vendor/select2/i18n/sk.js | 3 - .../admin/js/vendor/select2/i18n/sk.js.gz | Bin 617 -> 0 bytes .../js/vendor/select2/i18n/sl.131a78bc0752.js | 3 - .../vendor/select2/i18n/sl.131a78bc0752.js.gz | Bin 487 -> 0 bytes .../static/admin/js/vendor/select2/i18n/sl.js | 3 - .../admin/js/vendor/select2/i18n/sl.js.gz | Bin 487 -> 0 bytes .../js/vendor/select2/i18n/sq.5636b60d29c9.js | 3 - .../vendor/select2/i18n/sq.5636b60d29c9.js.gz | Bin 490 -> 0 bytes .../static/admin/js/vendor/select2/i18n/sq.js | 3 - .../admin/js/vendor/select2/i18n/sq.js.gz | Bin 490 -> 0 bytes .../select2/i18n/sr-Cyrl.f254bb8c4c7c.js | 3 - .../select2/i18n/sr-Cyrl.f254bb8c4c7c.js.gz | Bin 608 -> 0 bytes .../admin/js/vendor/select2/i18n/sr-Cyrl.js | 3 - .../js/vendor/select2/i18n/sr-Cyrl.js.gz | Bin 608 -> 0 bytes .../js/vendor/select2/i18n/sr.5ed85a48f483.js | 3 - .../vendor/select2/i18n/sr.5ed85a48f483.js.gz | Bin 552 -> 0 bytes .../static/admin/js/vendor/select2/i18n/sr.js | 3 - .../admin/js/vendor/select2/i18n/sr.js.gz | Bin 552 -> 0 bytes .../js/vendor/select2/i18n/sv.7a9c2f71e777.js | 3 - .../vendor/select2/i18n/sv.7a9c2f71e777.js.gz | Bin 429 -> 0 bytes .../static/admin/js/vendor/select2/i18n/sv.js | 3 - .../admin/js/vendor/select2/i18n/sv.js.gz | Bin 429 -> 0 bytes .../js/vendor/select2/i18n/th.f38c20b0221b.js | 3 - .../vendor/select2/i18n/th.f38c20b0221b.js.gz | Bin 515 -> 0 bytes .../static/admin/js/vendor/select2/i18n/th.js | 3 - .../admin/js/vendor/select2/i18n/th.js.gz | Bin 515 -> 0 bytes .../js/vendor/select2/i18n/tk.7c572a68c78f.js | 3 - .../vendor/select2/i18n/tk.7c572a68c78f.js.gz | Bin 434 -> 0 bytes .../static/admin/js/vendor/select2/i18n/tk.js | 3 - .../admin/js/vendor/select2/i18n/tk.js.gz | Bin 434 -> 0 bytes .../js/vendor/select2/i18n/tr.b5a0643d1545.js | 3 - .../vendor/select2/i18n/tr.b5a0643d1545.js.gz | Bin 423 -> 0 bytes .../static/admin/js/vendor/select2/i18n/tr.js | 3 - .../admin/js/vendor/select2/i18n/tr.js.gz | Bin 423 -> 0 bytes .../js/vendor/select2/i18n/uk.8cede7f4803c.js | 3 - .../vendor/select2/i18n/uk.8cede7f4803c.js.gz | Bin 626 -> 0 bytes .../static/admin/js/vendor/select2/i18n/uk.js | 3 - .../admin/js/vendor/select2/i18n/uk.js.gz | Bin 626 -> 0 bytes .../js/vendor/select2/i18n/vi.097a5b75b3e1.js | 3 - .../vendor/select2/i18n/vi.097a5b75b3e1.js.gz | Bin 479 -> 0 bytes .../static/admin/js/vendor/select2/i18n/vi.js | 3 - .../admin/js/vendor/select2/i18n/vi.js.gz | Bin 479 -> 0 bytes .../vendor/select2/i18n/zh-CN.2cff662ec5f9.js | 3 - .../select2/i18n/zh-CN.2cff662ec5f9.js.gz | Bin 468 -> 0 bytes .../admin/js/vendor/select2/i18n/zh-CN.js | 3 - .../admin/js/vendor/select2/i18n/zh-CN.js.gz | Bin 468 -> 0 bytes .../vendor/select2/i18n/zh-TW.04554a227c2b.js | 3 - .../select2/i18n/zh-TW.04554a227c2b.js.gz | Bin 451 -> 0 bytes .../admin/js/vendor/select2/i18n/zh-TW.js | 3 - .../admin/js/vendor/select2/i18n/zh-TW.js.gz | Bin 451 -> 0 bytes .../select2/select2.full.c2afdeda3058.js | 6820 ---------- .../select2/select2.full.c2afdeda3058.js.gz | Bin 37925 -> 0 bytes .../admin/js/vendor/select2/select2.full.js | 6820 ---------- .../js/vendor/select2/select2.full.js.gz | Bin 37925 -> 0 bytes .../select2/select2.full.min.fcd7500d8e13.js | 2 - .../select2.full.min.fcd7500d8e13.js.gz | Bin 21986 -> 0 bytes .../js/vendor/select2/select2.full.min.js | 2 - .../js/vendor/select2/select2.full.min.js.gz | Bin 21986 -> 0 bytes .../vendor/xregexp/LICENSE.bf79e414957a.txt | 21 - .../xregexp/LICENSE.bf79e414957a.txt.gz | Bin 679 -> 0 bytes .../admin/js/vendor/xregexp/LICENSE.txt | 21 - .../admin/js/vendor/xregexp/LICENSE.txt.gz | Bin 679 -> 0 bytes .../js/vendor/xregexp/xregexp.efda034b9537.js | 4652 ------- .../vendor/xregexp/xregexp.efda034b9537.js.gz | Bin 60899 -> 0 bytes .../static/admin/js/vendor/xregexp/xregexp.js | 4652 ------- .../admin/js/vendor/xregexp/xregexp.js.gz | Bin 60899 -> 0 bytes .../xregexp/xregexp.min.b0439563a5d3.js | 160 - .../xregexp/xregexp.min.b0439563a5d3.js.gz | Bin 37609 -> 0 bytes .../admin/js/vendor/xregexp/xregexp.min.js | 160 - .../admin/js/vendor/xregexp/xregexp.min.js.gz | Bin 37609 -> 0 bytes .../css/bootstrap-theme.min.1d4b05b397c3.css | 6 - .../bootstrap-theme.min.1d4b05b397c3.css.gz | Bin 2783 -> 0 bytes .../css/bootstrap-theme.min.css | 6 - .../bootstrap-theme.min.css.51806092cc05.map | 1 - ...ootstrap-theme.min.css.51806092cc05.map.gz | Bin 8032 -> 0 bytes .../css/bootstrap-theme.min.css.gz | Bin 2772 -> 0 bytes .../css/bootstrap-theme.min.css.map | 1 - .../css/bootstrap-theme.min.css.map.gz | Bin 8032 -> 0 bytes .../css/bootstrap-tweaks.46ed116b0edd.css | 233 - .../css/bootstrap-tweaks.46ed116b0edd.css.gz | Bin 1268 -> 0 bytes .../rest_framework/css/bootstrap-tweaks.css | 233 - .../css/bootstrap-tweaks.css.gz | Bin 1256 -> 0 bytes .../rest_framework/css/bootstrap.min.css | 6 - .../css/bootstrap.min.css.cafbda9c0e9e.map | 1 - .../css/bootstrap.min.css.cafbda9c0e9e.map.gz | Bin 94401 -> 0 bytes .../rest_framework/css/bootstrap.min.css.gz | Bin 19586 -> 0 bytes .../rest_framework/css/bootstrap.min.css.map | 1 - .../css/bootstrap.min.css.map.gz | Bin 94401 -> 0 bytes .../css/bootstrap.min.f17d4516b026.css | 6 - .../css/bootstrap.min.f17d4516b026.css.gz | Bin 19657 -> 0 bytes .../css/default.789dfb5732d7.css | 82 - .../css/default.789dfb5732d7.css.gz | Bin 612 -> 0 bytes .../static/rest_framework/css/default.css | 82 - .../static/rest_framework/css/default.css.gz | Bin 612 -> 0 bytes .../css/font-awesome-4.0.3.c1e1ea213abf.css | 1338 -- .../font-awesome-4.0.3.c1e1ea213abf.css.gz | Bin 4230 -> 0 bytes .../rest_framework/css/font-awesome-4.0.3.css | 1338 -- .../css/font-awesome-4.0.3.css.gz | Bin 4186 -> 0 bytes .../css/prettify.a987f72342ee.css | 30 - .../css/prettify.a987f72342ee.css.gz | Bin 390 -> 0 bytes .../static/rest_framework/css/prettify.css | 30 - .../static/rest_framework/css/prettify.css.gz | Bin 390 -> 0 bytes .../static/rest_framework/docs/css/base.css | 359 - .../rest_framework/docs/css/base.css.gz | Bin 1609 -> 0 bytes .../docs/css/base.e630f8f4990e.css | 359 - .../docs/css/base.e630f8f4990e.css.gz | Bin 1609 -> 0 bytes .../rest_framework/docs/css/highlight.css | 125 - .../rest_framework/docs/css/highlight.css.gz | Bin 671 -> 0 bytes .../docs/css/highlight.e0e4d973c6d7.css | 125 - .../docs/css/highlight.e0e4d973c6d7.css.gz | Bin 671 -> 0 bytes .../css/jquery.json-view.min.a2e6beeb6710.css | 11 - .../jquery.json-view.min.a2e6beeb6710.css.gz | Bin 640 -> 0 bytes .../docs/css/jquery.json-view.min.css | 11 - .../docs/css/jquery.json-view.min.css.gz | Bin 640 -> 0 bytes .../docs/img/favicon.5195b4d0f3eb.ico | Bin 5430 -> 0 bytes .../docs/img/favicon.5195b4d0f3eb.ico.gz | Bin 256 -> 0 bytes .../rest_framework/docs/img/favicon.ico | Bin 5430 -> 0 bytes .../rest_framework/docs/img/favicon.ico.gz | Bin 256 -> 0 bytes .../docs/img/grid.a4b938cf382b.png | Bin 1458 -> 0 bytes .../static/rest_framework/docs/img/grid.png | Bin 1458 -> 0 bytes .../docs/js/api.18a5ba8a1bd8.js | 315 - .../docs/js/api.18a5ba8a1bd8.js.gz | Bin 2584 -> 0 bytes .../static/rest_framework/docs/js/api.js | 315 - .../static/rest_framework/docs/js/api.js.gz | Bin 2584 -> 0 bytes .../docs/js/highlight.pack.479b5f21dcba.js | 2 - .../docs/js/highlight.pack.479b5f21dcba.js.gz | Bin 112518 -> 0 bytes .../rest_framework/docs/js/highlight.pack.js | 2 - .../docs/js/highlight.pack.js.gz | Bin 112518 -> 0 bytes .../js/jquery.json-view.min.b7c2d6981377.js | 7 - .../jquery.json-view.min.b7c2d6981377.js.gz | Bin 1013 -> 0 bytes .../docs/js/jquery.json-view.min.js | 7 - .../docs/js/jquery.json-view.min.js.gz | Bin 1013 -> 0 bytes .../fontawesome-webfont.3293616ec0c6.woff | Bin 44432 -> 0 bytes .../fontawesome-webfont.83e37a11f9d7.svg | 414 - .../fontawesome-webfont.83e37a11f9d7.svg.gz | Bin 56103 -> 0 bytes .../fontawesome-webfont.8b27bc96115c.eot | Bin 38205 -> 0 bytes .../fontawesome-webfont.dcb26c7239d8.ttf | Bin 80652 -> 0 bytes .../fontawesome-webfont.dcb26c7239d8.ttf.gz | Bin 44333 -> 0 bytes .../fonts/fontawesome-webfont.eot | Bin 38205 -> 0 bytes .../fonts/fontawesome-webfont.svg | 414 - .../fonts/fontawesome-webfont.svg.gz | Bin 56103 -> 0 bytes .../fonts/fontawesome-webfont.ttf | Bin 80652 -> 0 bytes .../fonts/fontawesome-webfont.ttf.gz | Bin 44333 -> 0 bytes .../fonts/fontawesome-webfont.woff | Bin 44432 -> 0 bytes ...phicons-halflings-regular.08eda92397ae.svg | 288 - ...cons-halflings-regular.08eda92397ae.svg.gz | Bin 26509 -> 0 bytes ...icons-halflings-regular.448c34a56d69.woff2 | Bin 18028 -> 0 bytes ...phicons-halflings-regular.e18bbf611f2a.ttf | Bin 45404 -> 0 bytes ...cons-halflings-regular.e18bbf611f2a.ttf.gz | Bin 23360 -> 0 bytes .../fonts/glyphicons-halflings-regular.eot | Bin 20127 -> 0 bytes ...phicons-halflings-regular.f4769f9bdb74.eot | Bin 20127 -> 0 bytes ...hicons-halflings-regular.fa2772327f55.woff | Bin 23424 -> 0 bytes .../fonts/glyphicons-halflings-regular.svg | 288 - .../fonts/glyphicons-halflings-regular.svg.gz | Bin 26509 -> 0 bytes .../fonts/glyphicons-halflings-regular.ttf | Bin 45404 -> 0 bytes .../fonts/glyphicons-halflings-regular.ttf.gz | Bin 23360 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 23424 -> 0 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 18028 -> 0 bytes ...lyphicons-halflings-white.9bbc6e960299.png | Bin 8777 -> 0 bytes .../img/glyphicons-halflings-white.png | Bin 8777 -> 0 bytes .../img/glyphicons-halflings.90233c9067e9.png | Bin 12762 -> 0 bytes .../img/glyphicons-halflings.png | Bin 12762 -> 0 bytes .../rest_framework/img/grid.a4b938cf382b.png | Bin 1458 -> 0 bytes .../static/rest_framework/img/grid.png | Bin 1458 -> 0 bytes .../js/ajax-form.0ea6e6052ab5.js | 127 - .../js/ajax-form.0ea6e6052ab5.js.gz | Bin 1540 -> 0 bytes .../static/rest_framework/js/ajax-form.js | 127 - .../static/rest_framework/js/ajax-form.js.gz | Bin 1540 -> 0 bytes .../js/bootstrap.min.2f34b630ffe3.js | 6 - .../js/bootstrap.min.2f34b630ffe3.js.gz | Bin 10896 -> 0 bytes .../static/rest_framework/js/bootstrap.min.js | 6 - .../rest_framework/js/bootstrap.min.js.gz | Bin 10896 -> 0 bytes .../js/coreapi-0.1.1.e580e3854595.js | 2042 --- .../js/coreapi-0.1.1.e580e3854595.js.gz | Bin 14375 -> 0 bytes .../static/rest_framework/js/coreapi-0.1.1.js | 2043 --- .../rest_framework/js/coreapi-0.1.1.js.gz | Bin 40759 -> 0 bytes .../rest_framework/js/csrf.969930007329.js | 52 - .../rest_framework/js/csrf.969930007329.js.gz | Bin 787 -> 0 bytes .../static/rest_framework/js/csrf.js | 52 - .../static/rest_framework/js/csrf.js.gz | Bin 787 -> 0 bytes .../rest_framework/js/default.5b08897dbdc3.js | 47 - .../js/default.5b08897dbdc3.js.gz | Bin 571 -> 0 bytes .../static/rest_framework/js/default.js | 47 - .../static/rest_framework/js/default.js.gz | Bin 571 -> 0 bytes .../js/jquery-3.5.1.min.dc5e7f18c8d3.js | 2 - .../js/jquery-3.5.1.min.dc5e7f18c8d3.js.gz | Bin 30879 -> 0 bytes .../rest_framework/js/jquery-3.5.1.min.js | 2 - .../rest_framework/js/jquery-3.5.1.min.js.gz | Bin 30879 -> 0 bytes .../js/prettify-min.709bfcc456c6.js | 28 - .../js/prettify-min.709bfcc456c6.js.gz | Bin 6025 -> 0 bytes .../static/rest_framework/js/prettify-min.js | 28 - .../rest_framework/js/prettify-min.js.gz | Bin 6025 -> 0 bytes equipment_tracker/static/staticfiles.json | 1 - 623 files changed, 72328 deletions(-) delete mode 100644 equipment_tracker/static/admin/css/autocomplete.4a81fc4242d0.css delete mode 100644 equipment_tracker/static/admin/css/autocomplete.4a81fc4242d0.css.gz delete mode 100644 equipment_tracker/static/admin/css/autocomplete.css delete mode 100644 equipment_tracker/static/admin/css/autocomplete.css.gz delete mode 100644 equipment_tracker/static/admin/css/base.64976e0f7339.css delete mode 100644 equipment_tracker/static/admin/css/base.64976e0f7339.css.gz delete mode 100644 equipment_tracker/static/admin/css/base.css delete mode 100644 equipment_tracker/static/admin/css/base.css.gz delete mode 100644 equipment_tracker/static/admin/css/changelists.9237a1ac391b.css delete mode 100644 equipment_tracker/static/admin/css/changelists.9237a1ac391b.css.gz delete mode 100644 equipment_tracker/static/admin/css/changelists.css delete mode 100644 equipment_tracker/static/admin/css/changelists.css.gz delete mode 100644 equipment_tracker/static/admin/css/dark_mode.css delete mode 100644 equipment_tracker/static/admin/css/dark_mode.css.gz delete mode 100644 equipment_tracker/static/admin/css/dark_mode.ef27a31af300.css delete mode 100644 equipment_tracker/static/admin/css/dark_mode.ef27a31af300.css.gz delete mode 100644 equipment_tracker/static/admin/css/dashboard.css delete mode 100644 equipment_tracker/static/admin/css/dashboard.css.gz delete mode 100644 equipment_tracker/static/admin/css/dashboard.e90f2068217b.css delete mode 100644 equipment_tracker/static/admin/css/dashboard.e90f2068217b.css.gz delete mode 100644 equipment_tracker/static/admin/css/forms.3b181cba6653.css delete mode 100644 equipment_tracker/static/admin/css/forms.3b181cba6653.css.gz delete mode 100644 equipment_tracker/static/admin/css/forms.css delete mode 100644 equipment_tracker/static/admin/css/forms.css.gz delete mode 100644 equipment_tracker/static/admin/css/login.586129c60a93.css delete mode 100644 equipment_tracker/static/admin/css/login.586129c60a93.css.gz delete mode 100644 equipment_tracker/static/admin/css/login.css delete mode 100644 equipment_tracker/static/admin/css/login.css.gz delete mode 100644 equipment_tracker/static/admin/css/nav_sidebar.269a1bd44627.css delete mode 100644 equipment_tracker/static/admin/css/nav_sidebar.269a1bd44627.css.gz delete mode 100644 equipment_tracker/static/admin/css/nav_sidebar.css delete mode 100644 equipment_tracker/static/admin/css/nav_sidebar.css.gz delete mode 100644 equipment_tracker/static/admin/css/responsive.107cd2690311.css delete mode 100644 equipment_tracker/static/admin/css/responsive.107cd2690311.css.gz delete mode 100644 equipment_tracker/static/admin/css/responsive.css delete mode 100644 equipment_tracker/static/admin/css/responsive.css.gz delete mode 100644 equipment_tracker/static/admin/css/responsive_rtl.97b066429fd8.css delete mode 100644 equipment_tracker/static/admin/css/responsive_rtl.97b066429fd8.css.gz delete mode 100644 equipment_tracker/static/admin/css/responsive_rtl.css delete mode 100644 equipment_tracker/static/admin/css/responsive_rtl.css.gz delete mode 100644 equipment_tracker/static/admin/css/rtl.4685390ad96d.css delete mode 100644 equipment_tracker/static/admin/css/rtl.4685390ad96d.css.gz delete mode 100644 equipment_tracker/static/admin/css/rtl.css delete mode 100644 equipment_tracker/static/admin/css/rtl.css.gz delete mode 100644 equipment_tracker/static/admin/css/vendor/select2/LICENSE-SELECT2.f94142512c91.md delete mode 100644 equipment_tracker/static/admin/css/vendor/select2/LICENSE-SELECT2.f94142512c91.md.gz delete mode 100644 equipment_tracker/static/admin/css/vendor/select2/LICENSE-SELECT2.md delete mode 100644 equipment_tracker/static/admin/css/vendor/select2/LICENSE-SELECT2.md.gz delete mode 100644 equipment_tracker/static/admin/css/vendor/select2/select2.a2194c262648.css delete mode 100644 equipment_tracker/static/admin/css/vendor/select2/select2.a2194c262648.css.gz delete mode 100644 equipment_tracker/static/admin/css/vendor/select2/select2.css delete mode 100644 equipment_tracker/static/admin/css/vendor/select2/select2.css.gz delete mode 100644 equipment_tracker/static/admin/css/vendor/select2/select2.min.9f54e6414f87.css delete mode 100644 equipment_tracker/static/admin/css/vendor/select2/select2.min.9f54e6414f87.css.gz delete mode 100644 equipment_tracker/static/admin/css/vendor/select2/select2.min.css delete mode 100644 equipment_tracker/static/admin/css/vendor/select2/select2.min.css.gz delete mode 100644 equipment_tracker/static/admin/css/widgets.0a3765e806b3.css delete mode 100644 equipment_tracker/static/admin/css/widgets.0a3765e806b3.css.gz delete mode 100644 equipment_tracker/static/admin/css/widgets.css delete mode 100644 equipment_tracker/static/admin/css/widgets.css.gz delete mode 100644 equipment_tracker/static/admin/img/LICENSE delete mode 100644 equipment_tracker/static/admin/img/LICENSE.2c54f4e1ca1c delete mode 100644 equipment_tracker/static/admin/img/LICENSE.2c54f4e1ca1c.gz delete mode 100644 equipment_tracker/static/admin/img/LICENSE.gz delete mode 100644 equipment_tracker/static/admin/img/README.a70711a38d87.txt delete mode 100644 equipment_tracker/static/admin/img/README.a70711a38d87.txt.gz delete mode 100644 equipment_tracker/static/admin/img/README.txt delete mode 100644 equipment_tracker/static/admin/img/README.txt.gz delete mode 100644 equipment_tracker/static/admin/img/calendar-icons.39b290681a8b.svg delete mode 100644 equipment_tracker/static/admin/img/calendar-icons.39b290681a8b.svg.gz delete mode 100644 equipment_tracker/static/admin/img/calendar-icons.svg delete mode 100644 equipment_tracker/static/admin/img/calendar-icons.svg.gz delete mode 100644 equipment_tracker/static/admin/img/gis/move_vertex_off.7a23bf31ef8a.svg delete mode 100644 equipment_tracker/static/admin/img/gis/move_vertex_off.7a23bf31ef8a.svg.gz delete mode 100644 equipment_tracker/static/admin/img/gis/move_vertex_off.svg delete mode 100644 equipment_tracker/static/admin/img/gis/move_vertex_off.svg.gz delete mode 100644 equipment_tracker/static/admin/img/gis/move_vertex_on.0047eba25b67.svg delete mode 100644 equipment_tracker/static/admin/img/gis/move_vertex_on.0047eba25b67.svg.gz delete mode 100644 equipment_tracker/static/admin/img/gis/move_vertex_on.svg delete mode 100644 equipment_tracker/static/admin/img/gis/move_vertex_on.svg.gz delete mode 100644 equipment_tracker/static/admin/img/icon-addlink.d519b3bab011.svg delete mode 100644 equipment_tracker/static/admin/img/icon-addlink.d519b3bab011.svg.gz delete mode 100644 equipment_tracker/static/admin/img/icon-addlink.svg delete mode 100644 equipment_tracker/static/admin/img/icon-addlink.svg.gz delete mode 100644 equipment_tracker/static/admin/img/icon-alert.034cc7d8a67f.svg delete mode 100644 equipment_tracker/static/admin/img/icon-alert.034cc7d8a67f.svg.gz delete mode 100644 equipment_tracker/static/admin/img/icon-alert.svg delete mode 100644 equipment_tracker/static/admin/img/icon-alert.svg.gz delete mode 100644 equipment_tracker/static/admin/img/icon-calendar.ac7aea671bea.svg delete mode 100644 equipment_tracker/static/admin/img/icon-calendar.ac7aea671bea.svg.gz delete mode 100644 equipment_tracker/static/admin/img/icon-calendar.svg delete mode 100644 equipment_tracker/static/admin/img/icon-calendar.svg.gz delete mode 100644 equipment_tracker/static/admin/img/icon-changelink.18d2fd706348.svg delete mode 100644 equipment_tracker/static/admin/img/icon-changelink.18d2fd706348.svg.gz delete mode 100644 equipment_tracker/static/admin/img/icon-changelink.svg delete mode 100644 equipment_tracker/static/admin/img/icon-changelink.svg.gz delete mode 100644 equipment_tracker/static/admin/img/icon-clock.e1d4dfac3f2b.svg delete mode 100644 equipment_tracker/static/admin/img/icon-clock.e1d4dfac3f2b.svg.gz delete mode 100644 equipment_tracker/static/admin/img/icon-clock.svg delete mode 100644 equipment_tracker/static/admin/img/icon-clock.svg.gz delete mode 100644 equipment_tracker/static/admin/img/icon-deletelink.564ef9dc3854.svg delete mode 100644 equipment_tracker/static/admin/img/icon-deletelink.564ef9dc3854.svg.gz delete mode 100644 equipment_tracker/static/admin/img/icon-deletelink.svg delete mode 100644 equipment_tracker/static/admin/img/icon-deletelink.svg.gz delete mode 100644 equipment_tracker/static/admin/img/icon-no.439e821418cd.svg delete mode 100644 equipment_tracker/static/admin/img/icon-no.439e821418cd.svg.gz delete mode 100644 equipment_tracker/static/admin/img/icon-no.svg delete mode 100644 equipment_tracker/static/admin/img/icon-no.svg.gz delete mode 100644 equipment_tracker/static/admin/img/icon-unknown-alt.81536e128bb6.svg delete mode 100644 equipment_tracker/static/admin/img/icon-unknown-alt.81536e128bb6.svg.gz delete mode 100644 equipment_tracker/static/admin/img/icon-unknown-alt.svg delete mode 100644 equipment_tracker/static/admin/img/icon-unknown-alt.svg.gz delete mode 100644 equipment_tracker/static/admin/img/icon-unknown.a18cb4398978.svg delete mode 100644 equipment_tracker/static/admin/img/icon-unknown.a18cb4398978.svg.gz delete mode 100644 equipment_tracker/static/admin/img/icon-unknown.svg delete mode 100644 equipment_tracker/static/admin/img/icon-unknown.svg.gz delete mode 100644 equipment_tracker/static/admin/img/icon-viewlink.41eb31f7826e.svg delete mode 100644 equipment_tracker/static/admin/img/icon-viewlink.41eb31f7826e.svg.gz delete mode 100644 equipment_tracker/static/admin/img/icon-viewlink.svg delete mode 100644 equipment_tracker/static/admin/img/icon-viewlink.svg.gz delete mode 100644 equipment_tracker/static/admin/img/icon-yes.d2f9f035226a.svg delete mode 100644 equipment_tracker/static/admin/img/icon-yes.d2f9f035226a.svg.gz delete mode 100644 equipment_tracker/static/admin/img/icon-yes.svg delete mode 100644 equipment_tracker/static/admin/img/icon-yes.svg.gz delete mode 100644 equipment_tracker/static/admin/img/inline-delete.fec1b761f254.svg delete mode 100644 equipment_tracker/static/admin/img/inline-delete.fec1b761f254.svg.gz delete mode 100644 equipment_tracker/static/admin/img/inline-delete.svg delete mode 100644 equipment_tracker/static/admin/img/inline-delete.svg.gz delete mode 100644 equipment_tracker/static/admin/img/search.7cf54ff789c6.svg delete mode 100644 equipment_tracker/static/admin/img/search.7cf54ff789c6.svg.gz delete mode 100644 equipment_tracker/static/admin/img/search.svg delete mode 100644 equipment_tracker/static/admin/img/search.svg.gz delete mode 100644 equipment_tracker/static/admin/img/selector-icons.b4555096cea2.svg delete mode 100644 equipment_tracker/static/admin/img/selector-icons.b4555096cea2.svg.gz delete mode 100644 equipment_tracker/static/admin/img/selector-icons.svg delete mode 100644 equipment_tracker/static/admin/img/selector-icons.svg.gz delete mode 100644 equipment_tracker/static/admin/img/sorting-icons.3a097b59f104.svg delete mode 100644 equipment_tracker/static/admin/img/sorting-icons.3a097b59f104.svg.gz delete mode 100644 equipment_tracker/static/admin/img/sorting-icons.svg delete mode 100644 equipment_tracker/static/admin/img/sorting-icons.svg.gz delete mode 100644 equipment_tracker/static/admin/img/tooltag-add.e59d620a9742.svg delete mode 100644 equipment_tracker/static/admin/img/tooltag-add.e59d620a9742.svg.gz delete mode 100644 equipment_tracker/static/admin/img/tooltag-add.svg delete mode 100644 equipment_tracker/static/admin/img/tooltag-add.svg.gz delete mode 100644 equipment_tracker/static/admin/img/tooltag-arrowright.bbfb788a849e.svg delete mode 100644 equipment_tracker/static/admin/img/tooltag-arrowright.bbfb788a849e.svg.gz delete mode 100644 equipment_tracker/static/admin/img/tooltag-arrowright.svg delete mode 100644 equipment_tracker/static/admin/img/tooltag-arrowright.svg.gz delete mode 100644 equipment_tracker/static/admin/js/SelectBox.7d3ce5a98007.js delete mode 100644 equipment_tracker/static/admin/js/SelectBox.7d3ce5a98007.js.gz delete mode 100644 equipment_tracker/static/admin/js/SelectBox.js delete mode 100644 equipment_tracker/static/admin/js/SelectBox.js.gz delete mode 100644 equipment_tracker/static/admin/js/SelectFilter2.bdb8d0cc579e.js delete mode 100644 equipment_tracker/static/admin/js/SelectFilter2.bdb8d0cc579e.js.gz delete mode 100644 equipment_tracker/static/admin/js/SelectFilter2.js delete mode 100644 equipment_tracker/static/admin/js/SelectFilter2.js.gz delete mode 100644 equipment_tracker/static/admin/js/actions.eac7e3441574.js delete mode 100644 equipment_tracker/static/admin/js/actions.eac7e3441574.js.gz delete mode 100644 equipment_tracker/static/admin/js/actions.js delete mode 100644 equipment_tracker/static/admin/js/actions.js.gz delete mode 100644 equipment_tracker/static/admin/js/admin/DateTimeShortcuts.9f6e209cebca.js delete mode 100644 equipment_tracker/static/admin/js/admin/DateTimeShortcuts.9f6e209cebca.js.gz delete mode 100644 equipment_tracker/static/admin/js/admin/DateTimeShortcuts.js delete mode 100644 equipment_tracker/static/admin/js/admin/DateTimeShortcuts.js.gz delete mode 100644 equipment_tracker/static/admin/js/admin/RelatedObjectLookups.8609f99b9ab2.js delete mode 100644 equipment_tracker/static/admin/js/admin/RelatedObjectLookups.8609f99b9ab2.js.gz delete mode 100644 equipment_tracker/static/admin/js/admin/RelatedObjectLookups.js delete mode 100644 equipment_tracker/static/admin/js/admin/RelatedObjectLookups.js.gz delete mode 100644 equipment_tracker/static/admin/js/autocomplete.01591ab27be7.js delete mode 100644 equipment_tracker/static/admin/js/autocomplete.01591ab27be7.js.gz delete mode 100644 equipment_tracker/static/admin/js/autocomplete.js delete mode 100644 equipment_tracker/static/admin/js/autocomplete.js.gz delete mode 100644 equipment_tracker/static/admin/js/calendar.f8a5d055eb33.js delete mode 100644 equipment_tracker/static/admin/js/calendar.f8a5d055eb33.js.gz delete mode 100644 equipment_tracker/static/admin/js/calendar.js delete mode 100644 equipment_tracker/static/admin/js/calendar.js.gz delete mode 100644 equipment_tracker/static/admin/js/cancel.ecc4c5ca7b32.js delete mode 100644 equipment_tracker/static/admin/js/cancel.ecc4c5ca7b32.js.gz delete mode 100644 equipment_tracker/static/admin/js/cancel.js delete mode 100644 equipment_tracker/static/admin/js/cancel.js.gz delete mode 100644 equipment_tracker/static/admin/js/change_form.9d8ca4f96b75.js delete mode 100644 equipment_tracker/static/admin/js/change_form.9d8ca4f96b75.js.gz delete mode 100644 equipment_tracker/static/admin/js/change_form.js delete mode 100644 equipment_tracker/static/admin/js/change_form.js.gz delete mode 100644 equipment_tracker/static/admin/js/collapse.f84e7410290f.js delete mode 100644 equipment_tracker/static/admin/js/collapse.f84e7410290f.js.gz delete mode 100644 equipment_tracker/static/admin/js/collapse.js delete mode 100644 equipment_tracker/static/admin/js/collapse.js.gz delete mode 100644 equipment_tracker/static/admin/js/core.cf103cd04ebf.js delete mode 100644 equipment_tracker/static/admin/js/core.cf103cd04ebf.js.gz delete mode 100644 equipment_tracker/static/admin/js/core.js delete mode 100644 equipment_tracker/static/admin/js/core.js.gz delete mode 100644 equipment_tracker/static/admin/js/filters.0e360b7a9f80.js delete mode 100644 equipment_tracker/static/admin/js/filters.0e360b7a9f80.js.gz delete mode 100644 equipment_tracker/static/admin/js/filters.js delete mode 100644 equipment_tracker/static/admin/js/filters.js.gz delete mode 100644 equipment_tracker/static/admin/js/inlines.22d4d93c00b4.js delete mode 100644 equipment_tracker/static/admin/js/inlines.22d4d93c00b4.js.gz delete mode 100644 equipment_tracker/static/admin/js/inlines.js delete mode 100644 equipment_tracker/static/admin/js/inlines.js.gz delete mode 100644 equipment_tracker/static/admin/js/jquery.init.b7781a0897fc.js delete mode 100644 equipment_tracker/static/admin/js/jquery.init.b7781a0897fc.js.gz delete mode 100644 equipment_tracker/static/admin/js/jquery.init.js delete mode 100644 equipment_tracker/static/admin/js/jquery.init.js.gz delete mode 100644 equipment_tracker/static/admin/js/nav_sidebar.3b9190d420b1.js delete mode 100644 equipment_tracker/static/admin/js/nav_sidebar.3b9190d420b1.js.gz delete mode 100644 equipment_tracker/static/admin/js/nav_sidebar.js delete mode 100644 equipment_tracker/static/admin/js/nav_sidebar.js.gz delete mode 100644 equipment_tracker/static/admin/js/popup_response.c6cc78ea5551.js delete mode 100644 equipment_tracker/static/admin/js/popup_response.c6cc78ea5551.js.gz delete mode 100644 equipment_tracker/static/admin/js/popup_response.js delete mode 100644 equipment_tracker/static/admin/js/popup_response.js.gz delete mode 100644 equipment_tracker/static/admin/js/prepopulate.bd2361dfd64d.js delete mode 100644 equipment_tracker/static/admin/js/prepopulate.bd2361dfd64d.js.gz delete mode 100644 equipment_tracker/static/admin/js/prepopulate.js delete mode 100644 equipment_tracker/static/admin/js/prepopulate.js.gz delete mode 100644 equipment_tracker/static/admin/js/prepopulate_init.6cac7f3105b8.js delete mode 100644 equipment_tracker/static/admin/js/prepopulate_init.6cac7f3105b8.js.gz delete mode 100644 equipment_tracker/static/admin/js/prepopulate_init.js delete mode 100644 equipment_tracker/static/admin/js/prepopulate_init.js.gz delete mode 100644 equipment_tracker/static/admin/js/theme.ab270f56bb9c.js delete mode 100644 equipment_tracker/static/admin/js/theme.ab270f56bb9c.js.gz delete mode 100644 equipment_tracker/static/admin/js/theme.js delete mode 100644 equipment_tracker/static/admin/js/theme.js.gz delete mode 100644 equipment_tracker/static/admin/js/urlify.ae970a820212.js delete mode 100644 equipment_tracker/static/admin/js/urlify.ae970a820212.js.gz delete mode 100644 equipment_tracker/static/admin/js/urlify.js delete mode 100644 equipment_tracker/static/admin/js/urlify.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/jquery/LICENSE.de877aa6d744.txt delete mode 100644 equipment_tracker/static/admin/js/vendor/jquery/LICENSE.de877aa6d744.txt.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/jquery/LICENSE.txt delete mode 100644 equipment_tracker/static/admin/js/vendor/jquery/LICENSE.txt.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/jquery/jquery.0208b96062ba.js delete mode 100644 equipment_tracker/static/admin/js/vendor/jquery/jquery.0208b96062ba.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/jquery/jquery.js delete mode 100644 equipment_tracker/static/admin/js/vendor/jquery/jquery.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/jquery/jquery.min.641dd1437010.js delete mode 100644 equipment_tracker/static/admin/js/vendor/jquery/jquery.min.641dd1437010.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/jquery/jquery.min.js delete mode 100644 equipment_tracker/static/admin/js/vendor/jquery/jquery.min.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/LICENSE.f94142512c91.md delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/LICENSE.f94142512c91.md.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/LICENSE.md delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/LICENSE.md.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/af.4f6fcd73488c.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/af.4f6fcd73488c.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/af.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/af.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ar.65aa8e36bf5d.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ar.65aa8e36bf5d.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ar.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ar.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/az.270c257daf81.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/az.270c257daf81.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/az.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/az.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/bg.39b8be30d4f0.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/bg.39b8be30d4f0.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/bg.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/bg.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/bn.6d42b4dd5665.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/bn.6d42b4dd5665.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/bn.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/bn.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/bs.91624382358e.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/bs.91624382358e.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/bs.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/bs.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ca.a166b745933a.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ca.a166b745933a.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ca.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ca.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/cs.4f43e8e7d33a.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/cs.4f43e8e7d33a.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/cs.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/cs.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/da.766346afe4dd.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/da.766346afe4dd.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/da.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/da.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/de.8a1c222b0204.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/de.8a1c222b0204.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/de.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/de.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/dsb.56372c92d2f1.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/dsb.56372c92d2f1.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/dsb.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/dsb.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/el.27097f071856.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/el.27097f071856.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/el.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/el.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/en.cf932ba09a98.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/en.cf932ba09a98.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/en.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/en.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/es.66dbc2652fb1.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/es.66dbc2652fb1.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/es.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/es.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/et.2b96fd98289d.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/et.2b96fd98289d.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/et.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/et.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/eu.adfe5c97b72c.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/eu.adfe5c97b72c.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/eu.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/eu.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/fa.3b5bd1961cfd.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/fa.3b5bd1961cfd.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/fa.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/fa.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/fi.614ec42aa9ba.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/fi.614ec42aa9ba.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/fi.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/fi.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/fr.05e0542fcfe6.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/fr.05e0542fcfe6.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/fr.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/fr.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/gl.d99b1fedaa86.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/gl.d99b1fedaa86.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/gl.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/gl.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/he.e420ff6cd3ed.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/he.e420ff6cd3ed.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/he.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/he.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hi.70640d41628f.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hi.70640d41628f.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hi.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hi.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hr.a2b092cc1147.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hr.a2b092cc1147.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hr.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hr.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hsb.fa3b55265efe.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hsb.fa3b55265efe.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hsb.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hsb.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hu.6ec6039cb8a3.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hu.6ec6039cb8a3.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hu.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hu.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hy.c7babaeef5a6.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hy.c7babaeef5a6.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hy.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hy.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/id.04debded514d.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/id.04debded514d.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/id.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/id.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/is.3ddd9a6a97e9.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/is.3ddd9a6a97e9.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/is.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/is.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/it.be4fe8d365b5.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/it.be4fe8d365b5.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/it.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/it.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ja.170ae885d74f.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ja.170ae885d74f.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ja.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ja.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ka.2083264a54f0.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ka.2083264a54f0.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ka.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ka.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/km.c23089cb06ca.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/km.c23089cb06ca.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/km.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/km.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ko.e7be6c20e673.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ko.e7be6c20e673.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ko.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ko.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/lt.23c7ce903300.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/lt.23c7ce903300.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/lt.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/lt.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/lv.08e62128eac1.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/lv.08e62128eac1.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/lv.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/lv.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/mk.dabbb9087130.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/mk.dabbb9087130.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/mk.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/mk.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ms.4ba82c9a51ce.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ms.4ba82c9a51ce.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ms.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ms.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/nb.da2fce143f27.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/nb.da2fce143f27.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/nb.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/nb.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ne.3d79fd3f08db.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ne.3d79fd3f08db.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ne.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ne.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/nl.997868a37ed8.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/nl.997868a37ed8.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/nl.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/nl.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/pl.6031b4f16452.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/pl.6031b4f16452.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/pl.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/pl.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ps.38dfa47af9e0.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ps.38dfa47af9e0.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ps.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ps.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/pt-BR.e1b294433e7f.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/pt-BR.e1b294433e7f.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/pt-BR.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/pt-BR.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/pt.33b4a3b44d43.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/pt.33b4a3b44d43.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/pt.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/pt.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ro.f75cb460ec3b.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ro.f75cb460ec3b.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ro.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ro.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ru.934aa95f5b5f.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ru.934aa95f5b5f.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ru.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ru.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sk.33d02cef8d11.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sk.33d02cef8d11.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sk.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sk.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sl.131a78bc0752.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sl.131a78bc0752.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sl.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sl.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sq.5636b60d29c9.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sq.5636b60d29c9.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sq.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sq.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sr-Cyrl.f254bb8c4c7c.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sr-Cyrl.f254bb8c4c7c.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sr-Cyrl.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sr-Cyrl.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sr.5ed85a48f483.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sr.5ed85a48f483.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sr.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sr.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sv.7a9c2f71e777.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sv.7a9c2f71e777.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sv.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sv.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/th.f38c20b0221b.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/th.f38c20b0221b.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/th.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/th.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/tk.7c572a68c78f.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/tk.7c572a68c78f.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/tk.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/tk.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/tr.b5a0643d1545.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/tr.b5a0643d1545.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/tr.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/tr.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/uk.8cede7f4803c.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/uk.8cede7f4803c.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/uk.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/uk.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/vi.097a5b75b3e1.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/vi.097a5b75b3e1.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/vi.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/vi.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/zh-CN.2cff662ec5f9.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/zh-CN.2cff662ec5f9.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/zh-CN.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/zh-CN.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/zh-TW.04554a227c2b.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/zh-TW.04554a227c2b.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/zh-TW.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/zh-TW.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/select2.full.c2afdeda3058.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/select2.full.c2afdeda3058.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/select2.full.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/select2.full.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/select2.full.min.fcd7500d8e13.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/select2.full.min.fcd7500d8e13.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/select2.full.min.js delete mode 100644 equipment_tracker/static/admin/js/vendor/select2/select2.full.min.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/xregexp/LICENSE.bf79e414957a.txt delete mode 100644 equipment_tracker/static/admin/js/vendor/xregexp/LICENSE.bf79e414957a.txt.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/xregexp/LICENSE.txt delete mode 100644 equipment_tracker/static/admin/js/vendor/xregexp/LICENSE.txt.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/xregexp/xregexp.efda034b9537.js delete mode 100644 equipment_tracker/static/admin/js/vendor/xregexp/xregexp.efda034b9537.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/xregexp/xregexp.js delete mode 100644 equipment_tracker/static/admin/js/vendor/xregexp/xregexp.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/xregexp/xregexp.min.b0439563a5d3.js delete mode 100644 equipment_tracker/static/admin/js/vendor/xregexp/xregexp.min.b0439563a5d3.js.gz delete mode 100644 equipment_tracker/static/admin/js/vendor/xregexp/xregexp.min.js delete mode 100644 equipment_tracker/static/admin/js/vendor/xregexp/xregexp.min.js.gz delete mode 100644 equipment_tracker/static/rest_framework/css/bootstrap-theme.min.1d4b05b397c3.css delete mode 100644 equipment_tracker/static/rest_framework/css/bootstrap-theme.min.1d4b05b397c3.css.gz delete mode 100644 equipment_tracker/static/rest_framework/css/bootstrap-theme.min.css delete mode 100644 equipment_tracker/static/rest_framework/css/bootstrap-theme.min.css.51806092cc05.map delete mode 100644 equipment_tracker/static/rest_framework/css/bootstrap-theme.min.css.51806092cc05.map.gz delete mode 100644 equipment_tracker/static/rest_framework/css/bootstrap-theme.min.css.gz delete mode 100644 equipment_tracker/static/rest_framework/css/bootstrap-theme.min.css.map delete mode 100644 equipment_tracker/static/rest_framework/css/bootstrap-theme.min.css.map.gz delete mode 100644 equipment_tracker/static/rest_framework/css/bootstrap-tweaks.46ed116b0edd.css delete mode 100644 equipment_tracker/static/rest_framework/css/bootstrap-tweaks.46ed116b0edd.css.gz delete mode 100644 equipment_tracker/static/rest_framework/css/bootstrap-tweaks.css delete mode 100644 equipment_tracker/static/rest_framework/css/bootstrap-tweaks.css.gz delete mode 100644 equipment_tracker/static/rest_framework/css/bootstrap.min.css delete mode 100644 equipment_tracker/static/rest_framework/css/bootstrap.min.css.cafbda9c0e9e.map delete mode 100644 equipment_tracker/static/rest_framework/css/bootstrap.min.css.cafbda9c0e9e.map.gz delete mode 100644 equipment_tracker/static/rest_framework/css/bootstrap.min.css.gz delete mode 100644 equipment_tracker/static/rest_framework/css/bootstrap.min.css.map delete mode 100644 equipment_tracker/static/rest_framework/css/bootstrap.min.css.map.gz delete mode 100644 equipment_tracker/static/rest_framework/css/bootstrap.min.f17d4516b026.css delete mode 100644 equipment_tracker/static/rest_framework/css/bootstrap.min.f17d4516b026.css.gz delete mode 100644 equipment_tracker/static/rest_framework/css/default.789dfb5732d7.css delete mode 100644 equipment_tracker/static/rest_framework/css/default.789dfb5732d7.css.gz delete mode 100644 equipment_tracker/static/rest_framework/css/default.css delete mode 100644 equipment_tracker/static/rest_framework/css/default.css.gz delete mode 100644 equipment_tracker/static/rest_framework/css/font-awesome-4.0.3.c1e1ea213abf.css delete mode 100644 equipment_tracker/static/rest_framework/css/font-awesome-4.0.3.c1e1ea213abf.css.gz delete mode 100644 equipment_tracker/static/rest_framework/css/font-awesome-4.0.3.css delete mode 100644 equipment_tracker/static/rest_framework/css/font-awesome-4.0.3.css.gz delete mode 100644 equipment_tracker/static/rest_framework/css/prettify.a987f72342ee.css delete mode 100644 equipment_tracker/static/rest_framework/css/prettify.a987f72342ee.css.gz delete mode 100644 equipment_tracker/static/rest_framework/css/prettify.css delete mode 100644 equipment_tracker/static/rest_framework/css/prettify.css.gz delete mode 100644 equipment_tracker/static/rest_framework/docs/css/base.css delete mode 100644 equipment_tracker/static/rest_framework/docs/css/base.css.gz delete mode 100644 equipment_tracker/static/rest_framework/docs/css/base.e630f8f4990e.css delete mode 100644 equipment_tracker/static/rest_framework/docs/css/base.e630f8f4990e.css.gz delete mode 100644 equipment_tracker/static/rest_framework/docs/css/highlight.css delete mode 100644 equipment_tracker/static/rest_framework/docs/css/highlight.css.gz delete mode 100644 equipment_tracker/static/rest_framework/docs/css/highlight.e0e4d973c6d7.css delete mode 100644 equipment_tracker/static/rest_framework/docs/css/highlight.e0e4d973c6d7.css.gz delete mode 100644 equipment_tracker/static/rest_framework/docs/css/jquery.json-view.min.a2e6beeb6710.css delete mode 100644 equipment_tracker/static/rest_framework/docs/css/jquery.json-view.min.a2e6beeb6710.css.gz delete mode 100644 equipment_tracker/static/rest_framework/docs/css/jquery.json-view.min.css delete mode 100644 equipment_tracker/static/rest_framework/docs/css/jquery.json-view.min.css.gz delete mode 100644 equipment_tracker/static/rest_framework/docs/img/favicon.5195b4d0f3eb.ico delete mode 100644 equipment_tracker/static/rest_framework/docs/img/favicon.5195b4d0f3eb.ico.gz delete mode 100644 equipment_tracker/static/rest_framework/docs/img/favicon.ico delete mode 100644 equipment_tracker/static/rest_framework/docs/img/favicon.ico.gz delete mode 100644 equipment_tracker/static/rest_framework/docs/img/grid.a4b938cf382b.png delete mode 100644 equipment_tracker/static/rest_framework/docs/img/grid.png delete mode 100644 equipment_tracker/static/rest_framework/docs/js/api.18a5ba8a1bd8.js delete mode 100644 equipment_tracker/static/rest_framework/docs/js/api.18a5ba8a1bd8.js.gz delete mode 100644 equipment_tracker/static/rest_framework/docs/js/api.js delete mode 100644 equipment_tracker/static/rest_framework/docs/js/api.js.gz delete mode 100644 equipment_tracker/static/rest_framework/docs/js/highlight.pack.479b5f21dcba.js delete mode 100644 equipment_tracker/static/rest_framework/docs/js/highlight.pack.479b5f21dcba.js.gz delete mode 100644 equipment_tracker/static/rest_framework/docs/js/highlight.pack.js delete mode 100644 equipment_tracker/static/rest_framework/docs/js/highlight.pack.js.gz delete mode 100644 equipment_tracker/static/rest_framework/docs/js/jquery.json-view.min.b7c2d6981377.js delete mode 100644 equipment_tracker/static/rest_framework/docs/js/jquery.json-view.min.b7c2d6981377.js.gz delete mode 100644 equipment_tracker/static/rest_framework/docs/js/jquery.json-view.min.js delete mode 100644 equipment_tracker/static/rest_framework/docs/js/jquery.json-view.min.js.gz delete mode 100644 equipment_tracker/static/rest_framework/fonts/fontawesome-webfont.3293616ec0c6.woff delete mode 100644 equipment_tracker/static/rest_framework/fonts/fontawesome-webfont.83e37a11f9d7.svg delete mode 100644 equipment_tracker/static/rest_framework/fonts/fontawesome-webfont.83e37a11f9d7.svg.gz delete mode 100644 equipment_tracker/static/rest_framework/fonts/fontawesome-webfont.8b27bc96115c.eot delete mode 100644 equipment_tracker/static/rest_framework/fonts/fontawesome-webfont.dcb26c7239d8.ttf delete mode 100644 equipment_tracker/static/rest_framework/fonts/fontawesome-webfont.dcb26c7239d8.ttf.gz delete mode 100644 equipment_tracker/static/rest_framework/fonts/fontawesome-webfont.eot delete mode 100644 equipment_tracker/static/rest_framework/fonts/fontawesome-webfont.svg delete mode 100644 equipment_tracker/static/rest_framework/fonts/fontawesome-webfont.svg.gz delete mode 100644 equipment_tracker/static/rest_framework/fonts/fontawesome-webfont.ttf delete mode 100644 equipment_tracker/static/rest_framework/fonts/fontawesome-webfont.ttf.gz delete mode 100644 equipment_tracker/static/rest_framework/fonts/fontawesome-webfont.woff delete mode 100644 equipment_tracker/static/rest_framework/fonts/glyphicons-halflings-regular.08eda92397ae.svg delete mode 100644 equipment_tracker/static/rest_framework/fonts/glyphicons-halflings-regular.08eda92397ae.svg.gz delete mode 100644 equipment_tracker/static/rest_framework/fonts/glyphicons-halflings-regular.448c34a56d69.woff2 delete mode 100644 equipment_tracker/static/rest_framework/fonts/glyphicons-halflings-regular.e18bbf611f2a.ttf delete mode 100644 equipment_tracker/static/rest_framework/fonts/glyphicons-halflings-regular.e18bbf611f2a.ttf.gz delete mode 100644 equipment_tracker/static/rest_framework/fonts/glyphicons-halflings-regular.eot delete mode 100644 equipment_tracker/static/rest_framework/fonts/glyphicons-halflings-regular.f4769f9bdb74.eot delete mode 100644 equipment_tracker/static/rest_framework/fonts/glyphicons-halflings-regular.fa2772327f55.woff delete mode 100644 equipment_tracker/static/rest_framework/fonts/glyphicons-halflings-regular.svg delete mode 100644 equipment_tracker/static/rest_framework/fonts/glyphicons-halflings-regular.svg.gz delete mode 100644 equipment_tracker/static/rest_framework/fonts/glyphicons-halflings-regular.ttf delete mode 100644 equipment_tracker/static/rest_framework/fonts/glyphicons-halflings-regular.ttf.gz delete mode 100644 equipment_tracker/static/rest_framework/fonts/glyphicons-halflings-regular.woff delete mode 100644 equipment_tracker/static/rest_framework/fonts/glyphicons-halflings-regular.woff2 delete mode 100644 equipment_tracker/static/rest_framework/img/glyphicons-halflings-white.9bbc6e960299.png delete mode 100644 equipment_tracker/static/rest_framework/img/glyphicons-halflings-white.png delete mode 100644 equipment_tracker/static/rest_framework/img/glyphicons-halflings.90233c9067e9.png delete mode 100644 equipment_tracker/static/rest_framework/img/glyphicons-halflings.png delete mode 100644 equipment_tracker/static/rest_framework/img/grid.a4b938cf382b.png delete mode 100644 equipment_tracker/static/rest_framework/img/grid.png delete mode 100644 equipment_tracker/static/rest_framework/js/ajax-form.0ea6e6052ab5.js delete mode 100644 equipment_tracker/static/rest_framework/js/ajax-form.0ea6e6052ab5.js.gz delete mode 100644 equipment_tracker/static/rest_framework/js/ajax-form.js delete mode 100644 equipment_tracker/static/rest_framework/js/ajax-form.js.gz delete mode 100644 equipment_tracker/static/rest_framework/js/bootstrap.min.2f34b630ffe3.js delete mode 100644 equipment_tracker/static/rest_framework/js/bootstrap.min.2f34b630ffe3.js.gz delete mode 100644 equipment_tracker/static/rest_framework/js/bootstrap.min.js delete mode 100644 equipment_tracker/static/rest_framework/js/bootstrap.min.js.gz delete mode 100644 equipment_tracker/static/rest_framework/js/coreapi-0.1.1.e580e3854595.js delete mode 100644 equipment_tracker/static/rest_framework/js/coreapi-0.1.1.e580e3854595.js.gz delete mode 100644 equipment_tracker/static/rest_framework/js/coreapi-0.1.1.js delete mode 100644 equipment_tracker/static/rest_framework/js/coreapi-0.1.1.js.gz delete mode 100644 equipment_tracker/static/rest_framework/js/csrf.969930007329.js delete mode 100644 equipment_tracker/static/rest_framework/js/csrf.969930007329.js.gz delete mode 100644 equipment_tracker/static/rest_framework/js/csrf.js delete mode 100644 equipment_tracker/static/rest_framework/js/csrf.js.gz delete mode 100644 equipment_tracker/static/rest_framework/js/default.5b08897dbdc3.js delete mode 100644 equipment_tracker/static/rest_framework/js/default.5b08897dbdc3.js.gz delete mode 100644 equipment_tracker/static/rest_framework/js/default.js delete mode 100644 equipment_tracker/static/rest_framework/js/default.js.gz delete mode 100644 equipment_tracker/static/rest_framework/js/jquery-3.5.1.min.dc5e7f18c8d3.js delete mode 100644 equipment_tracker/static/rest_framework/js/jquery-3.5.1.min.dc5e7f18c8d3.js.gz delete mode 100644 equipment_tracker/static/rest_framework/js/jquery-3.5.1.min.js delete mode 100644 equipment_tracker/static/rest_framework/js/jquery-3.5.1.min.js.gz delete mode 100644 equipment_tracker/static/rest_framework/js/prettify-min.709bfcc456c6.js delete mode 100644 equipment_tracker/static/rest_framework/js/prettify-min.709bfcc456c6.js.gz delete mode 100644 equipment_tracker/static/rest_framework/js/prettify-min.js delete mode 100644 equipment_tracker/static/rest_framework/js/prettify-min.js.gz delete mode 100644 equipment_tracker/static/staticfiles.json diff --git a/equipment_tracker/static/admin/css/autocomplete.4a81fc4242d0.css b/equipment_tracker/static/admin/css/autocomplete.4a81fc4242d0.css deleted file mode 100644 index 69c94e7..0000000 --- a/equipment_tracker/static/admin/css/autocomplete.4a81fc4242d0.css +++ /dev/null @@ -1,275 +0,0 @@ -select.admin-autocomplete { - width: 20em; -} - -.select2-container--admin-autocomplete.select2-container { - min-height: 30px; -} - -.select2-container--admin-autocomplete .select2-selection--single, -.select2-container--admin-autocomplete .select2-selection--multiple { - min-height: 30px; - padding: 0; -} - -.select2-container--admin-autocomplete.select2-container--focus .select2-selection, -.select2-container--admin-autocomplete.select2-container--open .select2-selection { - border-color: var(--body-quiet-color); - min-height: 30px; -} - -.select2-container--admin-autocomplete.select2-container--focus .select2-selection.select2-selection--single, -.select2-container--admin-autocomplete.select2-container--open .select2-selection.select2-selection--single { - padding: 0; -} - -.select2-container--admin-autocomplete.select2-container--focus .select2-selection.select2-selection--multiple, -.select2-container--admin-autocomplete.select2-container--open .select2-selection.select2-selection--multiple { - padding: 0; -} - -.select2-container--admin-autocomplete .select2-selection--single { - background-color: var(--body-bg); - border: 1px solid var(--border-color); - border-radius: 4px; -} - -.select2-container--admin-autocomplete .select2-selection--single .select2-selection__rendered { - color: var(--body-fg); - line-height: 30px; -} - -.select2-container--admin-autocomplete .select2-selection--single .select2-selection__clear { - cursor: pointer; - float: right; - font-weight: bold; -} - -.select2-container--admin-autocomplete .select2-selection--single .select2-selection__placeholder { - color: var(--body-quiet-color); -} - -.select2-container--admin-autocomplete .select2-selection--single .select2-selection__arrow { - height: 26px; - position: absolute; - top: 1px; - right: 1px; - width: 20px; -} - -.select2-container--admin-autocomplete .select2-selection--single .select2-selection__arrow b { - border-color: #888 transparent transparent transparent; - border-style: solid; - border-width: 5px 4px 0 4px; - height: 0; - left: 50%; - margin-left: -4px; - margin-top: -2px; - position: absolute; - top: 50%; - width: 0; -} - -.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--single .select2-selection__clear { - float: left; -} - -.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--single .select2-selection__arrow { - left: 1px; - right: auto; -} - -.select2-container--admin-autocomplete.select2-container--disabled .select2-selection--single { - background-color: var(--darkened-bg); - cursor: default; -} - -.select2-container--admin-autocomplete.select2-container--disabled .select2-selection--single .select2-selection__clear { - display: none; -} - -.select2-container--admin-autocomplete.select2-container--open .select2-selection--single .select2-selection__arrow b { - border-color: transparent transparent #888 transparent; - border-width: 0 4px 5px 4px; -} - -.select2-container--admin-autocomplete .select2-selection--multiple { - background-color: var(--body-bg); - border: 1px solid var(--border-color); - border-radius: 4px; - cursor: text; -} - -.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__rendered { - box-sizing: border-box; - list-style: none; - margin: 0; - padding: 0 10px 5px 5px; - width: 100%; - display: flex; - flex-wrap: wrap; -} - -.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__rendered li { - list-style: none; -} - -.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__placeholder { - color: var(--body-quiet-color); - margin-top: 5px; - float: left; -} - -.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__clear { - cursor: pointer; - float: right; - font-weight: bold; - margin: 5px; - position: absolute; - right: 0; -} - -.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__choice { - background-color: var(--darkened-bg); - border: 1px solid var(--border-color); - border-radius: 4px; - cursor: default; - float: left; - margin-right: 5px; - margin-top: 5px; - padding: 0 5px; -} - -.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__choice__remove { - color: var(--body-quiet-color); - cursor: pointer; - display: inline-block; - font-weight: bold; - margin-right: 2px; -} - -.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__choice__remove:hover { - color: var(--body-fg); -} - -.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-search--inline { - float: right; -} - -.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__choice { - margin-left: 5px; - margin-right: auto; -} - -.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove { - margin-left: 2px; - margin-right: auto; -} - -.select2-container--admin-autocomplete.select2-container--focus .select2-selection--multiple { - border: solid var(--body-quiet-color) 1px; - outline: 0; -} - -.select2-container--admin-autocomplete.select2-container--disabled .select2-selection--multiple { - background-color: var(--darkened-bg); - cursor: default; -} - -.select2-container--admin-autocomplete.select2-container--disabled .select2-selection__choice__remove { - display: none; -} - -.select2-container--admin-autocomplete.select2-container--open.select2-container--above .select2-selection--single, .select2-container--admin-autocomplete.select2-container--open.select2-container--above .select2-selection--multiple { - border-top-left-radius: 0; - border-top-right-radius: 0; -} - -.select2-container--admin-autocomplete.select2-container--open.select2-container--below .select2-selection--single, .select2-container--admin-autocomplete.select2-container--open.select2-container--below .select2-selection--multiple { - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; -} - -.select2-container--admin-autocomplete .select2-search--dropdown { - background: var(--darkened-bg); -} - -.select2-container--admin-autocomplete .select2-search--dropdown .select2-search__field { - background: var(--body-bg); - color: var(--body-fg); - border: 1px solid var(--border-color); - border-radius: 4px; -} - -.select2-container--admin-autocomplete .select2-search--inline .select2-search__field { - background: transparent; - color: var(--body-fg); - border: none; - outline: 0; - box-shadow: none; - -webkit-appearance: textfield; -} - -.select2-container--admin-autocomplete .select2-results > .select2-results__options { - max-height: 200px; - overflow-y: auto; - color: var(--body-fg); - background: var(--body-bg); -} - -.select2-container--admin-autocomplete .select2-results__option[role=group] { - padding: 0; -} - -.select2-container--admin-autocomplete .select2-results__option[aria-disabled=true] { - color: var(--body-quiet-color); -} - -.select2-container--admin-autocomplete .select2-results__option[aria-selected=true] { - background-color: var(--selected-bg); - color: var(--body-fg); -} - -.select2-container--admin-autocomplete .select2-results__option .select2-results__option { - padding-left: 1em; -} - -.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__group { - padding-left: 0; -} - -.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option { - margin-left: -1em; - padding-left: 2em; -} - -.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option { - margin-left: -2em; - padding-left: 3em; -} - -.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { - margin-left: -3em; - padding-left: 4em; -} - -.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { - margin-left: -4em; - padding-left: 5em; -} - -.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { - margin-left: -5em; - padding-left: 6em; -} - -.select2-container--admin-autocomplete .select2-results__option--highlighted[aria-selected] { - background-color: var(--primary); - color: var(--primary-fg); -} - -.select2-container--admin-autocomplete .select2-results__group { - cursor: default; - display: block; - padding: 6px; -} diff --git a/equipment_tracker/static/admin/css/autocomplete.4a81fc4242d0.css.gz b/equipment_tracker/static/admin/css/autocomplete.4a81fc4242d0.css.gz deleted file mode 100644 index 7cd12df9483ef372338842a86eb0aedf148d04aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1147 zcmV->1cdt^iwFP!00002|J_;ZZsRBv{@-s>)U8MMhPG4T({S@nSql zcD3)m*kIxdPU7p#Y=5K)V9s}L-#OrvFcQkI2=8eOQ6_oF_X#7CfPe0Q`a4i8BOk0h zvVXn%_wMd%T0F3VA&(`ZF%b~9A8xNQ+vN)*LU)n$!K0TPd+Z79GX0cDY7Vo#os*s-NiDBuFCRUv0w_}~W;e?S;; ze1d;vlt?}P=j&MS^wD*^BYRk(TbQxW?5@2ObPFlmi19%xgR7PdQ24PEJd3d-+Jc=4 zG98aTcu0;Q<&0vx>Kv!FrBEPDv(yJqQ}KmkYO@g}R>BB2%Ct4umKrc6at0Q2q6!&7 zC3%LKNOMdHr?DhLgV{2U6bzB0F(XPoJQ#QZXLv?<2}2=?lnl%8*LY?&C`br?Fd$0j zte!1_^OWZ6e1HNKb(ti3T=Jv{Mg2?Y$Lw!g{bu#CMjkl%`t!@n3y=cEX@XRQ%C7IV zgh}Oz5npFlZNliYR;j0w33xiCsuuH1h?A}QvG%^0!hpn1DXB-HeaH+KHiWC2Ol`L` zQ2H>?cTC0GCn4FV_c3W?GA37M8R6B))Fx~OTrOy2^}#en0aNrfn5HojA0#IDOw}df zV6sK3f-HdWn(x#eigHdqhVO}W&;Bkt8iP#@m9;vRB_HaTITM#)EQ>HX z!h=AH;PTI9lxMW$l$MS&itk_Xo0Y;^b{G-&hdfOWRgIhVwOS`^HJwwhh|{n?t52Be zwlK8ZS#i3t#oE<1tlI}{JvO`9@4J+z11|tvZP_l+pKEi-ps&Z&F2K*8o5^kxtauI zpZl41!(<4uPL2&qIQQ^8lex>sUm#s(`~GPOUd__>}6IAH(8syvET{jhq#qu?&O+6 zQe$Sb*;2xACxH5q?ZOr1&$wi*)xVn+YaNVl(CU1Ut8%YB3PwoTwz^6+VZjHL5G9F1 zgW{0rLu!F(khX%PDsEHotu?gS@Fb7y)E2j+y(?aM_Jva3hNL4I ziT1nTjJ)OhC-2j|Bxnjif+AZz-lWLL`+PUXPT_j8A-t=OmW!`u+jw-{6E#Pe{^+6C zi`W4|+Y?1tIKg;JL#Y|2ek)xVrVVkmyuF5?U%Amg{(9(psrBeq>*+UAtCzk{ZhhDP z2Yq`PV(m7>^E8HlFj5tj .select2-results__options { - max-height: 200px; - overflow-y: auto; - color: var(--body-fg); - background: var(--body-bg); -} - -.select2-container--admin-autocomplete .select2-results__option[role=group] { - padding: 0; -} - -.select2-container--admin-autocomplete .select2-results__option[aria-disabled=true] { - color: var(--body-quiet-color); -} - -.select2-container--admin-autocomplete .select2-results__option[aria-selected=true] { - background-color: var(--selected-bg); - color: var(--body-fg); -} - -.select2-container--admin-autocomplete .select2-results__option .select2-results__option { - padding-left: 1em; -} - -.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__group { - padding-left: 0; -} - -.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option { - margin-left: -1em; - padding-left: 2em; -} - -.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option { - margin-left: -2em; - padding-left: 3em; -} - -.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { - margin-left: -3em; - padding-left: 4em; -} - -.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { - margin-left: -4em; - padding-left: 5em; -} - -.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { - margin-left: -5em; - padding-left: 6em; -} - -.select2-container--admin-autocomplete .select2-results__option--highlighted[aria-selected] { - background-color: var(--primary); - color: var(--primary-fg); -} - -.select2-container--admin-autocomplete .select2-results__group { - cursor: default; - display: block; - padding: 6px; -} diff --git a/equipment_tracker/static/admin/css/autocomplete.css.gz b/equipment_tracker/static/admin/css/autocomplete.css.gz deleted file mode 100644 index 7cd12df9483ef372338842a86eb0aedf148d04aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1147 zcmV->1cdt^iwFP!00002|J_;ZZsRBv{@-s>)U8MMhPG4T({S@nSql zcD3)m*kIxdPU7p#Y=5K)V9s}L-#OrvFcQkI2=8eOQ6_oF_X#7CfPe0Q`a4i8BOk0h zvVXn%_wMd%T0F3VA&(`ZF%b~9A8xNQ+vN)*LU)n$!K0TPd+Z79GX0cDY7Vo#os*s-NiDBuFCRUv0w_}~W;e?S;; ze1d;vlt?}P=j&MS^wD*^BYRk(TbQxW?5@2ObPFlmi19%xgR7PdQ24PEJd3d-+Jc=4 zG98aTcu0;Q<&0vx>Kv!FrBEPDv(yJqQ}KmkYO@g}R>BB2%Ct4umKrc6at0Q2q6!&7 zC3%LKNOMdHr?DhLgV{2U6bzB0F(XPoJQ#QZXLv?<2}2=?lnl%8*LY?&C`br?Fd$0j zte!1_^OWZ6e1HNKb(ti3T=Jv{Mg2?Y$Lw!g{bu#CMjkl%`t!@n3y=cEX@XRQ%C7IV zgh}Oz5npFlZNliYR;j0w33xiCsuuH1h?A}QvG%^0!hpn1DXB-HeaH+KHiWC2Ol`L` zQ2H>?cTC0GCn4FV_c3W?GA37M8R6B))Fx~OTrOy2^}#en0aNrfn5HojA0#IDOw}df zV6sK3f-HdWn(x#eigHdqhVO}W&;Bkt8iP#@m9;vRB_HaTITM#)EQ>HX z!h=AH;PTI9lxMW$l$MS&itk_Xo0Y;^b{G-&hdfOWRgIhVwOS`^HJwwhh|{n?t52Be zwlK8ZS#i3t#oE<1tlI}{JvO`9@4J+z11|tvZP_l+pKEi-ps&Z&F2K*8o5^kxtauI zpZl41!(<4uPL2&qIQQ^8lex>sUm#s(`~GPOUd__>}6IAH(8syvET{jhq#qu?&O+6 zQe$Sb*;2xACxH5q?ZOr1&$wi*)xVn+YaNVl(CU1Ut8%YB3PwoTwz^6+VZjHL5G9F1 zgW{0rLu!F(khX%PDsEHotu?gS@Fb7y)E2j+y(?aM_Jva3hNL4I ziT1nTjJ)OhC-2j|Bxnjif+AZz-lWLL`+PUXPT_j8A-t=OmW!`u+jw-{6E#Pe{^+6C zi`W4|+Y?1tIKg;JL#Y|2ek)xVrVVkmyuF5?U%Amg{(9(psrBeq>*+UAtCzk{ZhhDP z2Yq`PV(m7>^E8HlFj5tj li { - list-style-type: square; - padding: 1px 0; -} - -li ul { - margin-bottom: 0; -} - -li, dt, dd { - font-size: 0.8125rem; - line-height: 1.25rem; -} - -dt { - font-weight: bold; - margin-top: 4px; -} - -dd { - margin-left: 0; -} - -form { - margin: 0; - padding: 0; -} - -fieldset { - margin: 0; - min-width: 0; - padding: 0; - border: none; - border-top: 1px solid var(--hairline-color); -} - -blockquote { - font-size: 0.6875rem; - color: #777; - margin-left: 2px; - padding-left: 10px; - border-left: 5px solid #ddd; -} - -code, pre { - font-family: var(--font-family-monospace); - color: var(--body-quiet-color); - font-size: 0.75rem; - overflow-x: auto; -} - -pre.literal-block { - margin: 10px; - background: var(--darkened-bg); - padding: 6px 8px; -} - -code strong { - color: #930; -} - -hr { - clear: both; - color: var(--hairline-color); - background-color: var(--hairline-color); - height: 1px; - border: none; - margin: 0; - padding: 0; - line-height: 1px; -} - -/* TEXT STYLES & MODIFIERS */ - -.small { - font-size: 0.6875rem; -} - -.mini { - font-size: 0.625rem; -} - -.help, p.help, form p.help, div.help, form div.help, div.help li { - font-size: 0.6875rem; - color: var(--body-quiet-color); -} - -div.help ul { - margin-bottom: 0; -} - -.help-tooltip { - cursor: help; -} - -p img, h1 img, h2 img, h3 img, h4 img, td img { - vertical-align: middle; -} - -.quiet, a.quiet:link, a.quiet:visited { - color: var(--body-quiet-color); - font-weight: normal; -} - -.clear { - clear: both; -} - -.nowrap { - white-space: nowrap; -} - -.hidden { - display: none !important; -} - -/* TABLES */ - -table { - border-collapse: collapse; - border-color: var(--border-color); -} - -td, th { - font-size: 0.8125rem; - line-height: 1rem; - border-bottom: 1px solid var(--hairline-color); - vertical-align: top; - padding: 8px; -} - -th { - font-weight: 600; - text-align: left; -} - -thead th, -tfoot td { - color: var(--body-quiet-color); - padding: 5px 10px; - font-size: 0.6875rem; - background: var(--body-bg); - border: none; - border-top: 1px solid var(--hairline-color); - border-bottom: 1px solid var(--hairline-color); -} - -tfoot td { - border-bottom: none; - border-top: 1px solid var(--hairline-color); -} - -thead th.required { - color: var(--body-loud-color); -} - -tr.alt { - background: var(--darkened-bg); -} - -tr:nth-child(odd), .row-form-errors { - background: var(--body-bg); -} - -tr:nth-child(even), -tr:nth-child(even) .errorlist, -tr:nth-child(odd) + .row-form-errors, -tr:nth-child(odd) + .row-form-errors .errorlist { - background: var(--darkened-bg); -} - -/* SORTABLE TABLES */ - -thead th { - padding: 5px 10px; - line-height: normal; - text-transform: uppercase; - background: var(--darkened-bg); -} - -thead th a:link, thead th a:visited { - color: var(--body-quiet-color); -} - -thead th.sorted { - background: var(--selected-bg); -} - -thead th.sorted .text { - padding-right: 42px; -} - -table thead th .text span { - padding: 8px 10px; - display: block; -} - -table thead th .text a { - display: block; - cursor: pointer; - padding: 8px 10px; -} - -table thead th .text a:focus, table thead th .text a:hover { - background: var(--selected-bg); -} - -thead th.sorted a.sortremove { - visibility: hidden; -} - -table thead th.sorted:hover a.sortremove { - visibility: visible; -} - -table thead th.sorted .sortoptions { - display: block; - padding: 9px 5px 0 5px; - float: right; - text-align: right; -} - -table thead th.sorted .sortpriority { - font-size: .8em; - min-width: 12px; - text-align: center; - vertical-align: 3px; - margin-left: 2px; - margin-right: 2px; -} - -table thead th.sorted .sortoptions a { - position: relative; - width: 14px; - height: 14px; - display: inline-block; - background: url("../img/sorting-icons.3a097b59f104.svg") 0 0 no-repeat; - background-size: 14px auto; -} - -table thead th.sorted .sortoptions a.sortremove { - background-position: 0 0; -} - -table thead th.sorted .sortoptions a.sortremove:after { - content: '\\'; - position: absolute; - top: -6px; - left: 3px; - font-weight: 200; - font-size: 1.125rem; - color: var(--body-quiet-color); -} - -table thead th.sorted .sortoptions a.sortremove:focus:after, -table thead th.sorted .sortoptions a.sortremove:hover:after { - color: var(--link-fg); -} - -table thead th.sorted .sortoptions a.sortremove:focus, -table thead th.sorted .sortoptions a.sortremove:hover { - background-position: 0 -14px; -} - -table thead th.sorted .sortoptions a.ascending { - background-position: 0 -28px; -} - -table thead th.sorted .sortoptions a.ascending:focus, -table thead th.sorted .sortoptions a.ascending:hover { - background-position: 0 -42px; -} - -table thead th.sorted .sortoptions a.descending { - top: 1px; - background-position: 0 -56px; -} - -table thead th.sorted .sortoptions a.descending:focus, -table thead th.sorted .sortoptions a.descending:hover { - background-position: 0 -70px; -} - -/* FORM DEFAULTS */ - -input, textarea, select, .form-row p, form .button { - margin: 2px 0; - padding: 2px 3px; - vertical-align: middle; - font-family: var(--font-family-primary); - font-weight: normal; - font-size: 0.8125rem; -} -.form-row div.help { - padding: 2px 3px; -} - -textarea { - vertical-align: top; -} - -input[type=text], input[type=password], input[type=email], input[type=url], -input[type=number], input[type=tel], textarea, select, .vTextField { - border: 1px solid var(--border-color); - border-radius: 4px; - padding: 5px 6px; - margin-top: 0; - color: var(--body-fg); - background-color: var(--body-bg); -} - -input[type=text]:focus, input[type=password]:focus, input[type=email]:focus, -input[type=url]:focus, input[type=number]:focus, input[type=tel]:focus, -textarea:focus, select:focus, .vTextField:focus { - border-color: var(--body-quiet-color); -} - -select { - height: 1.875rem; -} - -select[multiple] { - /* Allow HTML size attribute to override the height in the rule above. */ - height: auto; - min-height: 150px; -} - -/* FORM BUTTONS */ - -.button, input[type=submit], input[type=button], .submit-row input, a.button { - background: var(--button-bg); - padding: 10px 15px; - border: none; - border-radius: 4px; - color: var(--button-fg); - cursor: pointer; - transition: background 0.15s; -} - -a.button { - padding: 4px 5px; -} - -.button:active, input[type=submit]:active, input[type=button]:active, -.button:focus, input[type=submit]:focus, input[type=button]:focus, -.button:hover, input[type=submit]:hover, input[type=button]:hover { - background: var(--button-hover-bg); -} - -.button[disabled], input[type=submit][disabled], input[type=button][disabled] { - opacity: 0.4; -} - -.button.default, input[type=submit].default, .submit-row input.default { - border: none; - font-weight: 400; - background: var(--default-button-bg); -} - -.button.default:active, input[type=submit].default:active, -.button.default:focus, input[type=submit].default:focus, -.button.default:hover, input[type=submit].default:hover { - background: var(--default-button-hover-bg); -} - -.button[disabled].default, -input[type=submit][disabled].default, -input[type=button][disabled].default { - opacity: 0.4; -} - - -/* MODULES */ - -.module { - border: none; - margin-bottom: 30px; - background: var(--body-bg); -} - -.module p, .module ul, .module h3, .module h4, .module dl, .module pre { - padding-left: 10px; - padding-right: 10px; -} - -.module blockquote { - margin-left: 12px; -} - -.module ul, .module ol { - margin-left: 1.5em; -} - -.module h3 { - margin-top: .6em; -} - -.module h2, .module caption, .inline-group h2 { - margin: 0; - padding: 8px; - font-weight: 400; - font-size: 0.8125rem; - text-align: left; - background: var(--primary); - color: var(--header-link-color); -} - -.module caption, -.inline-group h2 { - font-size: 0.75rem; - letter-spacing: 0.5px; - text-transform: uppercase; -} - -.module table { - border-collapse: collapse; -} - -/* MESSAGES & ERRORS */ - -ul.messagelist { - padding: 0; - margin: 0; -} - -ul.messagelist li { - display: block; - font-weight: 400; - font-size: 0.8125rem; - padding: 10px 10px 10px 65px; - margin: 0 0 10px 0; - background: var(--message-success-bg) url("../img/icon-yes.d2f9f035226a.svg") 40px 12px no-repeat; - background-size: 16px auto; - color: var(--body-fg); - word-break: break-word; -} - -ul.messagelist li.warning { - background: var(--message-warning-bg) url("../img/icon-alert.034cc7d8a67f.svg") 40px 14px no-repeat; - background-size: 14px auto; -} - -ul.messagelist li.error { - background: var(--message-error-bg) url("../img/icon-no.439e821418cd.svg") 40px 12px no-repeat; - background-size: 16px auto; -} - -.errornote { - font-size: 0.875rem; - font-weight: 700; - display: block; - padding: 10px 12px; - margin: 0 0 10px 0; - color: var(--error-fg); - border: 1px solid var(--error-fg); - border-radius: 4px; - background-color: var(--body-bg); - background-position: 5px 12px; - overflow-wrap: break-word; -} - -ul.errorlist { - margin: 0 0 4px; - padding: 0; - color: var(--error-fg); - background: var(--body-bg); -} - -ul.errorlist li { - font-size: 0.8125rem; - display: block; - margin-bottom: 4px; - overflow-wrap: break-word; -} - -ul.errorlist li:first-child { - margin-top: 0; -} - -ul.errorlist li a { - color: inherit; - text-decoration: underline; -} - -td ul.errorlist { - margin: 0; - padding: 0; -} - -td ul.errorlist li { - margin: 0; -} - -.form-row.errors { - margin: 0; - border: none; - border-bottom: 1px solid var(--hairline-color); - background: none; -} - -.form-row.errors ul.errorlist li { - padding-left: 0; -} - -.errors input, .errors select, .errors textarea, -td ul.errorlist + input, td ul.errorlist + select, td ul.errorlist + textarea { - border: 1px solid var(--error-fg); -} - -.description { - font-size: 0.75rem; - padding: 5px 0 0 12px; -} - -/* BREADCRUMBS */ - -div.breadcrumbs { - background: var(--breadcrumbs-bg); - padding: 10px 40px; - border: none; - color: var(--breadcrumbs-fg); - text-align: left; -} - -div.breadcrumbs a { - color: var(--breadcrumbs-link-fg); -} - -div.breadcrumbs a:focus, div.breadcrumbs a:hover { - color: var(--breadcrumbs-fg); -} - -/* ACTION ICONS */ - -.viewlink, .inlineviewlink { - padding-left: 16px; - background: url("../img/icon-viewlink.41eb31f7826e.svg") 0 1px no-repeat; -} - -.addlink { - padding-left: 16px; - background: url("../img/icon-addlink.d519b3bab011.svg") 0 1px no-repeat; -} - -.changelink, .inlinechangelink { - padding-left: 16px; - background: url("../img/icon-changelink.18d2fd706348.svg") 0 1px no-repeat; -} - -.deletelink { - padding-left: 16px; - background: url("../img/icon-deletelink.564ef9dc3854.svg") 0 1px no-repeat; -} - -a.deletelink:link, a.deletelink:visited { - color: #CC3434; /* XXX Probably unused? */ -} - -a.deletelink:focus, a.deletelink:hover { - color: #993333; /* XXX Probably unused? */ - text-decoration: none; -} - -/* OBJECT TOOLS */ - -.object-tools { - font-size: 0.625rem; - font-weight: bold; - padding-left: 0; - float: right; - position: relative; - margin-top: -48px; -} - -.object-tools li { - display: block; - float: left; - margin-left: 5px; - height: 1rem; -} - -.object-tools a { - border-radius: 15px; -} - -.object-tools a:link, .object-tools a:visited { - display: block; - float: left; - padding: 3px 12px; - background: var(--object-tools-bg); - color: var(--object-tools-fg); - font-weight: 400; - font-size: 0.6875rem; - text-transform: uppercase; - letter-spacing: 0.5px; -} - -.object-tools a:focus, .object-tools a:hover { - background-color: var(--object-tools-hover-bg); -} - -.object-tools a:focus{ - text-decoration: none; -} - -.object-tools a.viewsitelink, .object-tools a.addlink { - background-repeat: no-repeat; - background-position: right 7px center; - padding-right: 26px; -} - -.object-tools a.viewsitelink { - background-image: url("../img/tooltag-arrowright.bbfb788a849e.svg"); -} - -.object-tools a.addlink { - background-image: url("../img/tooltag-add.e59d620a9742.svg"); -} - -/* OBJECT HISTORY */ - -#change-history table { - width: 100%; -} - -#change-history table tbody th { - width: 16em; -} - -#change-history .paginator { - color: var(--body-quiet-color); - border-bottom: 1px solid var(--hairline-color); - background: var(--body-bg); - overflow: hidden; -} - -/* PAGE STRUCTURE */ - -#container { - position: relative; - width: 100%; - min-width: 980px; - padding: 0; - display: flex; - flex-direction: column; - height: 100%; -} - -#container > div { - flex-shrink: 0; -} - -#container > .main { - display: flex; - flex: 1 0 auto; -} - -.main > .content { - flex: 1 0; - max-width: 100%; -} - -.skip-to-content-link { - position: absolute; - top: -999px; - margin: 5px; - padding: 5px; - background: var(--body-bg); - z-index: 1; -} - -.skip-to-content-link:focus { - left: 0px; - top: 0px; -} - -#content { - padding: 20px 40px; -} - -.dashboard #content { - width: 600px; -} - -#content-main { - float: left; - width: 100%; -} - -#content-related { - float: right; - width: 260px; - position: relative; - margin-right: -300px; -} - -#footer { - clear: both; - padding: 10px; -} - -/* COLUMN TYPES */ - -.colMS { - margin-right: 300px; -} - -.colSM { - margin-left: 300px; -} - -.colSM #content-related { - float: left; - margin-right: 0; - margin-left: -300px; -} - -.colSM #content-main { - float: right; -} - -.popup .colM { - width: auto; -} - -/* HEADER */ - -#header { - width: auto; - height: auto; - display: flex; - justify-content: space-between; - align-items: center; - padding: 10px 40px; - background: var(--header-bg); - color: var(--header-color); - overflow: hidden; -} - -#header a:link, #header a:visited, #logout-form button { - color: var(--header-link-color); -} - -#header a:focus , #header a:hover { - text-decoration: underline; -} - -#branding { - display: flex; -} - -#branding h1 { - padding: 0; - margin: 0; - margin-inline-end: 20px; - font-weight: 300; - font-size: 1.5rem; - color: var(--header-branding-color); -} - -#branding h1 a:link, #branding h1 a:visited { - color: var(--accent); -} - -#branding h2 { - padding: 0 10px; - font-size: 0.875rem; - margin: -8px 0 8px 0; - font-weight: normal; - color: var(--header-color); -} - -#branding a:hover { - text-decoration: none; -} - -#logout-form { - display: inline; -} - -#logout-form button { - background: none; - border: 0; - cursor: pointer; - font-family: var(--font-family-primary); -} - -#user-tools { - float: right; - margin: 0 0 0 20px; - text-align: right; -} - -#user-tools, #logout-form button{ - padding: 0; - font-weight: 300; - font-size: 0.6875rem; - letter-spacing: 0.5px; - text-transform: uppercase; -} - -#user-tools a, #logout-form button { - border-bottom: 1px solid rgba(255, 255, 255, 0.25); -} - -#user-tools a:focus, #user-tools a:hover, -#logout-form button:active, #logout-form button:hover { - text-decoration: none; - border-bottom: 0; -} - -#logout-form button:active, #logout-form button:hover { - margin-bottom: 1px; -} - -/* SIDEBAR */ - -#content-related { - background: var(--darkened-bg); -} - -#content-related .module { - background: none; -} - -#content-related h3 { - color: var(--body-quiet-color); - padding: 0 16px; - margin: 0 0 16px; -} - -#content-related h4 { - font-size: 0.8125rem; -} - -#content-related p { - padding-left: 16px; - padding-right: 16px; -} - -#content-related .actionlist { - padding: 0; - margin: 16px; -} - -#content-related .actionlist li { - line-height: 1.2; - margin-bottom: 10px; - padding-left: 18px; -} - -#content-related .module h2 { - background: none; - padding: 16px; - margin-bottom: 16px; - border-bottom: 1px solid var(--hairline-color); - font-size: 1.125rem; - color: var(--body-fg); -} - -.delete-confirmation form input[type="submit"] { - background: var(--delete-button-bg); - border-radius: 4px; - padding: 10px 15px; - color: var(--button-fg); -} - -.delete-confirmation form input[type="submit"]:active, -.delete-confirmation form input[type="submit"]:focus, -.delete-confirmation form input[type="submit"]:hover { - background: var(--delete-button-hover-bg); -} - -.delete-confirmation form .cancel-link { - display: inline-block; - vertical-align: middle; - height: 0.9375rem; - line-height: 0.9375rem; - border-radius: 4px; - padding: 10px 15px; - color: var(--button-fg); - background: var(--close-button-bg); - margin: 0 0 0 10px; -} - -.delete-confirmation form .cancel-link:active, -.delete-confirmation form .cancel-link:focus, -.delete-confirmation form .cancel-link:hover { - background: var(--close-button-hover-bg); -} - -/* POPUP */ -.popup #content { - padding: 20px; -} - -.popup #container { - min-width: 0; -} - -.popup #header { - padding: 10px 20px; -} - -/* PAGINATOR */ - -.paginator { - font-size: 0.8125rem; - padding-top: 10px; - padding-bottom: 10px; - line-height: 22px; - margin: 0; - border-top: 1px solid var(--hairline-color); - width: 100%; -} - -.paginator a:link, .paginator a:visited { - padding: 2px 6px; - background: var(--button-bg); - text-decoration: none; - color: var(--button-fg); -} - -.paginator a.showall { - border: none; - background: none; - color: var(--link-fg); -} - -.paginator a.showall:focus, .paginator a.showall:hover { - background: none; - color: var(--link-hover-color); -} - -.paginator .end { - margin-right: 6px; -} - -.paginator .this-page { - padding: 2px 6px; - font-weight: bold; - font-size: 0.8125rem; - vertical-align: top; -} - -.paginator a:focus, .paginator a:hover { - color: white; - background: var(--link-hover-color); -} - -.base-svgs { - display: none; -} diff --git a/equipment_tracker/static/admin/css/base.64976e0f7339.css.gz b/equipment_tracker/static/admin/css/base.64976e0f7339.css.gz deleted file mode 100644 index e8dc26868dcd27e4b696d8f80e542d9519147a35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4847 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 VtEXjUdo_=T{1?{Nq!w*c004R}R*e7v diff --git a/equipment_tracker/static/admin/css/base.css b/equipment_tracker/static/admin/css/base.css deleted file mode 100644 index 72f4ae1..0000000 --- a/equipment_tracker/static/admin/css/base.css +++ /dev/null @@ -1,1138 +0,0 @@ -/* - DJANGO Admin styles -*/ - -/* VARIABLE DEFINITIONS */ -html[data-theme="light"], -:root { - --primary: #79aec8; - --secondary: #417690; - --accent: #f5dd5d; - --primary-fg: #fff; - - --body-fg: #333; - --body-bg: #fff; - --body-quiet-color: #666; - --body-loud-color: #000; - - --header-color: #ffc; - --header-branding-color: var(--accent); - --header-bg: var(--secondary); - --header-link-color: var(--primary-fg); - - --breadcrumbs-fg: #c4dce8; - --breadcrumbs-link-fg: var(--body-bg); - --breadcrumbs-bg: var(--primary); - - --link-fg: #417893; - --link-hover-color: #036; - --link-selected-fg: #5b80b2; - - --hairline-color: #e8e8e8; - --border-color: #ccc; - - --error-fg: #ba2121; - - --message-success-bg: #dfd; - --message-warning-bg: #ffc; - --message-error-bg: #ffefef; - - --darkened-bg: #f8f8f8; /* A bit darker than --body-bg */ - --selected-bg: #e4e4e4; /* E.g. selected table cells */ - --selected-row: #ffc; - - --button-fg: #fff; - --button-bg: var(--primary); - --button-hover-bg: #609ab6; - --default-button-bg: var(--secondary); - --default-button-hover-bg: #205067; - --close-button-bg: #747474; - --close-button-hover-bg: #333; - --delete-button-bg: #ba2121; - --delete-button-hover-bg: #a41515; - - --object-tools-fg: var(--button-fg); - --object-tools-bg: var(--close-button-bg); - --object-tools-hover-bg: var(--close-button-hover-bg); - - --font-family-primary: - -apple-system, - BlinkMacSystemFont, - "Segoe UI", - system-ui, - Roboto, - "Helvetica Neue", - Arial, - sans-serif, - "Apple Color Emoji", - "Segoe UI Emoji", - "Segoe UI Symbol", - "Noto Color Emoji"; - --font-family-monospace: - ui-monospace, - Menlo, - Monaco, - "Cascadia Mono", - "Segoe UI Mono", - "Roboto Mono", - "Oxygen Mono", - "Ubuntu Monospace", - "Source Code Pro", - "Fira Mono", - "Droid Sans Mono", - "Courier New", - monospace, - "Apple Color Emoji", - "Segoe UI Emoji", - "Segoe UI Symbol", - "Noto Color Emoji"; -} - -html, body { - height: 100%; -} - -body { - margin: 0; - padding: 0; - font-size: 0.875rem; - font-family: var(--font-family-primary); - color: var(--body-fg); - background: var(--body-bg); -} - -/* LINKS */ - -a:link, a:visited { - color: var(--link-fg); - text-decoration: none; - transition: color 0.15s, background 0.15s; -} - -a:focus, a:hover { - color: var(--link-hover-color); -} - -a:focus { - text-decoration: underline; -} - -a img { - border: none; -} - -a.section:link, a.section:visited { - color: var(--header-link-color); - text-decoration: none; -} - -a.section:focus, a.section:hover { - text-decoration: underline; -} - -/* GLOBAL DEFAULTS */ - -p, ol, ul, dl { - margin: .2em 0 .8em 0; -} - -p { - padding: 0; - line-height: 140%; -} - -h1,h2,h3,h4,h5 { - font-weight: bold; -} - -h1 { - margin: 0 0 20px; - font-weight: 300; - font-size: 1.25rem; - color: var(--body-quiet-color); -} - -h2 { - font-size: 1rem; - margin: 1em 0 .5em 0; -} - -h2.subhead { - font-weight: normal; - margin-top: 0; -} - -h3 { - font-size: 0.875rem; - margin: .8em 0 .3em 0; - color: var(--body-quiet-color); - font-weight: bold; -} - -h4 { - font-size: 0.75rem; - margin: 1em 0 .8em 0; - padding-bottom: 3px; -} - -h5 { - font-size: 0.625rem; - margin: 1.5em 0 .5em 0; - color: var(--body-quiet-color); - text-transform: uppercase; - letter-spacing: 1px; -} - -ul > li { - list-style-type: square; - padding: 1px 0; -} - -li ul { - margin-bottom: 0; -} - -li, dt, dd { - font-size: 0.8125rem; - line-height: 1.25rem; -} - -dt { - font-weight: bold; - margin-top: 4px; -} - -dd { - margin-left: 0; -} - -form { - margin: 0; - padding: 0; -} - -fieldset { - margin: 0; - min-width: 0; - padding: 0; - border: none; - border-top: 1px solid var(--hairline-color); -} - -blockquote { - font-size: 0.6875rem; - color: #777; - margin-left: 2px; - padding-left: 10px; - border-left: 5px solid #ddd; -} - -code, pre { - font-family: var(--font-family-monospace); - color: var(--body-quiet-color); - font-size: 0.75rem; - overflow-x: auto; -} - -pre.literal-block { - margin: 10px; - background: var(--darkened-bg); - padding: 6px 8px; -} - -code strong { - color: #930; -} - -hr { - clear: both; - color: var(--hairline-color); - background-color: var(--hairline-color); - height: 1px; - border: none; - margin: 0; - padding: 0; - line-height: 1px; -} - -/* TEXT STYLES & MODIFIERS */ - -.small { - font-size: 0.6875rem; -} - -.mini { - font-size: 0.625rem; -} - -.help, p.help, form p.help, div.help, form div.help, div.help li { - font-size: 0.6875rem; - color: var(--body-quiet-color); -} - -div.help ul { - margin-bottom: 0; -} - -.help-tooltip { - cursor: help; -} - -p img, h1 img, h2 img, h3 img, h4 img, td img { - vertical-align: middle; -} - -.quiet, a.quiet:link, a.quiet:visited { - color: var(--body-quiet-color); - font-weight: normal; -} - -.clear { - clear: both; -} - -.nowrap { - white-space: nowrap; -} - -.hidden { - display: none !important; -} - -/* TABLES */ - -table { - border-collapse: collapse; - border-color: var(--border-color); -} - -td, th { - font-size: 0.8125rem; - line-height: 1rem; - border-bottom: 1px solid var(--hairline-color); - vertical-align: top; - padding: 8px; -} - -th { - font-weight: 600; - text-align: left; -} - -thead th, -tfoot td { - color: var(--body-quiet-color); - padding: 5px 10px; - font-size: 0.6875rem; - background: var(--body-bg); - border: none; - border-top: 1px solid var(--hairline-color); - border-bottom: 1px solid var(--hairline-color); -} - -tfoot td { - border-bottom: none; - border-top: 1px solid var(--hairline-color); -} - -thead th.required { - color: var(--body-loud-color); -} - -tr.alt { - background: var(--darkened-bg); -} - -tr:nth-child(odd), .row-form-errors { - background: var(--body-bg); -} - -tr:nth-child(even), -tr:nth-child(even) .errorlist, -tr:nth-child(odd) + .row-form-errors, -tr:nth-child(odd) + .row-form-errors .errorlist { - background: var(--darkened-bg); -} - -/* SORTABLE TABLES */ - -thead th { - padding: 5px 10px; - line-height: normal; - text-transform: uppercase; - background: var(--darkened-bg); -} - -thead th a:link, thead th a:visited { - color: var(--body-quiet-color); -} - -thead th.sorted { - background: var(--selected-bg); -} - -thead th.sorted .text { - padding-right: 42px; -} - -table thead th .text span { - padding: 8px 10px; - display: block; -} - -table thead th .text a { - display: block; - cursor: pointer; - padding: 8px 10px; -} - -table thead th .text a:focus, table thead th .text a:hover { - background: var(--selected-bg); -} - -thead th.sorted a.sortremove { - visibility: hidden; -} - -table thead th.sorted:hover a.sortremove { - visibility: visible; -} - -table thead th.sorted .sortoptions { - display: block; - padding: 9px 5px 0 5px; - float: right; - text-align: right; -} - -table thead th.sorted .sortpriority { - font-size: .8em; - min-width: 12px; - text-align: center; - vertical-align: 3px; - margin-left: 2px; - margin-right: 2px; -} - -table thead th.sorted .sortoptions a { - position: relative; - width: 14px; - height: 14px; - display: inline-block; - background: url(../img/sorting-icons.svg) 0 0 no-repeat; - background-size: 14px auto; -} - -table thead th.sorted .sortoptions a.sortremove { - background-position: 0 0; -} - -table thead th.sorted .sortoptions a.sortremove:after { - content: '\\'; - position: absolute; - top: -6px; - left: 3px; - font-weight: 200; - font-size: 1.125rem; - color: var(--body-quiet-color); -} - -table thead th.sorted .sortoptions a.sortremove:focus:after, -table thead th.sorted .sortoptions a.sortremove:hover:after { - color: var(--link-fg); -} - -table thead th.sorted .sortoptions a.sortremove:focus, -table thead th.sorted .sortoptions a.sortremove:hover { - background-position: 0 -14px; -} - -table thead th.sorted .sortoptions a.ascending { - background-position: 0 -28px; -} - -table thead th.sorted .sortoptions a.ascending:focus, -table thead th.sorted .sortoptions a.ascending:hover { - background-position: 0 -42px; -} - -table thead th.sorted .sortoptions a.descending { - top: 1px; - background-position: 0 -56px; -} - -table thead th.sorted .sortoptions a.descending:focus, -table thead th.sorted .sortoptions a.descending:hover { - background-position: 0 -70px; -} - -/* FORM DEFAULTS */ - -input, textarea, select, .form-row p, form .button { - margin: 2px 0; - padding: 2px 3px; - vertical-align: middle; - font-family: var(--font-family-primary); - font-weight: normal; - font-size: 0.8125rem; -} -.form-row div.help { - padding: 2px 3px; -} - -textarea { - vertical-align: top; -} - -input[type=text], input[type=password], input[type=email], input[type=url], -input[type=number], input[type=tel], textarea, select, .vTextField { - border: 1px solid var(--border-color); - border-radius: 4px; - padding: 5px 6px; - margin-top: 0; - color: var(--body-fg); - background-color: var(--body-bg); -} - -input[type=text]:focus, input[type=password]:focus, input[type=email]:focus, -input[type=url]:focus, input[type=number]:focus, input[type=tel]:focus, -textarea:focus, select:focus, .vTextField:focus { - border-color: var(--body-quiet-color); -} - -select { - height: 1.875rem; -} - -select[multiple] { - /* Allow HTML size attribute to override the height in the rule above. */ - height: auto; - min-height: 150px; -} - -/* FORM BUTTONS */ - -.button, input[type=submit], input[type=button], .submit-row input, a.button { - background: var(--button-bg); - padding: 10px 15px; - border: none; - border-radius: 4px; - color: var(--button-fg); - cursor: pointer; - transition: background 0.15s; -} - -a.button { - padding: 4px 5px; -} - -.button:active, input[type=submit]:active, input[type=button]:active, -.button:focus, input[type=submit]:focus, input[type=button]:focus, -.button:hover, input[type=submit]:hover, input[type=button]:hover { - background: var(--button-hover-bg); -} - -.button[disabled], input[type=submit][disabled], input[type=button][disabled] { - opacity: 0.4; -} - -.button.default, input[type=submit].default, .submit-row input.default { - border: none; - font-weight: 400; - background: var(--default-button-bg); -} - -.button.default:active, input[type=submit].default:active, -.button.default:focus, input[type=submit].default:focus, -.button.default:hover, input[type=submit].default:hover { - background: var(--default-button-hover-bg); -} - -.button[disabled].default, -input[type=submit][disabled].default, -input[type=button][disabled].default { - opacity: 0.4; -} - - -/* MODULES */ - -.module { - border: none; - margin-bottom: 30px; - background: var(--body-bg); -} - -.module p, .module ul, .module h3, .module h4, .module dl, .module pre { - padding-left: 10px; - padding-right: 10px; -} - -.module blockquote { - margin-left: 12px; -} - -.module ul, .module ol { - margin-left: 1.5em; -} - -.module h3 { - margin-top: .6em; -} - -.module h2, .module caption, .inline-group h2 { - margin: 0; - padding: 8px; - font-weight: 400; - font-size: 0.8125rem; - text-align: left; - background: var(--primary); - color: var(--header-link-color); -} - -.module caption, -.inline-group h2 { - font-size: 0.75rem; - letter-spacing: 0.5px; - text-transform: uppercase; -} - -.module table { - border-collapse: collapse; -} - -/* MESSAGES & ERRORS */ - -ul.messagelist { - padding: 0; - margin: 0; -} - -ul.messagelist li { - display: block; - font-weight: 400; - font-size: 0.8125rem; - padding: 10px 10px 10px 65px; - margin: 0 0 10px 0; - background: var(--message-success-bg) url(../img/icon-yes.svg) 40px 12px no-repeat; - background-size: 16px auto; - color: var(--body-fg); - word-break: break-word; -} - -ul.messagelist li.warning { - background: var(--message-warning-bg) url(../img/icon-alert.svg) 40px 14px no-repeat; - background-size: 14px auto; -} - -ul.messagelist li.error { - background: var(--message-error-bg) url(../img/icon-no.svg) 40px 12px no-repeat; - background-size: 16px auto; -} - -.errornote { - font-size: 0.875rem; - font-weight: 700; - display: block; - padding: 10px 12px; - margin: 0 0 10px 0; - color: var(--error-fg); - border: 1px solid var(--error-fg); - border-radius: 4px; - background-color: var(--body-bg); - background-position: 5px 12px; - overflow-wrap: break-word; -} - -ul.errorlist { - margin: 0 0 4px; - padding: 0; - color: var(--error-fg); - background: var(--body-bg); -} - -ul.errorlist li { - font-size: 0.8125rem; - display: block; - margin-bottom: 4px; - overflow-wrap: break-word; -} - -ul.errorlist li:first-child { - margin-top: 0; -} - -ul.errorlist li a { - color: inherit; - text-decoration: underline; -} - -td ul.errorlist { - margin: 0; - padding: 0; -} - -td ul.errorlist li { - margin: 0; -} - -.form-row.errors { - margin: 0; - border: none; - border-bottom: 1px solid var(--hairline-color); - background: none; -} - -.form-row.errors ul.errorlist li { - padding-left: 0; -} - -.errors input, .errors select, .errors textarea, -td ul.errorlist + input, td ul.errorlist + select, td ul.errorlist + textarea { - border: 1px solid var(--error-fg); -} - -.description { - font-size: 0.75rem; - padding: 5px 0 0 12px; -} - -/* BREADCRUMBS */ - -div.breadcrumbs { - background: var(--breadcrumbs-bg); - padding: 10px 40px; - border: none; - color: var(--breadcrumbs-fg); - text-align: left; -} - -div.breadcrumbs a { - color: var(--breadcrumbs-link-fg); -} - -div.breadcrumbs a:focus, div.breadcrumbs a:hover { - color: var(--breadcrumbs-fg); -} - -/* ACTION ICONS */ - -.viewlink, .inlineviewlink { - padding-left: 16px; - background: url(../img/icon-viewlink.svg) 0 1px no-repeat; -} - -.addlink { - padding-left: 16px; - background: url(../img/icon-addlink.svg) 0 1px no-repeat; -} - -.changelink, .inlinechangelink { - padding-left: 16px; - background: url(../img/icon-changelink.svg) 0 1px no-repeat; -} - -.deletelink { - padding-left: 16px; - background: url(../img/icon-deletelink.svg) 0 1px no-repeat; -} - -a.deletelink:link, a.deletelink:visited { - color: #CC3434; /* XXX Probably unused? */ -} - -a.deletelink:focus, a.deletelink:hover { - color: #993333; /* XXX Probably unused? */ - text-decoration: none; -} - -/* OBJECT TOOLS */ - -.object-tools { - font-size: 0.625rem; - font-weight: bold; - padding-left: 0; - float: right; - position: relative; - margin-top: -48px; -} - -.object-tools li { - display: block; - float: left; - margin-left: 5px; - height: 1rem; -} - -.object-tools a { - border-radius: 15px; -} - -.object-tools a:link, .object-tools a:visited { - display: block; - float: left; - padding: 3px 12px; - background: var(--object-tools-bg); - color: var(--object-tools-fg); - font-weight: 400; - font-size: 0.6875rem; - text-transform: uppercase; - letter-spacing: 0.5px; -} - -.object-tools a:focus, .object-tools a:hover { - background-color: var(--object-tools-hover-bg); -} - -.object-tools a:focus{ - text-decoration: none; -} - -.object-tools a.viewsitelink, .object-tools a.addlink { - background-repeat: no-repeat; - background-position: right 7px center; - padding-right: 26px; -} - -.object-tools a.viewsitelink { - background-image: url(../img/tooltag-arrowright.svg); -} - -.object-tools a.addlink { - background-image: url(../img/tooltag-add.svg); -} - -/* OBJECT HISTORY */ - -#change-history table { - width: 100%; -} - -#change-history table tbody th { - width: 16em; -} - -#change-history .paginator { - color: var(--body-quiet-color); - border-bottom: 1px solid var(--hairline-color); - background: var(--body-bg); - overflow: hidden; -} - -/* PAGE STRUCTURE */ - -#container { - position: relative; - width: 100%; - min-width: 980px; - padding: 0; - display: flex; - flex-direction: column; - height: 100%; -} - -#container > div { - flex-shrink: 0; -} - -#container > .main { - display: flex; - flex: 1 0 auto; -} - -.main > .content { - flex: 1 0; - max-width: 100%; -} - -.skip-to-content-link { - position: absolute; - top: -999px; - margin: 5px; - padding: 5px; - background: var(--body-bg); - z-index: 1; -} - -.skip-to-content-link:focus { - left: 0px; - top: 0px; -} - -#content { - padding: 20px 40px; -} - -.dashboard #content { - width: 600px; -} - -#content-main { - float: left; - width: 100%; -} - -#content-related { - float: right; - width: 260px; - position: relative; - margin-right: -300px; -} - -#footer { - clear: both; - padding: 10px; -} - -/* COLUMN TYPES */ - -.colMS { - margin-right: 300px; -} - -.colSM { - margin-left: 300px; -} - -.colSM #content-related { - float: left; - margin-right: 0; - margin-left: -300px; -} - -.colSM #content-main { - float: right; -} - -.popup .colM { - width: auto; -} - -/* HEADER */ - -#header { - width: auto; - height: auto; - display: flex; - justify-content: space-between; - align-items: center; - padding: 10px 40px; - background: var(--header-bg); - color: var(--header-color); - overflow: hidden; -} - -#header a:link, #header a:visited, #logout-form button { - color: var(--header-link-color); -} - -#header a:focus , #header a:hover { - text-decoration: underline; -} - -#branding { - display: flex; -} - -#branding h1 { - padding: 0; - margin: 0; - margin-inline-end: 20px; - font-weight: 300; - font-size: 1.5rem; - color: var(--header-branding-color); -} - -#branding h1 a:link, #branding h1 a:visited { - color: var(--accent); -} - -#branding h2 { - padding: 0 10px; - font-size: 0.875rem; - margin: -8px 0 8px 0; - font-weight: normal; - color: var(--header-color); -} - -#branding a:hover { - text-decoration: none; -} - -#logout-form { - display: inline; -} - -#logout-form button { - background: none; - border: 0; - cursor: pointer; - font-family: var(--font-family-primary); -} - -#user-tools { - float: right; - margin: 0 0 0 20px; - text-align: right; -} - -#user-tools, #logout-form button{ - padding: 0; - font-weight: 300; - font-size: 0.6875rem; - letter-spacing: 0.5px; - text-transform: uppercase; -} - -#user-tools a, #logout-form button { - border-bottom: 1px solid rgba(255, 255, 255, 0.25); -} - -#user-tools a:focus, #user-tools a:hover, -#logout-form button:active, #logout-form button:hover { - text-decoration: none; - border-bottom: 0; -} - -#logout-form button:active, #logout-form button:hover { - margin-bottom: 1px; -} - -/* SIDEBAR */ - -#content-related { - background: var(--darkened-bg); -} - -#content-related .module { - background: none; -} - -#content-related h3 { - color: var(--body-quiet-color); - padding: 0 16px; - margin: 0 0 16px; -} - -#content-related h4 { - font-size: 0.8125rem; -} - -#content-related p { - padding-left: 16px; - padding-right: 16px; -} - -#content-related .actionlist { - padding: 0; - margin: 16px; -} - -#content-related .actionlist li { - line-height: 1.2; - margin-bottom: 10px; - padding-left: 18px; -} - -#content-related .module h2 { - background: none; - padding: 16px; - margin-bottom: 16px; - border-bottom: 1px solid var(--hairline-color); - font-size: 1.125rem; - color: var(--body-fg); -} - -.delete-confirmation form input[type="submit"] { - background: var(--delete-button-bg); - border-radius: 4px; - padding: 10px 15px; - color: var(--button-fg); -} - -.delete-confirmation form input[type="submit"]:active, -.delete-confirmation form input[type="submit"]:focus, -.delete-confirmation form input[type="submit"]:hover { - background: var(--delete-button-hover-bg); -} - -.delete-confirmation form .cancel-link { - display: inline-block; - vertical-align: middle; - height: 0.9375rem; - line-height: 0.9375rem; - border-radius: 4px; - padding: 10px 15px; - color: var(--button-fg); - background: var(--close-button-bg); - margin: 0 0 0 10px; -} - -.delete-confirmation form .cancel-link:active, -.delete-confirmation form .cancel-link:focus, -.delete-confirmation form .cancel-link:hover { - background: var(--close-button-hover-bg); -} - -/* POPUP */ -.popup #content { - padding: 20px; -} - -.popup #container { - min-width: 0; -} - -.popup #header { - padding: 10px 20px; -} - -/* PAGINATOR */ - -.paginator { - font-size: 0.8125rem; - padding-top: 10px; - padding-bottom: 10px; - line-height: 22px; - margin: 0; - border-top: 1px solid var(--hairline-color); - width: 100%; -} - -.paginator a:link, .paginator a:visited { - padding: 2px 6px; - background: var(--button-bg); - text-decoration: none; - color: var(--button-fg); -} - -.paginator a.showall { - border: none; - background: none; - color: var(--link-fg); -} - -.paginator a.showall:focus, .paginator a.showall:hover { - background: none; - color: var(--link-hover-color); -} - -.paginator .end { - margin-right: 6px; -} - -.paginator .this-page { - padding: 2px 6px; - font-weight: bold; - font-size: 0.8125rem; - vertical-align: top; -} - -.paginator a:focus, .paginator a:hover { - color: white; - background: var(--link-hover-color); -} - -.base-svgs { - display: none; -} diff --git a/equipment_tracker/static/admin/css/base.css.gz b/equipment_tracker/static/admin/css/base.css.gz deleted file mode 100644 index fa107378d2c081d0ff997822aad5f8f2a13c0929..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4737 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 PoeudwYI * { - display: inline; -} - -#changelist-filter details > summary { - list-style-type: none; -} - -#changelist-filter details > summary::-webkit-details-marker { - display: none; -} - -#changelist-filter details > summary::before { - content: '→'; - font-weight: bold; - color: var(--link-hover-color); -} - -#changelist-filter details[open] > summary::before { - content: '↓'; -} - -#changelist-filter ul { - margin: 5px 0; - padding: 0 15px 15px; - border-bottom: 1px solid var(--hairline-color); -} - -#changelist-filter ul:last-child { - border-bottom: none; -} - -#changelist-filter li { - list-style-type: none; - margin-left: 0; - padding-left: 0; -} - -#changelist-filter a { - display: block; - color: var(--body-quiet-color); - word-break: break-word; -} - -#changelist-filter li.selected { - border-left: 5px solid var(--hairline-color); - padding-left: 10px; - margin-left: -15px; -} - -#changelist-filter li.selected a { - color: var(--link-selected-fg); -} - -#changelist-filter a:focus, #changelist-filter a:hover, -#changelist-filter li.selected a:focus, -#changelist-filter li.selected a:hover { - color: var(--link-hover-color); -} - -#changelist-filter #changelist-filter-clear a { - font-size: 0.8125rem; - padding-bottom: 10px; - border-bottom: 1px solid var(--hairline-color); -} - -/* DATE DRILLDOWN */ - -.change-list .toplinks { - display: flex; - padding-bottom: 5px; - flex-wrap: wrap; - gap: 3px 17px; - font-weight: bold; -} - -.change-list .toplinks a { - font-size: 0.8125rem; -} - -.change-list .toplinks .date-back { - color: var(--body-quiet-color); -} - -.change-list .toplinks .date-back:focus, -.change-list .toplinks .date-back:hover { - color: var(--link-hover-color); -} - -/* ACTIONS */ - -.filtered .actions { - border-right: none; -} - -#changelist table input { - margin: 0; - vertical-align: baseline; -} - -/* Once the :has() pseudo-class is supported by all browsers, the tr.selected - selector and the JS adding the class can be removed. */ -#changelist tbody tr.selected { - background-color: var(--selected-row); -} - -#changelist tbody tr:has(.action-select:checked) { - background-color: var(--selected-row); -} - -#changelist .actions { - padding: 10px; - background: var(--body-bg); - border-top: none; - border-bottom: none; - line-height: 1.5rem; - color: var(--body-quiet-color); - width: 100%; -} - -#changelist .actions span.all, -#changelist .actions span.action-counter, -#changelist .actions span.clear, -#changelist .actions span.question { - font-size: 0.8125rem; - margin: 0 0.5em; -} - -#changelist .actions:last-child { - border-bottom: none; -} - -#changelist .actions select { - vertical-align: top; - height: 1.5rem; - color: var(--body-fg); - border: 1px solid var(--border-color); - border-radius: 4px; - font-size: 0.875rem; - padding: 0 0 0 4px; - margin: 0; - margin-left: 10px; -} - -#changelist .actions select:focus { - border-color: var(--body-quiet-color); -} - -#changelist .actions label { - display: inline-block; - vertical-align: middle; - font-size: 0.8125rem; -} - -#changelist .actions .button { - font-size: 0.8125rem; - border: 1px solid var(--border-color); - border-radius: 4px; - background: var(--body-bg); - box-shadow: 0 -15px 20px -10px rgba(0, 0, 0, 0.15) inset; - cursor: pointer; - height: 1.5rem; - line-height: 1; - padding: 4px 8px; - margin: 0; - color: var(--body-fg); -} - -#changelist .actions .button:focus, #changelist .actions .button:hover { - border-color: var(--body-quiet-color); -} diff --git a/equipment_tracker/static/admin/css/changelists.9237a1ac391b.css.gz b/equipment_tracker/static/admin/css/changelists.9237a1ac391b.css.gz deleted file mode 100644 index 108028ffb0d372e01226f033207e8dd7a10fcce5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1564 zcmV+%2IKi3iwFP!00002|HW9_juST+zTc;?Kou;Chh*6mXjVm9VB2n$vJ!073&e$I z>}1?^#)Iu)lOk^W0PP$0N$S&_51CDoN)RMI{KxM<`RNnz`lpMxKVB}c-ru|jPo5qf zJ&Y5St_h=3fiFiu|G`vd4DCX&Vq|-6mk^`t6jDVt(k(-&kWg;(_gpHv+QFEoiliz8 zGD9(e5m9%9q~}Lpn@oc0J6v(GvG)*7iSYal{SYkl2jz-89vhm%JBn2jf_aCcLJ=eW zvOlz#&%d+hJU8fAClq6nt|(zxf-j|}DNo5c=$u|rridW8!64!S69ENXCt6i|^Jw_y zms0wKxErVQdA1$95(px5rsNC^9mvp{rbuxyJE~S6D$ZGi#H@A_)6ckT^EWk$foTF>&;Spe~o`8V#W9!+=exGw!PHAhvFHd>8)%UJmO06 zjlPp@f#i&0@EM865GIHUeVk|*F)og~C<{Zf}4w1%gb(9dVeGY;f_CSJXn(^Iy|8bJp;=-fikzD*(w?% z25k_B8jKh-G7v-slK{nv@)X7iiEksmHJav|v=wB*nL&YBQDmzM2C+^8L<})-sKRXq zp7L}$E6&wKk2*WwTwgC=UA%MF^}*7%ATn{d$>NapUwJ~G0`0>lR)Mh&1F|t z?XK$cTGGu&WE-(uo7YS5q}`~~)Krgs1YWkpb=XroMxcq1aYJ;7grQb7x}^&GEx0kL z5pCJ-Ni-tb`=l)Fexi8v&!2xiI`0}e;tcoX4%0qD8|Fh1+!Wvg&q(@lk{EwK8lsgK zU3L)^295m~=(Z9EcDEJpkRkmuPAJ3uee;+f7#)X14Y4i*G}WpW`^lp=CL+e;+w;lY z_((GBRVI*xkyw$IC7hIJQ+ltaVx5lAEkozU{ZgR5KGkBhI8qh59_#ti2731_%4d5e zD9hu%bM@kQSWI=7V9a!dE6uRCX=$a!1H(ku$u}1_m*CC2tL5^|^>40FHb>spsM+)K z(H5x;T>A=QrmPTDv)0=Dd}adtd83-a diff --git a/equipment_tracker/static/admin/css/changelists.css b/equipment_tracker/static/admin/css/changelists.css deleted file mode 100644 index a754513..0000000 --- a/equipment_tracker/static/admin/css/changelists.css +++ /dev/null @@ -1,328 +0,0 @@ -/* CHANGELISTS */ - -#changelist { - display: flex; - align-items: flex-start; - justify-content: space-between; -} - -#changelist .changelist-form-container { - flex: 1 1 auto; - min-width: 0; -} - -#changelist table { - width: 100%; -} - -.change-list .hiddenfields { display:none; } - -.change-list .filtered table { - border-right: none; -} - -.change-list .filtered { - min-height: 400px; -} - -.change-list .filtered .results, .change-list .filtered .paginator, -.filtered #toolbar, .filtered div.xfull { - width: auto; -} - -.change-list .filtered table tbody th { - padding-right: 1em; -} - -#changelist-form .results { - overflow-x: auto; - width: 100%; -} - -#changelist .toplinks { - border-bottom: 1px solid var(--hairline-color); -} - -#changelist .paginator { - color: var(--body-quiet-color); - border-bottom: 1px solid var(--hairline-color); - background: var(--body-bg); - overflow: hidden; -} - -/* CHANGELIST TABLES */ - -#changelist table thead th { - padding: 0; - white-space: nowrap; - vertical-align: middle; -} - -#changelist table thead th.action-checkbox-column { - width: 1.5em; - text-align: center; -} - -#changelist table tbody td.action-checkbox { - text-align: center; -} - -#changelist table tfoot { - color: var(--body-quiet-color); -} - -/* TOOLBAR */ - -#toolbar { - padding: 8px 10px; - margin-bottom: 15px; - border-top: 1px solid var(--hairline-color); - border-bottom: 1px solid var(--hairline-color); - background: var(--darkened-bg); - color: var(--body-quiet-color); -} - -#toolbar form input { - border-radius: 4px; - font-size: 0.875rem; - padding: 5px; - color: var(--body-fg); -} - -#toolbar #searchbar { - height: 1.1875rem; - border: 1px solid var(--border-color); - padding: 2px 5px; - margin: 0; - vertical-align: top; - font-size: 0.8125rem; - max-width: 100%; -} - -#toolbar #searchbar:focus { - border-color: var(--body-quiet-color); -} - -#toolbar form input[type="submit"] { - border: 1px solid var(--border-color); - font-size: 0.8125rem; - padding: 4px 8px; - margin: 0; - vertical-align: middle; - background: var(--body-bg); - box-shadow: 0 -15px 20px -10px rgba(0, 0, 0, 0.15) inset; - cursor: pointer; - color: var(--body-fg); -} - -#toolbar form input[type="submit"]:focus, -#toolbar form input[type="submit"]:hover { - border-color: var(--body-quiet-color); -} - -#changelist-search img { - vertical-align: middle; - margin-right: 4px; -} - -#changelist-search .help { - word-break: break-word; -} - -/* FILTER COLUMN */ - -#changelist-filter { - flex: 0 0 240px; - order: 1; - background: var(--darkened-bg); - border-left: none; - margin: 0 0 0 30px; -} - -#changelist-filter h2 { - font-size: 0.875rem; - text-transform: uppercase; - letter-spacing: 0.5px; - padding: 5px 15px; - margin-bottom: 12px; - border-bottom: none; -} - -#changelist-filter h3, -#changelist-filter details summary { - font-weight: 400; - padding: 0 15px; - margin-bottom: 10px; -} - -#changelist-filter details summary > * { - display: inline; -} - -#changelist-filter details > summary { - list-style-type: none; -} - -#changelist-filter details > summary::-webkit-details-marker { - display: none; -} - -#changelist-filter details > summary::before { - content: '→'; - font-weight: bold; - color: var(--link-hover-color); -} - -#changelist-filter details[open] > summary::before { - content: '↓'; -} - -#changelist-filter ul { - margin: 5px 0; - padding: 0 15px 15px; - border-bottom: 1px solid var(--hairline-color); -} - -#changelist-filter ul:last-child { - border-bottom: none; -} - -#changelist-filter li { - list-style-type: none; - margin-left: 0; - padding-left: 0; -} - -#changelist-filter a { - display: block; - color: var(--body-quiet-color); - word-break: break-word; -} - -#changelist-filter li.selected { - border-left: 5px solid var(--hairline-color); - padding-left: 10px; - margin-left: -15px; -} - -#changelist-filter li.selected a { - color: var(--link-selected-fg); -} - -#changelist-filter a:focus, #changelist-filter a:hover, -#changelist-filter li.selected a:focus, -#changelist-filter li.selected a:hover { - color: var(--link-hover-color); -} - -#changelist-filter #changelist-filter-clear a { - font-size: 0.8125rem; - padding-bottom: 10px; - border-bottom: 1px solid var(--hairline-color); -} - -/* DATE DRILLDOWN */ - -.change-list .toplinks { - display: flex; - padding-bottom: 5px; - flex-wrap: wrap; - gap: 3px 17px; - font-weight: bold; -} - -.change-list .toplinks a { - font-size: 0.8125rem; -} - -.change-list .toplinks .date-back { - color: var(--body-quiet-color); -} - -.change-list .toplinks .date-back:focus, -.change-list .toplinks .date-back:hover { - color: var(--link-hover-color); -} - -/* ACTIONS */ - -.filtered .actions { - border-right: none; -} - -#changelist table input { - margin: 0; - vertical-align: baseline; -} - -/* Once the :has() pseudo-class is supported by all browsers, the tr.selected - selector and the JS adding the class can be removed. */ -#changelist tbody tr.selected { - background-color: var(--selected-row); -} - -#changelist tbody tr:has(.action-select:checked) { - background-color: var(--selected-row); -} - -#changelist .actions { - padding: 10px; - background: var(--body-bg); - border-top: none; - border-bottom: none; - line-height: 1.5rem; - color: var(--body-quiet-color); - width: 100%; -} - -#changelist .actions span.all, -#changelist .actions span.action-counter, -#changelist .actions span.clear, -#changelist .actions span.question { - font-size: 0.8125rem; - margin: 0 0.5em; -} - -#changelist .actions:last-child { - border-bottom: none; -} - -#changelist .actions select { - vertical-align: top; - height: 1.5rem; - color: var(--body-fg); - border: 1px solid var(--border-color); - border-radius: 4px; - font-size: 0.875rem; - padding: 0 0 0 4px; - margin: 0; - margin-left: 10px; -} - -#changelist .actions select:focus { - border-color: var(--body-quiet-color); -} - -#changelist .actions label { - display: inline-block; - vertical-align: middle; - font-size: 0.8125rem; -} - -#changelist .actions .button { - font-size: 0.8125rem; - border: 1px solid var(--border-color); - border-radius: 4px; - background: var(--body-bg); - box-shadow: 0 -15px 20px -10px rgba(0, 0, 0, 0.15) inset; - cursor: pointer; - height: 1.5rem; - line-height: 1; - padding: 4px 8px; - margin: 0; - color: var(--body-fg); -} - -#changelist .actions .button:focus, #changelist .actions .button:hover { - border-color: var(--body-quiet-color); -} diff --git a/equipment_tracker/static/admin/css/changelists.css.gz b/equipment_tracker/static/admin/css/changelists.css.gz deleted file mode 100644 index 108028ffb0d372e01226f033207e8dd7a10fcce5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1564 zcmV+%2IKi3iwFP!00002|HW9_juST+zTc;?Kou;Chh*6mXjVm9VB2n$vJ!073&e$I z>}1?^#)Iu)lOk^W0PP$0N$S&_51CDoN)RMI{KxM<`RNnz`lpMxKVB}c-ru|jPo5qf zJ&Y5St_h=3fiFiu|G`vd4DCX&Vq|-6mk^`t6jDVt(k(-&kWg;(_gpHv+QFEoiliz8 zGD9(e5m9%9q~}Lpn@oc0J6v(GvG)*7iSYal{SYkl2jz-89vhm%JBn2jf_aCcLJ=eW zvOlz#&%d+hJU8fAClq6nt|(zxf-j|}DNo5c=$u|rridW8!64!S69ENXCt6i|^Jw_y zms0wKxErVQdA1$95(px5rsNC^9mvp{rbuxyJE~S6D$ZGi#H@A_)6ckT^EWk$foTF>&;Spe~o`8V#W9!+=exGw!PHAhvFHd>8)%UJmO06 zjlPp@f#i&0@EM865GIHUeVk|*F)og~C<{Zf}4w1%gb(9dVeGY;f_CSJXn(^Iy|8bJp;=-fikzD*(w?% z25k_B8jKh-G7v-slK{nv@)X7iiEksmHJav|v=wB*nL&YBQDmzM2C+^8L<})-sKRXq zp7L}$E6&wKk2*WwTwgC=UA%MF^}*7%ATn{d$>NapUwJ~G0`0>lR)Mh&1F|t z?XK$cTGGu&WE-(uo7YS5q}`~~)Krgs1YWkpb=XroMxcq1aYJ;7grQb7x}^&GEx0kL z5pCJ-Ni-tb`=l)Fexi8v&!2xiI`0}e;tcoX4%0qD8|Fh1+!Wvg&q(@lk{EwK8lsgK zU3L)^295m~=(Z9EcDEJpkRkmuPAJ3uee;+f7#)X14Y4i*G}WpW`^lp=CL+e;+w;lY z_((GBRVI*xkyw$IC7hIJQ+ltaVx5lAEkozU{ZgR5KGkBhI8qh59_#ti2731_%4d5e zD9hu%bM@kQSWI=7V9a!dE6uRCX=$a!1H(ku$u}1_m*CC2tL5^|^>40FHb>spsM+)K z(H5x;T>A=QrmPTDv)0=Dd}adtd83-a diff --git a/equipment_tracker/static/admin/css/dark_mode.css b/equipment_tracker/static/admin/css/dark_mode.css deleted file mode 100644 index 6d08233..0000000 --- a/equipment_tracker/static/admin/css/dark_mode.css +++ /dev/null @@ -1,137 +0,0 @@ -@media (prefers-color-scheme: dark) { - :root { - --primary: #264b5d; - --primary-fg: #f7f7f7; - - --body-fg: #eeeeee; - --body-bg: #121212; - --body-quiet-color: #e0e0e0; - --body-loud-color: #ffffff; - - --breadcrumbs-link-fg: #e0e0e0; - --breadcrumbs-bg: var(--primary); - - --link-fg: #81d4fa; - --link-hover-color: #4ac1f7; - --link-selected-fg: #6f94c6; - - --hairline-color: #272727; - --border-color: #353535; - - --error-fg: #e35f5f; - --message-success-bg: #006b1b; - --message-warning-bg: #583305; - --message-error-bg: #570808; - - --darkened-bg: #212121; - --selected-bg: #1b1b1b; - --selected-row: #00363a; - - --close-button-bg: #333333; - --close-button-hover-bg: #666666; - } - } - - -html[data-theme="dark"] { - --primary: #264b5d; - --primary-fg: #f7f7f7; - - --body-fg: #eeeeee; - --body-bg: #121212; - --body-quiet-color: #e0e0e0; - --body-loud-color: #ffffff; - - --breadcrumbs-link-fg: #e0e0e0; - --breadcrumbs-bg: var(--primary); - - --link-fg: #81d4fa; - --link-hover-color: #4ac1f7; - --link-selected-fg: #6f94c6; - - --hairline-color: #272727; - --border-color: #353535; - - --error-fg: #e35f5f; - --message-success-bg: #006b1b; - --message-warning-bg: #583305; - --message-error-bg: #570808; - - --darkened-bg: #212121; - --selected-bg: #1b1b1b; - --selected-row: #00363a; - - --close-button-bg: #333333; - --close-button-hover-bg: #666666; -} - -/* THEME SWITCH */ -.theme-toggle { - cursor: pointer; - border: none; - padding: 0; - background: transparent; - vertical-align: middle; - margin-inline-start: 5px; - margin-top: -1px; -} - -.theme-toggle svg { - vertical-align: middle; - height: 1rem; - width: 1rem; - display: none; -} - -/* -Fully hide screen reader text so we only show the one matching the current -theme. -*/ -.theme-toggle .visually-hidden { - display: none; -} - -html[data-theme="auto"] .theme-toggle .theme-label-when-auto { - display: block; -} - -html[data-theme="dark"] .theme-toggle .theme-label-when-dark { - display: block; -} - -html[data-theme="light"] .theme-toggle .theme-label-when-light { - display: block; -} - -/* ICONS */ -.theme-toggle svg.theme-icon-when-auto, -.theme-toggle svg.theme-icon-when-dark, -.theme-toggle svg.theme-icon-when-light { - fill: var(--header-link-color); - color: var(--header-bg); -} - -html[data-theme="auto"] .theme-toggle svg.theme-icon-when-auto { - display: block; -} - -html[data-theme="dark"] .theme-toggle svg.theme-icon-when-dark { - display: block; -} - -html[data-theme="light"] .theme-toggle svg.theme-icon-when-light { - display: block; -} - -.visually-hidden { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - overflow: hidden; - clip: rect(0,0,0,0); - white-space: nowrap; - border: 0; - color: var(--body-fg); - background-color: var(--body-bg); -} diff --git a/equipment_tracker/static/admin/css/dark_mode.css.gz b/equipment_tracker/static/admin/css/dark_mode.css.gz deleted file mode 100644 index faebccea590bbf329596f47495cc027ed38ea3c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 849 zcmV-X1FrlZiwFP!00002|D{!3PunmQeb2A3*b7A%T1pE`HE9xJf`@GnAnjq=gJa($ zR$V)@9STDG@AF3pO-tG$Y$3J2r{{j1d-=Km#tAyCG~}QSrb;M{4J}~-DPly=2k1FL z?xb2N+k8d{<4W@d(N8J*bT&QDCTzBD!Fl0~`GvpU*xED28Y6@=>sm5z8J+pNX8Bul zurWmcK}(_~mqi3kF302HWD^vfMaaeQa(LMZ#cK+r zOE&;Qn@6u4Z84$>vQa0D)~eMqL^+<0Nr#;ZWdLWjwMs^gaX7QL5wSf1Hw`D^{w4k| zNlLpAzZtOvTR#wA4t($jf0`-in}MDQNVciJPy0KSzfJeazM9{y_+*>fcWQmB(vv+@ z-mCFstG@S8_a55bs_bN!s<&ynSJBBnYTm77r{U8hbboXG{Tki-H9{E?7NjGfsP&A=$b5jB@O2<6X zu!t{9&TP5*z__Udd3wn*lq~sH3-N?X&YUBv0VMMC0UB9&w8$v51f-;cm{Ki~3(S23 z7q+FPD^GZE74@Y^LewY8M%_;yxT%SAgPj}ZJUsV=v$2FoZIxR>Yjp9OAQ=d}EJ0!q zTPMwgqVu;|o7J|9)x+MwDt!I-pbfZwUZ>*QtDisaHs$Md&^&PJhM>*-cn_S$}OX!(8~a8u^>v2=11Oc1!ngcpPriv}MVy+e8(i;D>LiN!8tg b!#A4S{4*b{Z$rF^Y6S2frdt^naSH$dGXj{n diff --git a/equipment_tracker/static/admin/css/dark_mode.ef27a31af300.css b/equipment_tracker/static/admin/css/dark_mode.ef27a31af300.css deleted file mode 100644 index 6d08233..0000000 --- a/equipment_tracker/static/admin/css/dark_mode.ef27a31af300.css +++ /dev/null @@ -1,137 +0,0 @@ -@media (prefers-color-scheme: dark) { - :root { - --primary: #264b5d; - --primary-fg: #f7f7f7; - - --body-fg: #eeeeee; - --body-bg: #121212; - --body-quiet-color: #e0e0e0; - --body-loud-color: #ffffff; - - --breadcrumbs-link-fg: #e0e0e0; - --breadcrumbs-bg: var(--primary); - - --link-fg: #81d4fa; - --link-hover-color: #4ac1f7; - --link-selected-fg: #6f94c6; - - --hairline-color: #272727; - --border-color: #353535; - - --error-fg: #e35f5f; - --message-success-bg: #006b1b; - --message-warning-bg: #583305; - --message-error-bg: #570808; - - --darkened-bg: #212121; - --selected-bg: #1b1b1b; - --selected-row: #00363a; - - --close-button-bg: #333333; - --close-button-hover-bg: #666666; - } - } - - -html[data-theme="dark"] { - --primary: #264b5d; - --primary-fg: #f7f7f7; - - --body-fg: #eeeeee; - --body-bg: #121212; - --body-quiet-color: #e0e0e0; - --body-loud-color: #ffffff; - - --breadcrumbs-link-fg: #e0e0e0; - --breadcrumbs-bg: var(--primary); - - --link-fg: #81d4fa; - --link-hover-color: #4ac1f7; - --link-selected-fg: #6f94c6; - - --hairline-color: #272727; - --border-color: #353535; - - --error-fg: #e35f5f; - --message-success-bg: #006b1b; - --message-warning-bg: #583305; - --message-error-bg: #570808; - - --darkened-bg: #212121; - --selected-bg: #1b1b1b; - --selected-row: #00363a; - - --close-button-bg: #333333; - --close-button-hover-bg: #666666; -} - -/* THEME SWITCH */ -.theme-toggle { - cursor: pointer; - border: none; - padding: 0; - background: transparent; - vertical-align: middle; - margin-inline-start: 5px; - margin-top: -1px; -} - -.theme-toggle svg { - vertical-align: middle; - height: 1rem; - width: 1rem; - display: none; -} - -/* -Fully hide screen reader text so we only show the one matching the current -theme. -*/ -.theme-toggle .visually-hidden { - display: none; -} - -html[data-theme="auto"] .theme-toggle .theme-label-when-auto { - display: block; -} - -html[data-theme="dark"] .theme-toggle .theme-label-when-dark { - display: block; -} - -html[data-theme="light"] .theme-toggle .theme-label-when-light { - display: block; -} - -/* ICONS */ -.theme-toggle svg.theme-icon-when-auto, -.theme-toggle svg.theme-icon-when-dark, -.theme-toggle svg.theme-icon-when-light { - fill: var(--header-link-color); - color: var(--header-bg); -} - -html[data-theme="auto"] .theme-toggle svg.theme-icon-when-auto { - display: block; -} - -html[data-theme="dark"] .theme-toggle svg.theme-icon-when-dark { - display: block; -} - -html[data-theme="light"] .theme-toggle svg.theme-icon-when-light { - display: block; -} - -.visually-hidden { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - overflow: hidden; - clip: rect(0,0,0,0); - white-space: nowrap; - border: 0; - color: var(--body-fg); - background-color: var(--body-bg); -} diff --git a/equipment_tracker/static/admin/css/dark_mode.ef27a31af300.css.gz b/equipment_tracker/static/admin/css/dark_mode.ef27a31af300.css.gz deleted file mode 100644 index faebccea590bbf329596f47495cc027ed38ea3c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 849 zcmV-X1FrlZiwFP!00002|D{!3PunmQeb2A3*b7A%T1pE`HE9xJf`@GnAnjq=gJa($ zR$V)@9STDG@AF3pO-tG$Y$3J2r{{j1d-=Km#tAyCG~}QSrb;M{4J}~-DPly=2k1FL z?xb2N+k8d{<4W@d(N8J*bT&QDCTzBD!Fl0~`GvpU*xED28Y6@=>sm5z8J+pNX8Bul zurWmcK}(_~mqi3kF302HWD^vfMaaeQa(LMZ#cK+r zOE&;Qn@6u4Z84$>vQa0D)~eMqL^+<0Nr#;ZWdLWjwMs^gaX7QL5wSf1Hw`D^{w4k| zNlLpAzZtOvTR#wA4t($jf0`-in}MDQNVciJPy0KSzfJeazM9{y_+*>fcWQmB(vv+@ z-mCFstG@S8_a55bs_bN!s<&ynSJBBnYTm77r{U8hbboXG{Tki-H9{E?7NjGfsP&A=$b5jB@O2<6X zu!t{9&TP5*z__Udd3wn*lq~sH3-N?X&YUBv0VMMC0UB9&w8$v51f-;cm{Ki~3(S23 z7q+FPD^GZE74@Y^LewY8M%_;yxT%SAgPj}ZJUsV=v$2FoZIxR>Yjp9OAQ=d}EJ0!q zTPMwgqVu;|o7J|9)x+MwDt!I-pbfZwUZ>*QtDisaHs$Md&^&PJhM>*-cn_S$}OX!(8~a8u^>v2=11Oc1!ngcpPriv}MVy+e8(i;D>LiN!8tg b!#A4S{4*b{Z$rF^Y6S2frdt^naSH$dGXj{n diff --git a/equipment_tracker/static/admin/css/dashboard.css b/equipment_tracker/static/admin/css/dashboard.css deleted file mode 100644 index 242b81a..0000000 --- a/equipment_tracker/static/admin/css/dashboard.css +++ /dev/null @@ -1,29 +0,0 @@ -/* DASHBOARD */ -.dashboard td, .dashboard th { - word-break: break-word; -} - -.dashboard .module table th { - width: 100%; -} - -.dashboard .module table td { - white-space: nowrap; -} - -.dashboard .module table td a { - display: block; - padding-right: .6em; -} - -/* RECENT ACTIONS MODULE */ - -.module ul.actionlist { - margin-left: 0; -} - -ul.actionlist li { - list-style-type: none; - overflow: hidden; - text-overflow: ellipsis; -} diff --git a/equipment_tracker/static/admin/css/dashboard.css.gz b/equipment_tracker/static/admin/css/dashboard.css.gz deleted file mode 100644 index 06db5fd5cf463e2a3989b143df3b5bdc73962e1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 267 zcmV+m0rdVKiwFP!00002|AmmTZi6rohIgLgmM*9Ux^y5D4M?rj1}RA&z;F&e#n{Mp zN>SB!FA&nEQ#{zZ-}n9h*>MPYwtIdmvuzGx97M>StPHmZ9`E70l<*b6xO!ueRaWq0 z3iH7xWfgn}*L2hxJShR5SJVCr6MC7#Lz3LxAn-y+@`AaJ*CGXNdds_;Bwtu0*C{@X zb1G9GSF_e}MA8kj)JUH~^eEcdFAiZ_tc%Savi1I@-0a}3%->&&=~seF!bwHE_GGjo z=a-O{+lDk#;xO7Jv)BJNMN8*YG3N&*m>;_NIa-{jG9SVol<8BDgede`_2SdBzbl~> Rb&lMW@dMe)7Ztey007?gfrSB!FA&nEQ#{zZ-}n9h*>MPYwtIdmvuzGx97M>StPHmZ9`E70l<*b6xO!ueRaWq0 z3iH7xWfgn}*L2hxJShR5SJVCr6MC7#Lz3LxAn-y+@`AaJ*CGXNdds_;Bwtu0*C{@X zb1G9GSF_e}MA8kj)JUH~^eEcdFAiZ_tc%Savi1I@-0a}3%->&&=~seF!bwHE_GGjo z=a-O{+lDk#;xO7Jv)BJNMN8*YG3N&*m>;_NIa-{jG9SVol<8BDgede`_2SdBzbl~> Rb&lMW@dMe)7Ztey007?gfr div { - padding-bottom: 10px; -} - -/* FORM LABELS */ - -label { - font-weight: normal; - color: var(--body-quiet-color); - font-size: 0.8125rem; -} - -.required label, label.required { - font-weight: bold; - color: var(--body-fg); -} - -/* RADIO BUTTONS */ - -form div.radiolist div { - padding-right: 7px; -} - -form div.radiolist.inline div { - display: inline-block; -} - -form div.radiolist label { - width: auto; -} - -form div.radiolist input[type="radio"] { - margin: -2px 4px 0 0; - padding: 0; -} - -form ul.inline { - margin-left: 0; - padding: 0; -} - -form ul.inline li { - float: left; - padding-right: 7px; -} - -/* ALIGNED FIELDSETS */ - -.aligned label { - display: block; - padding: 4px 10px 0 0; - width: 160px; - word-wrap: break-word; - line-height: 1; -} - -.aligned label:not(.vCheckboxLabel):after { - content: ''; - display: inline-block; - vertical-align: middle; - height: 1.625rem; -} - -.aligned label + p, .aligned .checkbox-row + div.help, .aligned label + div.readonly { - padding: 6px 0; - margin-top: 0; - margin-bottom: 0; - margin-left: 0; - overflow-wrap: break-word; -} - -.aligned ul label { - display: inline; - float: none; - width: auto; -} - -.aligned .form-row input { - margin-bottom: 0; -} - -.colMS .aligned .vLargeTextField, .colMS .aligned .vXMLLargeTextField { - width: 350px; -} - -form .aligned ul { - margin-left: 160px; - padding-left: 10px; -} - -form .aligned div.radiolist { - display: inline-block; - margin: 0; - padding: 0; -} - -form .aligned p.help, -form .aligned div.help { - margin-top: 0; - margin-left: 160px; - padding-left: 10px; -} - -form .aligned p.date div.help.timezonewarning, -form .aligned p.datetime div.help.timezonewarning, -form .aligned p.time div.help.timezonewarning { - margin-left: 0; - padding-left: 0; - font-weight: normal; -} - -form .aligned p.help:last-child, -form .aligned div.help:last-child { - margin-bottom: 0; - padding-bottom: 0; -} - -form .aligned input + p.help, -form .aligned textarea + p.help, -form .aligned select + p.help, -form .aligned input + div.help, -form .aligned textarea + div.help, -form .aligned select + div.help { - margin-left: 160px; - padding-left: 10px; -} - -form .aligned ul li { - list-style: none; -} - -form .aligned table p { - margin-left: 0; - padding-left: 0; -} - -.aligned .vCheckboxLabel { - float: none; - width: auto; - display: inline-block; - vertical-align: -3px; - padding: 0 0 5px 5px; -} - -.aligned .vCheckboxLabel + p.help, -.aligned .vCheckboxLabel + div.help { - margin-top: -4px; -} - -.colM .aligned .vLargeTextField, .colM .aligned .vXMLLargeTextField { - width: 610px; -} - -fieldset .fieldBox { - margin-right: 20px; -} - -/* WIDE FIELDSETS */ - -.wide label { - width: 200px; -} - -form .wide p, -form .wide ul.errorlist, -form .wide input + p.help, -form .wide input + div.help { - margin-left: 200px; -} - -form .wide p.help, -form .wide div.help { - padding-left: 50px; -} - -form div.help ul { - padding-left: 0; - margin-left: 0; -} - -.colM fieldset.wide .vLargeTextField, .colM fieldset.wide .vXMLLargeTextField { - width: 450px; -} - -/* COLLAPSED FIELDSETS */ - -fieldset.collapsed * { - display: none; -} - -fieldset.collapsed h2, fieldset.collapsed { - display: block; -} - -fieldset.collapsed { - border: 1px solid var(--hairline-color); - border-radius: 4px; - overflow: hidden; -} - -fieldset.collapsed h2 { - background: var(--darkened-bg); - color: var(--body-quiet-color); -} - -fieldset .collapse-toggle { - color: var(--header-link-color); -} - -fieldset.collapsed .collapse-toggle { - background: transparent; - display: inline; - color: var(--link-fg); -} - -/* MONOSPACE TEXTAREAS */ - -fieldset.monospace textarea { - font-family: var(--font-family-monospace); -} - -/* SUBMIT ROW */ - -.submit-row { - padding: 12px 14px 12px; - margin: 0 0 20px; - background: var(--darkened-bg); - border: 1px solid var(--hairline-color); - border-radius: 4px; - overflow: hidden; - display: flex; - gap: 10px; - flex-wrap: wrap; -} - -body.popup .submit-row { - overflow: auto; -} - -.submit-row input { - height: 2.1875rem; - line-height: 0.9375rem; -} - -.submit-row input, .submit-row a { - margin: 0; -} - -.submit-row input.default { - text-transform: uppercase; -} - -.submit-row a.deletelink { - margin-left: auto; -} - -.submit-row a.deletelink { - display: block; - background: var(--delete-button-bg); - border-radius: 4px; - padding: 0.625rem 0.9375rem; - height: 0.9375rem; - line-height: 0.9375rem; - color: var(--button-fg); -} - -.submit-row a.closelink { - display: inline-block; - background: var(--close-button-bg); - border-radius: 4px; - padding: 10px 15px; - height: 0.9375rem; - line-height: 0.9375rem; - color: var(--button-fg); -} - -.submit-row a.deletelink:focus, -.submit-row a.deletelink:hover, -.submit-row a.deletelink:active { - background: var(--delete-button-hover-bg); - text-decoration: none; -} - -.submit-row a.closelink:focus, -.submit-row a.closelink:hover, -.submit-row a.closelink:active { - background: var(--close-button-hover-bg); - text-decoration: none; -} - -/* CUSTOM FORM FIELDS */ - -.vSelectMultipleField { - vertical-align: top; -} - -.vCheckboxField { - border: none; -} - -.vDateField, .vTimeField { - margin-right: 2px; - margin-bottom: 4px; -} - -.vDateField { - min-width: 6.85em; -} - -.vTimeField { - min-width: 4.7em; -} - -.vURLField { - width: 30em; -} - -.vLargeTextField, .vXMLLargeTextField { - width: 48em; -} - -.flatpages-flatpage #id_content { - height: 40.2em; -} - -.module table .vPositiveSmallIntegerField { - width: 2.2em; -} - -.vIntegerField { - width: 5em; -} - -.vBigIntegerField { - width: 10em; -} - -.vForeignKeyRawIdAdminField { - width: 5em; -} - -.vTextField, .vUUIDField { - width: 20em; -} - -/* INLINES */ - -.inline-group { - padding: 0; - margin: 0 0 30px; -} - -.inline-group thead th { - padding: 8px 10px; -} - -.inline-group .aligned label { - width: 160px; -} - -.inline-related { - position: relative; -} - -.inline-related h3 { - margin: 0; - color: var(--body-quiet-color); - padding: 5px; - font-size: 0.8125rem; - background: var(--darkened-bg); - border-top: 1px solid var(--hairline-color); - border-bottom: 1px solid var(--hairline-color); -} - -.inline-related h3 span.delete { - float: right; -} - -.inline-related h3 span.delete label { - margin-left: 2px; - font-size: 0.6875rem; -} - -.inline-related fieldset { - margin: 0; - background: var(--body-bg); - border: none; - width: 100%; -} - -.inline-related fieldset.module h3 { - margin: 0; - padding: 2px 5px 3px 5px; - font-size: 0.6875rem; - text-align: left; - font-weight: bold; - background: #bcd; - color: var(--body-bg); -} - -.inline-group .tabular fieldset.module { - border: none; -} - -.inline-related.tabular fieldset.module table { - width: 100%; - overflow-x: scroll; -} - -.last-related fieldset { - border: none; -} - -.inline-group .tabular tr.has_original td { - padding-top: 2em; -} - -.inline-group .tabular tr td.original { - padding: 2px 0 0 0; - width: 0; - _position: relative; -} - -.inline-group .tabular th.original { - width: 0px; - padding: 0; -} - -.inline-group .tabular td.original p { - position: absolute; - left: 0; - height: 1.1em; - padding: 2px 9px; - overflow: hidden; - font-size: 0.5625rem; - font-weight: bold; - color: var(--body-quiet-color); - _width: 700px; -} - -.inline-group ul.tools { - padding: 0; - margin: 0; - list-style: none; -} - -.inline-group ul.tools li { - display: inline; - padding: 0 5px; -} - -.inline-group div.add-row, -.inline-group .tabular tr.add-row td { - color: var(--body-quiet-color); - background: var(--darkened-bg); - padding: 8px 10px; - border-bottom: 1px solid var(--hairline-color); -} - -.inline-group .tabular tr.add-row td { - padding: 8px 10px; - border-bottom: 1px solid var(--hairline-color); -} - -.inline-group ul.tools a.add, -.inline-group div.add-row a, -.inline-group .tabular tr.add-row td a { - background: url("../img/icon-addlink.d519b3bab011.svg") 0 1px no-repeat; - padding-left: 16px; - font-size: 0.75rem; -} - -.empty-form { - display: none; -} - -/* RELATED FIELD ADD ONE / LOOKUP */ - -.related-lookup { - margin-left: 5px; - display: inline-block; - vertical-align: middle; - background-repeat: no-repeat; - background-size: 14px; -} - -.related-lookup { - width: 1rem; - height: 1rem; - background-image: url("../img/search.7cf54ff789c6.svg"); -} - -form .related-widget-wrapper ul { - display: inline-block; - margin-left: 0; - padding-left: 0; -} - -.clearable-file-input input { - margin-top: 0; -} diff --git a/equipment_tracker/static/admin/css/forms.3b181cba6653.css.gz b/equipment_tracker/static/admin/css/forms.3b181cba6653.css.gz deleted file mode 100644 index 107139e0f3034a95f9c28691fe499648379504ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2236 zcmV;t2t)TDiwFP!00002|Fs(ZZ`(HZ_xu$?hG9(`DYg?ksf|0F+qef~PFy4oHefgu zltkM?Xi<|WCt1+{{T?NeA|=vxHnc_En0oK=eSazci8cvMnUkmF-SJZtt}x5I4m!Ua z^zl_^;GcUzmK~prj*iaWJ74B^H_qMsw|nRP+0l`=r0K>@>67z%|@X+aaSKVGe#hdbpPty>mu1^`G8$d~(os5zw zbhapc=elbYr6h{68&E=1VCuWdMYLI+I?C5L$yvo3aK@ql5f_nY6%U;aFi3C%pCBKT z673K6lHh+G2WuQW`t@?rGMWJEBO~cfL6s9#cu6Y!N*OM}OC~_QCBe@i zQOppCmR68qlqCec3?2ToQX7YRN)g=6KNapbIbji3jPq|m+%_(g+AIw4y|(0R{An^P zZCT3xTASwyN2@jP7z2GoN(Kt84=Y>vG<UYIy!|8^O+kVx>KeAub;G(^|$#b=`qX zA5V}ZsyOgdj2>NnP(CWGvaZ~xTl$^G!!V}oowxm51@?@eoea^E$-v`*h+{zi<(JVe zqwh*9{F&s!8z@1bE98TdK*kbho=7)E%J@+D#~KqAM4%O}gHcFh@}j%-&>3*;jcnN>q;rF+RY`JUwr;7dk?Ke>6$j0DsC8gW-)*Kj4kU$}dqsWQ8Gzvher8`H zOhQmw3*z^inGU4K=Xt-QW&>45Log{Wsps{snTj6oult-!g#C_~m86r>Q4AOIb9?dn zNAe_Ih!~c)cr4oBzre&#D2)O6)CkUj-hi?be1C@14~>P*qRSyc8C14)1de1;s{&&6 zQ&Sx_8L;&B4;Di*a90HJX9dVG!GRrLP?s6SPTvM1Z!kO6-}4}zJ4CVJLE&cXgO>19Jpvk9N7P`RX>U1`XZe^ztD=W%)2>rKTTC3kqeI7u(F(gxX`vi@su;&-2-A z{Pn)ow@I3C13^g!PV&B4u<96X1Fw6hj^Wtc|Cvd=D)Zn0gP<}z@)Db8MJqY7%%wK2 z#jPlKT%|ORLosrMD1F2bE3UsfIcyfvf<@c`fx21|EIUnw#2UIeU><~eG|^Dlv`|x- zW+{rZ1TuQeM)s~uyT7;D_oP|gJMD^oF1l46k@0p3KARM-s`a4(#kh;qmx~Hciov9^4NVFQ@mMR)!B$4# z^?AEa9=bP|BJ>Yi{3>ZL6|baru-llA$!NC1amspioqG^1h$S4tPt zpe!43qgC2kEKJjC4_ljoZm09}&ih1w+x$V=x>xQ6oO7`su!|=%f0d={rM%^pi7MVt zeqeo(;;&9j(E`aSCn#;nWUB(YDy-;b&U_tv%&_3MkSa6e7ZkGlsT&58R1C3zkEhOeC?zg0T8?3h!0PCP~_$@bNi zk$vH4At<+$#z9)y_4SR6@l6oG@GkIlhl5riwQnAxltYSvp+5e@lz#y8Kk8Cx6vXd5 zwX51e2PzvG`taiSAw2Ia+N{nZXz5&l=bgJ3_PZbbb07JgZr97UtK$(6&iMM;ncq&FGiNrR|N8K?Y_Y0L=@LpG zbK|m8)|$WhZnIWYCGxN-y#i6n+LbN7kv&lhT0?c$(Dk^{2AXZ%Mj1wFu=Xy4W&dKi zyuA7t3`*-LJ6&;e`D-r4_9ek-y`J6sGVXwv4FLg0c#(6L5qy+u8N<6w@fPm;(f div { - padding-bottom: 10px; -} - -/* FORM LABELS */ - -label { - font-weight: normal; - color: var(--body-quiet-color); - font-size: 0.8125rem; -} - -.required label, label.required { - font-weight: bold; - color: var(--body-fg); -} - -/* RADIO BUTTONS */ - -form div.radiolist div { - padding-right: 7px; -} - -form div.radiolist.inline div { - display: inline-block; -} - -form div.radiolist label { - width: auto; -} - -form div.radiolist input[type="radio"] { - margin: -2px 4px 0 0; - padding: 0; -} - -form ul.inline { - margin-left: 0; - padding: 0; -} - -form ul.inline li { - float: left; - padding-right: 7px; -} - -/* ALIGNED FIELDSETS */ - -.aligned label { - display: block; - padding: 4px 10px 0 0; - width: 160px; - word-wrap: break-word; - line-height: 1; -} - -.aligned label:not(.vCheckboxLabel):after { - content: ''; - display: inline-block; - vertical-align: middle; - height: 1.625rem; -} - -.aligned label + p, .aligned .checkbox-row + div.help, .aligned label + div.readonly { - padding: 6px 0; - margin-top: 0; - margin-bottom: 0; - margin-left: 0; - overflow-wrap: break-word; -} - -.aligned ul label { - display: inline; - float: none; - width: auto; -} - -.aligned .form-row input { - margin-bottom: 0; -} - -.colMS .aligned .vLargeTextField, .colMS .aligned .vXMLLargeTextField { - width: 350px; -} - -form .aligned ul { - margin-left: 160px; - padding-left: 10px; -} - -form .aligned div.radiolist { - display: inline-block; - margin: 0; - padding: 0; -} - -form .aligned p.help, -form .aligned div.help { - margin-top: 0; - margin-left: 160px; - padding-left: 10px; -} - -form .aligned p.date div.help.timezonewarning, -form .aligned p.datetime div.help.timezonewarning, -form .aligned p.time div.help.timezonewarning { - margin-left: 0; - padding-left: 0; - font-weight: normal; -} - -form .aligned p.help:last-child, -form .aligned div.help:last-child { - margin-bottom: 0; - padding-bottom: 0; -} - -form .aligned input + p.help, -form .aligned textarea + p.help, -form .aligned select + p.help, -form .aligned input + div.help, -form .aligned textarea + div.help, -form .aligned select + div.help { - margin-left: 160px; - padding-left: 10px; -} - -form .aligned ul li { - list-style: none; -} - -form .aligned table p { - margin-left: 0; - padding-left: 0; -} - -.aligned .vCheckboxLabel { - float: none; - width: auto; - display: inline-block; - vertical-align: -3px; - padding: 0 0 5px 5px; -} - -.aligned .vCheckboxLabel + p.help, -.aligned .vCheckboxLabel + div.help { - margin-top: -4px; -} - -.colM .aligned .vLargeTextField, .colM .aligned .vXMLLargeTextField { - width: 610px; -} - -fieldset .fieldBox { - margin-right: 20px; -} - -/* WIDE FIELDSETS */ - -.wide label { - width: 200px; -} - -form .wide p, -form .wide ul.errorlist, -form .wide input + p.help, -form .wide input + div.help { - margin-left: 200px; -} - -form .wide p.help, -form .wide div.help { - padding-left: 50px; -} - -form div.help ul { - padding-left: 0; - margin-left: 0; -} - -.colM fieldset.wide .vLargeTextField, .colM fieldset.wide .vXMLLargeTextField { - width: 450px; -} - -/* COLLAPSED FIELDSETS */ - -fieldset.collapsed * { - display: none; -} - -fieldset.collapsed h2, fieldset.collapsed { - display: block; -} - -fieldset.collapsed { - border: 1px solid var(--hairline-color); - border-radius: 4px; - overflow: hidden; -} - -fieldset.collapsed h2 { - background: var(--darkened-bg); - color: var(--body-quiet-color); -} - -fieldset .collapse-toggle { - color: var(--header-link-color); -} - -fieldset.collapsed .collapse-toggle { - background: transparent; - display: inline; - color: var(--link-fg); -} - -/* MONOSPACE TEXTAREAS */ - -fieldset.monospace textarea { - font-family: var(--font-family-monospace); -} - -/* SUBMIT ROW */ - -.submit-row { - padding: 12px 14px 12px; - margin: 0 0 20px; - background: var(--darkened-bg); - border: 1px solid var(--hairline-color); - border-radius: 4px; - overflow: hidden; - display: flex; - gap: 10px; - flex-wrap: wrap; -} - -body.popup .submit-row { - overflow: auto; -} - -.submit-row input { - height: 2.1875rem; - line-height: 0.9375rem; -} - -.submit-row input, .submit-row a { - margin: 0; -} - -.submit-row input.default { - text-transform: uppercase; -} - -.submit-row a.deletelink { - margin-left: auto; -} - -.submit-row a.deletelink { - display: block; - background: var(--delete-button-bg); - border-radius: 4px; - padding: 0.625rem 0.9375rem; - height: 0.9375rem; - line-height: 0.9375rem; - color: var(--button-fg); -} - -.submit-row a.closelink { - display: inline-block; - background: var(--close-button-bg); - border-radius: 4px; - padding: 10px 15px; - height: 0.9375rem; - line-height: 0.9375rem; - color: var(--button-fg); -} - -.submit-row a.deletelink:focus, -.submit-row a.deletelink:hover, -.submit-row a.deletelink:active { - background: var(--delete-button-hover-bg); - text-decoration: none; -} - -.submit-row a.closelink:focus, -.submit-row a.closelink:hover, -.submit-row a.closelink:active { - background: var(--close-button-hover-bg); - text-decoration: none; -} - -/* CUSTOM FORM FIELDS */ - -.vSelectMultipleField { - vertical-align: top; -} - -.vCheckboxField { - border: none; -} - -.vDateField, .vTimeField { - margin-right: 2px; - margin-bottom: 4px; -} - -.vDateField { - min-width: 6.85em; -} - -.vTimeField { - min-width: 4.7em; -} - -.vURLField { - width: 30em; -} - -.vLargeTextField, .vXMLLargeTextField { - width: 48em; -} - -.flatpages-flatpage #id_content { - height: 40.2em; -} - -.module table .vPositiveSmallIntegerField { - width: 2.2em; -} - -.vIntegerField { - width: 5em; -} - -.vBigIntegerField { - width: 10em; -} - -.vForeignKeyRawIdAdminField { - width: 5em; -} - -.vTextField, .vUUIDField { - width: 20em; -} - -/* INLINES */ - -.inline-group { - padding: 0; - margin: 0 0 30px; -} - -.inline-group thead th { - padding: 8px 10px; -} - -.inline-group .aligned label { - width: 160px; -} - -.inline-related { - position: relative; -} - -.inline-related h3 { - margin: 0; - color: var(--body-quiet-color); - padding: 5px; - font-size: 0.8125rem; - background: var(--darkened-bg); - border-top: 1px solid var(--hairline-color); - border-bottom: 1px solid var(--hairline-color); -} - -.inline-related h3 span.delete { - float: right; -} - -.inline-related h3 span.delete label { - margin-left: 2px; - font-size: 0.6875rem; -} - -.inline-related fieldset { - margin: 0; - background: var(--body-bg); - border: none; - width: 100%; -} - -.inline-related fieldset.module h3 { - margin: 0; - padding: 2px 5px 3px 5px; - font-size: 0.6875rem; - text-align: left; - font-weight: bold; - background: #bcd; - color: var(--body-bg); -} - -.inline-group .tabular fieldset.module { - border: none; -} - -.inline-related.tabular fieldset.module table { - width: 100%; - overflow-x: scroll; -} - -.last-related fieldset { - border: none; -} - -.inline-group .tabular tr.has_original td { - padding-top: 2em; -} - -.inline-group .tabular tr td.original { - padding: 2px 0 0 0; - width: 0; - _position: relative; -} - -.inline-group .tabular th.original { - width: 0px; - padding: 0; -} - -.inline-group .tabular td.original p { - position: absolute; - left: 0; - height: 1.1em; - padding: 2px 9px; - overflow: hidden; - font-size: 0.5625rem; - font-weight: bold; - color: var(--body-quiet-color); - _width: 700px; -} - -.inline-group ul.tools { - padding: 0; - margin: 0; - list-style: none; -} - -.inline-group ul.tools li { - display: inline; - padding: 0 5px; -} - -.inline-group div.add-row, -.inline-group .tabular tr.add-row td { - color: var(--body-quiet-color); - background: var(--darkened-bg); - padding: 8px 10px; - border-bottom: 1px solid var(--hairline-color); -} - -.inline-group .tabular tr.add-row td { - padding: 8px 10px; - border-bottom: 1px solid var(--hairline-color); -} - -.inline-group ul.tools a.add, -.inline-group div.add-row a, -.inline-group .tabular tr.add-row td a { - background: url(../img/icon-addlink.svg) 0 1px no-repeat; - padding-left: 16px; - font-size: 0.75rem; -} - -.empty-form { - display: none; -} - -/* RELATED FIELD ADD ONE / LOOKUP */ - -.related-lookup { - margin-left: 5px; - display: inline-block; - vertical-align: middle; - background-repeat: no-repeat; - background-size: 14px; -} - -.related-lookup { - width: 1rem; - height: 1rem; - background-image: url(../img/search.svg); -} - -form .related-widget-wrapper ul { - display: inline-block; - margin-left: 0; - padding-left: 0; -} - -.clearable-file-input input { - margin-top: 0; -} diff --git a/equipment_tracker/static/admin/css/forms.css.gz b/equipment_tracker/static/admin/css/forms.css.gz deleted file mode 100644 index ed2543618f008add7bb2b0a6f811e7ab9b3805d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2199 zcmV;I2x#{oiwFP!00002|Fs%xZ`-!^dwvD6;i63&DYg?QnT-u|8u!AO6Bn_A4Y(Kz z+M;bCw5UmxlPu_ezlV}YkrHV;8``37Or3Lh-Y@0Xa1*nHqb#BC-#vxFityB5r0Kik z{?XCt2lRPze~a!XzfaMJ)1xDQ$&!tiuqX6-gy0X`l4MEQQxC1fARtjcKaFt^gwd*p z+O7DxI9jrZdujML>7kZ?)$Vi?vMHX-SrU-Mn={VY22kQ>lrkCyXp58gp0~zfLc@r7 z3r1N2OnuY22sf(}qR}qLq8{1+gOt?pDV`Hrp#6`(#N_867HhJ2 zoU`X2{w(QiaIy*`kFyw9?^{W?a;k!;#!Fn{m&))cS#k;LFDZEji6V|cw4{U#!ZfD% zrH91RQf&h6DZy~J_|&-HWR!mixiY zXo9XEX0yp%Ax*A*P=uf0AO!zOxkW8Wami(=lqQZJM!8NaRArRni8rTg@#w%tx=JCI z__~L1#+eIT_q+VG=5#&ebs!wh;a^Moo{BBa=`t$$He6PD+idpEp6pGU*-&2%^`GejN}(&Tj|mfABI65P83*%(;73m! z6pwPNtV{Q47k+2((2E#z3cBX`mVGho+&Q;3oQst zg?vOYWGs2+%XE{cjE}j0tO?aYBwFq|1P3glFQ!}f(1p-m-<7V)BbgJ-Q^QGQI=84= zmn5Th>lWJT>y8vLc~FmsN(a{T-DFzeKvKA!YU_%=e z)4o~c9J%R@1;9J2$=?%&40RzTcS{X8*{O`T17t@?d*|{7k@oiH#W$qIi^_cBVM;jU zY4OuFdo~#<8-tG4Y5qRC8P?kZpi6B1QKx14Ne-u6G5-c_3P}={2zN0a*dxezw99qv zS2tBQgw*Cx@H9mx;K5@%Gh zA^gJ2T~VaN9?IgFBnzC91~vvvN;nZtXiLski7iOB(bD1xIhr@mpdE|q?$ESwRmsaq zPS>5T?%J_S-OcP#Fd~D`lyN~>Y8A2Bj5H<9k>4(8K7hBo^8CBXSJ|+)WQ#04aX(*+ z5ZLh?FL<~m?i_BIJttP_B=^;TELehh$Re%0Im}__wt8%3wtBpWSHo}zvnne3!*n*e zE!KNQO)qllcAEF^w_;HkQ=&Hp^&S?Q$wF||eCp6LX;%8#-oRKVTaxVzMl>D1))<;u zTa84jb*+d=e1MW|sDIU!`KozO1$XXWDzJz9v2D(8DS$>(wYPz~lDJEXd5l*i_2f_J z$1wO>E|6-u_`KzJB;tkz8Px4!obk6`SQ-j%n8G|tM}WK{iRI!>MPTcOsx)*RuH0bl zN&}x+0z5{)k(Yb?Gzta*sB$M^Lt76IqZ=Eul0Nw4=x#i^8{L7wr;!)+t<->q85Qbr)$a7d4!OfJs#w8s`=gv6i2Mt*pT7vu2$fRgXvTDGsR%vQ6H%+5G zY-|SFt=4~b-X{ax59!eJpj5!7Ee9z`Es*{tN96a&YIQ`1N55ovk#Dm&Q zo<~Zj=1C1Afafb3uT5*V8ZR!&Z(sN1koryQ`ZbbVvn}08M`Jf`WHUU65YKq&-o{p< zdVSHB?q>-4)9wMtaN_QTmb?yr!`IA_UrQZaw(KcBqdsShru*tj-@R~j5L8=A>maS| z`np!e#3l$}L>G9n!$C`s$~O;D$|1$TQXl_i%0Gbl?{%p%3Kn;sxK)ktfy%~~K3x0? zgzuk*o7HIu9i0c@qH*`r?dllpEZB}1B&C>OZrylaSo677tjH$jFJ8VWbgkCJ%kANK zFp~>9G`P7zle-~0MdQijw}&r9PgSNyk23a{S+|?2xctMHnU!Wrk$ZLNHHbpiw(9Av z?8)Tcn4;U3HpdG$&|MowNeNCC>)agL)>d9s{O(G=Ux`UlEnxS)Zad(0!h*upqKtXV Z5I%~NyXLj6}G007d*PW%7> diff --git a/equipment_tracker/static/admin/css/login.586129c60a93.css b/equipment_tracker/static/admin/css/login.586129c60a93.css deleted file mode 100644 index 389772f..0000000 --- a/equipment_tracker/static/admin/css/login.586129c60a93.css +++ /dev/null @@ -1,61 +0,0 @@ -/* LOGIN FORM */ - -.login { - background: var(--darkened-bg); - height: auto; -} - -.login #header { - height: auto; - padding: 15px 16px; - justify-content: center; -} - -.login #header h1 { - font-size: 1.125rem; - margin: 0; -} - -.login #header h1 a { - color: var(--header-link-color); -} - -.login #content { - padding: 20px 20px 0; -} - -.login #container { - background: var(--body-bg); - border: 1px solid var(--hairline-color); - border-radius: 4px; - overflow: hidden; - width: 28em; - min-width: 300px; - margin: 100px auto; - height: auto; -} - -.login .form-row { - padding: 4px 0; -} - -.login .form-row label { - display: block; - line-height: 2em; -} - -.login .form-row #id_username, .login .form-row #id_password { - padding: 8px; - width: 100%; - box-sizing: border-box; -} - -.login .submit-row { - padding: 1em 0 0 0; - margin: 0; - text-align: center; -} - -.login .password-reset-link { - text-align: center; -} diff --git a/equipment_tracker/static/admin/css/login.586129c60a93.css.gz b/equipment_tracker/static/admin/css/login.586129c60a93.css.gz deleted file mode 100644 index ca9d533055da1635cd52842a4569b1046aabcdb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 417 zcmV;S0bc$eiwFP!00002|8-K)O2aS|ecx9EM9^Wjc5WiwyCSFqe?ZdauDvczN|L%w z@!w6`q;p$sA&{GMPtG~H(=mBoJwCmXht=B)8Ba%}iBLI8@;xH%OIfzbwW=jg$S2cR zlyaswAc4~~zh1VO0x&OZLRf9pa`e+PTok}KXwP(vYAO}u9A%!6cv0<0d{^zd`bTXn zuJ<%k(t>m?nOi{*Q5UgiUpp){_yvw_63-SI%8smL+BGC3`lp?Ff=mgegU9Ze3X~h# z9$X)Fdttt_w=s*HjdqF7;0$G-#CfKv;`>9MsnYItXT&iXC6EVI47HO4y`%$}YR0iP z37Llw)hFn+P}_tQ$T`Tax@j8ofg-7s%gh16r~YZph$q#f;gyluotX2e;n8 zGkX~_-8Hk+qI|xtbR@vkX^D2oattMjn*VJ6nyrPMrA%NhhsJsmv{DTQY&(FSf4K1% L;-h8;z5@UNH15V| diff --git a/equipment_tracker/static/admin/css/login.css b/equipment_tracker/static/admin/css/login.css deleted file mode 100644 index 389772f..0000000 --- a/equipment_tracker/static/admin/css/login.css +++ /dev/null @@ -1,61 +0,0 @@ -/* LOGIN FORM */ - -.login { - background: var(--darkened-bg); - height: auto; -} - -.login #header { - height: auto; - padding: 15px 16px; - justify-content: center; -} - -.login #header h1 { - font-size: 1.125rem; - margin: 0; -} - -.login #header h1 a { - color: var(--header-link-color); -} - -.login #content { - padding: 20px 20px 0; -} - -.login #container { - background: var(--body-bg); - border: 1px solid var(--hairline-color); - border-radius: 4px; - overflow: hidden; - width: 28em; - min-width: 300px; - margin: 100px auto; - height: auto; -} - -.login .form-row { - padding: 4px 0; -} - -.login .form-row label { - display: block; - line-height: 2em; -} - -.login .form-row #id_username, .login .form-row #id_password { - padding: 8px; - width: 100%; - box-sizing: border-box; -} - -.login .submit-row { - padding: 1em 0 0 0; - margin: 0; - text-align: center; -} - -.login .password-reset-link { - text-align: center; -} diff --git a/equipment_tracker/static/admin/css/login.css.gz b/equipment_tracker/static/admin/css/login.css.gz deleted file mode 100644 index ca9d533055da1635cd52842a4569b1046aabcdb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 417 zcmV;S0bc$eiwFP!00002|8-K)O2aS|ecx9EM9^Wjc5WiwyCSFqe?ZdauDvczN|L%w z@!w6`q;p$sA&{GMPtG~H(=mBoJwCmXht=B)8Ba%}iBLI8@;xH%OIfzbwW=jg$S2cR zlyaswAc4~~zh1VO0x&OZLRf9pa`e+PTok}KXwP(vYAO}u9A%!6cv0<0d{^zd`bTXn zuJ<%k(t>m?nOi{*Q5UgiUpp){_yvw_63-SI%8smL+BGC3`lp?Ff=mgegU9Ze3X~h# z9$X)Fdttt_w=s*HjdqF7;0$G-#CfKv;`>9MsnYItXT&iXC6EVI47HO4y`%$}YR0iP z37Llw)hFn+P}_tQ$T`Tax@j8ofg-7s%gh16r~YZph$q#f;gyluotX2e;n8 zGkX~_-8Hk+qI|xtbR@vkX^D2oattMjn*VJ6nyrPMrA%NhhsJsmv{DTQY&(FSf4K1% L;-h8;z5@UNH15V| diff --git a/equipment_tracker/static/admin/css/nav_sidebar.269a1bd44627.css b/equipment_tracker/static/admin/css/nav_sidebar.269a1bd44627.css deleted file mode 100644 index f76e6ce..0000000 --- a/equipment_tracker/static/admin/css/nav_sidebar.269a1bd44627.css +++ /dev/null @@ -1,144 +0,0 @@ -.sticky { - position: sticky; - top: 0; - max-height: 100vh; -} - -.toggle-nav-sidebar { - z-index: 20; - left: 0; - display: flex; - align-items: center; - justify-content: center; - flex: 0 0 23px; - width: 23px; - border: 0; - border-right: 1px solid var(--hairline-color); - background-color: var(--body-bg); - cursor: pointer; - font-size: 1.25rem; - color: var(--link-fg); - padding: 0; -} - -[dir="rtl"] .toggle-nav-sidebar { - border-left: 1px solid var(--hairline-color); - border-right: 0; -} - -.toggle-nav-sidebar:hover, -.toggle-nav-sidebar:focus { - background-color: var(--darkened-bg); -} - -#nav-sidebar { - z-index: 15; - flex: 0 0 275px; - left: -276px; - margin-left: -276px; - border-top: 1px solid transparent; - border-right: 1px solid var(--hairline-color); - background-color: var(--body-bg); - overflow: auto; -} - -[dir="rtl"] #nav-sidebar { - border-left: 1px solid var(--hairline-color); - border-right: 0; - left: 0; - margin-left: 0; - right: -276px; - margin-right: -276px; -} - -.toggle-nav-sidebar::before { - content: '\00BB'; -} - -.main.shifted .toggle-nav-sidebar::before { - content: '\00AB'; -} - -.main > #nav-sidebar { - visibility: hidden; -} - -.main.shifted > #nav-sidebar { - margin-left: 0; - visibility: visible; -} - -[dir="rtl"] .main.shifted > #nav-sidebar { - margin-right: 0; -} - -#nav-sidebar .module th { - width: 100%; - overflow-wrap: anywhere; -} - -#nav-sidebar .module th, -#nav-sidebar .module caption { - padding-left: 16px; -} - -#nav-sidebar .module td { - white-space: nowrap; -} - -[dir="rtl"] #nav-sidebar .module th, -[dir="rtl"] #nav-sidebar .module caption { - padding-left: 8px; - padding-right: 16px; -} - -#nav-sidebar .current-app .section:link, -#nav-sidebar .current-app .section:visited { - color: var(--header-color); - font-weight: bold; -} - -#nav-sidebar .current-model { - background: var(--selected-row); -} - -.main > #nav-sidebar + .content { - max-width: calc(100% - 23px); -} - -.main.shifted > #nav-sidebar + .content { - max-width: calc(100% - 299px); -} - -@media (max-width: 767px) { - #nav-sidebar, #toggle-nav-sidebar { - display: none; - } - - .main > #nav-sidebar + .content, - .main.shifted > #nav-sidebar + .content { - max-width: 100%; - } -} - -#nav-filter { - width: 100%; - box-sizing: border-box; - padding: 2px 5px; - margin: 5px 0; - border: 1px solid var(--border-color); - background-color: var(--darkened-bg); - color: var(--body-fg); -} - -#nav-filter:focus { - border-color: var(--body-quiet-color); -} - -#nav-filter.no-results { - background: var(--message-error-bg); -} - -#nav-sidebar table { - width: 100%; -} diff --git a/equipment_tracker/static/admin/css/nav_sidebar.269a1bd44627.css.gz b/equipment_tracker/static/admin/css/nav_sidebar.269a1bd44627.css.gz deleted file mode 100644 index 7398c4df9feb1b5f31ae72b632bf2debd3f25dd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 779 zcmV+m1N8hKiwFP!00002|Fu@zQrj>Pea}~D%5;Ef?3Jwu79`TV1#bFel9%HPH>ln9YLfG2Xl1Z{7a2brq~m! zrQl@C%oU{>6GjRJ=uc{M?VqrClNwzr-iSkQ9BF=_QR=PY(%4E@Xwiuf!^YY?0=f#8 zD+9SV?&6@s4NY2{f^jZXS_h0p{>g>;`oTE);WwEsxX-F7^La`2>adt-qZs8ywCO5iV-?oyRnN%n`RQTNL34SStGfdfn z862Q@9)+r8iPXE0u+r&48!z6ae}gsamB-7x`A8LCX(py2j3ChleALIKy!^FTJUm=B z&vGVIU^9_8;N(9+esn>|x3N-fg%y#I!XbfVf^$$KZbx5^6{L$+f0i&@yR)Ht+tf1) za?MK##AW`4=P6{C=#u zGho$zbyuz?^PN9~k(T^KJeVoS0XMeb79>W1tZ4M^dV1hLAzrf`$1&SeKR7Xy@l`cF zgx1II`t2<^8}9C|#rvKE7mQqWEZ4Vd)Ov(2{+wJ)-lyK#S6V?+QS?y#c_aDxi_zJs zy-M$8&7O}vON7KbJ++RJ-dBgazQmquQS|CWFOjKNeIgAjLI2CfkkLKhIhUn>KnG)5 zAD*OpTbs1{$GPLK_wa8iz#YTrBLqrQ1GbdTPR?--*0K~R7^BVjiFXVsb*#wGvwzZY Jd|`$P005G@hg1Ln diff --git a/equipment_tracker/static/admin/css/nav_sidebar.css b/equipment_tracker/static/admin/css/nav_sidebar.css deleted file mode 100644 index f76e6ce..0000000 --- a/equipment_tracker/static/admin/css/nav_sidebar.css +++ /dev/null @@ -1,144 +0,0 @@ -.sticky { - position: sticky; - top: 0; - max-height: 100vh; -} - -.toggle-nav-sidebar { - z-index: 20; - left: 0; - display: flex; - align-items: center; - justify-content: center; - flex: 0 0 23px; - width: 23px; - border: 0; - border-right: 1px solid var(--hairline-color); - background-color: var(--body-bg); - cursor: pointer; - font-size: 1.25rem; - color: var(--link-fg); - padding: 0; -} - -[dir="rtl"] .toggle-nav-sidebar { - border-left: 1px solid var(--hairline-color); - border-right: 0; -} - -.toggle-nav-sidebar:hover, -.toggle-nav-sidebar:focus { - background-color: var(--darkened-bg); -} - -#nav-sidebar { - z-index: 15; - flex: 0 0 275px; - left: -276px; - margin-left: -276px; - border-top: 1px solid transparent; - border-right: 1px solid var(--hairline-color); - background-color: var(--body-bg); - overflow: auto; -} - -[dir="rtl"] #nav-sidebar { - border-left: 1px solid var(--hairline-color); - border-right: 0; - left: 0; - margin-left: 0; - right: -276px; - margin-right: -276px; -} - -.toggle-nav-sidebar::before { - content: '\00BB'; -} - -.main.shifted .toggle-nav-sidebar::before { - content: '\00AB'; -} - -.main > #nav-sidebar { - visibility: hidden; -} - -.main.shifted > #nav-sidebar { - margin-left: 0; - visibility: visible; -} - -[dir="rtl"] .main.shifted > #nav-sidebar { - margin-right: 0; -} - -#nav-sidebar .module th { - width: 100%; - overflow-wrap: anywhere; -} - -#nav-sidebar .module th, -#nav-sidebar .module caption { - padding-left: 16px; -} - -#nav-sidebar .module td { - white-space: nowrap; -} - -[dir="rtl"] #nav-sidebar .module th, -[dir="rtl"] #nav-sidebar .module caption { - padding-left: 8px; - padding-right: 16px; -} - -#nav-sidebar .current-app .section:link, -#nav-sidebar .current-app .section:visited { - color: var(--header-color); - font-weight: bold; -} - -#nav-sidebar .current-model { - background: var(--selected-row); -} - -.main > #nav-sidebar + .content { - max-width: calc(100% - 23px); -} - -.main.shifted > #nav-sidebar + .content { - max-width: calc(100% - 299px); -} - -@media (max-width: 767px) { - #nav-sidebar, #toggle-nav-sidebar { - display: none; - } - - .main > #nav-sidebar + .content, - .main.shifted > #nav-sidebar + .content { - max-width: 100%; - } -} - -#nav-filter { - width: 100%; - box-sizing: border-box; - padding: 2px 5px; - margin: 5px 0; - border: 1px solid var(--border-color); - background-color: var(--darkened-bg); - color: var(--body-fg); -} - -#nav-filter:focus { - border-color: var(--body-quiet-color); -} - -#nav-filter.no-results { - background: var(--message-error-bg); -} - -#nav-sidebar table { - width: 100%; -} diff --git a/equipment_tracker/static/admin/css/nav_sidebar.css.gz b/equipment_tracker/static/admin/css/nav_sidebar.css.gz deleted file mode 100644 index 7398c4df9feb1b5f31ae72b632bf2debd3f25dd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 779 zcmV+m1N8hKiwFP!00002|Fu@zQrj>Pea}~D%5;Ef?3Jwu79`TV1#bFel9%HPH>ln9YLfG2Xl1Z{7a2brq~m! zrQl@C%oU{>6GjRJ=uc{M?VqrClNwzr-iSkQ9BF=_QR=PY(%4E@Xwiuf!^YY?0=f#8 zD+9SV?&6@s4NY2{f^jZXS_h0p{>g>;`oTE);WwEsxX-F7^La`2>adt-qZs8ywCO5iV-?oyRnN%n`RQTNL34SStGfdfn z862Q@9)+r8iPXE0u+r&48!z6ae}gsamB-7x`A8LCX(py2j3ChleALIKy!^FTJUm=B z&vGVIU^9_8;N(9+esn>|x3N-fg%y#I!XbfVf^$$KZbx5^6{L$+f0i&@yR)Ht+tf1) za?MK##AW`4=P6{C=#u zGho$zbyuz?^PN9~k(T^KJeVoS0XMeb79>W1tZ4M^dV1hLAzrf`$1&SeKR7Xy@l`cF zgx1II`t2<^8}9C|#rvKE7mQqWEZ4Vd)Ov(2{+wJ)-lyK#S6V?+QS?y#c_aDxi_zJs zy-M$8&7O}vON7KbJ++RJ-dBgazQmquQS|CWFOjKNeIgAjLI2CfkkLKhIhUn>KnG)5 zAD*OpTbs1{$GPLK_wa8iz#YTrBLqrQ1GbdTPR?--*0K~R7^BVjiFXVsb*#wGvwzZY Jd|`$P005G@hg1Ln diff --git a/equipment_tracker/static/admin/css/responsive.107cd2690311.css b/equipment_tracker/static/admin/css/responsive.107cd2690311.css deleted file mode 100644 index 9ce4f67..0000000 --- a/equipment_tracker/static/admin/css/responsive.107cd2690311.css +++ /dev/null @@ -1,998 +0,0 @@ -/* Tablets */ - -input[type="submit"], button { - -webkit-appearance: none; - appearance: none; -} - -@media (max-width: 1024px) { - /* Basic */ - - html { - -webkit-text-size-adjust: 100%; - } - - td, th { - padding: 10px; - font-size: 0.875rem; - } - - .small { - font-size: 0.75rem; - } - - /* Layout */ - - #container { - min-width: 0; - } - - #content { - padding: 15px 20px 20px; - } - - div.breadcrumbs { - padding: 10px 30px; - } - - /* Header */ - - #header { - flex-direction: column; - padding: 15px 30px; - justify-content: flex-start; - } - - #branding h1 { - margin: 0 0 8px; - line-height: 1.2; - } - - #user-tools { - margin: 0; - font-weight: 400; - line-height: 1.85; - text-align: left; - } - - #user-tools a { - display: inline-block; - line-height: 1.4; - } - - /* Dashboard */ - - .dashboard #content { - width: auto; - } - - #content-related { - margin-right: -290px; - } - - .colSM #content-related { - margin-left: -290px; - } - - .colMS { - margin-right: 290px; - } - - .colSM { - margin-left: 290px; - } - - .dashboard .module table td a { - padding-right: 0; - } - - td .changelink, td .addlink { - font-size: 0.8125rem; - } - - /* Changelist */ - - #toolbar { - border: none; - padding: 15px; - } - - #changelist-search > div { - display: flex; - flex-wrap: nowrap; - max-width: 480px; - } - - #changelist-search label { - line-height: 1.375rem; - } - - #toolbar form #searchbar { - flex: 1 0 auto; - width: 0; - height: 1.375rem; - margin: 0 10px 0 6px; - } - - #toolbar form input[type=submit] { - flex: 0 1 auto; - } - - #changelist-search .quiet { - width: 0; - flex: 1 0 auto; - margin: 5px 0 0 25px; - } - - #changelist .actions { - display: flex; - flex-wrap: wrap; - padding: 15px 0; - } - - #changelist .actions label { - display: flex; - } - - #changelist .actions select { - background: var(--body-bg); - } - - #changelist .actions .button { - min-width: 48px; - margin: 0 10px; - } - - #changelist .actions span.all, - #changelist .actions span.clear, - #changelist .actions span.question, - #changelist .actions span.action-counter { - font-size: 0.6875rem; - margin: 0 10px 0 0; - } - - #changelist-filter { - flex-basis: 200px; - } - - .change-list .filtered .results, - .change-list .filtered .paginator, - .filtered #toolbar, - .filtered .actions, - - #changelist .paginator { - border-top-color: var(--hairline-color); /* XXX Is this used at all? */ - } - - #changelist .results + .paginator { - border-top: none; - } - - /* Forms */ - - label { - font-size: 0.875rem; - } - - .form-row input[type=text], - .form-row input[type=password], - .form-row input[type=email], - .form-row input[type=url], - .form-row input[type=tel], - .form-row input[type=number], - .form-row textarea, - .form-row select, - .form-row .vTextField { - box-sizing: border-box; - margin: 0; - padding: 6px 8px; - min-height: 2.25rem; - font-size: 0.875rem; - } - - .form-row select { - height: 2.25rem; - } - - .form-row select[multiple] { - height: auto; - min-height: 0; - } - - fieldset .fieldBox + .fieldBox { - margin-top: 10px; - padding-top: 10px; - border-top: 1px solid var(--hairline-color); - } - - textarea { - max-width: 100%; - max-height: 120px; - } - - .aligned label { - padding-top: 6px; - } - - .aligned .related-lookup, - .aligned .datetimeshortcuts, - .aligned .related-lookup + strong { - align-self: center; - margin-left: 15px; - } - - form .aligned div.radiolist { - margin-left: 2px; - } - - .submit-row { - padding: 8px; - } - - .submit-row a.deletelink { - padding: 10px 7px; - } - - .button, input[type=submit], input[type=button], .submit-row input, a.button { - padding: 7px; - } - - /* Related widget */ - - .related-widget-wrapper { - float: none; - } - - .related-widget-wrapper-link + .selector { - max-width: calc(100% - 30px); - margin-right: 15px; - } - - select + .related-widget-wrapper-link, - .related-widget-wrapper-link + .related-widget-wrapper-link { - margin-left: 10px; - } - - /* Selector */ - - .selector { - display: flex; - width: 100%; - } - - .selector .selector-filter { - display: flex; - align-items: center; - } - - .selector .selector-filter label { - margin: 0 8px 0 0; - } - - .selector .selector-filter input { - width: auto; - min-height: 0; - flex: 1 1; - } - - .selector-available, .selector-chosen { - width: auto; - flex: 1 1; - display: flex; - flex-direction: column; - } - - .selector select { - width: 100%; - flex: 1 0 auto; - margin-bottom: 5px; - } - - .selector ul.selector-chooser { - width: 26px; - height: 52px; - padding: 2px 0; - margin: auto 15px; - border-radius: 20px; - transform: translateY(-10px); - } - - .selector-add, .selector-remove { - width: 20px; - height: 20px; - background-size: 20px auto; - } - - .selector-add { - background-position: 0 -120px; - } - - .selector-remove { - background-position: 0 -80px; - } - - a.selector-chooseall, a.selector-clearall { - align-self: center; - } - - .stacked { - flex-direction: column; - max-width: 480px; - } - - .stacked > * { - flex: 0 1 auto; - } - - .stacked select { - margin-bottom: 0; - } - - .stacked .selector-available, .stacked .selector-chosen { - width: auto; - } - - .stacked ul.selector-chooser { - width: 52px; - height: 26px; - padding: 0 2px; - margin: 15px auto; - transform: none; - } - - .stacked .selector-chooser li { - padding: 3px; - } - - .stacked .selector-add, .stacked .selector-remove { - background-size: 20px auto; - } - - .stacked .selector-add { - background-position: 0 -40px; - } - - .stacked .active.selector-add { - background-position: 0 -40px; - } - - .active.selector-add:focus, .active.selector-add:hover { - background-position: 0 -140px; - } - - .stacked .active.selector-add:focus, .stacked .active.selector-add:hover { - background-position: 0 -60px; - } - - .stacked .selector-remove { - background-position: 0 0; - } - - .stacked .active.selector-remove { - background-position: 0 0; - } - - .active.selector-remove:focus, .active.selector-remove:hover { - background-position: 0 -100px; - } - - .stacked .active.selector-remove:focus, .stacked .active.selector-remove:hover { - background-position: 0 -20px; - } - - .help-tooltip, .selector .help-icon { - display: none; - } - - .datetime input { - width: 50%; - max-width: 120px; - } - - .datetime span { - font-size: 0.8125rem; - } - - .datetime .timezonewarning { - display: block; - font-size: 0.6875rem; - color: var(--body-quiet-color); - } - - .datetimeshortcuts { - color: var(--border-color); /* XXX Redundant, .datetime span also sets #ccc */ - } - - .form-row .datetime input.vDateField, .form-row .datetime input.vTimeField { - width: 75%; - } - - .inline-group { - overflow: auto; - } - - /* Messages */ - - ul.messagelist li { - padding-left: 55px; - background-position: 30px 12px; - } - - ul.messagelist li.error { - background-position: 30px 12px; - } - - ul.messagelist li.warning { - background-position: 30px 14px; - } - - /* Login */ - - .login #header { - padding: 15px 20px; - } - - .login #branding h1 { - margin: 0; - } - - /* GIS */ - - div.olMap { - max-width: calc(100vw - 30px); - max-height: 300px; - } - - .olMap + .clear_features { - display: block; - margin-top: 10px; - } - - /* Docs */ - - .module table.xfull { - width: 100%; - } - - pre.literal-block { - overflow: auto; - } -} - -/* Mobile */ - -@media (max-width: 767px) { - /* Layout */ - - #header, #content, #footer { - padding: 15px; - } - - #footer:empty { - padding: 0; - } - - div.breadcrumbs { - padding: 10px 15px; - } - - /* Dashboard */ - - .colMS, .colSM { - margin: 0; - } - - #content-related, .colSM #content-related { - width: 100%; - margin: 0; - } - - #content-related .module { - margin-bottom: 0; - } - - #content-related .module h2 { - padding: 10px 15px; - font-size: 1rem; - } - - /* Changelist */ - - #changelist { - align-items: stretch; - flex-direction: column; - } - - #toolbar { - padding: 10px; - } - - #changelist-filter { - margin-left: 0; - } - - #changelist .actions label { - flex: 1 1; - } - - #changelist .actions select { - flex: 1 0; - width: 100%; - } - - #changelist .actions span { - flex: 1 0 100%; - } - - #changelist-filter { - position: static; - width: auto; - margin-top: 30px; - } - - .object-tools { - float: none; - margin: 0 0 15px; - padding: 0; - overflow: hidden; - } - - .object-tools li { - height: auto; - margin-left: 0; - } - - .object-tools li + li { - margin-left: 15px; - } - - /* Forms */ - - .form-row { - padding: 15px 0; - } - - .aligned .form-row, - .aligned .form-row > div { - max-width: 100vw; - } - - .aligned .form-row > div { - width: calc(100vw - 30px); - } - - .flex-container { - flex-flow: column; - } - - textarea { - max-width: none; - } - - .vURLField { - width: auto; - } - - fieldset .fieldBox + .fieldBox { - margin-top: 15px; - padding-top: 15px; - } - - fieldset.collapsed .form-row { - display: none; - } - - .aligned label { - width: 100%; - padding: 0 0 10px; - } - - .aligned label:after { - max-height: 0; - } - - .aligned .form-row input, - .aligned .form-row select, - .aligned .form-row textarea { - flex: 1 1 auto; - max-width: 100%; - } - - .aligned .checkbox-row { - align-items: center; - } - - .aligned .checkbox-row input { - flex: 0 1 auto; - margin: 0; - } - - .aligned .vCheckboxLabel { - flex: 1 0; - padding: 1px 0 0 5px; - } - - .aligned label + p, - .aligned label + div.help, - .aligned label + div.readonly { - padding: 0; - margin-left: 0; - } - - .aligned p.file-upload { - font-size: 0.8125rem; - } - - span.clearable-file-input { - margin-left: 15px; - } - - span.clearable-file-input label { - font-size: 0.8125rem; - padding-bottom: 0; - } - - .aligned .timezonewarning { - flex: 1 0 100%; - margin-top: 5px; - } - - form .aligned .form-row div.help { - width: 100%; - margin: 5px 0 0; - padding: 0; - } - - form .aligned ul, - form .aligned ul.errorlist { - margin-left: 0; - padding-left: 0; - } - - form .aligned div.radiolist { - margin-top: 5px; - margin-right: 15px; - margin-bottom: -3px; - } - - form .aligned div.radiolist:not(.inline) div + div { - margin-top: 5px; - } - - /* Related widget */ - - .related-widget-wrapper { - width: 100%; - display: flex; - align-items: flex-start; - } - - .related-widget-wrapper .selector { - order: 1; - } - - .related-widget-wrapper > a { - order: 2; - } - - .related-widget-wrapper .radiolist ~ a { - align-self: flex-end; - } - - .related-widget-wrapper > select ~ a { - align-self: center; - } - - select + .related-widget-wrapper-link, - .related-widget-wrapper-link + .related-widget-wrapper-link { - margin-left: 15px; - } - - /* Selector */ - - .selector { - flex-direction: column; - } - - .selector > * { - float: none; - } - - .selector-available, .selector-chosen { - margin-bottom: 0; - flex: 1 1 auto; - } - - .selector select { - max-height: 96px; - } - - .selector ul.selector-chooser { - display: block; - float: none; - width: 52px; - height: 26px; - padding: 0 2px; - margin: 15px auto 20px; - transform: none; - } - - .selector ul.selector-chooser li { - float: left; - } - - .selector-remove { - background-position: 0 0; - } - - .active.selector-remove:focus, .active.selector-remove:hover { - background-position: 0 -20px; - } - - .selector-add { - background-position: 0 -40px; - } - - .active.selector-add:focus, .active.selector-add:hover { - background-position: 0 -60px; - } - - /* Inlines */ - - .inline-group[data-inline-type="stacked"] .inline-related { - border: 1px solid var(--hairline-color); - border-radius: 4px; - margin-top: 15px; - overflow: auto; - } - - .inline-group[data-inline-type="stacked"] .inline-related > * { - box-sizing: border-box; - } - - .inline-group[data-inline-type="stacked"] .inline-related .module { - padding: 0 10px; - } - - .inline-group[data-inline-type="stacked"] .inline-related .module .form-row { - border-top: 1px solid var(--hairline-color); - border-bottom: none; - } - - .inline-group[data-inline-type="stacked"] .inline-related .module .form-row:first-child { - border-top: none; - } - - .inline-group[data-inline-type="stacked"] .inline-related h3 { - padding: 10px; - border-top-width: 0; - border-bottom-width: 2px; - display: flex; - flex-wrap: wrap; - align-items: center; - } - - .inline-group[data-inline-type="stacked"] .inline-related h3 .inline_label { - margin-right: auto; - } - - .inline-group[data-inline-type="stacked"] .inline-related h3 span.delete { - float: none; - flex: 1 1 100%; - margin-top: 5px; - } - - .inline-group[data-inline-type="stacked"] .aligned .form-row > div:not([class]) { - width: 100%; - } - - .inline-group[data-inline-type="stacked"] .aligned label { - width: 100%; - } - - .inline-group[data-inline-type="stacked"] div.add-row { - margin-top: 15px; - border: 1px solid var(--hairline-color); - border-radius: 4px; - } - - .inline-group div.add-row, - .inline-group .tabular tr.add-row td { - padding: 0; - } - - .inline-group div.add-row a, - .inline-group .tabular tr.add-row td a { - display: block; - padding: 8px 10px 8px 26px; - background-position: 8px 9px; - } - - /* Submit row */ - - .submit-row { - padding: 10px; - margin: 0 0 15px; - flex-direction: column; - gap: 8px; - } - - .submit-row input, .submit-row input.default, .submit-row a { - text-align: center; - } - - .submit-row a.closelink { - padding: 10px 0; - text-align: center; - } - - .submit-row a.deletelink { - margin: 0; - } - - /* Messages */ - - ul.messagelist li { - padding-left: 40px; - background-position: 15px 12px; - } - - ul.messagelist li.error { - background-position: 15px 12px; - } - - ul.messagelist li.warning { - background-position: 15px 14px; - } - - /* Paginator */ - - .paginator .this-page, .paginator a:link, .paginator a:visited { - padding: 4px 10px; - } - - /* Login */ - - body.login { - padding: 0 15px; - } - - .login #container { - width: auto; - max-width: 480px; - margin: 50px auto; - } - - .login #header, - .login #content { - padding: 15px; - } - - .login #content-main { - float: none; - } - - .login .form-row { - padding: 0; - } - - .login .form-row + .form-row { - margin-top: 15px; - } - - .login .form-row label { - margin: 0 0 5px; - line-height: 1.2; - } - - .login .submit-row { - padding: 15px 0 0; - } - - .login br { - display: none; - } - - .login .submit-row input { - margin: 0; - text-transform: uppercase; - } - - .errornote { - margin: 0 0 20px; - padding: 8px 12px; - font-size: 0.8125rem; - } - - /* Calendar and clock */ - - .calendarbox, .clockbox { - position: fixed !important; - top: 50% !important; - left: 50% !important; - transform: translate(-50%, -50%); - margin: 0; - border: none; - overflow: visible; - } - - .calendarbox:before, .clockbox:before { - content: ''; - position: fixed; - top: 50%; - left: 50%; - width: 100vw; - height: 100vh; - background: rgba(0, 0, 0, 0.75); - transform: translate(-50%, -50%); - } - - .calendarbox > *, .clockbox > * { - position: relative; - z-index: 1; - } - - .calendarbox > div:first-child { - z-index: 2; - } - - .calendarbox .calendar, .clockbox h2 { - border-radius: 4px 4px 0 0; - overflow: hidden; - } - - .calendarbox .calendar-cancel, .clockbox .calendar-cancel { - border-radius: 0 0 4px 4px; - overflow: hidden; - } - - .calendar-shortcuts { - padding: 10px 0; - font-size: 0.75rem; - line-height: 0.75rem; - } - - .calendar-shortcuts a { - margin: 0 4px; - } - - .timelist a { - background: var(--body-bg); - padding: 4px; - } - - .calendar-cancel { - padding: 8px 10px; - } - - .clockbox h2 { - padding: 8px 15px; - } - - .calendar caption { - padding: 10px; - } - - .calendarbox .calendarnav-previous, .calendarbox .calendarnav-next { - z-index: 1; - top: 10px; - } - - /* History */ - - table#change-history tbody th, table#change-history tbody td { - font-size: 0.8125rem; - word-break: break-word; - } - - table#change-history tbody th { - width: auto; - } - - /* Docs */ - - table.model tbody th, table.model tbody td { - font-size: 0.8125rem; - word-break: break-word; - } -} diff --git a/equipment_tracker/static/admin/css/responsive.107cd2690311.css.gz b/equipment_tracker/static/admin/css/responsive.107cd2690311.css.gz deleted file mode 100644 index 7e8070e420218983e484c007f4bc83fd9b11d207..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3432 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 div { - display: flex; - flex-wrap: nowrap; - max-width: 480px; - } - - #changelist-search label { - line-height: 1.375rem; - } - - #toolbar form #searchbar { - flex: 1 0 auto; - width: 0; - height: 1.375rem; - margin: 0 10px 0 6px; - } - - #toolbar form input[type=submit] { - flex: 0 1 auto; - } - - #changelist-search .quiet { - width: 0; - flex: 1 0 auto; - margin: 5px 0 0 25px; - } - - #changelist .actions { - display: flex; - flex-wrap: wrap; - padding: 15px 0; - } - - #changelist .actions label { - display: flex; - } - - #changelist .actions select { - background: var(--body-bg); - } - - #changelist .actions .button { - min-width: 48px; - margin: 0 10px; - } - - #changelist .actions span.all, - #changelist .actions span.clear, - #changelist .actions span.question, - #changelist .actions span.action-counter { - font-size: 0.6875rem; - margin: 0 10px 0 0; - } - - #changelist-filter { - flex-basis: 200px; - } - - .change-list .filtered .results, - .change-list .filtered .paginator, - .filtered #toolbar, - .filtered .actions, - - #changelist .paginator { - border-top-color: var(--hairline-color); /* XXX Is this used at all? */ - } - - #changelist .results + .paginator { - border-top: none; - } - - /* Forms */ - - label { - font-size: 0.875rem; - } - - .form-row input[type=text], - .form-row input[type=password], - .form-row input[type=email], - .form-row input[type=url], - .form-row input[type=tel], - .form-row input[type=number], - .form-row textarea, - .form-row select, - .form-row .vTextField { - box-sizing: border-box; - margin: 0; - padding: 6px 8px; - min-height: 2.25rem; - font-size: 0.875rem; - } - - .form-row select { - height: 2.25rem; - } - - .form-row select[multiple] { - height: auto; - min-height: 0; - } - - fieldset .fieldBox + .fieldBox { - margin-top: 10px; - padding-top: 10px; - border-top: 1px solid var(--hairline-color); - } - - textarea { - max-width: 100%; - max-height: 120px; - } - - .aligned label { - padding-top: 6px; - } - - .aligned .related-lookup, - .aligned .datetimeshortcuts, - .aligned .related-lookup + strong { - align-self: center; - margin-left: 15px; - } - - form .aligned div.radiolist { - margin-left: 2px; - } - - .submit-row { - padding: 8px; - } - - .submit-row a.deletelink { - padding: 10px 7px; - } - - .button, input[type=submit], input[type=button], .submit-row input, a.button { - padding: 7px; - } - - /* Related widget */ - - .related-widget-wrapper { - float: none; - } - - .related-widget-wrapper-link + .selector { - max-width: calc(100% - 30px); - margin-right: 15px; - } - - select + .related-widget-wrapper-link, - .related-widget-wrapper-link + .related-widget-wrapper-link { - margin-left: 10px; - } - - /* Selector */ - - .selector { - display: flex; - width: 100%; - } - - .selector .selector-filter { - display: flex; - align-items: center; - } - - .selector .selector-filter label { - margin: 0 8px 0 0; - } - - .selector .selector-filter input { - width: auto; - min-height: 0; - flex: 1 1; - } - - .selector-available, .selector-chosen { - width: auto; - flex: 1 1; - display: flex; - flex-direction: column; - } - - .selector select { - width: 100%; - flex: 1 0 auto; - margin-bottom: 5px; - } - - .selector ul.selector-chooser { - width: 26px; - height: 52px; - padding: 2px 0; - margin: auto 15px; - border-radius: 20px; - transform: translateY(-10px); - } - - .selector-add, .selector-remove { - width: 20px; - height: 20px; - background-size: 20px auto; - } - - .selector-add { - background-position: 0 -120px; - } - - .selector-remove { - background-position: 0 -80px; - } - - a.selector-chooseall, a.selector-clearall { - align-self: center; - } - - .stacked { - flex-direction: column; - max-width: 480px; - } - - .stacked > * { - flex: 0 1 auto; - } - - .stacked select { - margin-bottom: 0; - } - - .stacked .selector-available, .stacked .selector-chosen { - width: auto; - } - - .stacked ul.selector-chooser { - width: 52px; - height: 26px; - padding: 0 2px; - margin: 15px auto; - transform: none; - } - - .stacked .selector-chooser li { - padding: 3px; - } - - .stacked .selector-add, .stacked .selector-remove { - background-size: 20px auto; - } - - .stacked .selector-add { - background-position: 0 -40px; - } - - .stacked .active.selector-add { - background-position: 0 -40px; - } - - .active.selector-add:focus, .active.selector-add:hover { - background-position: 0 -140px; - } - - .stacked .active.selector-add:focus, .stacked .active.selector-add:hover { - background-position: 0 -60px; - } - - .stacked .selector-remove { - background-position: 0 0; - } - - .stacked .active.selector-remove { - background-position: 0 0; - } - - .active.selector-remove:focus, .active.selector-remove:hover { - background-position: 0 -100px; - } - - .stacked .active.selector-remove:focus, .stacked .active.selector-remove:hover { - background-position: 0 -20px; - } - - .help-tooltip, .selector .help-icon { - display: none; - } - - .datetime input { - width: 50%; - max-width: 120px; - } - - .datetime span { - font-size: 0.8125rem; - } - - .datetime .timezonewarning { - display: block; - font-size: 0.6875rem; - color: var(--body-quiet-color); - } - - .datetimeshortcuts { - color: var(--border-color); /* XXX Redundant, .datetime span also sets #ccc */ - } - - .form-row .datetime input.vDateField, .form-row .datetime input.vTimeField { - width: 75%; - } - - .inline-group { - overflow: auto; - } - - /* Messages */ - - ul.messagelist li { - padding-left: 55px; - background-position: 30px 12px; - } - - ul.messagelist li.error { - background-position: 30px 12px; - } - - ul.messagelist li.warning { - background-position: 30px 14px; - } - - /* Login */ - - .login #header { - padding: 15px 20px; - } - - .login #branding h1 { - margin: 0; - } - - /* GIS */ - - div.olMap { - max-width: calc(100vw - 30px); - max-height: 300px; - } - - .olMap + .clear_features { - display: block; - margin-top: 10px; - } - - /* Docs */ - - .module table.xfull { - width: 100%; - } - - pre.literal-block { - overflow: auto; - } -} - -/* Mobile */ - -@media (max-width: 767px) { - /* Layout */ - - #header, #content, #footer { - padding: 15px; - } - - #footer:empty { - padding: 0; - } - - div.breadcrumbs { - padding: 10px 15px; - } - - /* Dashboard */ - - .colMS, .colSM { - margin: 0; - } - - #content-related, .colSM #content-related { - width: 100%; - margin: 0; - } - - #content-related .module { - margin-bottom: 0; - } - - #content-related .module h2 { - padding: 10px 15px; - font-size: 1rem; - } - - /* Changelist */ - - #changelist { - align-items: stretch; - flex-direction: column; - } - - #toolbar { - padding: 10px; - } - - #changelist-filter { - margin-left: 0; - } - - #changelist .actions label { - flex: 1 1; - } - - #changelist .actions select { - flex: 1 0; - width: 100%; - } - - #changelist .actions span { - flex: 1 0 100%; - } - - #changelist-filter { - position: static; - width: auto; - margin-top: 30px; - } - - .object-tools { - float: none; - margin: 0 0 15px; - padding: 0; - overflow: hidden; - } - - .object-tools li { - height: auto; - margin-left: 0; - } - - .object-tools li + li { - margin-left: 15px; - } - - /* Forms */ - - .form-row { - padding: 15px 0; - } - - .aligned .form-row, - .aligned .form-row > div { - max-width: 100vw; - } - - .aligned .form-row > div { - width: calc(100vw - 30px); - } - - .flex-container { - flex-flow: column; - } - - textarea { - max-width: none; - } - - .vURLField { - width: auto; - } - - fieldset .fieldBox + .fieldBox { - margin-top: 15px; - padding-top: 15px; - } - - fieldset.collapsed .form-row { - display: none; - } - - .aligned label { - width: 100%; - padding: 0 0 10px; - } - - .aligned label:after { - max-height: 0; - } - - .aligned .form-row input, - .aligned .form-row select, - .aligned .form-row textarea { - flex: 1 1 auto; - max-width: 100%; - } - - .aligned .checkbox-row { - align-items: center; - } - - .aligned .checkbox-row input { - flex: 0 1 auto; - margin: 0; - } - - .aligned .vCheckboxLabel { - flex: 1 0; - padding: 1px 0 0 5px; - } - - .aligned label + p, - .aligned label + div.help, - .aligned label + div.readonly { - padding: 0; - margin-left: 0; - } - - .aligned p.file-upload { - font-size: 0.8125rem; - } - - span.clearable-file-input { - margin-left: 15px; - } - - span.clearable-file-input label { - font-size: 0.8125rem; - padding-bottom: 0; - } - - .aligned .timezonewarning { - flex: 1 0 100%; - margin-top: 5px; - } - - form .aligned .form-row div.help { - width: 100%; - margin: 5px 0 0; - padding: 0; - } - - form .aligned ul, - form .aligned ul.errorlist { - margin-left: 0; - padding-left: 0; - } - - form .aligned div.radiolist { - margin-top: 5px; - margin-right: 15px; - margin-bottom: -3px; - } - - form .aligned div.radiolist:not(.inline) div + div { - margin-top: 5px; - } - - /* Related widget */ - - .related-widget-wrapper { - width: 100%; - display: flex; - align-items: flex-start; - } - - .related-widget-wrapper .selector { - order: 1; - } - - .related-widget-wrapper > a { - order: 2; - } - - .related-widget-wrapper .radiolist ~ a { - align-self: flex-end; - } - - .related-widget-wrapper > select ~ a { - align-self: center; - } - - select + .related-widget-wrapper-link, - .related-widget-wrapper-link + .related-widget-wrapper-link { - margin-left: 15px; - } - - /* Selector */ - - .selector { - flex-direction: column; - } - - .selector > * { - float: none; - } - - .selector-available, .selector-chosen { - margin-bottom: 0; - flex: 1 1 auto; - } - - .selector select { - max-height: 96px; - } - - .selector ul.selector-chooser { - display: block; - float: none; - width: 52px; - height: 26px; - padding: 0 2px; - margin: 15px auto 20px; - transform: none; - } - - .selector ul.selector-chooser li { - float: left; - } - - .selector-remove { - background-position: 0 0; - } - - .active.selector-remove:focus, .active.selector-remove:hover { - background-position: 0 -20px; - } - - .selector-add { - background-position: 0 -40px; - } - - .active.selector-add:focus, .active.selector-add:hover { - background-position: 0 -60px; - } - - /* Inlines */ - - .inline-group[data-inline-type="stacked"] .inline-related { - border: 1px solid var(--hairline-color); - border-radius: 4px; - margin-top: 15px; - overflow: auto; - } - - .inline-group[data-inline-type="stacked"] .inline-related > * { - box-sizing: border-box; - } - - .inline-group[data-inline-type="stacked"] .inline-related .module { - padding: 0 10px; - } - - .inline-group[data-inline-type="stacked"] .inline-related .module .form-row { - border-top: 1px solid var(--hairline-color); - border-bottom: none; - } - - .inline-group[data-inline-type="stacked"] .inline-related .module .form-row:first-child { - border-top: none; - } - - .inline-group[data-inline-type="stacked"] .inline-related h3 { - padding: 10px; - border-top-width: 0; - border-bottom-width: 2px; - display: flex; - flex-wrap: wrap; - align-items: center; - } - - .inline-group[data-inline-type="stacked"] .inline-related h3 .inline_label { - margin-right: auto; - } - - .inline-group[data-inline-type="stacked"] .inline-related h3 span.delete { - float: none; - flex: 1 1 100%; - margin-top: 5px; - } - - .inline-group[data-inline-type="stacked"] .aligned .form-row > div:not([class]) { - width: 100%; - } - - .inline-group[data-inline-type="stacked"] .aligned label { - width: 100%; - } - - .inline-group[data-inline-type="stacked"] div.add-row { - margin-top: 15px; - border: 1px solid var(--hairline-color); - border-radius: 4px; - } - - .inline-group div.add-row, - .inline-group .tabular tr.add-row td { - padding: 0; - } - - .inline-group div.add-row a, - .inline-group .tabular tr.add-row td a { - display: block; - padding: 8px 10px 8px 26px; - background-position: 8px 9px; - } - - /* Submit row */ - - .submit-row { - padding: 10px; - margin: 0 0 15px; - flex-direction: column; - gap: 8px; - } - - .submit-row input, .submit-row input.default, .submit-row a { - text-align: center; - } - - .submit-row a.closelink { - padding: 10px 0; - text-align: center; - } - - .submit-row a.deletelink { - margin: 0; - } - - /* Messages */ - - ul.messagelist li { - padding-left: 40px; - background-position: 15px 12px; - } - - ul.messagelist li.error { - background-position: 15px 12px; - } - - ul.messagelist li.warning { - background-position: 15px 14px; - } - - /* Paginator */ - - .paginator .this-page, .paginator a:link, .paginator a:visited { - padding: 4px 10px; - } - - /* Login */ - - body.login { - padding: 0 15px; - } - - .login #container { - width: auto; - max-width: 480px; - margin: 50px auto; - } - - .login #header, - .login #content { - padding: 15px; - } - - .login #content-main { - float: none; - } - - .login .form-row { - padding: 0; - } - - .login .form-row + .form-row { - margin-top: 15px; - } - - .login .form-row label { - margin: 0 0 5px; - line-height: 1.2; - } - - .login .submit-row { - padding: 15px 0 0; - } - - .login br { - display: none; - } - - .login .submit-row input { - margin: 0; - text-transform: uppercase; - } - - .errornote { - margin: 0 0 20px; - padding: 8px 12px; - font-size: 0.8125rem; - } - - /* Calendar and clock */ - - .calendarbox, .clockbox { - position: fixed !important; - top: 50% !important; - left: 50% !important; - transform: translate(-50%, -50%); - margin: 0; - border: none; - overflow: visible; - } - - .calendarbox:before, .clockbox:before { - content: ''; - position: fixed; - top: 50%; - left: 50%; - width: 100vw; - height: 100vh; - background: rgba(0, 0, 0, 0.75); - transform: translate(-50%, -50%); - } - - .calendarbox > *, .clockbox > * { - position: relative; - z-index: 1; - } - - .calendarbox > div:first-child { - z-index: 2; - } - - .calendarbox .calendar, .clockbox h2 { - border-radius: 4px 4px 0 0; - overflow: hidden; - } - - .calendarbox .calendar-cancel, .clockbox .calendar-cancel { - border-radius: 0 0 4px 4px; - overflow: hidden; - } - - .calendar-shortcuts { - padding: 10px 0; - font-size: 0.75rem; - line-height: 0.75rem; - } - - .calendar-shortcuts a { - margin: 0 4px; - } - - .timelist a { - background: var(--body-bg); - padding: 4px; - } - - .calendar-cancel { - padding: 8px 10px; - } - - .clockbox h2 { - padding: 8px 15px; - } - - .calendar caption { - padding: 10px; - } - - .calendarbox .calendarnav-previous, .calendarbox .calendarnav-next { - z-index: 1; - top: 10px; - } - - /* History */ - - table#change-history tbody th, table#change-history tbody td { - font-size: 0.8125rem; - word-break: break-word; - } - - table#change-history tbody th { - width: auto; - } - - /* Docs */ - - table.model tbody th, table.model tbody td { - font-size: 0.8125rem; - word-break: break-word; - } -} diff --git a/equipment_tracker/static/admin/css/responsive.css.gz b/equipment_tracker/static/admin/css/responsive.css.gz deleted file mode 100644 index 7e8070e420218983e484c007f4bc83fd9b11d207..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3432 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 To~Qb9zDM#8M89D%WCQ>J