accrete 0.0.158__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.
@@ -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: 40em;
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": "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",
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: 40em;
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.154">
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-success" max="100"></progress>
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">
@@ -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-success" max="100">15%</progress>
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-success" max="100" style="position: absolute; inset: 0; min-width: 300px; max-width: 20vw; margin: auto;"></progress>
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' }} {% if oob.id %}id="{{ oob.id }}"{% endif %} hx-swap-oob="{{ oob.swap|default_if_none:'true' }}" {% if oob.select %}hx-select-oob="{{ oob.select }}"{% endif %}>
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 mr-1">
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
- placeholder="{% translate 'Type to search' %}"
23
- hx-get="{{ widget.search_url }}"
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: var(--bulma-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, Q
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
- name = param._meta.get_field(value).verbose_name
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
- name = getattr(param.model, value).field.verbose_name
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 %}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: accrete
3
- Version: 0.0.158
3
+ Version: 0.0.159
4
4
  Summary: Django Shared Schema Multi Tenant
5
5
  Author-email: Benedikt Jilek <benedikt.jilek@pm.me>
6
6
  License: Copyright (c) 2025 Benedikt Jilek
@@ -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=q6V6vSHbioUYbkIUtYbRidmbryTE84Qb9Nu4oZetwJ8,14809
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=6WhaocfxQeQktiY3nZWOTdXNMNypiJzN5DbOe7fSqMk,6743
182
- accrete/contrib/ui/static/css/accrete.css.map,sha256=oXBXlTSW-A2AG9N0WwMHFsghRlzW--p5ISNriXiD66Y,3985
183
- accrete/contrib/ui/static/css/accrete.scss,sha256=XhkFO6NjHBFY4E9IPFnwHG34s9l3hWs6R8sVGNPz2mY,6705
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=JjIDwzsJkXvq8jtgf-7ZMUv17jS_gRhIvow-LolfX3E,14988
218
- accrete/contrib/ui/templates/ui/list.html,sha256=CcVQBxRmBZWFbTI9Lq0S_myIBB-bJpIIi9dHoDUwnJ4,2388
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=sJI7YwTHPvirNlig69A08z7sk_5aYRmyeAUWzm1ceVs,3464
222
- accrete/contrib/ui/templates/ui/oob.html,sha256=lZHIBBYclefbGkKguS1A7vrtOhODJizbSRaGAAHDvG8,267
223
- accrete/contrib/ui/templates/ui/table.html,sha256=ATxvStGMsc0Fz4FkUD2xZs_xhbY1-Zn1zGTrBE_w62s,3792
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=p0h2213KOx3lB3hrHvjeFC-KPE9NF81jihVKkeC83Lg,2710
231
- accrete/contrib/ui/templates/ui/templatetags/tenant_quick_switch.html,sha256=Vqp4fdv0jKp5cAP4ruH9a70BwRGSXfYu2NEotl6IJIU,828
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=Pv28g0CRBTeW--v9LoP39NDDc18RGEC8Hu9MAN-Tsi0,2996
234
- accrete/contrib/ui/templates/ui/widgets/model_search_select_multi.html,sha256=stEhZXCvaj8jjRTg1chwQmyWPeseQaDrLPr257vNtGo,4697
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=pgg9BRlPS0ogsFEl-4DjLhSeE3ThaRWMmbpyv9xm7sQ,7695
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=kp0_IGY3aRXktrlauruW0ciF84rpR0VzI0PUw7rzSag,351
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.158.dist-info/METADATA,sha256=osIV2xm1eTG6dC3XwXWe5WoizG5DbJALcQBaIvPOgo8,4953
302
- accrete-0.0.158.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
303
- accrete-0.0.158.dist-info/licenses/LICENSE,sha256=vHwb4Qnv8UfYKFiCWyTuRGsi49x19UQwHRCky3b2_NE,1057
304
- accrete-0.0.158.dist-info/RECORD,,
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,,