add bookmark model

This commit is contained in:
Zhao-Linux 2022-11-18 02:17:45 +07:00
parent 03db2db899
commit d0e4d9512c
14 changed files with 223 additions and 16 deletions

View file

@ -55,6 +55,7 @@ from judge.models.submission import (
from judge.models.ticket import Ticket, TicketMessage
from judge.models.volunteer import VolunteerProblemVote
from judge.models.pagevote import PageVote, PageVoteVoter
from judge.models.bookmark import BookMark, MakeBookMark
revisions.register(Profile, exclude=["points", "last_access", "ip", "rating"])
revisions.register(Problem, follow=["language_limits"])
@ -79,4 +80,5 @@ revisions.register(ContestParticipation)
revisions.register(Rating)
revisions.register(PageVoteVoter)
revisions.register(VolunteerProblemVote)
revisions.register(MakeBookMark)
del revisions

38
judge/models/bookmark.py Normal file
View file

@ -0,0 +1,38 @@
from django.db import models
from django.db.models import CASCADE
from django.utils.translation import gettext_lazy as _
from judge.models import Profile
__all__ = ["BookMark"]
class BookMark(models.Model):
page = models.CharField(
max_length=30,
verbose_name=_("associated page"),
db_index=True,
)
def get_bookmark(self, user):
userqueryset = MakeBookMark.objects.filter(bookmark=self, user=user)
if userqueryset.exists():
return True
else:
return False
class Meta:
verbose_name = _("bookmark")
verbose_name_plural = _("bookmarks")
def __str__(self):
return f"bookmark for {self.page}"
class MakeBookMark(models.Model):
bookmark = models.ForeignKey(BookMark, related_name="bookmark", on_delete=CASCADE)
user = models.ForeignKey(Profile, related_name="user_bookmark", on_delete=CASCADE, db_index=True)
class Meta:
unique_together = ["user", "bookmark"]
verbose_name = _("make bookmark")
verbose_name_plural = _("make bookmarks")