From c92d80c7fdf7ab2e3bec75999e7715c36f49fa96 Mon Sep 17 00:00:00 2001 From: Keannu Bernasol Date: Mon, 23 Oct 2023 21:09:46 +0800 Subject: [PATCH] Initial commit --- .vscode/settings.json | 6 + Pipfile | 17 + Pipfile.lock | 392 + equipment_tracker/.env | 20 + equipment_tracker/api/__init__.py | 0 equipment_tracker/api/urls.py | 5 + equipment_tracker/config/__init__.py | 0 equipment_tracker/config/asgi.py | 16 + equipment_tracker/config/settings.py | 203 + equipment_tracker/config/urls.py | 23 + equipment_tracker/config/wsgi.py | 16 + equipment_tracker/db.sqlite3 | Bin 0 -> 131072 bytes equipment_tracker/manage.py | 22 + .../admin/css/autocomplete.4a81fc4242d0.css | 275 + .../css/autocomplete.4a81fc4242d0.css.gz | Bin 0 -> 1147 bytes .../static/admin/css/autocomplete.css | 275 + .../static/admin/css/autocomplete.css.gz | Bin 0 -> 1147 bytes .../static/admin/css/base.64976e0f7339.css | 1138 ++ .../static/admin/css/base.64976e0f7339.css.gz | Bin 0 -> 4847 bytes equipment_tracker/static/admin/css/base.css | 1138 ++ .../static/admin/css/base.css.gz | Bin 0 -> 4737 bytes .../admin/css/changelists.9237a1ac391b.css | 328 + .../admin/css/changelists.9237a1ac391b.css.gz | Bin 0 -> 1564 bytes .../static/admin/css/changelists.css | 328 + .../static/admin/css/changelists.css.gz | Bin 0 -> 1564 bytes .../static/admin/css/dark_mode.css | 137 + .../static/admin/css/dark_mode.css.gz | Bin 0 -> 849 bytes .../admin/css/dark_mode.ef27a31af300.css | 137 + .../admin/css/dark_mode.ef27a31af300.css.gz | Bin 0 -> 849 bytes .../static/admin/css/dashboard.css | 29 + .../static/admin/css/dashboard.css.gz | Bin 0 -> 267 bytes .../admin/css/dashboard.e90f2068217b.css | 29 + .../admin/css/dashboard.e90f2068217b.css.gz | Bin 0 -> 267 bytes .../static/admin/css/forms.3b181cba6653.css | 530 + .../admin/css/forms.3b181cba6653.css.gz | Bin 0 -> 2236 bytes equipment_tracker/static/admin/css/forms.css | 530 + .../static/admin/css/forms.css.gz | Bin 0 -> 2199 bytes .../static/admin/css/login.586129c60a93.css | 61 + .../admin/css/login.586129c60a93.css.gz | Bin 0 -> 417 bytes equipment_tracker/static/admin/css/login.css | 61 + .../static/admin/css/login.css.gz | Bin 0 -> 417 bytes .../admin/css/nav_sidebar.269a1bd44627.css | 144 + .../admin/css/nav_sidebar.269a1bd44627.css.gz | Bin 0 -> 779 bytes .../static/admin/css/nav_sidebar.css | 144 + .../static/admin/css/nav_sidebar.css.gz | Bin 0 -> 779 bytes .../admin/css/responsive.107cd2690311.css | 998 ++ .../admin/css/responsive.107cd2690311.css.gz | Bin 0 -> 3432 bytes .../static/admin/css/responsive.css | 998 ++ .../static/admin/css/responsive.css.gz | Bin 0 -> 3432 bytes .../admin/css/responsive_rtl.97b066429fd8.css | 81 + .../css/responsive_rtl.97b066429fd8.css.gz | Bin 0 -> 527 bytes .../static/admin/css/responsive_rtl.css | 81 + .../static/admin/css/responsive_rtl.css.gz | Bin 0 -> 527 bytes .../static/admin/css/rtl.4685390ad96d.css | 288 + .../static/admin/css/rtl.4685390ad96d.css.gz | Bin 0 -> 1256 bytes equipment_tracker/static/admin/css/rtl.css | 288 + equipment_tracker/static/admin/css/rtl.css.gz | Bin 0 -> 1229 bytes .../select2/LICENSE-SELECT2.f94142512c91.md | 21 + .../LICENSE-SELECT2.f94142512c91.md.gz | Bin 0 -> 685 bytes .../css/vendor/select2/LICENSE-SELECT2.md | 21 + .../css/vendor/select2/LICENSE-SELECT2.md.gz | Bin 0 -> 685 bytes .../vendor/select2/select2.a2194c262648.css | 481 + .../select2/select2.a2194c262648.css.gz | Bin 0 -> 2232 bytes .../admin/css/vendor/select2/select2.css | 481 + .../admin/css/vendor/select2/select2.css.gz | Bin 0 -> 2232 bytes .../select2/select2.min.9f54e6414f87.css | 1 + .../select2/select2.min.9f54e6414f87.css.gz | Bin 0 -> 1978 bytes .../admin/css/vendor/select2/select2.min.css | 1 + .../css/vendor/select2/select2.min.css.gz | Bin 0 -> 1978 bytes .../static/admin/css/widgets.0a3765e806b3.css | 603 + .../admin/css/widgets.0a3765e806b3.css.gz | Bin 0 -> 2561 bytes .../static/admin/css/widgets.css | 603 + .../static/admin/css/widgets.css.gz | Bin 0 -> 2468 bytes equipment_tracker/static/admin/img/LICENSE | 20 + .../static/admin/img/LICENSE.2c54f4e1ca1c | 20 + .../static/admin/img/LICENSE.2c54f4e1ca1c.gz | Bin 0 -> 656 bytes equipment_tracker/static/admin/img/LICENSE.gz | Bin 0 -> 656 bytes .../static/admin/img/README.a70711a38d87.txt | 7 + .../admin/img/README.a70711a38d87.txt.gz | Bin 0 -> 214 bytes equipment_tracker/static/admin/img/README.txt | 7 + .../static/admin/img/README.txt.gz | Bin 0 -> 214 bytes .../admin/img/calendar-icons.39b290681a8b.svg | 14 + .../img/calendar-icons.39b290681a8b.svg.gz | Bin 0 -> 385 bytes .../static/admin/img/calendar-icons.svg | 14 + .../static/admin/img/calendar-icons.svg.gz | Bin 0 -> 385 bytes .../img/gis/move_vertex_off.7a23bf31ef8a.svg | 1 + .../gis/move_vertex_off.7a23bf31ef8a.svg.gz | Bin 0 -> 470 bytes .../static/admin/img/gis/move_vertex_off.svg | 1 + .../admin/img/gis/move_vertex_off.svg.gz | Bin 0 -> 470 bytes .../img/gis/move_vertex_on.0047eba25b67.svg | 1 + .../gis/move_vertex_on.0047eba25b67.svg.gz | Bin 0 -> 472 bytes .../static/admin/img/gis/move_vertex_on.svg | 1 + .../admin/img/gis/move_vertex_on.svg.gz | Bin 0 -> 472 bytes .../admin/img/icon-addlink.d519b3bab011.svg | 3 + .../img/icon-addlink.d519b3bab011.svg.gz | Bin 0 -> 206 bytes .../static/admin/img/icon-addlink.svg | 3 + .../static/admin/img/icon-addlink.svg.gz | Bin 0 -> 206 bytes .../admin/img/icon-alert.034cc7d8a67f.svg | 3 + .../admin/img/icon-alert.034cc7d8a67f.svg.gz | Bin 0 -> 329 bytes .../static/admin/img/icon-alert.svg | 3 + .../static/admin/img/icon-alert.svg.gz | Bin 0 -> 329 bytes .../admin/img/icon-calendar.ac7aea671bea.svg | 9 + .../img/icon-calendar.ac7aea671bea.svg.gz | Bin 0 -> 438 bytes .../static/admin/img/icon-calendar.svg | 9 + .../static/admin/img/icon-calendar.svg.gz | Bin 0 -> 438 bytes .../img/icon-changelink.18d2fd706348.svg | 3 + .../img/icon-changelink.18d2fd706348.svg.gz | Bin 0 -> 269 bytes .../static/admin/img/icon-changelink.svg | 3 + .../static/admin/img/icon-changelink.svg.gz | Bin 0 -> 269 bytes .../admin/img/icon-clock.e1d4dfac3f2b.svg | 9 + .../admin/img/icon-clock.e1d4dfac3f2b.svg.gz | Bin 0 -> 357 bytes .../static/admin/img/icon-clock.svg | 9 + .../static/admin/img/icon-clock.svg.gz | Bin 0 -> 357 bytes .../img/icon-deletelink.564ef9dc3854.svg | 3 + .../img/icon-deletelink.564ef9dc3854.svg.gz | Bin 0 -> 221 bytes .../static/admin/img/icon-deletelink.svg | 3 + .../static/admin/img/icon-deletelink.svg.gz | Bin 0 -> 221 bytes .../static/admin/img/icon-no.439e821418cd.svg | 3 + .../admin/img/icon-no.439e821418cd.svg.gz | Bin 0 -> 297 bytes .../static/admin/img/icon-no.svg | 3 + .../static/admin/img/icon-no.svg.gz | Bin 0 -> 297 bytes .../img/icon-unknown-alt.81536e128bb6.svg | 3 + .../img/icon-unknown-alt.81536e128bb6.svg.gz | Bin 0 -> 377 bytes .../static/admin/img/icon-unknown-alt.svg | 3 + .../static/admin/img/icon-unknown-alt.svg.gz | Bin 0 -> 377 bytes .../admin/img/icon-unknown.a18cb4398978.svg | 3 + .../img/icon-unknown.a18cb4398978.svg.gz | Bin 0 -> 377 bytes .../static/admin/img/icon-unknown.svg | 3 + .../static/admin/img/icon-unknown.svg.gz | Bin 0 -> 377 bytes .../admin/img/icon-viewlink.41eb31f7826e.svg | 3 + .../img/icon-viewlink.41eb31f7826e.svg.gz | Bin 0 -> 346 bytes .../static/admin/img/icon-viewlink.svg | 3 + .../static/admin/img/icon-viewlink.svg.gz | Bin 0 -> 346 bytes .../admin/img/icon-yes.d2f9f035226a.svg | 3 + .../admin/img/icon-yes.d2f9f035226a.svg.gz | Bin 0 -> 266 bytes .../static/admin/img/icon-yes.svg | 3 + .../static/admin/img/icon-yes.svg.gz | Bin 0 -> 266 bytes .../admin/img/inline-delete.fec1b761f254.svg | 3 + .../img/inline-delete.fec1b761f254.svg.gz | Bin 0 -> 293 bytes .../static/admin/img/inline-delete.svg | 3 + .../static/admin/img/inline-delete.svg.gz | Bin 0 -> 293 bytes .../static/admin/img/search.7cf54ff789c6.svg | 3 + .../admin/img/search.7cf54ff789c6.svg.gz | Bin 0 -> 264 bytes equipment_tracker/static/admin/img/search.svg | 3 + .../static/admin/img/search.svg.gz | Bin 0 -> 264 bytes .../admin/img/selector-icons.b4555096cea2.svg | 34 + .../img/selector-icons.b4555096cea2.svg.gz | Bin 0 -> 770 bytes .../static/admin/img/selector-icons.svg | 34 + .../static/admin/img/selector-icons.svg.gz | Bin 0 -> 770 bytes .../admin/img/sorting-icons.3a097b59f104.svg | 19 + .../img/sorting-icons.3a097b59f104.svg.gz | Bin 0 -> 366 bytes .../static/admin/img/sorting-icons.svg | 19 + .../static/admin/img/sorting-icons.svg.gz | Bin 0 -> 366 bytes .../admin/img/tooltag-add.e59d620a9742.svg | 3 + .../admin/img/tooltag-add.e59d620a9742.svg.gz | Bin 0 -> 203 bytes .../static/admin/img/tooltag-add.svg | 3 + .../static/admin/img/tooltag-add.svg.gz | Bin 0 -> 203 bytes .../img/tooltag-arrowright.bbfb788a849e.svg | 3 + .../tooltag-arrowright.bbfb788a849e.svg.gz | Bin 0 -> 194 bytes .../static/admin/img/tooltag-arrowright.svg | 3 + .../admin/img/tooltag-arrowright.svg.gz | Bin 0 -> 194 bytes .../static/admin/js/SelectBox.7d3ce5a98007.js | 116 + .../admin/js/SelectBox.7d3ce5a98007.js.gz | Bin 0 -> 1025 bytes .../static/admin/js/SelectBox.js | 116 + .../static/admin/js/SelectBox.js.gz | Bin 0 -> 1025 bytes .../admin/js/SelectFilter2.bdb8d0cc579e.js | 283 + .../admin/js/SelectFilter2.bdb8d0cc579e.js.gz | Bin 0 -> 2914 bytes .../static/admin/js/SelectFilter2.js | 283 + .../static/admin/js/SelectFilter2.js.gz | Bin 0 -> 2914 bytes .../static/admin/js/actions.eac7e3441574.js | 201 + .../admin/js/actions.eac7e3441574.js.gz | Bin 0 -> 1874 bytes equipment_tracker/static/admin/js/actions.js | 201 + .../static/admin/js/actions.js.gz | Bin 0 -> 1874 bytes .../admin/DateTimeShortcuts.9f6e209cebca.js | 408 + .../DateTimeShortcuts.9f6e209cebca.js.gz | Bin 0 -> 3645 bytes .../admin/js/admin/DateTimeShortcuts.js | 408 + .../admin/js/admin/DateTimeShortcuts.js.gz | Bin 0 -> 3645 bytes .../RelatedObjectLookups.8609f99b9ab2.js | 238 + .../RelatedObjectLookups.8609f99b9ab2.js.gz | Bin 0 -> 2301 bytes .../admin/js/admin/RelatedObjectLookups.js | 238 + .../admin/js/admin/RelatedObjectLookups.js.gz | Bin 0 -> 2301 bytes .../admin/js/autocomplete.01591ab27be7.js | 33 + .../admin/js/autocomplete.01591ab27be7.js.gz | Bin 0 -> 425 bytes .../static/admin/js/autocomplete.js | 33 + .../static/admin/js/autocomplete.js.gz | Bin 0 -> 425 bytes .../static/admin/js/calendar.f8a5d055eb33.js | 221 + .../admin/js/calendar.f8a5d055eb33.js.gz | Bin 0 -> 2193 bytes equipment_tracker/static/admin/js/calendar.js | 221 + .../static/admin/js/calendar.js.gz | Bin 0 -> 2193 bytes .../static/admin/js/cancel.ecc4c5ca7b32.js | 29 + .../static/admin/js/cancel.ecc4c5ca7b32.js.gz | Bin 0 -> 430 bytes equipment_tracker/static/admin/js/cancel.js | 29 + .../static/admin/js/cancel.js.gz | Bin 0 -> 430 bytes .../admin/js/change_form.9d8ca4f96b75.js | 16 + .../admin/js/change_form.9d8ca4f96b75.js.gz | Bin 0 -> 322 bytes .../static/admin/js/change_form.js | 16 + .../static/admin/js/change_form.js.gz | Bin 0 -> 322 bytes .../static/admin/js/collapse.f84e7410290f.js | 43 + .../admin/js/collapse.f84e7410290f.js.gz | Bin 0 -> 614 bytes equipment_tracker/static/admin/js/collapse.js | 43 + .../static/admin/js/collapse.js.gz | Bin 0 -> 614 bytes .../static/admin/js/core.cf103cd04ebf.js | 170 + .../static/admin/js/core.cf103cd04ebf.js.gz | Bin 0 -> 1505 bytes equipment_tracker/static/admin/js/core.js | 170 + equipment_tracker/static/admin/js/core.js.gz | Bin 0 -> 1505 bytes .../static/admin/js/filters.0e360b7a9f80.js | 30 + .../admin/js/filters.0e360b7a9f80.js.gz | Bin 0 -> 502 bytes equipment_tracker/static/admin/js/filters.js | 30 + .../static/admin/js/filters.js.gz | Bin 0 -> 502 bytes .../static/admin/js/inlines.22d4d93c00b4.js | 359 + .../admin/js/inlines.22d4d93c00b4.js.gz | Bin 0 -> 3744 bytes equipment_tracker/static/admin/js/inlines.js | 359 + .../static/admin/js/inlines.js.gz | Bin 0 -> 3744 bytes .../admin/js/jquery.init.b7781a0897fc.js | 8 + .../admin/js/jquery.init.b7781a0897fc.js.gz | Bin 0 -> 236 bytes .../static/admin/js/jquery.init.js | 8 + .../static/admin/js/jquery.init.js.gz | Bin 0 -> 236 bytes .../admin/js/nav_sidebar.3b9190d420b1.js | 79 + .../admin/js/nav_sidebar.3b9190d420b1.js.gz | Bin 0 -> 845 bytes .../static/admin/js/nav_sidebar.js | 79 + .../static/admin/js/nav_sidebar.js.gz | Bin 0 -> 845 bytes .../admin/js/popup_response.c6cc78ea5551.js | 16 + .../js/popup_response.c6cc78ea5551.js.gz | Bin 0 -> 270 bytes .../static/admin/js/popup_response.js | 16 + .../static/admin/js/popup_response.js.gz | Bin 0 -> 270 bytes .../admin/js/prepopulate.bd2361dfd64d.js | 43 + .../admin/js/prepopulate.bd2361dfd64d.js.gz | Bin 0 -> 536 bytes .../static/admin/js/prepopulate.js | 43 + .../static/admin/js/prepopulate.js.gz | Bin 0 -> 536 bytes .../admin/js/prepopulate_init.6cac7f3105b8.js | 15 + .../js/prepopulate_init.6cac7f3105b8.js.gz | Bin 0 -> 277 bytes .../static/admin/js/prepopulate_init.js | 15 + .../static/admin/js/prepopulate_init.js.gz | Bin 0 -> 277 bytes .../static/admin/js/theme.ab270f56bb9c.js | 56 + .../static/admin/js/theme.ab270f56bb9c.js.gz | Bin 0 -> 605 bytes equipment_tracker/static/admin/js/theme.js | 56 + equipment_tracker/static/admin/js/theme.js.gz | Bin 0 -> 605 bytes .../static/admin/js/urlify.ae970a820212.js | 169 + .../static/admin/js/urlify.ae970a820212.js.gz | Bin 0 -> 2578 bytes equipment_tracker/static/admin/js/urlify.js | 169 + .../static/admin/js/urlify.js.gz | Bin 0 -> 2578 bytes .../js/vendor/jquery/LICENSE.de877aa6d744.txt | 20 + .../vendor/jquery/LICENSE.de877aa6d744.txt.gz | Bin 0 -> 656 bytes .../static/admin/js/vendor/jquery/LICENSE.txt | 20 + .../admin/js/vendor/jquery/LICENSE.txt.gz | Bin 0 -> 656 bytes .../js/vendor/jquery/jquery.0208b96062ba.js | 10965 ++++++++++++++++ .../vendor/jquery/jquery.0208b96062ba.js.gz | Bin 0 -> 86002 bytes .../static/admin/js/vendor/jquery/jquery.js | 10965 ++++++++++++++++ .../admin/js/vendor/jquery/jquery.js.gz | Bin 0 -> 86002 bytes .../vendor/jquery/jquery.min.641dd1437010.js | 2 + .../jquery/jquery.min.641dd1437010.js.gz | Bin 0 -> 31011 bytes .../admin/js/vendor/jquery/jquery.min.js | 2 + .../admin/js/vendor/jquery/jquery.min.js.gz | Bin 0 -> 31011 bytes .../js/vendor/select2/LICENSE.f94142512c91.md | 21 + .../vendor/select2/LICENSE.f94142512c91.md.gz | Bin 0 -> 685 bytes .../static/admin/js/vendor/select2/LICENSE.md | 21 + .../admin/js/vendor/select2/LICENSE.md.gz | Bin 0 -> 685 bytes .../js/vendor/select2/i18n/af.4f6fcd73488c.js | 3 + .../vendor/select2/i18n/af.4f6fcd73488c.js.gz | Bin 0 -> 460 bytes .../static/admin/js/vendor/select2/i18n/af.js | 3 + .../admin/js/vendor/select2/i18n/af.js.gz | Bin 0 -> 460 bytes .../js/vendor/select2/i18n/ar.65aa8e36bf5d.js | 3 + .../vendor/select2/i18n/ar.65aa8e36bf5d.js.gz | Bin 0 -> 498 bytes .../static/admin/js/vendor/select2/i18n/ar.js | 3 + .../admin/js/vendor/select2/i18n/ar.js.gz | Bin 0 -> 498 bytes .../js/vendor/select2/i18n/az.270c257daf81.js | 3 + .../vendor/select2/i18n/az.270c257daf81.js.gz | Bin 0 -> 413 bytes .../static/admin/js/vendor/select2/i18n/az.js | 3 + .../admin/js/vendor/select2/i18n/az.js.gz | Bin 0 -> 413 bytes .../js/vendor/select2/i18n/bg.39b8be30d4f0.js | 3 + .../vendor/select2/i18n/bg.39b8be30d4f0.js.gz | Bin 0 -> 541 bytes .../static/admin/js/vendor/select2/i18n/bg.js | 3 + .../admin/js/vendor/select2/i18n/bg.js.gz | Bin 0 -> 541 bytes .../js/vendor/select2/i18n/bn.6d42b4dd5665.js | 3 + .../vendor/select2/i18n/bn.6d42b4dd5665.js.gz | Bin 0 -> 553 bytes .../static/admin/js/vendor/select2/i18n/bn.js | 3 + .../admin/js/vendor/select2/i18n/bn.js.gz | Bin 0 -> 553 bytes .../js/vendor/select2/i18n/bs.91624382358e.js | 3 + .../vendor/select2/i18n/bs.91624382358e.js.gz | Bin 0 -> 523 bytes .../static/admin/js/vendor/select2/i18n/bs.js | 3 + .../admin/js/vendor/select2/i18n/bs.js.gz | Bin 0 -> 523 bytes .../js/vendor/select2/i18n/ca.a166b745933a.js | 3 + .../vendor/select2/i18n/ca.a166b745933a.js.gz | Bin 0 -> 470 bytes .../static/admin/js/vendor/select2/i18n/ca.js | 3 + .../admin/js/vendor/select2/i18n/ca.js.gz | Bin 0 -> 470 bytes .../js/vendor/select2/i18n/cs.4f43e8e7d33a.js | 3 + .../vendor/select2/i18n/cs.4f43e8e7d33a.js.gz | Bin 0 -> 623 bytes .../static/admin/js/vendor/select2/i18n/cs.js | 3 + .../admin/js/vendor/select2/i18n/cs.js.gz | Bin 0 -> 623 bytes .../js/vendor/select2/i18n/da.766346afe4dd.js | 3 + .../vendor/select2/i18n/da.766346afe4dd.js.gz | Bin 0 -> 441 bytes .../static/admin/js/vendor/select2/i18n/da.js | 3 + .../admin/js/vendor/select2/i18n/da.js.gz | Bin 0 -> 441 bytes .../js/vendor/select2/i18n/de.8a1c222b0204.js | 3 + .../vendor/select2/i18n/de.8a1c222b0204.js.gz | Bin 0 -> 467 bytes .../static/admin/js/vendor/select2/i18n/de.js | 3 + .../admin/js/vendor/select2/i18n/de.js.gz | Bin 0 -> 467 bytes .../vendor/select2/i18n/dsb.56372c92d2f1.js | 3 + .../select2/i18n/dsb.56372c92d2f1.js.gz | Bin 0 -> 551 bytes .../admin/js/vendor/select2/i18n/dsb.js | 3 + .../admin/js/vendor/select2/i18n/dsb.js.gz | Bin 0 -> 551 bytes .../js/vendor/select2/i18n/el.27097f071856.js | 3 + .../vendor/select2/i18n/el.27097f071856.js.gz | Bin 0 -> 644 bytes .../static/admin/js/vendor/select2/i18n/el.js | 3 + .../admin/js/vendor/select2/i18n/el.js.gz | Bin 0 -> 644 bytes .../js/vendor/select2/i18n/en.cf932ba09a98.js | 3 + .../vendor/select2/i18n/en.cf932ba09a98.js.gz | Bin 0 -> 447 bytes .../static/admin/js/vendor/select2/i18n/en.js | 3 + .../admin/js/vendor/select2/i18n/en.js.gz | Bin 0 -> 447 bytes .../js/vendor/select2/i18n/es.66dbc2652fb1.js | 3 + .../vendor/select2/i18n/es.66dbc2652fb1.js.gz | Bin 0 -> 474 bytes .../static/admin/js/vendor/select2/i18n/es.js | 3 + .../admin/js/vendor/select2/i18n/es.js.gz | Bin 0 -> 474 bytes .../js/vendor/select2/i18n/et.2b96fd98289d.js | 3 + .../vendor/select2/i18n/et.2b96fd98289d.js.gz | Bin 0 -> 432 bytes .../static/admin/js/vendor/select2/i18n/et.js | 3 + .../admin/js/vendor/select2/i18n/et.js.gz | Bin 0 -> 432 bytes .../js/vendor/select2/i18n/eu.adfe5c97b72c.js | 3 + .../vendor/select2/i18n/eu.adfe5c97b72c.js.gz | Bin 0 -> 450 bytes .../static/admin/js/vendor/select2/i18n/eu.js | 3 + .../admin/js/vendor/select2/i18n/eu.js.gz | Bin 0 -> 450 bytes .../js/vendor/select2/i18n/fa.3b5bd1961cfd.js | 3 + .../vendor/select2/i18n/fa.3b5bd1961cfd.js.gz | Bin 0 -> 538 bytes .../static/admin/js/vendor/select2/i18n/fa.js | 3 + .../admin/js/vendor/select2/i18n/fa.js.gz | Bin 0 -> 538 bytes .../js/vendor/select2/i18n/fi.614ec42aa9ba.js | 3 + .../vendor/select2/i18n/fi.614ec42aa9ba.js.gz | Bin 0 -> 429 bytes .../static/admin/js/vendor/select2/i18n/fi.js | 3 + .../admin/js/vendor/select2/i18n/fi.js.gz | Bin 0 -> 429 bytes .../js/vendor/select2/i18n/fr.05e0542fcfe6.js | 3 + .../vendor/select2/i18n/fr.05e0542fcfe6.js.gz | Bin 0 -> 484 bytes .../static/admin/js/vendor/select2/i18n/fr.js | 3 + .../admin/js/vendor/select2/i18n/fr.js.gz | Bin 0 -> 484 bytes .../js/vendor/select2/i18n/gl.d99b1fedaa86.js | 3 + .../vendor/select2/i18n/gl.d99b1fedaa86.js.gz | Bin 0 -> 465 bytes .../static/admin/js/vendor/select2/i18n/gl.js | 3 + .../admin/js/vendor/select2/i18n/gl.js.gz | Bin 0 -> 465 bytes .../js/vendor/select2/i18n/he.e420ff6cd3ed.js | 3 + .../vendor/select2/i18n/he.e420ff6cd3ed.js.gz | Bin 0 -> 518 bytes .../static/admin/js/vendor/select2/i18n/he.js | 3 + .../admin/js/vendor/select2/i18n/he.js.gz | Bin 0 -> 518 bytes .../js/vendor/select2/i18n/hi.70640d41628f.js | 3 + .../vendor/select2/i18n/hi.70640d41628f.js.gz | Bin 0 -> 572 bytes .../static/admin/js/vendor/select2/i18n/hi.js | 3 + .../admin/js/vendor/select2/i18n/hi.js.gz | Bin 0 -> 572 bytes .../js/vendor/select2/i18n/hr.a2b092cc1147.js | 3 + .../vendor/select2/i18n/hr.a2b092cc1147.js.gz | Bin 0 -> 477 bytes .../static/admin/js/vendor/select2/i18n/hr.js | 3 + .../admin/js/vendor/select2/i18n/hr.js.gz | Bin 0 -> 477 bytes .../vendor/select2/i18n/hsb.fa3b55265efe.js | 3 + .../select2/i18n/hsb.fa3b55265efe.js.gz | Bin 0 -> 556 bytes .../admin/js/vendor/select2/i18n/hsb.js | 3 + .../admin/js/vendor/select2/i18n/hsb.js.gz | Bin 0 -> 556 bytes .../js/vendor/select2/i18n/hu.6ec6039cb8a3.js | 3 + .../vendor/select2/i18n/hu.6ec6039cb8a3.js.gz | Bin 0 -> 467 bytes .../static/admin/js/vendor/select2/i18n/hu.js | 3 + .../admin/js/vendor/select2/i18n/hu.js.gz | Bin 0 -> 467 bytes .../js/vendor/select2/i18n/hy.c7babaeef5a6.js | 3 + .../vendor/select2/i18n/hy.c7babaeef5a6.js.gz | Bin 0 -> 530 bytes .../static/admin/js/vendor/select2/i18n/hy.js | 3 + .../admin/js/vendor/select2/i18n/hy.js.gz | Bin 0 -> 530 bytes .../js/vendor/select2/i18n/id.04debded514d.js | 3 + .../vendor/select2/i18n/id.04debded514d.js.gz | Bin 0 -> 416 bytes .../static/admin/js/vendor/select2/i18n/id.js | 3 + .../admin/js/vendor/select2/i18n/id.js.gz | Bin 0 -> 416 bytes .../js/vendor/select2/i18n/is.3ddd9a6a97e9.js | 3 + .../vendor/select2/i18n/is.3ddd9a6a97e9.js.gz | Bin 0 -> 465 bytes .../static/admin/js/vendor/select2/i18n/is.js | 3 + .../admin/js/vendor/select2/i18n/is.js.gz | Bin 0 -> 465 bytes .../js/vendor/select2/i18n/it.be4fe8d365b5.js | 3 + .../vendor/select2/i18n/it.be4fe8d365b5.js.gz | Bin 0 -> 488 bytes .../static/admin/js/vendor/select2/i18n/it.js | 3 + .../admin/js/vendor/select2/i18n/it.js.gz | Bin 0 -> 488 bytes .../js/vendor/select2/i18n/ja.170ae885d74f.js | 3 + .../vendor/select2/i18n/ja.170ae885d74f.js.gz | Bin 0 -> 511 bytes .../static/admin/js/vendor/select2/i18n/ja.js | 3 + .../admin/js/vendor/select2/i18n/ja.js.gz | Bin 0 -> 511 bytes .../js/vendor/select2/i18n/ka.2083264a54f0.js | 3 + .../vendor/select2/i18n/ka.2083264a54f0.js.gz | Bin 0 -> 533 bytes .../static/admin/js/vendor/select2/i18n/ka.js | 3 + .../admin/js/vendor/select2/i18n/ka.js.gz | Bin 0 -> 533 bytes .../js/vendor/select2/i18n/km.c23089cb06ca.js | 3 + .../vendor/select2/i18n/km.c23089cb06ca.js.gz | Bin 0 -> 540 bytes .../static/admin/js/vendor/select2/i18n/km.js | 3 + .../admin/js/vendor/select2/i18n/km.js.gz | Bin 0 -> 540 bytes .../js/vendor/select2/i18n/ko.e7be6c20e673.js | 3 + .../vendor/select2/i18n/ko.e7be6c20e673.js.gz | Bin 0 -> 506 bytes .../static/admin/js/vendor/select2/i18n/ko.js | 3 + .../admin/js/vendor/select2/i18n/ko.js.gz | Bin 0 -> 506 bytes .../js/vendor/select2/i18n/lt.23c7ce903300.js | 3 + .../vendor/select2/i18n/lt.23c7ce903300.js.gz | Bin 0 -> 521 bytes .../static/admin/js/vendor/select2/i18n/lt.js | 3 + .../admin/js/vendor/select2/i18n/lt.js.gz | Bin 0 -> 521 bytes .../js/vendor/select2/i18n/lv.08e62128eac1.js | 3 + .../vendor/select2/i18n/lv.08e62128eac1.js.gz | Bin 0 -> 505 bytes .../static/admin/js/vendor/select2/i18n/lv.js | 3 + .../admin/js/vendor/select2/i18n/lv.js.gz | Bin 0 -> 505 bytes .../js/vendor/select2/i18n/mk.dabbb9087130.js | 3 + .../vendor/select2/i18n/mk.dabbb9087130.js.gz | Bin 0 -> 557 bytes .../static/admin/js/vendor/select2/i18n/mk.js | 3 + .../admin/js/vendor/select2/i18n/mk.js.gz | Bin 0 -> 557 bytes .../js/vendor/select2/i18n/ms.4ba82c9a51ce.js | 3 + .../vendor/select2/i18n/ms.4ba82c9a51ce.js.gz | Bin 0 -> 436 bytes .../static/admin/js/vendor/select2/i18n/ms.js | 3 + .../admin/js/vendor/select2/i18n/ms.js.gz | Bin 0 -> 436 bytes .../js/vendor/select2/i18n/nb.da2fce143f27.js | 3 + .../vendor/select2/i18n/nb.da2fce143f27.js.gz | Bin 0 -> 413 bytes .../static/admin/js/vendor/select2/i18n/nb.js | 3 + .../admin/js/vendor/select2/i18n/nb.js.gz | Bin 0 -> 413 bytes .../js/vendor/select2/i18n/ne.3d79fd3f08db.js | 3 + .../vendor/select2/i18n/ne.3d79fd3f08db.js.gz | Bin 0 -> 591 bytes .../static/admin/js/vendor/select2/i18n/ne.js | 3 + .../admin/js/vendor/select2/i18n/ne.js.gz | Bin 0 -> 591 bytes .../js/vendor/select2/i18n/nl.997868a37ed8.js | 3 + .../vendor/select2/i18n/nl.997868a37ed8.js.gz | Bin 0 -> 469 bytes .../static/admin/js/vendor/select2/i18n/nl.js | 3 + .../admin/js/vendor/select2/i18n/nl.js.gz | Bin 0 -> 469 bytes .../js/vendor/select2/i18n/pl.6031b4f16452.js | 3 + .../vendor/select2/i18n/pl.6031b4f16452.js.gz | Bin 0 -> 524 bytes .../static/admin/js/vendor/select2/i18n/pl.js | 3 + .../admin/js/vendor/select2/i18n/pl.js.gz | Bin 0 -> 524 bytes .../js/vendor/select2/i18n/ps.38dfa47af9e0.js | 3 + .../vendor/select2/i18n/ps.38dfa47af9e0.js.gz | Bin 0 -> 587 bytes .../static/admin/js/vendor/select2/i18n/ps.js | 3 + .../admin/js/vendor/select2/i18n/ps.js.gz | Bin 0 -> 587 bytes .../vendor/select2/i18n/pt-BR.e1b294433e7f.js | 3 + .../select2/i18n/pt-BR.e1b294433e7f.js.gz | Bin 0 -> 486 bytes .../admin/js/vendor/select2/i18n/pt-BR.js | 3 + .../admin/js/vendor/select2/i18n/pt-BR.js.gz | Bin 0 -> 486 bytes .../js/vendor/select2/i18n/pt.33b4a3b44d43.js | 3 + .../vendor/select2/i18n/pt.33b4a3b44d43.js.gz | Bin 0 -> 470 bytes .../static/admin/js/vendor/select2/i18n/pt.js | 3 + .../admin/js/vendor/select2/i18n/pt.js.gz | Bin 0 -> 470 bytes .../js/vendor/select2/i18n/ro.f75cb460ec3b.js | 3 + .../vendor/select2/i18n/ro.f75cb460ec3b.js.gz | Bin 0 -> 511 bytes .../static/admin/js/vendor/select2/i18n/ro.js | 3 + .../admin/js/vendor/select2/i18n/ro.js.gz | Bin 0 -> 511 bytes .../js/vendor/select2/i18n/ru.934aa95f5b5f.js | 3 + .../vendor/select2/i18n/ru.934aa95f5b5f.js.gz | Bin 0 -> 632 bytes .../static/admin/js/vendor/select2/i18n/ru.js | 3 + .../admin/js/vendor/select2/i18n/ru.js.gz | Bin 0 -> 632 bytes .../js/vendor/select2/i18n/sk.33d02cef8d11.js | 3 + .../vendor/select2/i18n/sk.33d02cef8d11.js.gz | Bin 0 -> 617 bytes .../static/admin/js/vendor/select2/i18n/sk.js | 3 + .../admin/js/vendor/select2/i18n/sk.js.gz | Bin 0 -> 617 bytes .../js/vendor/select2/i18n/sl.131a78bc0752.js | 3 + .../vendor/select2/i18n/sl.131a78bc0752.js.gz | Bin 0 -> 487 bytes .../static/admin/js/vendor/select2/i18n/sl.js | 3 + .../admin/js/vendor/select2/i18n/sl.js.gz | Bin 0 -> 487 bytes .../js/vendor/select2/i18n/sq.5636b60d29c9.js | 3 + .../vendor/select2/i18n/sq.5636b60d29c9.js.gz | Bin 0 -> 490 bytes .../static/admin/js/vendor/select2/i18n/sq.js | 3 + .../admin/js/vendor/select2/i18n/sq.js.gz | Bin 0 -> 490 bytes .../select2/i18n/sr-Cyrl.f254bb8c4c7c.js | 3 + .../select2/i18n/sr-Cyrl.f254bb8c4c7c.js.gz | Bin 0 -> 608 bytes .../admin/js/vendor/select2/i18n/sr-Cyrl.js | 3 + .../js/vendor/select2/i18n/sr-Cyrl.js.gz | Bin 0 -> 608 bytes .../js/vendor/select2/i18n/sr.5ed85a48f483.js | 3 + .../vendor/select2/i18n/sr.5ed85a48f483.js.gz | Bin 0 -> 552 bytes .../static/admin/js/vendor/select2/i18n/sr.js | 3 + .../admin/js/vendor/select2/i18n/sr.js.gz | Bin 0 -> 552 bytes .../js/vendor/select2/i18n/sv.7a9c2f71e777.js | 3 + .../vendor/select2/i18n/sv.7a9c2f71e777.js.gz | Bin 0 -> 429 bytes .../static/admin/js/vendor/select2/i18n/sv.js | 3 + .../admin/js/vendor/select2/i18n/sv.js.gz | Bin 0 -> 429 bytes .../js/vendor/select2/i18n/th.f38c20b0221b.js | 3 + .../vendor/select2/i18n/th.f38c20b0221b.js.gz | Bin 0 -> 515 bytes .../static/admin/js/vendor/select2/i18n/th.js | 3 + .../admin/js/vendor/select2/i18n/th.js.gz | Bin 0 -> 515 bytes .../js/vendor/select2/i18n/tk.7c572a68c78f.js | 3 + .../vendor/select2/i18n/tk.7c572a68c78f.js.gz | Bin 0 -> 434 bytes .../static/admin/js/vendor/select2/i18n/tk.js | 3 + .../admin/js/vendor/select2/i18n/tk.js.gz | Bin 0 -> 434 bytes .../js/vendor/select2/i18n/tr.b5a0643d1545.js | 3 + .../vendor/select2/i18n/tr.b5a0643d1545.js.gz | Bin 0 -> 423 bytes .../static/admin/js/vendor/select2/i18n/tr.js | 3 + .../admin/js/vendor/select2/i18n/tr.js.gz | Bin 0 -> 423 bytes .../js/vendor/select2/i18n/uk.8cede7f4803c.js | 3 + .../vendor/select2/i18n/uk.8cede7f4803c.js.gz | Bin 0 -> 626 bytes .../static/admin/js/vendor/select2/i18n/uk.js | 3 + .../admin/js/vendor/select2/i18n/uk.js.gz | Bin 0 -> 626 bytes .../js/vendor/select2/i18n/vi.097a5b75b3e1.js | 3 + .../vendor/select2/i18n/vi.097a5b75b3e1.js.gz | Bin 0 -> 479 bytes .../static/admin/js/vendor/select2/i18n/vi.js | 3 + .../admin/js/vendor/select2/i18n/vi.js.gz | Bin 0 -> 479 bytes .../vendor/select2/i18n/zh-CN.2cff662ec5f9.js | 3 + .../select2/i18n/zh-CN.2cff662ec5f9.js.gz | Bin 0 -> 468 bytes .../admin/js/vendor/select2/i18n/zh-CN.js | 3 + .../admin/js/vendor/select2/i18n/zh-CN.js.gz | Bin 0 -> 468 bytes .../vendor/select2/i18n/zh-TW.04554a227c2b.js | 3 + .../select2/i18n/zh-TW.04554a227c2b.js.gz | Bin 0 -> 451 bytes .../admin/js/vendor/select2/i18n/zh-TW.js | 3 + .../admin/js/vendor/select2/i18n/zh-TW.js.gz | Bin 0 -> 451 bytes .../select2/select2.full.c2afdeda3058.js | 6820 ++++++++++ .../select2/select2.full.c2afdeda3058.js.gz | Bin 0 -> 37925 bytes .../admin/js/vendor/select2/select2.full.js | 6820 ++++++++++ .../js/vendor/select2/select2.full.js.gz | Bin 0 -> 37925 bytes .../select2/select2.full.min.fcd7500d8e13.js | 2 + .../select2.full.min.fcd7500d8e13.js.gz | Bin 0 -> 21986 bytes .../js/vendor/select2/select2.full.min.js | 2 + .../js/vendor/select2/select2.full.min.js.gz | Bin 0 -> 21986 bytes .../vendor/xregexp/LICENSE.bf79e414957a.txt | 21 + .../xregexp/LICENSE.bf79e414957a.txt.gz | Bin 0 -> 679 bytes .../admin/js/vendor/xregexp/LICENSE.txt | 21 + .../admin/js/vendor/xregexp/LICENSE.txt.gz | Bin 0 -> 679 bytes .../js/vendor/xregexp/xregexp.efda034b9537.js | 4652 +++++++ .../vendor/xregexp/xregexp.efda034b9537.js.gz | Bin 0 -> 60899 bytes .../static/admin/js/vendor/xregexp/xregexp.js | 4652 +++++++ .../admin/js/vendor/xregexp/xregexp.js.gz | Bin 0 -> 60899 bytes .../xregexp/xregexp.min.b0439563a5d3.js | 160 + .../xregexp/xregexp.min.b0439563a5d3.js.gz | Bin 0 -> 37609 bytes .../admin/js/vendor/xregexp/xregexp.min.js | 160 + .../admin/js/vendor/xregexp/xregexp.min.js.gz | Bin 0 -> 37609 bytes .../css/bootstrap-theme.min.1d4b05b397c3.css | 6 + .../bootstrap-theme.min.1d4b05b397c3.css.gz | Bin 0 -> 2783 bytes .../css/bootstrap-theme.min.css | 6 + .../bootstrap-theme.min.css.51806092cc05.map | 1 + ...ootstrap-theme.min.css.51806092cc05.map.gz | Bin 0 -> 8032 bytes .../css/bootstrap-theme.min.css.gz | Bin 0 -> 2772 bytes .../css/bootstrap-theme.min.css.map | 1 + .../css/bootstrap-theme.min.css.map.gz | Bin 0 -> 8032 bytes .../css/bootstrap-tweaks.46ed116b0edd.css | 233 + .../css/bootstrap-tweaks.46ed116b0edd.css.gz | Bin 0 -> 1268 bytes .../rest_framework/css/bootstrap-tweaks.css | 233 + .../css/bootstrap-tweaks.css.gz | Bin 0 -> 1256 bytes .../rest_framework/css/bootstrap.min.css | 6 + .../css/bootstrap.min.css.cafbda9c0e9e.map | 1 + .../css/bootstrap.min.css.cafbda9c0e9e.map.gz | Bin 0 -> 94401 bytes .../rest_framework/css/bootstrap.min.css.gz | Bin 0 -> 19586 bytes .../rest_framework/css/bootstrap.min.css.map | 1 + .../css/bootstrap.min.css.map.gz | Bin 0 -> 94401 bytes .../css/bootstrap.min.f17d4516b026.css | 6 + .../css/bootstrap.min.f17d4516b026.css.gz | Bin 0 -> 19657 bytes .../css/default.789dfb5732d7.css | 82 + .../css/default.789dfb5732d7.css.gz | Bin 0 -> 612 bytes .../static/rest_framework/css/default.css | 82 + .../static/rest_framework/css/default.css.gz | Bin 0 -> 612 bytes .../css/font-awesome-4.0.3.c1e1ea213abf.css | 1338 ++ .../font-awesome-4.0.3.c1e1ea213abf.css.gz | Bin 0 -> 4230 bytes .../rest_framework/css/font-awesome-4.0.3.css | 1338 ++ .../css/font-awesome-4.0.3.css.gz | Bin 0 -> 4186 bytes .../css/prettify.a987f72342ee.css | 30 + .../css/prettify.a987f72342ee.css.gz | Bin 0 -> 390 bytes .../static/rest_framework/css/prettify.css | 30 + .../static/rest_framework/css/prettify.css.gz | Bin 0 -> 390 bytes .../static/rest_framework/docs/css/base.css | 359 + .../rest_framework/docs/css/base.css.gz | Bin 0 -> 1609 bytes .../docs/css/base.e630f8f4990e.css | 359 + .../docs/css/base.e630f8f4990e.css.gz | Bin 0 -> 1609 bytes .../rest_framework/docs/css/highlight.css | 125 + .../rest_framework/docs/css/highlight.css.gz | Bin 0 -> 671 bytes .../docs/css/highlight.e0e4d973c6d7.css | 125 + .../docs/css/highlight.e0e4d973c6d7.css.gz | Bin 0 -> 671 bytes .../css/jquery.json-view.min.a2e6beeb6710.css | 11 + .../jquery.json-view.min.a2e6beeb6710.css.gz | Bin 0 -> 640 bytes .../docs/css/jquery.json-view.min.css | 11 + .../docs/css/jquery.json-view.min.css.gz | Bin 0 -> 640 bytes .../docs/img/favicon.5195b4d0f3eb.ico | Bin 0 -> 5430 bytes .../docs/img/favicon.5195b4d0f3eb.ico.gz | Bin 0 -> 256 bytes .../rest_framework/docs/img/favicon.ico | Bin 0 -> 5430 bytes .../rest_framework/docs/img/favicon.ico.gz | Bin 0 -> 256 bytes .../docs/img/grid.a4b938cf382b.png | Bin 0 -> 1458 bytes .../static/rest_framework/docs/img/grid.png | Bin 0 -> 1458 bytes .../docs/js/api.18a5ba8a1bd8.js | 315 + .../docs/js/api.18a5ba8a1bd8.js.gz | Bin 0 -> 2584 bytes .../static/rest_framework/docs/js/api.js | 315 + .../static/rest_framework/docs/js/api.js.gz | Bin 0 -> 2584 bytes .../docs/js/highlight.pack.479b5f21dcba.js | 2 + .../docs/js/highlight.pack.479b5f21dcba.js.gz | Bin 0 -> 112518 bytes .../rest_framework/docs/js/highlight.pack.js | 2 + .../docs/js/highlight.pack.js.gz | Bin 0 -> 112518 bytes .../js/jquery.json-view.min.b7c2d6981377.js | 7 + .../jquery.json-view.min.b7c2d6981377.js.gz | Bin 0 -> 1013 bytes .../docs/js/jquery.json-view.min.js | 7 + .../docs/js/jquery.json-view.min.js.gz | Bin 0 -> 1013 bytes .../fontawesome-webfont.3293616ec0c6.woff | Bin 0 -> 44432 bytes .../fontawesome-webfont.83e37a11f9d7.svg | 414 + .../fontawesome-webfont.83e37a11f9d7.svg.gz | Bin 0 -> 56103 bytes .../fontawesome-webfont.8b27bc96115c.eot | Bin 0 -> 38205 bytes .../fontawesome-webfont.dcb26c7239d8.ttf | Bin 0 -> 80652 bytes .../fontawesome-webfont.dcb26c7239d8.ttf.gz | Bin 0 -> 44333 bytes .../fonts/fontawesome-webfont.eot | Bin 0 -> 38205 bytes .../fonts/fontawesome-webfont.svg | 414 + .../fonts/fontawesome-webfont.svg.gz | Bin 0 -> 56103 bytes .../fonts/fontawesome-webfont.ttf | Bin 0 -> 80652 bytes .../fonts/fontawesome-webfont.ttf.gz | Bin 0 -> 44333 bytes .../fonts/fontawesome-webfont.woff | Bin 0 -> 44432 bytes ...phicons-halflings-regular.08eda92397ae.svg | 288 + ...cons-halflings-regular.08eda92397ae.svg.gz | Bin 0 -> 26509 bytes ...icons-halflings-regular.448c34a56d69.woff2 | Bin 0 -> 18028 bytes ...phicons-halflings-regular.e18bbf611f2a.ttf | Bin 0 -> 45404 bytes ...cons-halflings-regular.e18bbf611f2a.ttf.gz | Bin 0 -> 23360 bytes .../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20127 bytes ...phicons-halflings-regular.f4769f9bdb74.eot | Bin 0 -> 20127 bytes ...hicons-halflings-regular.fa2772327f55.woff | Bin 0 -> 23424 bytes .../fonts/glyphicons-halflings-regular.svg | 288 + .../fonts/glyphicons-halflings-regular.svg.gz | Bin 0 -> 26509 bytes .../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 45404 bytes .../fonts/glyphicons-halflings-regular.ttf.gz | Bin 0 -> 23360 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23424 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 0 -> 18028 bytes ...lyphicons-halflings-white.9bbc6e960299.png | Bin 0 -> 8777 bytes .../img/glyphicons-halflings-white.png | Bin 0 -> 8777 bytes .../img/glyphicons-halflings.90233c9067e9.png | Bin 0 -> 12762 bytes .../img/glyphicons-halflings.png | Bin 0 -> 12762 bytes .../rest_framework/img/grid.a4b938cf382b.png | Bin 0 -> 1458 bytes .../static/rest_framework/img/grid.png | Bin 0 -> 1458 bytes .../js/ajax-form.0ea6e6052ab5.js | 127 + .../js/ajax-form.0ea6e6052ab5.js.gz | Bin 0 -> 1540 bytes .../static/rest_framework/js/ajax-form.js | 127 + .../static/rest_framework/js/ajax-form.js.gz | Bin 0 -> 1540 bytes .../js/bootstrap.min.2f34b630ffe3.js | 6 + .../js/bootstrap.min.2f34b630ffe3.js.gz | Bin 0 -> 10896 bytes .../static/rest_framework/js/bootstrap.min.js | 6 + .../rest_framework/js/bootstrap.min.js.gz | Bin 0 -> 10896 bytes .../js/coreapi-0.1.1.e580e3854595.js | 2042 +++ .../js/coreapi-0.1.1.e580e3854595.js.gz | Bin 0 -> 14375 bytes .../static/rest_framework/js/coreapi-0.1.1.js | 2043 +++ .../rest_framework/js/coreapi-0.1.1.js.gz | Bin 0 -> 40759 bytes .../rest_framework/js/csrf.969930007329.js | 52 + .../rest_framework/js/csrf.969930007329.js.gz | Bin 0 -> 787 bytes .../static/rest_framework/js/csrf.js | 52 + .../static/rest_framework/js/csrf.js.gz | Bin 0 -> 787 bytes .../rest_framework/js/default.5b08897dbdc3.js | 47 + .../js/default.5b08897dbdc3.js.gz | Bin 0 -> 571 bytes .../static/rest_framework/js/default.js | 47 + .../static/rest_framework/js/default.js.gz | Bin 0 -> 571 bytes .../js/jquery-3.5.1.min.dc5e7f18c8d3.js | 2 + .../js/jquery-3.5.1.min.dc5e7f18c8d3.js.gz | Bin 0 -> 30879 bytes .../rest_framework/js/jquery-3.5.1.min.js | 2 + .../rest_framework/js/jquery-3.5.1.min.js.gz | Bin 0 -> 30879 bytes .../js/prettify-min.709bfcc456c6.js | 28 + .../js/prettify-min.709bfcc456c6.js.gz | Bin 0 -> 6025 bytes .../static/rest_framework/js/prettify-min.js | 28 + .../rest_framework/js/prettify-min.js.gz | Bin 0 -> 6025 bytes equipment_tracker/static/staticfiles.json | 1 + gitignore | 164 + 637 files changed, 73212 insertions(+) create mode 100644 .vscode/settings.json create mode 100644 Pipfile create mode 100644 Pipfile.lock create mode 100644 equipment_tracker/.env create mode 100644 equipment_tracker/api/__init__.py create mode 100644 equipment_tracker/api/urls.py create mode 100644 equipment_tracker/config/__init__.py create mode 100644 equipment_tracker/config/asgi.py create mode 100644 equipment_tracker/config/settings.py create mode 100644 equipment_tracker/config/urls.py create mode 100644 equipment_tracker/config/wsgi.py create mode 100644 equipment_tracker/db.sqlite3 create mode 100644 equipment_tracker/manage.py create mode 100644 equipment_tracker/static/admin/css/autocomplete.4a81fc4242d0.css create mode 100644 equipment_tracker/static/admin/css/autocomplete.4a81fc4242d0.css.gz create mode 100644 equipment_tracker/static/admin/css/autocomplete.css create mode 100644 equipment_tracker/static/admin/css/autocomplete.css.gz create mode 100644 equipment_tracker/static/admin/css/base.64976e0f7339.css create mode 100644 equipment_tracker/static/admin/css/base.64976e0f7339.css.gz create mode 100644 equipment_tracker/static/admin/css/base.css create mode 100644 equipment_tracker/static/admin/css/base.css.gz create mode 100644 equipment_tracker/static/admin/css/changelists.9237a1ac391b.css create mode 100644 equipment_tracker/static/admin/css/changelists.9237a1ac391b.css.gz create mode 100644 equipment_tracker/static/admin/css/changelists.css create mode 100644 equipment_tracker/static/admin/css/changelists.css.gz create mode 100644 equipment_tracker/static/admin/css/dark_mode.css create mode 100644 equipment_tracker/static/admin/css/dark_mode.css.gz create mode 100644 equipment_tracker/static/admin/css/dark_mode.ef27a31af300.css create mode 100644 equipment_tracker/static/admin/css/dark_mode.ef27a31af300.css.gz create mode 100644 equipment_tracker/static/admin/css/dashboard.css create mode 100644 equipment_tracker/static/admin/css/dashboard.css.gz create mode 100644 equipment_tracker/static/admin/css/dashboard.e90f2068217b.css create mode 100644 equipment_tracker/static/admin/css/dashboard.e90f2068217b.css.gz create mode 100644 equipment_tracker/static/admin/css/forms.3b181cba6653.css create mode 100644 equipment_tracker/static/admin/css/forms.3b181cba6653.css.gz create mode 100644 equipment_tracker/static/admin/css/forms.css create mode 100644 equipment_tracker/static/admin/css/forms.css.gz create mode 100644 equipment_tracker/static/admin/css/login.586129c60a93.css create mode 100644 equipment_tracker/static/admin/css/login.586129c60a93.css.gz create mode 100644 equipment_tracker/static/admin/css/login.css create mode 100644 equipment_tracker/static/admin/css/login.css.gz create mode 100644 equipment_tracker/static/admin/css/nav_sidebar.269a1bd44627.css create mode 100644 equipment_tracker/static/admin/css/nav_sidebar.269a1bd44627.css.gz create mode 100644 equipment_tracker/static/admin/css/nav_sidebar.css create mode 100644 equipment_tracker/static/admin/css/nav_sidebar.css.gz create mode 100644 equipment_tracker/static/admin/css/responsive.107cd2690311.css create mode 100644 equipment_tracker/static/admin/css/responsive.107cd2690311.css.gz create mode 100644 equipment_tracker/static/admin/css/responsive.css create mode 100644 equipment_tracker/static/admin/css/responsive.css.gz create mode 100644 equipment_tracker/static/admin/css/responsive_rtl.97b066429fd8.css create mode 100644 equipment_tracker/static/admin/css/responsive_rtl.97b066429fd8.css.gz create mode 100644 equipment_tracker/static/admin/css/responsive_rtl.css create mode 100644 equipment_tracker/static/admin/css/responsive_rtl.css.gz create mode 100644 equipment_tracker/static/admin/css/rtl.4685390ad96d.css create mode 100644 equipment_tracker/static/admin/css/rtl.4685390ad96d.css.gz create mode 100644 equipment_tracker/static/admin/css/rtl.css create mode 100644 equipment_tracker/static/admin/css/rtl.css.gz create mode 100644 equipment_tracker/static/admin/css/vendor/select2/LICENSE-SELECT2.f94142512c91.md create mode 100644 equipment_tracker/static/admin/css/vendor/select2/LICENSE-SELECT2.f94142512c91.md.gz create mode 100644 equipment_tracker/static/admin/css/vendor/select2/LICENSE-SELECT2.md create mode 100644 equipment_tracker/static/admin/css/vendor/select2/LICENSE-SELECT2.md.gz create mode 100644 equipment_tracker/static/admin/css/vendor/select2/select2.a2194c262648.css create mode 100644 equipment_tracker/static/admin/css/vendor/select2/select2.a2194c262648.css.gz create mode 100644 equipment_tracker/static/admin/css/vendor/select2/select2.css create mode 100644 equipment_tracker/static/admin/css/vendor/select2/select2.css.gz create mode 100644 equipment_tracker/static/admin/css/vendor/select2/select2.min.9f54e6414f87.css create mode 100644 equipment_tracker/static/admin/css/vendor/select2/select2.min.9f54e6414f87.css.gz create mode 100644 equipment_tracker/static/admin/css/vendor/select2/select2.min.css create mode 100644 equipment_tracker/static/admin/css/vendor/select2/select2.min.css.gz create mode 100644 equipment_tracker/static/admin/css/widgets.0a3765e806b3.css create mode 100644 equipment_tracker/static/admin/css/widgets.0a3765e806b3.css.gz create mode 100644 equipment_tracker/static/admin/css/widgets.css create mode 100644 equipment_tracker/static/admin/css/widgets.css.gz create mode 100644 equipment_tracker/static/admin/img/LICENSE create mode 100644 equipment_tracker/static/admin/img/LICENSE.2c54f4e1ca1c create mode 100644 equipment_tracker/static/admin/img/LICENSE.2c54f4e1ca1c.gz create mode 100644 equipment_tracker/static/admin/img/LICENSE.gz create mode 100644 equipment_tracker/static/admin/img/README.a70711a38d87.txt create mode 100644 equipment_tracker/static/admin/img/README.a70711a38d87.txt.gz create mode 100644 equipment_tracker/static/admin/img/README.txt create mode 100644 equipment_tracker/static/admin/img/README.txt.gz create mode 100644 equipment_tracker/static/admin/img/calendar-icons.39b290681a8b.svg create mode 100644 equipment_tracker/static/admin/img/calendar-icons.39b290681a8b.svg.gz create mode 100644 equipment_tracker/static/admin/img/calendar-icons.svg create mode 100644 equipment_tracker/static/admin/img/calendar-icons.svg.gz create mode 100644 equipment_tracker/static/admin/img/gis/move_vertex_off.7a23bf31ef8a.svg create mode 100644 equipment_tracker/static/admin/img/gis/move_vertex_off.7a23bf31ef8a.svg.gz create mode 100644 equipment_tracker/static/admin/img/gis/move_vertex_off.svg create mode 100644 equipment_tracker/static/admin/img/gis/move_vertex_off.svg.gz create mode 100644 equipment_tracker/static/admin/img/gis/move_vertex_on.0047eba25b67.svg create mode 100644 equipment_tracker/static/admin/img/gis/move_vertex_on.0047eba25b67.svg.gz create mode 100644 equipment_tracker/static/admin/img/gis/move_vertex_on.svg create mode 100644 equipment_tracker/static/admin/img/gis/move_vertex_on.svg.gz create mode 100644 equipment_tracker/static/admin/img/icon-addlink.d519b3bab011.svg create mode 100644 equipment_tracker/static/admin/img/icon-addlink.d519b3bab011.svg.gz create mode 100644 equipment_tracker/static/admin/img/icon-addlink.svg create mode 100644 equipment_tracker/static/admin/img/icon-addlink.svg.gz create mode 100644 equipment_tracker/static/admin/img/icon-alert.034cc7d8a67f.svg create mode 100644 equipment_tracker/static/admin/img/icon-alert.034cc7d8a67f.svg.gz create mode 100644 equipment_tracker/static/admin/img/icon-alert.svg create mode 100644 equipment_tracker/static/admin/img/icon-alert.svg.gz create mode 100644 equipment_tracker/static/admin/img/icon-calendar.ac7aea671bea.svg create mode 100644 equipment_tracker/static/admin/img/icon-calendar.ac7aea671bea.svg.gz create mode 100644 equipment_tracker/static/admin/img/icon-calendar.svg create mode 100644 equipment_tracker/static/admin/img/icon-calendar.svg.gz create mode 100644 equipment_tracker/static/admin/img/icon-changelink.18d2fd706348.svg create mode 100644 equipment_tracker/static/admin/img/icon-changelink.18d2fd706348.svg.gz create mode 100644 equipment_tracker/static/admin/img/icon-changelink.svg create mode 100644 equipment_tracker/static/admin/img/icon-changelink.svg.gz create mode 100644 equipment_tracker/static/admin/img/icon-clock.e1d4dfac3f2b.svg create mode 100644 equipment_tracker/static/admin/img/icon-clock.e1d4dfac3f2b.svg.gz create mode 100644 equipment_tracker/static/admin/img/icon-clock.svg create mode 100644 equipment_tracker/static/admin/img/icon-clock.svg.gz create mode 100644 equipment_tracker/static/admin/img/icon-deletelink.564ef9dc3854.svg create mode 100644 equipment_tracker/static/admin/img/icon-deletelink.564ef9dc3854.svg.gz create mode 100644 equipment_tracker/static/admin/img/icon-deletelink.svg create mode 100644 equipment_tracker/static/admin/img/icon-deletelink.svg.gz create mode 100644 equipment_tracker/static/admin/img/icon-no.439e821418cd.svg create mode 100644 equipment_tracker/static/admin/img/icon-no.439e821418cd.svg.gz create mode 100644 equipment_tracker/static/admin/img/icon-no.svg create mode 100644 equipment_tracker/static/admin/img/icon-no.svg.gz create mode 100644 equipment_tracker/static/admin/img/icon-unknown-alt.81536e128bb6.svg create mode 100644 equipment_tracker/static/admin/img/icon-unknown-alt.81536e128bb6.svg.gz create mode 100644 equipment_tracker/static/admin/img/icon-unknown-alt.svg create mode 100644 equipment_tracker/static/admin/img/icon-unknown-alt.svg.gz create mode 100644 equipment_tracker/static/admin/img/icon-unknown.a18cb4398978.svg create mode 100644 equipment_tracker/static/admin/img/icon-unknown.a18cb4398978.svg.gz create mode 100644 equipment_tracker/static/admin/img/icon-unknown.svg create mode 100644 equipment_tracker/static/admin/img/icon-unknown.svg.gz create mode 100644 equipment_tracker/static/admin/img/icon-viewlink.41eb31f7826e.svg create mode 100644 equipment_tracker/static/admin/img/icon-viewlink.41eb31f7826e.svg.gz create mode 100644 equipment_tracker/static/admin/img/icon-viewlink.svg create mode 100644 equipment_tracker/static/admin/img/icon-viewlink.svg.gz create mode 100644 equipment_tracker/static/admin/img/icon-yes.d2f9f035226a.svg create mode 100644 equipment_tracker/static/admin/img/icon-yes.d2f9f035226a.svg.gz create mode 100644 equipment_tracker/static/admin/img/icon-yes.svg create mode 100644 equipment_tracker/static/admin/img/icon-yes.svg.gz create mode 100644 equipment_tracker/static/admin/img/inline-delete.fec1b761f254.svg create mode 100644 equipment_tracker/static/admin/img/inline-delete.fec1b761f254.svg.gz create mode 100644 equipment_tracker/static/admin/img/inline-delete.svg create mode 100644 equipment_tracker/static/admin/img/inline-delete.svg.gz create mode 100644 equipment_tracker/static/admin/img/search.7cf54ff789c6.svg create mode 100644 equipment_tracker/static/admin/img/search.7cf54ff789c6.svg.gz create mode 100644 equipment_tracker/static/admin/img/search.svg create mode 100644 equipment_tracker/static/admin/img/search.svg.gz create mode 100644 equipment_tracker/static/admin/img/selector-icons.b4555096cea2.svg create mode 100644 equipment_tracker/static/admin/img/selector-icons.b4555096cea2.svg.gz create mode 100644 equipment_tracker/static/admin/img/selector-icons.svg create mode 100644 equipment_tracker/static/admin/img/selector-icons.svg.gz create mode 100644 equipment_tracker/static/admin/img/sorting-icons.3a097b59f104.svg create mode 100644 equipment_tracker/static/admin/img/sorting-icons.3a097b59f104.svg.gz create mode 100644 equipment_tracker/static/admin/img/sorting-icons.svg create mode 100644 equipment_tracker/static/admin/img/sorting-icons.svg.gz create mode 100644 equipment_tracker/static/admin/img/tooltag-add.e59d620a9742.svg create mode 100644 equipment_tracker/static/admin/img/tooltag-add.e59d620a9742.svg.gz create mode 100644 equipment_tracker/static/admin/img/tooltag-add.svg create mode 100644 equipment_tracker/static/admin/img/tooltag-add.svg.gz create mode 100644 equipment_tracker/static/admin/img/tooltag-arrowright.bbfb788a849e.svg create mode 100644 equipment_tracker/static/admin/img/tooltag-arrowright.bbfb788a849e.svg.gz create mode 100644 equipment_tracker/static/admin/img/tooltag-arrowright.svg create mode 100644 equipment_tracker/static/admin/img/tooltag-arrowright.svg.gz create mode 100644 equipment_tracker/static/admin/js/SelectBox.7d3ce5a98007.js create mode 100644 equipment_tracker/static/admin/js/SelectBox.7d3ce5a98007.js.gz create mode 100644 equipment_tracker/static/admin/js/SelectBox.js create mode 100644 equipment_tracker/static/admin/js/SelectBox.js.gz create mode 100644 equipment_tracker/static/admin/js/SelectFilter2.bdb8d0cc579e.js create mode 100644 equipment_tracker/static/admin/js/SelectFilter2.bdb8d0cc579e.js.gz create mode 100644 equipment_tracker/static/admin/js/SelectFilter2.js create mode 100644 equipment_tracker/static/admin/js/SelectFilter2.js.gz create mode 100644 equipment_tracker/static/admin/js/actions.eac7e3441574.js create mode 100644 equipment_tracker/static/admin/js/actions.eac7e3441574.js.gz create mode 100644 equipment_tracker/static/admin/js/actions.js create mode 100644 equipment_tracker/static/admin/js/actions.js.gz create mode 100644 equipment_tracker/static/admin/js/admin/DateTimeShortcuts.9f6e209cebca.js create mode 100644 equipment_tracker/static/admin/js/admin/DateTimeShortcuts.9f6e209cebca.js.gz create mode 100644 equipment_tracker/static/admin/js/admin/DateTimeShortcuts.js create mode 100644 equipment_tracker/static/admin/js/admin/DateTimeShortcuts.js.gz create mode 100644 equipment_tracker/static/admin/js/admin/RelatedObjectLookups.8609f99b9ab2.js create mode 100644 equipment_tracker/static/admin/js/admin/RelatedObjectLookups.8609f99b9ab2.js.gz create mode 100644 equipment_tracker/static/admin/js/admin/RelatedObjectLookups.js create mode 100644 equipment_tracker/static/admin/js/admin/RelatedObjectLookups.js.gz create mode 100644 equipment_tracker/static/admin/js/autocomplete.01591ab27be7.js create mode 100644 equipment_tracker/static/admin/js/autocomplete.01591ab27be7.js.gz create mode 100644 equipment_tracker/static/admin/js/autocomplete.js create mode 100644 equipment_tracker/static/admin/js/autocomplete.js.gz create mode 100644 equipment_tracker/static/admin/js/calendar.f8a5d055eb33.js create mode 100644 equipment_tracker/static/admin/js/calendar.f8a5d055eb33.js.gz create mode 100644 equipment_tracker/static/admin/js/calendar.js create mode 100644 equipment_tracker/static/admin/js/calendar.js.gz create mode 100644 equipment_tracker/static/admin/js/cancel.ecc4c5ca7b32.js create mode 100644 equipment_tracker/static/admin/js/cancel.ecc4c5ca7b32.js.gz create mode 100644 equipment_tracker/static/admin/js/cancel.js create mode 100644 equipment_tracker/static/admin/js/cancel.js.gz create mode 100644 equipment_tracker/static/admin/js/change_form.9d8ca4f96b75.js create mode 100644 equipment_tracker/static/admin/js/change_form.9d8ca4f96b75.js.gz create mode 100644 equipment_tracker/static/admin/js/change_form.js create mode 100644 equipment_tracker/static/admin/js/change_form.js.gz create mode 100644 equipment_tracker/static/admin/js/collapse.f84e7410290f.js create mode 100644 equipment_tracker/static/admin/js/collapse.f84e7410290f.js.gz create mode 100644 equipment_tracker/static/admin/js/collapse.js create mode 100644 equipment_tracker/static/admin/js/collapse.js.gz create mode 100644 equipment_tracker/static/admin/js/core.cf103cd04ebf.js create mode 100644 equipment_tracker/static/admin/js/core.cf103cd04ebf.js.gz create mode 100644 equipment_tracker/static/admin/js/core.js create mode 100644 equipment_tracker/static/admin/js/core.js.gz create mode 100644 equipment_tracker/static/admin/js/filters.0e360b7a9f80.js create mode 100644 equipment_tracker/static/admin/js/filters.0e360b7a9f80.js.gz create mode 100644 equipment_tracker/static/admin/js/filters.js create mode 100644 equipment_tracker/static/admin/js/filters.js.gz create mode 100644 equipment_tracker/static/admin/js/inlines.22d4d93c00b4.js create mode 100644 equipment_tracker/static/admin/js/inlines.22d4d93c00b4.js.gz create mode 100644 equipment_tracker/static/admin/js/inlines.js create mode 100644 equipment_tracker/static/admin/js/inlines.js.gz create mode 100644 equipment_tracker/static/admin/js/jquery.init.b7781a0897fc.js create mode 100644 equipment_tracker/static/admin/js/jquery.init.b7781a0897fc.js.gz create mode 100644 equipment_tracker/static/admin/js/jquery.init.js create mode 100644 equipment_tracker/static/admin/js/jquery.init.js.gz create mode 100644 equipment_tracker/static/admin/js/nav_sidebar.3b9190d420b1.js create mode 100644 equipment_tracker/static/admin/js/nav_sidebar.3b9190d420b1.js.gz create mode 100644 equipment_tracker/static/admin/js/nav_sidebar.js create mode 100644 equipment_tracker/static/admin/js/nav_sidebar.js.gz create mode 100644 equipment_tracker/static/admin/js/popup_response.c6cc78ea5551.js create mode 100644 equipment_tracker/static/admin/js/popup_response.c6cc78ea5551.js.gz create mode 100644 equipment_tracker/static/admin/js/popup_response.js create mode 100644 equipment_tracker/static/admin/js/popup_response.js.gz create mode 100644 equipment_tracker/static/admin/js/prepopulate.bd2361dfd64d.js create mode 100644 equipment_tracker/static/admin/js/prepopulate.bd2361dfd64d.js.gz create mode 100644 equipment_tracker/static/admin/js/prepopulate.js create mode 100644 equipment_tracker/static/admin/js/prepopulate.js.gz create mode 100644 equipment_tracker/static/admin/js/prepopulate_init.6cac7f3105b8.js create mode 100644 equipment_tracker/static/admin/js/prepopulate_init.6cac7f3105b8.js.gz create mode 100644 equipment_tracker/static/admin/js/prepopulate_init.js create mode 100644 equipment_tracker/static/admin/js/prepopulate_init.js.gz create mode 100644 equipment_tracker/static/admin/js/theme.ab270f56bb9c.js create mode 100644 equipment_tracker/static/admin/js/theme.ab270f56bb9c.js.gz create mode 100644 equipment_tracker/static/admin/js/theme.js create mode 100644 equipment_tracker/static/admin/js/theme.js.gz create mode 100644 equipment_tracker/static/admin/js/urlify.ae970a820212.js create mode 100644 equipment_tracker/static/admin/js/urlify.ae970a820212.js.gz create mode 100644 equipment_tracker/static/admin/js/urlify.js create mode 100644 equipment_tracker/static/admin/js/urlify.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/jquery/LICENSE.de877aa6d744.txt create mode 100644 equipment_tracker/static/admin/js/vendor/jquery/LICENSE.de877aa6d744.txt.gz create mode 100644 equipment_tracker/static/admin/js/vendor/jquery/LICENSE.txt create mode 100644 equipment_tracker/static/admin/js/vendor/jquery/LICENSE.txt.gz create mode 100644 equipment_tracker/static/admin/js/vendor/jquery/jquery.0208b96062ba.js create mode 100644 equipment_tracker/static/admin/js/vendor/jquery/jquery.0208b96062ba.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/jquery/jquery.js create mode 100644 equipment_tracker/static/admin/js/vendor/jquery/jquery.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/jquery/jquery.min.641dd1437010.js create mode 100644 equipment_tracker/static/admin/js/vendor/jquery/jquery.min.641dd1437010.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/jquery/jquery.min.js create mode 100644 equipment_tracker/static/admin/js/vendor/jquery/jquery.min.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/LICENSE.f94142512c91.md create mode 100644 equipment_tracker/static/admin/js/vendor/select2/LICENSE.f94142512c91.md.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/LICENSE.md create mode 100644 equipment_tracker/static/admin/js/vendor/select2/LICENSE.md.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/af.4f6fcd73488c.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/af.4f6fcd73488c.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/af.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/af.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ar.65aa8e36bf5d.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ar.65aa8e36bf5d.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ar.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ar.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/az.270c257daf81.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/az.270c257daf81.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/az.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/az.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/bg.39b8be30d4f0.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/bg.39b8be30d4f0.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/bg.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/bg.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/bn.6d42b4dd5665.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/bn.6d42b4dd5665.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/bn.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/bn.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/bs.91624382358e.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/bs.91624382358e.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/bs.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/bs.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ca.a166b745933a.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ca.a166b745933a.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ca.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ca.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/cs.4f43e8e7d33a.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/cs.4f43e8e7d33a.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/cs.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/cs.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/da.766346afe4dd.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/da.766346afe4dd.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/da.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/da.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/de.8a1c222b0204.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/de.8a1c222b0204.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/de.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/de.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/dsb.56372c92d2f1.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/dsb.56372c92d2f1.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/dsb.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/dsb.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/el.27097f071856.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/el.27097f071856.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/el.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/el.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/en.cf932ba09a98.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/en.cf932ba09a98.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/en.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/en.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/es.66dbc2652fb1.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/es.66dbc2652fb1.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/es.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/es.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/et.2b96fd98289d.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/et.2b96fd98289d.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/et.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/et.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/eu.adfe5c97b72c.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/eu.adfe5c97b72c.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/eu.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/eu.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/fa.3b5bd1961cfd.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/fa.3b5bd1961cfd.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/fa.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/fa.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/fi.614ec42aa9ba.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/fi.614ec42aa9ba.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/fi.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/fi.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/fr.05e0542fcfe6.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/fr.05e0542fcfe6.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/fr.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/fr.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/gl.d99b1fedaa86.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/gl.d99b1fedaa86.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/gl.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/gl.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/he.e420ff6cd3ed.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/he.e420ff6cd3ed.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/he.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/he.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hi.70640d41628f.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hi.70640d41628f.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hi.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hi.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hr.a2b092cc1147.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hr.a2b092cc1147.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hr.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hr.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hsb.fa3b55265efe.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hsb.fa3b55265efe.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hsb.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hsb.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hu.6ec6039cb8a3.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hu.6ec6039cb8a3.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hu.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hu.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hy.c7babaeef5a6.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hy.c7babaeef5a6.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hy.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/hy.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/id.04debded514d.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/id.04debded514d.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/id.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/id.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/is.3ddd9a6a97e9.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/is.3ddd9a6a97e9.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/is.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/is.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/it.be4fe8d365b5.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/it.be4fe8d365b5.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/it.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/it.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ja.170ae885d74f.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ja.170ae885d74f.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ja.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ja.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ka.2083264a54f0.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ka.2083264a54f0.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ka.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ka.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/km.c23089cb06ca.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/km.c23089cb06ca.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/km.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/km.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ko.e7be6c20e673.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ko.e7be6c20e673.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ko.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ko.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/lt.23c7ce903300.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/lt.23c7ce903300.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/lt.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/lt.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/lv.08e62128eac1.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/lv.08e62128eac1.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/lv.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/lv.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/mk.dabbb9087130.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/mk.dabbb9087130.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/mk.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/mk.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ms.4ba82c9a51ce.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ms.4ba82c9a51ce.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ms.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ms.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/nb.da2fce143f27.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/nb.da2fce143f27.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/nb.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/nb.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ne.3d79fd3f08db.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ne.3d79fd3f08db.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ne.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ne.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/nl.997868a37ed8.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/nl.997868a37ed8.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/nl.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/nl.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/pl.6031b4f16452.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/pl.6031b4f16452.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/pl.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/pl.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ps.38dfa47af9e0.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ps.38dfa47af9e0.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ps.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ps.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/pt-BR.e1b294433e7f.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/pt-BR.e1b294433e7f.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/pt-BR.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/pt-BR.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/pt.33b4a3b44d43.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/pt.33b4a3b44d43.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/pt.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/pt.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ro.f75cb460ec3b.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ro.f75cb460ec3b.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ro.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ro.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ru.934aa95f5b5f.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ru.934aa95f5b5f.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ru.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/ru.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sk.33d02cef8d11.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sk.33d02cef8d11.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sk.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sk.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sl.131a78bc0752.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sl.131a78bc0752.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sl.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sl.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sq.5636b60d29c9.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sq.5636b60d29c9.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sq.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sq.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sr-Cyrl.f254bb8c4c7c.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sr-Cyrl.f254bb8c4c7c.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sr-Cyrl.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sr-Cyrl.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sr.5ed85a48f483.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sr.5ed85a48f483.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sr.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sr.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sv.7a9c2f71e777.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sv.7a9c2f71e777.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sv.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/sv.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/th.f38c20b0221b.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/th.f38c20b0221b.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/th.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/th.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/tk.7c572a68c78f.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/tk.7c572a68c78f.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/tk.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/tk.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/tr.b5a0643d1545.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/tr.b5a0643d1545.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/tr.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/tr.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/uk.8cede7f4803c.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/uk.8cede7f4803c.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/uk.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/uk.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/vi.097a5b75b3e1.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/vi.097a5b75b3e1.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/vi.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/vi.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/zh-CN.2cff662ec5f9.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/zh-CN.2cff662ec5f9.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/zh-CN.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/zh-CN.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/zh-TW.04554a227c2b.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/zh-TW.04554a227c2b.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/zh-TW.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/i18n/zh-TW.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/select2.full.c2afdeda3058.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/select2.full.c2afdeda3058.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/select2.full.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/select2.full.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/select2.full.min.fcd7500d8e13.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/select2.full.min.fcd7500d8e13.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/select2/select2.full.min.js create mode 100644 equipment_tracker/static/admin/js/vendor/select2/select2.full.min.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/xregexp/LICENSE.bf79e414957a.txt create mode 100644 equipment_tracker/static/admin/js/vendor/xregexp/LICENSE.bf79e414957a.txt.gz create mode 100644 equipment_tracker/static/admin/js/vendor/xregexp/LICENSE.txt create mode 100644 equipment_tracker/static/admin/js/vendor/xregexp/LICENSE.txt.gz create mode 100644 equipment_tracker/static/admin/js/vendor/xregexp/xregexp.efda034b9537.js create mode 100644 equipment_tracker/static/admin/js/vendor/xregexp/xregexp.efda034b9537.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/xregexp/xregexp.js create mode 100644 equipment_tracker/static/admin/js/vendor/xregexp/xregexp.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/xregexp/xregexp.min.b0439563a5d3.js create mode 100644 equipment_tracker/static/admin/js/vendor/xregexp/xregexp.min.b0439563a5d3.js.gz create mode 100644 equipment_tracker/static/admin/js/vendor/xregexp/xregexp.min.js create mode 100644 equipment_tracker/static/admin/js/vendor/xregexp/xregexp.min.js.gz create mode 100644 equipment_tracker/static/rest_framework/css/bootstrap-theme.min.1d4b05b397c3.css create mode 100644 equipment_tracker/static/rest_framework/css/bootstrap-theme.min.1d4b05b397c3.css.gz create mode 100644 equipment_tracker/static/rest_framework/css/bootstrap-theme.min.css create mode 100644 equipment_tracker/static/rest_framework/css/bootstrap-theme.min.css.51806092cc05.map create mode 100644 equipment_tracker/static/rest_framework/css/bootstrap-theme.min.css.51806092cc05.map.gz create mode 100644 equipment_tracker/static/rest_framework/css/bootstrap-theme.min.css.gz create mode 100644 equipment_tracker/static/rest_framework/css/bootstrap-theme.min.css.map create mode 100644 equipment_tracker/static/rest_framework/css/bootstrap-theme.min.css.map.gz create mode 100644 equipment_tracker/static/rest_framework/css/bootstrap-tweaks.46ed116b0edd.css create mode 100644 equipment_tracker/static/rest_framework/css/bootstrap-tweaks.46ed116b0edd.css.gz create mode 100644 equipment_tracker/static/rest_framework/css/bootstrap-tweaks.css create mode 100644 equipment_tracker/static/rest_framework/css/bootstrap-tweaks.css.gz create mode 100644 equipment_tracker/static/rest_framework/css/bootstrap.min.css create mode 100644 equipment_tracker/static/rest_framework/css/bootstrap.min.css.cafbda9c0e9e.map create mode 100644 equipment_tracker/static/rest_framework/css/bootstrap.min.css.cafbda9c0e9e.map.gz create mode 100644 equipment_tracker/static/rest_framework/css/bootstrap.min.css.gz create mode 100644 equipment_tracker/static/rest_framework/css/bootstrap.min.css.map create mode 100644 equipment_tracker/static/rest_framework/css/bootstrap.min.css.map.gz create mode 100644 equipment_tracker/static/rest_framework/css/bootstrap.min.f17d4516b026.css create mode 100644 equipment_tracker/static/rest_framework/css/bootstrap.min.f17d4516b026.css.gz create mode 100644 equipment_tracker/static/rest_framework/css/default.789dfb5732d7.css create mode 100644 equipment_tracker/static/rest_framework/css/default.789dfb5732d7.css.gz create mode 100644 equipment_tracker/static/rest_framework/css/default.css create mode 100644 equipment_tracker/static/rest_framework/css/default.css.gz create mode 100644 equipment_tracker/static/rest_framework/css/font-awesome-4.0.3.c1e1ea213abf.css create mode 100644 equipment_tracker/static/rest_framework/css/font-awesome-4.0.3.c1e1ea213abf.css.gz create mode 100644 equipment_tracker/static/rest_framework/css/font-awesome-4.0.3.css create mode 100644 equipment_tracker/static/rest_framework/css/font-awesome-4.0.3.css.gz create mode 100644 equipment_tracker/static/rest_framework/css/prettify.a987f72342ee.css create mode 100644 equipment_tracker/static/rest_framework/css/prettify.a987f72342ee.css.gz create mode 100644 equipment_tracker/static/rest_framework/css/prettify.css create mode 100644 equipment_tracker/static/rest_framework/css/prettify.css.gz create mode 100644 equipment_tracker/static/rest_framework/docs/css/base.css create mode 100644 equipment_tracker/static/rest_framework/docs/css/base.css.gz create mode 100644 equipment_tracker/static/rest_framework/docs/css/base.e630f8f4990e.css create mode 100644 equipment_tracker/static/rest_framework/docs/css/base.e630f8f4990e.css.gz create mode 100644 equipment_tracker/static/rest_framework/docs/css/highlight.css create mode 100644 equipment_tracker/static/rest_framework/docs/css/highlight.css.gz create mode 100644 equipment_tracker/static/rest_framework/docs/css/highlight.e0e4d973c6d7.css create mode 100644 equipment_tracker/static/rest_framework/docs/css/highlight.e0e4d973c6d7.css.gz create mode 100644 equipment_tracker/static/rest_framework/docs/css/jquery.json-view.min.a2e6beeb6710.css create mode 100644 equipment_tracker/static/rest_framework/docs/css/jquery.json-view.min.a2e6beeb6710.css.gz create mode 100644 equipment_tracker/static/rest_framework/docs/css/jquery.json-view.min.css create mode 100644 equipment_tracker/static/rest_framework/docs/css/jquery.json-view.min.css.gz create mode 100644 equipment_tracker/static/rest_framework/docs/img/favicon.5195b4d0f3eb.ico create mode 100644 equipment_tracker/static/rest_framework/docs/img/favicon.5195b4d0f3eb.ico.gz create mode 100644 equipment_tracker/static/rest_framework/docs/img/favicon.ico create mode 100644 equipment_tracker/static/rest_framework/docs/img/favicon.ico.gz create mode 100644 equipment_tracker/static/rest_framework/docs/img/grid.a4b938cf382b.png create mode 100644 equipment_tracker/static/rest_framework/docs/img/grid.png create mode 100644 equipment_tracker/static/rest_framework/docs/js/api.18a5ba8a1bd8.js create mode 100644 equipment_tracker/static/rest_framework/docs/js/api.18a5ba8a1bd8.js.gz create mode 100644 equipment_tracker/static/rest_framework/docs/js/api.js create mode 100644 equipment_tracker/static/rest_framework/docs/js/api.js.gz create mode 100644 equipment_tracker/static/rest_framework/docs/js/highlight.pack.479b5f21dcba.js create mode 100644 equipment_tracker/static/rest_framework/docs/js/highlight.pack.479b5f21dcba.js.gz create mode 100644 equipment_tracker/static/rest_framework/docs/js/highlight.pack.js create mode 100644 equipment_tracker/static/rest_framework/docs/js/highlight.pack.js.gz create mode 100644 equipment_tracker/static/rest_framework/docs/js/jquery.json-view.min.b7c2d6981377.js create mode 100644 equipment_tracker/static/rest_framework/docs/js/jquery.json-view.min.b7c2d6981377.js.gz create mode 100644 equipment_tracker/static/rest_framework/docs/js/jquery.json-view.min.js create mode 100644 equipment_tracker/static/rest_framework/docs/js/jquery.json-view.min.js.gz create mode 100644 equipment_tracker/static/rest_framework/fonts/fontawesome-webfont.3293616ec0c6.woff create mode 100644 equipment_tracker/static/rest_framework/fonts/fontawesome-webfont.83e37a11f9d7.svg create mode 100644 equipment_tracker/static/rest_framework/fonts/fontawesome-webfont.83e37a11f9d7.svg.gz create mode 100644 equipment_tracker/static/rest_framework/fonts/fontawesome-webfont.8b27bc96115c.eot create mode 100644 equipment_tracker/static/rest_framework/fonts/fontawesome-webfont.dcb26c7239d8.ttf create mode 100644 equipment_tracker/static/rest_framework/fonts/fontawesome-webfont.dcb26c7239d8.ttf.gz create mode 100644 equipment_tracker/static/rest_framework/fonts/fontawesome-webfont.eot create mode 100644 equipment_tracker/static/rest_framework/fonts/fontawesome-webfont.svg create mode 100644 equipment_tracker/static/rest_framework/fonts/fontawesome-webfont.svg.gz create mode 100644 equipment_tracker/static/rest_framework/fonts/fontawesome-webfont.ttf create mode 100644 equipment_tracker/static/rest_framework/fonts/fontawesome-webfont.ttf.gz create mode 100644 equipment_tracker/static/rest_framework/fonts/fontawesome-webfont.woff create mode 100644 equipment_tracker/static/rest_framework/fonts/glyphicons-halflings-regular.08eda92397ae.svg create mode 100644 equipment_tracker/static/rest_framework/fonts/glyphicons-halflings-regular.08eda92397ae.svg.gz create mode 100644 equipment_tracker/static/rest_framework/fonts/glyphicons-halflings-regular.448c34a56d69.woff2 create mode 100644 equipment_tracker/static/rest_framework/fonts/glyphicons-halflings-regular.e18bbf611f2a.ttf create mode 100644 equipment_tracker/static/rest_framework/fonts/glyphicons-halflings-regular.e18bbf611f2a.ttf.gz create mode 100644 equipment_tracker/static/rest_framework/fonts/glyphicons-halflings-regular.eot create mode 100644 equipment_tracker/static/rest_framework/fonts/glyphicons-halflings-regular.f4769f9bdb74.eot create mode 100644 equipment_tracker/static/rest_framework/fonts/glyphicons-halflings-regular.fa2772327f55.woff create mode 100644 equipment_tracker/static/rest_framework/fonts/glyphicons-halflings-regular.svg create mode 100644 equipment_tracker/static/rest_framework/fonts/glyphicons-halflings-regular.svg.gz create mode 100644 equipment_tracker/static/rest_framework/fonts/glyphicons-halflings-regular.ttf create mode 100644 equipment_tracker/static/rest_framework/fonts/glyphicons-halflings-regular.ttf.gz create mode 100644 equipment_tracker/static/rest_framework/fonts/glyphicons-halflings-regular.woff create mode 100644 equipment_tracker/static/rest_framework/fonts/glyphicons-halflings-regular.woff2 create mode 100644 equipment_tracker/static/rest_framework/img/glyphicons-halflings-white.9bbc6e960299.png create mode 100644 equipment_tracker/static/rest_framework/img/glyphicons-halflings-white.png create mode 100644 equipment_tracker/static/rest_framework/img/glyphicons-halflings.90233c9067e9.png create mode 100644 equipment_tracker/static/rest_framework/img/glyphicons-halflings.png create mode 100644 equipment_tracker/static/rest_framework/img/grid.a4b938cf382b.png create mode 100644 equipment_tracker/static/rest_framework/img/grid.png create mode 100644 equipment_tracker/static/rest_framework/js/ajax-form.0ea6e6052ab5.js create mode 100644 equipment_tracker/static/rest_framework/js/ajax-form.0ea6e6052ab5.js.gz create mode 100644 equipment_tracker/static/rest_framework/js/ajax-form.js create mode 100644 equipment_tracker/static/rest_framework/js/ajax-form.js.gz create mode 100644 equipment_tracker/static/rest_framework/js/bootstrap.min.2f34b630ffe3.js create mode 100644 equipment_tracker/static/rest_framework/js/bootstrap.min.2f34b630ffe3.js.gz create mode 100644 equipment_tracker/static/rest_framework/js/bootstrap.min.js create mode 100644 equipment_tracker/static/rest_framework/js/bootstrap.min.js.gz create mode 100644 equipment_tracker/static/rest_framework/js/coreapi-0.1.1.e580e3854595.js create mode 100644 equipment_tracker/static/rest_framework/js/coreapi-0.1.1.e580e3854595.js.gz create mode 100644 equipment_tracker/static/rest_framework/js/coreapi-0.1.1.js create mode 100644 equipment_tracker/static/rest_framework/js/coreapi-0.1.1.js.gz create mode 100644 equipment_tracker/static/rest_framework/js/csrf.969930007329.js create mode 100644 equipment_tracker/static/rest_framework/js/csrf.969930007329.js.gz create mode 100644 equipment_tracker/static/rest_framework/js/csrf.js create mode 100644 equipment_tracker/static/rest_framework/js/csrf.js.gz create mode 100644 equipment_tracker/static/rest_framework/js/default.5b08897dbdc3.js create mode 100644 equipment_tracker/static/rest_framework/js/default.5b08897dbdc3.js.gz create mode 100644 equipment_tracker/static/rest_framework/js/default.js create mode 100644 equipment_tracker/static/rest_framework/js/default.js.gz create mode 100644 equipment_tracker/static/rest_framework/js/jquery-3.5.1.min.dc5e7f18c8d3.js create mode 100644 equipment_tracker/static/rest_framework/js/jquery-3.5.1.min.dc5e7f18c8d3.js.gz create mode 100644 equipment_tracker/static/rest_framework/js/jquery-3.5.1.min.js create mode 100644 equipment_tracker/static/rest_framework/js/jquery-3.5.1.min.js.gz create mode 100644 equipment_tracker/static/rest_framework/js/prettify-min.709bfcc456c6.js create mode 100644 equipment_tracker/static/rest_framework/js/prettify-min.709bfcc456c6.js.gz create mode 100644 equipment_tracker/static/rest_framework/js/prettify-min.js create mode 100644 equipment_tracker/static/rest_framework/js/prettify-min.js.gz create mode 100644 equipment_tracker/static/staticfiles.json create mode 100644 gitignore diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..9ee86e7 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,6 @@ +{ + "[python]": { + "editor.defaultFormatter": "ms-python.autopep8" + }, + "python.formatting.provider": "none" +} \ No newline at end of file diff --git a/Pipfile b/Pipfile new file mode 100644 index 0000000..1ca75d8 --- /dev/null +++ b/Pipfile @@ -0,0 +1,17 @@ +[[source]] +url = "https://pypi.org/simple" +verify_ssl = true +name = "pypi" + +[packages] +django = "*" +djangorestframework = "*" +python-dotenv = "*" +whitenoise = "*" +djoser = "*" +django-cors-headers = "*" + +[dev-packages] + +[requires] +python_version = "3.11" diff --git a/Pipfile.lock b/Pipfile.lock new file mode 100644 index 0000000..4857364 --- /dev/null +++ b/Pipfile.lock @@ -0,0 +1,392 @@ +{ + "_meta": { + "hash": { + "sha256": "78c49b7899d981508de476af5e9aa819ee18a8c6ecaa040961788004559f5cac" + }, + "pipfile-spec": 6, + "requires": { + "python_version": "3.11" + }, + "sources": [ + { + "name": "pypi", + "url": "https://pypi.org/simple", + "verify_ssl": true + } + ] + }, + "default": { + "asgiref": { + "hashes": [ + "sha256:89b2ef2247e3b562a16eef663bc0e2e703ec6468e2fa8a5cd61cd449786d4f6e", + "sha256:9e0ce3aa93a819ba5b45120216b23878cf6e8525eb3848653452b4192b92afed" + ], + "markers": "python_version >= '3.7'", + "version": "==3.7.2" + }, + "certifi": { + "hashes": [ + "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082", + "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9" + ], + "markers": "python_version >= '3.6'", + "version": "==2023.7.22" + }, + "cffi": { + "hashes": [ + "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc", + "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a", + "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417", + "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab", + "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520", + "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36", + "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743", + "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8", + "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed", + "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684", + "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56", + "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324", + "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d", + "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235", + "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e", + "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088", + "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000", + "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7", + "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e", + "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673", + "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c", + "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe", + "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2", + "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098", + "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8", + "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a", + "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0", + "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b", + "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896", + "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e", + "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9", + "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2", + "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b", + "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6", + "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404", + "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f", + "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0", + "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4", + "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc", + "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936", + "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba", + "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872", + "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb", + "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614", + "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1", + "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d", + "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969", + "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b", + "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4", + "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627", + "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956", + "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357" + ], + "markers": "python_version >= '3.8'", + "version": "==1.16.0" + }, + "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" + ], + "markers": "python_full_version >= '3.7.0'", + "version": "==3.3.1" + }, + "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" + ], + "markers": "python_version >= '3.7'", + "version": "==41.0.4" + }, + "defusedxml": { + "hashes": [ + "sha256:138c7d540a78775182206c7c97fe65b246a2f40b29471e1a2f1b0da76e7a3942", + "sha256:1c812964311154c3bf4aaf3bc1443b31ee13530b7f255eaaa062c0553c76103d" + ], + "markers": "python_version >= '3.6'", + "version": "==0.8.0rc2" + }, + "django": { + "hashes": [ + "sha256:08f41f468b63335aea0d904c5729e0250300f6a1907bf293a65499496cdbc68f", + "sha256:a64d2487cdb00ad7461434320ccc38e60af9c404773a2f95ab0093b4453a3215" + ], + "index": "pypi", + "version": "==4.2.6" + }, + "django-cors-headers": { + "hashes": [ + "sha256:25aabc94d4837678c1edf442c7f68a5f5fd151f6767b0e0b01c61a2179d02711", + "sha256:bd36c7aea0d070e462f3383f0dc9ef717e5fdc2b10a99c98c285f16da84ffba2" + ], + "index": "pypi", + "version": "==4.3.0" + }, + "django-templated-mail": { + "hashes": [ + "sha256:8db807effebb42a532622e2d142dfd453dafcd0d7794c4c3332acb90656315f9", + "sha256:f7127e1e31d7cad4e6c4b4801d25814d4b8782627ead76f4a75b3b7650687556" + ], + "version": "==1.1.1" + }, + "djangorestframework": { + "hashes": [ + "sha256:579a333e6256b09489cbe0a067e66abe55c6595d8926be6b99423786334350c8", + "sha256:eb63f58c9f218e1a7d064d17a70751f528ed4e1d35547fdade9aaf4cd103fd08" + ], + "index": "pypi", + "version": "==3.14.0" + }, + "djangorestframework-simplejwt": { + "hashes": [ + "sha256:631d7ae2ed4365d7196a35d3cc0f6d382f7bd3361fb24c894f8f92b4da5db27d", + "sha256:8e4c5dfca8d11c0b8a66dfd8a4e3fc1c6aa7ea188d10907ff91c942f4b52ed66" + ], + "markers": "python_version >= '3.7'", + "version": "==5.3.0" + }, + "djoser": { + "hashes": [ + "sha256:4aa48502df870c8b5f07109ad4a749cc881c37bb5efa85cf5462ea695a0dca8c", + "sha256:7b24718cdc51b4294b0abcf6bf0ead11aa3ca83652e351dfb04b7b8b15afa3b0" + ], + "index": "pypi", + "version": "==2.2.0" + }, + "idna": { + "hashes": [ + "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4", + "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2" + ], + "markers": "python_version >= '3.5'", + "version": "==3.4" + }, + "oauthlib": { + "hashes": [ + "sha256:8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca", + "sha256:9859c40929662bec5d64f34d01c99e093149682a3f38915dc0655d5a633dd918" + ], + "markers": "python_version >= '3.6'", + "version": "==3.2.2" + }, + "pycparser": { + "hashes": [ + "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9", + "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206" + ], + "version": "==2.21" + }, + "pyjwt": { + "hashes": [ + "sha256:57e28d156e3d5c10088e0c68abb90bfac3df82b40a71bd0daa20c65ccd5c23de", + "sha256:59127c392cc44c2da5bb3192169a91f429924e17aff6534d70fdc02ab3e04320" + ], + "markers": "python_version >= '3.7'", + "version": "==2.8.0" + }, + "python-dotenv": { + "hashes": [ + "sha256:a8df96034aae6d2d50a4ebe8216326c61c3eb64836776504fcca410e5937a3ba", + "sha256:f5971a9226b701070a4bf2c38c89e5a3f0d64de8debda981d1db98583009122a" + ], + "index": "pypi", + "version": "==1.0.0" + }, + "python3-openid": { + "hashes": [ + "sha256:33fbf6928f401e0b790151ed2b5290b02545e8775f982485205a066f874aaeaf", + "sha256:6626f771e0417486701e0b4daff762e7212e820ca5b29fcc0d05f6f8736dfa6b" + ], + "version": "==3.2.0" + }, + "pytz": { + "hashes": [ + "sha256:7b4fddbeb94a1eba4b557da24f19fdf9db575192544270a9101d8509f9f43d7b", + "sha256:ce42d816b81b68506614c11e8937d3aa9e41007ceb50bfdcb0749b921bf646c7" + ], + "version": "==2023.3.post1" + }, + "requests": { + "hashes": [ + "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f", + "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1" + ], + "markers": "python_version >= '3.7'", + "version": "==2.31.0" + }, + "requests-oauthlib": { + "hashes": [ + "sha256:2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5", + "sha256:75beac4a47881eeb94d5ea5d6ad31ef88856affe2332b9aafb52c6452ccf0d7a" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==1.3.1" + }, + "social-auth-app-django": { + "hashes": [ + "sha256:09ac02a063cb313eed5e9ef2f9ac4477c8bf5bbd685925ff3aba43f9072f1bbb", + "sha256:28c65b2e2092f30cdb3cf912eeaa6988b49fdf4001b29bd89e683673d700a38e" + ], + "markers": "python_version >= '3.8'", + "version": "==5.4.0" + }, + "social-auth-core": { + "hashes": [ + "sha256:9791d7c7aee2ac8517fe7a2ea2f942a8a5492b3a4ccb44a9b0dacc87d182f2aa", + "sha256:ea7a19c46b791b767e95f467881b53c5fd0d1efb40048d9ed3dbc46daa05c954" + ], + "markers": "python_version >= '3.6'", + "version": "==4.4.2" + }, + "sqlparse": { + "hashes": [ + "sha256:5430a4fe2ac7d0f93e66f1efc6e1338a41884b7ddf2a350cedd20ccc4d9d28f3", + "sha256:d446183e84b8349fa3061f0fe7f06ca94ba65b426946ffebe6e3e8295332420c" + ], + "markers": "python_version >= '3.5'", + "version": "==0.4.4" + }, + "tzdata": { + "hashes": [ + "sha256:11ef1e08e54acb0d4f95bdb1be05da659673de4acbd21bf9c69e94cc5e907a3a", + "sha256:7e65763eef3120314099b6939b5546db7adce1e7d6f2e179e3df563c70511eda" + ], + "markers": "sys_platform == 'win32'", + "version": "==2023.3" + }, + "urllib3": { + "hashes": [ + "sha256:c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84", + "sha256:fdb6d215c776278489906c2f8916e6e7d4f5a9b602ccbcfdf7f016fc8da0596e" + ], + "markers": "python_version >= '3.7'", + "version": "==2.0.7" + }, + "whitenoise": { + "hashes": [ + "sha256:8998f7370973447fac1e8ef6e8ded2c5209a7b1f67c1012866dbcd09681c3251", + "sha256:b1f9db9bf67dc183484d760b99f4080185633136a273a03f6436034a41064146" + ], + "index": "pypi", + "version": "==6.6.0" + } + }, + "develop": {} +} diff --git a/equipment_tracker/.env b/equipment_tracker/.env new file mode 100644 index 0000000..7996e3d --- /dev/null +++ b/equipment_tracker/.env @@ -0,0 +1,20 @@ +# 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' diff --git a/equipment_tracker/api/__init__.py b/equipment_tracker/api/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/equipment_tracker/api/urls.py b/equipment_tracker/api/urls.py new file mode 100644 index 0000000..130dc54 --- /dev/null +++ b/equipment_tracker/api/urls.py @@ -0,0 +1,5 @@ +from django.urls import path, include + +urlpatterns = [ + path('accounts/', include('djoser.urls')) +] diff --git a/equipment_tracker/config/__init__.py b/equipment_tracker/config/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/equipment_tracker/config/asgi.py b/equipment_tracker/config/asgi.py new file mode 100644 index 0000000..80d4e77 --- /dev/null +++ b/equipment_tracker/config/asgi.py @@ -0,0 +1,16 @@ +""" +ASGI config for equipment_tracker project. + +It exposes the ASGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/4.2/howto/deployment/asgi/ +""" + +import os + +from django.core.asgi import get_asgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings') + +application = get_asgi_application() diff --git a/equipment_tracker/config/settings.py b/equipment_tracker/config/settings.py new file mode 100644 index 0000000..7954525 --- /dev/null +++ b/equipment_tracker/config/settings.py @@ -0,0 +1,203 @@ +""" +Django settings for equipment_tracker project. + +Generated by 'django-admin startproject' using Django 4.2.6. + +For more information on this file, see +https://docs.djangoproject.com/en/4.2/topics/settings/ + +For the full list of settings and their values, see +https://docs.djangoproject.com/en/4.2/ref/settings/ +""" + +from datetime import timedelta +from pathlib import Path +from dotenv import load_dotenv # Python dotenv +import os + +load_dotenv() # loads the configs from .env + +# Build paths inside the project like this: BASE_DIR / 'subdir'. +BASE_DIR = Path(__file__).resolve().parent.parent + + +# Quick-start development settings - unsuitable for production +# See https://docs.djangoproject.com/en/4.2/howto/deployment/checklist/ + +# SECURITY WARNING: keep the secret key used in production secret! +SECRET_KEY = str(os.getenv('SECRET_KEY')) + +# SECURITY WARNING: don't run with debug turned on in production! +DEBUG = True +FRONTEND_DEBUG = True + +ALLOWED_HOSTS = ['*'] +# CSRF_TRUSTED_ORIGINS = [] To-do: Specify URL to web frontend + +# Email credentials +EMAIL_HOST = '' +EMAIL_HOST_USER = '' +EMAIL_HOST_PASSWORD = '' +EMAIL_PORT = '' +EMAIL_USE_TLS = False + +if (DEBUG == True): + EMAIL_HOST = str(os.getenv('DEV_EMAIL_HOST')) + EMAIL_HOST_USER = str(os.getenv('DEV_EMAIL_HOST_USER')) + EMAIL_HOST_PASSWORD = str(os.getenv('DEV_EMAIL_HOST_PASSWORD')) + EMAIL_PORT = str(os.getenv('DEV_EMAIL_PORT')) +else: + EMAIL_HOST = str(os.getenv('PROD_EMAIL_HOST')) + EMAIL_HOST_USER = str(os.getenv('PROD_EMAIL_HOST_USER')) + EMAIL_HOST_PASSWORD = str(os.getenv('PROD_EMAIL_HOST_PASSWORD')) + EMAIL_PORT = str(os.getenv('PROD_EMAIL_PORT')) + EMAIL_USE_TLS = str(os.getenv('PROD_EMAIL_TLS')) + +# Application definition + +INSTALLED_APPS = [ + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', + 'rest_framework', + 'rest_framework_simplejwt', + 'djoser', + 'corsheaders' +] + +MIDDLEWARE = [ + 'django.middleware.security.SecurityMiddleware', + "whitenoise.middleware.WhiteNoiseMiddleware", + 'django.contrib.sessions.middleware.SessionMiddleware', + "corsheaders.middleware.CorsMiddleware", + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', +] + +# Static files (CSS, JavaScript, Images) +# https://docs.djangoproject.com/en/4.2/howto/static-files/ + +STATIC_URL = 'static/' +STATIC_ROOT = os.path.join(BASE_DIR, 'static') +STATICFILES_STORAGE = "whitenoise.storage.CompressedManifestStaticFilesStorage" + +ROOT_URLCONF = 'config.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + ], + }, + }, +] + +REST_FRAMEWORK = { + 'DEFAULT_AUTHENTICATION_CLASSES': ( + 'rest_framework_simplejwt.authentication.JWTAuthentication', + ), + 'DEFAULT_THROTTLE_CLASSES': [ + + 'rest_framework.throttling.AnonRateThrottle', + + 'rest_framework.throttling.UserRateThrottle' + + ], + + 'DEFAULT_THROTTLE_RATES': { + + 'anon': '360/min', + + 'user': '1440/min' + + }, +} + +WSGI_APPLICATION = 'config.wsgi.application' + + +# Database +# https://docs.djangoproject.com/en/4.2/ref/settings/#databases + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': BASE_DIR / 'db.sqlite3', + } +} + +DJOSER = { + 'SEND_ACTIVATION_EMAIL': True, + 'SEND_CONFIRMATION_EMAIL': True, + 'ACTIVATION_URL': 'activation/{uid}/{token}', + 'USER_AUTHENTICATION_RULES': ['djoser.authentication.TokenAuthenticationRule'], +} + +# Password validation +# https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators + +AUTH_PASSWORD_VALIDATORS = [ + { + 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', + }, + { + 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', + }, +] + + +# Internationalization +# https://docs.djangoproject.com/en/4.2/topics/i18n/ + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'Asia/Manila' + +USE_I18N = True + +USE_TZ = True + + +# Default primary key field type +# https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field + +DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' + +DOMAIN = '' +if (FRONTEND_DEBUG): + DOMAIN = 'exp' +else: + DOMAIN = 'citctracker' + +SITE_NAME = 'CITC Equipment Tracker' + +# 1 week access token lifetime +SIMPLE_JWT = { + "ACCESS_TOKEN_LIFETIME": timedelta(minutes=10080), + "REFRESH_TOKEN_LIFETIME": timedelta(minutes=10080) +} + +SESSION_ENGINE = "django.contrib.sessions.backends.cache" +SESSION_CACHE_ALIAS = "default" + +CORS_ALLOW_ALL_ORIGINS = True +CORS_ALLOW_CREDENTIALS = True diff --git a/equipment_tracker/config/urls.py b/equipment_tracker/config/urls.py new file mode 100644 index 0000000..cad3e39 --- /dev/null +++ b/equipment_tracker/config/urls.py @@ -0,0 +1,23 @@ +""" +URL configuration for equipment_tracker project. + +The `urlpatterns` list routes URLs to views. For more information please see: + https://docs.djangoproject.com/en/4.2/topics/http/urls/ +Examples: +Function views + 1. Add an import: from my_app import views + 2. Add a URL to urlpatterns: path('', views.home, name='home') +Class-based views + 1. Add an import: from other_app.views import Home + 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') +Including another URLconf + 1. Import the include() function: from django.urls import include, path + 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) +""" +from django.contrib import admin +from django.urls import path, include + +urlpatterns = [ + path('admin/', admin.site.urls), + path('api/v1/', include('api.urls')) +] diff --git a/equipment_tracker/config/wsgi.py b/equipment_tracker/config/wsgi.py new file mode 100644 index 0000000..9c0f843 --- /dev/null +++ b/equipment_tracker/config/wsgi.py @@ -0,0 +1,16 @@ +""" +WSGI config for equipment_tracker project. + +It exposes the WSGI callable as a module-level variable named ``application``. + +For more information on this file, see +https://docs.djangoproject.com/en/4.2/howto/deployment/wsgi/ +""" + +import os + +from django.core.wsgi import get_wsgi_application + +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings') + +application = get_wsgi_application() diff --git a/equipment_tracker/db.sqlite3 b/equipment_tracker/db.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..2cd41471cc632d87bc3a3879eb5c2c9fbcfbd7df GIT binary patch literal 131072 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 .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 new file mode 100644 index 0000000000000000000000000000000000000000..7cd12df9483ef372338842a86eb0aedf148d04aa GIT binary patch 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 new file mode 100644 index 0000000000000000000000000000000000000000..7cd12df9483ef372338842a86eb0aedf148d04aa GIT binary patch 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 new file mode 100644 index 0000000000000000000000000000000000000000..e8dc26868dcd27e4b696d8f80e542d9519147a35 GIT binary patch literal 4847 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 VtEXjUdo_=T{1?{Nq!w*c004R}R*e7v literal 0 HcmV?d00001 diff --git a/equipment_tracker/static/admin/css/base.css b/equipment_tracker/static/admin/css/base.css new file mode 100644 index 0000000..72f4ae1 --- /dev/null +++ b/equipment_tracker/static/admin/css/base.css @@ -0,0 +1,1138 @@ +/* + 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 new file mode 100644 index 0000000000000000000000000000000000000000..fa107378d2c081d0ff997822aad5f8f2a13c0929 GIT binary patch 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 new file mode 100644 index 0000000000000000000000000000000000000000..108028ffb0d372e01226f033207e8dd7a10fcce5 GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/equipment_tracker/static/admin/css/changelists.css b/equipment_tracker/static/admin/css/changelists.css new file mode 100644 index 0000000..a754513 --- /dev/null +++ b/equipment_tracker/static/admin/css/changelists.css @@ -0,0 +1,328 @@ +/* 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 new file mode 100644 index 0000000000000000000000000000000000000000..108028ffb0d372e01226f033207e8dd7a10fcce5 GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/equipment_tracker/static/admin/css/dark_mode.css b/equipment_tracker/static/admin/css/dark_mode.css new file mode 100644 index 0000000..6d08233 --- /dev/null +++ b/equipment_tracker/static/admin/css/dark_mode.css @@ -0,0 +1,137 @@ +@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 new file mode 100644 index 0000000000000000000000000000000000000000..faebccea590bbf329596f47495cc027ed38ea3c8 GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/equipment_tracker/static/admin/css/dark_mode.ef27a31af300.css b/equipment_tracker/static/admin/css/dark_mode.ef27a31af300.css new file mode 100644 index 0000000..6d08233 --- /dev/null +++ b/equipment_tracker/static/admin/css/dark_mode.ef27a31af300.css @@ -0,0 +1,137 @@ +@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 new file mode 100644 index 0000000000000000000000000000000000000000..faebccea590bbf329596f47495cc027ed38ea3c8 GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/equipment_tracker/static/admin/css/dashboard.css b/equipment_tracker/static/admin/css/dashboard.css new file mode 100644 index 0000000..242b81a --- /dev/null +++ b/equipment_tracker/static/admin/css/dashboard.css @@ -0,0 +1,29 @@ +/* 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 new file mode 100644 index 0000000000000000000000000000000000000000..06db5fd5cf463e2a3989b143df3b5bdc73962e1e GIT binary patch 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 new file mode 100644 index 0000000000000000000000000000000000000000..107139e0f3034a95f9c28691fe499648379504ae GIT binary patch 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 new file mode 100644 index 0000000000000000000000000000000000000000..ed2543618f008add7bb2b0a6f811e7ab9b3805d4 GIT binary patch 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> literal 0 HcmV?d00001 diff --git a/equipment_tracker/static/admin/css/login.586129c60a93.css b/equipment_tracker/static/admin/css/login.586129c60a93.css new file mode 100644 index 0000000..389772f --- /dev/null +++ b/equipment_tracker/static/admin/css/login.586129c60a93.css @@ -0,0 +1,61 @@ +/* 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 new file mode 100644 index 0000000000000000000000000000000000000000..ca9d533055da1635cd52842a4569b1046aabcdb5 GIT binary patch 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| literal 0 HcmV?d00001 diff --git a/equipment_tracker/static/admin/css/login.css b/equipment_tracker/static/admin/css/login.css new file mode 100644 index 0000000..389772f --- /dev/null +++ b/equipment_tracker/static/admin/css/login.css @@ -0,0 +1,61 @@ +/* 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 new file mode 100644 index 0000000000000000000000000000000000000000..ca9d533055da1635cd52842a4569b1046aabcdb5 GIT binary patch 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| literal 0 HcmV?d00001 diff --git a/equipment_tracker/static/admin/css/nav_sidebar.269a1bd44627.css b/equipment_tracker/static/admin/css/nav_sidebar.269a1bd44627.css new file mode 100644 index 0000000..f76e6ce --- /dev/null +++ b/equipment_tracker/static/admin/css/nav_sidebar.269a1bd44627.css @@ -0,0 +1,144 @@ +.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 new file mode 100644 index 0000000000000000000000000000000000000000..7398c4df9feb1b5f31ae72b632bf2debd3f25dd7 GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/equipment_tracker/static/admin/css/nav_sidebar.css b/equipment_tracker/static/admin/css/nav_sidebar.css new file mode 100644 index 0000000..f76e6ce --- /dev/null +++ b/equipment_tracker/static/admin/css/nav_sidebar.css @@ -0,0 +1,144 @@ +.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 new file mode 100644 index 0000000000000000000000000000000000000000..7398c4df9feb1b5f31ae72b632bf2debd3f25dd7 GIT binary patch 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 literal 0 HcmV?d00001 diff --git a/equipment_tracker/static/admin/css/responsive.107cd2690311.css b/equipment_tracker/static/admin/css/responsive.107cd2690311.css new file mode 100644 index 0000000..9ce4f67 --- /dev/null +++ b/equipment_tracker/static/admin/css/responsive.107cd2690311.css @@ -0,0 +1,998 @@ +/* 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 new file mode 100644 index 0000000000000000000000000000000000000000..7e8070e420218983e484c007f4bc83fd9b11d207 GIT binary patch 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 new file mode 100644 index 0000000000000000000000000000000000000000..7e8070e420218983e484c007f4bc83fd9b11d207 GIT binary patch literal 3432 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 To~Qb9zDM#8M89D%WCQ>J