django-spire 0.22.2__py3-none-any.whl → 0.22.3__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_spire/consts.py +1 -1
- django_spire/knowledge/collection/querysets.py +11 -14
- django_spire/knowledge/collection/services/service.py +3 -0
- django_spire/knowledge/collection/services/tool_services.py +37 -0
- django_spire/knowledge/collection/services/transformation_service.py +2 -2
- django_spire/knowledge/collection/views/form_views.py +2 -2
- django_spire/knowledge/static/django_spire/knowledge/entry/version/js/editor.js +0 -1
- django_spire/knowledge/templates/django_spire/knowledge/collection/card/top_level_list_card.html +0 -1
- django_spire/knowledge/templates/django_spire/knowledge/collection/component/x_collection_navigation.html +0 -7
- django_spire/knowledge/templates/django_spire/knowledge/collection/form/form.html +0 -1
- django_spire/knowledge/templates/django_spire/knowledge/entry/version/container/editor_container.html +0 -4
- {django_spire-0.22.2.dist-info → django_spire-0.22.3.dist-info}/METADATA +1 -1
- {django_spire-0.22.2.dist-info → django_spire-0.22.3.dist-info}/RECORD +16 -15
- {django_spire-0.22.2.dist-info → django_spire-0.22.3.dist-info}/WHEEL +0 -0
- {django_spire-0.22.2.dist-info → django_spire-0.22.3.dist-info}/licenses/LICENSE.md +0 -0
- {django_spire-0.22.2.dist-info → django_spire-0.22.3.dist-info}/top_level.txt +0 -0
django_spire/consts.py
CHANGED
|
@@ -24,24 +24,21 @@ class CollectionQuerySet(HistoryQuerySet, OrderingQuerySetMixin):
|
|
|
24
24
|
def by_parent_id(self, parent_id: int) -> QuerySet[Collection]:
|
|
25
25
|
return self.filter(parent_id=parent_id)
|
|
26
26
|
|
|
27
|
+
def by_parent_ids(self, parent_ids: list[int]) -> QuerySet[Collection]:
|
|
28
|
+
return self.filter(parent_id__in=parent_ids)
|
|
29
|
+
|
|
27
30
|
def childless(self) -> QuerySet[Collection]:
|
|
28
31
|
return self.annotate(child_count=Count('child')).filter(child_count=0)
|
|
29
32
|
|
|
30
|
-
def
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
while current_level_ids:
|
|
35
|
-
children = self.filter(parent_id__in=current_level_ids)
|
|
36
|
-
child_ids = list(children.values_list('id', flat=True))
|
|
37
|
-
|
|
38
|
-
if not child_ids:
|
|
39
|
-
break
|
|
40
|
-
|
|
41
|
-
descendant_ids.update(child_ids)
|
|
42
|
-
current_level_ids = child_ids
|
|
33
|
+
def children(self, collection_id: int) -> QuerySet[Collection]:
|
|
34
|
+
return self.filter(
|
|
35
|
+
id__in=self.model.services.tool.get_children_ids(parent_id=collection_id)
|
|
36
|
+
)
|
|
43
37
|
|
|
44
|
-
|
|
38
|
+
def exclude_children(self, collection_id: int) -> QuerySet[Collection]:
|
|
39
|
+
return self.exclude(
|
|
40
|
+
id__in=self.model.services.tool.get_children_ids(parent_id=collection_id)
|
|
41
|
+
)
|
|
45
42
|
|
|
46
43
|
def parentless(self) -> QuerySet[Collection]:
|
|
47
44
|
return self.filter(parent_id__isnull=True)
|
|
@@ -11,6 +11,8 @@ from django_spire.knowledge.collection.services.ordering_service import \
|
|
|
11
11
|
from django_spire.knowledge.collection.services.processor_service import \
|
|
12
12
|
CollectionProcessorService
|
|
13
13
|
from django_spire.knowledge.collection.services.tag_service import CollectionTagService
|
|
14
|
+
from django_spire.knowledge.collection.services.tool_services import \
|
|
15
|
+
CollectionToolService
|
|
14
16
|
from django_spire.knowledge.collection.services.transformation_service import \
|
|
15
17
|
CollectionTransformationService
|
|
16
18
|
|
|
@@ -24,6 +26,7 @@ class CollectionService(BaseDjangoModelService['Collection']):
|
|
|
24
26
|
ordering = CollectionOrderingService()
|
|
25
27
|
processor = CollectionProcessorService()
|
|
26
28
|
tag = CollectionTagService()
|
|
29
|
+
tool = CollectionToolService()
|
|
27
30
|
transformation = CollectionTransformationService()
|
|
28
31
|
|
|
29
32
|
def save_model_obj(self, **field_data) -> tuple[Collection, bool]:
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from django_spire.contrib.service import BaseDjangoModelService
|
|
4
|
+
|
|
5
|
+
from typing import TYPE_CHECKING
|
|
6
|
+
|
|
7
|
+
if TYPE_CHECKING:
|
|
8
|
+
from django_spire.knowledge.collection.models import Collection
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class CollectionToolService(BaseDjangoModelService['Collection']):
|
|
12
|
+
obj: Collection
|
|
13
|
+
|
|
14
|
+
def get_children_ids(self, parent_id: int) -> set[int]:
|
|
15
|
+
descendant_ids = set()
|
|
16
|
+
current_level_ids = [parent_id]
|
|
17
|
+
|
|
18
|
+
while current_level_ids:
|
|
19
|
+
child_ids = self.obj_class.objects.by_parent_ids(
|
|
20
|
+
parent_ids=current_level_ids
|
|
21
|
+
).values_list('id', flat=True)
|
|
22
|
+
|
|
23
|
+
if not child_ids:
|
|
24
|
+
break
|
|
25
|
+
|
|
26
|
+
descendant_ids.update(child_ids)
|
|
27
|
+
current_level_ids = child_ids
|
|
28
|
+
|
|
29
|
+
return descendant_ids
|
|
30
|
+
|
|
31
|
+
def get_root_collection_pk(self) -> int:
|
|
32
|
+
collection = self.obj
|
|
33
|
+
|
|
34
|
+
while collection.parent_id:
|
|
35
|
+
collection = collection.parent
|
|
36
|
+
|
|
37
|
+
return collection.id
|
|
@@ -19,11 +19,11 @@ if TYPE_CHECKING:
|
|
|
19
19
|
class CollectionTransformationService(BaseDjangoModelService['Collection']):
|
|
20
20
|
obj: Collection
|
|
21
21
|
|
|
22
|
-
def to_hierarchy_json(self, request: WSGIRequest, parent_id: int
|
|
22
|
+
def to_hierarchy_json(self, request: WSGIRequest, parent_id: int) -> str:
|
|
23
23
|
collections = (
|
|
24
24
|
self.obj_class.objects
|
|
25
25
|
.active()
|
|
26
|
-
.
|
|
26
|
+
.children(collection_id=parent_id)
|
|
27
27
|
.request_user_has_access(request)
|
|
28
28
|
.select_related('parent')
|
|
29
29
|
)
|
|
@@ -38,7 +38,7 @@ def form_view(
|
|
|
38
38
|
.active()
|
|
39
39
|
.request_user_has_access(request)
|
|
40
40
|
.exclude(pk=collection.pk)
|
|
41
|
-
.exclude_children(
|
|
41
|
+
.exclude_children(collection_id=pk)
|
|
42
42
|
),
|
|
43
43
|
fields=['name']
|
|
44
44
|
)
|
|
@@ -66,7 +66,7 @@ def form_view(
|
|
|
66
66
|
if collection.parent_id:
|
|
67
67
|
return_url = reverse(
|
|
68
68
|
'django_spire:knowledge:collection:page:top_level',
|
|
69
|
-
kwargs={'pk': collection.
|
|
69
|
+
kwargs={'pk': collection.services.tool.get_root_collection_pk()}
|
|
70
70
|
)
|
|
71
71
|
else:
|
|
72
72
|
return_url = reverse('django_spire:knowledge:page:home')
|
|
@@ -75,7 +75,6 @@ function create_editorjs_instance({holder_id, update_url, initial_editor_blocks}
|
|
|
75
75
|
if (block_id) {
|
|
76
76
|
setTimeout(() => {
|
|
77
77
|
const element = document.querySelector(`[data-id="${block_id}"]`)
|
|
78
|
-
console.log('element', element)
|
|
79
78
|
if (element) {
|
|
80
79
|
element.scrollIntoView({behavior: 'smooth', block: 'center'})
|
|
81
80
|
element.style.transition = 'background-color 1s ease'
|
|
@@ -16,13 +16,6 @@
|
|
|
16
16
|
:class="{'ms-4': collection.parent.id !== -1}"
|
|
17
17
|
class="mb-1 collection"
|
|
18
18
|
>
|
|
19
|
-
<div x-data="{
|
|
20
|
-
init() {
|
|
21
|
-
console.log(collection)
|
|
22
|
-
}
|
|
23
|
-
}">
|
|
24
|
-
|
|
25
|
-
</div>
|
|
26
19
|
{% include 'django_spire/knowledge/sub_navigation/item/collection_sub_navigation_item.html' %}
|
|
27
20
|
|
|
28
21
|
<div x-show="is_expanded(collection.id)" class="my-1">
|
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
await this.collection.get()
|
|
12
12
|
this.collection.glue_fields.parent.choices = await this.collection_query_set.to_choices()
|
|
13
13
|
this.collection.glue_fields.parent.label = 'Parent Collection'
|
|
14
|
-
console.log(this.collection.parent)
|
|
15
14
|
|
|
16
15
|
if (!this.collection.parent) {
|
|
17
16
|
this.collection.parent = {{ collection_parent_pk|default:'null' }}
|
|
@@ -64,15 +64,11 @@
|
|
|
64
64
|
x-data="{
|
|
65
65
|
editor_element_id: 'knowledge-entry-version-editor',
|
|
66
66
|
init() {
|
|
67
|
-
console.log('Editor blocks:', {{ version_blocks }})
|
|
68
67
|
KNOWLEDGE_ENTRY_VERSION_EDITOR = create_editorjs_instance({
|
|
69
68
|
holder_id: this.editor_element_id,
|
|
70
69
|
initial_editor_blocks: {{ version_blocks }},
|
|
71
70
|
update_url: '{% url "django_spire:knowledge:entry:version:json:update_blocks" pk=entry.id %}'
|
|
72
71
|
})
|
|
73
|
-
console.log('Editor initialized:', KNOWLEDGE_ENTRY_VERSION_EDITOR)
|
|
74
|
-
console.log(KNOWLEDGE_ENTRY_VERSION_EDITOR)
|
|
75
|
-
|
|
76
72
|
}
|
|
77
73
|
|
|
78
74
|
}"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: django-spire
|
|
3
|
-
Version: 0.22.
|
|
3
|
+
Version: 0.22.3
|
|
4
4
|
Summary: A project for Django Spire
|
|
5
5
|
Author-email: Brayden Carlson <braydenc@stratusadv.com>, Nathan Johnson <nathanj@stratusadv.com>
|
|
6
6
|
License: Copyright (c) 2024 Stratus Advanced Technologies and Contributors.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
django_spire/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
2
|
django_spire/conf.py,sha256=c5Hs-7lk9T15254tOasiQ2ZTFLQIVJof9_QJDfm1PAI,933
|
|
3
|
-
django_spire/consts.py,sha256=
|
|
3
|
+
django_spire/consts.py,sha256=eJ7iYe078p7JYe0fEg6B3xuHt-HWjI4-tq6KzQLfKg8,171
|
|
4
4
|
django_spire/exceptions.py,sha256=L5ndRO5ftMmh0pHkO2z_NG3LSGZviJ-dDHNT73SzTNw,48
|
|
5
5
|
django_spire/settings.py,sha256=B4GPqBGt_dmkt0Ay0j-IP-SZ6mY44m2Ap5kVSON5YLA,1005
|
|
6
6
|
django_spire/urls.py,sha256=mKeZszb5U4iIGqddMb5Tt5fRC72U2wABEOi6mvOfEBU,656
|
|
@@ -833,7 +833,7 @@ django_spire/knowledge/collection/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeR
|
|
|
833
833
|
django_spire/knowledge/collection/admin.py,sha256=9OKEgiSDiSHX6ZwB11l6mCx-jdF4VKfOe-SwFBdjKK4,1370
|
|
834
834
|
django_spire/knowledge/collection/forms.py,sha256=7JovVxNzE67hSydDa-1JGK4U4zPyzOj605QyEl0JkP8,238
|
|
835
835
|
django_spire/knowledge/collection/models.py,sha256=69ol2B-ytH6mJ48afFywPhENQNnM37gAsX-Grjim-g4,2387
|
|
836
|
-
django_spire/knowledge/collection/querysets.py,sha256=
|
|
836
|
+
django_spire/knowledge/collection/querysets.py,sha256=JzrCudpAzO45cVt-sqdXva8LMJB5wiwSL1zS2eki47E,2485
|
|
837
837
|
django_spire/knowledge/collection/seeding/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
838
838
|
django_spire/knowledge/collection/seeding/seed.py,sha256=i4VEvScJvZ1SUV9ukKZp0qdh_owyLyVSHGgl8vIzhwQ,303
|
|
839
839
|
django_spire/knowledge/collection/seeding/seeder.py,sha256=Zgrl-S0iAwK6LU2pMmRIdr87kAvrPtQ7GLJlONUSBlM,1523
|
|
@@ -841,9 +841,10 @@ django_spire/knowledge/collection/services/__init__.py,sha256=47DEQpj8HBSa-_TImW
|
|
|
841
841
|
django_spire/knowledge/collection/services/factory_service.py,sha256=92DLZODSRPF-iA9r3Jgys2GzbC39KssGEk9eOJ5wZjs,1298
|
|
842
842
|
django_spire/knowledge/collection/services/ordering_service.py,sha256=vTkSdt1lVT4VxSK3GhZibj8FPDDy5butwPkVzqmm07g,1243
|
|
843
843
|
django_spire/knowledge/collection/services/processor_service.py,sha256=3ArKBndoL3HEvH_1EBqfiw7AnbFYZ0WmBgcPV8BHdLQ,911
|
|
844
|
-
django_spire/knowledge/collection/services/service.py,sha256=
|
|
844
|
+
django_spire/knowledge/collection/services/service.py,sha256=g2agKPcnoccjjAw0P5Sj9CVYOA6qU4vNZwn0g4hFvE4,1962
|
|
845
845
|
django_spire/knowledge/collection/services/tag_service.py,sha256=o1HnL0-du0XCGIl_8nMGMgW9AzEQE-AWbGOoBN_cQb0,1774
|
|
846
|
-
django_spire/knowledge/collection/services/
|
|
846
|
+
django_spire/knowledge/collection/services/tool_services.py,sha256=tnOL23zJ_x7vKBH4PtR7a0AzYnmfLxHcEpYHIWzu9Kc,984
|
|
847
|
+
django_spire/knowledge/collection/services/transformation_service.py,sha256=KDCLBSdT9sszjtwtDO2yWdT-iwGpxmCwhIRN6MvEvTU,3450
|
|
847
848
|
django_spire/knowledge/collection/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
848
849
|
django_spire/knowledge/collection/tests/factories.py,sha256=NUu4OliEZIQL9c05RPIPdzYP3Dtn1szLZxP4Wl-kX2w,429
|
|
849
850
|
django_spire/knowledge/collection/tests/test_services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -857,7 +858,7 @@ django_spire/knowledge/collection/urls/form_urls.py,sha256=yHU3sbaA3w-m9rVvon6nX
|
|
|
857
858
|
django_spire/knowledge/collection/urls/json_urls.py,sha256=XZp5wt8m9x38Uuy1dhegqZ4qlJLZK2EgJsLltx97o0Q,195
|
|
858
859
|
django_spire/knowledge/collection/urls/page_urls.py,sha256=M8zZJJzVmMx7QUc3uGIrjyb8-Kz00fz7u0mHYqFZf3M,280
|
|
859
860
|
django_spire/knowledge/collection/views/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
860
|
-
django_spire/knowledge/collection/views/form_views.py,sha256=
|
|
861
|
+
django_spire/knowledge/collection/views/form_views.py,sha256=jh9pV6SBF7gqflvFooKVU4EFS34eTqRK-Nt22iqAlRg,3038
|
|
861
862
|
django_spire/knowledge/collection/views/json_views.py,sha256=uzSD83O7p-L5Oh8jo_Ejh-4lbo5zXjLkZGe0cn6SXSw,1030
|
|
862
863
|
django_spire/knowledge/collection/views/page_views.py,sha256=jiKsIqi9pvSY5KbLLGDdTHSPHXmnd-7oyYXckF2ONh4,2045
|
|
863
864
|
django_spire/knowledge/entry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -974,15 +975,15 @@ django_spire/knowledge/seeding/seed.py,sha256=LRhVfPHiFluSLLtjSY44YM9Oo1Hvfs_U-k
|
|
|
974
975
|
django_spire/knowledge/static/django_spire/knowledge/collection/js/managers.js,sha256=1b0pRPYJvYjKKZB2wshdoseAUR3_Al-2qxFUWE5q-oo,4319
|
|
975
976
|
django_spire/knowledge/static/django_spire/knowledge/collection/js/x_component.js,sha256=avczuHac3i58k06wA-LPpgupedCYbuDVTjTYVjEho18,898
|
|
976
977
|
django_spire/knowledge/static/django_spire/knowledge/css/navigation_items.css,sha256=jhjW4fiQI13PUAkSupLrLn-Fu9nzAVqMezK8EkJnGZ8,178
|
|
977
|
-
django_spire/knowledge/static/django_spire/knowledge/entry/version/js/editor.js,sha256=
|
|
978
|
+
django_spire/knowledge/static/django_spire/knowledge/entry/version/js/editor.js,sha256=zDK9PNO7XR0j95I17uBmfguSF8LzYijx3irM2my3IqA,3798
|
|
978
979
|
django_spire/knowledge/static/django_spire/knowledge/entry/version/js/managers.js,sha256=q-HiSnOnMMomxU0EAWSbQO55HMVvb8wPxA0KCP3VyP4,2772
|
|
979
980
|
django_spire/knowledge/static/django_spire/knowledge/entry/version/js/null_paragraph.js,sha256=Bc0oslLdlLcncbcUklhU1RF4PGiByC-mH-ENq1S1Niw,211
|
|
980
981
|
django_spire/knowledge/templates/django_spire/knowledge/collection/card/form_card.html,sha256=Fm1PFgMJO0B1ji86pjeL_KbGkKq-ho7n6v9gtCODlzU,154
|
|
981
|
-
django_spire/knowledge/templates/django_spire/knowledge/collection/card/top_level_list_card.html,sha256=
|
|
982
|
-
django_spire/knowledge/templates/django_spire/knowledge/collection/component/x_collection_navigation.html,sha256=
|
|
982
|
+
django_spire/knowledge/templates/django_spire/knowledge/collection/card/top_level_list_card.html,sha256=RFcSfk37OpuyRTdb3UjQc6ntyE5Rt3_2BgLEoD1mI3Y,695
|
|
983
|
+
django_spire/knowledge/templates/django_spire/knowledge/collection/component/x_collection_navigation.html,sha256=3lHzZ1pD-SWVGnzquczsVaAswli8FM7PSQNiLmg0Pn4,2415
|
|
983
984
|
django_spire/knowledge/templates/django_spire/knowledge/collection/container/detail_container.html,sha256=0T1L7mRyAH-I04_8rmyL6ZbsT1TWcIGzZ-NnGPllRco,321
|
|
984
985
|
django_spire/knowledge/templates/django_spire/knowledge/collection/element/ellipsis_dropdown.html,sha256=o9cceexfwUSDtac4uhlUm4LimnBQrgTP6QPkpJF6DD0,1376
|
|
985
|
-
django_spire/knowledge/templates/django_spire/knowledge/collection/form/form.html,sha256=
|
|
986
|
+
django_spire/knowledge/templates/django_spire/knowledge/collection/form/form.html,sha256=o015wNWZCsdqafvdjzsdOS3xUo2UtkyHaXn9-2N2s4s,1854
|
|
986
987
|
django_spire/knowledge/templates/django_spire/knowledge/collection/item/collection_item.html,sha256=gaOqh1wxf5IcWdxWWiYyz6HWjoPyn6FohaTMIssJ67k,517
|
|
987
988
|
django_spire/knowledge/templates/django_spire/knowledge/collection/page/display_page.html,sha256=AzYod7og_yU_lfxWIRFC2R_ga_jwH_Cr4VE07sRlGT8,2400
|
|
988
989
|
django_spire/knowledge/templates/django_spire/knowledge/collection/page/form_page.html,sha256=eD190iYnmx-6u8Y0EAExDdilPtxTlS_ic6-WBfTtj2s,274
|
|
@@ -1000,7 +1001,7 @@ django_spire/knowledge/templates/django_spire/knowledge/entry/item/list_item.htm
|
|
|
1000
1001
|
django_spire/knowledge/templates/django_spire/knowledge/entry/modal/publish_confirm_modal.html,sha256=7SsTjvk_iOdBgnYy83pMBPIdbuvJadd4h5XI5mPos5o,724
|
|
1001
1002
|
django_spire/knowledge/templates/django_spire/knowledge/entry/page/form_page.html,sha256=EBfDjDBvo7IR6f5joTtZjzK5LtZb4rt0U1FO1HQNt88,291
|
|
1002
1003
|
django_spire/knowledge/templates/django_spire/knowledge/entry/page/import_form_page.html,sha256=TK8Bc7mUZwsmV1Xm9FPyWz7Hws68Ijy4c55orvNoOC4,308
|
|
1003
|
-
django_spire/knowledge/templates/django_spire/knowledge/entry/version/container/editor_container.html,sha256
|
|
1004
|
+
django_spire/knowledge/templates/django_spire/knowledge/entry/version/container/editor_container.html,sha256=-fPVVnCdDUMA0AoKjQ3bA7gRrbnggPRlRlPqYvgIoKA,3153
|
|
1004
1005
|
django_spire/knowledge/templates/django_spire/knowledge/entry/version/page/editor_page.html,sha256=Gc5uYGjYJR8nwaLa0hm-5GHO3ezI9CLO0H_OLp8EvdE,3092
|
|
1005
1006
|
django_spire/knowledge/templates/django_spire/knowledge/message/knowledge_message_intel.html,sha256=kOSsRJHkh8hFYp1k1Y0wc-wh75VVjdXldEKErkfANGY,855
|
|
1006
1007
|
django_spire/knowledge/templates/django_spire/knowledge/page/full_page.html,sha256=vz3WQ6SAL43QALRf0haaLfNkUfIQQemR0FAZQ2tznV4,1331
|
|
@@ -1161,8 +1162,8 @@ django_spire/theme/urls/page_urls.py,sha256=S8nkKkgbhG3XHI3uMUL-piOjXIrRkuY2UlM_
|
|
|
1161
1162
|
django_spire/theme/views/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1162
1163
|
django_spire/theme/views/json_views.py,sha256=W1khC2K_EMbEzAFmMxC_P76_MFnkRH4-eVdodrRfAhw,1904
|
|
1163
1164
|
django_spire/theme/views/page_views.py,sha256=pHr8iekjtR99xs7w1taj35HEo133Svq1dvDD0y0VL1c,3933
|
|
1164
|
-
django_spire-0.22.
|
|
1165
|
-
django_spire-0.22.
|
|
1166
|
-
django_spire-0.22.
|
|
1167
|
-
django_spire-0.22.
|
|
1168
|
-
django_spire-0.22.
|
|
1165
|
+
django_spire-0.22.3.dist-info/licenses/LICENSE.md,sha256=tlTbOtgKoy-xAQpUk9gPeh9O4oRXCOzoWdW3jJz0wnA,1091
|
|
1166
|
+
django_spire-0.22.3.dist-info/METADATA,sha256=Aa-oMM1yPLilHIiDXaOaoYe6FgpenWFtSxixuTcbQao,4967
|
|
1167
|
+
django_spire-0.22.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
1168
|
+
django_spire-0.22.3.dist-info/top_level.txt,sha256=xf3QV1e--ONkVpgMDQE9iqjQ1Vg4--_6C8wmO-KxPHQ,13
|
|
1169
|
+
django_spire-0.22.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|