src/core/models/notice.py
changeset 48 f4fadc1b9d70
parent 36 f770159c3cee
child 55 bcbd95da9be2
--- a/src/core/models/notice.py	Thu Jun 27 22:30:56 2013 +0200
+++ b/src/core/models/notice.py	Thu Jun 27 22:31:40 2013 +0200
@@ -4,11 +4,12 @@
 
 @author: ymh
 '''
+from core import settings
+from core.models.term import Term
 from django.db import models
+from django.db.models import signals
+from django.dispatch import receiver
 import urlparse
-from .. import settings
-
-from .term import Term
 
 # Create your models here.
 class Notice(models.Model):
@@ -151,3 +152,22 @@
 class SrepNoticeTerm(NoticeTerm):
     class Meta:
         app_label = 'core'
+
+def increment_nb_notice(term, inc):
+    term.nb_notice = term.nb_notice + inc
+    term.save
+    
+@receiver(signals.post_save, sender=NoticeTerm)
+def notice_term_created(sender, **kwargs):
+    instance = kwargs.get('instance', None)
+    created = kwargs.get('created', None)
+    if instance is None or not created:
+        return
+    increment_nb_notice(instance.term, 1)
+
+@receiver(signals.post_delete, sender=NoticeTerm)
+def notice_term_deleted(sender, **kwargs):
+    instance = kwargs.get('instance', None)
+    if instance is None:
+        return
+    increment_nb_notice(instance.term, -1)