From ea11832a533b227565e6d642528ec6a34b155742 Mon Sep 17 00:00:00 2001 From: icurfer Date: Fri, 13 Dec 2024 17:12:03 +0900 Subject: [PATCH] init --- .github/workflows/build.yaml | 69 + .gitignore | 4 +- Dockerfile | 32 + LICENSE | 73 + _media/inventories/inventory.ini | 2 + _media/inventories/inventory_2nZEePL.ini | 2 + _media/inventories/inventory_CAc8LnR.ini | 2 + _media/inventories/inventory_N8DmIuY.ini | 2 + _media/inventories/inventory_ja252ub.ini | 2 + _media/playbooks/test_playbook.yml | 7 + _media/playbooks/test_playbook_1AUxYca.yml | 7 + _media/playbooks/test_playbook_1aczRZD.yml | 7 + _media/playbooks/test_playbook_BomEp2O.yml | 7 + _media/playbooks/test_playbook_DddSBcY.yml | 7 + _media/playbooks/test_playbook_LUE1FHF.yml | 7 + .../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.523eb49842a7.css | 1145 ++ _static/admin/css/base.523eb49842a7.css.gz | Bin 0 -> 4865 bytes _static/admin/css/base.css | 1145 ++ _static/admin/css/base.css.gz | Bin 0 -> 4755 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 _static/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 _static/admin/css/dashboard.e90f2068217b.css | 29 + .../admin/css/dashboard.e90f2068217b.css.gz | Bin 0 -> 267 bytes _static/admin/css/forms.c14e1cb06392.css | 534 + _static/admin/css/forms.c14e1cb06392.css.gz | Bin 0 -> 2243 bytes _static/admin/css/forms.css | 534 + _static/admin/css/forms.css.gz | Bin 0 -> 2207 bytes _static/admin/css/login.586129c60a93.css | 61 + _static/admin/css/login.586129c60a93.css.gz | Bin 0 -> 417 bytes _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 _static/admin/css/responsive.css | 999 ++ _static/admin/css/responsive.css.gz | Bin 0 -> 3441 bytes _static/admin/css/responsive.f6533dab034d.css | 999 ++ .../admin/css/responsive.f6533dab034d.css.gz | Bin 0 -> 3441 bytes .../admin/css/responsive_rtl.7d1130848605.css | 84 + .../css/responsive_rtl.7d1130848605.css.gz | Bin 0 -> 550 bytes _static/admin/css/responsive_rtl.css | 84 + _static/admin/css/responsive_rtl.css.gz | Bin 0 -> 550 bytes _static/admin/css/rtl.512d4b53fc59.css | 298 + _static/admin/css/rtl.512d4b53fc59.css.gz | Bin 0 -> 1281 bytes _static/admin/css/rtl.css | 298 + _static/admin/css/rtl.css.gz | Bin 0 -> 1254 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 _static/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.css | 604 + _static/admin/css/widgets.css.gz | Bin 0 -> 2474 bytes _static/admin/css/widgets.ee33ab26c7c2.css | 604 + _static/admin/css/widgets.ee33ab26c7c2.css.gz | Bin 0 -> 2567 bytes _static/admin/img/LICENSE | 20 + _static/admin/img/LICENSE.2c54f4e1ca1c | 20 + _static/admin/img/LICENSE.2c54f4e1ca1c.gz | Bin 0 -> 656 bytes _static/admin/img/LICENSE.gz | Bin 0 -> 656 bytes _static/admin/img/README.a70711a38d87.txt | 7 + _static/admin/img/README.a70711a38d87.txt.gz | Bin 0 -> 214 bytes _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 + _static/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 + _static/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 _static/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 _static/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 + _static/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 _static/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 + _static/admin/img/search.7cf54ff789c6.svg.gz | Bin 0 -> 264 bytes _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 + _static/admin/img/tooltag-arrowright.svg.gz | Bin 0 -> 194 bytes _static/admin/js/SelectBox.7d3ce5a98007.js | 116 + _static/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 + _static/admin/js/actions.eac7e3441574.js.gz | Bin 0 -> 1874 bytes _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 _static/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 _static/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 + _static/admin/js/calendar.f8a5d055eb33.js.gz | Bin 0 -> 2193 bytes _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 _static/admin/js/cancel.js | 29 + _static/admin/js/cancel.js.gz | Bin 0 -> 430 bytes _static/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 + _static/admin/js/collapse.f84e7410290f.js.gz | Bin 0 -> 614 bytes _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 _static/admin/js/core.js | 170 + _static/admin/js/core.js.gz | Bin 0 -> 1505 bytes _static/admin/js/filters.0e360b7a9f80.js | 30 + _static/admin/js/filters.0e360b7a9f80.js.gz | Bin 0 -> 502 bytes _static/admin/js/filters.js | 30 + _static/admin/js/filters.js.gz | Bin 0 -> 502 bytes _static/admin/js/inlines.22d4d93c00b4.js | 359 + _static/admin/js/inlines.22d4d93c00b4.js.gz | Bin 0 -> 3744 bytes _static/admin/js/inlines.js | 359 + _static/admin/js/inlines.js.gz | Bin 0 -> 3744 bytes _static/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 _static/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 _static/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 _static/admin/js/theme.js | 56 + _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 _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 + _static/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 ++++++++++++++++ _static/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 _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 + _static/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 _static/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 _static/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 _static/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 +++++++ _static/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 .../favicon/favicon.7eae0e297809.ico | Bin 0 -> 20063 bytes _static/components/favicon/favicon.ico | Bin 0 -> 20063 bytes _static/nhncloud/css/landing.97e183aff020.css | 15 + .../nhncloud/css/landing.97e183aff020.css.gz | Bin 0 -> 198 bytes _static/nhncloud/css/landing.css | 15 + _static/nhncloud/css/landing.css.gz | Bin 0 -> 188 bytes .../images/nhncloud_api.0e9e064cb9b5.jpg | Bin 0 -> 25174 bytes _static/nhncloud/images/nhncloud_api.jpg | Bin 0 -> 25174 bytes _static/staticfiles.json | 1 + ansible_manager/__init__.py | 0 ansible_manager/admin.py | 8 + ansible_manager/apps.py | 6 + ansible_manager/forms.py | 12 + ansible_manager/migrations/0001_initial.py | 31 + ...2_alter_ansibletask_created_at_and_more.py | 56 + .../0003_ansiblejob_delete_ansibletask.py | 33 + ansible_manager/migrations/__init__.py | 0 ansible_manager/models.py | 23 + .../templates/ansible_manager/create_job.html | 17 + .../templates/ansible_manager/edit_job.html | 11 + .../templates/ansible_manager/job_detail.html | 12 + .../templates/ansible_manager/job_list.html | 36 + ansible_manager/tests.py | 3 + ansible_manager/urls.py | 13 + ansible_manager/views.py | 118 + blog/__init__.py | 0 blog/admin.py | 4 + blog/apps.py | 6 + blog/forms copy.py | 14 + blog/forms.py | 14 + blog/migrations/0001_initial.py | 32 + .../0002_remove_post_tags_post_tags.py | 22 + blog/migrations/0003_alter_post_summary.py | 18 + .../0004_remove_post_tags_post_tags.py | 24 + blog/migrations/__init__.py | 0 blog/models.py | 21 + blog/templates/blog/create_post copy.html | 39 + blog/templates/blog/create_post.html | 58 + blog/templates/blog/post_detail.html | 26 + blog/templates/blog/post_list.html | 19 + blog/tests.py | 3 + blog/urls.py | 10 + blog/views.py | 26 + butler/__init__.py | 0 butler/admin.py | 5 + butler/apps.py | 6 + butler/migrations/0001_initial.py | 31 + butler/migrations/0002_noticeboard.py | 27 + butler/migrations/__init__.py | 0 butler/models.py | 35 + butler/templates/butler/ip_mgmt.html | 177 + butler/templates/butler/landing.html | 13 + butler/templates/butler/notice.html | 35 + butler/templates/butler/notice_detail.html | 19 + butler/templates/butler/privacy.html | 12 + butler/templates/butler/templates.html | 99 + butler/templates/butler/test.html | 19 + butler/tests.py | 3 + butler/urls.py | 16 + butler/views.py | 118 + butler_ddochi/__init__.py | 0 butler_ddochi/asgi.py | 16 + butler_ddochi/settings.py | 170 + butler_ddochi/urls.py | 35 + butler_ddochi/wsgi.py | 16 + components/__init__.py | 0 components/admin.py | 3 + components/apps.py | 6 + components/migrations/__init__.py | 0 components/models.py | 3 + .../static/components/favicon/favicon.ico | Bin 0 -> 20063 bytes components/templates/components/_favicon.html | 3 + components/templates/components/_footer.html | 47 + .../templates/components/_nav copy.html | 93 + components/templates/components/_nav.html | 149 + components/templates/components/_sidebar.html | 139 + .../components/_sidebar_ansible.html | 14 + .../templates/components/base copy.html | 1851 +++ components/templates/components/base.html | 83 + .../templates/components/base_nhncloud.html | 86 + .../components/navigation_sample.html | 31 + components/templates/components/temp.html | 69 + components/tests.py | 3 + components/views.py | 3 + custom_auth/__init__.py | 0 custom_auth/admin.py | 27 + custom_auth/apps.py | 6 + custom_auth/forms.py | 67 + custom_auth/migrations/0001_initial.py | 45 + ..._tenant_id_kr1_customuser_tenant_id_kr2.py | 23 + .../migrations/0003_customuser_nhnc_id.py | 18 + ..._customuser_nhnc_api_tenant_id_and_more.py | 22 + .../0005_customuser_encrypted_private_key.py | 18 + custom_auth/migrations/__init__.py | 0 custom_auth/models.py | 42 + custom_auth/templates/custom_auth/login.html | 27 + .../custom_auth/login_django_default.html | 10 + .../templates/custom_auth/profile.html | 6 + custom_auth/templates/custom_auth/signup.html | 10 + .../templates/custom_auth/upload_ssh_key.html | 23 + custom_auth/tests.py | 3 + custom_auth/urls.py | 14 + custom_auth/views.py | 94 + docs/__init__.py | 0 docs/admin.py | 3 + docs/apps.py | 6 + docs/docs_md_files/privacy.md | 136 + docs/migrations/__init__.py | 0 docs/models.py | 3 + docs/tests.py | 3 + docs/views.py | 3 + manage.py | 22 + mm_msg/__init__.py | 0 mm_msg/admin.py | 12 + mm_msg/apps.py | 10 + mm_msg/forms.py | 10 + mm_msg/migrations/0001_initial.py | 23 + mm_msg/migrations/0002_message_title.py | 18 + mm_msg/migrations/0003_message_is_sent.py | 18 + mm_msg/migrations/__init__.py | 0 mm_msg/models.py | 11 + mm_msg/tasks.py | 46 + mm_msg/templates/mm_msg/message_list.html | 72 + mm_msg/tests.py | 3 + mm_msg/urls.py | 9 + mm_msg/views.py | 30 + nhnc_mgmt/__init__.py | 0 nhnc_mgmt/admin.py | 4 + nhnc_mgmt/apps.py | 6 + nhnc_mgmt/migrations/0001_initial.py | 23 + ...gw_author_igw_created_at_igw_updated_at.py | 31 + ...0003_rename_title_igw_igw_name_and_more.py | 32 + nhnc_mgmt/migrations/__init__.py | 0 nhnc_mgmt/models.py | 15 + .../templates/nhnc_mgmt/network_igw.html | 116 + nhnc_mgmt/tests.py | 3 + nhnc_mgmt/urls.py | 10 + nhnc_mgmt/views.py | 37 + nhncloud/__init__.py | 0 nhncloud/admin.py | 13 + nhncloud/apps.py | 6 + nhncloud/manifests/lb_ingress.yaml | 661 + nhncloud/manifests/svc.yaml | 10 + nhncloud/migrations/0001_initial.py | 30 + .../0002_alter_cluster_file_upload.py | 18 + .../migrations/0003_alter_cluster_title.py | 18 + .../0004_remove_cluster_file_upload.py | 17 + ...lter_cluster_content_alter_cluster_uuid.py | 23 + nhncloud/migrations/0006_cluster_type.py | 18 + nhncloud/migrations/__init__.py | 0 nhncloud/models.py | 17 + nhncloud/packages/ApiCompute.py | 143 + nhncloud/packages/ApiNks.py | 175 + nhncloud/packages/ApiStorageObject.py | 95 + nhncloud/packages/ApiToken.py | 42 + nhncloud/packages/ApiVpc.py | 229 + nhncloud/static/nhncloud/css/landing.css | 15 + .../static/nhncloud/images/nhncloud_api.jpg | Bin 0 -> 25174 bytes .../nhncloud/_rq_nks_components_apply.html | 111 + .../templates/nhncloud/_rq_nks_create.html | 262 + nhncloud/templates/nhncloud/_rq_vpc_list.html | 82 + nhncloud/templates/nhncloud/_rs_err.html | 16 + .../templates/nhncloud/_rs_nks_deploy.html | 16 + nhncloud/templates/nhncloud/_rs_nks_list.html | 170 + nhncloud/templates/nhncloud/_rs_vpc_list.html | 165 + nhncloud/templates/nhncloud/apiList.html | 182 + .../createClusterOnlyRequest.bak.html | 312 + .../nhncloud/createClusterRequest.html | 157 + .../templates/nhncloud/createVpcRequest.html | 133 + .../nhncloud/infoClusterDetailRequest.html | 109 + .../nhncloud/infoClusterListRequest.html | 76 + .../nhncloud/infoObjectStorageRequest.html | 97 + nhncloud/templates/nhncloud/preparations.html | 37 + .../templates/nhncloud/resultRequest.html | 222 + nhncloud/templates/nhncloud/rs_test.html | 10 + nhncloud/tests.py | 3 + nhncloud/urls.py | 53 + nhncloud/views.py | 1053 ++ requirements.txt | 55 + version | 1 + 695 files changed, 71766 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/build.yaml create mode 100644 Dockerfile create mode 100644 LICENSE create mode 100644 _media/inventories/inventory.ini create mode 100644 _media/inventories/inventory_2nZEePL.ini create mode 100644 _media/inventories/inventory_CAc8LnR.ini create mode 100644 _media/inventories/inventory_N8DmIuY.ini create mode 100644 _media/inventories/inventory_ja252ub.ini create mode 100644 _media/playbooks/test_playbook.yml create mode 100644 _media/playbooks/test_playbook_1AUxYca.yml create mode 100644 _media/playbooks/test_playbook_1aczRZD.yml create mode 100644 _media/playbooks/test_playbook_BomEp2O.yml create mode 100644 _media/playbooks/test_playbook_DddSBcY.yml create mode 100644 _media/playbooks/test_playbook_LUE1FHF.yml create mode 100644 _static/admin/css/autocomplete.4a81fc4242d0.css create mode 100644 _static/admin/css/autocomplete.4a81fc4242d0.css.gz create mode 100644 _static/admin/css/autocomplete.css create mode 100644 _static/admin/css/autocomplete.css.gz create mode 100644 _static/admin/css/base.523eb49842a7.css create mode 100644 _static/admin/css/base.523eb49842a7.css.gz create mode 100644 _static/admin/css/base.css create mode 100644 _static/admin/css/base.css.gz create mode 100644 _static/admin/css/changelists.9237a1ac391b.css create mode 100644 _static/admin/css/changelists.9237a1ac391b.css.gz create mode 100644 _static/admin/css/changelists.css create mode 100644 _static/admin/css/changelists.css.gz create mode 100644 _static/admin/css/dark_mode.css create mode 100644 _static/admin/css/dark_mode.css.gz create mode 100644 _static/admin/css/dark_mode.ef27a31af300.css create mode 100644 _static/admin/css/dark_mode.ef27a31af300.css.gz create mode 100644 _static/admin/css/dashboard.css create mode 100644 _static/admin/css/dashboard.css.gz create mode 100644 _static/admin/css/dashboard.e90f2068217b.css create mode 100644 _static/admin/css/dashboard.e90f2068217b.css.gz create mode 100644 _static/admin/css/forms.c14e1cb06392.css create mode 100644 _static/admin/css/forms.c14e1cb06392.css.gz create mode 100644 _static/admin/css/forms.css create mode 100644 _static/admin/css/forms.css.gz create mode 100644 _static/admin/css/login.586129c60a93.css create mode 100644 _static/admin/css/login.586129c60a93.css.gz create mode 100644 _static/admin/css/login.css create mode 100644 _static/admin/css/login.css.gz create mode 100644 _static/admin/css/nav_sidebar.269a1bd44627.css create mode 100644 _static/admin/css/nav_sidebar.269a1bd44627.css.gz create mode 100644 _static/admin/css/nav_sidebar.css create mode 100644 _static/admin/css/nav_sidebar.css.gz create mode 100644 _static/admin/css/responsive.css create mode 100644 _static/admin/css/responsive.css.gz create mode 100644 _static/admin/css/responsive.f6533dab034d.css create mode 100644 _static/admin/css/responsive.f6533dab034d.css.gz create mode 100644 _static/admin/css/responsive_rtl.7d1130848605.css create mode 100644 _static/admin/css/responsive_rtl.7d1130848605.css.gz create mode 100644 _static/admin/css/responsive_rtl.css create mode 100644 _static/admin/css/responsive_rtl.css.gz create mode 100644 _static/admin/css/rtl.512d4b53fc59.css create mode 100644 _static/admin/css/rtl.512d4b53fc59.css.gz create mode 100644 _static/admin/css/rtl.css create mode 100644 _static/admin/css/rtl.css.gz create mode 100644 _static/admin/css/vendor/select2/LICENSE-SELECT2.f94142512c91.md create mode 100644 _static/admin/css/vendor/select2/LICENSE-SELECT2.f94142512c91.md.gz create mode 100644 _static/admin/css/vendor/select2/LICENSE-SELECT2.md create mode 100644 _static/admin/css/vendor/select2/LICENSE-SELECT2.md.gz create mode 100644 _static/admin/css/vendor/select2/select2.a2194c262648.css create mode 100644 _static/admin/css/vendor/select2/select2.a2194c262648.css.gz create mode 100644 _static/admin/css/vendor/select2/select2.css create mode 100644 _static/admin/css/vendor/select2/select2.css.gz create mode 100644 _static/admin/css/vendor/select2/select2.min.9f54e6414f87.css create mode 100644 _static/admin/css/vendor/select2/select2.min.9f54e6414f87.css.gz create mode 100644 _static/admin/css/vendor/select2/select2.min.css create mode 100644 _static/admin/css/vendor/select2/select2.min.css.gz create mode 100644 _static/admin/css/widgets.css create mode 100644 _static/admin/css/widgets.css.gz create mode 100644 _static/admin/css/widgets.ee33ab26c7c2.css create mode 100644 _static/admin/css/widgets.ee33ab26c7c2.css.gz create mode 100644 _static/admin/img/LICENSE create mode 100644 _static/admin/img/LICENSE.2c54f4e1ca1c create mode 100644 _static/admin/img/LICENSE.2c54f4e1ca1c.gz create mode 100644 _static/admin/img/LICENSE.gz create mode 100644 _static/admin/img/README.a70711a38d87.txt create mode 100644 _static/admin/img/README.a70711a38d87.txt.gz create mode 100644 _static/admin/img/README.txt create mode 100644 _static/admin/img/README.txt.gz create mode 100644 _static/admin/img/calendar-icons.39b290681a8b.svg create mode 100644 _static/admin/img/calendar-icons.39b290681a8b.svg.gz create mode 100644 _static/admin/img/calendar-icons.svg create mode 100644 _static/admin/img/calendar-icons.svg.gz create mode 100644 _static/admin/img/gis/move_vertex_off.7a23bf31ef8a.svg create mode 100644 _static/admin/img/gis/move_vertex_off.7a23bf31ef8a.svg.gz create mode 100644 _static/admin/img/gis/move_vertex_off.svg create mode 100644 _static/admin/img/gis/move_vertex_off.svg.gz create mode 100644 _static/admin/img/gis/move_vertex_on.0047eba25b67.svg create mode 100644 _static/admin/img/gis/move_vertex_on.0047eba25b67.svg.gz create mode 100644 _static/admin/img/gis/move_vertex_on.svg create mode 100644 _static/admin/img/gis/move_vertex_on.svg.gz create mode 100644 _static/admin/img/icon-addlink.d519b3bab011.svg create mode 100644 _static/admin/img/icon-addlink.d519b3bab011.svg.gz create mode 100644 _static/admin/img/icon-addlink.svg create mode 100644 _static/admin/img/icon-addlink.svg.gz create mode 100644 _static/admin/img/icon-alert.034cc7d8a67f.svg create mode 100644 _static/admin/img/icon-alert.034cc7d8a67f.svg.gz create mode 100644 _static/admin/img/icon-alert.svg create mode 100644 _static/admin/img/icon-alert.svg.gz create mode 100644 _static/admin/img/icon-calendar.ac7aea671bea.svg create mode 100644 _static/admin/img/icon-calendar.ac7aea671bea.svg.gz create mode 100644 _static/admin/img/icon-calendar.svg create mode 100644 _static/admin/img/icon-calendar.svg.gz create mode 100644 _static/admin/img/icon-changelink.18d2fd706348.svg create mode 100644 _static/admin/img/icon-changelink.18d2fd706348.svg.gz create mode 100644 _static/admin/img/icon-changelink.svg create mode 100644 _static/admin/img/icon-changelink.svg.gz create mode 100644 _static/admin/img/icon-clock.e1d4dfac3f2b.svg create mode 100644 _static/admin/img/icon-clock.e1d4dfac3f2b.svg.gz create mode 100644 _static/admin/img/icon-clock.svg create mode 100644 _static/admin/img/icon-clock.svg.gz create mode 100644 _static/admin/img/icon-deletelink.564ef9dc3854.svg create mode 100644 _static/admin/img/icon-deletelink.564ef9dc3854.svg.gz create mode 100644 _static/admin/img/icon-deletelink.svg create mode 100644 _static/admin/img/icon-deletelink.svg.gz create mode 100644 _static/admin/img/icon-no.439e821418cd.svg create mode 100644 _static/admin/img/icon-no.439e821418cd.svg.gz create mode 100644 _static/admin/img/icon-no.svg create mode 100644 _static/admin/img/icon-no.svg.gz create mode 100644 _static/admin/img/icon-unknown-alt.81536e128bb6.svg create mode 100644 _static/admin/img/icon-unknown-alt.81536e128bb6.svg.gz create mode 100644 _static/admin/img/icon-unknown-alt.svg create mode 100644 _static/admin/img/icon-unknown-alt.svg.gz create mode 100644 _static/admin/img/icon-unknown.a18cb4398978.svg create mode 100644 _static/admin/img/icon-unknown.a18cb4398978.svg.gz create mode 100644 _static/admin/img/icon-unknown.svg create mode 100644 _static/admin/img/icon-unknown.svg.gz create mode 100644 _static/admin/img/icon-viewlink.41eb31f7826e.svg create mode 100644 _static/admin/img/icon-viewlink.41eb31f7826e.svg.gz create mode 100644 _static/admin/img/icon-viewlink.svg create mode 100644 _static/admin/img/icon-viewlink.svg.gz create mode 100644 _static/admin/img/icon-yes.d2f9f035226a.svg create mode 100644 _static/admin/img/icon-yes.d2f9f035226a.svg.gz create mode 100644 _static/admin/img/icon-yes.svg create mode 100644 _static/admin/img/icon-yes.svg.gz create mode 100644 _static/admin/img/inline-delete.fec1b761f254.svg create mode 100644 _static/admin/img/inline-delete.fec1b761f254.svg.gz create mode 100644 _static/admin/img/inline-delete.svg create mode 100644 _static/admin/img/inline-delete.svg.gz create mode 100644 _static/admin/img/search.7cf54ff789c6.svg create mode 100644 _static/admin/img/search.7cf54ff789c6.svg.gz create mode 100644 _static/admin/img/search.svg create mode 100644 _static/admin/img/search.svg.gz create mode 100644 _static/admin/img/selector-icons.b4555096cea2.svg create mode 100644 _static/admin/img/selector-icons.b4555096cea2.svg.gz create mode 100644 _static/admin/img/selector-icons.svg create mode 100644 _static/admin/img/selector-icons.svg.gz create mode 100644 _static/admin/img/sorting-icons.3a097b59f104.svg create mode 100644 _static/admin/img/sorting-icons.3a097b59f104.svg.gz create mode 100644 _static/admin/img/sorting-icons.svg create mode 100644 _static/admin/img/sorting-icons.svg.gz create mode 100644 _static/admin/img/tooltag-add.e59d620a9742.svg create mode 100644 _static/admin/img/tooltag-add.e59d620a9742.svg.gz create mode 100644 _static/admin/img/tooltag-add.svg create mode 100644 _static/admin/img/tooltag-add.svg.gz create mode 100644 _static/admin/img/tooltag-arrowright.bbfb788a849e.svg create mode 100644 _static/admin/img/tooltag-arrowright.bbfb788a849e.svg.gz create mode 100644 _static/admin/img/tooltag-arrowright.svg create mode 100644 _static/admin/img/tooltag-arrowright.svg.gz create mode 100644 _static/admin/js/SelectBox.7d3ce5a98007.js create mode 100644 _static/admin/js/SelectBox.7d3ce5a98007.js.gz create mode 100644 _static/admin/js/SelectBox.js create mode 100644 _static/admin/js/SelectBox.js.gz create mode 100644 _static/admin/js/SelectFilter2.bdb8d0cc579e.js create mode 100644 _static/admin/js/SelectFilter2.bdb8d0cc579e.js.gz create mode 100644 _static/admin/js/SelectFilter2.js create mode 100644 _static/admin/js/SelectFilter2.js.gz create mode 100644 _static/admin/js/actions.eac7e3441574.js create mode 100644 _static/admin/js/actions.eac7e3441574.js.gz create mode 100644 _static/admin/js/actions.js create mode 100644 _static/admin/js/actions.js.gz create mode 100644 _static/admin/js/admin/DateTimeShortcuts.9f6e209cebca.js create mode 100644 _static/admin/js/admin/DateTimeShortcuts.9f6e209cebca.js.gz create mode 100644 _static/admin/js/admin/DateTimeShortcuts.js create mode 100644 _static/admin/js/admin/DateTimeShortcuts.js.gz create mode 100644 _static/admin/js/admin/RelatedObjectLookups.8609f99b9ab2.js create mode 100644 _static/admin/js/admin/RelatedObjectLookups.8609f99b9ab2.js.gz create mode 100644 _static/admin/js/admin/RelatedObjectLookups.js create mode 100644 _static/admin/js/admin/RelatedObjectLookups.js.gz create mode 100644 _static/admin/js/autocomplete.01591ab27be7.js create mode 100644 _static/admin/js/autocomplete.01591ab27be7.js.gz create mode 100644 _static/admin/js/autocomplete.js create mode 100644 _static/admin/js/autocomplete.js.gz create mode 100644 _static/admin/js/calendar.f8a5d055eb33.js create mode 100644 _static/admin/js/calendar.f8a5d055eb33.js.gz create mode 100644 _static/admin/js/calendar.js create mode 100644 _static/admin/js/calendar.js.gz create mode 100644 _static/admin/js/cancel.ecc4c5ca7b32.js create mode 100644 _static/admin/js/cancel.ecc4c5ca7b32.js.gz create mode 100644 _static/admin/js/cancel.js create mode 100644 _static/admin/js/cancel.js.gz create mode 100644 _static/admin/js/change_form.9d8ca4f96b75.js create mode 100644 _static/admin/js/change_form.9d8ca4f96b75.js.gz create mode 100644 _static/admin/js/change_form.js create mode 100644 _static/admin/js/change_form.js.gz create mode 100644 _static/admin/js/collapse.f84e7410290f.js create mode 100644 _static/admin/js/collapse.f84e7410290f.js.gz create mode 100644 _static/admin/js/collapse.js create mode 100644 _static/admin/js/collapse.js.gz create mode 100644 _static/admin/js/core.cf103cd04ebf.js create mode 100644 _static/admin/js/core.cf103cd04ebf.js.gz create mode 100644 _static/admin/js/core.js create mode 100644 _static/admin/js/core.js.gz create mode 100644 _static/admin/js/filters.0e360b7a9f80.js create mode 100644 _static/admin/js/filters.0e360b7a9f80.js.gz create mode 100644 _static/admin/js/filters.js create mode 100644 _static/admin/js/filters.js.gz create mode 100644 _static/admin/js/inlines.22d4d93c00b4.js create mode 100644 _static/admin/js/inlines.22d4d93c00b4.js.gz create mode 100644 _static/admin/js/inlines.js create mode 100644 _static/admin/js/inlines.js.gz create mode 100644 _static/admin/js/jquery.init.b7781a0897fc.js create mode 100644 _static/admin/js/jquery.init.b7781a0897fc.js.gz create mode 100644 _static/admin/js/jquery.init.js create mode 100644 _static/admin/js/jquery.init.js.gz create mode 100644 _static/admin/js/nav_sidebar.3b9190d420b1.js create mode 100644 _static/admin/js/nav_sidebar.3b9190d420b1.js.gz create mode 100644 _static/admin/js/nav_sidebar.js create mode 100644 _static/admin/js/nav_sidebar.js.gz create mode 100644 _static/admin/js/popup_response.c6cc78ea5551.js create mode 100644 _static/admin/js/popup_response.c6cc78ea5551.js.gz create mode 100644 _static/admin/js/popup_response.js create mode 100644 _static/admin/js/popup_response.js.gz create mode 100644 _static/admin/js/prepopulate.bd2361dfd64d.js create mode 100644 _static/admin/js/prepopulate.bd2361dfd64d.js.gz create mode 100644 _static/admin/js/prepopulate.js create mode 100644 _static/admin/js/prepopulate.js.gz create mode 100644 _static/admin/js/prepopulate_init.6cac7f3105b8.js create mode 100644 _static/admin/js/prepopulate_init.6cac7f3105b8.js.gz create mode 100644 _static/admin/js/prepopulate_init.js create mode 100644 _static/admin/js/prepopulate_init.js.gz create mode 100644 _static/admin/js/theme.ab270f56bb9c.js create mode 100644 _static/admin/js/theme.ab270f56bb9c.js.gz create mode 100644 _static/admin/js/theme.js create mode 100644 _static/admin/js/theme.js.gz create mode 100644 _static/admin/js/urlify.ae970a820212.js create mode 100644 _static/admin/js/urlify.ae970a820212.js.gz create mode 100644 _static/admin/js/urlify.js create mode 100644 _static/admin/js/urlify.js.gz create mode 100644 _static/admin/js/vendor/jquery/LICENSE.de877aa6d744.txt create mode 100644 _static/admin/js/vendor/jquery/LICENSE.de877aa6d744.txt.gz create mode 100644 _static/admin/js/vendor/jquery/LICENSE.txt create mode 100644 _static/admin/js/vendor/jquery/LICENSE.txt.gz create mode 100644 _static/admin/js/vendor/jquery/jquery.0208b96062ba.js create mode 100644 _static/admin/js/vendor/jquery/jquery.0208b96062ba.js.gz create mode 100644 _static/admin/js/vendor/jquery/jquery.js create mode 100644 _static/admin/js/vendor/jquery/jquery.js.gz create mode 100644 _static/admin/js/vendor/jquery/jquery.min.641dd1437010.js create mode 100644 _static/admin/js/vendor/jquery/jquery.min.641dd1437010.js.gz create mode 100644 _static/admin/js/vendor/jquery/jquery.min.js create mode 100644 _static/admin/js/vendor/jquery/jquery.min.js.gz create mode 100644 _static/admin/js/vendor/select2/LICENSE.f94142512c91.md create mode 100644 _static/admin/js/vendor/select2/LICENSE.f94142512c91.md.gz create mode 100644 _static/admin/js/vendor/select2/LICENSE.md create mode 100644 _static/admin/js/vendor/select2/LICENSE.md.gz create mode 100644 _static/admin/js/vendor/select2/i18n/af.4f6fcd73488c.js create mode 100644 _static/admin/js/vendor/select2/i18n/af.4f6fcd73488c.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/af.js create mode 100644 _static/admin/js/vendor/select2/i18n/af.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/ar.65aa8e36bf5d.js create mode 100644 _static/admin/js/vendor/select2/i18n/ar.65aa8e36bf5d.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/ar.js create mode 100644 _static/admin/js/vendor/select2/i18n/ar.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/az.270c257daf81.js create mode 100644 _static/admin/js/vendor/select2/i18n/az.270c257daf81.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/az.js create mode 100644 _static/admin/js/vendor/select2/i18n/az.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/bg.39b8be30d4f0.js create mode 100644 _static/admin/js/vendor/select2/i18n/bg.39b8be30d4f0.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/bg.js create mode 100644 _static/admin/js/vendor/select2/i18n/bg.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/bn.6d42b4dd5665.js create mode 100644 _static/admin/js/vendor/select2/i18n/bn.6d42b4dd5665.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/bn.js create mode 100644 _static/admin/js/vendor/select2/i18n/bn.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/bs.91624382358e.js create mode 100644 _static/admin/js/vendor/select2/i18n/bs.91624382358e.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/bs.js create mode 100644 _static/admin/js/vendor/select2/i18n/bs.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/ca.a166b745933a.js create mode 100644 _static/admin/js/vendor/select2/i18n/ca.a166b745933a.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/ca.js create mode 100644 _static/admin/js/vendor/select2/i18n/ca.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/cs.4f43e8e7d33a.js create mode 100644 _static/admin/js/vendor/select2/i18n/cs.4f43e8e7d33a.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/cs.js create mode 100644 _static/admin/js/vendor/select2/i18n/cs.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/da.766346afe4dd.js create mode 100644 _static/admin/js/vendor/select2/i18n/da.766346afe4dd.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/da.js create mode 100644 _static/admin/js/vendor/select2/i18n/da.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/de.8a1c222b0204.js create mode 100644 _static/admin/js/vendor/select2/i18n/de.8a1c222b0204.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/de.js create mode 100644 _static/admin/js/vendor/select2/i18n/de.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/dsb.56372c92d2f1.js create mode 100644 _static/admin/js/vendor/select2/i18n/dsb.56372c92d2f1.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/dsb.js create mode 100644 _static/admin/js/vendor/select2/i18n/dsb.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/el.27097f071856.js create mode 100644 _static/admin/js/vendor/select2/i18n/el.27097f071856.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/el.js create mode 100644 _static/admin/js/vendor/select2/i18n/el.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/en.cf932ba09a98.js create mode 100644 _static/admin/js/vendor/select2/i18n/en.cf932ba09a98.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/en.js create mode 100644 _static/admin/js/vendor/select2/i18n/en.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/es.66dbc2652fb1.js create mode 100644 _static/admin/js/vendor/select2/i18n/es.66dbc2652fb1.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/es.js create mode 100644 _static/admin/js/vendor/select2/i18n/es.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/et.2b96fd98289d.js create mode 100644 _static/admin/js/vendor/select2/i18n/et.2b96fd98289d.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/et.js create mode 100644 _static/admin/js/vendor/select2/i18n/et.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/eu.adfe5c97b72c.js create mode 100644 _static/admin/js/vendor/select2/i18n/eu.adfe5c97b72c.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/eu.js create mode 100644 _static/admin/js/vendor/select2/i18n/eu.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/fa.3b5bd1961cfd.js create mode 100644 _static/admin/js/vendor/select2/i18n/fa.3b5bd1961cfd.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/fa.js create mode 100644 _static/admin/js/vendor/select2/i18n/fa.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/fi.614ec42aa9ba.js create mode 100644 _static/admin/js/vendor/select2/i18n/fi.614ec42aa9ba.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/fi.js create mode 100644 _static/admin/js/vendor/select2/i18n/fi.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/fr.05e0542fcfe6.js create mode 100644 _static/admin/js/vendor/select2/i18n/fr.05e0542fcfe6.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/fr.js create mode 100644 _static/admin/js/vendor/select2/i18n/fr.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/gl.d99b1fedaa86.js create mode 100644 _static/admin/js/vendor/select2/i18n/gl.d99b1fedaa86.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/gl.js create mode 100644 _static/admin/js/vendor/select2/i18n/gl.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/he.e420ff6cd3ed.js create mode 100644 _static/admin/js/vendor/select2/i18n/he.e420ff6cd3ed.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/he.js create mode 100644 _static/admin/js/vendor/select2/i18n/he.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/hi.70640d41628f.js create mode 100644 _static/admin/js/vendor/select2/i18n/hi.70640d41628f.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/hi.js create mode 100644 _static/admin/js/vendor/select2/i18n/hi.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/hr.a2b092cc1147.js create mode 100644 _static/admin/js/vendor/select2/i18n/hr.a2b092cc1147.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/hr.js create mode 100644 _static/admin/js/vendor/select2/i18n/hr.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/hsb.fa3b55265efe.js create mode 100644 _static/admin/js/vendor/select2/i18n/hsb.fa3b55265efe.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/hsb.js create mode 100644 _static/admin/js/vendor/select2/i18n/hsb.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/hu.6ec6039cb8a3.js create mode 100644 _static/admin/js/vendor/select2/i18n/hu.6ec6039cb8a3.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/hu.js create mode 100644 _static/admin/js/vendor/select2/i18n/hu.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/hy.c7babaeef5a6.js create mode 100644 _static/admin/js/vendor/select2/i18n/hy.c7babaeef5a6.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/hy.js create mode 100644 _static/admin/js/vendor/select2/i18n/hy.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/id.04debded514d.js create mode 100644 _static/admin/js/vendor/select2/i18n/id.04debded514d.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/id.js create mode 100644 _static/admin/js/vendor/select2/i18n/id.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/is.3ddd9a6a97e9.js create mode 100644 _static/admin/js/vendor/select2/i18n/is.3ddd9a6a97e9.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/is.js create mode 100644 _static/admin/js/vendor/select2/i18n/is.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/it.be4fe8d365b5.js create mode 100644 _static/admin/js/vendor/select2/i18n/it.be4fe8d365b5.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/it.js create mode 100644 _static/admin/js/vendor/select2/i18n/it.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/ja.170ae885d74f.js create mode 100644 _static/admin/js/vendor/select2/i18n/ja.170ae885d74f.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/ja.js create mode 100644 _static/admin/js/vendor/select2/i18n/ja.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/ka.2083264a54f0.js create mode 100644 _static/admin/js/vendor/select2/i18n/ka.2083264a54f0.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/ka.js create mode 100644 _static/admin/js/vendor/select2/i18n/ka.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/km.c23089cb06ca.js create mode 100644 _static/admin/js/vendor/select2/i18n/km.c23089cb06ca.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/km.js create mode 100644 _static/admin/js/vendor/select2/i18n/km.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/ko.e7be6c20e673.js create mode 100644 _static/admin/js/vendor/select2/i18n/ko.e7be6c20e673.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/ko.js create mode 100644 _static/admin/js/vendor/select2/i18n/ko.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/lt.23c7ce903300.js create mode 100644 _static/admin/js/vendor/select2/i18n/lt.23c7ce903300.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/lt.js create mode 100644 _static/admin/js/vendor/select2/i18n/lt.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/lv.08e62128eac1.js create mode 100644 _static/admin/js/vendor/select2/i18n/lv.08e62128eac1.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/lv.js create mode 100644 _static/admin/js/vendor/select2/i18n/lv.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/mk.dabbb9087130.js create mode 100644 _static/admin/js/vendor/select2/i18n/mk.dabbb9087130.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/mk.js create mode 100644 _static/admin/js/vendor/select2/i18n/mk.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/ms.4ba82c9a51ce.js create mode 100644 _static/admin/js/vendor/select2/i18n/ms.4ba82c9a51ce.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/ms.js create mode 100644 _static/admin/js/vendor/select2/i18n/ms.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/nb.da2fce143f27.js create mode 100644 _static/admin/js/vendor/select2/i18n/nb.da2fce143f27.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/nb.js create mode 100644 _static/admin/js/vendor/select2/i18n/nb.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/ne.3d79fd3f08db.js create mode 100644 _static/admin/js/vendor/select2/i18n/ne.3d79fd3f08db.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/ne.js create mode 100644 _static/admin/js/vendor/select2/i18n/ne.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/nl.997868a37ed8.js create mode 100644 _static/admin/js/vendor/select2/i18n/nl.997868a37ed8.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/nl.js create mode 100644 _static/admin/js/vendor/select2/i18n/nl.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/pl.6031b4f16452.js create mode 100644 _static/admin/js/vendor/select2/i18n/pl.6031b4f16452.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/pl.js create mode 100644 _static/admin/js/vendor/select2/i18n/pl.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/ps.38dfa47af9e0.js create mode 100644 _static/admin/js/vendor/select2/i18n/ps.38dfa47af9e0.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/ps.js create mode 100644 _static/admin/js/vendor/select2/i18n/ps.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/pt-BR.e1b294433e7f.js create mode 100644 _static/admin/js/vendor/select2/i18n/pt-BR.e1b294433e7f.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/pt-BR.js create mode 100644 _static/admin/js/vendor/select2/i18n/pt-BR.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/pt.33b4a3b44d43.js create mode 100644 _static/admin/js/vendor/select2/i18n/pt.33b4a3b44d43.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/pt.js create mode 100644 _static/admin/js/vendor/select2/i18n/pt.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/ro.f75cb460ec3b.js create mode 100644 _static/admin/js/vendor/select2/i18n/ro.f75cb460ec3b.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/ro.js create mode 100644 _static/admin/js/vendor/select2/i18n/ro.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/ru.934aa95f5b5f.js create mode 100644 _static/admin/js/vendor/select2/i18n/ru.934aa95f5b5f.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/ru.js create mode 100644 _static/admin/js/vendor/select2/i18n/ru.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/sk.33d02cef8d11.js create mode 100644 _static/admin/js/vendor/select2/i18n/sk.33d02cef8d11.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/sk.js create mode 100644 _static/admin/js/vendor/select2/i18n/sk.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/sl.131a78bc0752.js create mode 100644 _static/admin/js/vendor/select2/i18n/sl.131a78bc0752.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/sl.js create mode 100644 _static/admin/js/vendor/select2/i18n/sl.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/sq.5636b60d29c9.js create mode 100644 _static/admin/js/vendor/select2/i18n/sq.5636b60d29c9.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/sq.js create mode 100644 _static/admin/js/vendor/select2/i18n/sq.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/sr-Cyrl.f254bb8c4c7c.js create mode 100644 _static/admin/js/vendor/select2/i18n/sr-Cyrl.f254bb8c4c7c.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/sr-Cyrl.js create mode 100644 _static/admin/js/vendor/select2/i18n/sr-Cyrl.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/sr.5ed85a48f483.js create mode 100644 _static/admin/js/vendor/select2/i18n/sr.5ed85a48f483.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/sr.js create mode 100644 _static/admin/js/vendor/select2/i18n/sr.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/sv.7a9c2f71e777.js create mode 100644 _static/admin/js/vendor/select2/i18n/sv.7a9c2f71e777.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/sv.js create mode 100644 _static/admin/js/vendor/select2/i18n/sv.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/th.f38c20b0221b.js create mode 100644 _static/admin/js/vendor/select2/i18n/th.f38c20b0221b.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/th.js create mode 100644 _static/admin/js/vendor/select2/i18n/th.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/tk.7c572a68c78f.js create mode 100644 _static/admin/js/vendor/select2/i18n/tk.7c572a68c78f.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/tk.js create mode 100644 _static/admin/js/vendor/select2/i18n/tk.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/tr.b5a0643d1545.js create mode 100644 _static/admin/js/vendor/select2/i18n/tr.b5a0643d1545.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/tr.js create mode 100644 _static/admin/js/vendor/select2/i18n/tr.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/uk.8cede7f4803c.js create mode 100644 _static/admin/js/vendor/select2/i18n/uk.8cede7f4803c.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/uk.js create mode 100644 _static/admin/js/vendor/select2/i18n/uk.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/vi.097a5b75b3e1.js create mode 100644 _static/admin/js/vendor/select2/i18n/vi.097a5b75b3e1.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/vi.js create mode 100644 _static/admin/js/vendor/select2/i18n/vi.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/zh-CN.2cff662ec5f9.js create mode 100644 _static/admin/js/vendor/select2/i18n/zh-CN.2cff662ec5f9.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/zh-CN.js create mode 100644 _static/admin/js/vendor/select2/i18n/zh-CN.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/zh-TW.04554a227c2b.js create mode 100644 _static/admin/js/vendor/select2/i18n/zh-TW.04554a227c2b.js.gz create mode 100644 _static/admin/js/vendor/select2/i18n/zh-TW.js create mode 100644 _static/admin/js/vendor/select2/i18n/zh-TW.js.gz create mode 100644 _static/admin/js/vendor/select2/select2.full.c2afdeda3058.js create mode 100644 _static/admin/js/vendor/select2/select2.full.c2afdeda3058.js.gz create mode 100644 _static/admin/js/vendor/select2/select2.full.js create mode 100644 _static/admin/js/vendor/select2/select2.full.js.gz create mode 100644 _static/admin/js/vendor/select2/select2.full.min.fcd7500d8e13.js create mode 100644 _static/admin/js/vendor/select2/select2.full.min.fcd7500d8e13.js.gz create mode 100644 _static/admin/js/vendor/select2/select2.full.min.js create mode 100644 _static/admin/js/vendor/select2/select2.full.min.js.gz create mode 100644 _static/admin/js/vendor/xregexp/LICENSE.bf79e414957a.txt create mode 100644 _static/admin/js/vendor/xregexp/LICENSE.bf79e414957a.txt.gz create mode 100644 _static/admin/js/vendor/xregexp/LICENSE.txt create mode 100644 _static/admin/js/vendor/xregexp/LICENSE.txt.gz create mode 100644 _static/admin/js/vendor/xregexp/xregexp.efda034b9537.js create mode 100644 _static/admin/js/vendor/xregexp/xregexp.efda034b9537.js.gz create mode 100644 _static/admin/js/vendor/xregexp/xregexp.js create mode 100644 _static/admin/js/vendor/xregexp/xregexp.js.gz create mode 100644 _static/admin/js/vendor/xregexp/xregexp.min.b0439563a5d3.js create mode 100644 _static/admin/js/vendor/xregexp/xregexp.min.b0439563a5d3.js.gz create mode 100644 _static/admin/js/vendor/xregexp/xregexp.min.js create mode 100644 _static/admin/js/vendor/xregexp/xregexp.min.js.gz create mode 100644 _static/components/favicon/favicon.7eae0e297809.ico create mode 100644 _static/components/favicon/favicon.ico create mode 100644 _static/nhncloud/css/landing.97e183aff020.css create mode 100644 _static/nhncloud/css/landing.97e183aff020.css.gz create mode 100644 _static/nhncloud/css/landing.css create mode 100644 _static/nhncloud/css/landing.css.gz create mode 100644 _static/nhncloud/images/nhncloud_api.0e9e064cb9b5.jpg create mode 100644 _static/nhncloud/images/nhncloud_api.jpg create mode 100644 _static/staticfiles.json create mode 100644 ansible_manager/__init__.py create mode 100644 ansible_manager/admin.py create mode 100644 ansible_manager/apps.py create mode 100644 ansible_manager/forms.py create mode 100644 ansible_manager/migrations/0001_initial.py create mode 100644 ansible_manager/migrations/0002_alter_ansibletask_created_at_and_more.py create mode 100644 ansible_manager/migrations/0003_ansiblejob_delete_ansibletask.py create mode 100644 ansible_manager/migrations/__init__.py create mode 100644 ansible_manager/models.py create mode 100644 ansible_manager/templates/ansible_manager/create_job.html create mode 100644 ansible_manager/templates/ansible_manager/edit_job.html create mode 100644 ansible_manager/templates/ansible_manager/job_detail.html create mode 100644 ansible_manager/templates/ansible_manager/job_list.html create mode 100644 ansible_manager/tests.py create mode 100644 ansible_manager/urls.py create mode 100644 ansible_manager/views.py create mode 100644 blog/__init__.py create mode 100644 blog/admin.py create mode 100644 blog/apps.py create mode 100644 blog/forms copy.py create mode 100644 blog/forms.py create mode 100644 blog/migrations/0001_initial.py create mode 100644 blog/migrations/0002_remove_post_tags_post_tags.py create mode 100644 blog/migrations/0003_alter_post_summary.py create mode 100644 blog/migrations/0004_remove_post_tags_post_tags.py create mode 100644 blog/migrations/__init__.py create mode 100644 blog/models.py create mode 100644 blog/templates/blog/create_post copy.html create mode 100644 blog/templates/blog/create_post.html create mode 100644 blog/templates/blog/post_detail.html create mode 100644 blog/templates/blog/post_list.html create mode 100644 blog/tests.py create mode 100644 blog/urls.py create mode 100644 blog/views.py create mode 100644 butler/__init__.py create mode 100644 butler/admin.py create mode 100644 butler/apps.py create mode 100644 butler/migrations/0001_initial.py create mode 100644 butler/migrations/0002_noticeboard.py create mode 100644 butler/migrations/__init__.py create mode 100644 butler/models.py create mode 100644 butler/templates/butler/ip_mgmt.html create mode 100644 butler/templates/butler/landing.html create mode 100644 butler/templates/butler/notice.html create mode 100644 butler/templates/butler/notice_detail.html create mode 100644 butler/templates/butler/privacy.html create mode 100644 butler/templates/butler/templates.html create mode 100644 butler/templates/butler/test.html create mode 100644 butler/tests.py create mode 100644 butler/urls.py create mode 100644 butler/views.py create mode 100644 butler_ddochi/__init__.py create mode 100644 butler_ddochi/asgi.py create mode 100644 butler_ddochi/settings.py create mode 100644 butler_ddochi/urls.py create mode 100644 butler_ddochi/wsgi.py create mode 100644 components/__init__.py create mode 100644 components/admin.py create mode 100644 components/apps.py create mode 100644 components/migrations/__init__.py create mode 100644 components/models.py create mode 100644 components/static/components/favicon/favicon.ico create mode 100644 components/templates/components/_favicon.html create mode 100644 components/templates/components/_footer.html create mode 100644 components/templates/components/_nav copy.html create mode 100644 components/templates/components/_nav.html create mode 100644 components/templates/components/_sidebar.html create mode 100644 components/templates/components/_sidebar_ansible.html create mode 100644 components/templates/components/base copy.html create mode 100644 components/templates/components/base.html create mode 100644 components/templates/components/base_nhncloud.html create mode 100644 components/templates/components/navigation_sample.html create mode 100644 components/templates/components/temp.html create mode 100644 components/tests.py create mode 100644 components/views.py create mode 100644 custom_auth/__init__.py create mode 100644 custom_auth/admin.py create mode 100644 custom_auth/apps.py create mode 100644 custom_auth/forms.py create mode 100644 custom_auth/migrations/0001_initial.py create mode 100644 custom_auth/migrations/0002_customuser_tenant_id_kr1_customuser_tenant_id_kr2.py create mode 100644 custom_auth/migrations/0003_customuser_nhnc_id.py create mode 100644 custom_auth/migrations/0004_rename_tenant_id_kr1_customuser_nhnc_api_tenant_id_and_more.py create mode 100644 custom_auth/migrations/0005_customuser_encrypted_private_key.py create mode 100644 custom_auth/migrations/__init__.py create mode 100644 custom_auth/models.py create mode 100644 custom_auth/templates/custom_auth/login.html create mode 100644 custom_auth/templates/custom_auth/login_django_default.html create mode 100644 custom_auth/templates/custom_auth/profile.html create mode 100644 custom_auth/templates/custom_auth/signup.html create mode 100644 custom_auth/templates/custom_auth/upload_ssh_key.html create mode 100644 custom_auth/tests.py create mode 100644 custom_auth/urls.py create mode 100644 custom_auth/views.py create mode 100644 docs/__init__.py create mode 100644 docs/admin.py create mode 100644 docs/apps.py create mode 100644 docs/docs_md_files/privacy.md create mode 100644 docs/migrations/__init__.py create mode 100644 docs/models.py create mode 100644 docs/tests.py create mode 100644 docs/views.py create mode 100644 manage.py create mode 100644 mm_msg/__init__.py create mode 100644 mm_msg/admin.py create mode 100644 mm_msg/apps.py create mode 100644 mm_msg/forms.py create mode 100644 mm_msg/migrations/0001_initial.py create mode 100644 mm_msg/migrations/0002_message_title.py create mode 100644 mm_msg/migrations/0003_message_is_sent.py create mode 100644 mm_msg/migrations/__init__.py create mode 100644 mm_msg/models.py create mode 100644 mm_msg/tasks.py create mode 100644 mm_msg/templates/mm_msg/message_list.html create mode 100644 mm_msg/tests.py create mode 100644 mm_msg/urls.py create mode 100644 mm_msg/views.py create mode 100644 nhnc_mgmt/__init__.py create mode 100644 nhnc_mgmt/admin.py create mode 100644 nhnc_mgmt/apps.py create mode 100644 nhnc_mgmt/migrations/0001_initial.py create mode 100644 nhnc_mgmt/migrations/0002_igw_author_igw_created_at_igw_updated_at.py create mode 100644 nhnc_mgmt/migrations/0003_rename_title_igw_igw_name_and_more.py create mode 100644 nhnc_mgmt/migrations/__init__.py create mode 100644 nhnc_mgmt/models.py create mode 100644 nhnc_mgmt/templates/nhnc_mgmt/network_igw.html create mode 100644 nhnc_mgmt/tests.py create mode 100644 nhnc_mgmt/urls.py create mode 100644 nhnc_mgmt/views.py create mode 100644 nhncloud/__init__.py create mode 100644 nhncloud/admin.py create mode 100644 nhncloud/apps.py create mode 100644 nhncloud/manifests/lb_ingress.yaml create mode 100644 nhncloud/manifests/svc.yaml create mode 100644 nhncloud/migrations/0001_initial.py create mode 100644 nhncloud/migrations/0002_alter_cluster_file_upload.py create mode 100644 nhncloud/migrations/0003_alter_cluster_title.py create mode 100644 nhncloud/migrations/0004_remove_cluster_file_upload.py create mode 100644 nhncloud/migrations/0005_alter_cluster_content_alter_cluster_uuid.py create mode 100644 nhncloud/migrations/0006_cluster_type.py create mode 100644 nhncloud/migrations/__init__.py create mode 100644 nhncloud/models.py create mode 100644 nhncloud/packages/ApiCompute.py create mode 100644 nhncloud/packages/ApiNks.py create mode 100644 nhncloud/packages/ApiStorageObject.py create mode 100644 nhncloud/packages/ApiToken.py create mode 100644 nhncloud/packages/ApiVpc.py create mode 100644 nhncloud/static/nhncloud/css/landing.css create mode 100644 nhncloud/static/nhncloud/images/nhncloud_api.jpg create mode 100644 nhncloud/templates/nhncloud/_rq_nks_components_apply.html create mode 100644 nhncloud/templates/nhncloud/_rq_nks_create.html create mode 100644 nhncloud/templates/nhncloud/_rq_vpc_list.html create mode 100644 nhncloud/templates/nhncloud/_rs_err.html create mode 100644 nhncloud/templates/nhncloud/_rs_nks_deploy.html create mode 100644 nhncloud/templates/nhncloud/_rs_nks_list.html create mode 100644 nhncloud/templates/nhncloud/_rs_vpc_list.html create mode 100644 nhncloud/templates/nhncloud/apiList.html create mode 100644 nhncloud/templates/nhncloud/createClusterOnlyRequest.bak.html create mode 100644 nhncloud/templates/nhncloud/createClusterRequest.html create mode 100644 nhncloud/templates/nhncloud/createVpcRequest.html create mode 100644 nhncloud/templates/nhncloud/infoClusterDetailRequest.html create mode 100644 nhncloud/templates/nhncloud/infoClusterListRequest.html create mode 100644 nhncloud/templates/nhncloud/infoObjectStorageRequest.html create mode 100644 nhncloud/templates/nhncloud/preparations.html create mode 100644 nhncloud/templates/nhncloud/resultRequest.html create mode 100644 nhncloud/templates/nhncloud/rs_test.html create mode 100644 nhncloud/tests.py create mode 100644 nhncloud/urls.py create mode 100644 nhncloud/views.py create mode 100644 requirements.txt create mode 100644 version diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml new file mode 100644 index 0000000..dc3c7a7 --- /dev/null +++ b/.github/workflows/build.yaml @@ -0,0 +1,69 @@ +name: Build And Test + +run-name: ${{ gitea.actor }} is runs ci pipeline + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +jobs: + build-and-push: + runs-on: ubuntu-latest + steps: + - name: checkout source code + uses: actions/checkout@v3 + + - name: Retrieve version # tag version + id: img-ver + uses: juliangruber/read-file-action@v1 + with: + path: ./version + + - name: Install Docker // Docker 설치 + run: | + curl -fsSL https://get.docker.com -o get-docker.sh + sh get-docker.sh + if: runner.os == 'Linux' + + - name: Set up Docker Buildx + uses: https://github.com/docker/setup-buildx-action@v1 + + - name: Login to Registry + run: docker login -u ${{ secrets.DOCKER_ID }} -p ${{ secrets.DOCKER_PW }} https://harbor.icurfer.com + + - name: build + run: docker build -t harbor.icurfer.com/py_prj/butler_ddochi:${{ steps.img-ver.outputs.content }} . + + - name: Push to Docker + run: docker push harbor.icurfer.com/py_prj/butler_ddochi:${{ steps.img-ver.outputs.content }} + + ## pre cd + - name: Setup Kustomize + uses: yokawasa/action-setup-kube-tools@v0.9.2 + with: + kustomize: "3.7.0" + + - name: Checkout kustomize repository + uses: actions/checkout@v3 + with: + repository: "icurfer/cd_butler_ddochi" + ref: main + token: ${{ secrets.ACTION_TOKEN }} + path: cd_butler_ddochi + + - name: Update Kubernetes resources + run: | + cd cd_butler_ddochi/overlays/dev/ + kustomize edit set image \harbor.icurfer.com/py_prj/butler_ddochi:\${{ steps.img-ver.outputs.content }} + cat kustomization.yaml + + ## cd commit + - name: Commit files + run: | + cd cd_butler_ddochi + git config --global user.email "icurfer@gmail.com" + git config --global user.name "icurfer" + git commit -am "Update image tag" + git push -u origin main \ No newline at end of file diff --git a/.gitignore b/.gitignore index 5d381cc..a270eaa 100644 --- a/.gitignore +++ b/.gitignore @@ -122,6 +122,8 @@ celerybeat.pid # Environments .env +.env.dev +.env.prd .venv env/ venv/ @@ -159,4 +161,4 @@ cython_debug/ # and can be added to the global gitignore or merged into this file. For a more nuclear # option (not recommended) you can uncomment the following to ignore the entire idea folder. #.idea/ - +_media/cluster/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f3c8783 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,32 @@ +# pull official base image +# FROM python:3.8-slim-buster +FROM python:3.10-slim-buster + +# set work directory +WORKDIR /usr/src/app + +# set environment variable +ENV PYTHONDONTWRITEBYTECODE 1 +ENV PYTHONUNBUFFERED 1 + +# copy project files +COPY . /usr/src/app/ + +# install system dependencies +RUN apt-get update \ + && apt-get install -y gcc pkg-config default-libmysqlclient-dev python-dev ssh \ + && apt-get clean + +# install python dependencies +RUN pip install --upgrade pip \ + && pip install -r requirements.txt + +# collect static files +RUN python manage.py collectstatic --noinput + +# expose the port +EXPOSE 8000 + +# command to run +CMD ["gunicorn", "--workers=3", "--bind=0.0.0.0:8000", "butler_ddochi.wsgi:application"] +# CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"] \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..785aaef --- /dev/null +++ b/LICENSE @@ -0,0 +1,73 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + +To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. + +Copyright 2024 icurfer + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/_media/inventories/inventory.ini b/_media/inventories/inventory.ini new file mode 100644 index 0000000..184fe55 --- /dev/null +++ b/_media/inventories/inventory.ini @@ -0,0 +1,2 @@ +[conda] +conda ansible_host=192.168.0.235 ansible_user=ubuntu \ No newline at end of file diff --git a/_media/inventories/inventory_2nZEePL.ini b/_media/inventories/inventory_2nZEePL.ini new file mode 100644 index 0000000..0888ed9 --- /dev/null +++ b/_media/inventories/inventory_2nZEePL.ini @@ -0,0 +1,2 @@ +[conda] +conda ansible_host=192.168.0.235 ansible_user=ubuntu diff --git a/_media/inventories/inventory_CAc8LnR.ini b/_media/inventories/inventory_CAc8LnR.ini new file mode 100644 index 0000000..0888ed9 --- /dev/null +++ b/_media/inventories/inventory_CAc8LnR.ini @@ -0,0 +1,2 @@ +[conda] +conda ansible_host=192.168.0.235 ansible_user=ubuntu diff --git a/_media/inventories/inventory_N8DmIuY.ini b/_media/inventories/inventory_N8DmIuY.ini new file mode 100644 index 0000000..0888ed9 --- /dev/null +++ b/_media/inventories/inventory_N8DmIuY.ini @@ -0,0 +1,2 @@ +[conda] +conda ansible_host=192.168.0.235 ansible_user=ubuntu diff --git a/_media/inventories/inventory_ja252ub.ini b/_media/inventories/inventory_ja252ub.ini new file mode 100644 index 0000000..0888ed9 --- /dev/null +++ b/_media/inventories/inventory_ja252ub.ini @@ -0,0 +1,2 @@ +[conda] +conda ansible_host=192.168.0.235 ansible_user=ubuntu diff --git a/_media/playbooks/test_playbook.yml b/_media/playbooks/test_playbook.yml new file mode 100644 index 0000000..0d9e258 --- /dev/null +++ b/_media/playbooks/test_playbook.yml @@ -0,0 +1,7 @@ +--- +- name: Test Ansible SSH 연결 + hosts: conda + gather_facts: no + tasks: + - name: Ping 테스트 + ping: \ No newline at end of file diff --git a/_media/playbooks/test_playbook_1AUxYca.yml b/_media/playbooks/test_playbook_1AUxYca.yml new file mode 100644 index 0000000..0d9e258 --- /dev/null +++ b/_media/playbooks/test_playbook_1AUxYca.yml @@ -0,0 +1,7 @@ +--- +- name: Test Ansible SSH 연결 + hosts: conda + gather_facts: no + tasks: + - name: Ping 테스트 + ping: \ No newline at end of file diff --git a/_media/playbooks/test_playbook_1aczRZD.yml b/_media/playbooks/test_playbook_1aczRZD.yml new file mode 100644 index 0000000..0d9e258 --- /dev/null +++ b/_media/playbooks/test_playbook_1aczRZD.yml @@ -0,0 +1,7 @@ +--- +- name: Test Ansible SSH 연결 + hosts: conda + gather_facts: no + tasks: + - name: Ping 테스트 + ping: \ No newline at end of file diff --git a/_media/playbooks/test_playbook_BomEp2O.yml b/_media/playbooks/test_playbook_BomEp2O.yml new file mode 100644 index 0000000..0d9e258 --- /dev/null +++ b/_media/playbooks/test_playbook_BomEp2O.yml @@ -0,0 +1,7 @@ +--- +- name: Test Ansible SSH 연결 + hosts: conda + gather_facts: no + tasks: + - name: Ping 테스트 + ping: \ No newline at end of file diff --git a/_media/playbooks/test_playbook_DddSBcY.yml b/_media/playbooks/test_playbook_DddSBcY.yml new file mode 100644 index 0000000..0d9e258 --- /dev/null +++ b/_media/playbooks/test_playbook_DddSBcY.yml @@ -0,0 +1,7 @@ +--- +- name: Test Ansible SSH 연결 + hosts: conda + gather_facts: no + tasks: + - name: Ping 테스트 + ping: \ No newline at end of file diff --git a/_media/playbooks/test_playbook_LUE1FHF.yml b/_media/playbooks/test_playbook_LUE1FHF.yml new file mode 100644 index 0000000..0d9e258 --- /dev/null +++ b/_media/playbooks/test_playbook_LUE1FHF.yml @@ -0,0 +1,7 @@ +--- +- name: Test Ansible SSH 연결 + hosts: conda + gather_facts: no + tasks: + - name: Ping 테스트 + ping: \ No newline at end of file diff --git a/_static/admin/css/autocomplete.4a81fc4242d0.css b/_static/admin/css/autocomplete.4a81fc4242d0.css new file mode 100644 index 0000000..69c94e7 --- /dev/null +++ b/_static/admin/css/autocomplete.4a81fc4242d0.css @@ -0,0 +1,275 @@ +select.admin-autocomplete { + width: 20em; +} + +.select2-container--admin-autocomplete.select2-container { + min-height: 30px; +} + +.select2-container--admin-autocomplete .select2-selection--single, +.select2-container--admin-autocomplete .select2-selection--multiple { + min-height: 30px; + padding: 0; +} + +.select2-container--admin-autocomplete.select2-container--focus .select2-selection, +.select2-container--admin-autocomplete.select2-container--open .select2-selection { + border-color: var(--body-quiet-color); + min-height: 30px; +} + +.select2-container--admin-autocomplete.select2-container--focus .select2-selection.select2-selection--single, +.select2-container--admin-autocomplete.select2-container--open .select2-selection.select2-selection--single { + padding: 0; +} + +.select2-container--admin-autocomplete.select2-container--focus .select2-selection.select2-selection--multiple, +.select2-container--admin-autocomplete.select2-container--open .select2-selection.select2-selection--multiple { + padding: 0; +} + +.select2-container--admin-autocomplete .select2-selection--single { + background-color: var(--body-bg); + border: 1px solid var(--border-color); + border-radius: 4px; +} + +.select2-container--admin-autocomplete .select2-selection--single .select2-selection__rendered { + color: var(--body-fg); + line-height: 30px; +} + +.select2-container--admin-autocomplete .select2-selection--single .select2-selection__clear { + cursor: pointer; + float: right; + font-weight: bold; +} + +.select2-container--admin-autocomplete .select2-selection--single .select2-selection__placeholder { + color: var(--body-quiet-color); +} + +.select2-container--admin-autocomplete .select2-selection--single .select2-selection__arrow { + height: 26px; + position: absolute; + top: 1px; + right: 1px; + width: 20px; +} + +.select2-container--admin-autocomplete .select2-selection--single .select2-selection__arrow b { + border-color: #888 transparent transparent transparent; + border-style: solid; + border-width: 5px 4px 0 4px; + height: 0; + left: 50%; + margin-left: -4px; + margin-top: -2px; + position: absolute; + top: 50%; + width: 0; +} + +.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--single .select2-selection__clear { + float: left; +} + +.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--single .select2-selection__arrow { + left: 1px; + right: auto; +} + +.select2-container--admin-autocomplete.select2-container--disabled .select2-selection--single { + background-color: var(--darkened-bg); + cursor: default; +} + +.select2-container--admin-autocomplete.select2-container--disabled .select2-selection--single .select2-selection__clear { + display: none; +} + +.select2-container--admin-autocomplete.select2-container--open .select2-selection--single .select2-selection__arrow b { + border-color: transparent transparent #888 transparent; + border-width: 0 4px 5px 4px; +} + +.select2-container--admin-autocomplete .select2-selection--multiple { + background-color: var(--body-bg); + border: 1px solid var(--border-color); + border-radius: 4px; + cursor: text; +} + +.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__rendered { + box-sizing: border-box; + list-style: none; + margin: 0; + padding: 0 10px 5px 5px; + width: 100%; + display: flex; + flex-wrap: wrap; +} + +.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__rendered li { + list-style: none; +} + +.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__placeholder { + color: var(--body-quiet-color); + margin-top: 5px; + float: left; +} + +.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__clear { + cursor: pointer; + float: right; + font-weight: bold; + margin: 5px; + position: absolute; + right: 0; +} + +.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__choice { + background-color: var(--darkened-bg); + border: 1px solid var(--border-color); + border-radius: 4px; + cursor: default; + float: left; + margin-right: 5px; + margin-top: 5px; + padding: 0 5px; +} + +.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__choice__remove { + color: var(--body-quiet-color); + cursor: pointer; + display: inline-block; + font-weight: bold; + margin-right: 2px; +} + +.select2-container--admin-autocomplete .select2-selection--multiple .select2-selection__choice__remove:hover { + color: var(--body-fg); +} + +.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__choice, .select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder, .select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-search--inline { + float: right; +} + +.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__choice { + margin-left: 5px; + margin-right: auto; +} + +.select2-container--admin-autocomplete[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove { + margin-left: 2px; + margin-right: auto; +} + +.select2-container--admin-autocomplete.select2-container--focus .select2-selection--multiple { + border: solid var(--body-quiet-color) 1px; + outline: 0; +} + +.select2-container--admin-autocomplete.select2-container--disabled .select2-selection--multiple { + background-color: var(--darkened-bg); + cursor: default; +} + +.select2-container--admin-autocomplete.select2-container--disabled .select2-selection__choice__remove { + display: none; +} + +.select2-container--admin-autocomplete.select2-container--open.select2-container--above .select2-selection--single, .select2-container--admin-autocomplete.select2-container--open.select2-container--above .select2-selection--multiple { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.select2-container--admin-autocomplete.select2-container--open.select2-container--below .select2-selection--single, .select2-container--admin-autocomplete.select2-container--open.select2-container--below .select2-selection--multiple { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0; +} + +.select2-container--admin-autocomplete .select2-search--dropdown { + background: var(--darkened-bg); +} + +.select2-container--admin-autocomplete .select2-search--dropdown .select2-search__field { + background: var(--body-bg); + color: var(--body-fg); + border: 1px solid var(--border-color); + border-radius: 4px; +} + +.select2-container--admin-autocomplete .select2-search--inline .select2-search__field { + background: transparent; + color: var(--body-fg); + border: none; + outline: 0; + box-shadow: none; + -webkit-appearance: textfield; +} + +.select2-container--admin-autocomplete .select2-results > .select2-results__options { + max-height: 200px; + overflow-y: auto; + color: var(--body-fg); + background: var(--body-bg); +} + +.select2-container--admin-autocomplete .select2-results__option[role=group] { + padding: 0; +} + +.select2-container--admin-autocomplete .select2-results__option[aria-disabled=true] { + color: var(--body-quiet-color); +} + +.select2-container--admin-autocomplete .select2-results__option[aria-selected=true] { + background-color: var(--selected-bg); + color: var(--body-fg); +} + +.select2-container--admin-autocomplete .select2-results__option .select2-results__option { + padding-left: 1em; +} + +.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__group { + padding-left: 0; +} + +.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option { + margin-left: -1em; + padding-left: 2em; +} + +.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -2em; + padding-left: 3em; +} + +.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -3em; + padding-left: 4em; +} + +.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -4em; + padding-left: 5em; +} + +.select2-container--admin-autocomplete .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option { + margin-left: -5em; + padding-left: 6em; +} + +.select2-container--admin-autocomplete .select2-results__option--highlighted[aria-selected] { + background-color: var(--primary); + color: var(--primary-fg); +} + +.select2-container--admin-autocomplete .select2-results__group { + cursor: default; + display: block; + padding: 6px; +} diff --git a/_static/admin/css/autocomplete.4a81fc4242d0.css.gz b/_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/_static/admin/css/autocomplete.css.gz b/_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 { + display: flex; + align-items: center; + gap: 4px; + 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); +} + +.paginator input { + margin-left: auto; +} + +.base-svgs { + display: none; +} diff --git a/_static/admin/css/base.523eb49842a7.css.gz b/_static/admin/css/base.523eb49842a7.css.gz new file mode 100644 index 0000000000000000000000000000000000000000..ee59980b9a7e851d0ba5fba7fcd8cf497ae2ff4e GIT binary patch literal 4865 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 literal 0 HcmV?d00001 diff --git a/_static/admin/css/base.css b/_static/admin/css/base.css new file mode 100644 index 0000000..93db7d0 --- /dev/null +++ b/_static/admin/css/base.css @@ -0,0 +1,1145 @@ +/* + 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 { + display: flex; + align-items: center; + gap: 4px; + 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); +} + +.paginator input { + margin-left: auto; +} + +.base-svgs { + display: none; +} diff --git a/_static/admin/css/base.css.gz b/_static/admin/css/base.css.gz new file mode 100644 index 0000000000000000000000000000000000000000..a4753c53ce938101efea46f79d30c9fe8401e9ce GIT binary patch literal 4755 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 h!PJQ_4AVpfXJF8W< * { + 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/_static/admin/css/changelists.9237a1ac391b.css.gz b/_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/_static/admin/css/changelists.css b/_static/admin/css/changelists.css new file mode 100644 index 0000000..a754513 --- /dev/null +++ b/_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/_static/admin/css/changelists.css.gz b/_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/_static/admin/css/dark_mode.css b/_static/admin/css/dark_mode.css new file mode 100644 index 0000000..6d08233 --- /dev/null +++ b/_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/_static/admin/css/dark_mode.css.gz b/_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/_static/admin/css/dark_mode.ef27a31af300.css b/_static/admin/css/dark_mode.ef27a31af300.css new file mode 100644 index 0000000..6d08233 --- /dev/null +++ b/_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/_static/admin/css/dark_mode.ef27a31af300.css.gz b/_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/_static/admin/css/dashboard.css b/_static/admin/css/dashboard.css new file mode 100644 index 0000000..242b81a --- /dev/null +++ b/_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/_static/admin/css/dashboard.css.gz b/_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; + min-width: 160px; + 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/_static/admin/css/forms.c14e1cb06392.css.gz b/_static/admin/css/forms.c14e1cb06392.css.gz new file mode 100644 index 0000000000000000000000000000000000000000..1cc0c35dd7af8c029001edeed231706597db72a5 GIT binary patch literal 2243 zcmV;!2t4;6iwFP!00002|Fs(ZZ`(HZ_xu$?hG9(`DYg?ksf|0F+qef~PFy4oHefgu zltkM?Xi<|WCt1+{{T?NeA|=vxHnc_En0oK=eSazci8cvMnUkmF-SJZtt}x3yjL*-J z-x~y%LC*`a?D%AKbaeLK`7*z|aqi~7-8=8kj*h$~O*d{zpPbht2ma74PM3r}4V`rq zhBzJ-rwIzfC|(VnZYOyzkCrrMZWjH8hfc@4>h}66-jq*#nua)aeaaZ!07~-gWRygq zvqkAU*IlD1B~gssfD)PlQ{PoCqRr~mQNG4W&MMY`GZqDixQIlnc<5|^L4q6j1o@bh zXn(Mm1pn(eSmWT)r_aa#tLSV{x{6|#(F9l@8A*2vs+_38OH$!i%5Vu@G6Cu>34R8N zVunDpw1NzyEFtJ+=UI@3nbn<4==W zY2Z>JueHsdaI{(j<1x@jq?Erf#jrAvPs11Y&pg6Rn#gW&&S{DPI>lkB{L}Kk`qXf@ zPf2LIdAT|fvfPcYr*r4i!(uVNEu|?;0*dfb6h`1w88fIQEibvOl+woWqPWm$jVdiw zK5>0QgGURtqpB35jje|c${DqRtIk-QHav0YxIKuG3;5R&4k-gp@x+`6zBNCVZnz(h zMAG3X0wj()+NCjB23;?Vx>KeAub;G(^|$2Fkh*! zJCJ$Ba02&mIRr8jDv4P(mQdE3ub4w&(?lOb9%8KXRAaSZ6c z{4(0*3cE58eTZC+|?q`Fs3#X&PlY8@CeeVb{H1F7QXUQyq624HxB zpV^lPlMvL_g82PrrUU6wd*1J;IYO1u5Mqi;>Ls9SrlMzo*L}_O>19Jpvk9N7P`RX>U1`XZe^ztD=W%)2>rKTTC3kqeI7u(F(gxX`vi@su; z&-2-A{Pn)o%}JVY13^g!PV&B4u<96X1Fw6hj^Wtc6`D!BDx>28GovzR@)Db8MT0rA zjIcJY#jPlKT%|ORLotYiD1F2bE3UsfIc!4Gf<@c`fx21|EIUnw#2UIeU><~eG|^Dl zv`|x-W+{rZ1TuQeM)s~uyT7d zTcS-wUIcOF$d!2Vs{4meH`4`QL6q4c%l%EnlpRF9ZQyfJx0oDy!n(3eg1dhNF)6@%*x$ zOPZ8UH4ac?KJA#1ybv!@P6Qj=FWkZvc{&_Ad6M8XKpAdfBfun>VeW*c|cR_mnj)er|XMJ%GRQr;})Fmqc! zHZog3-ovYAxPw{c75(9UF~2F7eq~KBbL#fK=-+Sn`Y<6_Z48<{EHsm);IjEtp+(ZH z^|QT(u}-uk+XakhDtx0c)U&o6iDc_q6BGFLQfS~^^+mpF-&4a~c$X6F;cjM{^E(ot z)l}_mpsob&k|36#70z7olk-y)eybKpja+=u@p=MrL&F^Eb~(;?+pjc>xHsIxJW8g3 zyuzvB;$BT)Ylo^e^eI}|!Me2uzR(nSjDN*1cj##vjzdu8PQseD9v-IGCT0bF@X6`z zYmmUhf~A^ApU{ko z8C)q{OoOs)z>QXEYq2m*t37OO2D+Wj&pYoE0dDgLY3p9O7jVwSe!woC%=}fBu2=Pz z7b&WEKly?6^@_hbF+~d`r<|a)C6lcR=&G=ympSjXtxj#@{5*8BAcZlfq+RUUEJn3* z(vX9t-Wp}!DEMI%BjT{IF_RaO(rb89iwNL(lE!P>nw|P}MkQYL?c1Il(!6Qiyhe~~ zx1~GjDC{P!Y=(RY@tjret!*Xh*B4#kewv^kcMm|C6ZZ#7@;dmvUpq&Bt8{SLF{k*P zc#Kk#?W-#z`@+#eP;M!WgS4{i>l+#4n;?MUUEt{s2dzMA-#kPqhZF-tef)xW(eowrS&Uz$dfuLhS3D@%6PcznwT|&TKya_2FyT zVpW;aC6qqq#$~6hHGlKnX0517v5wEG~2q3GK|t- z?Og`T{>5^6dG#?El-5ypy5i>YH)4wIOM=sSJ-hd1+yO5e0s@TiBIhn6_$b#hhIg6b RE!_8`{{zpkZquzJ003@1bG!fm literal 0 HcmV?d00001 diff --git a/_static/admin/css/forms.css b/_static/admin/css/forms.css new file mode 100644 index 0000000..9a8dad0 --- /dev/null +++ b/_static/admin/css/forms.css @@ -0,0 +1,534 @@ +@import url('widgets.css'); + +/* FORM ROWS */ + +.form-row { + overflow: hidden; + padding: 10px; + font-size: 0.8125rem; + border-bottom: 1px solid var(--hairline-color); +} + +.form-row img, .form-row input { + vertical-align: middle; +} + +.form-row label input[type="checkbox"] { + margin-top: 0; + vertical-align: 0; +} + +form .form-row p { + padding-left: 0; +} + +.flex-container { + display: flex; +} + +.form-multiline { + flex-wrap: wrap; +} + +.form-multiline > 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; + min-width: 160px; + 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/_static/admin/css/forms.css.gz b/_static/admin/css/forms.css.gz new file mode 100644 index 0000000000000000000000000000000000000000..da29e8697aa4c4b7478bf270c2b89055681402aa GIT binary patch literal 2207 zcmV;Q2w?XgiwFP!00002|Fs%xZ`-!^dwzwm;i63&DYg?QnT-u|8u!AO6Bn_A4Y(Kz zTB2nkw5UmxlPu_ezlV}YkrHV;8``37Or3Lh-Y@0XXp_*CIeALnzk7;;5VOqlv+UjR z@aX9DgY$WIf9u@OexExZPLGbf6-_s8N}rt9BM1J_ElyX2J`J386a+XP7N-dcf+!9L zPPdahmq#laGdGL=#sjD0U3Gi?6mQBWOPU5ab(fSex&f5r*~uu00%wcT_pZA}QA(m1 zyFMi}1*X2KTtu7j#8JM+NzN+PfHM~Ph`5MEVLWg)z#zd5e1evklxY8BFA4tn2Y-$I z$0dFK;m?ZB2Bl#XyNo8l`p`(aQ&8nZ6<(4Gzfy)v@QMjgZ$EL zF9U}^RT$mmghgBj6e)^ z1LHB!N2HX$FvXxU(2@o(?q7L?nKY5z;GEMG19XamQu!z4fAy*1?jXzQ9aW;r4d+%*ORXJeF&yELZ#bk`~n8h)mzk4^_j)glqE-dO>ZhjaY%*Z! z?H?_MWZo^#Dl`k*bBiTQMAArS`zFe zZ!x=;TlBQAmp)5wdSd}_&l>U%czJXBkdphA2CVGV#@hk1Bc$DPaRX0#d-LKO(&9yJ zKK?Mn4DvMp>6$+4j8yGHPw78@pWKX_%>vNHrmm^i(fy==ldf2NgXRUNDNVV%Xb;R0 zq&?c@y5_6fv>G&Yhttc41eN8(n3bA-EG;OMU0!T6V-sqREzkRkZ9dJW)6tiCtDBQF z;Rb?|44mXcvtZRR+6G?tP8`Frxhpi2cvVKn17=2L&g3OF&x!_fXc=K`T#H+g{}`q; zj{`A?1SoyP5G(F7JU(nf(t<_Y0f8EZ1j|lSA+d&T4wwg_9!)e9HZ9atrdf*OEP;$3 zv!T5!)9x=WRz|Jc+1+gZW%Oz6EXIE*}Elb}O`r$crGZ9Jvxt zUNwKXzMU-i3Zl#oS-#vvOxZ!y+Xg-tb&JWNC#);mB>3Bt<>wF+ekbQL4Ep>iN}1CVAqtl~7+)cg+fr+AfRHqvv(6F6%vvHXL=lpUy7pxui+yMB@N8=F^TD z$qVobQXE zYq2m*t37OO2D+Wje|Fv{0^H^g($>9lFW{Vs{eWFOnfa?MU9ajbFH%(Teq8$2*DK5L z*c2_0oN|KFmQ1!PpsT`)Ugo^lwmP+q^Yg&T{1nEVl6J9Yvl!LNNka~ndTW$@rQnBA zjEKX6#!OyBO0VHbEh2#DNgA(hYj*0_8I^d|x37D0Nb{z3^BO^}-Ing8qp+K_vKd-J zi07P%;|-yXh{Jyn$&T|((&ZrpCl;_?q)X4aaiL>@Gy zS0GARyRxS@vL}*%Yl`j~+8j69KzFSfCBrE7*M&Kht*yAK{56+izmnjzUcl~s-FCq1 h1fRgwyo|Z42tLZii{Wjhc+d9j=>PKE#{+^R008OLMce=Y literal 0 HcmV?d00001 diff --git a/_static/admin/css/login.586129c60a93.css b/_static/admin/css/login.586129c60a93.css new file mode 100644 index 0000000..389772f --- /dev/null +++ b/_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/_static/admin/css/login.586129c60a93.css.gz b/_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/_static/admin/css/login.css b/_static/admin/css/login.css new file mode 100644 index 0000000..389772f --- /dev/null +++ b/_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/_static/admin/css/login.css.gz b/_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/_static/admin/css/nav_sidebar.269a1bd44627.css b/_static/admin/css/nav_sidebar.269a1bd44627.css new file mode 100644 index 0000000..f76e6ce --- /dev/null +++ b/_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/_static/admin/css/nav_sidebar.269a1bd44627.css.gz b/_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/_static/admin/css/nav_sidebar.css b/_static/admin/css/nav_sidebar.css new file mode 100644 index 0000000..f76e6ce --- /dev/null +++ b/_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/_static/admin/css/nav_sidebar.css.gz b/_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/_static/admin/css/responsive.css b/_static/admin/css/responsive.css new file mode 100644 index 0000000..1d0a188 --- /dev/null +++ b/_static/admin/css/responsive.css @@ -0,0 +1,999 @@ +/* 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; + } + + .flex-container.checkbox-row { + flex-flow: row; + } + + 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%; + min-width: auto; + 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 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/_static/admin/css/responsive.css.gz b/_static/admin/css/responsive.css.gz new file mode 100644 index 0000000000000000000000000000000000000000..fe370fb18b5321f129c5dbce26cde31b8d41839e GIT binary patch literal 3441 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 TI{K|n@#W~hN@bgee@FlTgzmxv literal 0 HcmV?d00001 diff --git a/_static/admin/css/responsive.f6533dab034d.css b/_static/admin/css/responsive.f6533dab034d.css new file mode 100644 index 0000000..1d0a188 --- /dev/null +++ b/_static/admin/css/responsive.f6533dab034d.css @@ -0,0 +1,999 @@ +/* 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; + } + + .flex-container.checkbox-row { + flex-flow: row; + } + + 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%; + min-width: auto; + 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 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/_static/admin/css/responsive.f6533dab034d.css.gz b/_static/admin/css/responsive.f6533dab034d.css.gz new file mode 100644 index 0000000000000000000000000000000000000000..fe370fb18b5321f129c5dbce26cde31b8d41839e GIT binary patch literal 3441 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 TI{K|n@#W~hN@bgee@FlTgzmxv literal 0 HcmV?d00001 diff --git a/_static/admin/css/responsive_rtl.7d1130848605.css b/_static/admin/css/responsive_rtl.7d1130848605.css new file mode 100644 index 0000000..31dc8ff --- /dev/null +++ b/_static/admin/css/responsive_rtl.7d1130848605.css @@ -0,0 +1,84 @@ +/* TABLETS */ + +@media (max-width: 1024px) { + [dir="rtl"] .colMS { + margin-right: 0; + } + + [dir="rtl"] #user-tools { + text-align: right; + } + + [dir="rtl"] #changelist .actions label { + padding-left: 10px; + padding-right: 0; + } + + [dir="rtl"] #changelist .actions select { + margin-left: 0; + margin-right: 15px; + } + + [dir="rtl"] .change-list .filtered .results, + [dir="rtl"] .change-list .filtered .paginator, + [dir="rtl"] .filtered #toolbar, + [dir="rtl"] .filtered div.xfull, + [dir="rtl"] .filtered .actions, + [dir="rtl"] #changelist-filter { + margin-left: 0; + } + + [dir="rtl"] .inline-group ul.tools a.add, + [dir="rtl"] .inline-group div.add-row a, + [dir="rtl"] .inline-group .tabular tr.add-row td a { + padding: 8px 26px 8px 10px; + background-position: calc(100% - 8px) 9px; + } + + [dir="rtl"] .related-widget-wrapper-link + .selector { + margin-right: 0; + margin-left: 15px; + } + + [dir="rtl"] .selector .selector-filter label { + margin-right: 0; + margin-left: 8px; + } + + [dir="rtl"] .object-tools li { + float: right; + } + + [dir="rtl"] .object-tools li + li { + margin-left: 0; + margin-right: 15px; + } + + [dir="rtl"] .dashboard .module table td a { + padding-left: 0; + padding-right: 16px; + } +} + +/* MOBILE */ + +@media (max-width: 767px) { + [dir="rtl"] .aligned .related-lookup, + [dir="rtl"] .aligned .datetimeshortcuts { + margin-left: 0; + margin-right: 15px; + } + + [dir="rtl"] .aligned ul, + [dir="rtl"] form .aligned ul.errorlist { + margin-right: 0; + } + + [dir="rtl"] #changelist-filter { + margin-left: 0; + margin-right: 0; + } + [dir="rtl"] .aligned .vCheckboxLabel { + padding: 1px 5px 0 0; + } +} diff --git a/_static/admin/css/responsive_rtl.7d1130848605.css.gz b/_static/admin/css/responsive_rtl.7d1130848605.css.gz new file mode 100644 index 0000000000000000000000000000000000000000..3e2886b55cf18f6ef73ab137f535ab16d1062de9 GIT binary patch literal 550 zcmV+>0@?i^iwFP!00002|E*O~PunmMe($e1fhIwz(-dumwVJds@i3`q5AZha;S#%v z*Gn8Z7aD2ezvDEt6p|)v!Vi`ue|Mk#`MdLY2zTGE7T0&TFdPpCUlS!Y!byUqSZm4g z3?}~h$E-YszXNdNm(=#lk!3pi4PI#I=Jsi$8VTA+r^4ze<{9|&&Bnu^5qMnW$_h4y z^1WzQB?}}Sr8C&1I2<3wm_~|p&fsCl+N3!U28#C5WhkXiBSC7()h)7e-q`CuX&Y0n zNQK)A2A5e0=TkRTiq?m!gh=7Z#P>gds6tNRbC(UQB4j12 z;)@iEwZ$xRwc^gYf-~@H>lxcubPbWa&9_UtTW#O$bydBM?Xru^1b-aGQ~8tLOTHw7 z+*kaK__LQu-lG^L=5b)qI)f)h7No!#q?%hj(d2s7UnbLMGDkNa!p+aCAB*clE%#!2 zaiHUF+GE`pYM+oXt0Eh9Af>~xPE;Nn%VEL!J8QKiDq0%F(%57l;VEm4-L$O#_%;5u oqjV%cEZ6<_ScR*=l#BNN#L406-YEk9bGnDYBlhp|ut*0003SOIl>h($ literal 0 HcmV?d00001 diff --git a/_static/admin/css/responsive_rtl.css b/_static/admin/css/responsive_rtl.css new file mode 100644 index 0000000..31dc8ff --- /dev/null +++ b/_static/admin/css/responsive_rtl.css @@ -0,0 +1,84 @@ +/* TABLETS */ + +@media (max-width: 1024px) { + [dir="rtl"] .colMS { + margin-right: 0; + } + + [dir="rtl"] #user-tools { + text-align: right; + } + + [dir="rtl"] #changelist .actions label { + padding-left: 10px; + padding-right: 0; + } + + [dir="rtl"] #changelist .actions select { + margin-left: 0; + margin-right: 15px; + } + + [dir="rtl"] .change-list .filtered .results, + [dir="rtl"] .change-list .filtered .paginator, + [dir="rtl"] .filtered #toolbar, + [dir="rtl"] .filtered div.xfull, + [dir="rtl"] .filtered .actions, + [dir="rtl"] #changelist-filter { + margin-left: 0; + } + + [dir="rtl"] .inline-group ul.tools a.add, + [dir="rtl"] .inline-group div.add-row a, + [dir="rtl"] .inline-group .tabular tr.add-row td a { + padding: 8px 26px 8px 10px; + background-position: calc(100% - 8px) 9px; + } + + [dir="rtl"] .related-widget-wrapper-link + .selector { + margin-right: 0; + margin-left: 15px; + } + + [dir="rtl"] .selector .selector-filter label { + margin-right: 0; + margin-left: 8px; + } + + [dir="rtl"] .object-tools li { + float: right; + } + + [dir="rtl"] .object-tools li + li { + margin-left: 0; + margin-right: 15px; + } + + [dir="rtl"] .dashboard .module table td a { + padding-left: 0; + padding-right: 16px; + } +} + +/* MOBILE */ + +@media (max-width: 767px) { + [dir="rtl"] .aligned .related-lookup, + [dir="rtl"] .aligned .datetimeshortcuts { + margin-left: 0; + margin-right: 15px; + } + + [dir="rtl"] .aligned ul, + [dir="rtl"] form .aligned ul.errorlist { + margin-right: 0; + } + + [dir="rtl"] #changelist-filter { + margin-left: 0; + margin-right: 0; + } + [dir="rtl"] .aligned .vCheckboxLabel { + padding: 1px 5px 0 0; + } +} diff --git a/_static/admin/css/responsive_rtl.css.gz b/_static/admin/css/responsive_rtl.css.gz new file mode 100644 index 0000000000000000000000000000000000000000..3e2886b55cf18f6ef73ab137f535ab16d1062de9 GIT binary patch literal 550 zcmV+>0@?i^iwFP!00002|E*O~PunmMe($e1fhIwz(-dumwVJds@i3`q5AZha;S#%v z*Gn8Z7aD2ezvDEt6p|)v!Vi`ue|Mk#`MdLY2zTGE7T0&TFdPpCUlS!Y!byUqSZm4g z3?}~h$E-YszXNdNm(=#lk!3pi4PI#I=Jsi$8VTA+r^4ze<{9|&&Bnu^5qMnW$_h4y z^1WzQB?}}Sr8C&1I2<3wm_~|p&fsCl+N3!U28#C5WhkXiBSC7()h)7e-q`CuX&Y0n zNQK)A2A5e0=TkRTiq?m!gh=7Z#P>gds6tNRbC(UQB4j12 z;)@iEwZ$xRwc^gYf-~@H>lxcubPbWa&9_UtTW#O$bydBM?Xru^1b-aGQ~8tLOTHw7 z+*kaK__LQu-lG^L=5b)qI)f)h7No!#q?%hj(d2s7UnbLMGDkNa!p+aCAB*clE%#!2 zaiHUF+GE`pYM+oXt0Eh9Af>~xPE;Nn%VEL!J8QKiDq0%F(%57l;VEm4-L$O#_%;5u oqjV%cEZ6<_ScR*=l#BNN#L406-YEk9bGnDYBlhp|ut*0003SOIl>h($ literal 0 HcmV?d00001 diff --git a/_static/admin/css/rtl.512d4b53fc59.css b/_static/admin/css/rtl.512d4b53fc59.css new file mode 100644 index 0000000..d40e573 --- /dev/null +++ b/_static/admin/css/rtl.512d4b53fc59.css @@ -0,0 +1,298 @@ +/* GLOBAL */ + +th { + text-align: right; +} + +.module h2, .module caption { + text-align: right; +} + +.module ul, .module ol { + margin-left: 0; + margin-right: 1.5em; +} + +.viewlink, .addlink, .changelink { + padding-left: 0; + padding-right: 16px; + background-position: 100% 1px; +} + +.deletelink { + padding-left: 0; + padding-right: 16px; + background-position: 100% 1px; +} + +.object-tools { + float: left; +} + +thead th:first-child, +tfoot td:first-child { + border-left: none; +} + +/* LAYOUT */ + +#user-tools { + right: auto; + left: 0; + text-align: left; +} + +div.breadcrumbs { + text-align: right; +} + +#content-main { + float: right; +} + +#content-related { + float: left; + margin-left: -300px; + margin-right: auto; +} + +.colMS { + margin-left: 300px; + margin-right: 0; +} + +/* SORTABLE TABLES */ + +table thead th.sorted .sortoptions { + float: left; +} + +thead th.sorted .text { + padding-right: 0; + padding-left: 42px; +} + +/* dashboard styles */ + +.dashboard .module table td a { + padding-left: .6em; + padding-right: 16px; +} + +/* changelists styles */ + +.change-list .filtered table { + border-left: none; + border-right: 0px none; +} + +#changelist-filter { + border-left: none; + border-right: none; + margin-left: 0; + margin-right: 30px; +} + +#changelist-filter li.selected { + border-left: none; + padding-left: 10px; + margin-left: 0; + border-right: 5px solid var(--hairline-color); + padding-right: 10px; + margin-right: -15px; +} + +#changelist table tbody td:first-child, #changelist table tbody th:first-child { + border-right: none; + border-left: none; +} + +.paginator .end { + margin-left: 6px; + margin-right: 0; +} + +.paginator input { + margin-left: 0; + margin-right: auto; +} + +/* FORMS */ + +.aligned label { + padding: 0 0 3px 1em; +} + +.submit-row a.deletelink { + margin-left: 0; + margin-right: auto; +} + +.vDateField, .vTimeField { + margin-left: 2px; +} + +.aligned .form-row input { + margin-left: 5px; +} + +form .aligned ul { + margin-right: 163px; + padding-right: 10px; + margin-left: 0; + padding-left: 0; +} + +form ul.inline li { + float: right; + padding-right: 0; + padding-left: 7px; +} + +form .aligned p.help, +form .aligned div.help { + margin-right: 160px; + padding-right: 10px; +} + +form div.help ul, +form .aligned .checkbox-row + .help, +form .aligned p.date div.help.timezonewarning, +form .aligned p.datetime div.help.timezonewarning, +form .aligned p.time div.help.timezonewarning { + margin-right: 0; + padding-right: 0; +} + +form .wide p.help, form .wide div.help { + padding-left: 0; + padding-right: 50px; +} + +form .wide p, +form .wide ul.errorlist, +form .wide input + p.help, +form .wide input + div.help { + margin-right: 200px; + margin-left: 0px; +} + +.submit-row { + text-align: right; +} + +fieldset .fieldBox { + margin-left: 20px; + margin-right: 0; +} + +.errorlist li { + background-position: 100% 12px; + padding: 0; +} + +.errornote { + background-position: 100% 12px; + padding: 10px 12px; +} + +/* WIDGETS */ + +.calendarnav-previous { + top: 0; + left: auto; + right: 10px; + background: url("../img/calendar-icons.39b290681a8b.svg") 0 -30px no-repeat; +} + +.calendarbox .calendarnav-previous:focus, +.calendarbox .calendarnav-previous:hover { + background-position: 0 -45px; +} + +.calendarnav-next { + top: 0; + right: auto; + left: 10px; + background: url("../img/calendar-icons.39b290681a8b.svg") 0 0 no-repeat; +} + +.calendarbox .calendarnav-next:focus, +.calendarbox .calendarnav-next:hover { + background-position: 0 -15px; +} + +.calendar caption, .calendarbox h2 { + text-align: center; +} + +.selector { + float: right; +} + +.selector .selector-filter { + text-align: right; +} + +.selector-add { + background: url("../img/selector-icons.b4555096cea2.svg") 0 -64px no-repeat; +} + +.active.selector-add:focus, .active.selector-add:hover { + background-position: 0 -80px; +} + +.selector-remove { + background: url("../img/selector-icons.b4555096cea2.svg") 0 -96px no-repeat; +} + +.active.selector-remove:focus, .active.selector-remove:hover { + background-position: 0 -112px; +} + +a.selector-chooseall { + background: url("../img/selector-icons.b4555096cea2.svg") right -128px no-repeat; +} + +a.active.selector-chooseall:focus, a.active.selector-chooseall:hover { + background-position: 100% -144px; +} + +a.selector-clearall { + background: url("../img/selector-icons.b4555096cea2.svg") 0 -160px no-repeat; +} + +a.active.selector-clearall:focus, a.active.selector-clearall:hover { + background-position: 0 -176px; +} + +.inline-deletelink { + float: left; +} + +form .form-row p.datetime { + overflow: hidden; +} + +.related-widget-wrapper { + float: right; +} + +/* MISC */ + +.inline-related h2, .inline-group h2 { + text-align: right +} + +.inline-related h3 span.delete { + padding-right: 20px; + padding-left: inherit; + left: 10px; + right: inherit; + float:left; +} + +.inline-related h3 span.delete label { + margin-left: inherit; + margin-right: 2px; +} diff --git a/_static/admin/css/rtl.512d4b53fc59.css.gz b/_static/admin/css/rtl.512d4b53fc59.css.gz new file mode 100644 index 0000000000000000000000000000000000000000..f2503b9ac8561f93afecb122717027553fd7ac18 GIT binary patch literal 1281 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 To~Qb9zDM#8M89D%WCQ>J