From ddc2259621829b80391135fc7c755aec1db4888f Mon Sep 17 00:00:00 2001
From: Aroy-Art <Aroy-Art@pm.me>
Date: Fri, 29 Dec 2023 22:45:15 +0100
Subject: [PATCH 1/3] Add: Profile & Banner image models

---
 archivist/apps/files/models.py | 49 +++++++++++++++++++++++++++++++---
 1 file changed, 46 insertions(+), 3 deletions(-)

diff --git a/archivist/apps/files/models.py b/archivist/apps/files/models.py
index 7d1abbf..2896513 100644
--- a/archivist/apps/files/models.py
+++ b/archivist/apps/files/models.py
@@ -4,14 +4,57 @@ from django.utils.translation import gettext_lazy as _
 
 # Create your models here.
 
-def get_upload_to(instance, filename):
-        return f'submissions/{instance.file_hash[:2]}/{filename}'
+def get_upload_to(instance, filename, folder):
+    return f'{folder}/{instance.file_hash[:2]}/{filename}'
+
+def get_upload_to_submission(instance, filename):
+    return get_upload_to(instance, filename, 'submissions')
+
+def get_upload_to_profile(instance, filename):
+    return get_upload_to(instance, filename, 'profiles')
+
+def get_upload_to_banner(instance, filename):
+    return get_upload_to(instance, filename, 'banners')
+
+
+class User_Profile_Images(models.Model):
+
+    file_hash  = models.CharField(unique=True, max_length=64,)
+    file_name  = models.CharField(max_length=150, blank=True)
+    file       = models.FileField(upload_to=get_upload_to_profile, blank=True)
+    date_added = models.DateTimeField(auto_now_add=True, editable=True)
+
+    class Meta:
+        verbose_name = _("User Profile Image")
+        verbose_name_plural = _("User Profile Images")
+
+    def __str__(self):
+        return self.name
+
+    #def get_absolute_url(self):
+    #    return reverse("User_Profile_Image_detail", kwargs={"pk": self.pk})
+
+
+class User_Banner_Images(models.Model):
+
+    file_hash  = models.CharField(unique=True, max_length=64,)
+    file_name  = models.CharField(max_length=150, blank=True)
+    file       = models.FileField(upload_to=get_upload_to_banner, blank=True)
+    date_added = models.DateTimeField(auto_now_add=True, editable=True)
+
+    class Meta:
+        verbose_name = _("User Banner Image")
+        verbose_name_plural = _("User Banner Images")
+
+    def __str__(self):
+        return self.name
+
 
 class Submission_File(models.Model):
 
     file_hash  = models.CharField(unique=True, max_length=64,)
     file_name  = models.CharField(max_length=150, blank=True)
-    file       = models.FileField(upload_to=get_upload_to, blank=True)
+    file       = models.FileField(upload_to=get_upload_to_submission, blank=True)
     date_added = models.DateTimeField(auto_now_add=True, editable=True)
 
     class Meta:

From 745cabcfccdf14cc04b4679ef0d522c736bb00d4 Mon Sep 17 00:00:00 2001
From: Aroy-Art <Aroy-Art@pm.me>
Date: Fri, 29 Dec 2023 22:47:36 +0100
Subject: [PATCH 2/3] Change: redirect to uploaded file on success

---
 archivist/apps/files/views.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/archivist/apps/files/views.py b/archivist/apps/files/views.py
index 5445b88..da14ff6 100644
--- a/archivist/apps/files/views.py
+++ b/archivist/apps/files/views.py
@@ -73,7 +73,7 @@ def fileUpload(request):
             
             new_submission_file.save
             
-            return HttpResponseRedirect("/")
+            return HttpResponseRedirect(f"/files/submission/{file_hash}")
             
     else:
         form = UploadFileForm()

From d1fa48cb3b514c0ab00cde23feb302ed764d6766 Mon Sep 17 00:00:00 2001
From: Aroy-Art <Aroy-Art@pm.me>
Date: Sat, 30 Dec 2023 21:20:53 +0100
Subject: [PATCH 3/3] Add: Banner & Profile models to admin page

---
 archivist/apps/files/admin.py | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/archivist/apps/files/admin.py b/archivist/apps/files/admin.py
index 2c18c6a..186088d 100644
--- a/archivist/apps/files/admin.py
+++ b/archivist/apps/files/admin.py
@@ -1,10 +1,18 @@
 from django.contrib import admin
 
-from .models import Submission_File
+from .models import 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',)
 
-admin.site.register(Submission_File, Submission_FileAdmin)
\ No newline at end of file
+class User_Banner_ImagesAdmin(admin.ModelAdmin):
+    list_display = ('file_name', 'date_added', 'file_hash', 'file',)
+
+class User_Profile_ImagesAdmin(admin.ModelAdmin):
+    list_display = ('file_name', 'date_added', 'file_hash', 'file',)
+
+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