2018-08-18 13:26:49 +00:00
|
|
|
from django.db import models
|
2020-08-17 13:05:34 +00:00
|
|
|
from django.urls import reverse
|
2021-07-19 13:06:10 +00:00
|
|
|
|
2018-08-18 13:26:49 +00:00
|
|
|
from utils.models import CampRelatedModel
|
|
|
|
|
|
|
|
|
|
|
|
class Token(CampRelatedModel):
|
2019-06-16 12:32:24 +00:00
|
|
|
camp = models.ForeignKey("camps.Camp", on_delete=models.PROTECT)
|
2018-08-18 13:26:49 +00:00
|
|
|
|
2019-06-16 12:32:24 +00:00
|
|
|
token = models.CharField(max_length=32, help_text="The secret token")
|
2018-08-18 13:26:49 +00:00
|
|
|
|
2018-08-19 15:56:04 +00:00
|
|
|
category = models.TextField(
|
|
|
|
help_text="The category/hint for this token (physical, website, whatever)"
|
|
|
|
)
|
|
|
|
|
2019-06-16 12:32:24 +00:00
|
|
|
description = models.TextField(help_text="The description of the token")
|
2018-08-18 13:26:49 +00:00
|
|
|
|
2019-06-16 12:32:24 +00:00
|
|
|
camp_filter = "camp"
|
2018-08-18 13:26:49 +00:00
|
|
|
|
|
|
|
def __str__(self):
|
2019-06-16 12:32:24 +00:00
|
|
|
return "%s (%s)" % (self.description, self.camp)
|
2018-08-18 13:26:49 +00:00
|
|
|
|
2019-03-27 11:33:14 +00:00
|
|
|
class Meta:
|
|
|
|
ordering = ["camp"]
|
|
|
|
|
2020-08-17 13:05:34 +00:00
|
|
|
def get_absolute_url(self):
|
|
|
|
return reverse(
|
|
|
|
"backoffice:token_detail",
|
|
|
|
kwargs={"camp_slug": self.camp.slug, "pk": self.pk},
|
|
|
|
)
|
|
|
|
|
2018-08-18 13:26:49 +00:00
|
|
|
|
|
|
|
class TokenFind(CampRelatedModel):
|
2018-08-19 15:56:04 +00:00
|
|
|
class Meta:
|
2019-06-16 12:32:24 +00:00
|
|
|
unique_together = ("user", "token")
|
2018-08-19 15:56:04 +00:00
|
|
|
|
2019-06-16 12:32:24 +00:00
|
|
|
token = models.ForeignKey("tokens.Token", on_delete=models.PROTECT)
|
2018-08-18 13:26:49 +00:00
|
|
|
|
2020-08-17 13:05:34 +00:00
|
|
|
user = models.ForeignKey(
|
|
|
|
"auth.User", on_delete=models.PROTECT, related_name="token_finds"
|
|
|
|
)
|
2018-08-18 13:26:49 +00:00
|
|
|
|
2019-06-16 12:32:24 +00:00
|
|
|
camp_filter = "token__camp"
|
2018-08-18 13:26:49 +00:00
|
|
|
|
|
|
|
def __str__(self):
|
2019-06-16 12:32:24 +00:00
|
|
|
return "%s found by %s" % (self.token, self.user)
|
2018-08-18 13:26:49 +00:00
|
|
|
|
|
|
|
@property
|
|
|
|
def camp(self):
|
|
|
|
return self.token.camp
|