accrete 0.0.157__py3-none-any.whl → 0.0.159__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.
- accrete/contrib/ui/response.py +9 -2
- accrete/contrib/ui/static/css/accrete.css +2 -9
- accrete/contrib/ui/static/css/accrete.css.map +1 -1
- accrete/contrib/ui/static/css/accrete.scss +2 -10
- accrete/contrib/ui/templates/ui/layout.html +2 -2
- accrete/contrib/ui/templates/ui/list.html +2 -2
- accrete/contrib/ui/templates/ui/modal.html +1 -1
- accrete/contrib/ui/templates/ui/oob.html +2 -2
- accrete/contrib/ui/templates/ui/table.html +1 -1
- accrete/contrib/ui/templates/ui/templatetags/field.html +12 -0
- accrete/contrib/ui/templates/ui/templatetags/tenant_quick_switch.html +2 -2
- accrete/contrib/ui/templates/ui/widgets/model_search_select.html +3 -5
- accrete/contrib/ui/templates/ui/widgets/model_search_select_multi.html +1 -1
- accrete/contrib/ui/templatetags/ui.py +19 -3
- accrete/contrib/user/templates/user/accrete_navbar_end_dropdown.html +1 -1
- {accrete-0.0.157.dist-info → accrete-0.0.159.dist-info}/METADATA +1 -1
- {accrete-0.0.157.dist-info → accrete-0.0.159.dist-info}/RECORD +19 -19
- {accrete-0.0.157.dist-info → accrete-0.0.159.dist-info}/WHEEL +0 -0
- {accrete-0.0.157.dist-info → accrete-0.0.159.dist-info}/licenses/LICENSE +0 -0
accrete/contrib/ui/response.py
CHANGED
|
@@ -58,18 +58,20 @@ class OobResponse(Response):
|
|
|
58
58
|
|
|
59
59
|
oob_template = 'ui/oob.html'
|
|
60
60
|
|
|
61
|
-
def __init__(self, *, template: str, context: dict, swap: str, tag: str = 'div'):
|
|
61
|
+
def __init__(self, *, template: str, context: dict, swap: str, tag: str = 'div', attrs: dict = None):
|
|
62
62
|
super().__init__(template=self.oob_template, context=context)
|
|
63
63
|
self.include_template = template
|
|
64
64
|
self.swap = swap
|
|
65
65
|
self.tag = tag
|
|
66
|
+
self.attrs = attrs or {}
|
|
66
67
|
|
|
67
68
|
def get_context(self):
|
|
68
69
|
context = super().get_context()
|
|
69
70
|
context.update({'oob': {
|
|
70
71
|
'template': self.include_template,
|
|
71
72
|
'swap': self.swap,
|
|
72
|
-
'tag': self.tag
|
|
73
|
+
'tag': self.tag,
|
|
74
|
+
'attrs': self.attrs
|
|
73
75
|
}})
|
|
74
76
|
return context
|
|
75
77
|
|
|
@@ -207,6 +209,7 @@ class ListEntryResponse(Response):
|
|
|
207
209
|
):
|
|
208
210
|
super().__init__(template=self.base_template, context=context or {})
|
|
209
211
|
self.instance = instance
|
|
212
|
+
self.instance.refresh_from_db()
|
|
210
213
|
self.list_entry_template = list_entry_template
|
|
211
214
|
self.page = page
|
|
212
215
|
self.is_new = is_new
|
|
@@ -253,6 +256,7 @@ class TableResponse(WindowResponse):
|
|
|
253
256
|
overview_template: str = 'ui/table.html',
|
|
254
257
|
detail_header_template: str = None,
|
|
255
258
|
detail_data_template: str = None,
|
|
259
|
+
detail_enabled: bool = True,
|
|
256
260
|
config: WindowResponseConfig = None
|
|
257
261
|
):
|
|
258
262
|
assert page is not None or ui_filter is not None, _(
|
|
@@ -274,6 +278,7 @@ class TableResponse(WindowResponse):
|
|
|
274
278
|
self.endless_scroll = endless_scroll
|
|
275
279
|
self.detail_header_template = detail_header_template
|
|
276
280
|
self.detail_data_template = detail_data_template
|
|
281
|
+
self.detail_enabled = detail_enabled
|
|
277
282
|
|
|
278
283
|
def _has_panel(self):
|
|
279
284
|
return bool(self.panel_template or self.ui_filter)
|
|
@@ -289,6 +294,7 @@ class TableResponse(WindowResponse):
|
|
|
289
294
|
'footer': self.footer,
|
|
290
295
|
'detail_header_template': self.detail_header_template,
|
|
291
296
|
'detail_data_template': self.detail_data_template,
|
|
297
|
+
'detail_enabled': self.detail_enabled,
|
|
292
298
|
'show_content_right': str(bool(
|
|
293
299
|
self.detail_header_template or self.detail_data_template
|
|
294
300
|
)).lower()
|
|
@@ -313,6 +319,7 @@ class TableRowResponse(Response):
|
|
|
313
319
|
):
|
|
314
320
|
super().__init__(template=self.base_template, context={})
|
|
315
321
|
self.instance = instance
|
|
322
|
+
self.instance.refresh_from_db()
|
|
316
323
|
self.fields = fields
|
|
317
324
|
self.instance_label = instance_label
|
|
318
325
|
self.footer = footer
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
--bulma-body-size: .9em;
|
|
4
4
|
--bulma-navbar-height: 40px;
|
|
5
5
|
--bulma-menu-item-selected-h: var(--bulma-primary-h);
|
|
6
|
-
--accrete-detail-width:
|
|
6
|
+
--accrete-detail-width: 38em;
|
|
7
|
+
--accrete-action-panel-width: 20em;
|
|
7
8
|
--bulma-primary-h: 153.28deg;
|
|
8
9
|
--bulma-primary-s: 52.89%;
|
|
9
10
|
--bulma-primary-l: 52.55%;
|
|
10
|
-
--accrete-action-panel-width: 320px;
|
|
11
11
|
--bulma-input-arrow: var(--bulma-primary);
|
|
12
12
|
--bulma-arrow-color: var(--bulma-primary);
|
|
13
13
|
--accrete-hover-color: #F0F2F4; }
|
|
@@ -202,13 +202,6 @@ select:focus {
|
|
|
202
202
|
background: var(--bulma-scheme-main);
|
|
203
203
|
z-index: 40;
|
|
204
204
|
box-shadow: 2px 0 20px 0 var(--bulma-grey-light); } }
|
|
205
|
-
.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 {
|
|
206
|
-
--bulma-menu-item-h: var(--bulma-primary-h);
|
|
207
|
-
--bulma-menu-item-s: var(--bulma-primary-s);
|
|
208
|
-
--bulma-menu-item-l: var(--bulma-primary-l);
|
|
209
|
-
--bulma-menu-item-background-l: var(--bulma-primary-l);
|
|
210
|
-
--bulma-menu-item-color-l: var(--bulma-primary-invert-l); }
|
|
211
|
-
|
|
212
205
|
.hoverable *:hover {
|
|
213
206
|
background-color: var(--accrete-hover-color); }
|
|
214
207
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"mappings": "AAAQ,uCAA4B;AAEpC,KAAM;EACJ,iBAAiB,CAAC,KAAK;EACvB,qBAAqB,CAAC,KAAK;EAC3B,4BAA4B,CAAC,uBAAuB;EACpD,sBAAsB,CAAC,KAAK;EAC5B,iBAAiB,CAAC,UAAU;EAC5B,iBAAiB,CAAC,OAAO;EACzB,iBAAiB,CAAC,OAAO;EACzB,
|
|
3
|
+
"mappings": "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",
|
|
4
4
|
"sources": ["accrete.scss"],
|
|
5
5
|
"names": [],
|
|
6
6
|
"file": "accrete.css"
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
--bulma-body-size: .9em;
|
|
5
5
|
--bulma-navbar-height: 40px;
|
|
6
6
|
--bulma-menu-item-selected-h: var(--bulma-primary-h);
|
|
7
|
-
--accrete-detail-width:
|
|
7
|
+
--accrete-detail-width: 38em;
|
|
8
|
+
--accrete-action-panel-width: 20em;
|
|
8
9
|
--bulma-primary-h: 153.28deg;
|
|
9
10
|
--bulma-primary-s: 52.89%;
|
|
10
11
|
--bulma-primary-l: 52.55%;
|
|
11
|
-
--accrete-action-panel-width: 320px;
|
|
12
12
|
--bulma-input-arrow: var(--bulma-primary);
|
|
13
13
|
--bulma-arrow-color: var(--bulma-primary);
|
|
14
14
|
--accrete-hover-color: #F0F2F4;
|
|
@@ -263,14 +263,6 @@ select:focus {
|
|
|
263
263
|
}
|
|
264
264
|
}
|
|
265
265
|
|
|
266
|
-
.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 {
|
|
267
|
-
--bulma-menu-item-h: var(--bulma-primary-h);
|
|
268
|
-
--bulma-menu-item-s: var(--bulma-primary-s);
|
|
269
|
-
--bulma-menu-item-l: var(--bulma-primary-l);
|
|
270
|
-
--bulma-menu-item-background-l: var(--bulma-primary-l);
|
|
271
|
-
--bulma-menu-item-color-l: var(--bulma-primary-invert-l);
|
|
272
|
-
}
|
|
273
|
-
|
|
274
266
|
.hoverable *:hover {
|
|
275
267
|
background-color: var(--accrete-hover-color);
|
|
276
268
|
}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
<meta charset="utf-8">
|
|
12
12
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
13
13
|
{% include 'ui/favicon.html' %}
|
|
14
|
-
<link rel="stylesheet" type="text/css" href="{% static "css/accrete.css" %}?v=0.0.
|
|
14
|
+
<link rel="stylesheet" type="text/css" href="{% static "css/accrete.css" %}?v=0.0.159">
|
|
15
15
|
<link rel="stylesheet" type="text/css" href="{% static "css/icons.css" %}">
|
|
16
16
|
<link rel="stylesheet" type="text/css" href="{% static "css/fa.css" %}">
|
|
17
17
|
{% if style_template %}{% include style_template %}{% endif %}
|
|
@@ -221,7 +221,7 @@
|
|
|
221
221
|
x-transition:enter.duration.200ms x-transition:leave.duration.50ms
|
|
222
222
|
>
|
|
223
223
|
<div id="detail-indicator" class="htmx-indicator">
|
|
224
|
-
<progress class="progress is-
|
|
224
|
+
<progress class="progress is-primary" max="100"></progress>
|
|
225
225
|
</div>
|
|
226
226
|
<div class="is-flex is-flex-direction-column" style="height: 100%">
|
|
227
227
|
<div class="is-flex is-flex-wrap-nowrap is-justify-content-space-between m-2">
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
<div id="list-grid" class="grid m-0">
|
|
8
8
|
{% for instance in page.object_list %}
|
|
9
9
|
{% partialdef entry inline=True %}
|
|
10
|
-
<div id="list-entry-{{ instance.pk }}" class="list-entry cell pb-0" style="{% if column_height %}
|
|
10
|
+
<div id="list-entry-{{ instance.pk }}" class="list-entry cell pb-0" style="{% if column_height %}height: {{ column_height }}{% endif %}">
|
|
11
11
|
<div class="box p-3"
|
|
12
12
|
style="word-break: break-word; height: 100%; overflow-y: auto; {% if instance.get_absolute_url and detail_enabled %}cursor:pointer;{% endif %}"
|
|
13
13
|
{% if instance.get_absolute_url and detail_enabled %}
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
hx-swap="beforeend"
|
|
39
39
|
hx-replace-url="true"
|
|
40
40
|
hx-indicator="#endless-scroll-indicator"></div>
|
|
41
|
-
<progress id="endless-scroll-indicator" class="htmx-indicator progress is-small is-
|
|
41
|
+
<progress id="endless-scroll-indicator" class="htmx-indicator progress is-small is-primary" max="100">15%</progress>
|
|
42
42
|
{% endif %}
|
|
43
43
|
</div>
|
|
44
44
|
{% endblock %}
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
{% endblock %}
|
|
42
42
|
</footer>
|
|
43
43
|
<div id="{{ modal_id }}-indicator" x-ref="{{ modal_id|xrefsave }}Indicator" class="htmx-indicator modal-request-overlay" style="position: absolute; inset: 0; background: rgba(47, 47, 62, 0.2)">
|
|
44
|
-
<progress class="progress is-
|
|
44
|
+
<progress class="progress is-primary" max="100" style="position: absolute; inset: 0; min-width: 300px; max-width: 20vw; margin: auto;"></progress>
|
|
45
45
|
</div>
|
|
46
46
|
</div>
|
|
47
47
|
</div>
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
<{{ oob.tag|default_if_none:'div' }}
|
|
1
|
+
<{{ oob.tag|default_if_none:'div' }} hx-swap-oob="{{ oob.swap|default_if_none:'true' }}" {% for k, v in oob.attrs.items %}{{ k }}="{{ v }}"{% endfor %}>
|
|
2
2
|
{% include oob.template %}
|
|
3
|
-
</{{ oob.tag|default_if_none:'div' }}>
|
|
3
|
+
</{{ oob.tag|default_if_none:'div' }}>
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
{% for instance in page.object_list %}
|
|
17
17
|
{% partialdef tr inline=True %}
|
|
18
18
|
<tr id="tr-{{ instance.pk }}"
|
|
19
|
-
{% if instance.get_absolute_url %}
|
|
19
|
+
{% if instance.get_absolute_url and detail_enabled %}
|
|
20
20
|
style="cursor: pointer;"
|
|
21
21
|
hx-get="{{ instance.get_absolute_url }}{% querystring %}" hx-swap="none"
|
|
22
22
|
hx-replace-url="{% querystring detail=instance.pk %}"
|
|
@@ -57,3 +57,15 @@
|
|
|
57
57
|
<span class="helptext is-size-7">{{ field.help_text|default_if_falsy:'' }}</span>
|
|
58
58
|
</div>
|
|
59
59
|
{% endpartialdef %}
|
|
60
|
+
|
|
61
|
+
{% partialdef model_state %}
|
|
62
|
+
<label class="label mb-0 {% if field.field.required %}has-text-weight-bold{% endif %}" for="{{ field.id_for_label }}">{{ label }}</label>
|
|
63
|
+
<div class="field has-addons mb-0">
|
|
64
|
+
{% if icon %}
|
|
65
|
+
<p class="control">
|
|
66
|
+
<button tabindex="-1" type="button" class="button is-static"><span class="icon"><i class="{{ icon }}"></i></span></button>
|
|
67
|
+
</p>
|
|
68
|
+
{% endif %}
|
|
69
|
+
<div class="control input is-expanded">{{ value|default_if_none:'' }}</div>
|
|
70
|
+
</div>
|
|
71
|
+
{% endpartialdef %}
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
<article class="box p-1" style="position: fixed; top: var(--bulma-navbar-height); left: 0; min-width: 150px; border-top-left-radius: 0; border-top-right-radius: 0;"
|
|
6
6
|
x-show="showQuickSwitch" x-cloak="" x-on:click.outside="showQuickSwitch = false"
|
|
7
7
|
>
|
|
8
|
-
<ul class="hoverable
|
|
8
|
+
<ul class="hoverable">
|
|
9
9
|
{% for t in tenants %}
|
|
10
|
-
<li class="navbar-item" style="cursor: pointer; border-radius: var(--bulma-radius);"><a href="{{ switch_url }}?tenant_id={{ t.pk }}" hx-boost="false" style="width: 100%; display: inline-block">{{ t.name }}</a></li>
|
|
10
|
+
<li class="navbar-item has-text-weight-medium" style="cursor: pointer; border-radius: var(--bulma-radius); color: unset;"><a href="{{ switch_url }}?tenant_id={{ t.pk }}" hx-boost="false" style="width: 100%; display: inline-block">{{ t.name }}</a></li>
|
|
11
11
|
{% endfor %}
|
|
12
12
|
</ul>
|
|
13
13
|
</article>
|
|
@@ -18,11 +18,9 @@
|
|
|
18
18
|
<div style="position: relative; top: .5rem; z-index: 90;">
|
|
19
19
|
<div x-show="open" x-effect="if (open) {$nextTick(() => { $refs.dropdownContent.scrollIntoView(true) });}" x-cloak="" class="box pt-3 px-3 mb-2" x-ref="dropdownContent" tabindex="-1" x-transition style="position: absolute; width: 100%">
|
|
20
20
|
<input id="id_{{ widget.name }}_search" type="search" autocomplete="off" class="input my-2" x-ref="searchInput" aria-label="search"
|
|
21
|
-
name="{{ widget.search_parameter }}"
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
hx-trigger="input changed delay:500ms, search"
|
|
25
|
-
hx-target="#{{ widget.name }}_dropdown_items"
|
|
21
|
+
name="{{ widget.search_parameter }}" placeholder="{% translate 'Type to search' %}" hx-get="{{ widget.search_url }}"
|
|
22
|
+
hx-trigger="input changed delay:500ms, search" hx-target="#{{ widget.name }}_dropdown_items"
|
|
23
|
+
style="border-radius: 0; border-top: none; border-right: none; border-left: none"
|
|
26
24
|
>
|
|
27
25
|
<div x-on:click="$refs.inputValue.setAttribute('value', $event.target.value); $refs.inputDisplay.value = $event.target.innerText; htmx.trigger($refs.inputValue, 'submit'); open = false; {% if widget.hx_trigger_on_change %}htmx.trigger('#id_{{ widget.name }}_value', 'change');{% endif %}"
|
|
28
26
|
x-on:keydown="if (![9, 27, 38, 40].includes($event.keyCode)) {$refs.searchInput.focus();}"
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
hx-trigger="input changed delay:300ms, search"
|
|
43
43
|
hx-target="#id_{{ widget.uuid }}_dropdown_items"
|
|
44
44
|
hx-swap="innerHTML"
|
|
45
|
-
style="border-radius:
|
|
45
|
+
style="border-radius: 0; border-top: none; border-right: none; border-left: none"
|
|
46
46
|
x-on:keydown="if (![9, 27, 38, 40].includes($event.keyCode)) {$refs.searchInput.focus();}"
|
|
47
47
|
@change.stop=""
|
|
48
48
|
>
|
|
@@ -7,7 +7,8 @@ from django.shortcuts import resolve_url
|
|
|
7
7
|
from django.utils.translation import gettext_lazy as _
|
|
8
8
|
from django import template
|
|
9
9
|
from django.db.models import (
|
|
10
|
-
Manager, DecimalField, IntegerField, FloatField, Model,
|
|
10
|
+
Manager, DecimalField, IntegerField, FloatField, Model,
|
|
11
|
+
ManyToManyRel, ManyToManyField
|
|
11
12
|
)
|
|
12
13
|
from django.apps import apps
|
|
13
14
|
from django.template.loader import render_to_string
|
|
@@ -85,9 +86,18 @@ def verbose_field_name(param: object, value: str):
|
|
|
85
86
|
if not param:
|
|
86
87
|
return ''
|
|
87
88
|
if isinstance(param, Model):
|
|
88
|
-
|
|
89
|
+
field = param._meta.get_field(value)
|
|
90
|
+
if isinstance(field, ManyToManyRel):
|
|
91
|
+
name = field.related_model._meta.verbose_name_plural
|
|
92
|
+
else:
|
|
93
|
+
name = param._meta.get_field(value).verbose_name
|
|
89
94
|
else:
|
|
90
|
-
|
|
95
|
+
field = getattr(param.model, value).field
|
|
96
|
+
if isinstance(field, ManyToManyField):
|
|
97
|
+
name = field.model._meta.verbose_name_plural
|
|
98
|
+
else:
|
|
99
|
+
name = getattr(param.model, value).field.verbose_name
|
|
100
|
+
|
|
91
101
|
return name
|
|
92
102
|
|
|
93
103
|
|
|
@@ -198,6 +208,12 @@ def wrap_model_field(instance, field_name):
|
|
|
198
208
|
return mark_safe(html)
|
|
199
209
|
|
|
200
210
|
|
|
211
|
+
@register.filter(name='wrap_model_state')
|
|
212
|
+
def wrap_model_state(instance, field_name):
|
|
213
|
+
field = instance._meta.get_field(field_name)
|
|
214
|
+
# get choices, handle groups
|
|
215
|
+
|
|
216
|
+
|
|
201
217
|
@register.filter(name='default_if_falsy')
|
|
202
218
|
def default_if_falsy(value, default):
|
|
203
219
|
if bool(value):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{% load i18n %}
|
|
2
2
|
|
|
3
|
-
<a class="navbar-item" href="{% url 'user:detail' %}" hx-boost="false">{% translate 'Preferences' %}</a>
|
|
3
|
+
<a class="navbar-item" href="{% url 'user:detail' %}?tenant_id={{ request.tenant.pk }}" hx-boost="false">{% translate 'Preferences' %}</a>
|
|
4
4
|
{% if request.user.is_staff %}
|
|
5
5
|
<a class="navbar-item" hx-boost="false" href="/admin/">Admin</a>
|
|
6
6
|
{% endif %}
|
|
@@ -72,7 +72,7 @@ accrete/contrib/ui/filter.py,sha256=MZfy6p4Q6TVvtjl5nF7_6CemOe1twbk0Bj5LWptjcwM,
|
|
|
72
72
|
accrete/contrib/ui/forms.py,sha256=Ul3daXNwWLN1G3ppwOvNztrilIAGeLwNY1a-g-njrjQ,2049
|
|
73
73
|
accrete/contrib/ui/middleware.py,sha256=fVjKeDXnGiJw7NRYZK3nCkj7g-MAainiBl-VhpE3XdQ,1792
|
|
74
74
|
accrete/contrib/ui/models.py,sha256=ikwd7vHuq0R_qcr_gczcHHRvkXwr-zJMrfrriIUJD7U,3426
|
|
75
|
-
accrete/contrib/ui/response.py,sha256=
|
|
75
|
+
accrete/contrib/ui/response.py,sha256=pvsyBwuKJT1BFC3dg3K8fYQJCapuwIB1aVCLfwYy60Y,15108
|
|
76
76
|
accrete/contrib/ui/tests.py,sha256=mrbGGRNg5jwbTJtWWa7zSKdDyeB4vmgZCRc2nk6VY-g,60
|
|
77
77
|
accrete/contrib/ui/urls.py,sha256=5XUfK85HYWYf7oopMoJEEYmQ6pNgHgZBErBEn97pBt4,337
|
|
78
78
|
accrete/contrib/ui/views.py,sha256=foVB7rx3_FWU9fkPdUKiqkVsWraAyfenC2OTNyYt7lI,4644
|
|
@@ -178,9 +178,9 @@ accrete/contrib/ui/static/bulma/versions/bulma-no-dark-mode.scss,sha256=1tXoYLlK
|
|
|
178
178
|
accrete/contrib/ui/static/bulma/versions/bulma-no-helpers-prefixed.scss,sha256=NRrD7Euz_mfDI02D92a63M6H4UhArjhWy3g5DIhQr5o,366
|
|
179
179
|
accrete/contrib/ui/static/bulma/versions/bulma-no-helpers.scss,sha256=gyRiEug6frpDJEaxZ7VybdApnmNS5R5A9Zn1R0yWLJg,335
|
|
180
180
|
accrete/contrib/ui/static/bulma/versions/bulma-prefixed.scss,sha256=cDhte1VyFupdjYFXpUyQb7wGB8aUKDGYuKluZCY5CtA,133
|
|
181
|
-
accrete/contrib/ui/static/css/accrete.css,sha256=
|
|
182
|
-
accrete/contrib/ui/static/css/accrete.css.map,sha256=
|
|
183
|
-
accrete/contrib/ui/static/css/accrete.scss,sha256=
|
|
181
|
+
accrete/contrib/ui/static/css/accrete.css,sha256=Dw4dq5UcB1BE-vHsDLreacH3CjyD75jCJL0EyLASKuQ,6301
|
|
182
|
+
accrete/contrib/ui/static/css/accrete.css.map,sha256=0k5uFPwCqqkpwxGWHil55bs3KHn0UJj-Am_3KthWExM,3846
|
|
183
|
+
accrete/contrib/ui/static/css/accrete.scss,sha256=mG-l3XgdOWZSfTPgrDaJu45T9qAbXG2hD4kYsSV016Y,6263
|
|
184
184
|
accrete/contrib/ui/static/css/fa.css,sha256=wiz7ZSCn_btzhjKDQBms9Hx4sSeUYsDrTLg7roPstac,102641
|
|
185
185
|
accrete/contrib/ui/static/css/icons.css,sha256=5550KHsaayeEtRaUdf0h7esQhyec-_5ZfecZ_sOC6v0,6334
|
|
186
186
|
accrete/contrib/ui/static/icons/Logo.svg,sha256=hGZuxrAa-LRpFavFiF8Lnc7X9OQcqmb6Xl_dxx-27hM,1861
|
|
@@ -214,27 +214,27 @@ accrete/contrib/ui/templates/ui/custom_theme.html,sha256=son43yhp-7ROTpRU9SY3pSg
|
|
|
214
214
|
accrete/contrib/ui/templates/ui/detail.html,sha256=V0HccLE0Pb-5haQFpvIoWZfF1UOrvMwPYv2UTwRnt_A,293
|
|
215
215
|
accrete/contrib/ui/templates/ui/favicon.html,sha256=ZSK6qDGV4Cexgt0VA3KOHYN100yZHOFjfOiFZVudWg0,90
|
|
216
216
|
accrete/contrib/ui/templates/ui/form_error.html,sha256=xIBoM45w_KQWrLDmXh4vibXz5w2_VEYrRCFrAEqdAl0,473
|
|
217
|
-
accrete/contrib/ui/templates/ui/layout.html,sha256=
|
|
218
|
-
accrete/contrib/ui/templates/ui/list.html,sha256=
|
|
217
|
+
accrete/contrib/ui/templates/ui/layout.html,sha256=XvSl4OfTFJHFrC7zI_bZl7OvBEsOr_dEZtrd2ns_98I,14988
|
|
218
|
+
accrete/contrib/ui/templates/ui/list.html,sha256=5Xg6ewNiFDH89bxxBJMxr6APy7hEj94BO2ENyocc8bs,2388
|
|
219
219
|
accrete/contrib/ui/templates/ui/list_update.html,sha256=CUV-OJCieOBrtSbh0vAoyZYL-_e9lP7vQrY4j1TlT7M,276
|
|
220
220
|
accrete/contrib/ui/templates/ui/message.html,sha256=H0JC3qoLO-M6vb9TcEPY-TNGHtgqcG5yOxSUP2sSb7g,824
|
|
221
|
-
accrete/contrib/ui/templates/ui/modal.html,sha256=
|
|
222
|
-
accrete/contrib/ui/templates/ui/oob.html,sha256=
|
|
223
|
-
accrete/contrib/ui/templates/ui/table.html,sha256=
|
|
221
|
+
accrete/contrib/ui/templates/ui/modal.html,sha256=Y3m8F_oawByc7HqX-OmMnHkzrUaXQqu0MJDfjXdl9zg,3464
|
|
222
|
+
accrete/contrib/ui/templates/ui/oob.html,sha256=bMqcvwtiGtoP3Or_tfPDNCgUAjrReTY8j7jeyVpYMn4,222
|
|
223
|
+
accrete/contrib/ui/templates/ui/table.html,sha256=lTQv_VzbTuQy2W4OSBcrBzBolsbIioO3d3GvlKOoOHg,3811
|
|
224
224
|
accrete/contrib/ui/templates/ui/table_row_update.html,sha256=v3YHCzQbGbp3zC6zmJ_EvNvtgvCH_84R6gUsH5mpC0k,439
|
|
225
225
|
accrete/contrib/ui/templates/ui/filter/filter.html,sha256=GOTXouHH4RSCFsIzg1UPFAcmKaNNxTPmRj5Bx9K1m4o,759
|
|
226
226
|
accrete/contrib/ui/templates/ui/filter/query_input.html,sha256=OYXO0l5kVOvsnOYUsa8KaME6tC5AV8C1mJgDtW7nQHE,1975
|
|
227
227
|
accrete/contrib/ui/templates/ui/filter/query_operator.html,sha256=h4WWLDnse6DK5Rb_0TTb0wqWxhvY_g3qjwx8_eENMuI,569
|
|
228
228
|
accrete/contrib/ui/templates/ui/filter/query_params.html,sha256=9Kyb-dQRitjeruIEx1HJUI0elznb0KSV5fJR6keWi_4,9994
|
|
229
229
|
accrete/contrib/ui/templates/ui/filter/query_tags.html,sha256=ooeIwIwvhT0fG5SMAuLoMquTVUmYf5n50DM-3gC_iAo,1567
|
|
230
|
-
accrete/contrib/ui/templates/ui/templatetags/field.html,sha256=
|
|
231
|
-
accrete/contrib/ui/templates/ui/templatetags/tenant_quick_switch.html,sha256=
|
|
230
|
+
accrete/contrib/ui/templates/ui/templatetags/field.html,sha256=ir86XV2WpJIWYMYTbIpfMr-1ORrYm_MsHqtx-lkKPKY,3267
|
|
231
|
+
accrete/contrib/ui/templates/ui/templatetags/tenant_quick_switch.html,sha256=1qp8Qpjb3bbRwjmlFlOrJo_xuamHFKabuHzN77DLAXw,860
|
|
232
232
|
accrete/contrib/ui/templates/ui/widgets/date_weekday.html,sha256=l5k7lFJjdao49Q6oyGf20go-bXJFlidTuUVKYOuISGE,628
|
|
233
|
-
accrete/contrib/ui/templates/ui/widgets/model_search_select.html,sha256=
|
|
234
|
-
accrete/contrib/ui/templates/ui/widgets/model_search_select_multi.html,sha256
|
|
233
|
+
accrete/contrib/ui/templates/ui/widgets/model_search_select.html,sha256=OPCt6HPt4PVsf4g9Kh5KZlLxjhXTcUHeakdPiCVBq68,3040
|
|
234
|
+
accrete/contrib/ui/templates/ui/widgets/model_search_select_multi.html,sha256=--hXZiK62TGHSZHTLB7ck4t8neJTf3rB8oM-Hct9YBE,4736
|
|
235
235
|
accrete/contrib/ui/templates/ui/widgets/model_search_select_options.html,sha256=4Wky0XkYWZlIKXTXzGjJkJTX3H9rhjXTY1hYai3Q3TA,242
|
|
236
236
|
accrete/contrib/ui/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
237
|
-
accrete/contrib/ui/templatetags/ui.py,sha256=
|
|
237
|
+
accrete/contrib/ui/templatetags/ui.py,sha256=Z3aoRyr5QGoKb-htOeBy47Mb5Gunnf8jSVwZpNXat8U,8252
|
|
238
238
|
accrete/contrib/ui/widgets/__init__.py,sha256=2mcvXyFNdFkqOVHGUBDbLmbaJnWnoFaS1uc4dqmdtpE,106
|
|
239
239
|
accrete/contrib/ui/widgets/date_weekday.py,sha256=r6VNE8dwGVZq4jJLGF_MP320-yp482Iykh-WsjeY9XU,148
|
|
240
240
|
accrete/contrib/ui/widgets/search_select.py,sha256=CnWQp2JpzjNJy9arG_sFWoRvVs29x9OzdgULm7yh7d0,3745
|
|
@@ -262,7 +262,7 @@ accrete/contrib/user/migrations/0009_alter_user_theme.py,sha256=o5s0NCEhauE72Z35
|
|
|
262
262
|
accrete/contrib/user/migrations/0010_alter_user_theme.py,sha256=l2raJRmLErPCBqep9-v7kor4jzmG27wAT0ZWTwkFTk0,510
|
|
263
263
|
accrete/contrib/user/migrations/0011_alter_user_theme.py,sha256=LzosJbgzGRWgiYGytM220OFrLN6RS0yPdH00o8eI0B8,520
|
|
264
264
|
accrete/contrib/user/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
265
|
-
accrete/contrib/user/templates/user/accrete_navbar_end_dropdown.html,sha256=
|
|
265
|
+
accrete/contrib/user/templates/user/accrete_navbar_end_dropdown.html,sha256=FyQg_5ckzQAiBFUoVuYY2ZQe0TMQ7AjJmH5nVy5H7-E,385
|
|
266
266
|
accrete/contrib/user/templates/user/change_email.html,sha256=frkoUCUwNtVSe9fhxmFmiM8T3RaFzLKOpAv5gZ7F-AY,473
|
|
267
267
|
accrete/contrib/user/templates/user/change_password.html,sha256=e9_8pGJoEj8FqfgrC_IcDiHuP3gB9BD8ayj-BU-R8kA,538
|
|
268
268
|
accrete/contrib/user/templates/user/login.html,sha256=kzdRosCXadRKdwVRulQTjtVCDx1wmp1VRNsBOKCvCs8,1986
|
|
@@ -298,7 +298,7 @@ accrete/utils/forms.py,sha256=naV4urdfvmpxcx5Vf3Fo72M5Fy8DjGg5-vkysMKptbA,3914
|
|
|
298
298
|
accrete/utils/log.py,sha256=BH0MBDweAjx30wGBO4F3sFhbgkSoEs7T1lLLjlYZNnA,407
|
|
299
299
|
accrete/utils/models.py,sha256=o_nvvwXf8L9hg_6mkFmC9ok7eFZ0auZ0kUC7Buw7du8,2205
|
|
300
300
|
accrete/utils/views.py,sha256=LE9pZ1x9f7ioaPYydbrN4t1b0o6NIIq0qUjPTb1Qkbw,5022
|
|
301
|
-
accrete-0.0.
|
|
302
|
-
accrete-0.0.
|
|
303
|
-
accrete-0.0.
|
|
304
|
-
accrete-0.0.
|
|
301
|
+
accrete-0.0.159.dist-info/METADATA,sha256=Rt-JOa78pCFeOeOO3qHMNxo0yKmUi0Mi-VC1VTaKz0A,4953
|
|
302
|
+
accrete-0.0.159.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
303
|
+
accrete-0.0.159.dist-info/licenses/LICENSE,sha256=vHwb4Qnv8UfYKFiCWyTuRGsi49x19UQwHRCky3b2_NE,1057
|
|
304
|
+
accrete-0.0.159.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|