54 lines
1.1 KiB
Python
54 lines
1.1 KiB
Python
|
from django.db import models
|
||
|
from django.contrib.auth.models import User
|
||
|
|
||
|
|
||
|
class Commentable(models.Model):
|
||
|
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"))
|
||
|
|
||
|
|
||
|
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"))
|