django-fast-treenode 1.1.2__py3-none-any.whl → 1.1.3__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- {django_fast_treenode-1.1.2.dist-info → django_fast_treenode-1.1.3.dist-info}/METADATA +6 -4
- {django_fast_treenode-1.1.2.dist-info → django_fast_treenode-1.1.3.dist-info}/RECORD +7 -7
- {django_fast_treenode-1.1.2.dist-info → django_fast_treenode-1.1.3.dist-info}/WHEEL +1 -1
- treenode/models.py +0 -1
- treenode/static/select2tree/select2tree.js +34 -24
- {django_fast_treenode-1.1.2.dist-info → django_fast_treenode-1.1.3.dist-info}/LICENSE +0 -0
- {django_fast_treenode-1.1.2.dist-info → django_fast_treenode-1.1.3.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: django-fast-treenode
|
3
|
-
Version: 1.1.
|
3
|
+
Version: 1.1.3
|
4
4
|
Summary: Application for supporting tree (hierarchical) data structure in Django projects
|
5
5
|
Home-page: https://github.com/TimurKady/fast-treenode
|
6
6
|
Author: Timur Kady
|
@@ -12,11 +12,13 @@ Classifier: Framework :: Django :: 3.0
|
|
12
12
|
Classifier: Intended Audience :: Developers
|
13
13
|
Classifier: License :: OSI Approved :: MIT License
|
14
14
|
Classifier: Operating System :: OS Independent
|
15
|
-
Classifier: Programming Language :: Python
|
16
15
|
Classifier: Programming Language :: Python :: 3
|
17
|
-
Classifier: Programming Language :: Python :: 3 :: Only
|
18
|
-
Classifier: Programming Language :: Python :: 3.8
|
19
16
|
Classifier: Programming Language :: Python :: 3.9
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
19
|
+
Classifier: Framework :: Django
|
20
|
+
Classifier: Framework :: Django :: 3.0
|
21
|
+
Classifier: Framework :: Django :: 4.0
|
20
22
|
Requires-Python: >=3.8
|
21
23
|
Description-Content-Type: text/markdown
|
22
24
|
License-File: LICENSE
|
@@ -5,7 +5,7 @@ treenode/compat.py,sha256=ujFPQL0j5qXC0clEDXU4EKRN0sgXNKeZrRBYnQ-qgCc,193
|
|
5
5
|
treenode/factory.py,sha256=jSKgWDDEyTfhr4042VIzmeeUZ4UuhAyeO-2j7BK4wCI,1942
|
6
6
|
treenode/forms.py,sha256=16XkxtVVxNCqLlLvankPVuFoWpOvFPW4UnRsQEjldso,939
|
7
7
|
treenode/managers.py,sha256=yqPHozxK-P9kUQ98xVVmc-rkNf9ON8ROAIJm_rUDOwk,2210
|
8
|
-
treenode/models.py,sha256=
|
8
|
+
treenode/models.py,sha256=TwAJgFAT61slbGqXWjGyKGyU2j9kQhapIe185wm-2lE,20769
|
9
9
|
treenode/tests.py,sha256=2uDafv3Ns6f7Vy1ekUtgYxCZEi1KRyesZDTAFhYcX-E,63
|
10
10
|
treenode/version.py,sha256=9d8boLVLA0TTCu5doEbpgUL3T-FjcNU-fvLyhw_CJyk,50
|
11
11
|
treenode/views.py,sha256=u0FhL7RT5byf5IlcnZEMrcH2TOnQkdfRQU2SjtA26m0,66
|
@@ -15,7 +15,7 @@ treenode/docs/Documentation,sha256=R3ZVxs_3MRqZDKLsXgxValiTHAYyNATI_1l0_hUdR3Y,1
|
|
15
15
|
treenode/static/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
16
16
|
treenode/static/select2tree/.gitkeep,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
17
17
|
treenode/static/select2tree/select2tree.css,sha256=HnKj-gTghI_GqdfEQNzPrEAaQvOJRlH1ScS7AGR-AHY,4234
|
18
|
-
treenode/static/select2tree/select2tree.js,sha256
|
18
|
+
treenode/static/select2tree/select2tree.js,sha256=-6uneUO7L1QQ2GUL0MlqZfahP-P89Dy3tLc-kpeCdyg,6295
|
19
19
|
treenode/static/treenode/.gitkeep,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
20
20
|
treenode/static/treenode/css/.gitkeep,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
|
21
21
|
treenode/static/treenode/css/treenode.css,sha256=a7PYJGVBz5tbMqHDRnWDvQisDB5q5PKMOup4AIaG2h0,1721
|
@@ -26,8 +26,8 @@ treenode/templates/widgets/.gitkeep,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLC
|
|
26
26
|
treenode/templates/widgets/attrs.html,sha256=hsfr8ZOSQS0zrH13AdPa79d1xer3FFw_IrMl0nf_NRQ,217
|
27
27
|
treenode/templates/widgets/options.html,sha256=_17HCTTTQfsu4fiONflDnbLCB-XICN491at_g-diXyU,288
|
28
28
|
treenode/templates/widgets/select2tree.html,sha256=oNiHiYaJpfHBRcQxHt7rIaoKlAYifoIzoMeN0VZHPjo,675
|
29
|
-
django_fast_treenode-1.1.
|
30
|
-
django_fast_treenode-1.1.
|
31
|
-
django_fast_treenode-1.1.
|
32
|
-
django_fast_treenode-1.1.
|
33
|
-
django_fast_treenode-1.1.
|
29
|
+
django_fast_treenode-1.1.3.dist-info/LICENSE,sha256=GiiEe4Y9oOCbn9eGuNew1mMYHU_bJWaCK9zOusnKvvU,1091
|
30
|
+
django_fast_treenode-1.1.3.dist-info/METADATA,sha256=56VD71x6zNwlj8mnLFvDWCe9sz_NA9evISCs8YArSPQ,17400
|
31
|
+
django_fast_treenode-1.1.3.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
32
|
+
django_fast_treenode-1.1.3.dist-info/top_level.txt,sha256=fmgxHbXyx1O2MPi_9kjx8aL9L-8TmV0gre4Go8XgqFk,9
|
33
|
+
django_fast_treenode-1.1.3.dist-info/RECORD,,
|
treenode/models.py
CHANGED
@@ -141,31 +141,41 @@ window.addEventListener("load", function() {
|
|
141
141
|
showHideSub(target.parentNode);
|
142
142
|
}
|
143
143
|
|
144
|
-
function
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
curEle = null;
|
151
|
-
if (pup) {
|
152
|
-
var pupEle = $options.find(".select2-results__option[data-val='" + pup + "']");
|
153
|
-
if (pupEle.length > 0) {
|
154
|
-
if (!pupEle.eq(0).hasClass("opened")) { // hide current node if any parent node is collapsed
|
155
|
-
$(ele).removeClass("showme");
|
156
|
-
shouldShow = false;
|
157
|
-
break;
|
158
|
-
}
|
159
|
-
curEle = pupEle[0];
|
160
|
-
}
|
161
|
-
}
|
162
|
-
} while (curEle);
|
163
|
-
if (shouldShow) $(ele).addClass("showme");
|
144
|
+
function escapeAttributeValue(value) {
|
145
|
+
if (!value.includes("\\'") && !value.includes('\\\\')) {
|
146
|
+
value = value.replace(/'/g, "\\'").replace(/\\/g, '\\\\');
|
147
|
+
}
|
148
|
+
return value;
|
149
|
+
}
|
164
150
|
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
151
|
+
|
152
|
+
|
153
|
+
function showHideSub(ele) {
|
154
|
+
var curEle = ele;
|
155
|
+
var $options = $(ele).parent(".select2-results__options");
|
156
|
+
var shouldShow = true;
|
157
|
+
do {
|
158
|
+
var pup = escapeAttributeValue($(curEle).attr("data-pup") || "");
|
159
|
+
curEle = null;
|
160
|
+
if (pup) {
|
161
|
+
var pupEle = $options.find(".select2-results__option[data-val='" + pup + "']");
|
162
|
+
if (pupEle.length > 0) {
|
163
|
+
if (!pupEle.eq(0).hasClass("opened")) {
|
164
|
+
$(ele).removeClass("showme");
|
165
|
+
shouldShow = false;
|
166
|
+
break;
|
167
|
+
}
|
168
|
+
curEle = pupEle[0];
|
169
|
+
}
|
170
|
+
}
|
171
|
+
} while (curEle);
|
172
|
+
if (shouldShow) $(ele).addClass("showme");
|
173
|
+
|
174
|
+
var val = escapeAttributeValue($(ele).attr("data-val") || "");
|
175
|
+
$options.find(".select2-results__option[data-pup='" + val + "']").each(function () {
|
176
|
+
showHideSub(this);
|
177
|
+
});
|
169
178
|
}
|
179
|
+
|
170
180
|
})(django.jQuery);
|
171
181
|
});
|
File without changes
|
File without changes
|