django-camomilla-cms 5.8.5__py2.py3-none-any.whl → 6.0.0__py2.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.
Files changed (143) hide show
  1. camomilla/__init__.py +8 -2
  2. camomilla/apps.py +9 -1
  3. camomilla/context_processors.py +6 -0
  4. camomilla/contrib/modeltranslation/__init__.py +0 -0
  5. camomilla/contrib/modeltranslation/hvad_migration.py +126 -0
  6. camomilla/dynamic_pages_urls.py +33 -0
  7. camomilla/fields/__init__.py +13 -0
  8. camomilla/{fields.py → fields/json.py} +15 -18
  9. camomilla/management/commands/regenerate_thumbnails.py +0 -1
  10. camomilla/managers/__init__.py +3 -0
  11. camomilla/managers/pages.py +116 -0
  12. camomilla/model_api.py +86 -0
  13. camomilla/models/__init__.py +5 -6
  14. camomilla/models/article.py +26 -44
  15. camomilla/models/content.py +8 -15
  16. camomilla/models/media.py +70 -97
  17. camomilla/models/menu.py +106 -0
  18. camomilla/models/mixins/__init__.py +10 -48
  19. camomilla/models/page.py +521 -20
  20. camomilla/openapi/__init__.py +0 -0
  21. camomilla/openapi/schema.py +67 -0
  22. camomilla/parsers.py +0 -1
  23. camomilla/redirects.py +10 -0
  24. camomilla/serializers/__init__.py +2 -0
  25. camomilla/serializers/article.py +5 -10
  26. camomilla/serializers/base/__init__.py +21 -17
  27. camomilla/serializers/content_type.py +17 -0
  28. camomilla/serializers/fields/__init__.py +6 -20
  29. camomilla/serializers/fields/file.py +5 -0
  30. camomilla/serializers/fields/related.py +24 -4
  31. camomilla/serializers/media.py +6 -8
  32. camomilla/serializers/menu.py +17 -0
  33. camomilla/serializers/mixins/__init__.py +23 -187
  34. camomilla/serializers/mixins/fields.py +20 -0
  35. camomilla/serializers/mixins/filter_fields.py +57 -0
  36. camomilla/serializers/mixins/json.py +34 -0
  37. camomilla/serializers/mixins/language.py +32 -0
  38. camomilla/serializers/mixins/nesting.py +35 -0
  39. camomilla/serializers/mixins/optimize.py +91 -0
  40. camomilla/serializers/mixins/ordering.py +34 -0
  41. camomilla/serializers/mixins/page.py +58 -0
  42. camomilla/serializers/mixins/translation.py +103 -0
  43. camomilla/serializers/page.py +53 -4
  44. camomilla/serializers/user.py +5 -4
  45. camomilla/serializers/utils.py +38 -0
  46. camomilla/serializers/validators.py +51 -0
  47. camomilla/settings.py +118 -0
  48. camomilla/sitemap.py +30 -0
  49. camomilla/storages/__init__.py +4 -0
  50. camomilla/storages/default.py +12 -0
  51. camomilla/storages/optimize.py +71 -0
  52. camomilla/{storages.py → storages/overwrite.py} +2 -2
  53. camomilla/templates/admin/camomilla/page/change_form.html +10 -0
  54. camomilla/templates/defaults/articles/default.html +7 -0
  55. camomilla/templates/defaults/base.html +170 -0
  56. camomilla/templates/defaults/pages/default.html +3 -0
  57. camomilla/templates/defaults/parts/langswitch.html +83 -0
  58. camomilla/templates/defaults/parts/menu.html +15 -0
  59. camomilla/templates_context/__init__.py +0 -0
  60. camomilla/templates_context/autodiscover.py +51 -0
  61. camomilla/templates_context/rendering.py +89 -0
  62. camomilla/templatetags/camomilla_filters.py +6 -5
  63. camomilla/templatetags/menus.py +37 -0
  64. camomilla/templatetags/model_extras.py +77 -0
  65. camomilla/theme/__init__.py +1 -1
  66. camomilla/theme/admin/__init__.py +99 -0
  67. camomilla/theme/admin/pages.py +46 -0
  68. camomilla/theme/admin/translations.py +13 -0
  69. camomilla/theme/apps.py +38 -0
  70. camomilla/theme/static/admin/css/responsive.css +5 -1021
  71. camomilla/theme/static/admin/img/favicon.ico +0 -0
  72. camomilla/theme/static/admin/img/logo.svg +31 -0
  73. camomilla/theme/templates/admin/base.html +7 -0
  74. camomilla/theme/templates/rosetta/base.html +196 -0
  75. camomilla/translation.py +61 -0
  76. camomilla/urls.py +38 -17
  77. camomilla/utils/__init__.py +4 -0
  78. camomilla/utils/getters.py +27 -0
  79. camomilla/utils/normalization.py +7 -0
  80. camomilla/utils/query_parser.py +167 -0
  81. camomilla/{utils.py → utils/seo.py} +13 -15
  82. camomilla/utils/setters.py +37 -0
  83. camomilla/utils/templates.py +32 -0
  84. camomilla/utils/translation.py +114 -0
  85. camomilla/views/__init__.py +1 -1
  86. camomilla/views/articles.py +5 -7
  87. camomilla/views/base/__init__.py +35 -5
  88. camomilla/views/contents.py +6 -11
  89. camomilla/views/decorators.py +26 -0
  90. camomilla/views/medias.py +24 -19
  91. camomilla/views/menus.py +81 -0
  92. camomilla/views/mixins/__init__.py +17 -73
  93. camomilla/views/mixins/bulk_actions.py +22 -0
  94. camomilla/views/mixins/language.py +33 -0
  95. camomilla/views/mixins/optimize.py +18 -0
  96. camomilla/views/mixins/ordering.py +2 -2
  97. camomilla/views/mixins/pagination.py +12 -18
  98. camomilla/views/mixins/permissions.py +6 -0
  99. camomilla/views/pages.py +28 -6
  100. camomilla/views/tags.py +5 -6
  101. camomilla/views/users.py +7 -12
  102. django_camomilla_cms-6.0.0.dist-info/METADATA +123 -0
  103. django_camomilla_cms-6.0.0.dist-info/RECORD +133 -0
  104. {django_camomilla_cms-5.8.5.dist-info → django_camomilla_cms-6.0.0.dist-info}/WHEEL +1 -1
  105. tests/fixtures/__init__.py +14 -0
  106. tests/test_api.py +22 -39
  107. tests/test_camomilla_filters.py +11 -13
  108. tests/test_media.py +152 -0
  109. tests/test_menu.py +112 -0
  110. tests/test_model_api.py +113 -0
  111. tests/test_model_api_permissions.py +44 -0
  112. tests/test_model_api_register.py +355 -0
  113. tests/test_pages.py +351 -0
  114. tests/test_query_parser.py +58 -0
  115. tests/test_templates_context.py +149 -0
  116. tests/test_utils.py +64 -64
  117. tests/utils/__init__.py +0 -0
  118. tests/utils/api.py +28 -0
  119. tests/utils/media.py +10 -0
  120. camomilla/admin.py +0 -98
  121. camomilla/migrations/0001_initial.py +0 -577
  122. camomilla/migrations/0002_auto_20200214_1127.py +0 -33
  123. camomilla/migrations/0003_auto_20210130_1610.py +0 -30
  124. camomilla/migrations/0004_auto_20210511_0937.py +0 -25
  125. camomilla/migrations/0005_media_image_props.py +0 -19
  126. camomilla/migrations/0006_auto_20220103_1845.py +0 -35
  127. camomilla/migrations/0007_auto_20220211_1622.py +0 -18
  128. camomilla/migrations/0008_auto_20220309_1616.py +0 -60
  129. camomilla/migrations/0009_article__hvad_query_category__hvad_query_and_more.py +0 -165
  130. camomilla/migrations/0010_auto_20220802_1406.py +0 -83
  131. camomilla/migrations/0011_auto_20220902_1000.py +0 -15
  132. camomilla/models/category.py +0 -25
  133. camomilla/models/tag.py +0 -19
  134. camomilla/theme/static/admin/img/logo.png +0 -0
  135. camomilla/theme/templates/admin/base_site.html +0 -18
  136. camomilla/views/categories.py +0 -13
  137. django_camomilla_cms-5.8.5.dist-info/METADATA +0 -62
  138. django_camomilla_cms-5.8.5.dist-info/RECORD +0 -76
  139. tests/urls.py +0 -21
  140. /camomilla/{migrations → contrib}/__init__.py +0 -0
  141. /camomilla/templates/{camomilla → defaults}/widgets/media_select_multiple.html +0 -0
  142. {django_camomilla_cms-5.8.5.dist-info → django_camomilla_cms-6.0.0.dist-info/licenses}/LICENSE +0 -0
  143. {django_camomilla_cms-5.8.5.dist-info → django_camomilla_cms-6.0.0.dist-info}/top_level.txt +0 -0
