39 lines
1.4 KiB
Python
39 lines
1.4 KiB
Python
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}"
|