Bases: BaseDjangoModelService['Entry']
Source code in django_spire/contrib/constructor/constructor.py
| def __init__(self, obj: Any = None):
self._obj_type_name: str = str(
list(self.__class__.__annotations__.values())[0]
).split('.')[-1]
if obj is None:
return
self._obj_mro_type_names = [cls.__name__ for cls in obj.__class__.__mro__]
if not self._obj_type_name in self._obj_mro_type_names:
raise ConstructorException(
f'{self.__class__.__name__} was instantiated with obj type "{obj.__class__.__name__}" and failed as it was expecting "{self._obj_type_name}".'
)
self._obj_type: type[TypeAny] = obj.__class__
if self._obj_type is None or self._obj_type is ...:
raise ConstructorException(
f'{self.__class__.__name__} top class attribute must have an annotated type.')
self.obj: TypeAny = obj
if ABC not in self.__class__.__bases__:
if not self._obj_is_valid:
raise ConstructorException(f'{self._obj_type_name} failed to validate on {self.__class__.__name__}')
self.__post_init__()
|
queryset_to_navigation_list
staticmethod
Source code in django_spire/knowledge/entry/services/transformation_services.py
| @staticmethod
def queryset_to_navigation_list(queryset: QuerySet[Entry]) -> list[dict[str, str]]:
json_list = []
for entry in queryset:
json_list.append(entry.services.transformation.to_dict())
return json_list
|
to_dict
Source code in django_spire/knowledge/entry/services/transformation_services.py
| def to_dict(self):
site = Site.objects.get_current() if not settings.DEBUG else ''
current_version = self.obj.current_version
return {
'entry_id': self.obj.pk,
'name': self.obj.name,
'version_id': current_version.id,
'author': current_version.author.get_full_name(),
'last_edit_datetime': (
current_version.last_edit_datetime.strftime('%Y-%m-%d')
if current_version.last_edit_datetime else ''
),
'publish_datetime': (
current_version.published_datetime.strftime('%Y-%m-%d')
if current_version.published_datetime else ''
),
'status': current_version.status,
'delete_url': f'''
{site}{
reverse(
'django_spire:knowledge:entry:page:delete',
kwargs={'pk': self.obj.pk},
)
}
''',
'edit_url': f'''
{site}{
reverse(
'django_spire:knowledge:entry:form:update',
kwargs={
'pk': self.obj.pk,
'collection_pk': self.obj.collection.pk
},
)
}
''',
'view_url': f'''
{site}{
reverse(
'django_spire:knowledge:entry:version:page:detail',
kwargs={'pk': current_version.pk},
)
}
''',
'edit_version_url': f'''
{site}{
reverse(
'django_spire:knowledge:entry:version:form:update',
kwargs={'pk': current_version.pk},
)
}
'''
}
|