from django.db import models from django.db.models import CASCADE from django.utils.translation import gettext_lazy as _ from judge.models import Profile, Problem, ProblemType __all__ = ["VolunteerProblemVote"] class VolunteerProblemVote(models.Model): voter = models.ForeignKey( Profile, related_name="volunteer_problem_votes", on_delete=CASCADE ) problem = models.ForeignKey( Problem, related_name="volunteer_user_votes", on_delete=CASCADE ) time = models.DateTimeField(auto_now_add=True) knowledge_points = models.PositiveIntegerField( verbose_name=_("knowledge points"), help_text=_("Points awarded by knowledge difficulty"), ) thinking_points = models.PositiveIntegerField( verbose_name=_("thinking points"), help_text=_("Points awarded by thinking difficulty"), ) types = models.ManyToManyField( ProblemType, verbose_name=_("problem types"), help_text=_("The type of problem, " "as shown on the problem's page."), ) feedback = models.TextField(verbose_name=_("feedback"), blank=True) class Meta: verbose_name = _("volunteer vote") verbose_name_plural = _("volunteer votes") unique_together = ["voter", "problem"] def __str__(self): return f"{self.voter} for {self.problem.code}"