Create the training database (#463)

Co-authored-by: josephjboyden <josephjboyden@gmail.com>
This commit is contained in:
2022-01-18 15:47:53 +00:00
committed by GitHub
parent eaf891daf7
commit d25381b2de
85 changed files with 12550 additions and 841 deletions

View File

@@ -20,6 +20,7 @@ class Command(BaseCommand):
hs_group = None
def handle(self, *args, **options):
print("Generating sample user data")
from django.conf import settings
if not (settings.DEBUG or settings.STAGING):
@@ -32,6 +33,7 @@ class Command(BaseCommand):
self.setup_groups()
self.setup_useful_profiles()
self.setup_generic_profiles()
print("Done generating sample user data")
def setup_groups(self):
self.keyholder_group = Group.objects.create(name='Keyholders')
@@ -83,39 +85,32 @@ class Command(BaseCommand):
self.profiles.append(new_profile)
def setup_useful_profiles(self):
super_user = models.Profile.objects.create(username="superuser", first_name="Super", last_name="User",
initials="SU",
email="superuser@example.com", is_superuser=True, is_active=True,
is_staff=True)
super_user.set_password('superuser')
super_user = models.Profile.objects.create_superuser(username="superuser",
email="superuser@example.com", password="superuser", first_name="Super", last_name="User",
initials="SU", is_active=True)
super_user.save()
finance_user = models.Profile.objects.create(username="finance", first_name="Finance", last_name="User",
initials="FU",
email="financeuser@example.com", is_active=True, is_approved=True)
finance_user = models.Profile.objects.create_user(username="finance",
email="financeuser@example.com", password="finance", first_name="Finance", last_name="User",
initials="FU", is_active=True, is_approved=True)
finance_user.groups.add(self.finance_group)
finance_user.groups.add(self.keyholder_group)
finance_user.set_password('finance')
finance_user.save()
hs_user = models.Profile.objects.create(username="hs", first_name="HS", last_name="User",
initials="HSU",
email="hsuser@example.com", is_active=True, is_approved=True)
hs_user = models.Profile.objects.create_user(username="hs",
email="hsuser@example.com", password="hs", first_name="HS", last_name="User",
initials="HSU", is_active=True, is_approved=True)
hs_user.groups.add(self.hs_group)
hs_user.groups.add(self.keyholder_group)
hs_user.set_password('hs')
hs_user.save()
keyholder_user = models.Profile.objects.create(username="keyholder", first_name="Keyholder", last_name="User",
initials="KU",
email="keyholderuser@example.com", is_active=True,
is_approved=True)
keyholder_user = models.Profile.objects.create_user(username="keyholder",
email="keyholderuser@example.com", password="keyholder", first_name="Keyholder", last_name="User",
initials="KU", is_active=True,
is_approved=True)
keyholder_user.groups.add(self.keyholder_group)
keyholder_user.set_password('keyholder')
keyholder_user.save()
basic_user = models.Profile.objects.create(username="basic", first_name="Basic", last_name="User",
initials="BU",
email="basicuser@example.com", is_active=True, is_approved=True)
basic_user.set_password('basic')
basic_user.save()
basic_user = models.Profile.objects.create_user(username="basic",
email="basicuser@example.com", password="basic", first_name="Basic", last_name="User",
initials="BU", is_active=True, is_approved=True)

View File

@@ -56,43 +56,37 @@
</div>
{% endif %}
<div class="row">
<div class="col-12">
<div class="col-lg-4 col-12 mb-2">
<div class="card">
<div class="row no-gutters">
<div class="col-md-3">
<img src="{{object.profile_picture}}" class="card-img img-fluid" />
</div>
<div class="col-md-9">
<div class="card-body">
<dl class="row">
<dt class="col-5">First Name</dt>
<dd class="col-7">{{object.first_name}}</dd>
<img src="{{object.profile_picture}}" class="card-img img-fluid" />
<div class="card-body">
<dl class="row">
<dt class="col-5">First Name</dt>
<dd class="col-7">{{object.first_name}}</dd>
<dt class="col-5">Last Name</dt>
<dd class="col-7">{{object.last_name}}</dd>
<dt class="col-5">Last Name</dt>
<dd class="col-7">{{object.last_name}}</dd>
<dt class="col-5">Email</dt>
<dd class="col-7">{{object.email}}</dd>
<dt class="col-5">Email</dt>
<dd class="col-7">{{object.email}}</dd>
<dt class="col-5">Last Login</dt>
<dd class="col-7">{{object.last_login|date:"d/m/Y H:i"}}</dd>
<dt class="col-5">Last Login</dt>
<dd class="col-7">{{object.last_login|date:"d/m/Y H:i"}}</dd>
<dt class="col-5">Date Joined</dt>
<dd class="col-7">{{object.date_joined|date:"d/m/Y H:i"}}</dd>
<dt class="col-5">Date Joined</dt>
<dd class="col-7">{{object.date_joined|date:"d/m/Y H:i"}}</dd>
<dt class="col-5">Initials</dt>
<dd class="col-7">{{object.initials}}</dd>
<dt class="col-5">Initials</dt>
<dd class="col-7">{{object.initials}}</dd>
<dt class="col-5">Phone</dt>
<dd class="col-7">{{object.phone|linkornone:'tel'}}</dd>
</dl>
</div>
</div>
<dt class="col-5">Phone</dt>
<dd class="col-7">{{object.phone|linkornone:'tel'}}</dd>
</dl>
</div>
</div>
</div>
</div>
{% if not request.is_ajax and object.pk == user.pk %}
<div class="col-12 my-2">
<div class="col-lg-8 col-12">
<div class="card">
<div class="card-header">Personal iCal Details</div>
<div class="card-body">
@@ -152,9 +146,31 @@
</div>
</div>
{% endif %}
</div>
<div class="row">
<div class="col col-lg-6 mb-2">
<div class="card">
<div class="card-header">Training Record</div>
<div class="card-body">
<a href="{% url 'trainee_detail' object.pk %}" class="btn btn-primary"><span class="fas fa-eye"></span> View Training Record</a>
{% include 'partials/add_qualification.html' %}
<ul class="list-group pt-3">
<li class="list-group-item active">Achieved Levels:</li>
{% for qual in completed_levels %}
<a href="{% url 'level_detail' qual.level.pk %}"class="list-group-item list-group-item-action d-flex justify-content-between align-items-center">{{ qual.level }}{{ qual.get_icon }}</a>
{% endfor %}
</ul>
</div>
</div>
</div>
<div class="col-lg-6">
<div class="card">
<div class="card-header">Events</div>
{% with object.latest_events as events %}
{% include 'partials/event_table.html' %}
{% endwith %}
</div>
</div>
</div>
<h4>Events</h4>
{% with object.latest_events as events %}
{% include 'partials/event_table.html' %}
{% endwith %}
{% endblock %}

View File

@@ -42,6 +42,7 @@ class ProfileDetail(generic.DetailView):
def get_context_data(self, **kwargs):
context = super(ProfileDetail, self).get_context_data(**kwargs)
context['page_title'] = "Profile: {}".format(self.object)
context["completed_levels"] = self.object.level_qualifications.all().select_related('level')
return context