accrete 0.0.143__py3-none-any.whl → 0.0.145__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 (39) hide show
  1. accrete/contrib/log/admin.py +1 -1
  2. accrete/contrib/system_mail/tasks.py +4 -5
  3. accrete/contrib/ui/__init__.py +15 -14
  4. accrete/contrib/ui/filter.py +22 -13
  5. accrete/contrib/ui/response.py +353 -0
  6. accrete/contrib/ui/static/css/accrete.css +69 -12
  7. accrete/contrib/ui/static/css/accrete.css.map +1 -1
  8. accrete/contrib/ui/static/css/accrete.scss +370 -300
  9. accrete/contrib/ui/templates/ui/content.html +0 -0
  10. accrete/contrib/ui/templates/ui/content_right.html +2 -2
  11. accrete/contrib/ui/templates/ui/detail.html +11 -0
  12. accrete/contrib/ui/templates/ui/filter/filter.html +5 -5
  13. accrete/contrib/ui/templates/ui/filter/query_tags.html +1 -1
  14. accrete/contrib/ui/templates/ui/layout.html +69 -64
  15. accrete/contrib/ui/templates/ui/list.html +21 -19
  16. accrete/contrib/ui/templates/ui/list_update.html +9 -3
  17. accrete/contrib/ui/templates/ui/message.html +1 -1
  18. accrete/contrib/ui/templates/ui/modal.html +41 -32
  19. accrete/contrib/ui/templates/ui/table_row_update.html +2 -2
  20. accrete/contrib/ui/templates/ui/templatetags/field.html +19 -6
  21. accrete/contrib/ui/templates/ui/widgets/model_search_select.html +7 -7
  22. accrete/contrib/ui/templates/ui/widgets/model_search_select_multi.html +3 -3
  23. accrete/contrib/ui/templatetags/ui.py +24 -2
  24. accrete/contrib/user/templates/user/password_forgotten.html +1 -0
  25. accrete/contrib/user/templates/user/user_preferences.html +43 -0
  26. accrete/contrib/user/views.py +36 -37
  27. accrete/migrations/0008_alter_member_access_groups_and_more.py +23 -0
  28. accrete/utils/__init__.py +1 -0
  29. accrete/utils/forms.py +11 -3
  30. accrete/utils/views.py +1 -2
  31. accrete/views.py +2 -3
  32. {accrete-0.0.143.dist-info → accrete-0.0.145.dist-info}/METADATA +2 -2
  33. {accrete-0.0.143.dist-info → accrete-0.0.145.dist-info}/RECORD +35 -33
  34. accrete/contrib/ui/context.py +0 -123
  35. accrete/contrib/ui/static/css/.sass-cache/15adf1eed05371361b08787c918a7f18fc15be79/accrete.scssc +0 -0
  36. accrete/contrib/ui/utils.py +0 -88
  37. accrete/contrib/user/templates/user/user_form.html +0 -58
  38. {accrete-0.0.143.dist-info → accrete-0.0.145.dist-info}/WHEEL +0 -0
  39. {accrete-0.0.143.dist-info → accrete-0.0.145.dist-info}/licenses/LICENSE +0 -0
