summaryrefslogtreecommitdiff
path: root/polls/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'polls/models.py')
-rw-r--r--polls/models.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/polls/models.py b/polls/models.py
index dabb27e..4ca5036 100644
--- a/polls/models.py
+++ b/polls/models.py
@@ -21,9 +21,13 @@
Models management
'''
+import datetime
+
from django.db import models
from django.utils.translation import gettext_lazy as _
+from papillon.settings import DAYS_TO_LIVE
+
class Category(models.Model):
name = models.CharField(max_length=100)
description = models.TextField()
@@ -56,6 +60,27 @@ class Poll(models.Model):
def getTypeLabel(self):
idx = [type[0] for type in self.TYPE].index(self.type)
return Poll.TYPE[idx][1]
+
+ def checkForErasement(self):
+ '''Check if the poll has to be deleted'''
+ if not DAYS_TO_LIVE:
+ return
+ now = datetime.datetime.now()
+ dtl = datetime.timedelta(days=DAYS_TO_LIVE)
+ if self.modification_date + dtl > now:
+ return
+ voters = Voter.objects.filter(poll=self)
+ for voter in voters:
+ if voter.modification_date + dtl > now:
+ return
+ for voter in voters:
+ voter.user.delete()
+ voter.delete()
+ comments = Comment.objects.filter(poll=self)
+ for comment in comments:
+ comment.delete()
+ self.delete()
+
class Admin:
pass
class Meta: