mirror of
https://github.com/etnguyen03/tjdests.git
synced 2025-04-18 17:20:15 -04:00
Merge remote-tracking branch 'smayya337/master'
This commit is contained in:
commit
b62e733507
4
Pipfile
4
Pipfile
|
@ -11,7 +11,9 @@ django-crispy-forms = "~=1.13.0"
|
|||
django-extensions = "~=3.1.5"
|
||||
gunicorn = "~=20.1.0"
|
||||
ipython = "~=7.31.0"
|
||||
mistune = "~=2.0.2"
|
||||
psycopg2 = "~=2.9.3"
|
||||
pygments = "~=2.10.0"
|
||||
social-auth-app-django = "~=5.0.0"
|
||||
whitenoise = "~=5.3.0"
|
||||
|
||||
|
@ -27,6 +29,8 @@ pylint = "~=2.12.2"
|
|||
pylint-django = "~=2.5.0"
|
||||
pyyaml = "~=6.0"
|
||||
typed-ast = "~=1.5.1" # Required by black, but Pipenv doesn't pull it in correctly on 3.8
|
||||
types-Markdown = "~=3.3.10" # To avoid CI failures
|
||||
types-bleach = "~=4.1.3" # To avoid CI failures
|
||||
|
||||
[requires]
|
||||
python_version = "3.9"
|
||||
|
|
385
Pipfile.lock
generated
385
Pipfile.lock
generated
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"_meta": {
|
||||
"hash": {
|
||||
"sha256": "3c7dc0ff117f448cd426b688a68cb07788e8eba8a667261a43946f101065b0b8"
|
||||
"sha256": "227de253d05fb4f8b4d6b6c577312f4de5e0f4238deeb329e62c2451e7717a1f"
|
||||
},
|
||||
"pipfile-spec": 6,
|
||||
"requires": {
|
||||
|
@ -18,11 +18,11 @@
|
|||
"default": {
|
||||
"asgiref": {
|
||||
"hashes": [
|
||||
"sha256:4ef1ab46b484e3c706329cedeff284a5d40824200638503f5768edb6de7d58e9",
|
||||
"sha256:ffc141aa908e6f175673e7b1b3b7af4fdb0ecb738fc5c8b88f69f055c2415214"
|
||||
"sha256:2f8abc20f7248433085eda803936d98992f1343ddb022065779f37c5da0181d0",
|
||||
"sha256:88d59c13d634dcffe0510be048210188edd79aeccb6a6c9028cdad6f31d730a9"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==3.4.1"
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==3.5.0"
|
||||
},
|
||||
"backcall": {
|
||||
"hashes": [
|
||||
|
@ -95,11 +95,11 @@
|
|||
},
|
||||
"charset-normalizer": {
|
||||
"hashes": [
|
||||
"sha256:876d180e9d7432c5d1dfd4c5d26b72f099d503e8fcc0feb7532c9289be60fcbd",
|
||||
"sha256:cb957888737fc0bbcd78e3df769addb41fd1ff8cf950dc9e7ad7793f1bf44455"
|
||||
"sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597",
|
||||
"sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df"
|
||||
],
|
||||
"markers": "python_version >= '3'",
|
||||
"version": "==2.0.10"
|
||||
"version": "==2.0.12"
|
||||
},
|
||||
"crispy-bootstrap5": {
|
||||
"hashes": [
|
||||
|
@ -111,29 +111,29 @@
|
|||
},
|
||||
"cryptography": {
|
||||
"hashes": [
|
||||
"sha256:0a817b961b46894c5ca8a66b599c745b9a3d9f822725221f0e0fe49dc043a3a3",
|
||||
"sha256:2d87cdcb378d3cfed944dac30596da1968f88fb96d7fc34fdae30a99054b2e31",
|
||||
"sha256:30ee1eb3ebe1644d1c3f183d115a8c04e4e603ed6ce8e394ed39eea4a98469ac",
|
||||
"sha256:391432971a66cfaf94b21c24ab465a4cc3e8bf4a939c1ca5c3e3a6e0abebdbcf",
|
||||
"sha256:39bdf8e70eee6b1c7b289ec6e5d84d49a6bfa11f8b8646b5b3dfe41219153316",
|
||||
"sha256:4caa4b893d8fad33cf1964d3e51842cd78ba87401ab1d2e44556826df849a8ca",
|
||||
"sha256:53e5c1dc3d7a953de055d77bef2ff607ceef7a2aac0353b5d630ab67f7423638",
|
||||
"sha256:596f3cd67e1b950bc372c33f1a28a0692080625592ea6392987dba7f09f17a94",
|
||||
"sha256:5d59a9d55027a8b88fd9fd2826c4392bd487d74bf628bb9d39beecc62a644c12",
|
||||
"sha256:6c0c021f35b421ebf5976abf2daacc47e235f8b6082d3396a2fe3ccd537ab173",
|
||||
"sha256:73bc2d3f2444bcfeac67dd130ff2ea598ea5f20b40e36d19821b4df8c9c5037b",
|
||||
"sha256:74d6c7e80609c0f4c2434b97b80c7f8fdfaa072ca4baab7e239a15d6d70ed73a",
|
||||
"sha256:7be0eec337359c155df191d6ae00a5e8bbb63933883f4f5dffc439dac5348c3f",
|
||||
"sha256:94ae132f0e40fe48f310bba63f477f14a43116f05ddb69d6fa31e93f05848ae2",
|
||||
"sha256:bb5829d027ff82aa872d76158919045a7c1e91fbf241aec32cb07956e9ebd3c9",
|
||||
"sha256:ca238ceb7ba0bdf6ce88c1b74a87bffcee5afbfa1e41e173b1ceb095b39add46",
|
||||
"sha256:ca28641954f767f9822c24e927ad894d45d5a1e501767599647259cbf030b903",
|
||||
"sha256:e0344c14c9cb89e76eb6a060e67980c9e35b3f36691e15e1b7a9e58a0a6c6dc3",
|
||||
"sha256:ebc15b1c22e55c4d5566e3ca4db8689470a0ca2babef8e3a9ee057a8b82ce4b1",
|
||||
"sha256:ec63da4e7e4a5f924b90af42eddf20b698a70e58d86a72d943857c4c6045b3ee"
|
||||
"sha256:0a3bf09bb0b7a2c93ce7b98cb107e9170a90c51a0162a20af1c61c765b90e60b",
|
||||
"sha256:1f64a62b3b75e4005df19d3b5235abd43fa6358d5516cfc43d87aeba8d08dd51",
|
||||
"sha256:32db5cc49c73f39aac27574522cecd0a4bb7384e71198bc65a0d23f901e89bb7",
|
||||
"sha256:4881d09298cd0b669bb15b9cfe6166f16fc1277b4ed0d04a22f3d6430cb30f1d",
|
||||
"sha256:4e2dddd38a5ba733be6a025a1475a9f45e4e41139d1321f412c6b360b19070b6",
|
||||
"sha256:53e0285b49fd0ab6e604f4c5d9c5ddd98de77018542e88366923f152dbeb3c29",
|
||||
"sha256:70f8f4f7bb2ac9f340655cbac89d68c527af5bb4387522a8413e841e3e6628c9",
|
||||
"sha256:7b2d54e787a884ffc6e187262823b6feb06c338084bbe80d45166a1cb1c6c5bf",
|
||||
"sha256:7be666cc4599b415f320839e36367b273db8501127b38316f3b9f22f17a0b815",
|
||||
"sha256:8241cac0aae90b82d6b5c443b853723bcc66963970c67e56e71a2609dc4b5eaf",
|
||||
"sha256:82740818f2f240a5da8dfb8943b360e4f24022b093207160c77cadade47d7c85",
|
||||
"sha256:8897b7b7ec077c819187a123174b645eb680c13df68354ed99f9b40a50898f77",
|
||||
"sha256:c2c5250ff0d36fd58550252f54915776940e4e866f38f3a7866d92b32a654b86",
|
||||
"sha256:ca9f686517ec2c4a4ce930207f75c00bf03d94e5063cbc00a1dc42531511b7eb",
|
||||
"sha256:d2b3d199647468d410994dbeb8cec5816fb74feb9368aedf300af709ef507e3e",
|
||||
"sha256:da73d095f8590ad437cd5e9faf6628a218aa7c387e1fdf67b888b47ba56a17f0",
|
||||
"sha256:e167b6b710c7f7bc54e67ef593f8731e1f45aa35f8a8a7b72d6e42ec76afd4b3",
|
||||
"sha256:ea634401ca02367c1567f012317502ef3437522e2fc44a3ea1844de028fa4b84",
|
||||
"sha256:ec6597aa85ce03f3e507566b8bcdf9da2227ec86c4266bd5e6ab4d9e0cc8dab2",
|
||||
"sha256:f64b232348ee82f13aac22856515ce0195837f6968aeaa94a3d0353ea2ec06a6"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==36.0.1"
|
||||
"version": "==36.0.2"
|
||||
},
|
||||
"decorator": {
|
||||
"hashes": [
|
||||
|
@ -153,11 +153,11 @@
|
|||
},
|
||||
"django": {
|
||||
"hashes": [
|
||||
"sha256:0a0a37f0b93aef30c4bf3a839c187e1175bcdeb7e177341da0cb7b8194416891",
|
||||
"sha256:69c94abe5d6b1b088bf475e09b7b74403f943e34da107e798465d2045da27e75"
|
||||
"sha256:9772e6935703e59e993960832d66a614cf0233a1c5123bc6224ecc6ad69e41e2",
|
||||
"sha256:9b06c289f9ba3a8abea16c9c9505f25107809fb933676f6c891ded270039d965"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==3.2.11"
|
||||
"version": "==3.2.12"
|
||||
},
|
||||
"django-bootstrap-pagination": {
|
||||
"hashes": [
|
||||
|
@ -201,11 +201,11 @@
|
|||
},
|
||||
"ipython": {
|
||||
"hashes": [
|
||||
"sha256:346c74db7312c41fa566d3be45d2e759a528dcc2994fe48aac1a03a70cd668a3",
|
||||
"sha256:4c4234cdcc6b8f87c5b5c7af9899aa696ac5cfcf0e9f6d0688018bbee5c73bce"
|
||||
"sha256:55df3e0bd0f94e715abd968bedd89d4e8a7bce4bf498fb123fed4f5398fea874",
|
||||
"sha256:b5548ec5329a4bcf054a5deed5099b0f9622eb9ea51aaa7104d215fece201d8c"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==7.31.0"
|
||||
"version": "==7.31.1"
|
||||
},
|
||||
"jedi": {
|
||||
"hashes": [
|
||||
|
@ -223,13 +223,21 @@
|
|||
"markers": "python_version >= '3.5'",
|
||||
"version": "==0.1.3"
|
||||
},
|
||||
"mistune": {
|
||||
"hashes": [
|
||||
"sha256:6bab6c6abd711c4604206c7d8cad5cd48b28f072b4bb75797d74146ba393a049",
|
||||
"sha256:6fc88c3cb49dba8b16687b41725e661cf85784c12e8974a29b9d336dd596c3a1"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==2.0.2"
|
||||
},
|
||||
"oauthlib": {
|
||||
"hashes": [
|
||||
"sha256:42bf6354c2ed8c6acb54d971fce6f88193d97297e18602a3a886603f9d7730cc",
|
||||
"sha256:8f0215fcc533dd8dd1bee6f4c412d4f0cd7297307d43ac61666389e3bc3198a3"
|
||||
"sha256:23a8208d75b902797ea29fd31fa80a15ed9dc2c6c16fe73f5d346f83f6fa27a2",
|
||||
"sha256:6db33440354787f9b7f3a6dbd4febf5d0f93758354060e802f6c06cb493022fe"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==3.1.1"
|
||||
"version": "==3.2.0"
|
||||
},
|
||||
"parso": {
|
||||
"hashes": [
|
||||
|
@ -256,11 +264,11 @@
|
|||
},
|
||||
"prompt-toolkit": {
|
||||
"hashes": [
|
||||
"sha256:1bb05628c7d87b645974a1bad3f17612be0c29fa39af9f7688030163f680bad6",
|
||||
"sha256:e56f2ff799bacecd3e88165b1e2f5ebf9bcd59e80e06d395fa0cc4b8bd7bb506"
|
||||
"sha256:30129d870dcb0b3b6a53efdc9d0a83ea96162ffd28ffe077e94215b233dc670c",
|
||||
"sha256:9f1cd16b1e86c2968f2519d7fb31dd9d669916f515612c269d14e9ed52b51650"
|
||||
],
|
||||
"markers": "python_full_version >= '3.6.2'",
|
||||
"version": "==3.0.24"
|
||||
"version": "==3.0.28"
|
||||
},
|
||||
"psycopg2": {
|
||||
"hashes": [
|
||||
|
@ -291,16 +299,15 @@
|
|||
"sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9",
|
||||
"sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==2.21"
|
||||
},
|
||||
"pygments": {
|
||||
"hashes": [
|
||||
"sha256:44238f1b60a76d78fc8ca0528ee429702aae011c265fe6a8dd8b63049ae41c65",
|
||||
"sha256:4e426f72023d88d03b2fa258de560726ce890ff3b630f88c21cbb8b2503b8c6a"
|
||||
"sha256:b8e67fe6af78f492b3c4b3e2970c0624cbf08beb1e493b2c99b9fa1b67a20380",
|
||||
"sha256:f398865f7eb6874156579fdf36bc840a03cab64d1cde9e93d68f46a425ec52c6"
|
||||
],
|
||||
"markers": "python_version >= '3.5'",
|
||||
"version": "==2.11.2"
|
||||
"index": "pypi",
|
||||
"version": "==2.10.0"
|
||||
},
|
||||
"pyjwt": {
|
||||
"hashes": [
|
||||
|
@ -319,10 +326,10 @@
|
|||
},
|
||||
"pytz": {
|
||||
"hashes": [
|
||||
"sha256:3672058bc3453457b622aab7a1c3bfd5ab0bdae451512f6cf25f64ed37f5b87c",
|
||||
"sha256:acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326"
|
||||
"sha256:1e760e2fe6a8163bc0b3d9a19c4f84342afa0a2affebfaa84b01b978a02ecaa7",
|
||||
"sha256:e68985985296d9a66a881eb3193b0906246245294a881e7c8afe623866ac6a5c"
|
||||
],
|
||||
"version": "==2021.3"
|
||||
"version": "==2022.1"
|
||||
},
|
||||
"requests": {
|
||||
"hashes": [
|
||||
|
@ -334,19 +341,19 @@
|
|||
},
|
||||
"requests-oauthlib": {
|
||||
"hashes": [
|
||||
"sha256:7f71572defaecd16372f9006f33c2ec8c077c3cfa6f5911a9a90202beb513f3d",
|
||||
"sha256:b4261601a71fd721a8bd6d7aa1cc1d6a8a93b4a9f5e96626f8e4d91e8beeaa6a",
|
||||
"sha256:fa6c47b933f01060936d87ae9327fead68768b69c6c9ea2109c48be30f2d4dbc"
|
||||
"sha256:2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5",
|
||||
"sha256:75beac4a47881eeb94d5ea5d6ad31ef88856affe2332b9aafb52c6452ccf0d7a"
|
||||
],
|
||||
"version": "==1.3.0"
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"version": "==1.3.1"
|
||||
},
|
||||
"setuptools": {
|
||||
"hashes": [
|
||||
"sha256:2404879cda71495fc4d5cbc445ed52fdaddf352b36e40be8dcc63147cb4edabe",
|
||||
"sha256:68eb94073fc486091447fcb0501efd6560a0e5a1839ba249e5ff3c4c93f05f90"
|
||||
"sha256:6221e37dc86fcdc9dad9d9eb2002e9f9798fe4aca1bf18f280e66e50c0eb7fca",
|
||||
"sha256:ad88b13f3dc60420259c9877486908ddad12c7befaff0d624c7190f742abd64f"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==60.5.0"
|
||||
"version": "==61.0.0"
|
||||
},
|
||||
"social-auth-app-django": {
|
||||
"hashes": [
|
||||
|
@ -358,11 +365,11 @@
|
|||
},
|
||||
"social-auth-core": {
|
||||
"hashes": [
|
||||
"sha256:5ab43b3b15dce5f059db69cc3082c216574739f0edbc98629c8c6e8769c67eb4",
|
||||
"sha256:983b53167ac56e7ba4909db555602a6e7a98c97ca47183bb222eb85ba627bf2b"
|
||||
"sha256:08fe6645b98950cff9d6970b6704345f821d78729df0164bca0002c624b001e1",
|
||||
"sha256:af6fc7d9ee39f0aa697cd953121add638fc32a49816341a9838a67904c39e034"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==4.1.0"
|
||||
"version": "==4.2.0"
|
||||
},
|
||||
"sqlparse": {
|
||||
"hashes": [
|
||||
|
@ -382,11 +389,11 @@
|
|||
},
|
||||
"urllib3": {
|
||||
"hashes": [
|
||||
"sha256:000ca7f471a233c2251c6c7023ee85305721bfdf18621ebff4fd17a8653427ed",
|
||||
"sha256:0e7c33d9a63e7ddfcb86780aac87befc2fbddf46c58dbb487e0855f7ceec283c"
|
||||
"sha256:44ece4d53fb1706f667c9bd1c648f5469a2ec925fcf3a776667042d645472c14",
|
||||
"sha256:aabaf16477806a5e1dd19aa41f8c2b7950dd3c746362d7e3223dbe6de6ac448e"
|
||||
],
|
||||
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'",
|
||||
"version": "==1.26.8"
|
||||
"version": "==1.26.9"
|
||||
},
|
||||
"wcwidth": {
|
||||
"hashes": [
|
||||
|
@ -407,11 +414,11 @@
|
|||
"develop": {
|
||||
"asgiref": {
|
||||
"hashes": [
|
||||
"sha256:4ef1ab46b484e3c706329cedeff284a5d40824200638503f5768edb6de7d58e9",
|
||||
"sha256:ffc141aa908e6f175673e7b1b3b7af4fdb0ecb738fc5c8b88f69f055c2415214"
|
||||
"sha256:2f8abc20f7248433085eda803936d98992f1343ddb022065779f37c5da0181d0",
|
||||
"sha256:88d59c13d634dcffe0510be048210188edd79aeccb6a6c9028cdad6f31d730a9"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==3.4.1"
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==3.5.0"
|
||||
},
|
||||
"astroid": {
|
||||
"hashes": [
|
||||
|
@ -439,72 +446,66 @@
|
|||
},
|
||||
"click": {
|
||||
"hashes": [
|
||||
"sha256:353f466495adaeb40b6b5f592f9f91cb22372351c84caeb068132442a4518ef3",
|
||||
"sha256:410e932b050f5eed773c4cda94de75971c89cdb3155a72a0831139a79e5ecb5b"
|
||||
"sha256:6a7a62563bbfabfda3a38f3023a1db4a35978c0abd76f6c9605ecd6554d6d9b1",
|
||||
"sha256:8458d7b1287c5fb128c90e23381cf99dcde74beaf6c7ff6384ce84d6fe090adb"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==8.0.3"
|
||||
"version": "==8.0.4"
|
||||
},
|
||||
"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:03e2a7826086b91ef345ff18742ee9fc47a6839ccd517061ef8fa1976e652ce9",
|
||||
"sha256:07e6db90cd9686c767dcc593dff16c8c09f9814f5e9c51034066cad3373b914d",
|
||||
"sha256:18d520c6860515a771708937d2f78f63cc47ab3b80cb78e86573b0a760161faf",
|
||||
"sha256:1ebf730d2381158ecf3dfd4453fbca0613e16eaa547b4170e2450c9707665ce7",
|
||||
"sha256:21b7745788866028adeb1e0eca3bf1101109e2dc58456cb49d2d9b99a8c516e6",
|
||||
"sha256:26e2deacd414fc2f97dd9f7676ee3eaecd299ca751412d89f40bc01557a6b1b4",
|
||||
"sha256:2c6dbb42f3ad25760010c45191e9757e7dce981cbfb90e42feef301d71540059",
|
||||
"sha256:2fea046bfb455510e05be95e879f0e768d45c10c11509e20e06d8fcaa31d9e39",
|
||||
"sha256:34626a7eee2a3da12af0507780bb51eb52dca0e1751fd1471d0810539cefb536",
|
||||
"sha256:37d1141ad6b2466a7b53a22e08fe76994c2d35a5b6b469590424a9953155afac",
|
||||
"sha256:46191097ebc381fbf89bdce207a6c107ac4ec0890d8d20f3360345ff5976155c",
|
||||
"sha256:4dd8bafa458b5c7d061540f1ee9f18025a68e2d8471b3e858a9dad47c8d41903",
|
||||
"sha256:4e21876082ed887baed0146fe222f861b5815455ada3b33b890f4105d806128d",
|
||||
"sha256:58303469e9a272b4abdb9e302a780072c0633cdcc0165db7eec0f9e32f901e05",
|
||||
"sha256:5ca5aeb4344b30d0bec47481536b8ba1181d50dbe783b0e4ad03c95dc1296684",
|
||||
"sha256:68353fe7cdf91f109fc7d474461b46e7f1f14e533e911a2a2cbb8b0fc8613cf1",
|
||||
"sha256:6f89d05e028d274ce4fa1a86887b071ae1755082ef94a6740238cd7a8178804f",
|
||||
"sha256:7a15dc0a14008f1da3d1ebd44bdda3e357dbabdf5a0b5034d38fcde0b5c234b7",
|
||||
"sha256:8bdde1177f2311ee552f47ae6e5aa7750c0e3291ca6b75f71f7ffe1f1dab3dca",
|
||||
"sha256:8ce257cac556cb03be4a248d92ed36904a59a4a5ff55a994e92214cde15c5bad",
|
||||
"sha256:8cf5cfcb1521dc3255d845d9dca3ff204b3229401994ef8d1984b32746bb45ca",
|
||||
"sha256:8fbbdc8d55990eac1b0919ca69eb5a988a802b854488c34b8f37f3e2025fa90d",
|
||||
"sha256:9548f10d8be799551eb3a9c74bbf2b4934ddb330e08a73320123c07f95cc2d92",
|
||||
"sha256:96f8a1cb43ca1422f36492bebe63312d396491a9165ed3b9231e778d43a7fca4",
|
||||
"sha256:9b27d894748475fa858f9597c0ee1d4829f44683f3813633aaf94b19cb5453cf",
|
||||
"sha256:9baff2a45ae1f17c8078452e9e5962e518eab705e50a0aa8083733ea7d45f3a6",
|
||||
"sha256:a2a8b8bcc399edb4347a5ca8b9b87e7524c0967b335fbb08a83c8421489ddee1",
|
||||
"sha256:acf53bc2cf7282ab9b8ba346746afe703474004d9e566ad164c91a7a59f188a4",
|
||||
"sha256:b0be84e5a6209858a1d3e8d1806c46214e867ce1b0fd32e4ea03f4bd8b2e3359",
|
||||
"sha256:b31651d018b23ec463e95cf10070d0b2c548aa950a03d0b559eaa11c7e5a6fa3",
|
||||
"sha256:b78e5afb39941572209f71866aa0b206c12f0109835aa0d601e41552f9b3e620",
|
||||
"sha256:c76aeef1b95aff3905fb2ae2d96e319caca5b76fa41d3470b19d4e4a3a313512",
|
||||
"sha256:dd035edafefee4d573140a76fdc785dc38829fe5a455c4bb12bac8c20cfc3d69",
|
||||
"sha256:dd6fe30bd519694b356cbfcaca9bd5c1737cddd20778c6a581ae20dc8c04def2",
|
||||
"sha256:e5f4e1edcf57ce94e5475fe09e5afa3e3145081318e5fd1a43a6b4539a97e518",
|
||||
"sha256:ec6bc7fe73a938933d4178c9b23c4e0568e43e220aef9472c4f6044bfc6dd0f0",
|
||||
"sha256:f1555ea6d6da108e1999b2463ea1003fe03f29213e459145e70edbaf3e004aaa",
|
||||
"sha256:f5fa5803f47e095d7ad8443d28b01d48c0359484fec1b9d8606d0e3282084bc4",
|
||||
"sha256:f7331dbf301b7289013175087636bbaf5b2405e57259dd2c42fdcc9fcc47325e",
|
||||
"sha256:f9987b0354b06d4df0f4d3e0ec1ae76d7ce7cbca9a2f98c25041eb79eec766f1",
|
||||
"sha256:fd9e830e9d8d89b20ab1e5af09b32d33e1a08ef4c4e14411e559556fd788e6b2"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==6.2"
|
||||
"version": "==6.3.2"
|
||||
},
|
||||
"django": {
|
||||
"hashes": [
|
||||
"sha256:0a0a37f0b93aef30c4bf3a839c187e1175bcdeb7e177341da0cb7b8194416891",
|
||||
"sha256:69c94abe5d6b1b088bf475e09b7b74403f943e34da107e798465d2045da27e75"
|
||||
"sha256:9772e6935703e59e993960832d66a614cf0233a1c5123bc6224ecc6ad69e41e2",
|
||||
"sha256:9b06c289f9ba3a8abea16c9c9505f25107809fb933676f6c891ded270039d965"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==3.2.11"
|
||||
"version": "==3.2.12"
|
||||
},
|
||||
"django-stubs": {
|
||||
"hashes": [
|
||||
|
@ -590,29 +591,32 @@
|
|||
},
|
||||
"mypy": {
|
||||
"hashes": [
|
||||
"sha256:0038b21890867793581e4cb0d810829f5fd4441aa75796b53033af3aa30430ce",
|
||||
"sha256:1171f2e0859cfff2d366da2c7092b06130f232c636a3f7301e3feb8b41f6377d",
|
||||
"sha256:1b06268df7eb53a8feea99cbfff77a6e2b205e70bf31743e786678ef87ee8069",
|
||||
"sha256:1b65714dc296a7991000b6ee59a35b3f550e0073411ac9d3202f6516621ba66c",
|
||||
"sha256:1bf752559797c897cdd2c65f7b60c2b6969ffe458417b8d947b8340cc9cec08d",
|
||||
"sha256:300717a07ad09525401a508ef5d105e6b56646f7942eb92715a1c8d610149714",
|
||||
"sha256:3c5b42d0815e15518b1f0990cff7a705805961613e701db60387e6fb663fe78a",
|
||||
"sha256:4365c60266b95a3f216a3047f1d8e3f895da6c7402e9e1ddfab96393122cc58d",
|
||||
"sha256:50c7346a46dc76a4ed88f3277d4959de8a2bd0a0fa47fa87a4cde36fe247ac05",
|
||||
"sha256:5b56154f8c09427bae082b32275a21f500b24d93c88d69a5e82f3978018a0266",
|
||||
"sha256:74f7eccbfd436abe9c352ad9fb65872cc0f1f0a868e9d9c44db0893440f0c697",
|
||||
"sha256:7b3f6f557ba4afc7f2ce6d3215d5db279bcf120b3cfd0add20a5d4f4abdae5bc",
|
||||
"sha256:8c11003aaeaf7cc2d0f1bc101c1cc9454ec4cc9cb825aef3cafff8a5fdf4c799",
|
||||
"sha256:8ca7f8c4b1584d63c9a0f827c37ba7a47226c19a23a753d52e5b5eddb201afcd",
|
||||
"sha256:c89702cac5b302f0c5d33b172d2b55b5df2bede3344a2fbed99ff96bddb2cf00",
|
||||
"sha256:d8f1ff62f7a879c9fe5917b3f9eb93a79b78aad47b533911b853a757223f72e7",
|
||||
"sha256:d9d2b84b2007cea426e327d2483238f040c49405a6bf4074f605f0156c91a47a",
|
||||
"sha256:e839191b8da5b4e5d805f940537efcaa13ea5dd98418f06dc585d2891d228cf0",
|
||||
"sha256:f9fe20d0872b26c4bba1c1be02c5340de1019530302cf2dcc85c7f9fc3252ae0",
|
||||
"sha256:ff3bf387c14c805ab1388185dd22d6b210824e164d4bb324b195ff34e322d166"
|
||||
"sha256:0e2dd88410937423fba18e57147dd07cd8381291b93d5b1984626f173a26543e",
|
||||
"sha256:10daab80bc40f84e3f087d896cdb53dc811a9f04eae4b3f95779c26edee89d16",
|
||||
"sha256:17e44649fec92e9f82102b48a3bf7b4a5510ad0cd22fa21a104826b5db4903e2",
|
||||
"sha256:1a0459c333f00e6a11cbf6b468b870c2b99a906cb72d6eadf3d1d95d38c9352c",
|
||||
"sha256:246e1aa127d5b78488a4a0594bd95f6d6fb9d63cf08a66dafbff8595d8891f67",
|
||||
"sha256:2b184db8c618c43c3a31b32ff00cd28195d39e9c24e7c3b401f3db7f6e5767f5",
|
||||
"sha256:2bc249409a7168d37c658e062e1ab5173300984a2dada2589638568ddc1db02b",
|
||||
"sha256:3841b5433ff936bff2f4dc8d54cf2cdbfea5d8e88cedfac45c161368e5770ba6",
|
||||
"sha256:4c3e497588afccfa4334a9986b56f703e75793133c4be3a02d06a3df16b67a58",
|
||||
"sha256:5bf44840fb43ac4074636fd47ee476d73f0039f4f54e86d7265077dc199be24d",
|
||||
"sha256:64235137edc16bee6f095aba73be5334677d6f6bdb7fa03cfab90164fa294a17",
|
||||
"sha256:6776e5fa22381cc761df53e7496a805801c1a751b27b99a9ff2f0ca848c7eca0",
|
||||
"sha256:6ce34a118d1a898f47def970a2042b8af6bdcc01546454726c7dd2171aa6dfca",
|
||||
"sha256:6f6ad963172152e112b87cc7ec103ba0f2db2f1cd8997237827c052a3903eaa6",
|
||||
"sha256:6f7106cbf9cc2f403693bf50ed7c9fa5bb3dfa9007b240db3c910929abe2a322",
|
||||
"sha256:7742d2c4e46bb5017b51c810283a6a389296cda03df805a4f7869a6f41246534",
|
||||
"sha256:9521c1265ccaaa1791d2c13582f06facf815f426cd8b07c3a485f486a8ffc1f3",
|
||||
"sha256:a1b383fe99678d7402754fe90448d4037f9512ce70c21f8aee3b8bf48ffc51db",
|
||||
"sha256:b840cfe89c4ab6386c40300689cd8645fc8d2d5f20101c7f8bd23d15fca14904",
|
||||
"sha256:d8d3ba77e56b84cd47a8ee45b62c84b6d80d32383928fe2548c9a124ea0a725c",
|
||||
"sha256:dcd955f36e0180258a96f880348fbca54ce092b40fbb4b37372ae3b25a0b0a46",
|
||||
"sha256:e865fec858d75b78b4d63266c9aff770ecb6a39dfb6d6b56c47f7f8aba6baba8",
|
||||
"sha256:edf7237137a1a9330046dbb14796963d734dd740a98d5e144a3eb1d267f5f9ee"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==0.931"
|
||||
"version": "==0.942"
|
||||
},
|
||||
"mypy-extensions": {
|
||||
"hashes": [
|
||||
|
@ -630,11 +634,11 @@
|
|||
},
|
||||
"platformdirs": {
|
||||
"hashes": [
|
||||
"sha256:1d7385c7db91728b83efd0ca99a5afb296cab9d0ed8313a45ed8ba17967ecfca",
|
||||
"sha256:440633ddfebcc36264232365d7840a970e75e1018d15b4327d11f91909045fda"
|
||||
"sha256:7535e70dfa32e84d4b34996ea99c5e432fa29a708d0f4e394bbcb2a8faa4f16d",
|
||||
"sha256:bcae7cab893c2d310a711b70b24efb93334febe65f8de776ee320b517471e227"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==2.4.1"
|
||||
"version": "==2.5.1"
|
||||
},
|
||||
"pycodestyle": {
|
||||
"hashes": [
|
||||
|
@ -662,11 +666,11 @@
|
|||
},
|
||||
"pylint-django": {
|
||||
"hashes": [
|
||||
"sha256:1fda2b86de993241c9a076970af0d1a7beac52a4333c786975a0e7f45c062490",
|
||||
"sha256:7eb8399fc9813040754081e496655cd7cc40d32d4b68e49c64a2eea50df9af12"
|
||||
"sha256:1933d82b4a92538a3b12aef91adfd7d866befd051d7a02d6245b0f965587d97c",
|
||||
"sha256:286dce8a31bc8ed5a523e8d8742b5a0e083b87f5f140ea4cde9aad612c03bd2d"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==2.5.0"
|
||||
"version": "==2.5.2"
|
||||
},
|
||||
"pylint-plugin-utils": {
|
||||
"hashes": [
|
||||
|
@ -717,11 +721,11 @@
|
|||
},
|
||||
"setuptools": {
|
||||
"hashes": [
|
||||
"sha256:2404879cda71495fc4d5cbc445ed52fdaddf352b36e40be8dcc63147cb4edabe",
|
||||
"sha256:68eb94073fc486091447fcb0501efd6560a0e5a1839ba249e5ff3c4c93f05f90"
|
||||
"sha256:6221e37dc86fcdc9dad9d9eb2002e9f9798fe4aca1bf18f280e66e50c0eb7fca",
|
||||
"sha256:ad88b13f3dc60420259c9877486908ddad12c7befaff0d624c7190f742abd64f"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==60.5.0"
|
||||
"version": "==61.0.0"
|
||||
},
|
||||
"sqlparse": {
|
||||
"hashes": [
|
||||
|
@ -736,7 +740,7 @@
|
|||
"sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b",
|
||||
"sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"
|
||||
],
|
||||
"markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'",
|
||||
"markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2'",
|
||||
"version": "==0.10.2"
|
||||
},
|
||||
"tomli": {
|
||||
|
@ -749,50 +753,71 @@
|
|||
},
|
||||
"typed-ast": {
|
||||
"hashes": [
|
||||
"sha256:24058827d8f5d633f97223f5148a7d22628099a3d2efe06654ce872f46f07cdb",
|
||||
"sha256:256115a5bc7ea9e665c6314ed6671ee2c08ca380f9d5f130bd4d2c1f5848d695",
|
||||
"sha256:38cf5c642fa808300bae1281460d4f9b7617cf864d4e383054a5ef336e344d32",
|
||||
"sha256:484137cab8ecf47e137260daa20bafbba5f4e3ec7fda1c1e69ab299b75fa81c5",
|
||||
"sha256:4f30a2bcd8e68adbb791ce1567fdb897357506f7ea6716f6bbdd3053ac4d9471",
|
||||
"sha256:591bc04e507595887160ed7aa8d6785867fb86c5793911be79ccede61ae96f4d",
|
||||
"sha256:5b6ab14c56bc9c7e3c30228a0a0b54b915b1579613f6e463ba6f4eb1382e7fd4",
|
||||
"sha256:5d8314c92414ce7481eee7ad42b353943679cf6f30237b5ecbf7d835519e1212",
|
||||
"sha256:71dcda943a471d826ea930dd449ac7e76db7be778fcd722deb63642bab32ea3f",
|
||||
"sha256:7c42707ab981b6cf4b73490c16e9d17fcd5227039720ca14abe415d39a173a30",
|
||||
"sha256:9caaf2b440efb39ecbc45e2fabde809cbe56272719131a6318fd9bf08b58e2cb",
|
||||
"sha256:a2b8d7007f6280e36fa42652df47087ac7b0a7d7f09f9468f07792ba646aac2d",
|
||||
"sha256:a6d495c1ef572519a7bac9534dbf6d94c40e5b6a608ef41136133377bba4aa08",
|
||||
"sha256:a80d84f535642420dd17e16ae25bb46c7f4c16ee231105e7f3eb43976a89670a",
|
||||
"sha256:b53ae5de5500529c76225d18eeb060efbcec90ad5e030713fe8dab0fb4531631",
|
||||
"sha256:b6d17f37f6edd879141e64a5db17b67488cfeffeedad8c5cec0392305e9bc775",
|
||||
"sha256:c9bcad65d66d594bffab8575f39420fe0ee96f66e23c4d927ebb4e24354ec1af",
|
||||
"sha256:ca9e8300d8ba0b66d140820cf463438c8e7b4cdc6fd710c059bfcfb1531d03fb",
|
||||
"sha256:de4ecae89c7d8b56169473e08f6bfd2df7f95015591f43126e4ea7865928677e"
|
||||
"sha256:0eb77764ea470f14fcbb89d51bc6bbf5e7623446ac4ed06cbd9ca9495b62e36e",
|
||||
"sha256:1098df9a0592dd4c8c0ccfc2e98931278a6c6c53cb3a3e2cf7e9ee3b06153344",
|
||||
"sha256:183b183b7771a508395d2cbffd6db67d6ad52958a5fdc99f450d954003900266",
|
||||
"sha256:18fe320f354d6f9ad3147859b6e16649a0781425268c4dde596093177660e71a",
|
||||
"sha256:26a432dc219c6b6f38be20a958cbe1abffcc5492821d7e27f08606ef99e0dffd",
|
||||
"sha256:294a6903a4d087db805a7656989f613371915fc45c8cc0ddc5c5a0a8ad9bea4d",
|
||||
"sha256:31d8c6b2df19a777bc8826770b872a45a1f30cfefcfd729491baa5237faae837",
|
||||
"sha256:33b4a19ddc9fc551ebabca9765d54d04600c4a50eda13893dadf67ed81d9a098",
|
||||
"sha256:42c47c3b43fe3a39ddf8de1d40dbbfca60ac8530a36c9b198ea5b9efac75c09e",
|
||||
"sha256:525a2d4088e70a9f75b08b3f87a51acc9cde640e19cc523c7e41aa355564ae27",
|
||||
"sha256:58ae097a325e9bb7a684572d20eb3e1809802c5c9ec7108e85da1eb6c1a3331b",
|
||||
"sha256:676d051b1da67a852c0447621fdd11c4e104827417bf216092ec3e286f7da596",
|
||||
"sha256:74cac86cc586db8dfda0ce65d8bcd2bf17b58668dfcc3652762f3ef0e6677e76",
|
||||
"sha256:8c08d6625bb258179b6e512f55ad20f9dfef019bbfbe3095247401e053a3ea30",
|
||||
"sha256:90904d889ab8e81a956f2c0935a523cc4e077c7847a836abee832f868d5c26a4",
|
||||
"sha256:963a0ccc9a4188524e6e6d39b12c9ca24cc2d45a71cfdd04a26d883c922b4b78",
|
||||
"sha256:bbebc31bf11762b63bf61aaae232becb41c5bf6b3461b80a4df7e791fabb3aca",
|
||||
"sha256:bc2542e83ac8399752bc16e0b35e038bdb659ba237f4222616b4e83fb9654985",
|
||||
"sha256:c29dd9a3a9d259c9fa19d19738d021632d673f6ed9b35a739f48e5f807f264fb",
|
||||
"sha256:c7407cfcad702f0b6c0e0f3e7ab876cd1d2c13b14ce770e412c0c4b9728a0f88",
|
||||
"sha256:da0a98d458010bf4fe535f2d1e367a2e2060e105978873c04c04212fb20543f7",
|
||||
"sha256:df05aa5b241e2e8045f5f4367a9f6187b09c4cdf8578bb219861c4e27c443db5",
|
||||
"sha256:f290617f74a610849bd8f5514e34ae3d09eafd521dceaa6cf68b3f4414266d4e",
|
||||
"sha256:f30ddd110634c2d7534b2d4e0e22967e88366b0d356b24de87419cc4410c41b7"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==1.5.1"
|
||||
"version": "==1.5.2"
|
||||
},
|
||||
"types-bleach": {
|
||||
"hashes": [
|
||||
"sha256:08bb760a7a5a4a2da527ef531e7fa36845262c2103e9cc2e255a0bbe366ea38e",
|
||||
"sha256:3eb40e73a844647056e34959578cd4a17a30429f49318c9b032c965e360bff2c"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==4.1.5"
|
||||
},
|
||||
"types-markdown": {
|
||||
"hashes": [
|
||||
"sha256:9a1428bfe856a0df0ac1e74507ee0cfe841c8b2a676cb83672ca249cb9f54a00",
|
||||
"sha256:bcc56dfb95be2389646e01808dc637c45805a9bb38047c93a509d96d183ca79d"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==3.3.12"
|
||||
},
|
||||
"types-pytz": {
|
||||
"hashes": [
|
||||
"sha256:101da53091013bb07403468c20d36930d749d3918054ac46f9c1bfc607dadf7d",
|
||||
"sha256:ccfa2ed29f816e3de2f882541c06ad2791f808a79cfe38265411820190999f0f"
|
||||
"sha256:6805c72d51118923c5bf98633c39593d5b464d2ab49a803440e2d7ab6b8920df",
|
||||
"sha256:74547fd90d8d8ab4f1eedf3a344a7d186d97486973895f81221a712e1e2cd993"
|
||||
],
|
||||
"version": "==2021.3.4"
|
||||
"version": "==2021.3.6"
|
||||
},
|
||||
"types-pyyaml": {
|
||||
"hashes": [
|
||||
"sha256:6ea4eefa8579e0ce022f785a62de2bcd647fad4a81df5cf946fd67e4b059920b",
|
||||
"sha256:8b50294b55a9db89498cdc5a65b1b4545112b6cd1cf4465bd693d828b0282a17"
|
||||
"sha256:2fd21310870addfd51db621ad9f3b373f33ee3cbb81681d70ef578760bd22d35",
|
||||
"sha256:464e050914f3d1d83a8c038e1cf46da5cb96b7cd02eaa096bcaa03675edd8a2e"
|
||||
],
|
||||
"version": "==6.0.3"
|
||||
"version": "==6.0.5"
|
||||
},
|
||||
"typing-extensions": {
|
||||
"hashes": [
|
||||
"sha256:4ca091dea149f945ec56afb48dae714f21e8692ef22a395223bcd328961b6a0e",
|
||||
"sha256:7f001e5ac290a0c0401508864c7ec868be4e701886d5b573a9528ed3973d9d3b"
|
||||
"sha256:1a9462dcc3347a79b1f1c0271fbe79e844580bb598bafa1ed208b94da3cdcd42",
|
||||
"sha256:21c85e0fe4b9a155d0799430b0ad741cdce7e359660ccbd8b530613e8df88ce2"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==4.0.1"
|
||||
"version": "==4.1.1"
|
||||
},
|
||||
"wrapt": {
|
||||
"hashes": [
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
cd "$(dirname -- "$(dirname -- "$(readlink -f "$0")")")"
|
||||
cd "$(dirname -- "$(dirname -- "$(readlink -f "$0")")")" || exit
|
||||
|
||||
for cmd in flake8 isort mypy pylint; do
|
||||
if [[ ! -x "$(which "$cmd")" ]]; then
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
cd "$(dirname -- "$(dirname -- "$(readlink -f "$0")")")"
|
||||
cd "$(dirname -- "$(dirname -- "$(readlink -f "$0")")")" || exit
|
||||
|
||||
for cmd in black autopep8 isort; do
|
||||
if [[ ! -x "$(which "$cmd")" ]]; then
|
||||
|
|
|
@ -4,7 +4,7 @@ from .models import User
|
|||
|
||||
|
||||
class UserAdmin(admin.ModelAdmin):
|
||||
search_fields = ["username", "preferred_name", "last_name"]
|
||||
search_fields = ["username", "first_name", "nickname", "last_name"]
|
||||
list_display = ["username", "last_name", "preferred_name", "last_modified"]
|
||||
list_filter = ["is_senior", "is_student", "accepted_terms", "publish_data"]
|
||||
|
||||
|
@ -20,6 +20,7 @@ class UserAdmin(admin.ModelAdmin):
|
|||
"email",
|
||||
"password",
|
||||
"accepted_terms",
|
||||
"use_nickname",
|
||||
"is_staff",
|
||||
"is_superuser",
|
||||
"is_senior",
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
# Generated by Django 3.2.11 on 2022-01-30 17:12
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("authentication", "0010_user_nickname"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="user",
|
||||
name="use_nickname",
|
||||
field=models.BooleanField(
|
||||
default=False,
|
||||
help_text="If this is set, your nickname will be used to identify you across the site.",
|
||||
verbose_name="Use nickname instead of first name",
|
||||
),
|
||||
),
|
||||
]
|
|
@ -0,0 +1,18 @@
|
|||
# Generated by Django 3.2.12 on 2022-02-09 22:04
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("authentication", "0011_user_use_nickname"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name="user",
|
||||
name="preferred_name",
|
||||
field=models.CharField(blank=True, max_length=30),
|
||||
),
|
||||
]
|
|
@ -0,0 +1,24 @@
|
|||
# Generated by Django 3.2.12 on 2022-02-17 15:02
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("authentication", "0012_user_preferred_name"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name="user",
|
||||
name="GPA",
|
||||
field=models.DecimalField(
|
||||
blank=True,
|
||||
decimal_places=3,
|
||||
help_text="Weighted GPA",
|
||||
max_digits=4,
|
||||
null=True,
|
||||
),
|
||||
),
|
||||
]
|
|
@ -8,12 +8,24 @@ class User(AbstractUser):
|
|||
accepted_terms = models.BooleanField(default=False)
|
||||
graduation_year = models.PositiveSmallIntegerField(null=True)
|
||||
|
||||
GPA = models.FloatField(null=True, blank=True, name="GPA", help_text="Weighted GPA")
|
||||
GPA = models.DecimalField(
|
||||
null=True,
|
||||
blank=True,
|
||||
name="GPA",
|
||||
help_text="Weighted GPA",
|
||||
max_digits=4,
|
||||
decimal_places=3,
|
||||
)
|
||||
|
||||
is_senior = models.BooleanField(default=False)
|
||||
is_student = models.BooleanField(default=False)
|
||||
|
||||
nickname = models.CharField(max_length=30, blank=True)
|
||||
use_nickname = models.BooleanField(
|
||||
default=False,
|
||||
verbose_name="Use nickname instead of first name",
|
||||
help_text="If this is set, your nickname will be used to identify you across the site.",
|
||||
)
|
||||
|
||||
# The rest are used only if a senior
|
||||
publish_data = models.BooleanField(
|
||||
|
@ -35,9 +47,14 @@ class User(AbstractUser):
|
|||
|
||||
last_modified = models.DateTimeField(auto_now=True)
|
||||
|
||||
@property
|
||||
def preferred_name(self):
|
||||
return self.nickname if self.nickname else self.first_name
|
||||
preferred_name = models.CharField(max_length=30, blank=True)
|
||||
|
||||
def get_preferred_name(self):
|
||||
return self.nickname if self.nickname and self.use_nickname else self.first_name
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.preferred_name} {self.last_name}"
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
self.preferred_name = self.get_preferred_name()
|
||||
super().save(*args, **kwargs)
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
# Generated by Django 3.2.9 on 2021-12-06 13:51
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("destinations", "0012_alter_decision_options"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name="decision",
|
||||
name="admission_status",
|
||||
field=models.CharField(
|
||||
choices=[
|
||||
("ADMIT", "Admitted"),
|
||||
("WAITLIST", "Waitlisted"),
|
||||
("WAITLIST_ADMIT", "Waitlist-Admitted"),
|
||||
("WAITLIST_DENY", "Waitlist-Denied"),
|
||||
("DEFER", "Deferred"),
|
||||
("DEFER_ADMIT", "Deferred-Admitted"),
|
||||
("DEFER_DENY", "Deferred-Denied"),
|
||||
("DEFER_WAITLIST", "Deferred-Waitlisted"),
|
||||
("DEFER_WAITLIST_ADMIT", "Deferred-Waitlisted-Admitted"),
|
||||
("DEFER_WAITLIST_DENY", "Deferred-Waitlisted-Denied"),
|
||||
("DENY", "Denied"),
|
||||
("UNKNOWN", "Unknown"),
|
||||
],
|
||||
max_length=20,
|
||||
),
|
||||
),
|
||||
]
|
|
@ -51,6 +51,7 @@ class Decision(models.Model):
|
|||
DEFER_WL_D = "DEFER_WAITLIST_DENY"
|
||||
DEFER = "DEFER"
|
||||
DENY = "DENY"
|
||||
UNKNOWN = "UNKNOWN"
|
||||
|
||||
ADMIT_TYPE_CHOICES = [
|
||||
(ADMIT, "Admitted"),
|
||||
|
@ -64,6 +65,7 @@ class Decision(models.Model):
|
|||
(DEFER_WL_A, "Deferred-Waitlisted-Admitted"),
|
||||
(DEFER_WL_D, "Deferred-Waitlisted-Denied"),
|
||||
(DENY, "Denied"),
|
||||
(UNKNOWN, "Unknown"),
|
||||
]
|
||||
|
||||
admission_status = models.CharField(max_length=20, choices=ADMIT_TYPE_CHOICES)
|
||||
|
|
0
tjdests/apps/destinations/templatetags/__init__.py
Normal file
0
tjdests/apps/destinations/templatetags/__init__.py
Normal file
28
tjdests/apps/destinations/templatetags/markdown.py
Normal file
28
tjdests/apps/destinations/templatetags/markdown.py
Normal file
|
@ -0,0 +1,28 @@
|
|||
import mistune
|
||||
from pygments import highlight
|
||||
from pygments.formatters import html
|
||||
from pygments.lexers import get_lexer_by_name
|
||||
|
||||
from django import template
|
||||
|
||||
register = template.Library()
|
||||
|
||||
|
||||
class HighlightRenderer(mistune.HTMLRenderer):
|
||||
def block_code(self, code, info=None):
|
||||
if info:
|
||||
lexer = get_lexer_by_name(info, stripall=True)
|
||||
formatter = html.HtmlFormatter()
|
||||
return highlight(code, lexer, formatter)
|
||||
return "<pre><code>" + mistune.escape(code) + "</code></pre>"
|
||||
|
||||
|
||||
@register.filter(name="markdown")
|
||||
def convert_markdown(text: str):
|
||||
"""Convert text to markdown HTML."""
|
||||
markdown = mistune.create_markdown(
|
||||
renderer=HighlightRenderer(),
|
||||
plugins=["footnotes", "strikethrough", "table"],
|
||||
escape=False,
|
||||
)
|
||||
return markdown(text)
|
|
@ -27,7 +27,9 @@ class StudentDestinationListView(
|
|||
else:
|
||||
queryset = User.objects.filter(publish_data=True)
|
||||
|
||||
queryset = queryset.filter(is_senior=True).order_by("last_name", "first_name")
|
||||
queryset = queryset.filter(is_senior=True).order_by(
|
||||
"last_name", "preferred_name"
|
||||
)
|
||||
|
||||
college_id: Optional[str] = self.request.GET.get("college", None)
|
||||
if college_id is not None:
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
from decimal import Decimal
|
||||
from typing import Any, Dict
|
||||
|
||||
from crispy_forms.helper import FormHelper
|
||||
|
@ -23,12 +24,23 @@ class ProfilePublishForm(forms.ModelForm):
|
|||
)
|
||||
|
||||
def clean(self) -> Dict[str, Any]:
|
||||
data = self.data.copy()
|
||||
|
||||
# Remove carriage returns from biography
|
||||
if data.get("biography"):
|
||||
data["biography"] = data["biography"].replace("\r", "")
|
||||
self.instance.biography = data["biography"]
|
||||
if len(data["biography"]) <= self.fields["biography"].max_length:
|
||||
if self.errors.get("biography"):
|
||||
del self.errors["biography"]
|
||||
|
||||
self.data = data
|
||||
cleaned_data = super().clean()
|
||||
|
||||
# Check the GPA: 0.0 <= GPA <= 5.0
|
||||
if cleaned_data.get("GPA"):
|
||||
gpa = cleaned_data.get("GPA")
|
||||
assert isinstance(gpa, float)
|
||||
assert isinstance(gpa, Decimal)
|
||||
if not 0.0 <= gpa <= 5.0:
|
||||
self.add_error("GPA", "This is not a valid GPA")
|
||||
|
||||
|
@ -36,10 +48,17 @@ class ProfilePublishForm(forms.ModelForm):
|
|||
|
||||
class Meta:
|
||||
model = User
|
||||
fields = ["publish_data", "GPA", "biography", "attending_decision"]
|
||||
fields = [
|
||||
"nickname",
|
||||
"use_nickname",
|
||||
"publish_data",
|
||||
"GPA",
|
||||
"biography",
|
||||
"attending_decision",
|
||||
]
|
||||
|
||||
help_texts = {
|
||||
"biography": "ECs, intended major, advice, etc.",
|
||||
"biography": "ECs, intended major, advice, etc. Markdown is supported.",
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
from decimal import Decimal
|
||||
|
||||
from django.urls import reverse
|
||||
|
||||
from tjdests.apps.authentication.models import User
|
||||
|
@ -44,7 +46,7 @@ class ProfileTest(TJDestsTestCase):
|
|||
self.assertEqual(
|
||||
1,
|
||||
User.objects.filter(
|
||||
GPA=4.000,
|
||||
GPA=Decimal(4.000),
|
||||
id=user.id,
|
||||
biography="hello",
|
||||
attending_decision=None,
|
||||
|
@ -92,7 +94,7 @@ class ProfileTest(TJDestsTestCase):
|
|||
1,
|
||||
User.objects.filter(
|
||||
id=user.id,
|
||||
GPA=3.141,
|
||||
GPA=Decimal(3.141),
|
||||
biography="hello2",
|
||||
attending_decision=decision,
|
||||
publish_data=True,
|
||||
|
@ -123,13 +125,26 @@ class ProfileTest(TJDestsTestCase):
|
|||
1,
|
||||
User.objects.filter(
|
||||
id=user.id,
|
||||
GPA=3.141,
|
||||
GPA=Decimal(3.141),
|
||||
biography="hello2",
|
||||
attending_decision=decision,
|
||||
publish_data=True,
|
||||
).count(),
|
||||
)
|
||||
|
||||
# Test nickname/preferred name feature
|
||||
user = self.login(accept_tos=True, make_student=True)
|
||||
user.first_name = "Dank"
|
||||
user.nickname = "Memer"
|
||||
# Should use nickname ("Memer") if option set
|
||||
user.use_nickname = True
|
||||
user.save()
|
||||
self.assertEqual("Memer", user.preferred_name)
|
||||
# Should use first name ("Dank") if option not set
|
||||
user.use_nickname = False
|
||||
user.save()
|
||||
self.assertEqual("Dank", user.preferred_name)
|
||||
|
||||
def test_testscore_create(self):
|
||||
"""Tests creating test scores."""
|
||||
|
||||
|
|
104
tjdests/static/bios.css
Normal file
104
tjdests/static/bios.css
Normal file
|
@ -0,0 +1,104 @@
|
|||
div#biography h1 {
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
div#biography h2 {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
div#biography h3 {
|
||||
font-size: 1.4rem;
|
||||
}
|
||||
|
||||
div#biography h4 {
|
||||
font-size: 1.3rem;
|
||||
}
|
||||
|
||||
div#biography h5 {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
div#biography h6 {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
/* Syntax highlighting */
|
||||
pre { line-height: 125%; }
|
||||
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
|
||||
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
|
||||
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
|
||||
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
|
||||
.hll { background-color: #ffffcc }
|
||||
pre { background: #f8f8f8; }
|
||||
.c { color: #408080; font-style: italic } /* Comment */
|
||||
.err { border: 1px solid #FF0000 } /* Error */
|
||||
.k { color: #008000; font-weight: bold } /* Keyword */
|
||||
.o { color: #666666 } /* Operator */
|
||||
.ch { color: #408080; font-style: italic } /* Comment.Hashbang */
|
||||
.cm { color: #408080; font-style: italic } /* Comment.Multiline */
|
||||
.cp { color: #BC7A00 } /* Comment.Preproc */
|
||||
.cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */
|
||||
.c1 { color: #408080; font-style: italic } /* Comment.Single */
|
||||
.cs { color: #408080; font-style: italic } /* Comment.Special */
|
||||
.gd { color: #A00000 } /* Generic.Deleted */
|
||||
.ge { font-style: italic } /* Generic.Emph */
|
||||
.gr { color: #FF0000 } /* Generic.Error */
|
||||
.gh { color: #000080; font-weight: bold } /* Generic.Heading */
|
||||
.gi { color: #00A000 } /* Generic.Inserted */
|
||||
.go { color: #888888 } /* Generic.Output */
|
||||
.gp { color: #000080; font-weight: bold } /* Generic.Prompt */
|
||||
.gs { font-weight: bold } /* Generic.Strong */
|
||||
.gu { color: #800080; font-weight: bold } /* Generic.Subheading */
|
||||
.gt { color: #0044DD } /* Generic.Traceback */
|
||||
.kc { color: #008000; font-weight: bold } /* Keyword.Constant */
|
||||
.kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
|
||||
.kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
|
||||
.kp { color: #008000 } /* Keyword.Pseudo */
|
||||
.kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
|
||||
.kt { color: #B00040 } /* Keyword.Type */
|
||||
.m { color: #666666 } /* Literal.Number */
|
||||
.s { color: #BA2121 } /* Literal.String */
|
||||
.na { color: #7D9029 } /* Name.Attribute */
|
||||
.nb { color: #008000 } /* Name.Builtin */
|
||||
.nc { color: #0000FF; font-weight: bold } /* Name.Class */
|
||||
.no { color: #880000 } /* Name.Constant */
|
||||
.nd { color: #AA22FF } /* Name.Decorator */
|
||||
.ni { color: #999999; font-weight: bold } /* Name.Entity */
|
||||
.ne { color: #D2413A; font-weight: bold } /* Name.Exception */
|
||||
.nf { color: #0000FF } /* Name.Function */
|
||||
.nl { color: #A0A000 } /* Name.Label */
|
||||
.nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
|
||||
.nt { color: #008000; font-weight: bold } /* Name.Tag */
|
||||
.nv { color: #19177C } /* Name.Variable */
|
||||
.ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
|
||||
.w { color: #bbbbbb } /* Text.Whitespace */
|
||||
.mb { color: #666666 } /* Literal.Number.Bin */
|
||||
.mf { color: #666666 } /* Literal.Number.Float */
|
||||
.mh { color: #666666 } /* Literal.Number.Hex */
|
||||
.mi { color: #666666 } /* Literal.Number.Integer */
|
||||
.mo { color: #666666 } /* Literal.Number.Oct */
|
||||
.sa { color: #BA2121 } /* Literal.String.Affix */
|
||||
.sb { color: #BA2121 } /* Literal.String.Backtick */
|
||||
.sc { color: #BA2121 } /* Literal.String.Char */
|
||||
.dl { color: #BA2121 } /* Literal.String.Delimiter */
|
||||
.sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
|
||||
.s2 { color: #BA2121 } /* Literal.String.Double */
|
||||
.se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
|
||||
.sh { color: #BA2121 } /* Literal.String.Heredoc */
|
||||
.si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
|
||||
.sx { color: #008000 } /* Literal.String.Other */
|
||||
.sr { color: #BB6688 } /* Literal.String.Regex */
|
||||
.s1 { color: #BA2121 } /* Literal.String.Single */
|
||||
.ss { color: #19177C } /* Literal.String.Symbol */
|
||||
.bp { color: #008000 } /* Name.Builtin.Pseudo */
|
||||
.fm { color: #0000FF } /* Name.Function.Magic */
|
||||
.vc { color: #19177C } /* Name.Variable.Class */
|
||||
.vg { color: #19177C } /* Name.Variable.Global */
|
||||
.vi { color: #19177C } /* Name.Variable.Instance */
|
||||
.vm { color: #19177C } /* Name.Variable.Magic */
|
||||
.il { color: #666666 } /* Literal.Number.Integer.Long */
|
||||
|
||||
small#count {
|
||||
float: right;
|
||||
text-align: right;
|
||||
}
|
|
@ -15,4 +15,15 @@ $(document).ready(function(){
|
|||
$(this).prop("checked", confirmreturn)
|
||||
}
|
||||
})
|
||||
|
||||
function characterCount() {
|
||||
return $("#id_biography").val().length.toString() + "/1500 characters";
|
||||
}
|
||||
|
||||
$("#div_id_biography").append("<small id=\"count\" class=\"form-text text-muted\"></small>");
|
||||
$("#count").text(characterCount());
|
||||
|
||||
$("#id_biography").keyup(function(){
|
||||
$("#count").text(characterCount());
|
||||
});
|
||||
})
|
|
@ -15,6 +15,7 @@
|
|||
|
||||
<script src="{% static "tom-select.complete.min.js" %}" integrity="sha384-Hnof5Csstpcrk+thlHZ8VXXkD/Wk96gkCvwIvpwYLBVIAPyQA3gkqcPO+RwLARmZ"></script>
|
||||
<link rel="stylesheet" href="{% static "tom-select.bootstrap5.css" %}" integrity="sha384-3syGtcTzvEB6zjzJ4BQ2loMdsaYaxAjWjD3GcbCLAPAE2XkENSR94WcY8c3g5lNu" />
|
||||
<link href="{% static "bios.css" %}" rel="stylesheet">
|
||||
|
||||
<script src="{% static "main.js" %}"></script>
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{% extends "base.html" %}
|
||||
|
||||
{% load bootstrap_pagination %}
|
||||
{% load markdown %}
|
||||
|
||||
{% block content %}
|
||||
<h2>Student Destinations</h2>
|
||||
|
@ -36,20 +37,20 @@
|
|||
<div class="table-responsive">
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">Name</th>
|
||||
<th scope="col">GPA</th>
|
||||
<th scope="col">Test scores</th>
|
||||
<th scope="col">Biography</th>
|
||||
<th scope="col">Decisions</th>
|
||||
<tr class="d-flex">
|
||||
<th scope="col" class="col-1">Name</th>
|
||||
<th scope="col" class="col-1">GPA</th>
|
||||
<th scope="col" class="col-3">Test scores</th>
|
||||
<th scope="col" class="col-4">Biography</th>
|
||||
<th scope="col" class="col-3">Decisions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for senior in object_list %}
|
||||
<tr>
|
||||
<td>{{ senior }}</td>
|
||||
<td>{{ senior.GPA|stringformat:".3f" }}</td>
|
||||
<td>
|
||||
<tr class="d-flex">
|
||||
<td class="col-1">{{ senior }}</td>
|
||||
<td class="col-1">{% firstof senior.GPA "" %}</td>
|
||||
<td class="col-3">
|
||||
{# Test scores #}
|
||||
<table class="table table-sm">
|
||||
<thead>
|
||||
|
@ -73,8 +74,8 @@
|
|||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<td class="text-wrap text-break" style="max-width: 400px;">{{ senior.biography|striptags|linebreaks }}</td>
|
||||
<td>
|
||||
<td class="text-wrap text-break col-4" style="min-width: 25%;"><div id="biography">{{ senior.biography|markdown|safe }}</div></td>
|
||||
<td class="col-3">
|
||||
{# Decisions #}
|
||||
<table class="table table-sm">
|
||||
<thead>
|
||||
|
@ -110,6 +111,10 @@
|
|||
{% if "DENY" in decision.admission_status %}
|
||||
<i class="fas fa-times ps-1" data-toggle="tooltip" title="Denied" aria-label="Denied"></i>
|
||||
{% endif %}
|
||||
{# Unknown #}
|
||||
{% if "UNKNOWN" in decision.admission_status %}
|
||||
<i class="fas fa-question ps-1" data-toggle="tooltip" title="Unknown" aria-label="Unknown"></i>
|
||||
{% endif %}
|
||||
</div>
|
||||
</td>
|
||||
<td>{{ decision.college.name }}<br>{{ decision.college.location }}</td>
|
||||
|
|
|
@ -4,9 +4,12 @@
|
|||
|
||||
{% block content %}
|
||||
<h2>Profile</h2>
|
||||
<p>You are {{ request.user.username }}, {{ request.user.preferred_name }} {{ request.user.last_name }}.</p>
|
||||
|
||||
<h4>Data Publication, College Attending, Biography</h4>
|
||||
{% if request.user.nickname %}
|
||||
<p id="with-nickname">You are {{ request.user.username }}, {{ request.user.first_name }} {{ request.user.last_name }} ({{ request.user.nickname }}).</p>
|
||||
{% else %}
|
||||
<p id="without-nickname">You are {{ request.user.username }}, {{ request.user.first_name }} {{ request.user.last_name }}.</p>
|
||||
{% endif %}
|
||||
<h4>Personal Information, Data Publication, College Attending, Biography</h4>
|
||||
<div class="container">
|
||||
{% if request.user.is_senior %}
|
||||
{% crispy profile_form %}
|
||||
|
|
Loading…
Reference in New Issue
Block a user