django-smartbase-admin 1.0.9__py3-none-any.whl → 1.0.11__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.
- django_smartbase_admin/actions/admin_action_list.py +15 -15
- django_smartbase_admin/admin/admin_base.py +29 -4
- django_smartbase_admin/admin/widgets.py +3 -1
- django_smartbase_admin/engine/fake_inline.py +10 -0
- django_smartbase_admin/engine/field.py +13 -4
- django_smartbase_admin/static/sb_admin/dist/main.js +1 -1
- django_smartbase_admin/static/sb_admin/dist/main_style.css +1 -1
- django_smartbase_admin/static/sb_admin/images/file_types/file-doc.svg +11 -0
- django_smartbase_admin/static/sb_admin/images/file_types/file-xlsx.svg +11 -0
- django_smartbase_admin/static/sb_admin/src/js/main.js +29 -5
- django_smartbase_admin/templates/sb_admin/actions/change_form.html +90 -77
- django_smartbase_admin/templates/sb_admin/inlines/table_inline.html +1 -0
- django_smartbase_admin/templates/sb_admin/sb_admin_base.html +35 -3
- django_smartbase_admin/templates/sb_admin/widgets/clearable_file_input.html +2 -2
- django_smartbase_admin/templates/sb_admin/widgets/includes/related_item_buttons.html +2 -0
- django_smartbase_admin/templatetags/sb_admin_tags.py +40 -0
- {django_smartbase_admin-1.0.9.dist-info → django_smartbase_admin-1.0.11.dist-info}/METADATA +3 -1
- {django_smartbase_admin-1.0.9.dist-info → django_smartbase_admin-1.0.11.dist-info}/RECORD +20 -18
- {django_smartbase_admin-1.0.9.dist-info → django_smartbase_admin-1.0.11.dist-info}/LICENSE.md +0 -0
- {django_smartbase_admin-1.0.9.dist-info → django_smartbase_admin-1.0.11.dist-info}/WHEEL +0 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<svg viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg" width="64" height="64">
|
|
2
|
+
<mask id="mask0_772_21598" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="7" y="0" width="31" height="40">
|
|
3
|
+
<path d="M37.5 0H7.5V40H37.5V0Z" fill="white"/>
|
|
4
|
+
</mask>
|
|
5
|
+
<g mask="url(#mask0_772_21598)">
|
|
6
|
+
<path opacity="0.5" d="M7.5 4C7.5 1.79086 9.29085 0 11.5 0H24.5L37.5 13V36C37.5 38.2091 35.7092 40 33.5 40H11.5C9.29085 40 7.5 38.2091 7.5 36V4Z" fill="#3873FF"/>
|
|
7
|
+
<path d="M27.5 13H37.5L24.5 0V10C24.5 11.6568 25.8432 13 27.5 13Z" fill="#3873FF"/>
|
|
8
|
+
</g>
|
|
9
|
+
<path d="M28 19H4.5C3.39543 19 2.5 19.8954 2.5 21V33C2.5 34.1046 3.39543 35 4.5 35H28C29.1046 35 30 34.1046 30 33V21C30 19.8954 29.1046 19 28 19Z" fill="#3873FF"/>
|
|
10
|
+
<path d="M8.35159 30.5001H5.77344V23.2273H8.37289C9.10439 23.2273 9.73414 23.3729 10.2621 23.6641C10.79 23.953 11.196 24.3684 11.4801 24.9106C11.7666 25.4527 11.9098 26.1014 11.9098 26.8566C11.9098 27.6142 11.7666 28.2652 11.4801 28.8097C11.196 29.3542 10.7876 29.7721 10.255 30.0633C9.72469 30.3545 9.09019 30.5001 8.35159 30.5001ZM7.31109 29.1826H8.28764C8.74219 29.1826 9.12454 29.1021 9.43469 28.9411C9.74719 28.7778 9.98154 28.5256 10.1378 28.1847C10.2964 27.8415 10.3757 27.3987 10.3757 26.8566C10.3757 26.3192 10.2964 25.88 10.1378 25.5391C9.98154 25.1982 9.74834 24.9473 9.43824 24.7863C9.12809 24.6253 8.74574 24.5448 8.29119 24.5448H7.31109V29.1826ZM19.5321 26.8637C19.5321 27.6568 19.3817 28.3315 19.0811 28.8879C18.7828 29.4442 18.3756 29.8692 17.8595 30.1627C17.3457 30.4539 16.7681 30.5995 16.1265 30.5995C15.4802 30.5995 14.9002 30.4527 14.3865 30.1592C13.8727 29.8656 13.4667 29.4407 13.1684 28.8843C12.8701 28.328 12.721 27.6544 12.721 26.8637C12.721 26.0706 12.8701 25.3959 13.1684 24.8396C13.4667 24.2832 13.8727 23.8594 14.3865 23.5683C14.9002 23.2747 15.4802 23.1279 16.1265 23.1279C16.7681 23.1279 17.3457 23.2747 17.8595 23.5683C18.3756 23.8594 18.7828 24.2832 19.0811 24.8396C19.3817 25.3959 19.5321 26.0706 19.5321 26.8637ZM17.9731 26.8637C17.9731 26.35 17.8962 25.9167 17.7423 25.564C17.5908 25.2112 17.3765 24.9437 17.0995 24.7614C16.8225 24.5791 16.4982 24.488 16.1265 24.488C15.7548 24.488 15.4305 24.5791 15.1535 24.7614C14.8765 24.9437 14.6611 25.2112 14.5072 25.564C14.3557 25.9167 14.2799 26.35 14.2799 26.8637C14.2799 27.3774 14.3557 27.8107 14.5072 28.1634C14.6611 28.5162 14.8765 28.7837 15.1535 28.966C15.4305 29.1483 15.7548 29.2394 16.1265 29.2394C16.4982 29.2394 16.8225 29.1483 17.0995 28.966C17.3765 28.7837 17.5908 28.5162 17.7423 28.1634C17.8962 27.8107 17.9731 27.3774 17.9731 26.8637ZM26.888 25.7735H25.3326C25.3042 25.5723 25.2462 25.3935 25.1586 25.2373C25.071 25.0787 24.9585 24.9437 24.8212 24.8325C24.6839 24.7212 24.5253 24.636 24.3454 24.5768C24.1678 24.5176 23.9749 24.488 23.7665 24.488C23.3901 24.488 23.0622 24.5815 22.7829 24.7685C22.5035 24.9532 22.2869 25.2231 22.133 25.5782C21.9791 25.9309 21.9022 26.3594 21.9022 26.8637C21.9022 27.3822 21.9791 27.8178 22.133 28.1705C22.2893 28.5233 22.5071 28.7896 22.7864 28.9695C23.0658 29.1495 23.3889 29.2394 23.7559 29.2394C23.9619 29.2394 24.1524 29.2122 24.3276 29.1577C24.5052 29.1033 24.6626 29.024 24.7999 28.9198C24.9372 28.8133 25.0509 28.6843 25.1408 28.5327C25.2332 28.3812 25.2971 28.2084 25.3326 28.0143L26.888 28.0214C26.8477 28.3552 26.7471 28.6772 26.5861 28.9873C26.4275 29.2951 26.2133 29.5709 25.9434 29.8147C25.6759 30.0562 25.3563 30.2479 24.9846 30.39C24.6153 30.5297 24.1974 30.5995 23.731 30.5995C23.0824 30.5995 22.5023 30.4527 21.991 30.1592C21.482 29.8656 21.0795 29.4407 20.7836 28.8843C20.49 28.328 20.3432 27.6544 20.3432 26.8637C20.3432 26.0706 20.4924 25.3959 20.7907 24.8396C21.089 24.2832 21.4938 23.8594 22.0052 23.5683C22.5165 23.2747 23.0918 23.1279 23.731 23.1279C24.1524 23.1279 24.5431 23.1871 24.9029 23.3055C25.2651 23.4238 25.5859 23.5967 25.8653 23.8239C26.1446 24.0488 26.3719 24.3246 26.5471 24.6514C26.7246 24.9781 26.8383 25.3521 26.888 25.7735Z" fill="white"/>
|
|
11
|
+
</svg>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<svg viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg" width="64" height="64">
|
|
2
|
+
<mask id="mask0_772_25930" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="7" y="0" width="31" height="40">
|
|
3
|
+
<path d="M37.5 0H7.5V40H37.5V0Z" fill="white"/>
|
|
4
|
+
</mask>
|
|
5
|
+
<g mask="url(#mask0_772_25930)">
|
|
6
|
+
<path opacity="0.5" d="M7.5 4C7.5 1.79086 9.29085 0 11.5 0H24.5L37.5 13V36C37.5 38.2091 35.7092 40 33.5 40H11.5C9.29085 40 7.5 38.2091 7.5 36V4Z" fill="#0DB664"/>
|
|
7
|
+
<path d="M27.5 13H37.5L24.5 0V10C24.5 11.6568 25.8432 13 27.5 13Z" fill="#0DB664"/>
|
|
8
|
+
</g>
|
|
9
|
+
<path d="M29.5 19H2.5C1.39543 19 0.5 19.8954 0.5 21V33C0.5 34.1046 1.39543 35 2.5 35H29.5C30.6046 35 31.5 34.1046 31.5 33V21C31.5 19.8954 30.6046 19 29.5 19Z" fill="#0DB664"/>
|
|
10
|
+
<path d="M5.11191 23.2273L6.57851 25.706H6.63536L8.10906 23.2273H9.84556L7.62611 26.8637L9.89531 30.5001H8.12681L6.63536 28.0178H6.57851L5.08706 30.5001H3.32568L5.60196 26.8637L3.36829 23.2273H5.11191ZM10.6186 30.5001V23.2273H12.1562V29.2323H15.2741V30.5001H10.6186ZM20.0377 25.319C20.0093 25.0325 19.8874 24.81 19.672 24.6514C19.4565 24.4927 19.1642 24.4134 18.7948 24.4134C18.5439 24.4134 18.332 24.4489 18.1592 24.52C17.9864 24.5886 17.8538 24.6845 17.7615 24.8076C17.6715 24.9307 17.6265 25.0704 17.6265 25.2266C17.6218 25.3568 17.649 25.4705 17.7082 25.5675C17.7697 25.6646 17.8538 25.7487 17.9603 25.8197C18.0669 25.8883 18.19 25.9487 18.3296 26.0008C18.4693 26.0505 18.6185 26.0931 18.7771 26.1286L19.4305 26.2849C19.7477 26.3559 20.0389 26.4506 20.3041 26.569C20.5692 26.6873 20.7989 26.8329 20.993 27.0058C21.1871 27.1786 21.3375 27.3822 21.444 27.6166C21.5529 27.8509 21.6085 28.1196 21.6109 28.4227C21.6085 28.8677 21.4949 29.2536 21.27 29.5803C21.0474 29.9047 20.7255 30.1568 20.3041 30.3367C19.885 30.5143 19.3796 30.6031 18.7877 30.6031C18.2006 30.6031 17.6893 30.5131 17.2536 30.3332C16.8204 30.1532 16.4819 29.8869 16.238 29.5342C15.9965 29.1791 15.8699 28.7399 15.858 28.2167H17.346C17.3625 28.4605 17.4324 28.6641 17.5555 28.8275C17.681 28.9885 17.8479 29.1104 18.0562 29.1933C18.2669 29.2737 18.5048 29.314 18.77 29.314C19.0304 29.314 19.2565 29.2761 19.4482 29.2004C19.6424 29.1246 19.7927 29.0193 19.8992 28.8843C20.0058 28.7494 20.059 28.5943 20.059 28.4191C20.059 28.2558 20.0105 28.1184 19.9134 28.0072C19.8188 27.8959 19.6791 27.8012 19.4944 27.7231C19.3121 27.645 19.0884 27.5739 18.8232 27.51L18.0313 27.3112C17.4182 27.162 16.934 26.9288 16.5789 26.6116C16.2238 26.2943 16.0474 25.867 16.0498 25.3296C16.0474 24.8893 16.1646 24.5046 16.4014 24.1755C16.6405 23.8464 16.9684 23.5896 17.385 23.4049C17.8017 23.2202 18.2752 23.1279 18.8055 23.1279C19.3453 23.1279 19.8164 23.2202 20.2188 23.4049C20.6237 23.5896 20.9385 23.8464 21.1634 24.1755C21.3884 24.5046 21.5044 24.8857 21.5115 25.319H20.0377ZM23.8869 23.2273L25.3535 25.706H25.4104L26.8841 23.2273H28.6206L26.4011 26.8637L28.6703 30.5001H26.9018L25.4104 28.0178H25.3535L23.8621 30.5001H22.1007L24.377 26.8637L22.1433 23.2273H23.8869Z" fill="white"/>
|
|
11
|
+
</svg>
|
|
@@ -50,18 +50,26 @@ class Main {
|
|
|
50
50
|
if (e.target !== e.target.parentNode.firstChild) {
|
|
51
51
|
e.target.parentNode.insertBefore(e.target, e.target.parentNode.firstChild)
|
|
52
52
|
}
|
|
53
|
+
window.htmx.process(e.target)
|
|
53
54
|
})
|
|
54
55
|
document.addEventListener('openUrl', (e) => {
|
|
55
56
|
window.open(e.detail.url, e.detail?.target || '_blank')
|
|
56
57
|
})
|
|
57
58
|
|
|
58
59
|
if (window.htmx) {
|
|
59
|
-
|
|
60
|
+
const shouldProcessAfterSwap = (detail) => {
|
|
60
61
|
const requestEl = detail.detail.requestConfig.elt.closest('[hx-swap]')
|
|
61
62
|
if (requestEl && requestEl.getAttribute('hx-swap') === "none") {
|
|
62
63
|
// do not process afterSwap if none swap is performed
|
|
63
64
|
// this should prevent double processing of afterSwap for first oob-swapped element
|
|
64
65
|
// which in case of hx-swap=none is returned here in the detail.target
|
|
66
|
+
return false
|
|
67
|
+
}
|
|
68
|
+
return true
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
window.htmx.on("htmx:afterSwap", (detail) => {
|
|
72
|
+
if(!shouldProcessAfterSwap(detail)) {
|
|
65
73
|
return
|
|
66
74
|
}
|
|
67
75
|
this.initFileInputs(detail.target)
|
|
@@ -69,6 +77,12 @@ class Main {
|
|
|
69
77
|
this.initInputs(detail.target)
|
|
70
78
|
this.autocomplete.handleDynamiclyAddedAutocomplete(detail.target)
|
|
71
79
|
this.initInlines(detail.target)
|
|
80
|
+
})
|
|
81
|
+
|
|
82
|
+
window.htmx.on("htmx:afterSettle", (detail) => {
|
|
83
|
+
if(!shouldProcessAfterSwap(detail)) {
|
|
84
|
+
return
|
|
85
|
+
}
|
|
72
86
|
this.initCKEditor(detail.target)
|
|
73
87
|
})
|
|
74
88
|
}
|
|
@@ -279,14 +293,24 @@ class Main {
|
|
|
279
293
|
}
|
|
280
294
|
|
|
281
295
|
initCKEditor(target) {
|
|
296
|
+
if(!window.CKEDITOR) {
|
|
297
|
+
return
|
|
298
|
+
}
|
|
282
299
|
target = target || document
|
|
283
300
|
target.querySelectorAll('textarea[data-type="ckeditortype"]').forEach((textarea) => {
|
|
284
301
|
const id = textarea.id
|
|
285
|
-
if (!id)
|
|
286
|
-
|
|
287
|
-
|
|
302
|
+
if (!id) {
|
|
303
|
+
return
|
|
304
|
+
}
|
|
305
|
+
if(
|
|
306
|
+
textarea.getAttribute("data-processed") == "0" &&
|
|
307
|
+
textarea.id.indexOf("__prefix__") == -1
|
|
308
|
+
) {
|
|
309
|
+
if(window.CKEDITOR.instances[id]) {
|
|
310
|
+
window.CKEDITOR.instances[id].destroy(true)
|
|
311
|
+
}
|
|
312
|
+
window.CKEDITOR.replace(id, JSON.parse(textarea.getAttribute("data-config")))
|
|
288
313
|
}
|
|
289
|
-
window.CKEDITOR.replace(id)
|
|
290
314
|
})
|
|
291
315
|
}
|
|
292
316
|
|
|
@@ -28,91 +28,103 @@
|
|
|
28
28
|
{% get_tabular_context adminform inline_admin_formsets tabs_context as tabular_context %}
|
|
29
29
|
|
|
30
30
|
{% block header %}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
<
|
|
46
|
-
<
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
<
|
|
57
|
-
<
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
31
|
+
{% if sbadmin_is_modal %}
|
|
32
|
+
<div class="modal-header">
|
|
33
|
+
<h3 class="text-dark-900 text-18 font-semibold leading-28">
|
|
34
|
+
{% include 'sb_admin/includes/change_form_title.html' %}
|
|
35
|
+
</h3>
|
|
36
|
+
<svg data-bs-dismiss="modal" aria-label="Close"
|
|
37
|
+
class="w-24 h-24 absolute top-16 right-16 cursor-pointer transition-transform hover:rotate-90">
|
|
38
|
+
<use xlink:href="#Close-small"></use>
|
|
39
|
+
</svg>
|
|
40
|
+
</div>
|
|
41
|
+
{% else %}
|
|
42
|
+
<div class="detail-view-header py-16 md:pb-32 flex items-center max-xs:px-20 w-full max-w-1180 mx-auto">
|
|
43
|
+
{% if not is_popup and has_view_permission %}
|
|
44
|
+
{% url opts|admin_urlname:'changelist' as changelist_url %}
|
|
45
|
+
<a href="{% add_preserved_filters changelist_url %}" class="btn p-0 w-40 mr-16">
|
|
46
|
+
<svg class="w-20 h-20">
|
|
47
|
+
<use xlink:href="#Left-small"></use>
|
|
48
|
+
</svg>
|
|
49
|
+
</a>
|
|
50
|
+
{% endif %}
|
|
51
|
+
<h1 class="text-24 md:text-30 text-dark-900 font-bold font-heading line-clamp-1 first-letter:uppercase">
|
|
52
|
+
{% include 'sb_admin/includes/change_form_title.html' %}
|
|
53
|
+
</h1>
|
|
54
|
+
{% if change and not is_popup %}
|
|
55
|
+
<ul class="detail-view-actions flex ml-auto gap-8 md:gap-16">
|
|
56
|
+
<li class="relative md:hidden">
|
|
57
|
+
<button
|
|
58
|
+
data-bs-toggle="dropdown"
|
|
59
|
+
aria-expanded="false"
|
|
60
|
+
data-bs-popper-placement="bottom-end"
|
|
61
|
+
class="btn btn-empty btn-icon">
|
|
62
|
+
<svg class="w-16 h-16">
|
|
63
|
+
<use xlink:href="#More"></use>
|
|
64
|
+
</svg>
|
|
65
|
+
<span></span>
|
|
66
|
+
</button>
|
|
67
|
+
<div class="dropdown-menu w-248 max-h-432">
|
|
68
|
+
<ul>
|
|
69
|
+
{% block dropdown_actions %}
|
|
70
|
+
{% if detail_actions %}
|
|
71
|
+
{% for action in detail_actions %}
|
|
72
|
+
<li>
|
|
73
|
+
<a {% if action.open_in_modal %}{% include 'sb_admin/actions/partials/open_modal_attrs.html' %}{% endif %} href="{{ action.url }}" class="dropdown-menu-link {{ action.css_class|default_if_none:'' }}">
|
|
74
|
+
{{ action.title }}
|
|
75
|
+
</a>
|
|
76
|
+
</li>
|
|
77
|
+
{% endfor %}
|
|
78
|
+
{% endif %}
|
|
68
79
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
80
|
+
<li>
|
|
81
|
+
{% url opts|admin_urlname:'history' original.pk|admin_urlquote as history_url %}
|
|
82
|
+
<a href="{% add_preserved_filters history_url %}" class="dropdown-menu-link">{% trans "History" %}</a>
|
|
83
|
+
</li>
|
|
84
|
+
{% endblock %}
|
|
85
|
+
</ul>
|
|
86
|
+
</div>
|
|
87
|
+
</li>
|
|
77
88
|
|
|
78
89
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
90
|
+
{% block actions %}
|
|
91
|
+
<li class="max-sm:hidden">
|
|
92
|
+
{% url opts|admin_urlname:'history' original.pk|admin_urlquote as history_url %}
|
|
93
|
+
<a href="{% add_preserved_filters history_url %}" class="btn btn-empty">{% trans "History" %}</a>
|
|
94
|
+
</li>
|
|
84
95
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
96
|
+
{% if detail_actions %}
|
|
97
|
+
{% for action in detail_actions %}
|
|
98
|
+
<li class="max-sm:hidden">
|
|
99
|
+
<a {% if action.open_in_modal %}{% include 'sb_admin/actions/partials/open_modal_attrs.html' %}{% endif %} href="{{ action.url }}" class="btn btn-empty {{ action.css_class|default_if_none:'' }}">
|
|
100
|
+
{{ action.title }}
|
|
101
|
+
</a>
|
|
102
|
+
</li>
|
|
103
|
+
{% endfor %}
|
|
104
|
+
{% endif %}
|
|
105
|
+
{% endblock %}
|
|
106
|
+
{% if has_absolute_url %}
|
|
107
|
+
<li>
|
|
108
|
+
<a href="{{ absolute_url }}" class="btn btn-icon">
|
|
109
|
+
<svg class="w-20 h-20 md:mr-8">
|
|
110
|
+
<use xlink:href="#Preview-open"></use>
|
|
111
|
+
</svg>
|
|
112
|
+
<span>
|
|
113
|
+
{% trans "View on site" %}
|
|
114
|
+
</span>
|
|
115
|
+
</a>
|
|
116
|
+
</li>
|
|
93
117
|
{% endif %}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
<svg class="w-20 h-20 md:mr-8">
|
|
99
|
-
<use xlink:href="#Preview-open"></use>
|
|
100
|
-
</svg>
|
|
101
|
-
<span>
|
|
102
|
-
{% trans "View on site" %}
|
|
103
|
-
</span>
|
|
104
|
-
</a>
|
|
105
|
-
</li>
|
|
106
|
-
{% endif %}
|
|
107
|
-
</ul>
|
|
108
|
-
{% endif %}
|
|
109
|
-
</div>
|
|
118
|
+
</ul>
|
|
119
|
+
{% endif %}
|
|
120
|
+
</div>
|
|
121
|
+
{% endif %}
|
|
110
122
|
{% endblock %}
|
|
111
123
|
|
|
112
124
|
{% block form %}
|
|
113
125
|
<form {% if has_file_field %}enctype="multipart/form-data" {% endif %}action="{{ form_url }}" method="post"
|
|
114
|
-
id="{% if sbadmin_is_modal %}modal_{% endif %}{{ opts.model_name }}_form" class="detail-view-form flex-grow
|
|
115
|
-
<div
|
|
126
|
+
id="{% if sbadmin_is_modal %}modal_{% endif %}{{ opts.model_name }}_form" class="flex flex-col{% if sbadmin_is_modal %} min-h-0{% else %} detail-view-form flex-grow w-full max-w-1180 mx-auto{% endif %}" novalidate>
|
|
127
|
+
<div{% if sbadmin_is_modal %} class="modal-body"{% endif %}>
|
|
116
128
|
{% csrf_token %}
|
|
117
129
|
{% if errors %}
|
|
118
130
|
<div class="alert bg-negative-50 border border-negative-100 text-negative-900 mb-24">
|
|
@@ -199,7 +211,7 @@
|
|
|
199
211
|
{# TODO: check sticky bar in popups #}
|
|
200
212
|
{% endif %}
|
|
201
213
|
{% if sbadmin_is_modal %}
|
|
202
|
-
<div class="
|
|
214
|
+
<div class="modal-footer">
|
|
203
215
|
{% if original %}
|
|
204
216
|
{% url opts|admin_urlname:'change' original.pk|admin_urlquote as post_url %}
|
|
205
217
|
{% else %}
|
|
@@ -210,6 +222,7 @@
|
|
|
210
222
|
hx-post="{{ post_url }}"
|
|
211
223
|
hx-target="#sb-admin-modal .modal-content"
|
|
212
224
|
hx-swap="innerHTML"
|
|
225
|
+
hx-select="#content"
|
|
213
226
|
hx-encoding="multipart/form-data"
|
|
214
227
|
hx-vals='{
|
|
215
228
|
"sbadmin_is_modal": 1,
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
data-bs-target="#sb-admin-modal"
|
|
32
32
|
hx-get="{{ context_data.add_url }}?_popup=1&sbadmin_is_modal=1&sbadmin_reload_on_save=1&sbadmin_parent_instance_field=modal_{{ context_data.parent_data.sbadmin_parent_instance_field }}&sbadmin_parent_instance_pk={{ context_data.parent_data.sbadmin_parent_instance_pk }}&sbadmin_parent_instance_label={{ context_data.parent_data.sbadmin_parent_instance_label }}"
|
|
33
33
|
hx-target="#sb-admin-modal .modal-content"
|
|
34
|
+
hx-select="#content"
|
|
34
35
|
hx-swap="innerHTML"
|
|
35
36
|
>
|
|
36
37
|
<svg class="w-20 h-20 md:mr-8">
|
|
@@ -5,9 +5,41 @@
|
|
|
5
5
|
{% get_item request.META 'HTTP_SEC_FETCH_SITE' as sec_fetch_site %}
|
|
6
6
|
<div class="w-full h-full min-h-full{% if not sec_fetch_site or request.META.HTTP_SEC_FETCH_DEST == 'document' %} xl:pl-260{% endif %}">
|
|
7
7
|
{% include 'sb_admin/navigation.html' %}
|
|
8
|
-
<div id="content" class="min-h-screen sm:p-24
|
|
9
|
-
{%
|
|
10
|
-
|
|
8
|
+
<div id="content" class="relative flex flex-col{% if sbadmin_is_modal %} min-h-0 h-full{% else %} min-h-screen sm:p-24 {% block view_class %}{% endblock %}{% endif %}">
|
|
9
|
+
{% if sbadmin_is_modal %}
|
|
10
|
+
{# load media which are missing #}
|
|
11
|
+
<script>
|
|
12
|
+
(function(){
|
|
13
|
+
const mediaString = '{{ media|escapejs }}';
|
|
14
|
+
const mediaList = mediaString.split('\n');
|
|
15
|
+
const tmpEl = document.createElement('div');
|
|
16
|
+
function duplicateScript(script) {
|
|
17
|
+
const newScript = document.createElement('script');
|
|
18
|
+
for (let i = 0; i < script.attributes.length; i++) {
|
|
19
|
+
const attr = script.attributes[i];
|
|
20
|
+
newScript.setAttribute(attr.name, attr.value);
|
|
21
|
+
}
|
|
22
|
+
newScript.textContent = script.textContent;
|
|
23
|
+
newScript.async = false;
|
|
24
|
+
return newScript;
|
|
25
|
+
}
|
|
26
|
+
mediaList.forEach(media => {
|
|
27
|
+
tmpEl.innerHTML = media.trim();
|
|
28
|
+
const mediaEl = tmpEl.firstElementChild;
|
|
29
|
+
if(mediaEl.tagName === 'LINK' && !document.head.querySelector(`link[href="${mediaEl.getAttribute('href')}"]`)) {
|
|
30
|
+
document.head.appendChild(mediaEl);
|
|
31
|
+
return
|
|
32
|
+
}
|
|
33
|
+
if(mediaEl.tagName === 'SCRIPT' && !document.head.querySelector(`script[src="${mediaEl.getAttribute('src')}"]`)) {
|
|
34
|
+
document.head.appendChild(duplicateScript(mediaEl));
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}());
|
|
38
|
+
</script>
|
|
39
|
+
{% else %}
|
|
40
|
+
{% include "sb_admin/includes/loading.html" %}
|
|
41
|
+
{% include "sb_admin/includes/notifications.html" %}
|
|
42
|
+
{% endif %}
|
|
11
43
|
|
|
12
44
|
{% block content %}
|
|
13
45
|
{% endblock %}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
{% load i18n thumbnail %}
|
|
1
|
+
{% load i18n thumbnail sb_admin_tags %}
|
|
2
2
|
|
|
3
3
|
{% include 'sb_admin/widgets/includes/field_label.html' %}
|
|
4
4
|
<div class="relative input-file-wrapper">
|
|
5
5
|
<div class="input-file js-input-file{% if widget.is_initial %} filled{% endif %}">
|
|
6
6
|
<div class="flex items-center flex-shrink-0">
|
|
7
|
-
<img src="{% if widget.is_initial %}{%
|
|
7
|
+
<img src="{% if widget.is_initial %}{% get_file_preview_image widget.value %}{% endif %}" alt="" class="js-input-file-image object-cover w-64 h-64 rounded-xs border border-dark-300 mr-16" width="64" height="64">
|
|
8
8
|
<span class="w-40 h-40 flex items-center justify-center rounded-full mr-16 js-input-file-empty input-file-upload-icon">
|
|
9
9
|
<svg class="w-24 h-24">
|
|
10
10
|
<use xlink:href="#Upload"></use>
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
data-bs-toggle="modal"
|
|
14
14
|
data-bs-target="#sb-admin-modal"
|
|
15
15
|
hx-target="#sb-admin-modal .modal-content"
|
|
16
|
+
hx-select="#content"
|
|
16
17
|
hx-swap="innerHTML">
|
|
17
18
|
<svg class="w-20 h-20">
|
|
18
19
|
<use xlink:href="#Preview-open"></use>
|
|
@@ -27,6 +28,7 @@
|
|
|
27
28
|
data-bs-target="#sb-admin-modal"
|
|
28
29
|
hx-get="{{ widget.attrs.related_add_url }}?_popup=1&sbadmin_is_modal=1&sb_admin_source_field={{ widget.attrs.id }}"
|
|
29
30
|
hx-target="#sb-admin-modal .modal-content"
|
|
31
|
+
hx-select="#content"
|
|
30
32
|
hx-swap="innerHTML">
|
|
31
33
|
<svg class="w-20 h-20">
|
|
32
34
|
<use xlink:href="#Add-one"></use>
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import json
|
|
2
|
+
import os
|
|
2
3
|
|
|
3
4
|
from django import template
|
|
4
5
|
from django.contrib.admin.templatetags.admin_modify import submit_row
|
|
@@ -6,6 +7,7 @@ from django.contrib.admin.utils import lookup_field
|
|
|
6
7
|
from django.core.exceptions import ObjectDoesNotExist
|
|
7
8
|
from django.core.serializers.json import DjangoJSONEncoder
|
|
8
9
|
from django.template.defaultfilters import json_script
|
|
10
|
+
from django.templatetags.static import static
|
|
9
11
|
from django.utils.safestring import mark_safe
|
|
10
12
|
from django.utils.text import get_text_list
|
|
11
13
|
from django.utils.translation import gettext
|
|
@@ -239,3 +241,41 @@ def get_row_class(inline_admin_form):
|
|
|
239
241
|
@register.filter
|
|
240
242
|
def is_row_class_field(field):
|
|
241
243
|
return isinstance(field, dict) and field["name"] == ROW_CLASS_FIELD
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
@register.simple_tag
|
|
247
|
+
def get_file_extension(file):
|
|
248
|
+
if not file:
|
|
249
|
+
return ""
|
|
250
|
+
name, extension = os.path.splitext(file.name)
|
|
251
|
+
return extension.lower().replace(".", "")
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
@register.simple_tag
|
|
255
|
+
def get_file_preview_image(
|
|
256
|
+
file, file_extension=None, thumbnail_width=64, thumbnail_height=64
|
|
257
|
+
):
|
|
258
|
+
file_extension = file_extension or get_file_extension(file)
|
|
259
|
+
if file_extension in ["jpg", "png"]:
|
|
260
|
+
from easy_thumbnails.files import get_thumbnailer
|
|
261
|
+
|
|
262
|
+
thumbnailer = get_thumbnailer(file)
|
|
263
|
+
thumb = thumbnailer.get_thumbnail(
|
|
264
|
+
{
|
|
265
|
+
"size": (thumbnail_width, thumbnail_height),
|
|
266
|
+
"crop": True,
|
|
267
|
+
"replace_alpha": "#fff",
|
|
268
|
+
}
|
|
269
|
+
)
|
|
270
|
+
return thumb.url
|
|
271
|
+
if file_extension == "svg":
|
|
272
|
+
return file.url
|
|
273
|
+
if file_extension == "pdf":
|
|
274
|
+
# TODO change pdf file image
|
|
275
|
+
return static("sb_admin/images/file_types/file-doc.svg")
|
|
276
|
+
if file_extension in ["doc", "docx"]:
|
|
277
|
+
return static("sb_admin/images/file_types/file-doc.svg")
|
|
278
|
+
if file_extension in ["xls", "xlsx", "xlsm"]:
|
|
279
|
+
return static("sb_admin/images/file_types/file-xlsx.svg")
|
|
280
|
+
# TODO change default file image
|
|
281
|
+
return static("sb_admin/images/file_types/file-doc.svg")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: django-smartbase-admin
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.11
|
|
4
4
|
Summary:
|
|
5
5
|
Home-page: https://smartbase-sk.github.io/django-smartbase-admin-docs/
|
|
6
6
|
License: MIT
|
|
@@ -87,6 +87,8 @@ INSTALLED_APPS = [
|
|
|
87
87
|
"django_smartbase_admin",
|
|
88
88
|
"easy_thumbnails",
|
|
89
89
|
"widget_tweaks",
|
|
90
|
+
"ckeditor",
|
|
91
|
+
"ckeditor_uploader",
|
|
90
92
|
]
|
|
91
93
|
```
|
|
92
94
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
django_smartbase_admin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
2
|
django_smartbase_admin/actions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
|
-
django_smartbase_admin/actions/admin_action_list.py,sha256=
|
|
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=
|
|
6
|
+
django_smartbase_admin/admin/admin_base.py,sha256=VfS39Ns5wFPzLGJl02negFPL3YSk-r4QmQc64UHsgy0,47045
|
|
7
7
|
django_smartbase_admin/admin/site.py,sha256=VrJBhwgZsLa2GohvjnNL7m4dVR3S4Ou1V1UzfE1qOoQ,6577
|
|
8
|
-
django_smartbase_admin/admin/widgets.py,sha256=
|
|
8
|
+
django_smartbase_admin/admin/widgets.py,sha256=AGGhs2ioITpJAMoCfqRz_eaArMaxN0K-d8c16_p16h0,25192
|
|
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
|
|
@@ -16,8 +16,8 @@ django_smartbase_admin/engine/admin_view.py,sha256=9wGffahDR3IYmhL9ZbX8uitwGdXdw
|
|
|
16
16
|
django_smartbase_admin/engine/configuration.py,sha256=fg7CeG7Viv-QFx0S-uuk_P-_16Nl54gqj6-MXJUkK88,8422
|
|
17
17
|
django_smartbase_admin/engine/const.py,sha256=0Ialr6Er6ThnXzEI6fs9Bm3dTTdSnQ6oaSxXFO2mW1k,2513
|
|
18
18
|
django_smartbase_admin/engine/dashboard.py,sha256=d2DgixV1olL4jXFylcOfRsJZ4GfjqFAjYLgb_Wwyzas,24321
|
|
19
|
-
django_smartbase_admin/engine/fake_inline.py,sha256=
|
|
20
|
-
django_smartbase_admin/engine/field.py,sha256=
|
|
19
|
+
django_smartbase_admin/engine/fake_inline.py,sha256=tGLX3yHANYBsVPcDk6yQqn8RN-JGdaV-RdHcxh9-61w,6190
|
|
20
|
+
django_smartbase_admin/engine/field.py,sha256=AkcEs9hYqIJHy9cLgchWfC1wpWTRzFNm7byEIf0DuLU,10858
|
|
21
21
|
django_smartbase_admin/engine/field_formatter.py,sha256=Ma4GoO2DMgCtx-zy_hgyW_095GWwflMdn8uN4GUatgw,2087
|
|
22
22
|
django_smartbase_admin/engine/filter_widgets.py,sha256=jGx1LuuprJ0DxwxbuyN_Oym3HKsqSJjePzyapFBcedo,31881
|
|
23
23
|
django_smartbase_admin/engine/global_filter_form.py,sha256=jlj6e9VYWDPyUNjcgj3gTIkCZXO01NZOWAeU3jFtkoA,249
|
|
@@ -65,9 +65,9 @@ django_smartbase_admin/static/sb_admin/dist/calendar_style.js,sha256=47DEQpj8HBS
|
|
|
65
65
|
django_smartbase_admin/static/sb_admin/dist/chart.js,sha256=85FPvSgZ2k34GIAKx1tLWF2vRas2cKDFQYIqFAvPOQ8,204926
|
|
66
66
|
django_smartbase_admin/static/sb_admin/dist/chart.js.LICENSE.txt,sha256=m7M__mzLlrKDz-hky_AC848p_HzYWhziwCLIpXMsj4I,257
|
|
67
67
|
django_smartbase_admin/static/sb_admin/dist/confirmation_modal.js,sha256=glK-x4oxSAHqiabqXmNFE3FRtzMbpg7TgZiKcPle9_o,1745
|
|
68
|
-
django_smartbase_admin/static/sb_admin/dist/main.js,sha256=
|
|
68
|
+
django_smartbase_admin/static/sb_admin/dist/main.js,sha256=pdHQdS9p1YNVef8nVoX1Uxei41ASbfE7T98rs4WxHas,380935
|
|
69
69
|
django_smartbase_admin/static/sb_admin/dist/main.js.LICENSE.txt,sha256=Z8-1IrzhOFV3eE_WGR7SRfbzN9GRXsvfiU7_E_BkX-k,5600
|
|
70
|
-
django_smartbase_admin/static/sb_admin/dist/main_style.css,sha256=
|
|
70
|
+
django_smartbase_admin/static/sb_admin/dist/main_style.css,sha256=S9TKqG_ZUZK38V6-oI_nu6W052sUQAXZWdCC1qOEDI0,170366
|
|
71
71
|
django_smartbase_admin/static/sb_admin/dist/main_style.js,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
72
72
|
django_smartbase_admin/static/sb_admin/dist/table.js,sha256=6DdsmreFzAo7afRauwRJYAmEdz_fjnZ7Tc89zw0icto,592143
|
|
73
73
|
django_smartbase_admin/static/sb_admin/dist/table.js.LICENSE.txt,sha256=WOKSfEow5EUe0a78P0kcxdWcrQlqn2n6H8idNZqHVDk,462
|
|
@@ -93,6 +93,8 @@ django_smartbase_admin/static/sb_admin/favicon/site.webmanifest,sha256=rseZKIcc2
|
|
|
93
93
|
django_smartbase_admin/static/sb_admin/fonts/Inter-Ext.woff2,sha256=RWBvg3q4UwwB82Alku16EYRQvk7z9inKZE0FQwmeXGs,56968
|
|
94
94
|
django_smartbase_admin/static/sb_admin/fonts/Inter.woff2,sha256=RQ87pOR-4XS9lpKzlvJkuQfTfSUo9TkRdg89Dtt4X34,37924
|
|
95
95
|
django_smartbase_admin/static/sb_admin/images/blank.gif,sha256=sUQuhbA73K9m3FjHq7mHRd0mh9hjUL6aKYodk4KshJs,43
|
|
96
|
+
django_smartbase_admin/static/sb_admin/images/file_types/file-doc.svg,sha256=AwUKoZ1j66V8nxi8m85qU3BLmuZ9qU0Oz4_w5Dpsr0M,3937
|
|
97
|
+
django_smartbase_admin/static/sb_admin/images/file_types/file-xlsx.svg,sha256=NpMOnSVfgkRxCnebuEAzRKLsebMjvk2raLsYLpbbsWY,2969
|
|
96
98
|
django_smartbase_admin/static/sb_admin/images/flags/ad.png,sha256=nlhbYfV4PomULHpSZv4GY9O0_G0FDDlGhCH0xKzstP4,364
|
|
97
99
|
django_smartbase_admin/static/sb_admin/images/flags/ae.png,sha256=12NM04w21MricjYCKcEIMt1PBM7iSuKJ0Q0lqIvG_Ck,333
|
|
98
100
|
django_smartbase_admin/static/sb_admin/images/flags/af.png,sha256=J0Zb4befo-6a4YY0Lm3J0fc0a8wylV4iqa103EQrUGc,478
|
|
@@ -524,7 +526,7 @@ django_smartbase_admin/static/sb_admin/src/js/code.js,sha256=Q1jKpTsUZhxhaGDRrqH
|
|
|
524
526
|
django_smartbase_admin/static/sb_admin/src/js/confirmation_modal.js,sha256=9xycy0sYJfT0SxeDucbOmvg9gHSrBo3KngZjCAHkVMM,3610
|
|
525
527
|
django_smartbase_admin/static/sb_admin/src/js/datepicker.js,sha256=Nnc28kngTOnb8d2q6NOFGismUVp6l-sTVeBu3M1DgJY,6704
|
|
526
528
|
django_smartbase_admin/static/sb_admin/src/js/datepicker_plugins.js,sha256=d_EkPi0qv_74diVL4inJs8n1os4t1Ss6hp6-gY4_6hU,12368
|
|
527
|
-
django_smartbase_admin/static/sb_admin/src/js/main.js,sha256=
|
|
529
|
+
django_smartbase_admin/static/sb_admin/src/js/main.js,sha256=C8zeZsa5pJ8Csi2WHqV38JRtexJdDNE8F5R1ed8mr70,12504
|
|
528
530
|
django_smartbase_admin/static/sb_admin/src/js/multiselect.js,sha256=OlOTrBFR-Ds1as57G3al_3MJq5-_N77ytZngor1Q0UQ,4336
|
|
529
531
|
django_smartbase_admin/static/sb_admin/src/js/range.js,sha256=k_1EIK0R-mrg3ScopUm2UDuYeaCg_VLTjtdJoN-8MXc,1794
|
|
530
532
|
django_smartbase_admin/static/sb_admin/src/js/sb_ajax_params_tabulator_modifier.js,sha256=vJsAfRlXYeUH-hXLyVukim-UBRUHhv2J9UZHKAALOKo,650
|
|
@@ -546,7 +548,7 @@ django_smartbase_admin/static/sb_admin/src/js/table_modules/views_module.js,sha2
|
|
|
546
548
|
django_smartbase_admin/static/sb_admin/src/js/translations.js,sha256=GEizlr_D5yDj00i7jKENkWfDr6gZcg4RQ1Nek22WP4g,954
|
|
547
549
|
django_smartbase_admin/static/sb_admin/src/js/tree_widget.js,sha256=rL0znvFm85f74HzNwf9YmUpenV7WfEAr79dD9M4BdxA,18225
|
|
548
550
|
django_smartbase_admin/static/sb_admin/src/js/utils.js,sha256=QsT-fmobc0HGFLhK5ZZlHnxX4wtbJ7nLxkWOkSJuxjY,4812
|
|
549
|
-
django_smartbase_admin/templates/sb_admin/actions/change_form.html,sha256=
|
|
551
|
+
django_smartbase_admin/templates/sb_admin/actions/change_form.html,sha256=hPHI_4ZALn3EobeKtMOSIZ8O9mWJqbWZzjnpJadZTHU,16310
|
|
550
552
|
django_smartbase_admin/templates/sb_admin/actions/change_password.html,sha256=LhciaKCvlywKMJ6gY9JbEaTkOXjNSFO-mAnWIZfk6sA,3200
|
|
551
553
|
django_smartbase_admin/templates/sb_admin/actions/dashboard.html,sha256=KLy4Ix4Bs8u_-e2d6HT4Fz8MoAOsS2boCpD8qsnaHxU,279
|
|
552
554
|
django_smartbase_admin/templates/sb_admin/actions/delete_confirmation.html,sha256=4AeJLqGGPVBYXS9XQSNTnMvsT3I6QttyNLThE8gEZHE,3205
|
|
@@ -621,7 +623,7 @@ django_smartbase_admin/templates/sb_admin/includes/readonly_boolean_field.html,s
|
|
|
621
623
|
django_smartbase_admin/templates/sb_admin/includes/readonly_field.html,sha256=uGysgcSJJRIwG-AW9Vtfysulz4HOKUNH9Wx0f8sZkuE,291
|
|
622
624
|
django_smartbase_admin/templates/sb_admin/includes/table_inline_delete_button.html,sha256=aAkU6-T3tUrgshrZxny5QSqFUxPI59EKynxfKOMShNc,1170
|
|
623
625
|
django_smartbase_admin/templates/sb_admin/inlines/stacked_inline.html,sha256=L9PkC38cdgvB7YGeJhECmOalZQYtYMBdKUxNCUKScZM,7703
|
|
624
|
-
django_smartbase_admin/templates/sb_admin/inlines/table_inline.html,sha256=
|
|
626
|
+
django_smartbase_admin/templates/sb_admin/inlines/table_inline.html,sha256=MqIzDTLQ5ZWFP1BZeA4NwB_RF3A6pLsBuz8p6U8E1F8,17417
|
|
625
627
|
django_smartbase_admin/templates/sb_admin/inlines/table_inline_paginated.html,sha256=2I59KWM_7yvchNjlIWHaHklrklnNsJBwaLlp9mZUYfQ,3046
|
|
626
628
|
django_smartbase_admin/templates/sb_admin/integrations/cms/page_list.html,sha256=juoU5UaqPozIgRX5EJyWpm2-mb1hqM2pfBoePZ1Vs-I,18190
|
|
627
629
|
django_smartbase_admin/templates/sb_admin/integrations/cms/translations_status_row.html,sha256=Ppm6oEmNZkZC_XV5QNFbgccsBumB6LVy1e0Vk8dPMCM,308
|
|
@@ -638,7 +640,7 @@ django_smartbase_admin/templates/sb_admin/partials/messages/alert_success.html,s
|
|
|
638
640
|
django_smartbase_admin/templates/sb_admin/partials/messages/alert_warning.html,sha256=K_mFqhyb54olS2_0IyU8ZRb7_WqA0BMxdRZYCsgHTbg,323
|
|
639
641
|
django_smartbase_admin/templates/sb_admin/partials/modal/modal.html,sha256=SaJkpGaEa_hSSmfL4yqrXfMOf3rvNsF6G2vOX6ngpJw,1508
|
|
640
642
|
django_smartbase_admin/templates/sb_admin/partials/modal/modal_content.html,sha256=_1wrb2GsCvtwQPDl5CUVRgFdcsor25ceHi8UDsPAWt8,3251
|
|
641
|
-
django_smartbase_admin/templates/sb_admin/sb_admin_base.html,sha256=
|
|
643
|
+
django_smartbase_admin/templates/sb_admin/sb_admin_base.html,sha256=ycvhtBh8IfNnZBFH_YfIGJ68YknGfvVpPAeM01RXAZ8,2599
|
|
642
644
|
django_smartbase_admin/templates/sb_admin/sb_admin_base_no_sidebar.html,sha256=1lwpPQBxyLw3sn-W6h3ugjnsVsZ2kBck-ztfOFDb-6Q,4240
|
|
643
645
|
django_smartbase_admin/templates/sb_admin/sb_admin_js_trans.html,sha256=9oSkJo6Ngwr5T8zkpn6GLcdXNTMa1A7SmgjTlg9jlzY,926
|
|
644
646
|
django_smartbase_admin/templates/sb_admin/sprites/sb_admin.svg,sha256=kiy6b8oRg6kzYSZ0OZE-BmzR-KI5_WgrjyKj_KPuk8k,65451
|
|
@@ -653,7 +655,7 @@ django_smartbase_admin/templates/sb_admin/widgets/checkbox_group.html,sha256=IrW
|
|
|
653
655
|
django_smartbase_admin/templates/sb_admin/widgets/checkbox_option.html,sha256=vxY2AvB9YmVapEym1RDaRm074CZrKRxjWrfum5Xy9ys,51
|
|
654
656
|
django_smartbase_admin/templates/sb_admin/widgets/checkbox_select.html,sha256=95N6wH1fK-7e1w21vdNGi-8ZffF406v7vLh1mt-wgHY,1578
|
|
655
657
|
django_smartbase_admin/templates/sb_admin/widgets/ckeditor.html,sha256=-QoAaydUO0-QU6HmR8aQyMlsCA4IUmWboQ_DoKHYGBM,542
|
|
656
|
-
django_smartbase_admin/templates/sb_admin/widgets/clearable_file_input.html,sha256=
|
|
658
|
+
django_smartbase_admin/templates/sb_admin/widgets/clearable_file_input.html,sha256=VCgDFp8aAXVxWFR5tm_i7ebr1VqGqmfKbs3FewgqFaI,2328
|
|
657
659
|
django_smartbase_admin/templates/sb_admin/widgets/code.html,sha256=SQANQDS7cnjXcIVFKFQ-BpwDm0LVlfmu226TEZX3pvA,345
|
|
658
660
|
django_smartbase_admin/templates/sb_admin/widgets/color_field.html,sha256=dkFtiBbU6wrzVpcS8DxIK_G682zwNoqwVo19zTx4rwM,1300
|
|
659
661
|
django_smartbase_admin/templates/sb_admin/widgets/date.html,sha256=84gwSiUWb1wp_4lV25gt5e6MaXtgo4q0fA29ny7jmiQ,432
|
|
@@ -665,7 +667,7 @@ django_smartbase_admin/templates/sb_admin/widgets/hidden.html,sha256=NGn3jCAoRjA
|
|
|
665
667
|
django_smartbase_admin/templates/sb_admin/widgets/html_read_only.html,sha256=GBg8quVgHSJqNxRzkm56YZ4isWLzd1Wlz4CRmukz8i0,18
|
|
666
668
|
django_smartbase_admin/templates/sb_admin/widgets/includes/field_label.html,sha256=1TdNDxKXM5wScPQxgvRy0ikVsmj0GTJi2YPM8UlrWTQ,148
|
|
667
669
|
django_smartbase_admin/templates/sb_admin/widgets/includes/help_text.html,sha256=QXYllkl2cmu7tLkWCgiEJis7cYzi9qzqFle2gK_GJXY,148
|
|
668
|
-
django_smartbase_admin/templates/sb_admin/widgets/includes/related_item_buttons.html,sha256=
|
|
670
|
+
django_smartbase_admin/templates/sb_admin/widgets/includes/related_item_buttons.html,sha256=3UCOmZ4-sfyQpZylS3yLvXWh89w8-lpUw8azrzapTRc,1796
|
|
669
671
|
django_smartbase_admin/templates/sb_admin/widgets/includes/simple_field_label.html,sha256=P6XBwmJmcQbb1YhKnEB6wnfP2cN59T8U0GnUt5s_oWo,443
|
|
670
672
|
django_smartbase_admin/templates/sb_admin/widgets/input.html,sha256=S-ClLUAP-ZdYxv77KQcBWD2JcrKDEyxHuNPPRhfAywk,185
|
|
671
673
|
django_smartbase_admin/templates/sb_admin/widgets/input_option.html,sha256=6If56Z3ifRFpfpu0ukcs_RINx0goc6SjFJanAH3Wey8,209
|
|
@@ -691,7 +693,7 @@ django_smartbase_admin/templates/sb_admin/widgets/tree_select_inline.html,sha256
|
|
|
691
693
|
django_smartbase_admin/templates/sb_admin/widgets/url.html,sha256=piw2218tiWPfOwncIvSGAW14Gc5FIzkL_YllirK4yTs,160
|
|
692
694
|
django_smartbase_admin/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
693
695
|
django_smartbase_admin/templatetags/base.py,sha256=XF1wUQxUjULXfdlV-PeHvITfbw65LTHjlDzRikJa_F4,1520
|
|
694
|
-
django_smartbase_admin/templatetags/sb_admin_tags.py,sha256=
|
|
696
|
+
django_smartbase_admin/templatetags/sb_admin_tags.py,sha256=w6AzNaVoVNybPBk9_x10lJgMbWTcuMoIYx7pk0Cpkwc,9532
|
|
695
697
|
django_smartbase_admin/urls.py,sha256=Bjdewssljt0LIefjixBem9JN0kkghPvmrIETj3GdXbY,17
|
|
696
698
|
django_smartbase_admin/utils.py,sha256=P8H2PbaHnF47eRkfMJXDZMkJwcLVZHLfD5YZIHndwUU,3385
|
|
697
699
|
django_smartbase_admin/views/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -699,7 +701,7 @@ django_smartbase_admin/views/dashboard_view.py,sha256=Rgdq3r3JoAGfi2oUC1N_8ZE5KX
|
|
|
699
701
|
django_smartbase_admin/views/global_filter_view.py,sha256=eYo1moJGyi7jc2cPDA5ZBiEgA7Hmc-DxbQvbqUpDkg8,1127
|
|
700
702
|
django_smartbase_admin/views/media_view.py,sha256=5BLWXuzynF7nM34t-mf2BQSRN5ojY8HxpLIqt7Jiq9g,292
|
|
701
703
|
django_smartbase_admin/views/translations_view.py,sha256=JlAE9EPrTmbEVXqX7r0NjdbEv0c9BK3YDj_BYCIPPck,20351
|
|
702
|
-
django_smartbase_admin-1.0.
|
|
703
|
-
django_smartbase_admin-1.0.
|
|
704
|
-
django_smartbase_admin-1.0.
|
|
705
|
-
django_smartbase_admin-1.0.
|
|
704
|
+
django_smartbase_admin-1.0.11.dist-info/LICENSE.md,sha256=okRGMBOYvyhprt2eTpX_QXqpzC0MODF-U7zX-4fKPjQ,1078
|
|
705
|
+
django_smartbase_admin-1.0.11.dist-info/METADATA,sha256=f3ghxrYwFC_aedN-WfWu7hYvqInG_CWPKSP9TYCFZSU,5375
|
|
706
|
+
django_smartbase_admin-1.0.11.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
|
707
|
+
django_smartbase_admin-1.0.11.dist-info/RECORD,,
|
{django_smartbase_admin-1.0.9.dist-info → django_smartbase_admin-1.0.11.dist-info}/LICENSE.md
RENAMED
|
File without changes
|
|
File without changes
|