bornhack-website/src/tokens/models.py

42 lines
1,022 B
Python
Raw Normal View History

2018-08-18 13:26:49 +00:00
from django.db import models
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
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"]
2018-08-18 13:26:49 +00:00
class TokenFind(CampRelatedModel):
class Meta:
2019-06-16 12:32:24 +00:00
unique_together = ("user", "token")
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
2019-06-16 12:32:24 +00:00
user = models.ForeignKey("auth.User", on_delete=models.PROTECT)
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