django-smartbase-admin 0.2.95__py3-none-any.whl → 0.2.98__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.
@@ -1 +1 @@
1
- (()=>{const e=function(e,t,n){let o=e.val();void 0!==o&&n.selectAll(!1);let r=[o];if(!0===t.filter){let e=[];r=[];try{e=JSON.parse(o)}catch(t){e=[]}finally{e.forEach((function(e){r.push(e.value)}))}}else if(2===t.multiselect)try{r=JSON.parse(o)}catch(e){r=[]}r.forEach((function(e){let t=n.getNodeByKey(e);t&&(t.getParentList().forEach((function(e){e.setExpanded(!0)})),t.setSelected(!0))}))};$((function(){const t=function(t){if(t.hasClass("fancytree-container"))return;t.on("change",(e=>{const t=e.target.dataset.changeTarget;if(t){const n=document.querySelector(t);n&&(n.value=e.target.value)}}));let n={};const o=e=>{if(!n.isFiltered)return void e.filterNodes((e=>(e.setExpanded(!1),!0)),{autoExpand:!1});const t={};n.data.forEach((e=>t[e.path]=e)),e.filterNodes((e=>{if(t[e.key])return!0}),{autoExpand:!0})},r=$("#"+t.data("tree-data-id")),d=$("#"+t.data("tree-additional-columns-id")),a=$("#"+t.data("tree-strings-id"));let i={},s=[],l={loading:"Loading...",loadError:"Load error!",moreData:"More...",noData:"No data."};try{i=JSON.parse(r.text())||{},s=JSON.parse(d.text())||[],l=JSON.parse(a.text())}catch(e){console.error(e)}const c=$("#"+i.input_id),u=$("#"+i.input_id+"_search"),f=$("#"+i.input_id+"_matches"),p=$("#"+i.input_id+"_label"),h={indentation:32,nodeColumnIdx:0};i.checkbox&&(h.checkboxColumnIdx=0,h.nodeColumnIdx=1);let m=["table","gridnav","filter"];i.reorder_url&&m.push("dnd5"),t.fancytree({source:{url:i.data_url},extensions:m,checkbox:i.checkbox,selectMode:i.multiselect,dnd5:{preventVoidMoves:!0,preventRecursion:!0,autoExpandMS:400,dropMarkerParent:".tree-list-view",dropMarkerOffsetX:-8,dropMarkerInsertOffsetX:0,dragStart:function(){return!0},dragEnter:function(){return!0},dragDrop:function(e,t){t.otherNode.moveTo(e,t.hitMode)}},filter:{autoApply:!0,autoExpand:!0,counter:!1,fuzzy:!0,hideExpandedCounter:!0,hideExpanders:!0,highlight:!0,leavesOnly:!1,nodata:!0,mode:"hide"},table:h,gridnav:{autofocusInput:!1,handleCursorKeys:!0},strings:l,postProcess:function(t,n){setTimeout((function(){e(c,i,n.tree)}),1)},select:function(e,t){if(c.length>0){let e=null;if(i.filter)e=t.tree.getSelectedNodes().map((function(e){return{value:e.key,label:e.title}})),c.val(JSON.stringify(e));else{e=t.tree.getSelectedNodes().map((function(e){return e.key})).join(", "),2===i.multiselect&&(e=JSON.stringify(t.tree.getSelectedNodes().map((function(e){return e.key}))));let n=t.tree.getSelectedNodes().map((function(e){return e.title})).join(", ");p.text(n),c.val(e)}return c[0].dispatchEvent(new CustomEvent("SBAutocompleteChange")),void c[0].dispatchEvent(new Event("change",{bubbles:!0}))}if(i.filter_by_table_data&&t.originalEvent){const e=t.tree.getSelectedNodes().map((function(e){return e.data.id}));document.body.dispatchEvent(new CustomEvent("treeRowSelected",{detail:{data:e}}))}},enhanceTitle:function(e,t){const n=i.reorder_url,o=t.node.rendered,r=t.node.tree.enableFilter,d=i.detail_url,a=t.node.span&&t.node.span.classList.contains("fancytree-node")&&!t.node.tr.classList.contains("fancytree-hide");if(d&&(!o||r)&&!n&&a){const e=t.node.span.querySelector(".fancytree-title"),n=document.createElement("a"),o=i.detail_url.replace(-1,t.node.data.id);n.innerHTML=e.innerHTML,n.classList.add("link"),n.href=o,e.innerHTML="",e.append(n),e.addEventListener("mousedown",(function(e){e.preventDefault(),e.stopPropagation()}),!0)}},renderNode:function(e,t){const n=i.reorder_url,o=t.node.rendered,r=t.node.span&&t.node.span.classList.contains("fancytree-node")&&!t.node.tr.classList.contains("fancytree-hide");if(o&&!n)return;let d=t.node&&t.node.tr&&t.node.tr.classList.contains("fancytree-lastsib");if(d=void 0!==d&&d,t.node.parent?(t.node.treeLevel=t.node.parent.treeLevel+1,t.node.treeAdditionalLevel=[{level:t.node.treeLevel,lastSib:d},...t.node.parent.treeAdditionalLevel]):(t.node.treeLevel=0,t.node.treeAdditionalLevel=[]),t.node.rendered=!0,r){const e=t.node.span.querySelector(".fancytree-expander"),n=t.node.treeLevel,o=t.node.treeAdditionalLevel;e.innerHTML="",e.className="fancytree-expander",e.classList.add("level-"+n),t.node.parent.expanded&&e.classList.add("expanded-parent"),o.forEach(((t,n)=>{if(0!==n&&t.lastSib)return;const o=document.createElement("span");o.classList.add("expander-additional"),0===n&&o.classList.add("expander-additional-last"),o.style.left=-(50+100*n)+"%",e.append(o)}));const r=document.createElement("span");r.classList.add("expander-border"),e.append(r),e.append(document.createElement("div"))}},renderColumns:function(e,t){const n=$(t.node.tr).find(">td");s.forEach((function(e,o){let r=t.node.data[e.key];e.hide_zero&&0===r&&(r=""),n.eq(1+h.nodeColumnIdx+o).html(r)}))},init:function(e,t){i.filter_by_table_data&&o(t.tree)}});const v=function(){u.val(""),f.text(""),y.visit((function(e){e.rendered=!1})),y.clearFilter()},y=$.ui.fancytree.getTree("#"+i.input_id+"_tree");c.on("SBTableFilterFormLoad",(()=>{e(c,i,y)})),c.on("clear",(()=>{y.getSelectedNodes().map((e=>{e.setSelected(!1)}))})),u.on("keyup",(function(e){let t=$(this).val(),n=y.filterNodes(t);e&&e.which===$.ui.keyCode.ESCAPE||""===$.trim(t)?v():f.text("("+n+" matches)")})).trigger("focus"),u.on("search",(function(e){e.target.value||v()})),y.saveTreeOrder=function(){const e=JSON.stringify(y.toDict());fetch(i.reorder_url,{method:"POST",headers:{"X-CSRFToken":window.csrf_token},body:e}).then((e=>e.json())).then((e=>{document.getElementById("notification-messages").innerHTML=e.messages,window.htmx.process(document.getElementById("notification-messages"))}))},i.filter_by_table_data&&(document.body.addEventListener("tableDataProcessed",(e=>{n=e.detail,"loading"!==y.getRootNode().getChildren()[0].statusNodeType&&o(y)})),document.body.addEventListener("treeDeselectAllRows",(()=>{y.selectAll(!1)})),document.body.addEventListener("treeSelectAllRows",(()=>{y.selectAll(!0)})))},n=function(){$(".js-tree-widget").each((function(e,n){const o=$(n);if(o.hasClass("fancytree-container"))return;const r=o.closest(".dropdown-menu");if(r.length>0){const e=function(){t(o),r.prev().off("show.bs.dropdown",e)};r.prev().on("show.bs.dropdown",e)}else t(o)}))};n(),document.addEventListener("formset:added",(()=>{n()}));$(".query-builder-advanced").on("afterCreateRuleInput.queryBuilder",(function(){setTimeout((()=>{n()}),0)}))}))})();
1
+ (()=>{const e=function(e,t,n){let o=e.val();void 0!==o&&n.selectAll(!1);let r=[o];if(!0===t.filter){let e=[];r=[];try{e=JSON.parse(o)}catch(t){e=[]}finally{e.forEach((function(e){r.push(e.value)}))}}else if(2===t.multiselect)try{r=JSON.parse(o)}catch(e){r=[]}r.forEach((function(e){let t=n.getNodeByKey(e);t&&(t.getParentList().forEach((function(e){e.setExpanded(!0)})),t.setSelected(!0))}))};$((function(){const t=function(t){if(t.hasClass("fancytree-container"))return;t.on("change",(e=>{const t=e.target.dataset.changeTarget;if(t){const n=document.querySelector(t);n&&(n.value=e.target.value)}}));let n={};const o=e=>{if(!n.isFiltered)return void e.filterNodes((e=>(e.setExpanded(!1),!0)),{autoExpand:!1});const t={};n.data.forEach((e=>t[e.path]=e)),e.filterNodes((e=>{if(t[e.key])return!0}),{autoExpand:!0})},r=$("#"+t.data("tree-data-id")),d=$("#"+t.data("tree-additional-columns-id")),a=$("#"+t.data("tree-strings-id"));let i={},s=[],l={loading:"Loading...",loadError:"Load error!",moreData:"More...",noData:"No data."};try{i=JSON.parse(r.text())||{},s=JSON.parse(d.text())||[],l=JSON.parse(a.text())}catch(e){console.error(e)}const c=$("#"+i.input_id),u=$("#"+i.input_id+"_search"),f=$("#"+i.input_id+"_matches"),p=$("#"+i.input_id+"_label"),h={indentation:32,nodeColumnIdx:0},m=window.loadJSONScriptData("fancytree_filter_settings");i.checkbox&&(h.checkboxColumnIdx=0,h.nodeColumnIdx=1);let v=["table","gridnav","filter"];i.reorder_url&&v.push("dnd5"),t.fancytree({source:{url:i.data_url},extensions:v,checkbox:i.checkbox,selectMode:i.multiselect,dnd5:{preventVoidMoves:!0,preventRecursion:!0,autoExpandMS:400,dropMarkerParent:".tree-list-view",dropMarkerOffsetX:-8,dropMarkerInsertOffsetX:0,dragStart:function(){return!0},dragEnter:function(){return!0},dragDrop:function(e,t){t.otherNode.moveTo(e,t.hitMode)}},filter:{autoApply:!0,autoExpand:!0,counter:!1,fuzzy:!1,hideExpandedCounter:!0,hideExpanders:!0,highlight:!0,leavesOnly:!1,nodata:!0,mode:"hide",...m},table:h,gridnav:{autofocusInput:!1,handleCursorKeys:!0},strings:l,postProcess:function(t,n){setTimeout((function(){e(c,i,n.tree)}),1)},select:function(e,t){if(c.length>0){let e=null;if(i.filter)e=t.tree.getSelectedNodes().map((function(e){return{value:e.key,label:e.title}})),c.val(JSON.stringify(e));else{e=t.tree.getSelectedNodes().map((function(e){return e.key})).join(", "),2===i.multiselect&&(e=JSON.stringify(t.tree.getSelectedNodes().map((function(e){return e.key}))));let n=t.tree.getSelectedNodes().map((function(e){return e.title})).join(", ");p.text(n),c.val(e)}return c[0].dispatchEvent(new CustomEvent("SBAutocompleteChange")),void c[0].dispatchEvent(new Event("change",{bubbles:!0}))}if(i.filter_by_table_data&&t.originalEvent){const e=t.tree.getSelectedNodes().map((function(e){return e.data.id}));document.body.dispatchEvent(new CustomEvent("treeRowSelected",{detail:{data:e}}))}},enhanceTitle:function(e,t){const n=i.reorder_url,o=t.node.rendered,r=t.node.tree.enableFilter,d=i.detail_url,a=t.node.span&&t.node.span.classList.contains("fancytree-node")&&!t.node.tr.classList.contains("fancytree-hide");if(d&&(!o||r)&&!n&&a){const e=t.node.span.querySelector(".fancytree-title"),n=document.createElement("a"),o=i.detail_url.replace(-1,t.node.data.id);n.innerHTML=e.innerHTML,n.classList.add("link"),n.href=o,e.innerHTML="",e.append(n),e.addEventListener("mousedown",(function(e){e.preventDefault(),e.stopPropagation()}),!0)}},renderNode:function(e,t){const n=i.reorder_url,o=t.node.rendered,r=t.node.span&&t.node.span.classList.contains("fancytree-node")&&!t.node.tr.classList.contains("fancytree-hide");if(o&&!n)return;let d=t.node&&t.node.tr&&t.node.tr.classList.contains("fancytree-lastsib");if(d=void 0!==d&&d,t.node.parent?(t.node.treeLevel=t.node.parent.treeLevel+1,t.node.treeAdditionalLevel=[{level:t.node.treeLevel,lastSib:d},...t.node.parent.treeAdditionalLevel]):(t.node.treeLevel=0,t.node.treeAdditionalLevel=[]),t.node.rendered=!0,r){const e=t.node.span.querySelector(".fancytree-expander"),n=t.node.treeLevel,o=t.node.treeAdditionalLevel;e.innerHTML="",e.className="fancytree-expander",e.classList.add("level-"+n),t.node.parent.expanded&&e.classList.add("expanded-parent"),o.forEach(((t,n)=>{if(0!==n&&t.lastSib)return;const o=document.createElement("span");o.classList.add("expander-additional"),0===n&&o.classList.add("expander-additional-last"),o.style.left=-(50+100*n)+"%",e.append(o)}));const r=document.createElement("span");r.classList.add("expander-border"),e.append(r),e.append(document.createElement("div"))}},renderColumns:function(e,t){const n=$(t.node.tr).find(">td");s.forEach((function(e,o){let r=t.node.data[e.key];e.hide_zero&&0===r&&(r=""),n.eq(1+h.nodeColumnIdx+o).html(r)}))},init:function(e,t){i.filter_by_table_data&&o(t.tree)}});const y=function(){u.val(""),f.text(""),g.visit((function(e){e.rendered=!1})),g.clearFilter()},g=$.ui.fancytree.getTree("#"+i.input_id+"_tree");c.on("SBTableFilterFormLoad",(()=>{e(c,i,g)})),c.on("clear",(()=>{g.getSelectedNodes().map((e=>{e.setSelected(!1)}))})),u.on("keyup",(function(e){let t=$(this).val(),n=g.filterNodes(t);e&&e.which===$.ui.keyCode.ESCAPE||""===$.trim(t)?y():f.text("("+n+" matches)")})).trigger("focus"),u.on("search",(function(e){e.target.value||y()})),g.saveTreeOrder=function(){const e=JSON.stringify(g.toDict());fetch(i.reorder_url,{method:"POST",headers:{"X-CSRFToken":window.csrf_token},body:e}).then((e=>e.json())).then((e=>{document.getElementById("notification-messages").innerHTML=e.messages,window.htmx.process(document.getElementById("notification-messages"))}))},i.filter_by_table_data&&(document.body.addEventListener("tableDataProcessed",(e=>{n=e.detail,"loading"!==g.getRootNode().getChildren()[0].statusNodeType&&o(g)})),document.body.addEventListener("treeDeselectAllRows",(()=>{g.selectAll(!1)})),document.body.addEventListener("treeSelectAllRows",(()=>{g.selectAll(!0)})))},n=function(){$(".js-tree-widget").each((function(e,n){const o=$(n);if(o.hasClass("fancytree-container"))return;const r=o.closest(".dropdown-menu");if(r.length>0){const e=function(){t(o),r.prev().off("show.bs.dropdown",e)};r.prev().on("show.bs.dropdown",e)}else t(o)}))};n(),document.addEventListener("formset:added",(()=>{n()}));$(".query-builder-advanced").on("afterCreateRuleInput.queryBuilder",(function(){setTimeout((()=>{n()}),0)}))}))})();
@@ -107,7 +107,11 @@ class SBAdminTable {
107
107
  }
