Skip to content

admin

django_spire.knowledge.admin

Collection

Bases: HistoryModelMixin, OrderingModelMixin

parent = models.ForeignKey('self', on_delete=(models.CASCADE), related_name='children', related_query_name='child', null=True, blank=True) class-attribute instance-attribute

name = models.CharField(max_length=255) class-attribute instance-attribute

description = models.TextField() class-attribute instance-attribute

services = CollectionService() class-attribute instance-attribute

objects = CollectionQuerySet.as_manager() class-attribute instance-attribute

Meta

verbose_name = 'Collection' class-attribute instance-attribute
verbose_name_plural = 'Collections' class-attribute instance-attribute
db_table = 'django_spire_knowledge_collection' class-attribute instance-attribute
permissions = [('can_access_all_collections', 'Can Access All Collections'), ('can_change_collection_groups', 'Can Change Collection Groups')] class-attribute instance-attribute

__str__

Source code in django_spire/knowledge/collection/models.py
def __str__(self):
    return self.name

CollectionGroup

Bases: Model

collection = models.ForeignKey(Collection, on_delete=(models.CASCADE), related_name='groups', related_query_name='group') class-attribute instance-attribute

auth_group = models.ForeignKey(AuthGroup, on_delete=(models.CASCADE), related_name='collection_groups', related_query_name='collection_group') class-attribute instance-attribute

services = CollectionGroupService() class-attribute instance-attribute

CollectionAdmin

Bases: ModelAdmin

list_display = ['id', 'name', 'parent', 'is_deleted'] class-attribute instance-attribute

list_filter = ['is_deleted', 'is_active'] class-attribute instance-attribute

search_fields = ['id', 'name', 'description', 'parent__name'] class-attribute instance-attribute

ordering = ['name'] class-attribute instance-attribute

autocomplete_fields = ['parent'] class-attribute instance-attribute

CollectionGroupAdmin

Bases: ModelAdmin

list_display = ['id', 'collection', 'auth_group'] class-attribute instance-attribute

search_fields = ['id', 'collection__name', 'auth_group__name'] class-attribute instance-attribute

Entry

Bases: HistoryModelMixin, OrderingModelMixin

collection = models.ForeignKey(Collection, on_delete=(models.CASCADE), related_name='entries', related_query_name='entry') class-attribute instance-attribute

current_version = models.OneToOneField(EntryVersion, on_delete=(models.CASCADE), related_name='current_version', related_query_name='current_version', null=True, blank=True) class-attribute instance-attribute

name = models.CharField(max_length=255) class-attribute instance-attribute

objects = EntryQuerySet.as_manager() class-attribute instance-attribute

services = EntryService() class-attribute instance-attribute

Meta

verbose_name = 'Entry' class-attribute instance-attribute
verbose_name_plural = 'Entries' class-attribute instance-attribute
db_table = 'django_spire_knowledge_entry' class-attribute instance-attribute

__str__

Source code in django_spire/knowledge/entry/models.py
def __str__(self):
    return self.name

EntryAdmin

Bases: ModelAdmin

list_display = ['name', 'current_version_link', 'collection', 'is_deleted'] class-attribute instance-attribute

list_filter = ['is_deleted', 'is_active'] class-attribute instance-attribute

search_fields = ['name', 'collection__name'] class-attribute instance-attribute

ordering = ['name'] class-attribute instance-attribute

autocomplete_fields = ['collection', 'current_version'] class-attribute instance-attribute

Source code in django_spire/knowledge/entry/admin.py
def current_version_link(self, entry: Entry) -> str:
    url = (
        reverse('admin:django_spire_knowledge_entryversion_changelist')
        + '?'
        + urlencode({'entry_id': f'{entry.id}'})
    )

    return format_html(f'<a href="{url}">View Versions</a>')

EntryVersion

Bases: HistoryModelMixin

entry = models.ForeignKey('Entry', on_delete=(models.CASCADE), related_name='versions', related_query_name='version') class-attribute instance-attribute

author = models.ForeignKey(AuthUser, on_delete=(models.CASCADE), related_name='entry_versions', related_query_name='entry_version') class-attribute instance-attribute

published_datetime = models.DateTimeField(blank=True, null=True) class-attribute instance-attribute

last_edit_datetime = models.DateTimeField(default=now) class-attribute instance-attribute

status = models.CharField(max_length=32, choices=EntryVersionStatusChoices, default=(EntryVersionStatusChoices.DRAFT)) class-attribute instance-attribute

objects = EntryVersionQuerySet.as_manager() class-attribute instance-attribute

services = EntryVersionService() class-attribute instance-attribute

Meta

verbose_name = 'Entry Version' class-attribute instance-attribute
verbose_name_plural = 'Entry Versions' class-attribute instance-attribute
db_table = 'django_spire_knowledge_entry_version' class-attribute instance-attribute

is_published

Source code in django_spire/knowledge/entry/version/models.py
def is_published(self) -> bool:
    return self.status == EntryVersionStatusChoices.PUBLISHED

EntryVersionAdmin

Bases: ModelAdmin

list_display = ['entry__name', 'entry__collection', 'author', 'last_edit_datetime', 'published_datetime', 'is_deleted'] class-attribute instance-attribute

list_filter = ['status', 'is_deleted', 'is_active'] class-attribute instance-attribute

search_fields = ['entry__name', 'author__first_name', 'author__last_name'] class-attribute instance-attribute

ordering = ['-last_edit_datetime'] class-attribute instance-attribute

autocomplete_fields = ['entry', 'author'] class-attribute instance-attribute

EntryVersionBlock

Bases: HistoryModelMixin, OrderingModelMixin

version = models.ForeignKey(EntryVersion, on_delete=(models.CASCADE), related_name='blocks', related_query_name='block') class-attribute instance-attribute

type = models.CharField(max_length=32, choices=BlockTypeChoices, default=(BlockTypeChoices.TEXT)) class-attribute instance-attribute

objects = EntryVersionBlockQuerySet.as_manager() class-attribute instance-attribute

services = EntryVersionBlockService() class-attribute instance-attribute

block property writable

Meta

verbose_name = 'Block' class-attribute instance-attribute
verbose_name_plural = 'Blocks' class-attribute instance-attribute
db_table = 'django_spire_knowledge_entry_version_block' class-attribute instance-attribute

render_to_text

Source code in django_spire/knowledge/entry/version/block/models.py
def render_to_text(self) -> str:
    return self.block.render_to_text()

EntryVersionBlockAdmin

Bases: ModelAdmin

list_display = ['version__entry__name', 'type', '_block_data', 'is_deleted'] class-attribute instance-attribute

list_filter = ['type', 'is_deleted', 'is_active'] class-attribute instance-attribute

search_fields = ['version__entry__name'] class-attribute instance-attribute

ordering = ['-created_datetime'] class-attribute instance-attribute

autocomplete_fields = ['version'] class-attribute instance-attribute