34 lines
1 KiB
Python
34 lines
1 KiB
Python
from django.db import models
|
|
from django.db.models import CASCADE
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
from judge.models.profile import Profile
|
|
|
|
__all__ = ["PrivateMessage", "PrivateMessageThread"]
|
|
|
|
|
|
class PrivateMessage(models.Model):
|
|
title = models.CharField(verbose_name=_("message title"), max_length=50)
|
|
content = models.TextField(verbose_name=_("message body"))
|
|
sender = models.ForeignKey(
|
|
Profile,
|
|
verbose_name=_("sender"),
|
|
related_name="sent_messages",
|
|
on_delete=CASCADE,
|
|
)
|
|
target = models.ForeignKey(
|
|
Profile,
|
|
verbose_name=_("target"),
|
|
related_name="received_messages",
|
|
on_delete=CASCADE,
|
|
)
|
|
timestamp = models.DateTimeField(
|
|
verbose_name=_("message timestamp"), auto_now_add=True
|
|
)
|
|
read = models.BooleanField(verbose_name=_("read"), default=False)
|
|
|
|
|
|
class PrivateMessageThread(models.Model):
|
|
messages = models.ManyToManyField(
|
|
PrivateMessage, verbose_name=_("messages in the thread")
|
|
)
|