108
108
 
109
109
  isFiltered() {
110
- return this.getUrlParams()[this.constants.FILTER_DATA_NAME] !== undefined
110
+ const filterParams = this.getUrlParams()[this.constants.FILTER_DATA_NAME]
111
+ if(filterParams === undefined) {
112
+ return false
113
+ }
114
+ return Object.values(filterParams).some(val=>val)
111
115
  }
112
116
 
113
117
  loadFromUrlAfterInit() {
@@ -67,9 +67,7 @@ export class FilterModule extends SBAdminTableModule {
67
67
  const filterData = new FormData(filterForm).entries()
68
68
  const filterDataNotEmpty = {}
69
69
  for (const [key, value] of filterData) {
70
- if(value) {
71
- filterDataNotEmpty[key] = value
72
- }
70
+ filterDataNotEmpty[key] = value
73
71
  }
74
72
  if (Object.keys(filterDataNotEmpty).length > 0) {
75
73
  params[this.table.constants.FILTER_DATA_NAME] = filterDataNotEmpty
@@ -95,6 +95,7 @@ const loadValue = function ($inputEl, treeWidgetData, treeInstance) {
95
95
  indentation: 32,
96
96
  nodeColumnIdx: 0,
97
97
  }
98
+ const fancytreeFilterSettings = window.loadJSONScriptData("fancytree_filter_settings")
98
99
  if (treeWidgetData.checkbox) {
99
100
  tableConfig.checkboxColumnIdx = 0
100
101
  tableConfig.nodeColumnIdx = 1
@@ -131,13 +132,14 @@ const loadValue = function ($inputEl, treeWidgetData, treeInstance) {
131
132
  autoApply: true, // Re-apply last filter if lazy data is loaded
132
133
  autoExpand: true, // Expand all branches that contain matches while filtered
133
134
  counter: false, // Show a badge with number of matching child nodes near parent icons
134
- fuzzy: true, // Match single characters in order, e.g. 'fb' will match 'FooBar'
135
+ fuzzy: false, // Match single characters in order, e.g. 'fb' will match 'FooBar'
135
136
  hideExpandedCounter: true, // Hide counter badge if parent is expanded
136
137
  hideExpanders: true, // Hide expanders if all child nodes are hidden by filter
137
138
  highlight: true, // Highlight matches by wrapping inside <mark> tags
138
139
  leavesOnly: false, // Match end nodes only
139
140
  nodata: true, // Display a 'no data' status node if result is empty
140
- mode: "hide" // Grayout unmatched nodes (pass "hide" to remove unmatched node instead)
141
+ mode: "hide", // Grayout unmatched nodes (pass "hide" to remove unmatched node instead)
142
+ ...fancytreeFilterSettings,
141
143
  },
142
144
  table: tableConfig,
143
145
  gridnav: {
@@ -48,6 +48,7 @@
48
48
  "filter_by_table_data": {% if filter_by_table_data %}true{% else %}false{% endif %}
49
49
  }
50
50
  </script>
51
+ {{ fancytree_filter_settings|get_json_script:'fancytree_filter_settings' }}
51
52
  <script id="{{ tree_component_id }}_additional_columns" type="application/json">{{ tree_additional_columns|get_json|safe }}</script>
52
53
  <script id="{{ tree_component_id }}_tree_strings" type="application/json">
53
54
  {{ tree_strings|get_json|safe }}
@@ -1,8 +1,13 @@
1
+ import logging
2
+ from collections.abc import Iterable
3
+
1
4
  from django import forms
2
5
  from django.conf import settings
3
6
  from django.contrib.admin.helpers import Fieldset
4
7
  from django.template.loader import render_to_string
5
8
 
9
+ logger = logging.getLogger(__name__)
10
+
6
11
 
7
12
  class JSONSerializableMixin(object):
8
13
  def to_json(self):
@@ -36,14 +41,20 @@ def render_notifications(request):
36
41
 
37
42
 
38
43
  class FormFieldsetMixin(forms.Form):
39
- def fieldsets(self):
44
+ def get_fieldsets(self) -> Iterable[tuple[str | None, dict]]:
40
45
  meta = getattr(self, "Meta", None)
46
+ return getattr(meta, "fieldsets", tuple())
41
47
 
42
- if not meta or not meta.fieldsets:
48
+ def fieldsets(self) -> Iterable[Fieldset]:
49
+ if not (fieldsets := self.get_fieldsets()):
50
+ logger.warning(
51
+ "No fieldsets defined for form %s. Using form fields as fallback.",
52
+ self.__class__.__name__,
53
+ )
43
54
  yield Fieldset(form=self, fields=self.fields)
44
55
  return
45
56
 
46
- for name, data in meta.fieldsets:
57
+ for name, data in fieldsets:
47
58
  yield Fieldset(
48
59
  form=self,
49
60
  name=name,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: django-smartbase-admin
3
- Version: 0.2.95
3
+ Version: 0.2.98
4
4
  Summary:
5
5
  Author: SmartBase
6
6
  Author-email: info@smartbase.sk
@@ -5,7 +5,7 @@ django_smartbase_admin/actions/advanced_filters.py,sha256=Vm8b6TAwNehR8INjolFG7p
5
5
  django_smartbase_admin/admin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
6
  django_smartbase_admin/admin/admin_base.py,sha256=dInknwstu6miwpJetdHqEJ0FAFr1lzNCF9fX44qWLL4,41535
7
7
  django_smartbase_admin/admin/site.py,sha256=VrJBhwgZsLa2GohvjnNL7m4dVR3S4Ou1V1UzfE1qOoQ,6577
8
- django_smartbase_admin/admin/widgets.py,sha256=oppoeVTSvJvfYHcIaPCN5YBqVHDZCvQXFOrh-kR31p4,22061
8
+ django_smartbase_admin/admin/widgets.py,sha256=YANVaaBZJKJWdXYkM4Aj0vd4YlkMBLOffyR9yiDULsU,22110
9
9
  django_smartbase_admin/apps.py,sha256=C1wT1YUEZNKcUJfpD01nIZEFgYEsuav52WFKvEURRDU,545
10
10
  django_smartbase_admin/compilemessages.py,sha256=-_FEFQlOvE4L8UzSuUxSxZQjgGlwL9IZtmg59fW_kIQ,342
11
11
  django_smartbase_admin/engine/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -66,10 +66,10 @@ django_smartbase_admin/static/sb_admin/dist/main.js,sha256=bcLgahjE9Uvyij68nJ-bi
66
66
  django_smartbase_admin/static/sb_admin/dist/main.js.LICENSE.txt,sha256=Z8-1IrzhOFV3eE_WGR7SRfbzN9GRXsvfiU7_E_BkX-k,5600
67
67
  django_smartbase_admin/static/sb_admin/dist/main_style.css,sha256=eLrE2ua24VQScaEOk5KUX_so7U3OWRglB2zq88eN55s,154970
68
68
  django_smartbase_admin/static/sb_admin/dist/main_style.js,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
69
- django_smartbase_admin/static/sb_admin/dist/table.js,sha256=cIfPnEQUJBgf-2HU9HoCd9ne9-u6JtbBunLS1EJ2lg0,592036
69
+ django_smartbase_admin/static/sb_admin/dist/table.js,sha256=xXAY3TNQbbyUZMZ51trz9P29PHjzLoLIEt4uB1biok4,592072
70
70
  django_smartbase_admin/static/sb_admin/dist/table.js.LICENSE.txt,sha256=WOKSfEow5EUe0a78P0kcxdWcrQlqn2n6H8idNZqHVDk,462
71
71
  django_smartbase_admin/static/sb_admin/dist/translations.js,sha256=5PRY3zmbnQ9pH-FtNHmsZ5xmYLPOQiO_hR3CBxHIAIo,567
72
- django_smartbase_admin/static/sb_admin/dist/tree_widget.js,sha256=ZnBKO1oITZpjvK7ILiawQfmuCtrTQv43oemsxCTdXxI,6252
72
+ django_smartbase_admin/static/sb_admin/dist/tree_widget.js,sha256=HISaHwiDQu8u8SGMqCQJP6LmAroyNqg4wi-oKb2CE2E,6314
73
73
  django_smartbase_admin/static/sb_admin/dist/tree_widget_style.css,sha256=rFGd70qMkzMLhDkjoKZTbbUNMU19_wWeCngHaoSrUhc,10546
74
74
  django_smartbase_admin/static/sb_admin/dist/tree_widget_style.js,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
75
75
  django_smartbase_admin/static/sb_admin/fancytree/jquery.fancytree-all-deps.min.js,sha256=JcIBncqpLNQT11WI19oVQQOhCmvoduGuxCR5Vaqupcc,130772
@@ -513,13 +513,13 @@ django_smartbase_admin/static/sb_admin/src/js/range.js,sha256=Vc_NZMKAUzwYpTC1jf
513
513
  django_smartbase_admin/static/sb_admin/src/js/sb_ajax_params_tabulator_modifier.js,sha256=vJsAfRlXYeUH-hXLyVukim-UBRUHhv2J9UZHKAALOKo,650
514
514
  django_smartbase_admin/static/sb_admin/src/js/sidebar.js,sha256=gx0MqnLWIRb26-GDvETQ7CE4DucP-L-9-hZ9-oFjuUw,1570
515
515
  django_smartbase_admin/static/sb_admin/src/js/sorting.js,sha256=-56L7MecDqzowVIwIPPTUd46tBR7OTD2DNXBij12TzY,1186
516
- django_smartbase_admin/static/sb_admin/src/js/table.js,sha256=Vqng7BRyQwok4UmaYpS0-lt2_RPlM7FNfvj3Ao_XB0w,14580
516
+ django_smartbase_admin/static/sb_admin/src/js/table.js,sha256=asizTRixJeSefvuXOcVMwLhlPkuOuEwnRuWn5VunL0c,14714
517
517
  django_smartbase_admin/static/sb_admin/src/js/table_modules/advanced_filter_module.js,sha256=dYiFFtwkgYyPn_IM8XLEGSDM9jQhtl53CuxJrwo0_U8,5520
518
518
  django_smartbase_admin/static/sb_admin/src/js/table_modules/base_module.js,sha256=M8xM8JGi6CwRwoC_0ADbOPNfg30Sqm8KlP52IZ4ItS8,557
519
519
  django_smartbase_admin/static/sb_admin/src/js/table_modules/column_display_module.js,sha256=hHu0voHiPM2QaPPF5X0YAR0-5T913VS7G_PW4eB3laQ,10655
520
520
  django_smartbase_admin/static/sb_admin/src/js/table_modules/data_edit_module.js,sha256=8tlH28XAkGttcgf2xEUgpgQ2XJ9biKAY3WgdSxO_F9M,902
521
521
  django_smartbase_admin/static/sb_admin/src/js/table_modules/detail_view_module.js,sha256=hs3uN_NRDnJQSUHUZJACR4L1Lw82HTsI-Kco9kdh-Ek,686
522
- django_smartbase_admin/static/sb_admin/src/js/table_modules/filter_module.js,sha256=BBbrdunWua28WKKlTDYh4h-OOtgaY75-_5sUe9qKjtQ,4486
522
+ django_smartbase_admin/static/sb_admin/src/js/table_modules/filter_module.js,sha256=kdsOX9ToIOQ3mZC6EmFwrWJRD-wMN5ipZSuuH8vViOk,4444
523
523
  django_smartbase_admin/static/sb_admin/src/js/table_modules/full_text_search_module.js,sha256=9ZfnZXvaTOphhRU0B7H0rsghUBWzTOSyVK1FZIj6bIE,573
524
524
  django_smartbase_admin/static/sb_admin/src/js/table_modules/header_tabs_module.js,sha256=zT2CYKfMSd0903ASUzIbT8HwTkF6id3w4j5IJpwONp8,2888
525
525
  django_smartbase_admin/static/sb_admin/src/js/table_modules/movable_columns_module.js,sha256=X0FQykK63v8vcE3-qZhkWZA2ajp8QTCLFv0PvkeLVvY,7694
@@ -527,7 +527,7 @@ django_smartbase_admin/static/sb_admin/src/js/table_modules/selection_module.js,
527
527
  django_smartbase_admin/static/sb_admin/src/js/table_modules/table_params_module.js,sha256=2-l4rsjDqaUZZzM7why-u21XbVNa9gFogehKTi8hIkE,11370
528
528
  django_smartbase_admin/static/sb_admin/src/js/table_modules/views_module.js,sha256=ZdirU9jt_aE_vkVXxMytZ3AaC0q6r57ECijdhV6j3-M,3393
529
529
  django_smartbase_admin/static/sb_admin/src/js/translations.js,sha256=GEizlr_D5yDj00i7jKENkWfDr6gZcg4RQ1Nek22WP4g,954
530
- django_smartbase_admin/static/sb_admin/src/js/tree_widget.js,sha256=VN5MOH-25skhMtPy_lwDqDYwTV9rg3S9ugOlymRxR-Q,16978
530
+ django_smartbase_admin/static/sb_admin/src/js/tree_widget.js,sha256=NHmGeDtPipZggb2DW0XqA5XHAHfZ7jn_h3ug3JJHjKE,17127
531
531
  django_smartbase_admin/static/sb_admin/src/js/utils.js,sha256=I6jvqqmgQVIL-VrWWAZsYSAThl3sThhaG4nxquyd4ic,4677
532
532
  django_smartbase_admin/templates/sb_admin/actions/change_form.html,sha256=Vqp9oZgwagz8bZw7UmsXf692cYLnGl5W-ujQp-aR2Jk,12734
533
533
  django_smartbase_admin/templates/sb_admin/actions/change_password.html,sha256=LhciaKCvlywKMJ6gY9JbEaTkOXjNSFO-mAnWIZfk6sA,3200
@@ -665,7 +665,7 @@ django_smartbase_admin/templates/sb_admin/widgets/text.html,sha256=piw2218tiWPfO
665
665
  django_smartbase_admin/templates/sb_admin/widgets/textarea.html,sha256=JZ4Bf6l49dg2VVC5McXtQRehOHmZid1eknUKc2oIDGU,257
666
666
  django_smartbase_admin/templates/sb_admin/widgets/time.html,sha256=piw2218tiWPfOwncIvSGAW14Gc5FIzkL_YllirK4yTs,160
667
667
  django_smartbase_admin/templates/sb_admin/widgets/toggle.html,sha256=z7E1re0gy2Adkbsvp_iYgZ6_48TmZDz5A0s_D9Zsi2w,289
668
- django_smartbase_admin/templates/sb_admin/widgets/tree_base.html,sha256=Y-0elDwwPWVPdGVjQm8xiqrxo4wVJGjqf-X-T8lJvEo,2573
668
+ django_smartbase_admin/templates/sb_admin/widgets/tree_base.html,sha256=V7C1cjEiaa6NCFw6O7Nq29MBkv3_AhwBdtCTW3M5pFM,2649
669
669
  django_smartbase_admin/templates/sb_admin/widgets/tree_select.html,sha256=FlUDS8ALj1nPsKTkyz9sMEugkl2RTvkUdN1VeL35ddc,1330
670
670
  django_smartbase_admin/templates/sb_admin/widgets/tree_select_inline.html,sha256=lJeWRAVZSDHjNphFVLTL-mABGBnplmzNXcbnk_iGhPo,933
671
671
  django_smartbase_admin/templates/sb_admin/widgets/url.html,sha256=piw2218tiWPfOwncIvSGAW14Gc5FIzkL_YllirK4yTs,160
@@ -673,13 +673,13 @@ django_smartbase_admin/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQ
673
673
  django_smartbase_admin/templatetags/base.py,sha256=XF1wUQxUjULXfdlV-PeHvITfbw65LTHjlDzRikJa_F4,1520
674
674
  django_smartbase_admin/templatetags/sb_admin_tags.py,sha256=rvJufjS0mhGj6Wl6P-iEoWGVx_dt96BZuZo1XzUZmIU,8210
675
675
  django_smartbase_admin/urls.py,sha256=Bjdewssljt0LIefjixBem9JN0kkghPvmrIETj3GdXbY,17
676
- django_smartbase_admin/utils.py,sha256=0SUIA-n6XiPeDH7PvdekV1xIKwUjvyPxaBPEKsZKXyM,2775
676
+ django_smartbase_admin/utils.py,sha256=4xOYZZCjYrJv59LcqocUapt9Bp9HtIN3zemI98Q4MAU,3176
677
677
  django_smartbase_admin/views/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
678
678
  django_smartbase_admin/views/dashboard_view.py,sha256=vtz5emYTQ5WDFeLA8HrcmjSOVdc0o2vYbjljbT67gvo,1495
679
679
  django_smartbase_admin/views/global_filter_view.py,sha256=eYo1moJGyi7jc2cPDA5ZBiEgA7Hmc-DxbQvbqUpDkg8,1127
680
680
  django_smartbase_admin/views/media_view.py,sha256=5BLWXuzynF7nM34t-mf2BQSRN5ojY8HxpLIqt7Jiq9g,292
681
681
  django_smartbase_admin/views/translations_view.py,sha256=tkShf5IWyPDjNhcPQsvh8WXs-EMRCfG_oTD9x-LP1No,20272
682
- django_smartbase_admin-0.2.95.dist-info/LICENSE.md,sha256=okRGMBOYvyhprt2eTpX_QXqpzC0MODF-U7zX-4fKPjQ,1078
683
- django_smartbase_admin-0.2.95.dist-info/METADATA,sha256=XclX86YcQ5pb_EYssaUmNYBIpGg5KlA5J_E_FpQzdls,996
684
- django_smartbase_admin-0.2.95.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
685
- django_smartbase_admin-0.2.95.dist-info/RECORD,,
682
+ django_smartbase_admin-0.2.98.dist-info/LICENSE.md,sha256=okRGMBOYvyhprt2eTpX_QXqpzC0MODF-U7zX-4fKPjQ,1078
683
+ django_smartbase_admin-0.2.98.dist-info/METADATA,sha256=KUYzvnlqfKETXDgWKtlGyiNvGILTBNcg0dBqc39B_sU,996
684
+ django_smartbase_admin-0.2.98.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
685
+ django_smartbase_admin-0.2.98.dist-info/RECORD,,