Bases: BaseDjangoModelService['Entry']
Source code in django_spire/contrib/constructor/constructor.py
| def __init__(self, obj: Any = None):
self._obj_type_name: str = str(
next(iter(self.__class__.__annotations__.values()))
).split('.')[-1]
if obj is None:
return
self._obj_mro_type_names = [cls.__name__ for cls in obj.__class__.__mro__]
if self._obj_type_name not in self._obj_mro_type_names:
message = f'{self.__class__.__name__} was instantiated with obj type "{obj.__class__.__name__}" and failed as it was expecting "{self._obj_type_name}".'
raise ConstructorError(message)
self._obj_type: type[TypeAny] = obj.__class__
if self._obj_type is None or self._obj_type is ...:
message = f'{self.__class__.__name__} top class attribute must have an annotated type.'
raise ConstructorError(message)
self.obj: TypeAny = obj
if ABC not in self.__class__.__bases__:
if not self._obj_is_valid:
message = f'{self._obj_type_name} failed to validate on {self.__class__.__name__}'
raise ConstructorError(message)
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]]:
return [entry.services.transformation.to_dict() for entry in queryset]
|
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:editor',
kwargs={'pk': current_version.pk},
)
}
""",
'edit_version_url': f"""
{site}{
reverse(
'django_spire:knowledge:entry:version:page:editor',
kwargs={'pk': current_version.pk},
)
}?view_mode=edit
"""
}
|