@@ -1,1023 +1,7 @@
1
- /* Tablets */
2
-
3
- #branding h1, #branding h1 a:link, #branding h1 a:visited {
4
- color: black;
5
- font-weight: bold;
6
- }
7
-
8
- #header {
9
- background: #ccd857;
10
- color: black;
11
- }
12
-
13
- #header .logo {
14
- height: 40px;
15
- }
16
-
17
- .module caption, .inline-group h2 {
18
- background: #ccd857;
19
- color: black;
20
- }
21
-
22
- .module h2, .module caption, .inline-group h2 {
23
- background: #ccd857;
24
- }
25
-
26
- a:link, a:visited {
27
- color: black;
28
- text-decoration: none;
29
- }
30
-
31
- div.breadcrumbs {
32
- background: black;
33
- }
34
-
35
- .selector-chosen h2 {
36
- background: #ccd857;
1
+ :root .admin-interface {
2
+ --admin-interface-logo-default-background-image: url(/static/admin/img/logo.svg) !important;
37
3
  }
38
4
 
39
- .button, input[type=submit], input[type=button], .submit-row input, a.button {
40
- background: #ccd857;
41
- }
42
-
43
- .button.default, input[type=submit].default, .submit-row input.default {
44
- background: black;
45
- }
46
-
47
- .dashboard #content {
48
- width: 800px;
49
- }
50
-
51
- .dashboard #content-related {
52
- display: none;
53
- }
54
-
55
- @media (max-width: 991px) {
56
- html, body {
57
- height: 100%;
58
- }
59
-
60
- #container {
61
- min-width: 0;
62
- }
63
-
64
- .dashboard #content {
65
- width: auto;
66
- }
67
-
68
- .inline-group {
69
- overflow: auto;
70
- }
71
-
72
- input[type="submit"], button {
73
- -webkit-appearance: none;
74
- appearance: none;
75
- }
76
-
77
- .aligned .form-row {
78
- max-width: calc(100vw - 100px);
79
- overflow: auto;
80
- }
81
-
82
- .selector {
83
- display: flex;
84
- width: 100%;
85
- }
86
-
87
- .selector select {
88
- width: 100%;
89
- }
90
-
91
- .selector .selector-filter {
92
- display: flex;
93
- align-items: center;
94
- }
95
-
96
- .selector .selector-filter label {
97
- margin: 0;
98
- }
99
-
100
- .selector-available, .selector-chosen {
101
- width: auto;
102
- flex: 1 1;
103
- }
104
-
105
- .selector ul.selector-chooser {
106
- align-self: flex-start;
107
- }
108
-
109
- .selector .selector-available input {
110
- width: auto;
111
- flex: 1 1;
112
- }
113
-
114
- .stacked {
115
- flex-wrap: wrap;
116
- max-width: 490px;
117
- }
118
-
119
- .stacked > * {
120
- flex: 0 0 100%;
121
- }
122
-
123
- .stacked .selector-chooser {
124
- flex-basis: 50px;
125
- margin-left: auto !important;
126
- margin-right: auto !important;
127
- }
128
-
129
- #changelist-search div {
130
- display: flex;
131
- flex-wrap: wrap;
132
- }
133
-
134
- #changelist-search div > * {
135
- flex: 0 1 auto;
136
- }
137
-
138
- #changelist-search .quiet {
139
- flex: 1 1 100%;
140
- margin: 4px 0 0 24px;
141
- }
142
-
143
- #changelist #toolbar form #searchbar {
144
- flex: 1 0;
145
- margin: 0 10px 0 5px;
146
- }
147
-
148
- #changelist #toolbar form input[type="submit"] {
149
- flex-shrink: 0;
150
- }
151
-
152
- #changelist .actions {
153
- display: flex;
154
- flex-wrap: wrap;
155
- padding: 8px;
156
- margin-bottom: 10px;
157
- }
158
-
159
- #changelist .actions.selected {
160
- border: none;
161
- }
162
-
163
- #changelist .actions label {
164
- display: flex;
165
- flex: 1 1;
166
- padding-right: 10px;
167
- }
168
-
169
- #changelist .actions select {
170
- width: 100%;
171
- margin-left: 15px;
172
- }
173
-
174
- #changelist .actions .button {
175
- min-width: 48px;
176
- }
177
-
178
- #changelist .actions span.action-counter {
179
- flex: 1 0 100%;
180
- margin: 0;
181
- font-size: 11px;
182
- }
183
-
184
- #changelist .actions span.all,
185
- #changelist .actions span.question,
186
- #changelist .actions span.clear {
187
- flex: 1 0 100%;
188
- font-size: 11px;
189
- margin-left: 0;
190
- }
191
-
192
- #changelist-filter {
193
- width: 200px;
194
- }
195
-
196
- .change-list .filtered .results,
197
- .change-list .filtered .paginator,
198
- .filtered .actions,
199
- .filtered #toolbar,
200
- .filtered div.xfull {
201
- margin-right: 240px;
202
- }
203
-
204
- div.olMap[id] {
205
- margin-bottom: 10px !important;
206
- }
207
-
208
- pre.literal-block {
209
- padding: 10px;
210
- overflow: auto;
211
- }
212
-
213
- table.model tbody th,
214
- table.model tbody td {
215
- font-size: 13px;
216
- word-break: break-word;
217
- }
218
-
219
- table.model tbody th {
220
- width: auto;
221
- }
222
-
223
-
224
- html[dir="rtl"] #user-tools {
225
- text-align: right;
226
- }
227
-
228
- html[dir="rtl"] #changelist .actions label {
229
- padding-left: 10px;
230
- padding-right: 0;
231
- }
232
-
233
- html[dir="rtl"] #changelist .actions select {
234
- margin-left: 0;
235
- margin-right: 15px;
236
- }
237
-
238
- html[dir="rtl"] .change-list .filtered .results,
239
- html[dir="rtl"] .change-list .filtered .paginator,
240
- html[dir="rtl"] .filtered #toolbar,
241
- html[dir="rtl"] .filtered div.xfull,
242
- html[dir="rtl"] .filtered .actions {
243
- margin-right: 0;
244
- margin-left: 240px;
245
- }
246
- }
247
-
248
-
249
- /* Mobile */
250
-
251
- @media (max-width: 767px) {
252
- /* Basic */
253
-
254
- h1 {
255
- font-weight: 400;
256
- font-size: 18px;
257
- margin-bottom: 15px;
258
- }
259
-
260
- th, td {
261
- padding: 10px;
262
- font-size: 14px;
263
- }
264
-
265
- td .changelink, td .addlink {
266
- font-size: 13px;
267
- }
268
-
269
-
270
- /* Header */
271
-
272
- #header {
273
- padding: 15px;
274
- height: auto;
275
- line-height: 1;
276
- }
277
-
278
- #branding {
279
- float: none;
280
- }
281
-
282
- #branding h1 {
283
- margin: 0;
284
- font-size: 20px;
285
- }
286
-
287
- #user-tools {
288
- float: none;
289
- margin: 15px 0 0;
290
- font-weight: 400;
291
- font-size: 11px;
292
- line-height: 1.5;
293
- text-align: left;
294
- }
295
-
296
-
297
- /* Dashboard */
298
-
299
- #content {
300
- padding: 15px;
301
- }
302
-
303
- .colMS {
304
- margin-right: 0;
305
- }
306
-
307
- .colSM {
308
- margin-left: 0;
309
- }
310
-
311
- #content-main {
312
- float: none;
313
- }
314
-
315
- #content-related {
316
- float: none;
317
- width: auto;
318
- margin-right: 0;
319
- padding-bottom: 2px;
320
- }
321
-
322
- #content-related .module h2 {
323
- padding: 10px 16px;
324
- font-size: 16px;
325
- }
326
-
327
- #recent-actions-module {
328
- margin-bottom: 0;
329
- }
330
-
331
-
332
- /* Module */
333
-
334
- .dashboard .module table td a {
335
- padding-right: 0;
336
- }
337
-
338
-
339
- /* Change List */
340
-
341
- div.breadcrumbs {
342
- padding: 10px 15px;
343
- }
344
-
345
- .object-tools {
346
- display: flex;
347
- flex-wrap: wrap;
348
- padding: 0;
349
- margin: 0 0 15px;
350
- float: none;
351
- width: 100%;
352
- }
353
-
354
- .object-tools li {
355
- height: auto;
356
- float: none;
357
- margin-left: 0;
358
- overflow: hidden;
359
- }
360
-
361
- .object-tools li + li {
362
- margin-left: 15px;
363
- }
364
-
365
- .object-tools a.viewsitelink,
366
- .object-tools a.golink,
367
- .object-tools a.addlink {
368
- background-position: calc(100% - 8px) center;
369
- }
370
-
371
- #changelist {
372
- display: flex;
373
- flex-direction: column;
374
- }
375
-
376
- #changelist #toolbar {
377
- order: 1;
378
- padding: 10px;
379
- margin-bottom: 15px;
380
- }
381
-
382
- #changelist #toolbar form #searchbar {
383
- width: 100%;
384
- }
385
-
386
- #changelist-form {
387
- order: 2;
388
- }
389
-
390
-
391
- /* Filtered Change List */
392
-
393
- .change-list .filtered .results,
394
- .change-list .filtered .paginator,
395
- .filtered #toolbar, .filtered div.xfull,
396
- .filtered .actions {
397
- margin-right: 0;
398
- }
399
-
400
- #changelist-filter {
401
- order: 3;
402
- position: static;
403
- width: auto;
404
- margin-top: 25px;
405
- }
406
-
407
-
408
- /* Change Form */
409
-
410
- .form-row {
411
- padding: 15px 0;
412
- border-bottom-width: 2px;
413
- }
414
-
415
- .aligned .form-row {
416
- max-width: none;
417
- }
418
-
419
- .aligned .form-row > div:not([class]),
420
- .aligned .form-row > .field-box {
421
- display: flex;
422
- flex-wrap: wrap;
423
- width: calc(100vw - 30px);
424
- overflow: auto;
425
- }
426
-
427
- .aligned label {
428
- display: block;
429
- float: none;
430
- width: 100%;
431
- padding: 0 0 10px;
432
- }
433
-
434
- .aligned label:not(.vCheckboxLabel):after {
435
- display: none;
436
- }
437
-
438
- .aligned .form-row input,
439
- .aligned .form-row select,
440
- .aligned .form-row textarea {
441
- width: 100%;
442
- margin-right: 0;
443
- flex: 1 1;
444
- }
445
-
446
- .aligned .vCheckboxLabel + p.help {
447
- margin-top: -5px;
448
- }
449
-
450
- .aligned p.help {
451
- width: 100%;
452
- }
453
-
454
- .aligned .timezonewarning {
455
- display: block;
456
- width: 100%;
457
- margin-top: 5px;
458
- }
459
-
460
- .aligned .add-another,
461
- .aligned .related-lookup,
462
- .aligned .datetimeshortcuts {
463
- align-self: center;
464
- margin-left: 15px;
465
- }
466
-
467
- .aligned .datetimeshortcuts {
468
- margin-left: 12px;
469
- }
470
-
471
- .aligned .form-row .field-box {
472
- float: none;
473
- margin-right: 0;
474
- }
475
-
476
- .aligned .form-row .field-box + .field-box {
477
- margin-top: 25px;
478
- }
479
-
480
- form .aligned p.help,
481
- form .aligned input + p.help,
482
- form .aligned select + p.help,
483
- form .aligned textarea + p.help {
484
- margin: 0;
485
- padding: 5px 0 0;
486
- }
487
-
488
- form .aligned p.help + label {
489
- margin-top: 7px;
490
- width: auto;
491
- }
492
-
493
- form .aligned ul {
494
- margin-left: 0;
495
- padding-left: 0;
496
- }
497
-
498
- form .aligned ul li + li {
499
- margin-top: 5px;
500
- }
501
-
502
- p.file-upload {
503
- font-size: 12px;
504
- }
505
-
506
- p.file-upload .clearable-file-input {
507
- display: block;
508
- }
509
-
510
- .errornote {
511
- margin: 0 0 20px;
512
- padding: 8px 12px;
513
- }
514
-
515
- form .form-row p.datetime {
516
- margin-left: 0;
517
- padding-left: 0 !important;
518
- width: 100%;
519
- }
520
-
521
- .datetime input, .form-row .datetime input.vDateField, .form-row .datetime input.vTimeField {
522
- margin-left: 0;
523
- }
524
-
525
- .datetime > input {
526
- width: 50% !important;
527
- max-width: 120px;
528
- margin: 0 5px 5px 10px !important;
529
- }
530
-
531
- .datetime span {
532
- font-size: 13px;
533
- }
534
-
535
- .aligned label + p:not(.help) {
536
- padding: 0;
537
- margin-left: 0;
538
- }
539
-
540
-
541
- /* Selector */
542
-
543
- .selector {
544
- display: block;
545
- float: none;
546
- }
547
-
548
- .selector-available, .selector-chosen {
549
- float: none;
550
- width: 100%;
551
- margin: 0;
552
- }
553
-
554
- .selector ul.selector-chooser {
555
- float: none;
556
- display: block;
557
- width: 56px;
558
- height: 26px;
559
- margin: 20px auto;
560
- background-color: #eee;
561
- border-radius: 20px;
562
- }
563
-
564
- .selector ul.selector-chooser li {
565
- float: left;
566
- margin: 0;
567
- padding: 3px 3px 3px 5px;
568
- }
569
-
570
- .selector ul.selector-chooser .selector-add,
571
- .selector ul.selector-chooser .selector-remove {
572
- width: 20px;
573
- height: 20px;
574
- background-size: 20px auto !important;
575
- }
576
-
577
- .selector ul.selector-chooser .selector-add {
578
- background-position: 0 -40px;
579
- }
580
-
581
- .selector ul.selector-chooser .active.selector-add {
582
- background-position: 0 -60px;
583
- }
584
-
585
- .selector ul.selector-chooser .selector-remove {
586
- background-position: 0 0;
587
- }
588
-
589
- .selector ul.selector-chooser .active.selector-remove {
590
- background-position: 0 -20px;
591
- }
592
-
593
- .stacked {
594
- width: 100%;
595
- }
596
-
597
- .stacked .selector-available,
598
- .stacked .selector-chosen {
599
- width: auto;
600
- }
601
-
602
- .selector select {
603
- height: auto !important;
604
- min-height: 0 !important;
605
- }
606
-
607
-
608
- /* Submit row */
609
-
610
- .submit-row {
611
- padding: 10px 10px 0;
612
- margin: 0 0 15px;
613
- text-align: left;
614
- display: flex;
615
- flex-direction: column;
616
- }
617
-
618
- .submit-row > * {
619
- flex-grow: 1;
620
- }
621
-
622
- .submit-row input, .submit-row a {
623
- float: none;
624
- margin: 0 0 10px !important;
625
- text-align: center;
626
- }
627
-
628
- .submit-row p.deletelink-box {
629
- float: none;
630
- order: 4;
631
- }
632
-
633
-
634
- /* Related widget */
635
-
636
- .related-widget-wrapper {
637
- float: none;
638
- display: flex;
639
- align-items: flex-start;
640
- width: 100%;
641
- }
642
-
643
- .related-widget-wrapper > * {
644
- flex-grow: 1;
645
- }
646
-
647
- .related-widget-wrapper .selector {
648
- order: 1;
649
- }
650
-
651
- .related-widget-wrapper > a {
652
- order: 2;
653
- flex: 0 1;
654
- margin-top: 8px;
655
- margin-left: 10px !important;
656
- }
657
-
658
- .related-widget-wrapper > select {
659
- margin-bottom: 0;
660
- }
661
-
662
-
663
- /* Paginator */
664
-
665
- .paginator .this-page, .paginator a:link, .paginator a:visited {
666
- padding: 4px 10px;
667
- }
668
-
669
-
670
- /* Messages */
671
-
672
- ul.messagelist li {
673
- padding-left: 40px;
674
- background-position: 15px 12px;
675
- }
676
-
677
- ul.messagelist li.error {
678
- background-position: 15px 12px;
679
- }
680
-
681
- ul.messagelist li.warning {
682
- background-position: 15px 14px;
683
- }
684
-
685
-
686
- /* Forms */
687
-
688
- label {
689
- font-size: 14px;
690
- }
691
-
692
- .form-row input[type=text], .form-row input[type=password], .form-row input[type=email],
693
- .form-row input[type=url], .form-row input[type=number], .form-row textarea, .form-row select, .form-row .vTextField {
694
- box-sizing: border-box;
695
- padding: 6px;
696
- min-height: 36px;
697
- font-size: 14px;
698
- }
699
-
700
- .form-row select[multiple] {
701
- min-height: 120px;
702
- }
703
-
704
- input[type="checkbox"], input[type="radio"] {
705
- width: auto !important;
706
- }
707
-
708
- textarea {
709
- width: auto !important;
710
- max-height: 120px;
711
- }
712
-
713
- select {
714
- -webkit-appearance: menulist-button;
715
- padding-top: 0 !important;
716
- padding-bottom: 0 !important;
717
- }
718
-
719
- form p.help, form div.help {
720
- margin: 5px 0 0 !important;
721
- padding: 0 !important;
722
- }
723
-
724
-
725
- /* Footer */
726
-
727
- #footer {
728
- padding: 15px;
729
- }
730
-
731
- #footer:empty {
732
- padding: 0;
733
- }
734
-
735
-
736
- /* Popup */
737
-
738
- .popup #content {
739
- padding: 10px;
740
- }
741
-
742
-
743
- /* Login */
744
-
745
- .login {
746
- display: flex;
747
- flex-direction: column;
748
- justify-content: center;
749
- }
750
-
751
- .login #container {
752
- width: auto;
753
- margin: 30px 15px;
754
- }
755
-
756
- .login #header {
757
- padding: 15px;
758
- }
759
-
760
- .login #content {
761
- padding: 15px;
762
- }
763
-
764
- .login .form-row {
765
- padding: 0;
766
- }
767
-
768
- .login .form-row + .form-row {
769
- margin-top: 15px;
770
- }
771
-
772
- .login .form-row label {
773
- display: block;
774
- margin: 0 0 5px;
775
- padding: 0;
776
- font-weight: 700;
777
- font-size: 14px;
778
- line-height: 1.2;
779
- }
780
-
781
- .login input {
782
- margin: 0 !important;
783
- }
784
-
785
- .login .submit-row {
786
- padding: 0;
787
- }
788
-
789
- .login .submit-row input {
790
- font-weight: 700;
791
- text-transform: uppercase;
792
- }
793
-
794
- .login br {
795
- display: none;
796
- }
797
-
798
- .login #footer {
799
- padding: 15px;
800
- }
801
-
802
- .login #footer:empty {
803
- display: none;
804
- }
805
-
806
-
807
- /* Calendar and clock */
808
-
809
- .calendarbox,
810
- .clockbox {
811
- position: fixed !important;
812
- top: 50% !important;
813
- left: 50% !important;
814
- transform: translate(-50%, -50%);
815
- margin: 0;
816
- border-radius: 0;
817
- border: none;
818
- overflow: visible;
819
- }
820
-
821
- .calendarbox:before,
822
- .clockbox:before {
823
- content: '';
824
- position: fixed;
825
- top: 50%;
826
- left: 50%;
827
- width: 100vw;
828
- height: 100vh;
829
- background: rgba(0, 0, 0, 0.75);
830
- transform: translate(-50%, -50%);
831
- }
832
-
833
- .calendarbox > *,
834
- .clockbox > * {
835
- position: relative;
836
- z-index: 1;
837
- margin: 0 !important;
838
- }
839
-
840
- .calendarbox > div:first-child {
841
- z-index: 2;
842
- }
843
-
844
- .calendarbox .calendar,
845
- .clockbox h2 {
846
- border-radius: 4px 4px 0 0;
847
- overflow: hidden;
848
- }
849
-
850
- .calendarbox .calendar-cancel,
851
- .clockbox .calendar-cancel {
852
- border-radius: 0 0 4px 4px;
853
- overflow: hidden;
854
- }
855
-
856
- .calendar-shortcuts {
857
- padding: 10px 0;
858
- font-size: 12px;
859
- line-height: 12px;
860
- }
861
-
862
- .calendar-shortcuts a {
863
- margin: 0 4px;
864
- }
865
-
866
- .timelist a {
867
- background: #fff;
868
- padding: 4px;
869
- }
870
-
871
- .calendar-cancel {
872
- padding: 8px 10px;
873
- }
874
-
875
- .clockbox h2 {
876
- padding: 8px 15px;
877
- }
878
-
879
- .calendar caption {
880
- padding: 10px;
881
- }
882
-
883
- .calendarbox .calendarnav-previous,
884
- .calendarbox .calendarnav-next {
885
- z-index: 1;
886
- top: 10px;
887
- }
888
-
889
-
890
- /* History */
891
-
892
- table#change-history tbody th,
893
- table#change-history tbody td {
894
- font-size: 13px;
895
- word-break: break-word;
896
- }
897
-
898
- table#change-history tbody th {
899
- width: auto;
900
- }
901
-
902
-
903
- /* Inlines */
904
-
905
- .inline-group[data-inline-type="stacked"] .inline-related {
906
- border: 2px solid #eee;
907
- border-radius: 4px;
908
- overflow: auto;
909
- }
910
-
911
- .inline-group[data-inline-type="stacked"] .inline-related > * {
912
- box-sizing: border-box;
913
- }
914
-
915
- .inline-group[data-inline-type="stacked"] .inline-related + .inline-related {
916
- margin-top: 30px;
917
- }
918
-
919
- .inline-group[data-inline-type="stacked"] .inline-related .module {
920
- padding: 0 10px;
921
- }
922
-
923
- .inline-group[data-inline-type="stacked"] .inline-related .module .form-row:last-child {
924
- border-bottom: none;
925
- }
926
-
927
- .inline-group[data-inline-type="stacked"] .inline-related h3 {
928
- padding: 10px;
929
- border-top-width: 0;
930
- border-bottom-width: 2px;
931
- display: flex;
932
- flex-wrap: wrap;
933
- align-items: center;
934
- }
935
-
936
- .inline-group[data-inline-type="stacked"] .inline-related h3 .inline_label {
937
- margin-right: auto;
938
- }
939
-
940
- .inline-group[data-inline-type="stacked"] .inline-related h3 span.delete {
941
- float: none;
942
- flex: 1 1 100%;
943
- margin-top: 5px;
944
- }
945
-
946
- .inline-group[data-inline-type="stacked"] .aligned .form-row > div:not([class]) {
947
- width: auto;
948
- }
949
-
950
- .inline-group[data-inline-type="stacked"] .aligned label {
951
- width: 100%;
952
- }
953
-
954
- .inline-group[data-inline-type="stacked"] div.add-row {
955
- margin-top: 15px;
956
- border: 1px solid #eee;
957
- border-radius: 4px;
958
- }
959
-
960
- .inline-group div.add-row,
961
- .inline-group .tabular tr.add-row td {
962
- padding: 0;
963
- }
964
-
965
- .inline-group div.add-row a,
966
- .inline-group .tabular tr.add-row td a {
967
- display: block;
968
- padding: 8px 10px 8px 26px;
969
- background-position: 8px 9px;
970
- }
971
-
972
-
973
- /* Gis */
974
-
975
- div.olMap {
976
- width: calc(100vw - 30px) !important;
977
- height: 300px !important;
978
- }
979
-
980
-
981
- /* RTL support */
982
-
983
- html[dir="rtl"] .colMS {
984
- margin-left: 0;
985
- }
986
-
987
- html[dir="rtl"] #content-related {
988
- margin-left: 0;
989
- }
990
-
991
- html[dir="rtl"] .dashboard .module table td a {
992
- padding-left: 0;
993
- padding-right: 16px;
994
- }
995
-
996
- html[dir="rtl"] .change-list .filtered .results,
997
- html[dir="rtl"] .change-list .filtered .paginator,
998
- html[dir="rtl"] .filtered #toolbar,
999
- html[dir="rtl"] .filtered div.xfull,
1000
- html[dir="rtl"] .filtered .actions {
1001
- margin-left: 0;
1002
- }
1003
-
1004
- html[dir="rtl"] .inline-group ul.tools a.add,
1005
- html[dir="rtl"] .inline-group div.add-row a,
1006
- html[dir="rtl"] .inline-group .tabular tr.add-row td a {
1007
- padding: 8px 26px 8px 10px;
1008
- background-position: calc(100% - 8px) 9px;
1009
- }
1010
-
1011
- html[dir="rtl"] .object-tools li + li {
1012
- margin-left: 0;
1013
- margin-right: 15px;
1014
- }
1015
-
1016
- html[dir="rtl"] .aligned .add-another,
1017
- html[dir="rtl"] .aligned .related-lookup,
1018
- html[dir="rtl"] .aligned .datetimeshortcuts {
1019
- margin-left: 0;
1020
- margin-right: 15px;
1021
- }
1022
-
1023
- }
5
+ .theme-toggle {
6
+ display: none;
7
+ }