21 lines
932 B
Python
21 lines
932 B
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'))
|