fnschool 20250109.80531.837__py3-none-any.whl → 20251011.81638.854__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of fnschool might be problematic. Click here for more details.

Files changed (278) hide show
  1. fnschoo1/__init__.py +53 -0
  2. fnschoo1/canteen/admin.py +3 -0
  3. fnschoo1/canteen/apps.py +6 -0
  4. fnschoo1/canteen/forms.py +84 -0
  5. fnschoo1/canteen/migrations/0001_initial.py +119 -0
  6. fnschoo1/canteen/migrations/0002_ingredient_is_disabled.py +20 -0
  7. fnschoo1/canteen/migrations/0003_consumption_is_disabled_alter_ingredient_is_disabled.py +23 -0
  8. fnschoo1/canteen/migrations/0004_alter_ingredient_name_category_and_more.py +66 -0
  9. fnschoo1/canteen/migrations/0005_alter_category_created_at_alter_category_name_and_more.py +41 -0
  10. fnschoo1/canteen/migrations/0006_category_is_disabled_alter_category_user_and_more.py +49 -0
  11. fnschoo1/canteen/migrations/0007_alter_consumption_amount_used_and_more.py +30 -0
  12. fnschoo1/canteen/migrations/0008_category_abbreviation_mealtype.py +67 -0
  13. fnschoo1/canteen/migrations/0009_alter_category_abbreviation_and_more.py +55 -0
  14. fnschoo1/canteen/migrations/0010_alter_consumption_options_alter_ingredient_options_and_more.py +215 -0
  15. fnschoo1/canteen/migrations/0011_category_pin_to_consumptions_top.py +23 -0
  16. fnschoo1/canteen/migrations/0012_alter_ingredient_storage_date.py +18 -0
  17. fnschoo1/canteen/models.py +179 -0
  18. fnschoo1/canteen/templates/canteen/category/create.html +17 -0
  19. fnschoo1/canteen/templates/canteen/category/delete.html +61 -0
  20. fnschoo1/canteen/templates/canteen/category/list.html +63 -0
  21. fnschoo1/canteen/templates/canteen/category/update.html +23 -0
  22. fnschoo1/canteen/templates/canteen/close.html +11 -0
  23. fnschoo1/canteen/templates/canteen/consumption/_create.html +19 -0
  24. fnschoo1/canteen/templates/canteen/consumption/create.html +456 -0
  25. fnschoo1/canteen/templates/canteen/ingredient/close.html +11 -0
  26. fnschoo1/canteen/templates/canteen/ingredient/create.html +19 -0
  27. fnschoo1/canteen/templates/canteen/ingredient/create_one.html +17 -0
  28. fnschoo1/canteen/templates/canteen/ingredient/delete.html +41 -0
  29. fnschoo1/canteen/templates/canteen/ingredient/list.html +128 -0
  30. fnschoo1/canteen/templates/canteen/ingredient/update.html +23 -0
  31. fnschoo1/canteen/templates/canteen/meal_type/create.html +17 -0
  32. fnschoo1/canteen/templates/canteen/meal_type/delete.html +56 -0
  33. fnschoo1/canteen/templates/canteen/meal_type/list.html +59 -0
  34. fnschoo1/canteen/templates/canteen/meal_type/update.html +23 -0
  35. fnschoo1/canteen/tests.py +3 -0
  36. fnschoo1/canteen/urls.py +116 -0
  37. fnschoo1/canteen/views.py +814 -0
  38. fnschoo1/canteen/workbook/generate.py +2098 -0
  39. fnschoo1/db.sqlite3 +0 -0
  40. fnschoo1/fnschool/__init__.py +13 -0
  41. fnschoo1/fnschool/asgi.py +16 -0
  42. fnschoo1/fnschool/settings.py +167 -0
  43. fnschoo1/fnschool/templatetags/fnschool_tags.py +27 -0
  44. fnschoo1/fnschool/urls.py +30 -0
  45. fnschoo1/fnschool/views.py +9 -0
  46. fnschoo1/fnschool/wsgi.py +16 -0
  47. fnschoo1/locale/en/LC_MESSAGES/django.mo +0 -0
  48. fnschoo1/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  49. fnschoo1/manage.py +25 -0
  50. fnschoo1/profiles/admin.py +27 -0
  51. fnschoo1/profiles/apps.py +12 -0
  52. fnschoo1/profiles/forms.py +67 -0
  53. fnschoo1/profiles/migrations/0001_initial.py +192 -0
  54. fnschoo1/profiles/migrations/0002_alter_profile_bio.py +20 -0
  55. fnschoo1/profiles/migrations/0003_alter_profile_options_alter_profile_address_and_more.py +67 -0
  56. fnschoo1/profiles/migrations/0004_profile_gender.py +26 -0
  57. fnschoo1/profiles/migrations/0005_alter_profile_gender.py +23 -0
  58. fnschoo1/profiles/models.py +60 -0
  59. fnschoo1/profiles/signals.py +20 -0
  60. fnschoo1/profiles/templates/profiles/create.html +16 -0
  61. fnschoo1/profiles/templates/profiles/detail.html +14 -0
  62. fnschoo1/profiles/templates/profiles/edit.html +12 -0
  63. fnschoo1/profiles/templates/profiles/log_in.html +20 -0
  64. fnschoo1/profiles/templates/profiles/log_out.html +12 -0
  65. fnschoo1/profiles/tests.py +3 -0
  66. fnschoo1/profiles/urls.py +15 -0
  67. fnschoo1/profiles/views.py +63 -0
  68. fnschoo1/static/css/bootstrap.min.css +11776 -0
  69. fnschoo1/static/css/fnschool.css +26 -0
  70. fnschoo1/static/images/favicon.ico +0 -0
  71. fnschoo1/static/js/bootstrap.bundle.min.js +4223 -0
  72. fnschoo1/static/js/bootstrap.min.js +2919 -0
  73. fnschoo1/static/js/fnschool.js +84 -0
  74. fnschoo1/static/js/jquery.min.js +5413 -0
  75. fnschoo1/static/js/jquery.slim.min.js +4331 -0
  76. fnschoo1/static/js/popper.min.js +1306 -0
  77. fnschoo1/static_collected/admin/css/autocomplete.css +377 -0
  78. fnschoo1/static_collected/admin/css/base.css +1224 -0
  79. fnschoo1/static_collected/admin/css/changelists.css +334 -0
  80. fnschoo1/static_collected/admin/css/dark_mode.css +136 -0
  81. fnschoo1/static_collected/admin/css/dashboard.css +30 -0
  82. fnschoo1/static_collected/admin/css/forms.css +546 -0
  83. fnschoo1/static_collected/admin/css/login.css +62 -0
  84. fnschoo1/static_collected/admin/css/nav_sidebar.css +145 -0
  85. fnschoo1/static_collected/admin/css/responsive.css +1043 -0
  86. fnschoo1/static_collected/admin/css/responsive_rtl.css +84 -0
  87. fnschoo1/static_collected/admin/css/rtl.css +311 -0
  88. fnschoo1/static_collected/admin/css/vendor/select2/select2.css +708 -0
  89. fnschoo1/static_collected/admin/css/vendor/select2/select2.min.css +1 -0
  90. fnschoo1/static_collected/admin/css/widgets.css +639 -0
  91. fnschoo1/static_collected/admin/js/SelectBox.js +128 -0
  92. fnschoo1/static_collected/admin/js/SelectFilter2.js +503 -0
  93. fnschoo1/static_collected/admin/js/actions.js +232 -0
  94. fnschoo1/static_collected/admin/js/admin/DateTimeShortcuts.js +496 -0
  95. fnschoo1/static_collected/admin/js/admin/RelatedObjectLookups.js +276 -0
  96. fnschoo1/static_collected/admin/js/autocomplete.js +33 -0
  97. fnschoo1/static_collected/admin/js/calendar.js +251 -0
  98. fnschoo1/static_collected/admin/js/cancel.js +29 -0
  99. fnschoo1/static_collected/admin/js/change_form.js +21 -0
  100. fnschoo1/static_collected/admin/js/collapse.js +43 -0
  101. fnschoo1/static_collected/admin/js/core.js +174 -0
  102. fnschoo1/static_collected/admin/js/filters.js +37 -0
  103. fnschoo1/static_collected/admin/js/inlines.js +439 -0
  104. fnschoo1/static_collected/admin/js/jquery.init.js +8 -0
  105. fnschoo1/static_collected/admin/js/nav_sidebar.js +81 -0
  106. fnschoo1/static_collected/admin/js/popup_response.js +24 -0
  107. fnschoo1/static_collected/admin/js/prepopulate.js +43 -0
  108. fnschoo1/static_collected/admin/js/prepopulate_init.js +20 -0
  109. fnschoo1/static_collected/admin/js/theme.js +57 -0
  110. fnschoo1/static_collected/admin/js/urlify.js +529 -0
  111. fnschoo1/static_collected/admin/js/vendor/jquery/jquery.js +10913 -0
  112. fnschoo1/static_collected/admin/js/vendor/jquery/jquery.min.js +2 -0
  113. fnschoo1/static_collected/admin/js/vendor/select2/i18n/af.js +43 -0
  114. fnschoo1/static_collected/admin/js/vendor/select2/i18n/ar.js +36 -0
  115. fnschoo1/static_collected/admin/js/vendor/select2/i18n/az.js +33 -0
  116. fnschoo1/static_collected/admin/js/vendor/select2/i18n/bg.js +38 -0
  117. fnschoo1/static_collected/admin/js/vendor/select2/i18n/bn.js +39 -0
  118. fnschoo1/static_collected/admin/js/vendor/select2/i18n/bs.js +48 -0
  119. fnschoo1/static_collected/admin/js/vendor/select2/i18n/ca.js +41 -0
  120. fnschoo1/static_collected/admin/js/vendor/select2/i18n/cs.js +62 -0
  121. fnschoo1/static_collected/admin/js/vendor/select2/i18n/da.js +37 -0
  122. fnschoo1/static_collected/admin/js/vendor/select2/i18n/de.js +41 -0
  123. fnschoo1/static_collected/admin/js/vendor/select2/i18n/dsb.js +51 -0
  124. fnschoo1/static_collected/admin/js/vendor/select2/i18n/el.js +43 -0
  125. fnschoo1/static_collected/admin/js/vendor/select2/i18n/en.js +41 -0
  126. fnschoo1/static_collected/admin/js/vendor/select2/i18n/es.js +41 -0
  127. fnschoo1/static_collected/admin/js/vendor/select2/i18n/et.js +38 -0
  128. fnschoo1/static_collected/admin/js/vendor/select2/i18n/eu.js +45 -0
  129. fnschoo1/static_collected/admin/js/vendor/select2/i18n/fa.js +42 -0
  130. fnschoo1/static_collected/admin/js/vendor/select2/i18n/fi.js +42 -0
  131. fnschoo1/static_collected/admin/js/vendor/select2/i18n/fr.js +43 -0
  132. fnschoo1/static_collected/admin/js/vendor/select2/i18n/gl.js +40 -0
  133. fnschoo1/static_collected/admin/js/vendor/select2/i18n/he.js +44 -0
  134. fnschoo1/static_collected/admin/js/vendor/select2/i18n/hi.js +40 -0
  135. fnschoo1/static_collected/admin/js/vendor/select2/i18n/hr.js +45 -0
  136. fnschoo1/static_collected/admin/js/vendor/select2/i18n/hsb.js +51 -0
  137. fnschoo1/static_collected/admin/js/vendor/select2/i18n/hu.js +44 -0
  138. fnschoo1/static_collected/admin/js/vendor/select2/i18n/hy.js +40 -0
  139. fnschoo1/static_collected/admin/js/vendor/select2/i18n/id.js +36 -0
  140. fnschoo1/static_collected/admin/js/vendor/select2/i18n/is.js +37 -0
  141. fnschoo1/static_collected/admin/js/vendor/select2/i18n/it.js +43 -0
  142. fnschoo1/static_collected/admin/js/vendor/select2/i18n/ja.js +40 -0
  143. fnschoo1/static_collected/admin/js/vendor/select2/i18n/ka.js +42 -0
  144. fnschoo1/static_collected/admin/js/vendor/select2/i18n/km.js +38 -0
  145. fnschoo1/static_collected/admin/js/vendor/select2/i18n/ko.js +42 -0
  146. fnschoo1/static_collected/admin/js/vendor/select2/i18n/lt.js +45 -0
  147. fnschoo1/static_collected/admin/js/vendor/select2/i18n/lv.js +41 -0
  148. fnschoo1/static_collected/admin/js/vendor/select2/i18n/mk.js +42 -0
  149. fnschoo1/static_collected/admin/js/vendor/select2/i18n/ms.js +38 -0
  150. fnschoo1/static_collected/admin/js/vendor/select2/i18n/nb.js +38 -0
  151. fnschoo1/static_collected/admin/js/vendor/select2/i18n/ne.js +44 -0
  152. fnschoo1/static_collected/admin/js/vendor/select2/i18n/nl.js +46 -0
  153. fnschoo1/static_collected/admin/js/vendor/select2/i18n/pl.js +43 -0
  154. fnschoo1/static_collected/admin/js/vendor/select2/i18n/ps.js +41 -0
  155. fnschoo1/static_collected/admin/js/vendor/select2/i18n/pt-BR.js +39 -0
  156. fnschoo1/static_collected/admin/js/vendor/select2/i18n/pt.js +41 -0
  157. fnschoo1/static_collected/admin/js/vendor/select2/i18n/ro.js +43 -0
  158. fnschoo1/static_collected/admin/js/vendor/select2/i18n/ru.js +48 -0
  159. fnschoo1/static_collected/admin/js/vendor/select2/i18n/sk.js +61 -0
  160. fnschoo1/static_collected/admin/js/vendor/select2/i18n/sl.js +41 -0
  161. fnschoo1/static_collected/admin/js/vendor/select2/i18n/sq.js +43 -0
  162. fnschoo1/static_collected/admin/js/vendor/select2/i18n/sr-Cyrl.js +48 -0
  163. fnschoo1/static_collected/admin/js/vendor/select2/i18n/sr.js +48 -0
  164. fnschoo1/static_collected/admin/js/vendor/select2/i18n/sv.js +40 -0
  165. fnschoo1/static_collected/admin/js/vendor/select2/i18n/th.js +36 -0
  166. fnschoo1/static_collected/admin/js/vendor/select2/i18n/tk.js +36 -0
  167. fnschoo1/static_collected/admin/js/vendor/select2/i18n/tr.js +40 -0
  168. fnschoo1/static_collected/admin/js/vendor/select2/i18n/uk.js +59 -0
  169. fnschoo1/static_collected/admin/js/vendor/select2/i18n/vi.js +37 -0
  170. fnschoo1/static_collected/admin/js/vendor/select2/i18n/zh-CN.js +36 -0
  171. fnschoo1/static_collected/admin/js/vendor/select2/i18n/zh-TW.js +33 -0
  172. fnschoo1/static_collected/admin/js/vendor/select2/select2.full.js +7115 -0
  173. fnschoo1/static_collected/admin/js/vendor/select2/select2.full.min.js +2 -0
  174. fnschoo1/static_collected/admin/js/vendor/xregexp/xregexp.js +4993 -0
  175. fnschoo1/static_collected/admin/js/vendor/xregexp/xregexp.min.js +160 -0
  176. fnschoo1/static_collected/css/bootstrap.min.css +11776 -0
  177. fnschoo1/static_collected/css/fnschool.css +26 -0
  178. fnschoo1/static_collected/images/favicon.ico +0 -0
  179. fnschoo1/static_collected/js/bootstrap.bundle.min.js +4223 -0
  180. fnschoo1/static_collected/js/bootstrap.min.js +2919 -0
  181. fnschoo1/static_collected/js/fnschool.js +84 -0
  182. fnschoo1/static_collected/js/jquery.min.js +5413 -0
  183. fnschoo1/static_collected/js/jquery.slim.min.js +4331 -0
  184. fnschoo1/static_collected/js/popper.min.js +1306 -0
  185. fnschoo1/templates/base/_css.html +1 -0
  186. fnschoo1/templates/base/_js.html +15 -0
  187. fnschoo1/templates/base/content.html +30 -0
  188. fnschoo1/templates/base/header_content_footer.html +35 -0
  189. fnschoo1/templates/close.html +11 -0
  190. fnschoo1/templates/home.html +51 -0
  191. fnschoo1/templates/includes/_footer.html +39 -0
  192. fnschoo1/templates/includes/_header.html +77 -0
  193. fnschoo1/templates/includes/_navigation.html +0 -0
  194. fnschoo1/templates/includes/_paginator.html +27 -0
  195. fnschoo1/templates/registration/logged_out.html +0 -0
  196. fnschoo1/templates/registration/login.html +0 -0
  197. fnschool-20251011.81638.854.dist-info/METADATA +179 -0
  198. fnschool-20251011.81638.854.dist-info/RECORD +209 -0
  199. {fnschool-20250109.80531.837.dist-info → fnschool-20251011.81638.854.dist-info}/WHEEL +1 -1
  200. fnschool-20251011.81638.854.dist-info/entry_points.txt +2 -0
  201. fnschool-20251011.81638.854.dist-info/top_level.txt +1 -0
  202. fnschool/__init__.py +0 -35
  203. fnschool/__main__.py +0 -16
  204. fnschool/app.py +0 -103
  205. fnschool/canteen/__init__.py +0 -3
  206. fnschool/canteen/__main__.py +0 -3
  207. fnschool/canteen/bill.py +0 -253
  208. fnschool/canteen/canteen.py +0 -1
  209. fnschool/canteen/canteen.toml +0 -61
  210. fnschool/canteen/config.py +0 -10
  211. fnschool/canteen/consuming.py +0 -53
  212. fnschool/canteen/currency.py +0 -17
  213. fnschool/canteen/data/bill.i18n.xlsx +0 -0
  214. fnschool/canteen/data/bill.xlsx +0 -0
  215. fnschool/canteen/data/consuming.xlsx +0 -0
  216. fnschool/canteen/data/purchase_list.xlsx +0 -0
  217. fnschool/canteen/entry.py +0 -40
  218. fnschool/canteen/food.py +0 -206
  219. fnschool/canteen/food_classes.py +0 -33
  220. fnschool/canteen/food_classes.toml +0 -64
  221. fnschool/canteen/operator.py +0 -91
  222. fnschool/canteen/path.py +0 -28
  223. fnschool/canteen/spreadsheet/base.py +0 -213
  224. fnschool/canteen/spreadsheet/consuming.py +0 -310
  225. fnschool/canteen/spreadsheet/consumingsum.py +0 -76
  226. fnschool/canteen/spreadsheet/cover.py +0 -64
  227. fnschool/canteen/spreadsheet/ctspreadsheet.py +0 -351
  228. fnschool/canteen/spreadsheet/food.py +0 -680
  229. fnschool/canteen/spreadsheet/inventory.py +0 -375
  230. fnschool/canteen/spreadsheet/merging.py +0 -340
  231. fnschool/canteen/spreadsheet/preconsuming.py +0 -329
  232. fnschool/canteen/spreadsheet/purchasing.py +0 -885
  233. fnschool/canteen/spreadsheet/purchasingsum.py +0 -110
  234. fnschool/canteen/spreadsheet/spreadsheet.py +0 -363
  235. fnschool/canteen/spreadsheet/translating.py +0 -12
  236. fnschool/canteen/spreadsheet/unwarehousing.py +0 -178
  237. fnschool/canteen/spreadsheet/unwarehousingsum.py +0 -11
  238. fnschool/canteen/spreadsheet/warehousing.py +0 -360
  239. fnschool/canteen/spreadsheet/workbook.py +0 -17
  240. fnschool/canteen/test.py +0 -97
  241. fnschool/config.py +0 -48
  242. fnschool/entry.py +0 -67
  243. fnschool/exam/__init__.py +0 -8
  244. fnschool/exam/data/parental_emails.xlsx +0 -0
  245. fnschool/exam/data/score.xlsx +0 -0
  246. fnschool/exam/email.py +0 -349
  247. fnschool/exam/entry.py +0 -36
  248. fnschool/exam/language.py +0 -19
  249. fnschool/exam/path.py +0 -24
  250. fnschool/exam/score.py +0 -1191
  251. fnschool/exam/subject.py +0 -20
  252. fnschool/exam/teacher.py +0 -54
  253. fnschool/external.py +0 -89
  254. fnschool/games/__init__.py +0 -1
  255. fnschool/games/__main__.py +0 -1
  256. fnschool/games/games.py +0 -1
  257. fnschool/inoutput.py +0 -97
  258. fnschool/language.py +0 -40
  259. fnschool/locales/en_US/LC_MESSAGES/fnschool.mo +0 -0
  260. fnschool/locales/zh_CN/LC_MESSAGES/fnschool.mo +0 -0
  261. fnschool/locales/zh_HK/LC_MESSAGES/fnschool.mo +0 -0
  262. fnschool/locales/zh_SG/LC_MESSAGES/fnschool.mo +0 -0
  263. fnschool/locales/zh_TW/LC_MESSAGES/fnschool.mo +0 -0
  264. fnschool/path.py +0 -45
  265. fnschool/test.py +0 -24
  266. fnschool/user.py +0 -262
  267. fnschool-20250109.80531.837.dist-info/METADATA +0 -342
  268. fnschool-20250109.80531.837.dist-info/RECORD +0 -78
  269. fnschool-20250109.80531.837.dist-info/entry_points.txt +0 -5
  270. fnschool-20250109.80531.837.dist-info/top_level.txt +0 -1
  271. /fnschool/canteen/consume.py → /fnschoo1/canteen/__init__.py +0 -0
  272. /fnschool/canteen/food_recount.toml → /fnschoo1/canteen/migrations/__init__.py +0 -0
  273. {fnschool/canteen/spreadsheet → fnschoo1/canteen/workbook}/__init__.py +0 -0
  274. /fnschool/exam/__main__.py → /fnschoo1/fnschool/templatetags/__init__.py +0 -0
  275. /fnschool/canteen/food_recounts.toml → /fnschoo1/profiles/__init__.py +0 -0
  276. /fnschool/canteen/warehouse.py → /fnschoo1/profiles/migrations/__init__.py +0 -0
  277. /fnschool/canteen/workbook.toml → /fnschoo1/templates/base/_content.html +0 -0
  278. {fnschool-20250109.80531.837.dist-info → fnschool-20251011.81638.854.dist-info/licenses}/LICENSE +0 -0
