Move the server code inside server dir
This commit is contained in:
39
server/notes/models.py
Normal file
39
server/notes/models.py
Normal file
@@ -0,0 +1,39 @@
|
||||
from django.contrib.auth.models import AbstractUser
|
||||
from django.db import models
|
||||
from django.utils import timezone
|
||||
|
||||
# Create your models here.
|
||||
|
||||
|
||||
class User(AbstractUser):
|
||||
allow_notes_from = models.ManyToManyField(
|
||||
"User", related_name="allowed_notes_to", blank=True
|
||||
)
|
||||
expiry_seconds = models.PositiveIntegerField(default=86400)
|
||||
|
||||
@property
|
||||
def alive_received_notes(self) -> models.QuerySet["Note"]:
|
||||
return self.received_notes.filter(expiry__gt=timezone.now()).select_related(
|
||||
"from_user", "to_user"
|
||||
)
|
||||
|
||||
@property
|
||||
def visible_name(self) -> str:
|
||||
if self.first_name or self.last_name:
|
||||
return self.get_full_name()
|
||||
return self.username
|
||||
|
||||
|
||||
class Note(models.Model):
|
||||
from_user = models.ForeignKey(
|
||||
User, on_delete=models.CASCADE, related_name="created_notes"
|
||||
)
|
||||
to_user = models.ForeignKey(
|
||||
User, on_delete=models.SET_NULL, null=True, related_name="received_notes"
|
||||
)
|
||||
note = models.TextField()
|
||||
expiry = models.DateTimeField()
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.from_user.username} -> {self.to_user.username}: {self.note[:30]}"
|
||||
Reference in New Issue
Block a user