feat: add new envs

This commit is contained in:
Herculino Trotta
2025-01-23 14:30:59 -03:00
parent 4ef4609a96
commit e3d3a7cf91
4 changed files with 13 additions and 10 deletions

View File

@@ -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

View File

@@ -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"))

View File

@@ -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()

View File

@@ -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 (