@@ -0,0 +1,1043 @@
1
+ /* Tablets */
2
+
3
+ input[type='submit'],
4
+ button {
5
+ -webkit-appearance: none;
6
+ appearance: none;
7
+ }
8
+
9
+ @media (max-width: 1024px) {
10
+ /* Basic */
11
+
12
+ html {
13
+ -webkit-text-size-adjust: 100%;
14
+ }
15
+
16
+ td,
17
+ th {
18
+ padding: 10px;
19
+ font-size: 0.875rem;
20
+ }
21
+
22
+ .small {
23
+ font-size: 0.75rem;
24
+ }
25
+
26
+ /* Layout */
27
+
28
+ #container {
29
+ min-width: 0;
30
+ }
31
+
32
+ #content {
33
+ padding: 15px 20px 20px;
34
+ }
35
+
36
+ div.breadcrumbs {
37
+ padding: 10px 30px;
38
+ }
39
+
40
+ /* Header */
41
+
42
+ #header {
43
+ flex-direction: column;
44
+ padding: 15px 30px;
45
+ justify-content: flex-start;
46
+ }
47
+
48
+ #branding h1 {
49
+ margin: 0 0 8px;
50
+ line-height: 1.2;
51
+ }
52
+
53
+ #user-tools {
54
+ margin: 0;
55
+ font-weight: 400;
56
+ line-height: 1.85;
57
+ text-align: left;
58
+ }
59
+
60
+ #user-tools a {
61
+ display: inline-block;
62
+ line-height: 1.4;
63
+ }
64
+
65
+ /* Dashboard */
66
+
67
+ .dashboard #content {
68
+ width: auto;
69
+ }
70
+
71
+ #content-related {
72
+ margin-right: -290px;
73
+ }
74
+
75
+ .colSM #content-related {
76
+ margin-left: -290px;
77
+ }
78
+
79
+ .colMS {
80
+ margin-right: 290px;
81
+ }
82
+
83
+ .colSM {
84
+ margin-left: 290px;
85
+ }
86
+
87
+ .dashboard .module table td a {
88
+ padding-right: 0;
89
+ }
90
+
91
+ td .changelink,
92
+ td .addlink {
93
+ font-size: 0.8125rem;
94
+ }
95
+
96
+ /* Changelist */
97
+
98
+ #toolbar {
99
+ border: none;
100
+ padding: 15px;
101
+ }
102
+
103
+ #changelist-search > div {
104
+ display: flex;
105
+ flex-wrap: nowrap;
106
+ max-width: 480px;
107
+ }
108
+
109
+ #changelist-search label {
110
+ line-height: 1.375rem;
111
+ }
112
+
113
+ #toolbar form #searchbar {
114
+ flex: 1 0 auto;
115
+ width: 0;
116
+ height: 1.375rem;
117
+ margin: 0 10px 0 6px;
118
+ }
119
+
120
+ #toolbar form input[type='submit'] {
121
+ flex: 0 1 auto;
122
+ }
123
+
124
+ #changelist-search .quiet {
125
+ width: 0;
126
+ flex: 1 0 auto;
127
+ margin: 5px 0 0 25px;
128
+ }
129
+
130
+ #changelist .actions {
131
+ display: flex;
132
+ flex-wrap: wrap;
133
+ padding: 15px 0;
134
+ }
135
+
136
+ #changelist .actions label {
137
+ display: flex;
138
+ }
139
+
140
+ #changelist .actions select {
141
+ background: var(--body-bg);
142
+ }
143
+
144
+ #changelist .actions .button {
145
+ min-width: 48px;
146
+ margin: 0 10px;
147
+ }
148
+
149
+ #changelist .actions span.all,
150
+ #changelist .actions span.clear,
151
+ #changelist .actions span.question,
152
+ #changelist .actions span.action-counter {
153
+ font-size: 0.6875rem;
154
+ margin: 0 10px 0 0;
155
+ }
156
+
157
+ #changelist-filter {
158
+ flex-basis: 200px;
159
+ }
160
+
161
+ .change-list .filtered .results,
162
+ .change-list .filtered .paginator,
163
+ .filtered #toolbar,
164
+ .filtered .actions,
165
+ #changelist .paginator {
166
+ border-top-color: var(--hairline-color); /* XXX Is this used at all? */
167
+ }
168
+
169
+ #changelist .results + .paginator {
170
+ border-top: none;
171
+ }
172
+
173
+ /* Forms */
174
+
175
+ label {
176
+ font-size: 0.875rem;
177
+ }
178
+
179
+ .form-row input[type='text'],
180
+ .form-row input[type='password'],
181
+ .form-row input[type='email'],
182
+ .form-row input[type='url'],
183
+ .form-row input[type='tel'],
184
+ .form-row input[type='number'],
185
+ .form-row textarea,
186
+ .form-row select,
187
+ .form-row .vTextField {
188
+ box-sizing: border-box;
189
+ margin: 0;
190
+ padding: 6px 8px;
191
+ min-height: 2.25rem;
192
+ font-size: 0.875rem;
193
+ }
194
+
195
+ .form-row select {
196
+ height: 2.25rem;
197
+ }
198
+
199
+ .form-row select[multiple] {
200
+ height: auto;
201
+ min-height: 0;
202
+ }
203
+
204
+ fieldset .fieldBox + .fieldBox {
205
+ margin-top: 10px;
206
+ padding-top: 10px;
207
+ border-top: 1px solid var(--hairline-color);
208
+ }
209
+
210
+ textarea {
211
+ max-width: 100%;
212
+ max-height: 120px;
213
+ }
214
+
215
+ .aligned label {
216
+ padding-top: 6px;
217
+ }
218
+
219
+ .aligned .related-lookup,
220
+ .aligned .datetimeshortcuts,
221
+ .aligned .related-lookup + strong {
222
+ align-self: center;
223
+ margin-left: 15px;
224
+ }
225
+
226
+ form .aligned div.radiolist {
227
+ margin-left: 2px;
228
+ }
229
+
230
+ .submit-row {
231
+ padding: 8px;
232
+ }
233
+
234
+ .submit-row a.deletelink {
235
+ padding: 10px 7px;
236
+ }
237
+
238
+ .button,
239
+ input[type='submit'],
240
+ input[type='button'],
241
+ .submit-row input,
242
+ a.button {
243
+ padding: 7px;
244
+ }
245
+
246
+ /* Related widget */
247
+
248
+ .related-widget-wrapper {
249
+ float: none;
250
+ }
251
+
252
+ .related-widget-wrapper-link + .selector {
253
+ max-width: calc(100% - 30px);
254
+ margin-right: 15px;
255
+ }
256
+
257
+ select + .related-widget-wrapper-link,
258
+ .related-widget-wrapper-link + .related-widget-wrapper-link {
259
+ margin-left: 10px;
260
+ }
261
+
262
+ /* Selector */
263
+
264
+ .selector {
265
+ display: flex;
266
+ width: 100%;
267
+ }
268
+
269
+ .selector .selector-filter {
270
+ display: flex;
271
+ align-items: center;
272
+ }
273
+
274
+ .selector .selector-filter label {
275
+ margin: 0 8px 0 0;
276
+ }
277
+
278
+ .selector .selector-filter input {
279
+ width: auto;
280
+ min-height: 0;
281
+ flex: 1 1;
282
+ }
283
+
284
+ .selector-available,
285
+ .selector-chosen {
286
+ width: auto;
287
+ flex: 1 1;
288
+ display: flex;
289
+ flex-direction: column;
290
+ }
291
+
292
+ .selector select {
293
+ width: 100%;
294
+ flex: 1 0 auto;
295
+ margin-bottom: 5px;
296
+ }
297
+
298
+ .selector ul.selector-chooser {
299
+ width: 26px;
300
+ height: 52px;
301
+ padding: 2px 0;
302
+ margin: auto 15px;
303
+ border-radius: 20px;
304
+ transform: translateY(-10px);
305
+ }
306
+
307
+ .selector-add,
308
+ .selector-remove {
309
+ width: 20px;
310
+ height: 20px;
311
+ background-size: 20px auto;
312
+ }
313
+
314
+ .selector-add {
315
+ background-position: 0 -120px;
316
+ }
317
+
318
+ .selector-remove {
319
+ background-position: 0 -80px;
320
+ }
321
+
322
+ a.selector-chooseall,
323
+ a.selector-clearall {
324
+ align-self: center;
325
+ }
326
+
327
+ .stacked {
328
+ flex-direction: column;
329
+ max-width: 480px;
330
+ }
331
+
332
+ .stacked > * {
333
+ flex: 0 1 auto;
334
+ }
335
+
336
+ .stacked select {
337
+ margin-bottom: 0;
338
+ }
339
+
340
+ .stacked .selector-available,
341
+ .stacked .selector-chosen {
342
+ width: auto;
343
+ }
344
+
345
+ .stacked ul.selector-chooser {
346
+ width: 52px;
347
+ height: 26px;
348
+ padding: 0 2px;
349
+ margin: 15px auto;
350
+ transform: none;
351
+ }
352
+
353
+ .stacked .selector-chooser li {
354
+ padding: 3px;
355
+ }
356
+
357
+ .stacked .selector-add,
358
+ .stacked .selector-remove {
359
+ background-size: 20px auto;
360
+ }
361
+
362
+ .stacked .selector-add {
363
+ background-position: 0 -40px;
364
+ }
365
+
366
+ .stacked .active.selector-add {
367
+ background-position: 0 -40px;
368
+ }
369
+
370
+ .active.selector-add:focus,
371
+ .active.selector-add:hover {
372
+ background-position: 0 -140px;
373
+ }
374
+
375
+ .stacked .active.selector-add:focus,
376
+ .stacked .active.selector-add:hover {
377
+ background-position: 0 -60px;
378
+ }
379
+
380
+ .stacked .selector-remove {
381
+ background-position: 0 0;
382
+ }
383
+
384
+ .stacked .active.selector-remove {
385
+ background-position: 0 0;
386
+ }
387
+
388
+ .active.selector-remove:focus,
389
+ .active.selector-remove:hover {
390
+ background-position: 0 -100px;
391
+ }
392
+
393
+ .stacked .active.selector-remove:focus,
394
+ .stacked .active.selector-remove:hover {
395
+ background-position: 0 -20px;
396
+ }
397
+
398
+ .help-tooltip,
399
+ .selector .help-icon {
400
+ display: none;
401
+ }
402
+
403
+ .datetime input {
404
+ width: 50%;
405
+ max-width: 120px;
406
+ }
407
+
408
+ .datetime span {
409
+ font-size: 0.8125rem;
410
+ }
411
+
412
+ .datetime .timezonewarning {
413
+ display: block;
414
+ font-size: 0.6875rem;
415
+ color: var(--body-quiet-color);
416
+ }
417
+
418
+ .datetimeshortcuts {
419
+ color: var(
420
+ --border-color
421
+ ); /* XXX Redundant, .datetime span also sets #ccc */
422
+ }
423
+
424
+ .form-row .datetime input.vDateField,
425
+ .form-row .datetime input.vTimeField {
426
+ width: 75%;
427
+ }
428
+
429
+ .inline-group {
430
+ overflow: auto;
431
+ }
432
+
433
+ /* Messages */
434
+
435
+ ul.messagelist li {
436
+ padding-left: 55px;
437
+ background-position: 30px 12px;
438
+ }
439
+
440
+ ul.messagelist li.error {
441
+ background-position: 30px 12px;
442
+ }
443
+
444
+ ul.messagelist li.warning {
445
+ background-position: 30px 14px;
446
+ }
447
+
448
+ /* Login */
449
+
450
+ .login #header {
451
+ padding: 15px 20px;
452
+ }
453
+
454
+ .login #branding h1 {
455
+ margin: 0;
456
+ }
457
+
458
+ /* GIS */
459
+
460
+ div.olMap {
461
+ max-width: calc(100vw - 30px);
462
+ max-height: 300px;
463
+ }
464
+
465
+ .olMap + .clear_features {
466
+ display: block;
467
+ margin-top: 10px;
468
+ }
469
+
470
+ /* Docs */
471
+
472
+ .module table.xfull {
473
+ width: 100%;
474
+ }
475
+
476
+ pre.literal-block {
477
+ overflow: auto;
478
+ }
479
+ }
480
+
481
+ /* Mobile */
482
+
483
+ @media (max-width: 767px) {
484
+ /* Layout */
485
+
486
+ #header,
487
+ #content,
488
+ #footer {
489
+ padding: 15px;
490
+ }
491
+
492
+ #footer:empty {
493
+ padding: 0;
494
+ }
495
+
496
+ div.breadcrumbs {
497
+ padding: 10px 15px;
498
+ }
499
+
500
+ /* Dashboard */
501
+
502
+ .colMS,
503
+ .colSM {
504
+ margin: 0;
505
+ }
506
+
507
+ #content-related,
508
+ .colSM #content-related {
509
+ width: 100%;
510
+ margin: 0;
511
+ }
512
+
513
+ #content-related .module {
514
+ margin-bottom: 0;
515
+ }
516
+
517
+ #content-related .module h2 {
518
+ padding: 10px 15px;
519
+ font-size: 1rem;
520
+ }
521
+
522
+ /* Changelist */
523
+
524
+ #changelist {
525
+ align-items: stretch;
526
+ flex-direction: column;
527
+ }
528
+
529
+ #toolbar {
530
+ padding: 10px;
531
+ }
532
+
533
+ #changelist-filter {
534
+ margin-left: 0;
535
+ }
536
+
537
+ #changelist .actions label {
538
+ flex: 1 1;
539
+ }
540
+
541
+ #changelist .actions select {
542
+ flex: 1 0;
543
+ width: 100%;
544
+ }
545
+
546
+ #changelist .actions span {
547
+ flex: 1 0 100%;
548
+ }
549
+
550
+ #changelist-filter {
551
+ position: static;
552
+ width: auto;
553
+ margin-top: 30px;
554
+ }
555
+
556
+ .object-tools {
557
+ float: none;
558
+ margin: 0 0 15px;
559
+ padding: 0;
560
+ overflow: hidden;
561
+ }
562
+
563
+ .object-tools li {
564
+ height: auto;
565
+ margin-left: 0;
566
+ }
567
+
568
+ .object-tools li + li {
569
+ margin-left: 15px;
570
+ }
571
+
572
+ /* Forms */
573
+
574
+ .form-row {
575
+ padding: 15px 0;
576
+ }
577
+
578
+ .aligned .form-row,
579
+ .aligned .form-row > div {
580
+ max-width: 100vw;
581
+ }
582
+
583
+ .aligned .form-row > div {
584
+ width: calc(100vw - 30px);
585
+ }
586
+
587
+ .flex-container {
588
+ flex-flow: column;
589
+ }
590
+
591
+ .flex-container.checkbox-row {
592
+ flex-flow: row;
593
+ }
594
+
595
+ textarea {
596
+ max-width: none;
597
+ }
598
+
599
+ .vURLField {
600
+ width: auto;
601
+ }
602
+
603
+ fieldset .fieldBox + .fieldBox {
604
+ margin-top: 15px;
605
+ padding-top: 15px;
606
+ }
607
+
608
+ fieldset.collapsed .form-row {
609
+ display: none;
610
+ }
611
+
612
+ .aligned label {
613
+ width: 100%;
614
+ min-width: auto;
615
+ padding: 0 0 10px;
616
+ }
617
+
618
+ .aligned label:after {
619
+ max-height: 0;
620
+ }
621
+
622
+ .aligned .form-row input,
623
+ .aligned .form-row select,
624
+ .aligned .form-row textarea {
625
+ flex: 1 1 auto;
626
+ max-width: 100%;
627
+ }
628
+
629
+ .aligned .checkbox-row input {
630
+ flex: 0 1 auto;
631
+ margin: 0;
632
+ }
633
+
634
+ .aligned .vCheckboxLabel {
635
+ flex: 1 0;
636
+ padding: 1px 0 0 5px;
637
+ }
638
+
639
+ .aligned label + p,
640
+ .aligned label + div.help,
641
+ .aligned label + div.readonly {
642
+ padding: 0;
643
+ margin-left: 0;
644
+ }
645
+
646
+ .aligned p.file-upload {
647
+ font-size: 0.8125rem;
648
+ }
649
+
650
+ span.clearable-file-input {
651
+ margin-left: 15px;
652
+ }
653
+
654
+ span.clearable-file-input label {
655
+ font-size: 0.8125rem;
656
+ padding-bottom: 0;
657
+ }
658
+
659
+ .aligned .timezonewarning {
660
+ flex: 1 0 100%;
661
+ margin-top: 5px;
662
+ }
663
+
664
+ form .aligned .form-row div.help {
665
+ width: 100%;
666
+ margin: 5px 0 0;
667
+ padding: 0;
668
+ }
669
+
670
+ form .aligned ul,
671
+ form .aligned ul.errorlist {
672
+ margin-left: 0;
673
+ padding-left: 0;
674
+ }
675
+
676
+ form .aligned div.radiolist {
677
+ margin-top: 5px;
678
+ margin-right: 15px;
679
+ margin-bottom: -3px;
680
+ }
681
+
682
+ form .aligned div.radiolist:not(.inline) div + div {
683
+ margin-top: 5px;
684
+ }
685
+
686
+ /* Related widget */
687
+
688
+ .related-widget-wrapper {
689
+ width: 100%;
690
+ display: flex;
691
+ align-items: flex-start;
692
+ }
693
+
694
+ .related-widget-wrapper .selector {
695
+ order: 1;
696
+ }
697
+
698
+ .related-widget-wrapper > a {
699
+ order: 2;
700
+ }
701
+
702
+ .related-widget-wrapper .radiolist ~ a {
703
+ align-self: flex-end;
704
+ }
705
+
706
+ .related-widget-wrapper > select ~ a {
707
+ align-self: center;
708
+ }
709
+
710
+ select + .related-widget-wrapper-link,
711
+ .related-widget-wrapper-link + .related-widget-wrapper-link {
712
+ margin-left: 15px;
713
+ }
714
+
715
+ /* Selector */
716
+
717
+ .selector {
718
+ flex-direction: column;
719
+ }
720
+
721
+ .selector > * {
722
+ float: none;
723
+ }
724
+
725
+ .selector-available,
726
+ .selector-chosen {
727
+ margin-bottom: 0;
728
+ flex: 1 1 auto;
729
+ }
730
+
731
+ .selector select {
732
+ max-height: 96px;
733
+ }
734
+
735
+ .selector ul.selector-chooser {
736
+ display: block;
737
+ float: none;
738
+ width: 52px;
739
+ height: 26px;
740
+ padding: 0 2px;
741
+ margin: 15px auto 20px;
742
+ transform: none;
743
+ }
744
+
745
+ .selector ul.selector-chooser li {
746
+ float: left;
747
+ }
748
+
749
+ .selector-remove {
750
+ background-position: 0 0;
751
+ }
752
+
753
+ .active.selector-remove:focus,
754
+ .active.selector-remove:hover {
755
+ background-position: 0 -20px;
756
+ }
757
+
758
+ .selector-add {
759
+ background-position: 0 -40px;
760
+ }
761
+
762
+ .active.selector-add:focus,
763
+ .active.selector-add:hover {
764
+ background-position: 0 -60px;
765
+ }
766
+
767
+ /* Inlines */
768
+
769
+ .inline-group[data-inline-type='stacked'] .inline-related {
770
+ border: 1px solid var(--hairline-color);
771
+ border-radius: 4px;
772
+ margin-top: 15px;
773
+ overflow: auto;
774
+ }
775
+
776
+ .inline-group[data-inline-type='stacked'] .inline-related > * {
777
+ box-sizing: border-box;
778
+ }
779
+
780
+ .inline-group[data-inline-type='stacked'] .inline-related .module {
781
+ padding: 0 10px;
782
+ }
783
+
784
+ .inline-group[data-inline-type='stacked'] .inline-related .module .form-row {
785
+ border-top: 1px solid var(--hairline-color);
786
+ border-bottom: none;
787
+ }
788
+
789
+ .inline-group[data-inline-type='stacked']
790
+ .inline-related
791
+ .module
792
+ .form-row:first-child {
793
+ border-top: none;
794
+ }
795
+
796
+ .inline-group[data-inline-type='stacked'] .inline-related h3 {
797
+ padding: 10px;
798
+ border-top-width: 0;
799
+ border-bottom-width: 2px;
800
+ display: flex;
801
+ flex-wrap: wrap;
802
+ align-items: center;
803
+ }
804
+
805
+ .inline-group[data-inline-type='stacked'] .inline-related h3 .inline_label {
806
+ margin-right: auto;
807
+ }
808
+
809
+ .inline-group[data-inline-type='stacked'] .inline-related h3 span.delete {
810
+ float: none;
811
+ flex: 1 1 100%;
812
+ margin-top: 5px;
813
+ }
814
+
815
+ .inline-group[data-inline-type='stacked']
816
+ .aligned
817
+ .form-row
818
+ > div:not([class]) {
819
+ width: 100%;
820
+ }
821
+
822
+ .inline-group[data-inline-type='stacked'] .aligned label {
823
+ width: 100%;
824
+ }
825
+
826
+ .inline-group[data-inline-type='stacked'] div.add-row {
827
+ margin-top: 15px;
828
+ border: 1px solid var(--hairline-color);
829
+ border-radius: 4px;
830
+ }
831
+
832
+ .inline-group div.add-row,
833
+ .inline-group .tabular tr.add-row td {
834
+ padding: 0;
835
+ }
836
+
837
+ .inline-group div.add-row a,
838
+ .inline-group .tabular tr.add-row td a {
839
+ display: block;
840
+ padding: 8px 10px 8px 26px;
841
+ background-position: 8px 9px;
842
+ }
843
+
844
+ /* Submit row */
845
+
846
+ .submit-row {
847
+ padding: 10px;
848
+ margin: 0 0 15px;
849
+ flex-direction: column;
850
+ gap: 8px;
851
+ }
852
+
853
+ .submit-row input,
854
+ .submit-row input.default,
855
+ .submit-row a {
856
+ text-align: center;
857
+ }
858
+
859
+ .submit-row a.closelink {
860
+ padding: 10px 0;
861
+ text-align: center;
862
+ }
863
+
864
+ .submit-row a.deletelink {
865
+ margin: 0;
866
+ }
867
+
868
+ /* Messages */
869
+
870
+ ul.messagelist li {
871
+ padding-left: 40px;
872
+ background-position: 15px 12px;
873
+ }
874
+
875
+ ul.messagelist li.error {
876
+ background-position: 15px 12px;
877
+ }
878
+
879
+ ul.messagelist li.warning {
880
+ background-position: 15px 14px;
881
+ }
882
+
883
+ /* Paginator */
884
+
885
+ .paginator .this-page,
886
+ .paginator a:link,
887
+ .paginator a:visited {
888
+ padding: 4px 10px;
889
+ }
890
+
891
+ /* Login */
892
+
893
+ body.login {
894
+ padding: 0 15px;
895
+ }
896
+
897
+ .login #container {
898
+ width: auto;
899
+ max-width: 480px;
900
+ margin: 50px auto;
901
+ }
902
+
903
+ .login #header,
904
+ .login #content {
905
+ padding: 15px;
906
+ }
907
+
908
+ .login #content-main {
909
+ float: none;
910
+ }
911
+
912
+ .login .form-row {
913
+ padding: 0;
914
+ }
915
+
916
+ .login .form-row + .form-row {
917
+ margin-top: 15px;
918
+ }
919
+
920
+ .login .form-row label {
921
+ margin: 0 0 5px;
922
+ line-height: 1.2;
923
+ }
924
+
925
+ .login .submit-row {
926
+ padding: 15px 0 0;
927
+ }
928
+
929
+ .login br {
930
+ display: none;
931
+ }
932
+
933
+ .login .submit-row input {
934
+ margin: 0;
935
+ text-transform: uppercase;
936
+ }
937
+
938
+ .errornote {
939
+ margin: 0 0 20px;
940
+ padding: 8px 12px;
941
+ font-size: 0.8125rem;
942
+ }
943
+
944
+ /* Calendar and clock */
945
+
946
+ .calendarbox,
947
+ .clockbox {
948
+ position: fixed !important;
949
+ top: 50% !important;
950
+ left: 50% !important;
951
+ transform: translate(-50%, -50%);
952
+ margin: 0;
953
+ border: none;
954
+ overflow: visible;
955
+ }
956
+
957
+ .calendarbox:before,
958
+ .clockbox:before {
959
+ content: '';
960
+ position: fixed;
961
+ top: 50%;
962
+ left: 50%;
963
+ width: 100vw;
964
+ height: 100vh;
965
+ background: rgba(0, 0, 0, 0.75);
966
+ transform: translate(-50%, -50%);
967
+ }
968
+
969
+ .calendarbox > *,
970
+ .clockbox > * {
971
+ position: relative;
972
+ z-index: 1;
973
+ }
974
+
975
+ .calendarbox > div:first-child {
976
+ z-index: 2;
977
+ }
978
+
979
+ .calendarbox .calendar,
980
+ .clockbox h2 {
981
+ border-radius: 4px 4px 0 0;
982
+ overflow: hidden;
983
+ }
984
+
985
+ .calendarbox .calendar-cancel,
986
+ .clockbox .calendar-cancel {
987
+ border-radius: 0 0 4px 4px;
988
+ overflow: hidden;
989
+ }
990
+
991
+ .calendar-shortcuts {
992
+ padding: 10px 0;
993
+ font-size: 0.75rem;
994
+ line-height: 0.75rem;
995
+ }
996
+
997
+ .calendar-shortcuts a {
998
+ margin: 0 4px;
999
+ }
1000
+
1001
+ .timelist a {
1002
+ background: var(--body-bg);
1003
+ padding: 4px;
1004
+ }
1005
+
1006
+ .calendar-cancel {
1007
+ padding: 8px 10px;
1008
+ }
1009
+
1010
+ .clockbox h2 {
1011
+ padding: 8px 15px;
1012
+ }
1013
+
1014
+ .calendar caption {
1015
+ padding: 10px;
1016
+ }
1017
+
1018
+ .calendarbox .calendarnav-previous,
1019
+ .calendarbox .calendarnav-next {
1020
+ z-index: 1;
1021
+ top: 10px;
1022
+ }
1023
+
1024
+ /* History */
1025
+
1026
+ table#change-history tbody th,
1027
+ table#change-history tbody td {
1028
+ font-size: 0.8125rem;
1029
+ word-break: break-word;
1030
+ }
1031
+
1032
+ table#change-history tbody th {
1033
+ width: auto;
1034
+ }
1035
+
1036
+ /* Docs */
1037
+
1038
+ table.model tbody th,
1039
+ table.model tbody td {
1040
+ font-size: 0.8125rem;
1041
+ word-break: break-word;
1042
+ }
1043
+ }