diff --git a/Pipfile b/Pipfile index 823e93f2..1c245aa1 100644 --- a/Pipfile +++ b/Pipfile @@ -80,6 +80,7 @@ importlib-metadata = "*" django-hcaptcha = "*" "z3c.rml" = "*" pikepdf = "*" +django-queryable-properties = "*" [dev-packages] selenium = "~=3.141.0" diff --git a/Pipfile.lock b/Pipfile.lock index 35d998aa..977cf3d8 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "841781f4c4d3c12a34c0ff8ef3fd58171baf657478d5c339d4f6fc79d5830978" + "sha256": "2063bc7dec3052096cc6b07a6ddd23017de8db84f0fb3d8711e8f7bad6433ceb" }, "pipfile-spec": 6, "requires": { @@ -345,6 +345,14 @@ "index": "pypi", "version": "==1.7.3" }, + "django-queryable-properties": { + "hashes": [ + "sha256:2112efc9ef92298753a628b5f2a3b3570cdbfd8e890503da9e722fd4a171c09d", + "sha256:6332eada8bdd6b820526f50023cd4d37c2625a5a80fa4ce65ee8d8908b56135a" + ], + "index": "pypi", + "version": "==1.8.0" + }, "django-recurrence": { "hashes": [ "sha256:715f681f6af029ff3a8d73c7b1460abd8cbc5d5a5001efcb127032e84d9cb963", @@ -576,36 +584,36 @@ }, "pikepdf": { "hashes": [ - "sha256:11a9c17f6262113d37454638d61c6102eff298309ebfcf4b6c96a3fe3dd57785", - "sha256:15cf594b41ba10415181c22cd9e1aab288929bd1b382a534a05f82293b0eac3a", - "sha256:19fbfce2b7b7cefd6227f4cd067611d0026dd5e8ef4c42b7f49e4e0016b1cf1a", - "sha256:2250f45865a177688e7a225f76db4fad7fb9af46e43fad77081ca41c74307874", - "sha256:27a034849fa052e97b262be97efed65f8b1bf681214a754846faeccacd51a61d", - "sha256:394d93eafa7688efb4f1c6365ec540fa8768888c041396354209386f72849eb2", - "sha256:3dae8f11be19f55d3cf4b3eaf2b257aaf39f8f8bfd7eaab134c60c0f3438ec5c", - "sha256:3f0c8421ae131846a33d970a388b77a6d7a02c7496ee92660247803247bad52e", - "sha256:40d7d330cfe064b92dca1d8d8f25730ea5cadec9be185f811b96704e02065edd", - "sha256:414d7b4bbd7cf3a9553e2254b1631c5ace59a716afa8d461bd76863255738504", - "sha256:441157ce3165f77478bad5724fe2aa0428f58728e31152d8d8c0626015c51dd0", - "sha256:4daf357f2436758213f164c71fa5aa2c835b4d1fb0b71247b0392198dd480de8", - "sha256:4dce15f0f0aec4ed6840383c0897020eae1aa4382dbff5d18b5efbe2a99d09b4", - "sha256:5a4cb65ef1f0fcc8c1b3daf2ef000bcb2318cb19961e6a4bcb7404bf37c78f10", - "sha256:5bbcf6bc5d1ecc63f6c6c54c631d59340e29c89a300487517d0dad3630afa24c", - "sha256:5edd87f1fb31f05b8251480fbc1e05e956589d1be36189234fd40d480dcc32f1", - "sha256:6646f05057e88773844c7fefb6b5329e5215a235c692cbf70d5ed66d8c69b7e6", - "sha256:792b9f670975fdf6dd47350129d1bf5f27ef1ecafaab6d9aa6be15ac58ceb8ae", - "sha256:7dd41620f1dbbd719ca9f5ee4a8219fce35691a01d88274752078c2717bb354b", - "sha256:8836e6060534c7245c8d736e93600667b928c767a012a73bb567f56bbe3d985c", - "sha256:9bc477d142785ae4663bf200b929bfde4536e428c653553a5e62d32ea29148b1", - "sha256:b2da6732a711ff217ee4d84f328c23db0476cfdd5c321b75bad727f481cc670f", - "sha256:bcd68a15d06987b519148a09ff1e6840ee71249130bde59ffdf374825dd5826d", - "sha256:beef92deb39a04c08a7401eebbe99dbec44b136e0a4f31fe3670159755feea38", - "sha256:c714685a0868f277fdf36afeb84a2aa696dab0182eaef4bb91cf3e6b776ba468", - "sha256:cd575cf0131683a7b661357bfd777b27c3c6c0d0fb7ef27e627f521122f75536", - "sha256:fb3d7fb390192cfb1e287503dbc03229c1c77fe9820cf084546bb63fa997fd87" + "sha256:0d980de596d5a77657a168779ceba76c4cf6287bbb9a8b663079d3764538c2c7", + "sha256:2acd885ddc85bea0a8b55354ca5ffd6fe6067b1d03aa791e1aad16025f937dfc", + "sha256:3ef57e0e0ad8fefea1d15b4e089b18ad160fde21bd831afd98583c6bf32070a7", + "sha256:462068dececf23adcda56f56366cbb5e183b169c560b223440ce3ea67e8c134c", + "sha256:4e9c815534a5b71b9dfd9b36636f4dcad38103ee5559d4cef9ae4555eb977179", + "sha256:5245d0c48befb2ba62eece81f254ef77cf6991e9b7118f5d1d5371c35d513275", + "sha256:5cce22141c69fc461e2f35180e177a6055a0f6ccd2303c98678852fcdba86ade", + "sha256:6453feea0e2351d2fa03650f523e559bdb903d879f2d525e4273d0cdfc557a1c", + "sha256:6b4a51f34bd0fd146d6161f8d03aa8fee3e95f8b109ec48ea45377f3635e5acb", + "sha256:85658b7f141c2a615f64755ab0d934388e56cdbdda468ea485a634f9c22338f1", + "sha256:8a2f27a0c011fd7a27fdecf40fe6e852077a87cfb25d95dc150c2d7f683ef60b", + "sha256:8c770492aad4446a936c9ae65448e5ab88409811ab469a6a3c7301eef88692b6", + "sha256:8e455553de481028f54fafb87a985e7054ae8c2e47655d280d605a17427005b3", + "sha256:9089babe094aad2c0e471c16d16e543b557e88bbc64046d7738d1ada9eba6d97", + "sha256:92a43906731b11fe175a528db09decb17d4a1d1a47c61a5e73b9ddd0ee9b2fde", + "sha256:92dfc6dda41099779fc39de409ea253b1d2d928f04bd71b4f467325a5cea43e5", + "sha256:994b3d308493152c408f417dd6ce39625173ddf585cb49c8c2213f6047e1482d", + "sha256:ab43a02a77995df0f0dc8859c1c1d0209e9b561f788c092fca259f09a700f20c", + "sha256:bc315b41fba3941d4d46c5174f5937aa6ebe8090f6e7242dce71a2c933145b4b", + "sha256:c25d4c7673f9588d1f98bca498db98ba675070dc89ffffe50b3b124d4a005df9", + "sha256:c558386f3643a3700e96da3bb09d606ef17ba45700b885d9a0f587244a0967aa", + "sha256:c643cadb67c000614f5f8a02ae9c1291296b964c573ab25a323d301db8a6b76d", + "sha256:d49501c3d40a5dffa8ebd003d41366490fe08daa66e9335ca7ef93f90d2f79b2", + "sha256:d538daba1389b825a37c468e25cda6ae36703a5c7ae2468849fadf5550733b45", + "sha256:dc9870ed0f0173a28f0ec970306552e405396692480c9e3b7e3c2861d3c48df9", + "sha256:de84c33e080df91b965f2fa8ffc290cca6543eff7f74ab4365fe1e716734789f", + "sha256:e7a4076e3970180e714a70c597be3d61dd800e51c1684f07be09962a51c2e757" ], "index": "pypi", - "version": "==4.3.1" + "version": "==4.4.1" }, "pillow": { "hashes": [ @@ -739,10 +747,10 @@ }, "pyopenssl": { "hashes": [ - "sha256:5e2d8c5e46d0d865ae933bef5230090bdaf5506281e9eec60fa250ee80600cb3", - "sha256:8935bd4920ab9abfebb07c41a4f58296407ed77f04bd1a92914044b848ba1ed6" + "sha256:660b1b1425aac4a1bea1d94168a85d99f0b3144c869dd4390d27629d0087f1bf", + "sha256:ea252b38c87425b64116f808355e8da644ef9b07e429398bfece610f893ee2e0" ], - "version": "==21.0.0" + "version": "==22.0.0" }, "pyparsing": { "hashes": [ @@ -801,53 +809,45 @@ }, "reportlab": { "hashes": [ - "sha256:0430cfe397415759839ef89abee6db82e8a8f9bb5831a3c93e7763915c755345", - "sha256:13072e33e8cbac6fd6e776fecabdefafb0261886b2ab7cb3b874a9384f1b0ffe", - "sha256:1767106d03320e76a708d2c40488fe1785580a0d7abac7715e01a3cc910c1179", - "sha256:17f35a856bbf46989d557d4016822bcdd3ada88d3afb567de03a4b29676aa52e", - "sha256:19414f4357287a7573a60bcb76a092c9ea82bf09f01d04b3afb5c1bd3c660df2", - "sha256:1d8d9674eb6ba1b6c3d6a8e3d5d4e4231b3576db653d1b1fdac2538afee54c7a", - "sha256:23236dc70598b688e979444c4840c5cec88a2a12fe81ba6f8cc807120a2cad33", - "sha256:28c339d25eab804a8bd004dfaa5a80c7568178561741f4ce6e69dae05d38041f", - "sha256:2c93a551b60c7fd3b17942772847f7c4ee2f08ae74c87ef8f325fe8083d2aa6e", - "sha256:2e80045f36dd4b9b63b19fc073149f70857fe8590027ab3658db80ac6235ecd0", - "sha256:38aa912301d93e2267861d820cb3f6eebed8deb58d0df429421578b9ba033eee", - "sha256:47587ce01cf9ac25f6d187116a9f9cef710dc58ccea001024d950c4f5a504643", - "sha256:587b3d8ce0a065a00975516013aebb062e6161fba3cf399b22f270e4d9a3db1e", - "sha256:5a650284cc09caa32b5845c055bf035cb76949b87d57e9eed56d98f863613417", - "sha256:5e113c630b6109efe0285230706c8423bff1b82c2e2824e441401a467a1215b7", - "sha256:68e339411cc9329ff50982a7c1d55eabd53ac9be24d4442088af58328bae54d3", - "sha256:6ae1fb03faf4b6710e2c081d5208416a5d557e0cc00ff24fc124dd42a7158114", - "sha256:6f363e09aacaa7aaff232197fddb667d899822aa57d10091aea4fbb1f56b7fa7", - "sha256:70841d7eb4aa2f8ad4afacce07711481a0dcd9d01679da5627173443131a33a2", - "sha256:71d91002878c4d2a17a6bd7208c59373e6148977fe674bb79eec3eb9e63aa20f", - "sha256:7a09e5bf9c8e02c373e5e558cc5c2cfbc5d3c68560a406c6d16254363cfa989e", - "sha256:85095ef9f3697859064cb1b22f19659bf4ba25e7dadb9c6be65f322cd68ba88f", - "sha256:8dafdcdde7243f0864d6d11dd9bfffbd1e6bce6c3e668fe992f56ae48377c822", - "sha256:9a822486a98fe002bbe248fdf3f126739c1ad29032b54b71a3f67b6364a77677", - "sha256:aa57dc0818e066fdced9457b9e6c6fb269d63e2d96902001c7dbe010bce6ebcc", - "sha256:b0836c6cdee4b88e2366e0ff152c1327578149e09850b7cab6016444c5b3eb26", - "sha256:b2988ffc33032096e808e7a4a36f5b453fcc9587873c85c1b44bc6846bbbd09c", - "sha256:bd38d58895b359ef429df3c97dc00c3fef0ab57f45556de416ba9b7d7fc71ae2", - "sha256:be87dca9253efd3cd0f351b785530c02e67664e284e3c4a97cdd0c7dd806d39a", - "sha256:c21bdb11d7fccea28bf08eac13d9d031836e335c5e0620eae1d4336f193e9a03", - "sha256:c43f847f2598b5c2fc9b63871d7da641c0b90e384d8da8018d4d7173a0b82cd4", - "sha256:c780cc5208c67b25bdddd08480f874614cd0ec0bed39e1a848448543f2093945", - "sha256:c9bcf696bc8935ff90ecb50c7644e2af01f63a444d4b4bd39d41d2abdd7bb224", - "sha256:cb48b71088f5c9eff5715dde0bd4d5372d4713ffa92247acf0f04fd17ab2078d", - "sha256:d48f638893b3eb4c9b2afeec2de4f95a4b57fb8c398e3d7f9a7fb4b4d9546820", - "sha256:d8fe27ad312671c9347cf5997f7c1017833fac17233f33296281ba9fa0de189a", - "sha256:d98b759661070f5588b30152d0caaf16ac387f60372f8fa2568c9ad4014cd7f3", - "sha256:e2022ad36409e7616ed6311f7ab113f236cac66ba0d22be4f53bf7e77654b143", - "sha256:e45159f4d19304f5e79be13283fe53bdd006c4fd4d93ff3cb6ac082ca017c418", - "sha256:eb3ef5394b4b2c904ab467dbbe1efcfbe046e1395c2d3064420ccef89806570e", - "sha256:f326b04a3fb3c7c58b799bd23b60790b181893f052fe5a8011c9cd9984e24a43", - "sha256:f401ed014ea861dea2ae621f7810fb15b3bc021e6487dee97b32f175bbf1b7eb", - "sha256:f4d4eb3a949ccb0782e4d6560fcd5ee6f34636d1ee24f1d2a2b1f530af89481a", - "sha256:fdc3dc1242be557f6a8bb9e21751296cc721f60b8e2b684690049e656d798520" + "sha256:22c28e593e2c37110f79df9bb31ba7782dc8c0002f33d8070c6d18e1c7380bfc", + "sha256:238f1088b1ce94d25790774546fc52e3efd909eafe0c56f71d286996dd2d2db0", + "sha256:2668687baf0a6c64f90193eca74dfa69bf172bf38e436c7be91e0b13867132ec", + "sha256:2adb9c53c86b30290b407a24b88cf07b09c3b325866b5125b4dca4aa7996021e", + "sha256:2ca0c987433bf63d765a9dcc9cb54695e617725ee81058af615f8d42fc29c0d8", + "sha256:2cf111835bd4b9afbdf8568c4031e2727cdc64a914bbd68e60aa190672f70d34", + "sha256:30d75931893f6c5beb14a93b0a3701cf14a6353c0b48acefa6b4c2391464b861", + "sha256:44c62615504f669a92a62431e847a11c281072ec3a4820a8880dab7338cad53c", + "sha256:473680fb899aed897963ddbf4536b377e40c7ea6fba83337e7f544e3040df956", + "sha256:502ae45775ddf6ed10f23253f8a7768b52b9517ac590babcb92aab0336a2a13a", + "sha256:5a681047247a6d896ed7ec18b95054c9c139c0269417beb066985244b8d18f75", + "sha256:5d62c8341a426984d488fadab2e2b35c4e3e4f5c6ceb2e6b57d7fc41cb7ba992", + "sha256:6910eb0152a72be5ebe8984472f9b2eeb1a5dc3db20a591cbcf179b14c2757a8", + "sha256:6e9f42099141bb35013297b8de8b7329946d94e881cbd72c3d76f44d5a9df705", + "sha256:7ac03370a672c9df9e691da4870f5db79d6227f37a6faf7d17a822890d42de60", + "sha256:8a49fec7ea0c410dc84c88ac8c965605a3e6d50a9b81afb9539175168c7deaf7", + "sha256:97b5ab874e8d74f3dbe3b48a531df7df269acb35c3e5eed9d41b3579bef9ad77", + "sha256:9db71af717229dad72fe5f4dfb587eb952a07f7c1bcd83df402b676c78a334f5", + "sha256:a089addc73b770d159615fc4c90cd06226b0c071d30c63e8addf57b9533049ee", + "sha256:a09acda69357664190a02f239abb01505d519a2563ba89d57d6fb55ca14ade72", + "sha256:ae252b718fb6de4da766d2b4b3402592923e327641dfa0a1b3cfecaa8a95229f", + "sha256:b109d8594a5140f8c0e93c0d091e16c6274267027077cddbc590d4bff7acb35c", + "sha256:b1d4940ff5f573f54855507c2d2ddfeb9a034ad3f040fa5168cf235717531b78", + "sha256:b44a59e75a2c20912e21960df45c0644ded4538300becbb1df5b4cceea2afa11", + "sha256:b84c0c3ad09eb9183fb2e54e44da92d84436d9f3a3263d1456e463c723c54906", + "sha256:d05603fcf2acee5d01eb814d36b212aafbd82cafb9ae861dff41daaf893f95f1", + "sha256:d42a442f4593ab5e196debc32aff0c36fcbf4031f068e1c9435d4137f47d7990", + "sha256:dd1cdb62dc123f5859ca514eb639f70660bdc818c95fb0ee2370a175a0e20ce4", + "sha256:e6d3affa0e484fb55e1061bbdf778797c68a648127f91102b1f0a6173ecb590e", + "sha256:e7ca3699612efc278c666193aa340937066d8045cde247c4b409c8f416e0811e", + "sha256:e80ed55cbbaf905635a2673d439495e1b1925b8379ea56aa2fc859a00e41af9f", + "sha256:edab6b0fc5984051b9b74d33579b7e3d228b70a5801904aa645828a95efb8486", + "sha256:ef659caf2f2824ab0bdf9e98a3886272232bcb1c756be4eb4f5c3c60a9519092", + "sha256:f00e0218854e168bd8d5379d07f0e138285c34b5fe3878c8d5d4f691e280d95e", + "sha256:f2bc48fc45f13d9ccc123462ab3bfd18a78e4bd58d027f9d4a226110c78adc3c", + "sha256:f2be927d8717c5947e7968f089492c088a4103bfe6287ee01a001e0b9a84545b" ], "index": "pypi", - "version": "==3.6.5" + "version": "==3.6.6" }, "requests": { "hashes": [ @@ -872,11 +872,11 @@ }, "sentry-sdk": { "hashes": [ - "sha256:141da032f0fa4c56f9af6b361fda57360af1789576285bd1944561f9c274f9c0", - "sha256:9aeff2a47f4038460296b920bf4d269284e8454e1c67547ee002ccafd9c2442b" + "sha256:4fc7960a82c95d906a0514cf4d9aacba1743eb9863a5b7c2a01c525a7d9b21e6", + "sha256:f7e54567937ebcbe938c4df1075ec891587faeb7c74184b88cf2894e47c86116" ], "index": "pypi", - "version": "==1.5.3" + "version": "==1.5.4" }, "simplejson": { "hashes": [ @@ -1343,55 +1343,52 @@ }, "coverage": { "hashes": [ - "sha256:01774a2c2c729619760320270e42cd9e797427ecfddd32c2a7b639cdc481f3c0", - "sha256:03b20e52b7d31be571c9c06b74746746d4eb82fc260e594dc662ed48145e9efd", - "sha256:0a7726f74ff63f41e95ed3a89fef002916c828bb5fcae83b505b49d81a066884", - "sha256:1219d760ccfafc03c0822ae2e06e3b1248a8e6d1a70928966bafc6838d3c9e48", - "sha256:13362889b2d46e8d9f97c421539c97c963e34031ab0cb89e8ca83a10cc71ac76", - "sha256:174cf9b4bef0db2e8244f82059a5a72bd47e1d40e71c68ab055425172b16b7d0", - "sha256:17e6c11038d4ed6e8af1407d9e89a2904d573be29d51515f14262d7f10ef0a64", - "sha256:215f8afcc02a24c2d9a10d3790b21054b58d71f4b3c6f055d4bb1b15cecce685", - "sha256:22e60a3ca5acba37d1d4a2ee66e051f5b0e1b9ac950b5b0cf4aa5366eda41d47", - "sha256:2641f803ee9f95b1f387f3e8f3bf28d83d9b69a39e9911e5bfee832bea75240d", - "sha256:276651978c94a8c5672ea60a2656e95a3cce2a3f31e9fb2d5ebd4c215d095840", - "sha256:3f7c17209eef285c86f819ff04a6d4cbee9b33ef05cbcaae4c0b4e8e06b3ec8f", - "sha256:3feac4084291642165c3a0d9eaebedf19ffa505016c4d3db15bfe235718d4971", - "sha256:49dbff64961bc9bdd2289a2bda6a3a5a331964ba5497f694e2cbd540d656dc1c", - "sha256:4e547122ca2d244f7c090fe3f4b5a5861255ff66b7ab6d98f44a0222aaf8671a", - "sha256:5829192582c0ec8ca4a2532407bc14c2f338d9878a10442f5d03804a95fac9de", - "sha256:5d6b09c972ce9200264c35a1d53d43ca55ef61836d9ec60f0d44273a31aa9f17", - "sha256:600617008aa82032ddeace2535626d1bc212dfff32b43989539deda63b3f36e4", - "sha256:619346d57c7126ae49ac95b11b0dc8e36c1dd49d148477461bb66c8cf13bb521", - "sha256:63c424e6f5b4ab1cf1e23a43b12f542b0ec2e54f99ec9f11b75382152981df57", - "sha256:6dbc1536e105adda7a6312c778f15aaabe583b0e9a0b0a324990334fd458c94b", - "sha256:6e1394d24d5938e561fbeaa0cd3d356207579c28bd1792f25a068743f2d5b282", - "sha256:86f2e78b1eff847609b1ca8050c9e1fa3bd44ce755b2ec30e70f2d3ba3844644", - "sha256:8bdfe9ff3a4ea37d17f172ac0dff1e1c383aec17a636b9b35906babc9f0f5475", - "sha256:8e2c35a4c1f269704e90888e56f794e2d9c0262fb0c1b1c8c4ee44d9b9e77b5d", - "sha256:92b8c845527eae547a2a6617d336adc56394050c3ed8a6918683646328fbb6da", - "sha256:9365ed5cce5d0cf2c10afc6add145c5037d3148585b8ae0e77cc1efdd6aa2953", - "sha256:9a29311bd6429be317c1f3fe4bc06c4c5ee45e2fa61b2a19d4d1d6111cb94af2", - "sha256:9a2b5b52be0a8626fcbffd7e689781bf8c2ac01613e77feda93d96184949a98e", - "sha256:a4bdeb0a52d1d04123b41d90a4390b096f3ef38eee35e11f0b22c2d031222c6c", - "sha256:a9c8c4283e17690ff1a7427123ffb428ad6a52ed720d550e299e8291e33184dc", - "sha256:b637c57fdb8be84e91fac60d9325a66a5981f8086c954ea2772efe28425eaf64", - "sha256:bf154ba7ee2fd613eb541c2bc03d3d9ac667080a737449d1a3fb342740eb1a74", - "sha256:c254b03032d5a06de049ce8bca8338a5185f07fb76600afff3c161e053d88617", - "sha256:c332d8f8d448ded473b97fefe4a0983265af21917d8b0cdcb8bb06b2afe632c3", - "sha256:c7912d1526299cb04c88288e148c6c87c0df600eca76efd99d84396cfe00ef1d", - "sha256:cfd9386c1d6f13b37e05a91a8583e802f8059bebfccde61a418c5808dea6bbfa", - "sha256:d5d2033d5db1d58ae2d62f095e1aefb6988af65b4b12cb8987af409587cc0739", - "sha256:dca38a21e4423f3edb821292e97cec7ad38086f84313462098568baedf4331f8", - "sha256:e2cad8093172b7d1595b4ad66f24270808658e11acf43a8f95b41276162eb5b8", - "sha256:e3db840a4dee542e37e09f30859f1612da90e1c5239a6a2498c473183a50e781", - "sha256:edcada2e24ed68f019175c2b2af2a8b481d3d084798b8c20d15d34f5c733fa58", - "sha256:f467bbb837691ab5a8ca359199d3429a11a01e6dfb3d9dcc676dc035ca93c0a9", - "sha256:f506af4f27def639ba45789fa6fde45f9a217da0be05f8910458e4557eed020c", - "sha256:f614fc9956d76d8a88a88bb41ddc12709caa755666f580af3a688899721efecd", - "sha256:f9afb5b746781fc2abce26193d1c817b7eb0e11459510fba65d2bd77fe161d9e", - "sha256:fb8b8ee99b3fffe4fd86f4c81b35a6bf7e4462cba019997af2fe679365db0c49" + "sha256:012157499ec4f135fc36cd2177e3d1a1840af9b236cbe80e9a5ccfc83d912a69", + "sha256:0a34d313105cdd0d3644c56df2d743fe467270d6ab93b5d4a347eb9fec8924d6", + "sha256:11e61c5548ecf74ea1f8b059730b049871f0e32b74f88bd0d670c20c819ad749", + "sha256:152cc2624381df4e4e604e21bd8e95eb8059535f7b768c1fb8b8ae0b26f47ab0", + "sha256:1b4285fde5286b946835a1a53bba3ad41ef74285ba9e8013e14b5ea93deaeafc", + "sha256:27a94db5dc098c25048b0aca155f5fac674f2cf1b1736c5272ba28ead2fc267e", + "sha256:27ac7cb84538e278e07569ceaaa6f807a029dc194b1c819a9820b9bb5dbf63ab", + "sha256:2a491e159294d756e7fc8462f98175e2d2225e4dbe062cca7d3e0d5a75ba6260", + "sha256:2bc85664b06ba42d14bb74d6ddf19d8bfc520cb660561d2d9ce5786ae72f71b5", + "sha256:32168001f33025fd756884d56d01adebb34e6c8c0b3395ca8584cdcee9c7c9d2", + "sha256:3c4ce3b647bd1792d4394f5690d9df6dc035b00bcdbc5595099c01282a59ae01", + "sha256:433b99f7b0613bdcdc0b00cc3d39ed6d756797e3b078d2c43f8a38288520aec6", + "sha256:4578728c36de2801c1deb1c6b760d31883e62e33f33c7ba8f982e609dc95167d", + "sha256:509c68c3e2015022aeda03b003dd68fa19987cdcf64e9d4edc98db41cfc45d30", + "sha256:51372e24b1f7143ee2df6b45cff6a721f3abe93b1e506196f3ffa4155c2497f7", + "sha256:5d008e0f67ac800b0ca04d7914b8501312c8c6c00ad8c7ba17754609fae1231a", + "sha256:649df3641eb351cdfd0d5533c92fc9df507b6b2bf48a7ef8c71ab63cbc7b5c3c", + "sha256:6e78b1e25e5c5695dea012be473e442f7094d066925604be20b30713dbd47f89", + "sha256:72d9d186508325a456475dd05b1756f9a204c7086b07fffb227ef8cee03b1dc2", + "sha256:7d82c610a2e10372e128023c5baf9ce3d270f3029fe7274ff5bc2897c68f1318", + "sha256:7ee317486593193e066fc5e98ac0ce712178c21529a85c07b7cb978171f25d53", + "sha256:7eed8459a2b81848cafb3280b39d7d49950d5f98e403677941c752e7e7ee47cb", + "sha256:823f9325283dc9565ba0aa2d240471a93ca8999861779b2b6c7aded45b58ee0f", + "sha256:85c5fc9029043cf8b07f73fbb0a7ab6d3b717510c3b5642b77058ea55d7cacde", + "sha256:86c91c511853dfda81c2cf2360502cb72783f4b7cebabef27869f00cbe1db07d", + "sha256:8e0c3525b1a182c8ffc9bca7e56b521e0c2b8b3e82f033c8e16d6d721f1b54d6", + "sha256:987a84ff98a309994ca77ed3cc4b92424f824278e48e4bf7d1bb79a63cfe2099", + "sha256:9ed3244b415725f08ca3bdf02ed681089fd95e9465099a21c8e2d9c5d6ca2606", + "sha256:a189036c50dcd56100746139a459f0d27540fef95b09aba03e786540b8feaa5f", + "sha256:a4748349734110fd32d46ff8897b561e6300d8989a494ad5a0a2e4f0ca974fc7", + "sha256:a5d79c9af3f410a2b5acad91258b4ae179ee9c83897eb9de69151b179b0227f5", + "sha256:a7596aa2f2b8fa5604129cfc9a27ad9beec0a96f18078cb424d029fdd707468d", + "sha256:ab4fc4b866b279740e0d917402f0e9a08683e002f43fa408e9655818ed392196", + "sha256:bde4aeabc0d1b2e52c4036c54440b1ad05beeca8113f47aceb4998bb7471e2c2", + "sha256:c72bb4679283c6737f452eeb9b2a0e570acaef2197ad255fb20162adc80bea76", + "sha256:c8582e9280f8d0f38114fe95a92ae8d0790b56b099d728cc4f8a2e14b1c4a18c", + "sha256:ca29c352389ea27a24c79acd117abdd8a865c6eb01576b6f0990cd9a4e9c9f48", + "sha256:ce443a3e6df90d692c38762f108fc4c88314bf477689f04de76b3f252e7a351c", + "sha256:d1675db48490e5fa0b300f6329ecb8a9a37c29b9ab64fa9c964d34111788ca2d", + "sha256:da1a428bdbe71f9a8c270c7baab29e9552ac9d0e0cba5e7e9a4c9ee6465d258d", + "sha256:e4ff163602c5c77e7bb4ea81ba5d3b793b4419f8acd296aae149370902cf4e92", + "sha256:e67ccd53da5958ea1ec833a160b96357f90859c220a00150de011b787c27b98d", + "sha256:e8071e7d9ba9f457fc674afc3de054450be2c9b195c470147fbbc082468d8ff7", + "sha256:fff16a30fdf57b214778eff86391301c4509e327a65b877862f7c929f10a4253" ], - "version": "==6.2" + "version": "==6.3" }, "coveralls": { "hashes": [ diff --git a/training/migrations/0004_rename_name_trainingitem_description.py b/training/migrations/0004_rename_name_trainingitem_description.py new file mode 100644 index 00000000..006a8d5c --- /dev/null +++ b/training/migrations/0004_rename_name_trainingitem_description.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.11 on 2022-01-30 11:59 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('training', '0003_trainingcategory_training_level'), + ] + + operations = [ + migrations.RenameField( + model_name='trainingitem', + old_name='name', + new_name='description', + ), + ] diff --git a/training/models.py b/training/models.py index 3a8c746d..4c72fbb8 100644 --- a/training/models.py +++ b/training/models.py @@ -4,6 +4,8 @@ from django.db import models from django.urls import reverse from django.utils.safestring import mark_safe from versioning.versioning import RevisionMixin +from queryable_properties.properties import queryable_property +from queryable_properties.managers import QueryablePropertiesManager class TraineeManager(models.Manager): @@ -67,15 +69,28 @@ class TrainingCategory(models.Model): class TrainingItem(models.Model): reference_number = models.IntegerField() category = models.ForeignKey('TrainingCategory', related_name='items', on_delete=models.CASCADE) - name = models.CharField(max_length=50) + description = models.CharField(max_length=50) active = models.BooleanField(default=True) + objects = QueryablePropertiesManager() + @property + def name(self): + return str(self) + + @queryable_property def display_id(self): return f"{self.category.reference_number}.{self.reference_number}" + @display_id.filter + @classmethod + def display_id(cls, lookup, value): + category_number, number = value.split('.') + if category_number and number: + return models.Q(category__reference_number=category_number, reference_number=number) + def __str__(self): - name = f"{self.display_id} {self.name}" + name = f"{self.display_id} {self.description}" if not self.active: name += " (inactive)" return name @@ -108,6 +123,8 @@ class TrainingItemQualification(models.Model, RevisionMixin): notes = models.TextField(blank=True) # TODO Maximum depth - some things stop at Complete and you can't be passed out in them + objects = QueryablePropertiesManager() + def __str__(self): return f"{self.get_depth_display()} in {self.item} on {self.date.strftime('%b %d %Y')}" diff --git a/training/templates/edit_training_record.html b/training/templates/edit_training_record.html index c63b5e88..4f4dd34e 100644 --- a/training/templates/edit_training_record.html +++ b/training/templates/edit_training_record.html @@ -29,8 +29,8 @@ {% csrf_token %} {% render_field form.trainee|attr:'hidden' value=form.trainee.initial %}
- - {% if object.item %} {% endif %} @@ -38,7 +38,7 @@
- {% render_field form.depth|add_class:'form-control custom-select col-sm-4' %} + {% render_field form.depth|add_class:'form-control custom-select col-sm-8' %}