From 504b7b3cac37173170e974147f8b04a73024a014 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Ml=C3=A1dek?= Date: Fri, 24 Apr 2020 00:06:27 +0200 Subject: [PATCH] fix document deletion --- sdbs_pile/pile/models.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/sdbs_pile/pile/models.py b/sdbs_pile/pile/models.py index dc6bb96..8fecea2 100644 --- a/sdbs_pile/pile/models.py +++ b/sdbs_pile/pile/models.py @@ -3,7 +3,8 @@ import markdown2 from django.core.exceptions import ValidationError from django.core.files.storage import FileSystemStorage from django.db import models -from django.db.models import Count, Q, QuerySet +from django.db.models import Count, Q +from model_utils.managers import SoftDeletableManager, SoftDeletableQuerySet from model_utils.models import SoftDeletableModel @@ -15,7 +16,7 @@ class Tag(SoftDeletableModel): return self.name -class DocumentQuerySet(QuerySet): +class DocumentQuerySet(SoftDeletableQuerySet): def untagged(self): return super().annotate(tag_count=Count('tags')).filter(tag_count=0) @@ -26,6 +27,10 @@ class DocumentQuerySet(QuerySet): return super().filter((Q(file__isnull=True) | Q(file='')) & ~Q(external_url__contains="pile.sdbs.cz")) +class DocumentManager(SoftDeletableManager): + _queryset_class = DocumentQuerySet + + class Document(SoftDeletableModel): class DocumentStatus(models.TextChoices): REFERENCE = "REF", "Referential" @@ -44,7 +49,7 @@ class Document(SoftDeletableModel): tags = models.ManyToManyField(Tag, related_name="documents", blank=True) uploaded = models.DateTimeField(auto_now_add=True, null=True) - objects = DocumentQuerySet.as_manager() + objects = DocumentManager() @property def html_description(self):