diff -r eb6e0a3b3b01 -r f4fadc1b9d70 src/core/models/notice.py --- 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)