Gallery-Archivist/archivist/apps/user/models.py

52 lines
1.5 KiB
Python

from django.db import models
from django.contrib.auth.models import User
from django.utils.translation import gettext_lazy as _
from apps.sites.models import Submissions
class UserProfile(models.Model):
MATURE = [
("H", "Hide"),
("B", "Blur"),
("S", "Show"),
]
ITEMS_PER_PAGE = [
(24, "24"),
(48, "48"),
(72, "72"),
]
POST_SEEN_DELAY = [
(15, "15"),
(30, "30"),
(60, "60"),
(90, "90"),
]
user = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True, unique=True)
show_mature = models.CharField(max_length=2, choices=MATURE, default=MATURE[0][0])
items_per_page = models.IntegerField(choices=ITEMS_PER_PAGE, default=ITEMS_PER_PAGE[0][0])
post_seen_delay = models.IntegerField(choices=POST_SEEN_DELAY, default=POST_SEEN_DELAY[1][1], help_text="Delay in seconds before marking a post as seen")
class Meta:
verbose_name = _("User Profile")
verbose_name_plural = _("User Profiles")
def __str__(self):
return self.user.username
class SeenPost(models.Model):
user = models.ForeignKey(UserProfile, on_delete=models.CASCADE)
post = models.ForeignKey(Submissions, on_delete=models.CASCADE)
timestamp = models.DateTimeField(auto_now_add=True)
class Meta:
verbose_name = _("Seen Post")
verbose_name_plural = _("Seen Posts")
def __str__(self) -> str:
return self.user.user.username + " - " + self.post.submission_hash