From face9891189438ab91ee06dbfa524f11cb16cf19 Mon Sep 17 00:00:00 2001 From: hungdztrau123 Date: Wed, 12 Jun 2024 09:45:24 +0700 Subject: [PATCH] fix:model-folder --- .../migrations/1055_folder_checksum.py | 18 ++++++++++++++++++ src/documents/models.py | 8 ++++++++ src/documents/views.py | 6 +++++- 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 src/documents/migrations/1055_folder_checksum.py diff --git a/src/documents/migrations/1055_folder_checksum.py b/src/documents/migrations/1055_folder_checksum.py new file mode 100644 index 000000000..33302911c --- /dev/null +++ b/src/documents/migrations/1055_folder_checksum.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.11 on 2024-06-12 02:10 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('documents', '1054_folder_document_folder_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='folder', + name='checksum', + field=models.CharField(editable=False, help_text='The checksum of the original folder.', max_length=32, null=True, unique=True, verbose_name='checksum'), + ), + ] diff --git a/src/documents/models.py b/src/documents/models.py index ad8963f98..b28d9061d 100644 --- a/src/documents/models.py +++ b/src/documents/models.py @@ -156,6 +156,14 @@ class Warehouse(MatchingModel): class Folder(MatchingModel): parent_folder = models.ForeignKey('self', on_delete=models.CASCADE, null=True, blank=True ) path = models.TextField(_("path"), null=True, blank=True) + checksum = models.CharField( + _("checksum"), + max_length=32, + editable=False, + unique=True, + null=True, + help_text=_("The checksum of the original folder."), + ) class Meta(MatchingModel.Meta): verbose_name = _("folder") diff --git a/src/documents/views.py b/src/documents/views.py index c598cbd5d..60403b688 100644 --- a/src/documents/views.py +++ b/src/documents/views.py @@ -1,3 +1,4 @@ +import hashlib import itertools import json import logging @@ -2128,6 +2129,7 @@ class FolderViewSet(ModelViewSet, PermissionsAwareDocumentCountMixin): @action(methods=["get"], detail=True) def folders_documents_by_id(self, request, pk=None): + print("dkljfskljf") currentUser = request.user try: fol = Folder.objects.get(pk=pk) @@ -2164,11 +2166,13 @@ class FolderViewSet(ModelViewSet, PermissionsAwareDocumentCountMixin): folder = serializer.save() folder.path = str(folder.id) folder.owner = currentUser + folder.checksum = hashlib.md5(f'{folder.id}.{folder.name}'.encode()).hexdigest() folder.save() elif parent_folder: folder = serializer.save(parent_folder=parent_folder) folder.path = f"{parent_folder.path}/{folder.id}" folder.owner = currentUser + folder.checksum = hashlib.md5(f'{folder.id}.{folder.name}'.encode()).hexdigest() folder.save() else: return Response(status=status.HTTP_400_BAD_REQUEST) @@ -2199,7 +2203,7 @@ class FolderViewSet(ModelViewSet, PermissionsAwareDocumentCountMixin): if old_parent_folder != instance.parent_folder: if instance.parent_folder: instance.path = f"{instance.parent_folder.path}/{instance.id}" - + else: instance.path = f"{instance.id}" instance.save()