Gallery-Archivist/backend/apps/archive/admin.py

91 lines
2.5 KiB
Python

from django.contrib import admin
from django.utils.dateformat import format
from django.utils.timezone import localtime
from .models import SourceSiteModel, CreatorModel, DescriptionModel, TagModel, PostModel
class SourceSiteAdmin(admin.ModelAdmin):
list_display = ["slug", "name", "date_last_import", "date_created"]
admin.site.register(SourceSiteModel, SourceSiteAdmin)
class DescriptionAdmin(admin.ModelAdmin):
list_display = ["hash", "description_at", "date_modified", "date_created"]
def description_at(self, obj):
if len(str(obj.content)) >= 80:
return obj.content[:77] + "..."
else:
return obj.content
description_at.short_description = "Description"
admin.site.register(DescriptionModel, DescriptionAdmin)
class TagAdmin(admin.ModelAdmin):
list_display = ["slug", "name", "date_modified", "date_created"]
admin.site.register(TagModel, TagAdmin)
class CreatorAdmin(admin.ModelAdmin):
list_display = [
"slug",
"name",
"source_site",
"date_created",
"date_last_import",
]
admin.site.register(CreatorModel, CreatorAdmin)
class PostAdmin(admin.ModelAdmin):
list_display = [
"post_id",
"source_site",
"creator",
"title_at",
"description_at",
"mature",
"date_created_fromated",
"date_imported_formated",
"date_last_import_formated",
]
@admin.display(description="Title")
def title_at(self, obj):
if obj.title.first() is not None:
if len(str(obj.title.first().content)) >= 80:
return obj.title.first().content[:77] + "..."
else:
return obj.title.first().content
@admin.display(description="Description")
def description_at(self, obj):
if len(str(obj.description.first().content)) >= 80:
return obj.description.first().content[:77] + "..."
else:
return obj.description.first().content
@admin.display(description="Date Created")
def date_created_fromated(self, obj):
return format(localtime(obj.date_created), "Y-m-d H:i:s")
@admin.display(description="Date Imported")
def date_imported_formated(self, obj):
return format(localtime(obj.date_imported), "Y-m-d H:i:s")
@admin.display(description="Last Import Date")
def date_last_import_formated(self, obj):
return format(localtime(obj.date_last_import), "Y-m-d H:i:s")
admin.site.register(PostModel, PostAdmin)