From e3d3a7cf91c4b1d0eae4dd90af88176b221984e1 Mon Sep 17 00:00:00 2001 From: Herculino Trotta Date: Thu, 23 Jan 2025 14:30:59 -0300 Subject: [PATCH] feat: add new envs --- .env.example | 6 ++++++ app/WYGIWYH/settings.py | 2 +- app/apps/transactions/models.py | 8 ++++---- app/apps/transactions/tasks.py | 7 ++----- 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/.env.example b/.env.example index d7b1933..376d5dd 100644 --- a/.env.example +++ b/.env.example @@ -18,3 +18,9 @@ SQL_PORT=5432 # Gunicorn WEB_CONCURRENCY=4 + +# App Configs +# Enable this if you want to keep deleted transactions in the database +ENABLE_SOFT_DELETE=false +# If ENABLE_SOFT_DELETE is true, transactions deleted for more than KEEP_DELETED_TRANSACTIONS_FOR days will be truly deleted. Set to 0 to keep all. +KEEP_DELETED_TRANSACTIONS_FOR=365 diff --git a/app/WYGIWYH/settings.py b/app/WYGIWYH/settings.py index 9a5a496..4067a62 100644 --- a/app/WYGIWYH/settings.py +++ b/app/WYGIWYH/settings.py @@ -337,5 +337,5 @@ else: CACHALOT_UNCACHABLE_TABLES = ("django_migrations", "procrastinate_jobs") -ENABLE_SOFT_DELETION = os.getenv("ENABLE_SOFT_DELETION", "True").lower() == "true" +ENABLE_SOFT_DELETE = os.getenv("ENABLE_SOFT_DELETION", "false").lower() == "true" KEEP_DELETED_TRANSACTIONS_FOR = int(os.getenv("KEEP_DELETED_ENTRIES_FOR", "365")) diff --git a/app/apps/transactions/models.py b/app/apps/transactions/models.py index 85ff53a..4b21019 100644 --- a/app/apps/transactions/models.py +++ b/app/apps/transactions/models.py @@ -18,7 +18,7 @@ logger = logging.getLogger() class SoftDeleteQuerySet(models.QuerySet): def delete(self): - if not settings.ENABLE_SOFT_DELETION: + if not settings.ENABLE_SOFT_DELETE: # If soft deletion is disabled, perform a normal delete return super().delete() @@ -49,7 +49,7 @@ class SoftDeleteQuerySet(models.QuerySet): class SoftDeleteManager(models.Manager): def get_queryset(self): qs = SoftDeleteQuerySet(self.model, using=self._db) - return qs if not settings.ENABLE_SOFT_DELETION else qs.filter(deleted=False) + return qs if not settings.ENABLE_SOFT_DELETE else qs.filter(deleted=False) class AllObjectsManager(models.Manager): @@ -60,7 +60,7 @@ class AllObjectsManager(models.Manager): class DeletedObjectsManager(models.Manager): def get_queryset(self): qs = SoftDeleteQuerySet(self.model, using=self._db) - return qs if not settings.ENABLE_SOFT_DELETION else qs.filter(deleted=True) + return qs if not settings.ENABLE_SOFT_DELETE else qs.filter(deleted=True) class TransactionCategory(models.Model): @@ -227,7 +227,7 @@ class Transaction(models.Model): super().save(*args, **kwargs) def delete(self, *args, **kwargs): - if settings.ENABLE_SOFT_DELETION: + if settings.ENABLE_SOFT_DELETE: self.deleted = True self.deleted_at = timezone.now() self.save() diff --git a/app/apps/transactions/tasks.py b/app/apps/transactions/tasks.py index 5f1c42f..0833f4e 100644 --- a/app/apps/transactions/tasks.py +++ b/app/apps/transactions/tasks.py @@ -29,13 +29,10 @@ def generate_recurring_transactions(timestamp=None): @app.task def cleanup_deleted_transactions(): with cachalot_disabled(): - if ( - settings.ENABLE_SOFT_DELETION - and settings.KEEP_DELETED_TRANSACTIONS_FOR == 0 - ): + if settings.ENABLE_SOFT_DELETE and settings.KEEP_DELETED_TRANSACTIONS_FOR == 0: return "KEEP_DELETED_TRANSACTIONS_FOR is 0, no cleanup performed." - if not settings.ENABLE_SOFT_DELETION: + if not settings.ENABLE_SOFT_DELETE: # Hard delete all soft-deleted transactions deleted_count, _ = Transaction.deleted_objects.all().hard_delete() return (