From 9611e8e51f0e611dee6b83d9c90226259c06f32c Mon Sep 17 00:00:00 2001 From: Aroy-Art Date: Fri, 26 Jan 2024 16:09:43 +0100 Subject: [PATCH] Add Metadata_Files & customised the list page & set file_hash to read only on profile image, Metadata files --- archivist/apps/files/admin.py | 52 ++++++++++++++++++++++++++++++++--- 1 file changed, 48 insertions(+), 4 deletions(-) diff --git a/archivist/apps/files/admin.py b/archivist/apps/files/admin.py index 186088d..0afef7d 100644 --- a/archivist/apps/files/admin.py +++ b/archivist/apps/files/admin.py @@ -1,18 +1,62 @@ from django.contrib import admin +from django import forms +from django.urls import reverse +from django.utils.html import format_html -from .models import Submission_File, User_Profile_Images, User_Banner_Images +from .models import Metadata_Files, Submission_File, User_Profile_Images, User_Banner_Images # Register your models here. class Submission_FileAdmin(admin.ModelAdmin): - list_display = ('file_name', 'date_added', 'file_hash', 'file',) + list_display = ('id', 'file_link', 'date_added', 'file_hash', 'file',) + + def file_link(self, obj): + url = reverse("admin:files_submission_file_change", args=[obj.id]) + return format_html('{}', url, obj.file_name) + + file_link.short_description = 'File Name' + class User_Banner_ImagesAdmin(admin.ModelAdmin): - list_display = ('file_name', 'date_added', 'file_hash', 'file',) + list_display = ('id', 'file_link', 'date_added', 'file_hash', 'file',) + + def file_link(self, obj): + url = reverse("admin:files_user_banner_images_change", args=[obj.id]) + return format_html('{}', url, obj.file_name) + + file_link.short_description = 'File Name' + class User_Profile_ImagesAdmin(admin.ModelAdmin): - list_display = ('file_name', 'date_added', 'file_hash', 'file',) + list_display = ('id', 'file_link', 'date_added', 'file_hash', 'file',) + def get_form(self, request, obj=None, **kwargs): + form = super().get_form(request, obj, **kwargs) + form.base_fields['file_hash'].widget = forms.TextInput(attrs={'readonly': True}) + return form + + def file_link(self, obj): + url = reverse("admin:files_user_profile_images_change", args=[obj.id]) + return format_html('{}', url, obj.file_name) + + file_link.short_description = 'File Name' + +class Metadata_FilesAdmin(admin.ModelAdmin): + list_display = ('id', 'file_link', 'date_added', 'file_hash', 'file',) + + def get_form(self, request, obj=None, **kwargs): + form = super().get_form(request, obj, **kwargs) + form.base_fields['file_hash'].widget = forms.TextInput(attrs={'readonly': True}) + return form + + def file_link(self, obj): + url = reverse("admin:files_metadata_files_change", args=[obj.id]) + return format_html('{}', url, obj.file_name) + + file_link.short_description = 'File Name' + + +admin.site.register(Metadata_Files, Metadata_FilesAdmin) admin.site.register(Submission_File, Submission_FileAdmin) admin.site.register(User_Banner_Images, User_Banner_ImagesAdmin) admin.site.register(User_Profile_Images, User_Profile_ImagesAdmin) \ No newline at end of file