Skip to content

admin

django_spire.history.activity.admin

ActivityAdmin

Bases: ModelAdmin

list_display = ('id', 'content_object_link', 'content_type', 'created_datetime', 'verb', 'user_link', 'recipient_link', 'information_snippet') class-attribute instance-attribute

list_filter = ('verb', 'created_datetime') class-attribute instance-attribute

search_fields = ('id', 'user__first_name', 'user__last_name', 'recipient__first_name', 'recipient__last_name', 'content_type__model', 'verb') class-attribute instance-attribute

ordering = ('-created_datetime',) class-attribute instance-attribute

Source code in django_spire/history/activity/admin.py
def content_object_link(self, activity: Activity) -> str:
    url = reverse(
        f'admin:{activity.content_type.app_label}_{activity.content_type.model}_change',
        args=[activity.object_id]
    )

    return format_html(f'<a href="{url}">{activity.content_object}</a>')
Source code in django_spire/history/activity/admin.py
def user_link(self, activity: Activity) -> str:
    url = reverse('admin:auth_user_change', args=[activity.user.id])
    return format_html(f'<a href="{url}">{activity.user.get_full_name()}</a>')
Source code in django_spire/history/activity/admin.py
def recipient_link(self, activity: Activity) -> str:
    if activity.recipient:
        url = reverse('admin:auth_user_change', args=[activity.recipient.id])
        return format_html(f'<a href="{url}">{activity.recipient.get_full_name()}</a>')

    return 'No Recipient'

information_snippet

Source code in django_spire/history/activity/admin.py
def information_snippet(self, activity: Activity) -> str:
    return (
        activity.information[:20] + '...'
        if activity.information and len(activity.information) > 20
        else activity.information or 'No Information'
    )