Some sample data and UX work

This commit is contained in:
2021-07-06 12:16:43 +01:00
parent 5e15b8bb59
commit 68a424d62b
5 changed files with 59 additions and 36 deletions

View File

@@ -3,7 +3,7 @@ from django.core.management.base import BaseCommand, CommandError
from django.contrib.auth.models import Group
from assets import models
from RIGS import models as rigsmodels
from training import models as tmodels
class Command(BaseCommand):
help = 'Deletes testing sample data'
@@ -31,6 +31,9 @@ class Command(BaseCommand):
self.delete_objects(rigsmodels.Payment)
self.delete_objects(rigsmodels.RiskAssessment)
self.delete_objects(rigsmodels.EventChecklist)
self.delete_objects(tmodels.TrainingCategory)
self.delete_objects(tmodels.TrainingItem)
self.delete_objects(tmodels.TrainingLevel)
def delete_objects(self, model):
for obj in model.objects.all():

View File

@@ -21,6 +21,7 @@ class Command(BaseCommand):
profiles = models.Profile.objects.all()
def handle(self, *args, **options):
print("Generating rigboard data")
from django.conf import settings
if not (settings.DEBUG or settings.STAGING):
@@ -35,6 +36,7 @@ class Command(BaseCommand):
self.setup_organisations()
self.setup_venues()
self.setup_events()
print("Done generating rigboard data")
def setup_people(self):
names = ["Regulus Black", "Sirius Black", "Lavender Brown", "Cho Chang", "Vincent Crabbe", "Vincent Crabbe",

View File

@@ -16,8 +16,10 @@ class Command(BaseCommand):
categories = []
items = []
levels = []
def handle(self, *args, **options):
print("Generating Training Data")
from django.conf import settings
if not (settings.DEBUG or settings.STAGING):
@@ -46,4 +48,10 @@ class Command(BaseCommand):
self.items.append(item)
def setup_levels(self):
pass
self.levels.append(models.TrainingLevel.objects.create(level=models.TrainingLevel.TA, description="Passion will hatred faithful evil suicide noble battle. Truth aversion gains grandeur noble. Dead play gains prejudice god ascetic grandeur zarathustra dead good. Faithful ultimate justice overcome love will mountains inexpedient."))
for i,name in models.TrainingLevel.DEPARTMENTS:
technician = models.TrainingLevel.objects.create(level=models.TrainingLevel.TECHNICIAN, department=i, description="Moral pinnacle derive ultimate war dead. Strong fearful joy contradict battle christian faithful enlightenment prejudice zarathustra moral.")
supervisor = models.TrainingLevel.objects.create(level=models.TrainingLevel.SUPERVISOR, department=i, description="Spirit holiest merciful mountains inexpedient reason value. Suicide ultimate hope.")
supervisor.prerequisite_levels.add(technician)
self.levels.append(technician)
self.levels.append(supervisor)

View File

@@ -52,10 +52,13 @@ class TrainingItemQualification(models.Model):
# Levels
class TrainingLevel(models.Model, RevisionMixin):
description = models.CharField(max_length=120, blank=True)
TA = 0
TECHNICIAN = 1
SUPERVISOR = 2
CHOICES = (
(0, 'Technical Assistant'),
(1, 'Technician'),
(2, 'Supervisor'),
(TA, 'Technical Assistant'),
(TECHNICIAN, 'Technician'),
(SUPERVISOR, 'Supervisor'),
)
DEPARTMENTS = (
(0, 'Sound'),
@@ -69,7 +72,10 @@ class TrainingLevel(models.Model, RevisionMixin):
prerequisite_levels = models.ManyToManyField('self', related_name='prerequisites', symmetrical=False, blank=True)
def __str__(self):
return "{} {}".format(self.get_department_display(), self.get_level_display())
if self.department is None: # TA
return self.get_level_display()
else:
return "{} {}".format(self.get_department_display(), self.get_level_display())
class TrainingLevelRequirement(models.Model):
level = models.ForeignKey('TrainingLevel', related_name='requirements', on_delete=models.RESTRICT)

View File

@@ -1,40 +1,44 @@
{% extends 'base_rigs.html' %}
{% block content %}
<div class="row my-3 align-items-end">
<a type="button" class="btn btn-success" href="{% url 'edit_record' pk=request.user.pk %}">
<i class="fas fa-plus"></i> Add New Training Record
</a>
<div class="row mb-3">
<h2 class="col-12">Training Levels</h2>
{% for level in levels %}
<div class="card m-3">
<h3 class="card-header"><a href="{% url 'level_edit' level.pk %}">{{ level }}</a></h3>
<div class="card-body">
<div class="progress mb-2">
<div class="progress-bar progress-bar-striped" role="progressbar" style="width: 25%" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100">25% complete</div>
</div>
<p>{{ level.description }}</p>
<p>Requirements:
<button class="btn btn-link" type="button" data-toggle="collapse" data-target="#reqs" aria-expanded="false" aria-controls="reqs">
<span class="fas fa-arrow-down"></span>
</button>
<div class="collapse" id="reqs">
{% for req in level.requirements.all %}
<li>{{req}}</li>
{% endfor %}
</p>
</div>
</div>
<div class="card-footer">
<button class="btn btn-success" disabled>Incomplete</button>
</div>
</div>
{% endfor %}
<div class="row mb-3">
<h2 class="col-12">Training Levels</h2>
<div class="card-columns">
{% for level in levels %}
<div class="card my-3">
<h3 class="card-header"><a href="{% url 'level_edit' level.pk %}">{{ level }}</a></h3>
<div class="card-body">
<div class="progress mb-2">
<div class="progress-bar progress-bar-striped" role="progressbar" style="width: 25%" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100">25% complete</div>
</div>
<p>{{ level.description }}</p>
<p>Requirements:
<button class="btn btn-link" type="button" data-toggle="collapse" data-target="#reqs" aria-expanded="false" aria-controls="reqs">
<span class="fas fa-arrow-down"></span>
</button>
<div class="collapse" id="reqs">
{% for req in level.requirements.all %}
<li>{{req}}</li>
{% endfor %}
</p>
</div>
</div>
<div class="card-footer">
<button class="btn btn-success" disabled>Incomplete</button>
</div>
</div>
{% endfor %}
</div>
</div>
<div class="row">
<h2 class="col-12">Training Items</h2><br>
{% for category in categories %}
<div class="col-md-3">
<h2 class="col-12">Training Items</h2><br>
<div class="card-columns">
{% for category in categories %}
<div class="card mb-3">
<h3 class="card-header">{{ category.name }}</h3>
<div class="list-group list-group-flush">
@@ -48,7 +52,7 @@
{% endfor %}
</div>
</div>
</div>
{% endfor %}
{% endfor %}
</div>
</div>
{% endblock %}