Common competencies also do not count for being a supervisor

This commit is contained in:
2021-10-09 10:35:27 +01:00
parent dbb9e3e530
commit 0a0c9f15af
4 changed files with 25 additions and 9 deletions

View File

@@ -5,6 +5,7 @@ from datetime import date
from training import models from training import models
from RIGS.models import Profile from RIGS.models import Profile
class SessionLogForm(forms.Form): class SessionLogForm(forms.Form):
pass pass
@@ -34,6 +35,7 @@ class QualificationForm(forms.ModelForm):
raise forms.ValidationError('Selected supervisor must actually *be* a supervisor...') raise forms.ValidationError('Selected supervisor must actually *be* a supervisor...')
return supervisor return supervisor
class RequirementForm(forms.ModelForm): class RequirementForm(forms.ModelForm):
depth = forms.ChoiceField(choices=models.TrainingItemQualification.CHOICES) depth = forms.ChoiceField(choices=models.TrainingItemQualification.CHOICES)

View File

@@ -90,4 +90,4 @@ class Command(BaseCommand):
is_staff=True) is_staff=True)
supervisor.set_password('supervisor') supervisor.set_password('supervisor')
supervisor.save() supervisor.save()
models.TrainingLevelQualification.objects.create(trainee=supervisor, level=models.TrainingLevel.objects.filter(level__gte=models.TrainingLevel.SUPERVISOR).exclude(department=models.TrainingLevel.HAULAGE).first(), confirmed_on=timezone.now()) models.TrainingLevelQualification.objects.create(trainee=supervisor, level=models.TrainingLevel.objects.filter(level__gte=models.TrainingLevel.SUPERVISOR).exclude(department=models.TrainingLevel.HAULAGE).exclude(department__isnull=True).first(), confirmed_on=timezone.now())

View File

@@ -5,6 +5,8 @@ from reversion import revisions as reversion
from django.urls import reverse from django.urls import reverse
# 'shim' overtop the profile model to neatly contain all training related fields etc # 'shim' overtop the profile model to neatly contain all training related fields etc
@reversion.register # profile is already registered, but this triggers my custom versioning logic @reversion.register # profile is already registered, but this triggers my custom versioning logic
class Trainee(Profile): class Trainee(Profile):
class Meta: class Meta:
@@ -21,7 +23,10 @@ class Trainee(Profile):
@property @property
def is_supervisor(self): def is_supervisor(self):
return self.level_qualifications(True).filter(level__gte=TrainingLevel.SUPERVISOR).exclude(level__department=TrainingLevel.HAULAGE).exists() return self.level_qualifications(True) \
.filter(level__gte=TrainingLevel.SUPERVISOR) \
.exclude(level__department=TrainingLevel.HAULAGE) \
.exclude(level__department__isnull=True).exists()
@property @property
def is_driver(self): def is_driver(self):
@@ -38,6 +43,8 @@ class Trainee(Profile):
return reverse('trainee_detail', kwargs={'pk': self.pk}) return reverse('trainee_detail', kwargs={'pk': self.pk})
# Items # Items
class TrainingCategory(models.Model): class TrainingCategory(models.Model):
reference_number = models.CharField(max_length=3) reference_number = models.CharField(max_length=3)
name = models.CharField(max_length=50) name = models.CharField(max_length=50)
@@ -157,6 +164,10 @@ class TrainingLevel(models.Model, RevisionMixin):
def get_requirements_of_depth(self, depth): def get_requirements_of_depth(self, depth):
return self.requirements.filter(depth=depth) return self.requirements.filter(depth=depth)
@property
def is_common_competencies(self):
return self.department is None and self.level > 0
@property @property
def started_requirements(self): def started_requirements(self):
return self.get_requirements_of_depth(TrainingItemQualification.STARTED) return self.get_requirements_of_depth(TrainingItemQualification.STARTED)
@@ -227,6 +238,8 @@ class TrainingLevelQualification(models.Model):
reversion_hide = True reversion_hide = True
def __str__(self): def __str__(self):
if self.level.is_common_competencies:
return "{} is qualified in the {}".format(self.trainee, self.level)
return "{} is qualified as a {}".format(self.trainee, self.level) return "{} is qualified as a {}".format(self.trainee, self.level)
class Meta: class Meta:

View File

@@ -10,6 +10,7 @@ from django.db import transaction
from users import views from users import views
class ItemList(generic.ListView): class ItemList(generic.ListView):
template_name = "item_list.html" template_name = "item_list.html"
model = models.TrainingItem model = models.TrainingItem