@@ -1,300 +1,370 @@
1
- @import "../bulma/css/bulma.css";
2
-
3
- :root {
4
- --bulma-body-size: .9em;
5
- --bulma-navbar-height: 40px;
6
- --bulma-menu-item-selected-h: --bulma-success-h;
7
- --accrete-content-right-width: 500px;
8
- --accrete-action-panel-width: 320px;
9
- --bulma-input-icon-focus-color: var(--bulma-success);
10
- --bulma-input-arrow: var(--bulma-success);
11
- --bulma-arrow-color: var(--bulma-success);
12
- --bulma-navbar-burger-color: var(--bulma-success);
13
- --accrete-hover-color: #F0F2F4;
14
-
15
- }
16
-
17
- html[data-theme='light'] {
18
- --bulma-menu-item-h: var(--bulma-success-h);
19
- --bulma-menu-item-s: var(--bulma-success-s);
20
- --bulma-menu-item-l: var(--bulma-success-l);
21
- --bulma-menu-item-background-l: 50%;
22
- --bulma-menu-item-color-l: 10%;
23
- --bulma-navbar-burger-color: var(--bulma-success);
24
- --accrete-hover-color: #F0F2F4;
25
- }
26
-
27
- html[data-theme='dark'] {
28
- --bulma-navbar-burger-color: var(--bulma-success);
29
- --accrete-hover-color: #1E2128;
30
-
31
- .button.is-light {
32
- --bulma-button-h: var(--bulma-dark-h);
33
- --bulma-button-s: var(--bulma-dark-s);
34
- --bulma-button-l: var(--bulma-dark-l);
35
- --bulma-button-background-l: var(--bulma-dark-l);
36
- --bulma-button-border-l: var(--bulma-dark-l);
37
- --bulma-button-border-width: 0px;
38
- --bulma-button-color-l: var(--bulma-dark-invert-l);
39
- --bulma-button-outer-shadow-a: 0;
40
- }
41
-
42
- .button.is-danger.is-light {
43
- --bulma-button-background-l: var(--bulma-dark-l);
44
- --bulma-button-color-l: var(--bulma-danger-dark-invert-l);
45
- }
46
-
47
- .tag > .button.is-light {
48
- --bulma-button-background-l: var(--bulma-background-l);
49
- }
50
- }
51
-
52
- [x-cloak] {
53
- display: none !important;
54
- }
55
-
56
- a {
57
- color: inherit;
58
- text-decoration: inherit;
59
- }
60
-
61
-
62
- .navbar-burger {
63
- color: black;
64
- }
65
-
66
- .button.is-subtle {
67
- box-shadow: none;
68
- border: none;
69
- }
70
-
71
- .input {
72
- border-top: none;
73
- border-right: none;
74
- border-left: none;
75
- border-top-left-radius: 0;
76
- border-top-right-radius: 0;
77
- border-bottom-right-radius: 0;
78
- border-bottom-left-radius: 0;
79
- box-shadow: none;
80
- }
81
-
82
- .input:focus, .input:focus-within {
83
- box-shadow: none;
84
- border-bottom: 1px solid var(--bulma-success);
85
- //border-color: var(--bulma-success);
86
- }
87
-
88
- textarea {
89
- border-top: transparent!important;
90
- border-right: transparent!important;
91
- border-left: transparent!important;
92
- border-radius: 0!important;
93
- box-shadow: none!important;
94
- }
95
-
96
- textarea:focus {
97
- border-color: var(--bulma-success) !important;
98
- }
99
-
100
- .is-small.textarea, .is-small.input {
101
- border-radius: 0;
102
- font-size: var(--bulma-size-small);
103
- }
104
-
105
- td > .input, td * .input, td * select, td * .select {
106
- border-top: none!important;
107
- border-right: none!important;
108
- border-bottom: none!important;
109
- border-left: none!important;
110
- }
111
-
112
- td:has(.input:focus) {
113
- border-bottom: 1px solid var(--bulma-success)!important;
114
- }
115
-
116
- select {
117
- border-top: transparent !important;
118
- border-right: transparent !important;
119
- border-left: transparent !important;
120
- border-radius: 0 !important;
121
- box-shadow: none !important;
122
- }
123
-
124
- select:focus {
125
- box-shadow: none;
126
- border-bottom: 1px solid var(--bulma-success)!important;
127
- }
128
-
129
- #content-right-container {
130
- flex-shrink: 0;
131
- width: var(--accrete-content-right-width);
132
- border-top-left-radius: var(--bulma-radius-medium);
133
- border-bottom-left-radius: var(--bulma-radius-medium);
134
- box-shadow: -2px 0 20px 0 var(--bulma-grey-light);
135
- z-index: 20;
136
- }
137
-
138
- .responsive-heading {
139
- display: none;
140
- }
141
-
142
- #content-left-container {
143
- container-name: content-left-container;
144
- container-type: inline-size;
145
- }
146
-
147
- .htmx-indicator{
148
- transition: opacity 200ms ease-in;
149
- }
150
-
151
- .modal-request-overlay {
152
- pointer-events: none;
153
- }
154
-
155
- .modal-request-overlay.htmx-request {
156
- pointer-events: auto;
157
- }
158
-
159
- .list-entry > .box:hover, .box.selected {
160
- outline: 2px solid var(--bulma-success);
161
- }
162
-
163
- .helptext {
164
- font-style: italic !important;
165
- font-size: 1rem !important;
166
- margin-bottom: 0 !important;
167
- color: var(--bulma-text);
168
- font-weight: var(--bulma-weight-normal);
169
- line-height: 1.25;
170
- }
171
-
172
- @container content-left-container (max-width: 768px) {
173
- table.can-compact * td {
174
- width: 100%;
175
- float: left;
176
- text-align: left !important;
177
- border: transparent !important;
178
- font-size: 1em;
179
- padding-left: 1rem !important;
180
- }
181
-
182
- table.can-compact * tr {
183
- display: inline-block;
184
- width: 100%;
185
- padding-top: 8px;
186
- padding-bottom: 12px;
187
- border-bottom: 1px solid var(--bulma-grey-light)
188
- }
189
-
190
- table.can-compact * tr:first-child {
191
- border-top: 1px solid var(--bulma-grey-light);
192
- }
193
-
194
- table.can-compact * tr.is-success {
195
- background-color: var(--bulma-success);
196
- }
197
-
198
- table.can-compact * tr.is-success:hover {
199
- background-color: var(--bulma-success)!important;
200
- }
201
-
202
- table.can-compact > thead {
203
- display: none;
204
- }
205
-
206
- .responsive-heading {
207
- display: inline-block;
208
- }
209
-
210
- .list-entry {
211
- height: fit-content!important;
212
- }
213
- }
214
-
215
- @media screen and (max-width: 768px) {
216
- #content-right-container {
217
- flex-grow: 1;
218
- flex-shrink: 1;
219
- width: auto;
220
- border-top-left-radius: 0;
221
- border-bottom-left-radius: 0;
222
- }
223
-
224
- .level > .level-item.box {
225
- width: 100%
226
- }
227
- }
228
-
229
- #action-panel {
230
- max-width: var(--accrete-action-panel-width);
231
- min-width: var(--accrete-action-panel-width);
232
- height: 100%;
233
- overflow-y: auto;
234
- }
235
-
236
- @media screen and (max-width: 1215px) {
237
- #action-panel {
238
- position: absolute;
239
- background: var(--bulma-scheme-main);
240
- z-index: 999;
241
- box-shadow: 2px 0 20px 0 var(--bulma-grey-light);
242
- }
243
- }
244
-
245
- .menu-list a.is-active, .menu-list a.is-selected, .menu-list button.is-active, .menu-list button.is-selected, .menu-list .menu-item.is-active, .menu-list .menu-item.is-selected {
246
- --bulma-menu-item-h: var(--bulma-success-h);
247
- --bulma-menu-item-s: var(--bulma-success-s);
248
- --bulma-menu-item-l: var(--bulma-success-l);
249
- --bulma-menu-item-background-l: var(--bulma-success-l);
250
- --bulma-menu-item-color-l: var(--bulma-success-invert-l);
251
- }
252
-
253
- .hoverable *:hover {
254
- background-color: var(--accrete-hover-color);
255
- }
256
-
257
- /* Chrome, Safari, Edge, Opera */
258
- input::-webkit-outer-spin-button,
259
- input::-webkit-inner-spin-button {
260
- -webkit-appearance: none;
261
- margin: 0;
262
- }
263
-
264
- /* Firefox */
265
- input[type=number] {
266
- -moz-appearance: textfield;
267
- }
268
-
269
- .query-group-container .query-tag-container:first-child .query-operator {
270
- display: none;
271
- }
272
-
273
- .query-group-container .query-tag-container:first-child .query-operator-group {
274
- display: none!important;
275
- }
276
-
277
- #query-tags > .query-group-container > .query-operator:first-child {
278
- display: none;
279
- }
280
-
281
- #query-tags > .query-group-container > .query-operator-group:first-child {
282
- display: none!important;
283
- }
284
-
285
- .query-group {
286
- padding-left: 4px;
287
- border-left: 1px solid var(--bulma-grey-light);
288
- border-top: none;
289
- border-right: none;
290
- border-bottom: none;
291
- //border-radius: var(--bulma-radius-medium);
292
- border-radius: 0;
293
- //margin-right: -1px;
294
- margin-bottom: 5px;
295
- }
296
-
297
- #query-tags > .query-group-container > .query-group {
298
- padding-left: 0;
299
- border-left: none!important;
300
- }
1
+ @import "../bulma/css/bulma.css";
2
+
3
+ :root {
4
+ --bulma-body-size: .9em;
5
+ --bulma-navbar-height: 40px;
6
+ --bulma-menu-item-selected-h: --bulma-success-h;
7
+ --accrete-detail-width: 500px;
8
+ --accrete-action-panel-width: 320px;
9
+ --bulma-input-icon-focus-color: var(--bulma-success);
10
+ --bulma-input-arrow: var(--bulma-success);
11
+ --bulma-arrow-color: var(--bulma-success);
12
+ --bulma-menu-nested-list-margin: .5em 0 0.5em 0.75em;
13
+ --bulma-navbar-burger-color: var(--bulma-success);
14
+ --accrete-hover-color: #F0F2F4;
15
+
16
+ }
17
+
18
+ html[data-theme='light'] {
19
+ --bulma-menu-item-h: var(--bulma-success-h);
20
+ --bulma-menu-item-s: var(--bulma-success-s);
21
+ --bulma-menu-item-l: var(--bulma-success-l);
22
+ --bulma-menu-item-background-l: 50%;
23
+ --bulma-menu-item-color-l: 10%;
24
+ --bulma-navbar-burger-color: var(--bulma-success);
25
+ --bulma-input-disabled-border-color: var(--bulma-input-border-color) !important;
26
+ --accrete-hover-color: #F0F2F4;
27
+ }
28
+
29
+ html[data-theme='dark'] {
30
+ --bulma-navbar-burger-color: var(--bulma-success);
31
+ --bulma-input-disabled-border-color: var(--bulma-input-border-color) !important;
32
+ --accrete-hover-color: #1E2128;
33
+
34
+ .button.is-light {
35
+ --bulma-button-h: var(--bulma-dark-h);
36
+ --bulma-button-s: var(--bulma-dark-s);
37
+ --bulma-button-l: var(--bulma-dark-l);
38
+ --bulma-button-background-l: var(--bulma-dark-l);
39
+ --bulma-button-border-l: var(--bulma-dark-l);
40
+ --bulma-button-border-width: 0px;
41
+ --bulma-button-color-l: var(--bulma-dark-invert-l);
42
+ --bulma-button-outer-shadow-a: 0;
43
+ }
44
+
45
+ .button.is-danger.is-light {
46
+ --bulma-button-background-l: var(--bulma-dark-l);
47
+ --bulma-button-color-l: var(--bulma-danger-dark-invert-l);
48
+ }
49
+
50
+ .tag > .button.is-light {
51
+ --bulma-button-background-l: var(--bulma-background-l);
52
+ }
53
+ }
54
+
55
+ [x-cloak] {
56
+ display: none !important;
57
+ }
58
+
59
+ a {
60
+ color: inherit;
61
+ text-decoration: inherit;
62
+ }
63
+
64
+ .label {
65
+ font-weight: normal;
66
+ }
67
+
68
+
69
+ .navbar-burger {
70
+ color: black;
71
+ }
72
+
73
+ .button.is-subtle {
74
+ box-shadow: none;
75
+ border-top-color: transparent;
76
+ border-right-color: transparent;
77
+ border-bottom-color: transparent;
78
+ border-left-color: transparent;
79
+ }
80
+
81
+ .input {
82
+ border-top: none;
83
+ border-right: none;
84
+ border-left: none;
85
+ border-top-left-radius: 0;
86
+ border-top-right-radius: 0;
87
+ border-bottom-right-radius: 0;
88
+ border-bottom-left-radius: 0;
89
+ box-shadow: none;
90
+ font-weight: bold;
91
+ }
92
+
93
+ .input:focus, .input:focus-within {
94
+ box-shadow: none;
95
+ border-bottom: 1px solid var(--bulma-success);
96
+ //border-color: var(--bulma-success);
97
+ }
98
+
99
+ input[disabled] {
100
+ background-color: transparent !important;
101
+ cursor: unset !important;
102
+ }
103
+
104
+ input[disabled] ~ .helptext {
105
+ font-weight: normal !important;
106
+ }
107
+
108
+ textarea {
109
+ border-top: transparent!important;
110
+ border-right: transparent!important;
111
+ border-left: transparent!important;
112
+ border-radius: 0!important;
113
+ box-shadow: none!important;
114
+ }
115
+
116
+ textarea:focus {
117
+ border-color: var(--bulma-success) !important;
118
+ }
119
+
120
+ .is-small.textarea, .is-small.input {
121
+ border-radius: 0;
122
+ font-size: var(--bulma-size-small);
123
+ }
124
+
125
+ td > .input, td * .input, td * select, td * .select {
126
+ border-top: none!important;
127
+ border-right: none!important;
128
+ border-bottom: none!important;
129
+ border-left: none!important;
130
+ }
131
+
132
+ td:has(.input:focus) {
133
+ border-bottom: 1px solid var(--bulma-success)!important;
134
+ }
135
+
136
+ select {
137
+ border-top: transparent !important;
138
+ border-right: transparent !important;
139
+ border-left: transparent !important;
140
+ border-radius: 0 !important;
141
+ box-shadow: none !important;
142
+ font-weight: bold;
143
+ }
144
+
145
+ select:focus {
146
+ box-shadow: none;
147
+ border-bottom: 1px solid var(--bulma-success)!important;
148
+ }
149
+
150
+ #detail-container {
151
+ flex-shrink: 0;
152
+ width: var(--accrete-detail-width);
153
+ border-top-left-radius: var(--bulma-radius-medium);
154
+ border-bottom-left-radius: var(--bulma-radius-medium);
155
+ box-shadow: -2px 0 20px 0 var(--bulma-grey-light);
156
+ z-index: 20;
157
+ }
158
+
159
+ .responsive-heading {
160
+ display: none;
161
+ }
162
+
163
+ #overview-container {
164
+ container-name: overview-container;
165
+ container-type: inline-size;
166
+ }
167
+
168
+ .htmx-indicator{
169
+ transition: opacity 200ms ease-in;
170
+ }
171
+
172
+ .modal-request-overlay {
173
+ pointer-events: none;
174
+ }
175
+
176
+ .modal-request-overlay.htmx-request {
177
+ pointer-events: auto;
178
+ }
179
+
180
+ #detail-indicator {
181
+ position: fixed;
182
+ background: rgba(47, 47, 62, 0.2);
183
+ height: 100%;
184
+ width: 100%;
185
+ z-index: -100;
186
+ }
187
+
188
+ #detail-indicator.htmx-request {
189
+ z-index: 999;
190
+ transition-delay: 300ms;
191
+ transition-property: opacity;
192
+ }
193
+
194
+ #detail-indicator > .progress {
195
+ position: fixed;
196
+ top: 50%;
197
+ margin-left: 3%;
198
+ max-width: calc(var(--accrete-detail-width) - 6%);
199
+ }
200
+
201
+ .list-entry > .box:hover, .box.selected {
202
+ outline: 2px solid var(--bulma-success);
203
+ }
204
+
205
+ .helptext {
206
+ font-style: italic !important;
207
+ font-size: 1rem !important;
208
+ margin-bottom: 0 !important;
209
+ color: var(--bulma-text);
210
+ font-weight: var(--bulma-weight-normal);
211
+ line-height: 1.25;
212
+ }
213
+
214
+ .container {
215
+ padding-left: 0.5rem;
216
+ padding-right: 0.5rem;
217
+ }
218
+
219
+ @container overview-container (max-width: 768px) {
220
+ table.can-compact * td {
221
+ width: 100%;
222
+ float: left;
223
+ text-align: left !important;
224
+ border: transparent !important;
225
+ font-size: 1em;
226
+ padding-left: 1rem !important;
227
+ }
228
+
229
+ table.can-compact * tr {
230
+ display: inline-block;
231
+ width: 100%;
232
+ padding-top: 8px;
233
+ padding-bottom: 12px;
234
+ border-bottom: 1px solid var(--bulma-grey-light)
235
+ }
236
+
237
+ table.can-compact * tr:first-child {
238
+ border-top: 1px solid var(--bulma-grey-light);
239
+ }
240
+
241
+ table.can-compact * tr.is-success {
242
+ background-color: var(--bulma-success);
243
+ }
244
+
245
+ table.can-compact * tr.is-success:hover {
246
+ background-color: var(--bulma-success)!important;
247
+ }
248
+
249
+ table.can-compact > thead {
250
+ display: none;
251
+ }
252
+
253
+ .responsive-heading {
254
+ display: inline-block;
255
+ }
256
+
257
+ .list-entry {
258
+ height: fit-content!important;
259
+ }
260
+ }
261
+
262
+ @media screen and (min-width: 769px) {
263
+ .modal-card {
264
+ max-width: 100%;
265
+ //min-width: var(--bulma-modal-content-width);
266
+ //width: unset;
267
+ }
268
+ }
269
+
270
+ @media screen and (max-width: 768px) {
271
+ #detail-container {
272
+ flex-grow: 1;
273
+ flex-shrink: 1;
274
+ width: auto;
275
+ border-top-left-radius: 0;
276
+ border-bottom-left-radius: 0;
277
+ }
278
+
279
+ .level > .level-item.box {
280
+ width: 100%
281
+ }
282
+
283
+ .modal {
284
+ padding-top: 0!important;
285
+ padding-bottom: 0!important;
286
+ justify-content: center!important;
287
+ }
288
+
289
+ .modal-card {
290
+ width: 100%!important;
291
+ max-height: 100svh;
292
+ }
293
+ }
294
+
295
+ #action-panel {
296
+ max-width: var(--accrete-action-panel-width);
297
+ min-width: var(--accrete-action-panel-width);
298
+ height: 100%;
299
+ overflow-y: auto;
300
+ }
301
+
302
+ @media screen and (max-width: 1215px) {
303
+ #action-panel {
304
+ position: absolute;
305
+ background: var(--bulma-scheme-main);
306
+ z-index: 40;
307
+ box-shadow: 2px 0 20px 0 var(--bulma-grey-light);
308
+ }
309
+ }
310
+
311
+ .menu-list a.is-active, .menu-list a.is-selected, .menu-list button.is-active, .menu-list button.is-selected, .menu-list .menu-item.is-active, .menu-list .menu-item.is-selected {
312
+ --bulma-menu-item-h: var(--bulma-success-h);
313
+ --bulma-menu-item-s: var(--bulma-success-s);
314
+ --bulma-menu-item-l: var(--bulma-success-l);
315
+ --bulma-menu-item-background-l: var(--bulma-success-l);
316
+ --bulma-menu-item-color-l: var(--bulma-success-invert-l);
317
+ }
318
+
319
+ .hoverable *:hover {
320
+ background-color: var(--accrete-hover-color);
321
+ }
322
+
323
+ /* Chrome, Safari, Edge, Opera */
324
+ input::-webkit-outer-spin-button,
325
+ input::-webkit-inner-spin-button {
326
+ -webkit-appearance: none;
327
+ margin: 0;
328
+ }
329
+
330
+ /* Firefox */
331
+ input[type=number] {
332
+ -moz-appearance: textfield;
333
+ }
334
+
335
+ .query-group-container .query-tag-container:first-child .query-operator {
336
+ display: none;
337
+ }
338
+
339
+ .query-group-container .query-tag-container:first-child .query-operator-group {
340
+ display: none!important;
341
+ }
342
+
343
+ #query-tags > .query-group-container > .query-operator:first-child {
344
+ display: none;
345
+ }
346
+
347
+ #query-tags > .query-group-container > .query-operator-group:first-child {
348
+ display: none!important;
349
+ }
350
+
351
+ .query-group {
352
+ padding-left: 4px;
353
+ border-left: 1px solid var(--bulma-grey-light);
354
+ border-top: none;
355
+ border-right: none;
356
+ border-bottom: none;
357
+ border-radius: 0;
358
+ margin-bottom: 5px;
359
+ }
360
+
361
+ #query-tags > .query-group-container > .query-group {
362
+ padding-left: 0;
363
+ border-left: none!important;
364
+ }
365
+
366
+ .header-items > * {
367
+ margin-right: 0.4rem;
368
+ margin-bottom: 0.5rem;
369
+ margin-left: 0.4rem;
370
+ }
File without changes