django-fast-treenode 1.1.2__tar.gz → 1.1.3__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. {django-fast-treenode-1.1.2/django_fast_treenode.egg-info → django_fast_treenode-1.1.3}/PKG-INFO +6 -4
  2. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3/django_fast_treenode.egg-info}/PKG-INFO +6 -4
  3. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/setup.cfg +6 -4
  4. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/treenode/models.py +0 -1
  5. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/treenode/static/select2tree/select2tree.js +34 -24
  6. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/LICENSE +0 -0
  7. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/MANIFEST.in +0 -0
  8. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/README.md +0 -0
  9. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/django_fast_treenode.egg-info/SOURCES.txt +0 -0
  10. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/django_fast_treenode.egg-info/dependency_links.txt +0 -0
  11. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/django_fast_treenode.egg-info/requires.txt +0 -0
  12. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/django_fast_treenode.egg-info/top_level.txt +0 -0
  13. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/pyproject.toml +0 -0
  14. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/setup.py +0 -0
  15. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/treenode/__init__.py +0 -0
  16. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/treenode/admin.py +0 -0
  17. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/treenode/apps.py +0 -0
  18. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/treenode/compat.py +0 -0
  19. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/treenode/docs/.gitkeep +0 -0
  20. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/treenode/docs/Documentation +0 -0
  21. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/treenode/factory.py +0 -0
  22. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/treenode/forms.py +0 -0
  23. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/treenode/managers.py +0 -0
  24. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/treenode/static/.gitkeep +0 -0
  25. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/treenode/static/select2tree/.gitkeep +0 -0
  26. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/treenode/static/select2tree/select2tree.css +0 -0
  27. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/treenode/static/treenode/.gitkeep +0 -0
  28. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/treenode/static/treenode/css/.gitkeep +0 -0
  29. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/treenode/static/treenode/css/treenode.css +0 -0
  30. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/treenode/static/treenode/js/.gitkeep +0 -0
  31. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/treenode/static/treenode/js/treenode.js +0 -0
  32. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/treenode/templates/.gitkeep +0 -0
  33. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/treenode/templates/widgets/.gitkeep +0 -0
  34. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/treenode/templates/widgets/attrs.html +0 -0
  35. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/treenode/templates/widgets/options.html +0 -0
  36. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/treenode/templates/widgets/select2tree.html +0 -0
  37. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/treenode/tests.py +0 -0
  38. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/treenode/version.py +0 -0
  39. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/treenode/views.py +0 -0
  40. {django-fast-treenode-1.1.2 → django_fast_treenode-1.1.3}/treenode/widgets.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: django-fast-treenode
3
- Version: 1.1.2
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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: django-fast-treenode
3
- Version: 1.1.2
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
@@ -4,7 +4,7 @@ tag_date = 0
4
4
 
5
5
  [metadata]
6
6
  name = django-fast-treenode
7
- version = 1.1.2
7
+ version = 1.1.3
8
8
  description = Application for supporting tree (hierarchical) data structure in Django projects
9
9
  long_description_content_type = text/markdown
10
10
  long_description = file: README.md
@@ -19,11 +19,13 @@ classifiers =
19
19
  Intended Audience :: Developers
20
20
  License :: OSI Approved :: MIT License
21
21
  Operating System :: OS Independent
22
- Programming Language :: Python
23
22
  Programming Language :: Python :: 3
24
- Programming Language :: Python :: 3 :: Only
25
- Programming Language :: Python :: 3.8
26
23
  Programming Language :: Python :: 3.9
24
+ Programming Language :: Python :: 3.10
25
+ Programming Language :: Python :: 3.11
26
+ Framework :: Django
27
+ Framework :: Django :: 3.0
28
+ Framework :: Django :: 4.0
27
29
 
28
30
  [options]
29
31
  include_package_data = true
@@ -143,7 +143,6 @@ class TreeNodeModel(with_metaclass(TreeFactory, models.Model)):
143
143
  for c in children
144
144
  ]
145
145
  cls.closure_model.objects.bulk_create(objects)
146
- cls._update_orders()
147
146
 
148
147
  @classmethod
149
148
  def delete_tree(cls):
@@ -141,31 +141,41 @@ window.addEventListener("load", function() {
141
141
  showHideSub(target.parentNode);
142
142
  }
143
143
 
144
- function showHideSub(ele) {
145
- var curEle = ele;
146
- var $options = $(ele).parent(".select2-results__options");
147
- var shouldShow = true;
148
- do {
149
- var pup = ($(curEle).attr("data-pup") || "").replace(/'/g, "\\'");
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
- var val = ($(ele).attr("data-val") || "").replace(/'/g, "\\'");
166
- $options.find(".select2-results__option[data-pup='" + val + "']").each(function () {
167
- showHideSub(this);
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
  });