from django.db import models from django.contrib.auth.models import User class Notifying(models.Model): subscribed = models.ManyToManyField( User, verbose_name=_("abonnés"), related_name="subscribed_to" ) def get_url(self, *args, **kwargs): pass class Notification(models.Model): sent_by = models.ForeignKey(Notifying) about = models.ForeignKey(Notifying) to = models.ForeignKey( User, verbose_name=_("envoyée à") ) viewed_at = models.DateTimeField( _("Vue à"), blank=True ) text = models.TextField(_("corps de la notification")) class Commentable(Notifying): pass class Thread(models.Model): topic = models.OneToOne(Commentable) class Comment(models.Model): thread = models.ForeignKey(Thread) parent = models.ForeignKey( 'Comment', related_name="replies", ) author = models.ForeignKey( User, verbose_name=_("auteur"), editable=False ) at = models.DateTimeField( _("date d'écriture"), auto_now_add=True ) text = models.TextField(_("corps du message"))