diff --git a/PyRIGS/urls.py b/PyRIGS/urls.py
index da12b768..2eaebfaa 100644
--- a/PyRIGS/urls.py
+++ b/PyRIGS/urls.py
@@ -12,6 +12,7 @@ urlpatterns = [
path('', include('versioning.urls')),
path('', include('RIGS.urls')),
path('assets/', include('assets.urls')),
+ path('training/', include('training.urls')),
path('', login_required(views.Index.as_view()), name='index'),
diff --git a/RIGS/management/commands/generateSampleData.py b/RIGS/management/commands/generateSampleData.py
index 88c33d46..237c0cb0 100644
--- a/RIGS/management/commands/generateSampleData.py
+++ b/RIGS/management/commands/generateSampleData.py
@@ -12,3 +12,4 @@ class Command(BaseCommand):
call_command('generateSampleUserData')
call_command('generateSampleRIGSData')
call_command('generateSampleAssetsData')
+ call_command('generateSampleTrainingData')
diff --git a/templates/index.html b/templates/index.html
index ce238e34..912b7d87 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -43,7 +43,7 @@
diff --git a/training/admin.py b/training/admin.py
index 0f3eacf4..2e8e05bf 100644
--- a/training/admin.py
+++ b/training/admin.py
@@ -4,3 +4,5 @@ from reversion.admin import VersionAdmin
admin.site.register(models.Trainee, VersionAdmin)
admin.site.register(models.TrainingLevel, VersionAdmin)
+admin.site.register(models.TrainingCategory, VersionAdmin)
+admin.site.register(models.TrainingItem, VersionAdmin)
diff --git a/training/management/commands/__init__.py b/training/management/commands/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/training/management/commands/generateSampleTrainingData.py b/training/management/commands/generateSampleTrainingData.py
new file mode 100644
index 00000000..f92c363f
--- /dev/null
+++ b/training/management/commands/generateSampleTrainingData.py
@@ -0,0 +1,45 @@
+import datetime
+import random
+
+from django.contrib.auth.models import Group, Permission
+from django.core.management.base import BaseCommand, CommandError
+from django.db import transaction
+from django.utils import timezone
+from reversion import revisions as reversion
+
+from training import models
+
+
+class Command(BaseCommand):
+ help = 'Adds sample data to use for testing'
+ can_import_settings = True
+
+ categories = []
+ items = []
+
+ def handle(self, *args, **options):
+ from django.conf import settings
+
+ if not (settings.DEBUG or settings.STAGING):
+ raise CommandError('You cannot run this command in production')
+
+ random.seed('otherwise it is done by time, which could lead to inconsistant tests')
+
+ with transaction.atomic():
+ self.setup_categories()
+ self.setup_items()
+
+ def setup_categories(self):
+ names = [(1, "Basic"), (2, "Sound"), (3, "Lighting"), (4, "Rigging"), (5, "Power"), (6, "Haulage")]
+
+ for i, name in names:
+ category = models.TrainingCategory.objects.create(number=i, name=name)
+ category.save()
+ self.categories.append(category)
+
+ def setup_items(self):
+ names = ["Motorised Power Towers", "Catering", "Forgetting Cables", "Gazebo Construction", "Balanced Audio", "Unbalanced Audio"]
+
+ for i,name in enumerate(names):
+ item = models.TrainingItem.objects.create(category=random.choice(self.categories), number=random.randint(0, 100), name=name)
+ self.items.append(item)
diff --git a/training/models.py b/training/models.py
index f880ed64..df07dd95 100644
--- a/training/models.py
+++ b/training/models.py
@@ -15,10 +15,13 @@ class TrainingCategory(models.Model):
class TrainingItem(models.Model):
- category = models.ForeignKey('TrainingCategory', on_delete=models.RESTRICT)
+ category = models.ForeignKey('TrainingCategory', related_name='category', on_delete=models.RESTRICT)
number = models.CharField(max_length=3)
name = models.CharField(max_length=50)
+ def __str__(self):
+ return "{}.{} {}".format(self.category.number, self.number, self.name)
+
# TODO Validation that dates cannot be in the future
class TrainingItemQualification(models.Model):
diff --git a/training/templates/item_list.html b/training/templates/item_list.html
index 76479fdb..7b3457e8 100644
--- a/training/templates/item_list.html
+++ b/training/templates/item_list.html
@@ -1,5 +1,13 @@
{% extends 'base_rigs.html' %}
{% block content %}
-
+
+{% for category in categories %}
+
+{% endfor %}
+
{% endblock %}
diff --git a/training/urls.py b/training/urls.py
index d2d839f0..f7462685 100644
--- a/training/urls.py
+++ b/training/urls.py
@@ -1,5 +1,7 @@
from django.urls import path
+from training import views
+
urlpatterns = [
-
+ path('items/', views.ItemList.as_view(), name='item_list'),
]
diff --git a/training/views.py b/training/views.py
index 91ea44a2..87380226 100644
--- a/training/views.py
+++ b/training/views.py
@@ -1,3 +1,13 @@
from django.shortcuts import render
-# Create your views here.
+from django.views import generic
+from training import models
+
+class ItemList(generic.ListView):
+ template_name = "item_list.html"
+ model = models.TrainingItem
+
+ def get_context_data(self, **kwargs):
+ context = super(ItemList, self).get_context_data(**kwargs)
+ context["categories"] = models.TrainingCategory.objects.all()
+ return context