mirror of
https://github.com/eitchtee/WYGIWYH.git
synced 2026-07-09 22:32:50 +02:00
feat: add new envs
This commit is contained in:
@@ -18,3 +18,9 @@ SQL_PORT=5432
|
|||||||
|
|
||||||
# Gunicorn
|
# Gunicorn
|
||||||
WEB_CONCURRENCY=4
|
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
|
||||||
|
|||||||
@@ -337,5 +337,5 @@ else:
|
|||||||
|
|
||||||
CACHALOT_UNCACHABLE_TABLES = ("django_migrations", "procrastinate_jobs")
|
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"))
|
KEEP_DELETED_TRANSACTIONS_FOR = int(os.getenv("KEEP_DELETED_ENTRIES_FOR", "365"))
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ logger = logging.getLogger()
|
|||||||
|
|
||||||
class SoftDeleteQuerySet(models.QuerySet):
|
class SoftDeleteQuerySet(models.QuerySet):
|
||||||
def delete(self):
|
def delete(self):
|
||||||
if not settings.ENABLE_SOFT_DELETION:
|
if not settings.ENABLE_SOFT_DELETE:
|
||||||
# If soft deletion is disabled, perform a normal delete
|
# If soft deletion is disabled, perform a normal delete
|
||||||
return super().delete()
|
return super().delete()
|
||||||
|
|
||||||
@@ -49,7 +49,7 @@ class SoftDeleteQuerySet(models.QuerySet):
|
|||||||
class SoftDeleteManager(models.Manager):
|
class SoftDeleteManager(models.Manager):
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
qs = SoftDeleteQuerySet(self.model, using=self._db)
|
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):
|
class AllObjectsManager(models.Manager):
|
||||||
@@ -60,7 +60,7 @@ class AllObjectsManager(models.Manager):
|
|||||||
class DeletedObjectsManager(models.Manager):
|
class DeletedObjectsManager(models.Manager):
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
qs = SoftDeleteQuerySet(self.model, using=self._db)
|
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):
|
class TransactionCategory(models.Model):
|
||||||
@@ -227,7 +227,7 @@ class Transaction(models.Model):
|
|||||||
super().save(*args, **kwargs)
|
super().save(*args, **kwargs)
|
||||||
|
|
||||||
def delete(self, *args, **kwargs):
|
def delete(self, *args, **kwargs):
|
||||||
if settings.ENABLE_SOFT_DELETION:
|
if settings.ENABLE_SOFT_DELETE:
|
||||||
self.deleted = True
|
self.deleted = True
|
||||||
self.deleted_at = timezone.now()
|
self.deleted_at = timezone.now()
|
||||||
self.save()
|
self.save()
|
||||||
|
|||||||
@@ -29,13 +29,10 @@ def generate_recurring_transactions(timestamp=None):
|
|||||||
@app.task
|
@app.task
|
||||||
def cleanup_deleted_transactions():
|
def cleanup_deleted_transactions():
|
||||||
with cachalot_disabled():
|
with cachalot_disabled():
|
||||||
if (
|
if settings.ENABLE_SOFT_DELETE and settings.KEEP_DELETED_TRANSACTIONS_FOR == 0:
|
||||||
settings.ENABLE_SOFT_DELETION
|
|
||||||
and settings.KEEP_DELETED_TRANSACTIONS_FOR == 0
|
|
||||||
):
|
|
||||||
return "KEEP_DELETED_TRANSACTIONS_FOR is 0, no cleanup performed."
|
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
|
# Hard delete all soft-deleted transactions
|
||||||
deleted_count, _ = Transaction.deleted_objects.all().hard_delete()
|
deleted_count, _ = Transaction.deleted_objects.all().hard_delete()
|
||||||
return (
|
return (
|
||||||
|
|||||||
Reference in New Issue
Block a user