From 99879e797be56eeceab8cb896ccfb391af21a551 Mon Sep 17 00:00:00 2001 From: Adarnof Date: Wed, 9 Mar 2016 03:18:49 +0000 Subject: [PATCH] New models for application system --- hrapplications/admin.py | 14 +++++++--- hrapplications/models.py | 55 +++++++++++++++++++++++++++++++++++++--- 2 files changed, 62 insertions(+), 7 deletions(-) diff --git a/hrapplications/admin.py b/hrapplications/admin.py index b150827c..5b7e89aa 100755 --- a/hrapplications/admin.py +++ b/hrapplications/admin.py @@ -1,7 +1,13 @@ from django.contrib import admin -from models import HRApplication -from models import HRApplicationComment +from models import Application +from models import ApplicationQuestion +from models import ApplicationForm +from models import ApplicationResponse +from models import ApplicationComment -admin.site.register(HRApplication) -admin.site.register(HRApplicationComment) \ No newline at end of file +admin.site.register(Application) +admin.site.register(ApplicationComment) +admin.site.register(ApplicationQuestion) +admin.site.register(ApplicationForm) +admin.site.register(ApplicationResponse) diff --git a/hrapplications/models.py b/hrapplications/models.py index d14d13e7..1b47d0ce 100755 --- a/hrapplications/models.py +++ b/hrapplications/models.py @@ -4,9 +4,61 @@ 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="") @@ -23,9 +75,6 @@ class HRApplication(models.Model): def __str__(self): return self.character_name + " - Application" - class Meta: - permissions = (('approve_hrapplication', 'Can approve applications'), ('reject_hrapplication', 'Can reject applications'), ('view_apis', 'Can view applicant APIs'),) - class HRApplicationComment(models.Model): created_on = models.DateTimeField(auto_now_add=True, null=True)