django-smartbase-admin 1.0.25__py3-none-any.whl → 1.0.27__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.
@@ -8,7 +8,11 @@
8
8
 
9
9
  @layer components {
10
10
  .card {
11
+ --level: 1;
11
12
  @apply bg-bg-elevated sm:rounded border border-dark-200 p-20 md:p-24 max-xs:border-b-0 max-xs:py-32 min-w-0;
13
+ --mix: clamp(0%, calc((var(--level) - 1) / 3 * 100%), 100%);
14
+ background-color: color-mix(in oklch, var(--color-bg-elevated), var(--color-bg) var(--mix));
15
+
12
16
  >header {
13
17
  @apply flex items-center text-18 mb-24 font-semibold;
14
18
  }
@@ -18,6 +22,10 @@
18
22
  }
19
23
  }
20
24
  }
25
+ .card.level-1 { --level: 1; }
26
+ .card.level-2 { --level: 2; }
27
+ .card.level-3 { --level: 3; }
28
+ .card.level-4 { --level: 4; }
21
29
  .column-widget-columns {
22
30
  & > li {
23
31
  @apply relative px-12 py-8 flex items-center;
@@ -200,3 +200,14 @@ fieldset.module > header {
200
200
  z-index: 1;
201
201
  }
202
202
 
203
+ .js-collapse-stacked-inline svg {
204
+ transition: transform 0.3s ease-in-out;
205
+ }
206
+
207
+ .js-collapse-stacked-inline[aria-expanded="true"] svg {
208
+ transform: rotate(0deg);
209
+ }
210
+
211
+ .js-collapse-stacked-inline[aria-expanded="false"] svg {
212
+ transform: rotate(-90deg);
213
+ }
@@ -3,6 +3,7 @@ import Collapse from 'bootstrap/js/dist/collapse'
3
3
  import Tab from 'bootstrap/js/dist/tab'
4
4
  import Modal from 'bootstrap/js/dist/modal'
5
5
  import Tooltip from 'bootstrap/js/dist/tooltip'
6
+ import debounce from 'lodash/debounce'
6
7
 
7
8
  // remove Modal focus trap to fix interaction with fields in modals inside another modal
8
9
  Modal.prototype._initializeFocusTrap = function () {
@@ -100,10 +101,12 @@ class Main {
100
101
  this.saveState(e)
101
102
  this.fileDownload(e)
102
103
  this.passwordToggleFnc(e)
104
+ this.collapseStackedInlineButtons(e)
103
105
  })
104
106
  this.initFileInputs()
105
107
  this.initAliasName()
106
108
  this.handleLocationHashFromTabs()
109
+ this.initCollapseEventListeners()
107
110
  }
108
111
 
109
112
  isDarkMode() {
@@ -397,6 +400,8 @@ class Main {
397
400
  fieldElem.dispatchEvent(new CustomEvent('clear', {detail: {refresh: true}}))
398
401
  }
399
402
 
403
+
404
+
400
405
  executeListAction(table_id, action_url, no_params, open_in_new_tab = false) {
401
406
  if (window.SBAdminTable && window.SBAdminTable[table_id]) {
402
407
  window.SBAdminTable[table_id].executeListAction(action_url, no_params, open_in_new_tab)
@@ -408,6 +413,108 @@ class Main {
408
413
  }
409
414
  }
410
415
  }
416
+ isCurrentlyCollapsed(parentWrapper) {
417
+ const collapseElements = parentWrapper.querySelectorAll('.collapse')
418
+ return Array.from(collapseElements).every(el => {
419
+ if(el.closest('.djn-empty-form')) {
420
+ return true
421
+ }
422
+ return !el.classList.contains('show')
423
+ })
424
+ }
425
+
426
+ updateCollapseAllButton(parentWrapper) {
427
+ const collapseAll = parentWrapper.querySelector('.collapse-all-stacked-inlines')
428
+ if (!collapseAll) return
429
+
430
+ const isCollapsed = this.isCurrentlyCollapsed(parentWrapper)
431
+ const expandText = `<svg class="mr-8"><use xlink:href="#View-grid-list"></use></svg><span>${window.sb_admin_translation_strings["expand"]}</span>`
432
+ const collapseText = `<svg class="mr-8"><use xlink:href="#List-checkbox"></use></svg><span>${window.sb_admin_translation_strings["collapse"]}</span>`
433
+
434
+ if (isCollapsed) {
435
+ collapseAll.classList.add('collapsed')
436
+ collapseAll.innerHTML = expandText
437
+ } else {
438
+ collapseAll.classList.remove('collapsed')
439
+ collapseAll.innerHTML = collapseText
440
+ }
441
+ }
442
+
443
+ initCollapseEventListeners() {
444
+ this.initCollapseAllButtons()
445
+
446
+ const debouncedUpdateCollapseAllButton = debounce((parentWrapper) => {
447
+ this.updateCollapseAllButton(parentWrapper)
448
+ }, 50)
449
+
450
+ document.addEventListener('shown.bs.collapse', (e) => {
451
+ const parentWrapper = e.target.closest('.djn-fieldset')
452
+ if (parentWrapper) {
453
+ debouncedUpdateCollapseAllButton(parentWrapper)
454
+ }
455
+ })
456
+
457
+ document.addEventListener('hidden.bs.collapse', (e) => {
458
+ const parentWrapper = e.target.closest('.djn-fieldset')
459
+ if (parentWrapper) {
460
+ debouncedUpdateCollapseAllButton(parentWrapper)
461
+ }
462
+ })
463
+ }
464
+
465
+
466
+
467
+ initCollapseAllButtons() {
468
+ const collapseAllButtons = document.querySelectorAll('.collapse-all-stacked-inlines')
469
+ collapseAllButtons.forEach(button => {
470
+ const parentWrapper = button.closest('.djn-fieldset')
471
+ if (parentWrapper) {
472
+ this.updateCollapseAllButton(parentWrapper)
473
+ }
474
+ })
475
+ }
476
+
477
+ collapseStackedInlineButtons(event) {
478
+ const collapseStackedInline = event.target.closest('.js-collapse-stacked-inline')
479
+ if(collapseStackedInline) {
480
+ const collapseEl = event.target.closest('.djn-inline-form').querySelector('.collapse')
481
+ const instance = Collapse.getOrCreateInstance(collapseEl)
482
+ instance.toggle()
483
+ collapseStackedInline.setAttribute('aria-expanded', collapseStackedInline.getAttribute('aria-expanded') !== 'true')
484
+ }
485
+
486
+ const collapseAll = event.target.closest('.collapse-all-stacked-inlines')
487
+ if (collapseAll) {
488
+ event.preventDefault()
489
+ const parentWrapper = collapseAll.closest('.djn-fieldset')
490
+ const collapseElements = parentWrapper.querySelectorAll('.collapse')
491
+ const collapseTriggers = parentWrapper.querySelectorAll('.js-collapse-stacked-inline')
492
+ const isCurrentlyCollapsed = this.isCurrentlyCollapsed(parentWrapper)
493
+
494
+ collapseTriggers.forEach(el => {
495
+ if(el.closest('.djn-empty-form')) {
496
+ return
497
+ }
498
+ if (isCurrentlyCollapsed) {
499
+ el.setAttribute('aria-expanded', 'true')
500
+ } else {
501
+ el.setAttribute('aria-expanded', 'false')
502
+ }
503
+ })
504
+
505
+ collapseElements.forEach(el => {
506
+ if(el.closest('.djn-empty-form')) {
507
+ return
508
+ }
509
+ const instance = Collapse.getOrCreateInstance(el)
510
+ if (isCurrentlyCollapsed) {
511
+ instance.show()
512
+ } else {
513
+ instance.hide()
514
+ }
515
+ })
516
+ }
517
+ }
411
518
  }
412
519
 
413
520
  window.addEventListener('DOMContentLoaded', () => {
@@ -51,11 +51,15 @@
51
51
  data-is-initial="{% if inline_admin_form.pk_field.field.value %}true{% else %}false{% endif %}"
52
52
  {% endif %}
53
53
  id="{{ inline_admin_formset.formset.prefix }}-{% if forloop.last and inline_admin_formset.has_add_permission %}empty{% else %}{{ inline_admin_form.form|form_index }}{% endif %}">
54
- <div class="card p-0 sm:mb-24 {% if inline_admin_form.formset.nesting_depth > 1 %}border-0{% endif %}">
55
- {% if not inline_opts.sortable_options or not inline_opts.sortable_options.disabled %}<div class="djn-drag-handler"></div>{% endif %}
56
- <div class="p-24 pb-0">
54
+ <div class="djn-tools card level-{{ inline_admin_form.formset.nesting_depth }} p-0 sm:mb-24 {% if inline_admin_form.formset.nesting_depth > 1 %}border-0{% endif %}">
55
+ <div class="p-24">
57
56
  {# <b>{{ inline_admin_formset.opts.verbose_name|capfirst }}:</b>&nbsp;#}
58
57
  <div class="flex items-center">
58
+ {% if not inline_opts.sortable_options or not inline_opts.sortable_options.disabled %}
59
+ <div class="drag-handler btn btn-empty cursor-move static transform-none mr-8">
60
+ <svg class="w-20 h-20 text-dark-400"><use xlink:href="#Drag"></use></svg>
61
+ </div>
62
+ {% endif %}
59
63
  <span class="text-dark-900 font-semibold">{% if inline_admin_form.original %}{{ inline_admin_form.original }}{% else %}#{{ forloop.counter }}{% endif %}</span>
60
64
  <div class="ml-auto">
61
65
  {% if inline_admin_form.original and inline_admin_form.model_admin.show_change_link and inline_admin_form.model_admin.has_registered_model %}
@@ -64,8 +68,8 @@
64
68
  </a>
65
69
  {% endif %}
66
70
  {% if inline_admin_form.show_url %}<a href="{{ inline_admin_form.absolute_url }}" class="ml-8">{% trans "View on site" %}</a>{% endif %}
67
- {% if inline_admin_formset.formset.can_delete %}
68
- <div class="ml-8">
71
+ <div class="ml-8 flex items-center gap-8">
72
+ {% if inline_admin_formset.formset.can_delete %}
69
73
  {% if inline_admin_form.original %}
70
74
  <div class="delete djn-delete-handler {{ inline_admin_formset.handler_classes|join:" " }}">
71
75
  <div class="relative flex items-center h-40">
@@ -78,8 +82,14 @@
78
82
  {% else %}
79
83
  <span><a class="inline-deletelink djn-remove-handler {{ inline_admin_formset.handler_classes|join:" " }}" href="javascript:void(0)">{% trans 'Delete' %}</a></span>
80
84
  {% endif %}
81
- </div>
82
- {% endif %}
85
+ {% endif %}
86
+ <div class="w-2 bg-dark-200 self-stretch"></div>
87
+ <button type="button" class="btn btn-empty js-collapse-stacked-inline" aria-expanded="{{ context_data.default_collapsed|yesno:"false,true" }}">
88
+ <svg class="w-20 h-20 text-dark-400">
89
+ <use xlink:href="#Down"></use>
90
+ </svg>
91
+ </button>
92
+ </div>
83
93
  </div>
84
94
  </div>
85
95
 
@@ -90,25 +100,25 @@
90
100
  {% endif %}
91
101
  </div>
92
102
 
93
-
94
- {% for fieldset in inline_admin_form %}
95
- <div class="p-24 stacked-row{% if not forloop.first %} border-t border-dark-200{% endif %}">
96
- {% include inline_admin_formset.opts.fieldset_template %}
97
- </div>
98
- {% endfor %}
99
- {% if inline_admin_form.has_auto_field or inline_admin_form.needs_explicit_pk_field %}
100
- {{ inline_admin_form.pk_field.field }}
101
- {% endif %}
102
- {% if inline_admin_form.fk_field %}{{ inline_admin_form.fk_field.field }}{% endif %}
103
+ <div class="collapse flex flex-col {% if not context_data.default_collapsed %}show{% endif %}">
104
+ {% for fieldset in inline_admin_form %}
105
+ <div class="pt-0 pb-24 px-24 stacked-row{% if not forloop.first %} border-t border-dark-200{% endif %}">
106
+ {% include inline_admin_formset.opts.fieldset_template %}
107
+ </div>
108
+ {% endfor %}
109
+ {% if inline_admin_form.has_auto_field or inline_admin_form.needs_explicit_pk_field %}
110
+ {{ inline_admin_form.pk_field.field }}
111
+ {% endif %}
112
+ {% if inline_admin_form.fk_field %}{{ inline_admin_form.fk_field.field }}{% endif %}
113
+ {% if inline_admin_form.form.inlines %}
114
+ {% for nested in inline_admin_form.form.inlines %}
115
+ <div class="card level-{{ nested.formset.nesting_depth }} p-0 mx-24 sm:my-24">
116
+ {% include nested.opts.template with inline_admin_formset=nested %}
117
+ </div>
118
+ {% endfor %}
119
+ {% endif %}
120
+ </div>
103
121
  </div>
104
- {% if inline_admin_form.form.inlines %}
105
- {% for nested in inline_admin_form.form.inlines %}
106
- <div class="card p-0 sm:mb-24 {% if nested.formset.nesting_depth > 2 %}border-x-0 rounded-none{% endif %}">
107
- {% include nested.opts.template with inline_admin_formset=nested %}
108
- </div>
109
- {% endfor %}
110
- {% endif %}
111
-
112
122
  </div>
113
123
  {% endfor %}
114
124
  {% endwith %}
@@ -6,6 +6,8 @@
6
6
  window.sb_admin_translation_strings["up"] = '{% trans "Move up" %}';
7
7
  window.sb_admin_translation_strings["down"] = '{% trans "Move down" %}';
8
8
  window.sb_admin_translation_strings["reorder"] = '{% trans "Reorder" %}';
9
+ window.sb_admin_translation_strings["expand"] = '{% trans "Expand" %}';
10
+ window.sb_admin_translation_strings["collapse"] = '{% trans "Collapse" %}';
9
11
  window.sb_admin_translation_strings["page"] = '{% blocktrans %}<strong>${from} - ${to}</strong> of <strong>${total}</strong><span class="max-xs:hidden"> items</span>{% endblocktrans %}'
10
12
  window.sb_admin_translation_strings["page_empty"] = '{% blocktrans %}<strong>0</strong> items{% endblocktrans %}'
11
13
  window.sb_admin_translation_strings["selected"] = '{% blocktrans %}${value} selected{% endblocktrans %}'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: django-smartbase-admin
3
- Version: 1.0.25
3
+ Version: 1.0.27
4
4
  Summary:
5
5
  Home-page: https://smartbase-sk.github.io/django-smartbase-admin-docs/
6
6
  License: MIT
@@ -31,7 +31,7 @@ Requires-Dist: xlsxwriter (>=3.2.0,<4.0.0)
31
31
  Project-URL: Repository, https://github.com/SmartBase-SK/django-smartbase-admin
32
32
  Description-Content-Type: text/markdown
33
33
 
34
- <img width="1660" height="520" alt="image" src="https://github.com/user-attachments/assets/b0d5537f-29c4-46ca-b514-9862b26cb000" />
34
+ <img width="1660" height="520" alt="image" src="https://github.com/user-attachments/assets/b0d5537f-29c4-46ca-b514-9862b26cb000" style="max-width: 100%; height: auto; max-height: 520px;" />
35
35
 
36
36
  # Django SmartBase Admin
37
37
 
@@ -52,18 +52,18 @@ Built to **speed up development** of internal tools and admin panels — beautif
52
52
  - Beautiful modern UI (Tailwind CSS)
53
53
  - Responsive & mobile-friendly
54
54
  - End-user ready for building SaaS or similar projects with global queryset configuration
55
- <img width="2880" height="1720" alt="image" src="https://github.com/user-attachments/assets/ebbcacea-9052-409e-99bb-9f9e0804bbc5" />
56
- <img width="2880" height="1720" alt="image" src="https://github.com/user-attachments/assets/8003df6a-e035-4c8f-8e90-0e710818d33e" />
57
- <img width="2880" height="1720" alt="image" src="https://github.com/user-attachments/assets/29e116de-a8c6-4f22-8485-3e0eba5ed564" />
58
- <img width="2880" height="1720" alt="image" src="https://github.com/user-attachments/assets/46aefe59-e49c-4483-ba1f-eb18397db6ae" />
59
- <img width="2880" height="1720" alt="image" src="https://github.com/user-attachments/assets/ea354dcb-b4a9-47af-8046-ba0d55d72746" />
60
- <img width="2880" height="1720" alt="image" src="https://github.com/user-attachments/assets/10a5d75c-ae3e-4e2b-aeb2-e943e6363a2f" />
61
- <img width="2880" height="1720" alt="image" src="https://github.com/user-attachments/assets/3e6bfdbb-0c07-4fad-96f0-552cbcc9d4ae" />
62
- <img width="2880" height="1720" alt="image" src="https://github.com/user-attachments/assets/b3acd00b-c425-4e5f-b113-97215bb85157" />
63
- <img width="2880" height="1720" alt="image" src="https://github.com/user-attachments/assets/dc5f3f80-3325-4f5d-acec-236d6b241a7f" />
64
- <img width="2880" height="1720" alt="image" src="https://github.com/user-attachments/assets/216d4e50-5af4-4e57-8649-1211a82f493e" />
65
- <img width="2880" height="1720" alt="image" src="https://github.com/user-attachments/assets/167461dd-ec2e-4327-a208-4014f42100f9" />
66
- <img width="2880" height="1720" alt="image" src="https://github.com/user-attachments/assets/3871e505-1bc9-4a6c-8457-4ad363a582af" />
55
+ <img width="2880" height="1720" alt="image" src="https://github.com/user-attachments/assets/ebbcacea-9052-409e-99bb-9f9e0804bbc5" style="max-width: 100%; height: auto; max-height: 1720px;" />
56
+ <img width="2880" height="1720" alt="image" src="https://github.com/user-attachments/assets/8003df6a-e035-4c8f-8e90-0e710818d33e" style="max-width: 100%; height: auto; max-height: 1720px;" />
57
+ <img width="2880" height="1720" alt="image" src="https://github.com/user-attachments/assets/29e116de-a8c6-4f22-8485-3e0eba5ed564" style="max-width: 100%; height: auto; max-height: 1720px;" />
58
+ <img width="2880" height="1720" alt="image" src="https://github.com/user-attachments/assets/46aefe59-e49c-4483-ba1f-eb18397db6ae" style="max-width: 100%; height: auto; max-height: 1720px;" />
59
+ <img width="2880" height="1720" alt="image" src="https://github.com/user-attachments/assets/ea354dcb-b4a9-47af-8046-ba0d55d72746" style="max-width: 100%; height: auto; max-height: 1720px;" />
60
+ <img width="2880" height="1720" alt="image" src="https://github.com/user-attachments/assets/10a5d75c-ae3e-4e2b-aeb2-e943e6363a2f" style="max-width: 100%; height: auto; max-height: 1720px;" />
61
+ <img width="2880" height="1720" alt="image" src="https://github.com/user-attachments/assets/3e6bfdbb-0c07-4fad-96f0-552cbcc9d4ae" style="max-width: 100%; height: auto; max-height: 1720px;" />
62
+ <img width="2880" height="1720" alt="image" src="https://github.com/user-attachments/assets/b3acd00b-c425-4e5f-b113-97215bb85157" style="max-width: 100%; height: auto; max-height: 1720px;" />
63
+ <img width="2880" height="1720" alt="image" src="https://github.com/user-attachments/assets/dc5f3f80-3325-4f5d-acec-236d6b241a7f" style="max-width: 100%; height: auto; max-height: 1720px;" />
64
+ <img width="2880" height="1720" alt="image" src="https://github.com/user-attachments/assets/216d4e50-5af4-4e57-8649-1211a82f493e" style="max-width: 100%; height: auto; max-height: 1720px;" />
65
+ <img width="2880" height="1720" alt="image" src="https://github.com/user-attachments/assets/167461dd-ec2e-4327-a208-4014f42100f9" style="max-width: 100%; height: auto; max-height: 1720px;" />
66
+ <img width="2880" height="1720" alt="image" src="https://github.com/user-attachments/assets/3871e505-1bc9-4a6c-8457-4ad363a582af" style="max-width: 100%; height: auto; max-height: 1720px;" />
67
67
 
68
68
 
69
69
  ## 📚 Full Documentation (in progress)
@@ -3,7 +3,7 @@ django_smartbase_admin/actions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5
3
3
  django_smartbase_admin/actions/admin_action_list.py,sha256=F4b_KmXzuPaKywZK6lq1rYby0CCFU4aMIjv0xoAaUn8,19621
4
4
  django_smartbase_admin/actions/advanced_filters.py,sha256=Vm8b6TAwNehR8INjolFG7pEYL4ADO7XUiVOWpb0btM0,13481
5
5
  django_smartbase_admin/admin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- django_smartbase_admin/admin/admin_base.py,sha256=lU73GWjWvrPTsIXgmLaR88ie_K71J4NsU7qUqSzDrqg,47274
6
+ django_smartbase_admin/admin/admin_base.py,sha256=WQ5Zl25ggG7_oD-8Gvm9b2Pg9hPq6dFTVpW11cd2oLc,48144
7
7
  django_smartbase_admin/admin/site.py,sha256=sJiVX2ljUgNN6MnlLfsTyJs7Dl52iC2rtLwkg962ydM,6841
8
8
  django_smartbase_admin/admin/widgets.py,sha256=OhPZfQ7GR6dgS9Yg_OlkFxSva06Hp28_V-40ZxxkFf8,26216
9
9
  django_smartbase_admin/apps.py,sha256=heZq5O2GHlkJdhUCHbRR7Nmm0irSxnL9NMqY43_O7V4,599
@@ -26,8 +26,8 @@ django_smartbase_admin/engine/modal_view.py,sha256=Qzx9kd9shoqCYes_lYkAvX1ItVL41
26
26
  django_smartbase_admin/engine/request.py,sha256=sFjxgmzGXUeCD3hEx-Eu-ebgF8CnrBJDH2e8LF1ieRg,2615
27
27
  django_smartbase_admin/integration/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
28
  django_smartbase_admin/integration/django_cms.py,sha256=asLVmQUDHulGEpkqp5cUv6-aTcZPoeOllPE1_AIWUqM,1062
29
- django_smartbase_admin/locale/sk/LC_MESSAGES/django.mo,sha256=8Vap4rnNQVHXTcU50YXGNjP8_Uf0AFl-GeRrRRDNtqU,16926
30
- django_smartbase_admin/locale/sk/LC_MESSAGES/django.po,sha256=VNlb5lSMjNXAspr1F-Eg-U0kPXLyR4Z5kJdCdHpsO3Y,18972
29
+ django_smartbase_admin/locale/sk/LC_MESSAGES/django.mo,sha256=kZ8PxgEpqxP0b6b4T8vepKnD3Y-WWEbO5ix6Y_t2qVI,17027
30
+ django_smartbase_admin/locale/sk/LC_MESSAGES/django.po,sha256=tsT1AHp82nwzPRuEA2gPfh1E3DwrUe7NWlcZpzFEIeo,19079
31
31
  django_smartbase_admin/makemessages.py,sha256=2sMMutEHGfJqNEuFtLrbCw8YjFKNuRHJR_team1kp0Y,381
32
32
  django_smartbase_admin/migrations/0001_initial.py,sha256=BhewJ8d_QQuoSupJ1WMzrVEtp_EMg0U5N3bSF9F1BSg,1154
33
33
  django_smartbase_admin/migrations/0002_auto_20230402_2316.py,sha256=RjqhI-N39IkrC4mbE6V6menAZqAhDXYMOLD-MNw0_h8,631
@@ -68,9 +68,9 @@ django_smartbase_admin/static/sb_admin/dist/calendar_style.js,sha256=47DEQpj8HBS
68
68
  django_smartbase_admin/static/sb_admin/dist/chart.js,sha256=nBru0P3RvzaNeQch6qkuL1Wi_c9ICz94HXLXmyYTMW8,205022
69
69
  django_smartbase_admin/static/sb_admin/dist/chart.js.LICENSE.txt,sha256=m7M__mzLlrKDz-hky_AC848p_HzYWhziwCLIpXMsj4I,257
70
70
  django_smartbase_admin/static/sb_admin/dist/confirmation_modal.js,sha256=glK-x4oxSAHqiabqXmNFE3FRtzMbpg7TgZiKcPle9_o,1745
71
- django_smartbase_admin/static/sb_admin/dist/main.js,sha256=bXOY37fH210zR-QnfJh3S0rWn08LTnMozqmU-D4sahE,383000
71
+ django_smartbase_admin/static/sb_admin/dist/main.js,sha256=JzT5YoEOWBJdacBH-RVcLHhKQEB730t26m_1fTLbzX8,384959
72
72
  django_smartbase_admin/static/sb_admin/dist/main.js.LICENSE.txt,sha256=Z8-1IrzhOFV3eE_WGR7SRfbzN9GRXsvfiU7_E_BkX-k,5600
73
- django_smartbase_admin/static/sb_admin/dist/main_style.css,sha256=Z1TXgv-meax_fdZoNqRZqCjaDal89hik4lqFSa_KUtY,178358
73
+ django_smartbase_admin/static/sb_admin/dist/main_style.css,sha256=5mBac7Wuj2kGATtXuw8I_7H1zGAq1hPWc2tZUh7qebQ,178971
74
74
  django_smartbase_admin/static/sb_admin/dist/main_style.js,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
75
  django_smartbase_admin/static/sb_admin/dist/table.js,sha256=ellAKCmVs6r3AjERQ5UZ3NUCLT6uY5KQmGMM-ciyI7I,592340
76
76
  django_smartbase_admin/static/sb_admin/dist/table.js.LICENSE.txt,sha256=WOKSfEow5EUe0a78P0kcxdWcrQlqn2n6H8idNZqHVDk,462
@@ -512,10 +512,10 @@ django_smartbase_admin/static/sb_admin/sprites/sb_admin/Zoom-out.svg,sha256=nx0h
512
512
  django_smartbase_admin/static/sb_admin/src/css/_base.css,sha256=LHE7Gv9XegYFNjq3Qn1djngPcuNA6tMp7lW8BdcE-8Q,1896
513
513
  django_smartbase_admin/static/sb_admin/src/css/_choices.css,sha256=HgS0F_NQw_FS94nTAaSrxnCZkSH2ODWylKUH8LrtZxo,1889
514
514
  django_smartbase_admin/static/sb_admin/src/css/_colors.css,sha256=Ue8ZHaTRvpkJJ_jVrMhmWN25XHt8nC_zZk157vy9qoc,7090
515
- django_smartbase_admin/static/sb_admin/src/css/_components.css,sha256=2_P-jsu3UeGZcAnPAqdHTqLdKse2_TpRTgzAg0ejrkw,12019
515
+ django_smartbase_admin/static/sb_admin/src/css/_components.css,sha256=G8jEfKWrNqGlpWWs5EGkcCAsmQymLUjEnDugS-jwKv4,12346
516
516
  django_smartbase_admin/static/sb_admin/src/css/_datepicker.css,sha256=mguFue8FtTmPz1m-TcPXZo3LkaV_Nr2k9dvpXYiwI_Y,14127
517
517
  django_smartbase_admin/static/sb_admin/src/css/_filer.css,sha256=9VaLI4A4HuxNqyJv3q9o61Ils2hf7JymgjSp_C-fTnY,1629
518
- django_smartbase_admin/static/sb_admin/src/css/_inlines.css,sha256=VP4ggI5Kx8MQHuINrW5UyDHNlU7_ggpyfnsTCAJDkPs,4701
518
+ django_smartbase_admin/static/sb_admin/src/css/_inlines.css,sha256=fmNKTkTylpq2Oma45TvGDT66VOhm9o5IJ00NzyrpUhI,4960
519
519
  django_smartbase_admin/static/sb_admin/src/css/_nouislider.css,sha256=y3wmnyoPFkIKiwn9tzRTWGlIFhopgt4OulOf7__e-3k,5587
520
520
  django_smartbase_admin/static/sb_admin/src/css/_tabulator.css,sha256=3lYZN-pXDVPXDsILW2LDw1wBCdOtcXD78UMfwOQmoNE,18484
521
521
  django_smartbase_admin/static/sb_admin/src/css/_tailwind_base.css,sha256=GGQZxH5G0WiJdP5tHUaI1yNPF5AROgwekzUmtSLJoEw,58
@@ -539,7 +539,7 @@ django_smartbase_admin/static/sb_admin/src/js/code.js,sha256=Q1jKpTsUZhxhaGDRrqH
539
539
  django_smartbase_admin/static/sb_admin/src/js/confirmation_modal.js,sha256=9xycy0sYJfT0SxeDucbOmvg9gHSrBo3KngZjCAHkVMM,3610
540
540
  django_smartbase_admin/static/sb_admin/src/js/datepicker.js,sha256=Nnc28kngTOnb8d2q6NOFGismUVp6l-sTVeBu3M1DgJY,6704
541
541
  django_smartbase_admin/static/sb_admin/src/js/datepicker_plugins.js,sha256=DVIyCJpxn8Gx1mx3QHxbRN4nlpJRlilKix6BK_zcUVc,12382
542
- django_smartbase_admin/static/sb_admin/src/js/main.js,sha256=Rjlg0YWhiqHsstv1KuWioopb03kLulT97Q3WIkkncA0,15847
542
+ django_smartbase_admin/static/sb_admin/src/js/main.js,sha256=VUvC6melb1Q0L0WDKAGrVQ7iLeEJs2sYC4vT1O4YeGY,19992
543
543
  django_smartbase_admin/static/sb_admin/src/js/multiselect.js,sha256=GuWjIpdkfvXi-oBNdK3gImjrzef4550MKMy71iYrywk,4066
544
544
  django_smartbase_admin/static/sb_admin/src/js/range.js,sha256=k_1EIK0R-mrg3ScopUm2UDuYeaCg_VLTjtdJoN-8MXc,1794
545
545
  django_smartbase_admin/static/sb_admin/src/js/sb_ajax_params_tabulator_modifier.js,sha256=vJsAfRlXYeUH-hXLyVukim-UBRUHhv2J9UZHKAALOKo,650
@@ -635,7 +635,7 @@ django_smartbase_admin/templates/sb_admin/includes/notifications.html,sha256=wEE
635
635
  django_smartbase_admin/templates/sb_admin/includes/readonly_boolean_field.html,sha256=sCU7DKBeWVD7ILcOAd20APS3gTBLBwXJpDjzTETwp5M,412
636
636
  django_smartbase_admin/templates/sb_admin/includes/readonly_field.html,sha256=uGysgcSJJRIwG-AW9Vtfysulz4HOKUNH9Wx0f8sZkuE,291
637
637
  django_smartbase_admin/templates/sb_admin/includes/table_inline_delete_button.html,sha256=aAkU6-T3tUrgshrZxny5QSqFUxPI59EKynxfKOMShNc,1170
638
- django_smartbase_admin/templates/sb_admin/inlines/stacked_inline.html,sha256=ct-r_s29Fzy30BO2sIJE369Pc8_W12AAvL8Rj-5nUA0,8215
638
+ django_smartbase_admin/templates/sb_admin/inlines/stacked_inline.html,sha256=VwAqL9oULOMdKvsOF83W_eTW06P1VC6cneAg1l7sMVo,9285
639
639
  django_smartbase_admin/templates/sb_admin/inlines/table_inline.html,sha256=c-tp7Y1NOOYjy93llFzratn2XqZfMRWosDaEd4N_HV4,17408
640
640
  django_smartbase_admin/templates/sb_admin/inlines/table_inline_paginated.html,sha256=2I59KWM_7yvchNjlIWHaHklrklnNsJBwaLlp9mZUYfQ,3046
641
641
  django_smartbase_admin/templates/sb_admin/integrations/cms/page_list.html,sha256=juoU5UaqPozIgRX5EJyWpm2-mb1hqM2pfBoePZ1Vs-I,18190
@@ -655,7 +655,7 @@ django_smartbase_admin/templates/sb_admin/partials/modal/modal.html,sha256=SaJkp
655
655
  django_smartbase_admin/templates/sb_admin/partials/modal/modal_content.html,sha256=_1wrb2GsCvtwQPDl5CUVRgFdcsor25ceHi8UDsPAWt8,3251
656
656
  django_smartbase_admin/templates/sb_admin/sb_admin_base.html,sha256=rOvgXXEKvALAw745J1CvR7Pb__AFvKLH7l965-UUUvk,2854
657
657
  django_smartbase_admin/templates/sb_admin/sb_admin_base_no_sidebar.html,sha256=DKdhX64iBKQ0hqU3_CVlc-zqI-0TfRzQaBO7VhJBbW8,4239
658
- django_smartbase_admin/templates/sb_admin/sb_admin_js_trans.html,sha256=9oSkJo6Ngwr5T8zkpn6GLcdXNTMa1A7SmgjTlg9jlzY,926
658
+ django_smartbase_admin/templates/sb_admin/sb_admin_js_trans.html,sha256=ZXPJ6tMFo-YUNVlYcWH93J2O06aoOeBqyPMaZ7sI2-k,1082
659
659
  django_smartbase_admin/templates/sb_admin/sprites/sb_admin.svg,sha256=l1GoG6DgKk170J_1GSlRV0HqmXi0pLjJ-g4fJWL8NDM,66446
660
660
  django_smartbase_admin/templates/sb_admin/submit_line.html,sha256=cslitlZCL2UlRI8fyEftpSHoVTAX2eqC-oVkfulxZWU,3254
661
661
  django_smartbase_admin/templates/sb_admin/tailwind_whitelist.html,sha256=EgzEm524cwvvxUw0JPpcsKJWj9vo6SoTx8G-EAEApW8,652
@@ -716,7 +716,7 @@ django_smartbase_admin/views/global_filter_view.py,sha256=eYo1moJGyi7jc2cPDA5ZBi
716
716
  django_smartbase_admin/views/media_view.py,sha256=5BLWXuzynF7nM34t-mf2BQSRN5ojY8HxpLIqt7Jiq9g,292
717
717
  django_smartbase_admin/views/translations_view.py,sha256=hktmkJIZ0EJxgnzjHLIoRDY0ckFa5wkbaoFZg32UWYw,20441
718
718
  django_smartbase_admin/views/user_config_view.py,sha256=hUSmwxgGXJog7vhiD-zGpm6smo31sLNzW2VoXapHIjc,1865
719
- django_smartbase_admin-1.0.25.dist-info/LICENSE.md,sha256=okRGMBOYvyhprt2eTpX_QXqpzC0MODF-U7zX-4fKPjQ,1078
720
- django_smartbase_admin-1.0.25.dist-info/METADATA,sha256=7qYTCnFsx-UWdYsInkUY1rLBFiu1XqJNMY4TjoSJgME,6924
721
- django_smartbase_admin-1.0.25.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
722
- django_smartbase_admin-1.0.25.dist-info/RECORD,,
719
+ django_smartbase_admin-1.0.27.dist-info/LICENSE.md,sha256=okRGMBOYvyhprt2eTpX_QXqpzC0MODF-U7zX-4fKPjQ,1078
720
+ django_smartbase_admin-1.0.27.dist-info/METADATA,sha256=lbhlHsS7wYoITnbPM0y-vYMLqKrtx1l_ubJJ8XxdAqQ,7690
721
+ django_smartbase_admin-1.0.27.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
722
+ django_smartbase_admin-1.0.27.dist-info/RECORD,,