from django.db import models from django.contrib.auth.models import User from eveonline.models import EveCharacter from eveonline.models import EveCorporationInfo class ApplicationQuestion(models.Model): title = models.CharField(max_length=100) help_text = models.CharField(max_length=254, blank=True, null=True) def __str__(self): return "Question: " + self.title class ApplicationForm(models.Model): questions = models.ManyToManyField(ApplicationQuestion) corp = models.OneToOneField(EveCorporationInfo) class Application(models.Model): form = models.OneToOneField(ApplicationForm, on_delete=models.CASCADE) user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='applications') approved = models.NullBooleanField(blank=True, null=True, default=None) reveiwer = models.ForeignKey(User, on_delete=models.SET_NULL, blank=True, null=True) reveiwer_character = models.ForeignKey(EveCharacter, on_delete=models.SET_NULL, blank=True, null=True) created = models.DateTimeField(auto_now_add=True) def __str__(self): return self.user + " Application To " + self.corp class Meta: permissions = (('approve_application', 'Can approve applications'), ('reject_application', 'Can reject applications'), ('view_apis', 'Can view applicant APIs'),) class ApplicationResponse(models.Model): question = models.ForeignKey(ApplicationQuestion, on_delete=models.CASCADE) application = models.ForeignKey(Application, on_delete=models.CASCADE) answer = models.TextField() def __str__(self): return self.form + " Answer To " + self.question class Meta: unique_together = ('question', 'application') class ApplicationComment(models.Model): application = models.ForeignKey(Application, on_delete=models.CASCADE, related_name='comments') user = models.ForeignKey(User, on_delete=models.CASCADE) text = models.TextField() created = models.DateTimeField(auto_now_add=True) def __str__(self): return self.user + " comment on " + self.application ################ # Legacy Models ################ # Can't delete or evolutions explodes. # They do nothing. ################ class HRApplication(models.Model): character_name = models.CharField(max_length=254, default="") full_api_id = models.CharField(max_length=254, default="") full_api_key = models.CharField(max_length=254, default="") is_a_spi = models.CharField(max_length=254, default="") about = models.TextField(default="") extra = models.TextField(default="") corp = models.ForeignKey(EveCorporationInfo) user = models.ForeignKey(User) approved_denied = models.NullBooleanField(blank=True, null=True) reviewer_user = models.ForeignKey(User, blank=True, null=True, related_name="review_user") reviewer_character = models.ForeignKey(EveCharacter, blank=True, null=True) reviewer_inprogress_character = models.ForeignKey(EveCharacter, blank=True, null=True, related_name="inprogress_character") def __str__(self): return self.character_name + " - Application" class HRApplicationComment(models.Model): created_on = models.DateTimeField(auto_now_add=True, null=True) comment = models.CharField(max_length=254, default="") application = models.ForeignKey(HRApplication) commenter_user = models.ForeignKey(User) commenter_character = models.ForeignKey(EveCharacter) def __str__(self): return str(self.application.character_name) + " - Comment"