X-Git-Url: https://git.p6c8.net/pcdenotes.git/blobdiff_plain/41cbbf03fd231637646702e6445eaf9ebfa2c770..bb41f36c58707df91ca96b39b41f51e98306aee7:/notes/models.py diff --git a/notes/models.py b/notes/models.py index a3fe24e..5541224 100644 --- a/notes/models.py +++ b/notes/models.py @@ -1,9 +1,14 @@ from django.db import models from django.db.models import Count from django.db.models.functions import ExtractYear, ExtractMonth +from django.db.models.signals import pre_save + +from django.dispatch import receiver from django.contrib.auth.models import User from django.urls import reverse +from datetime import datetime + # Create your models here. NOTE_STATUS = ((0, "Draft"), @@ -40,6 +45,7 @@ class Note(models.Model): created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) + published_at = models.DateTimeField(null=True, editable=False) objects = NoteManager() @@ -56,4 +62,15 @@ class Note(models.Model): return self.status == 0 def is_published(self): - return self.status == 1 \ No newline at end of file + return self.status == 1 + +@receiver(pre_save, sender=Note) +def note_pre_save(sender, instance, **kwargs): + if instance.pk is None: + if instance.status == 1: + instance.published_at = datetime.now() + else: + old_instance = Note.objects.get(pk=instance.pk) + + if old_instance.status == 0 and instance.status == 1: + instance.published_at = datetime.now() \ No newline at end of file