diff --git a/RIGS/hs.py b/RIGS/hs.py
index e3eff98d..230a43ca 100644
--- a/RIGS/hs.py
+++ b/RIGS/hs.py
@@ -127,7 +127,7 @@ class EventChecklistCreate(generic.CreateView):
template_name = 'event_checklist_form.html'
form_class = forms.EventChecklistForm
- def get(self, *args, **kwargs):
+ """def get(self, *args, **kwargs):
epk = kwargs.get('pk')
event = models.Event.objects.get(pk=epk)
@@ -137,7 +137,7 @@ class EventChecklistCreate(generic.CreateView):
if ra is not None:
return HttpResponseRedirect(reverse_lazy('ec_edit', kwargs={'pk': ra.pk}))
- return super(EventChecklistCreate, self).get(self)
+ return super(EventChecklistCreate, self).get(self)"""
def get_form(self, **kwargs):
form = super(EventChecklistCreate, self).get_form(**kwargs)
diff --git a/RIGS/migrations/0041_auto_20200929_1749.py b/RIGS/migrations/0041_auto_20200929_1749.py
new file mode 100644
index 00000000..acdc90da
--- /dev/null
+++ b/RIGS/migrations/0041_auto_20200929_1749.py
@@ -0,0 +1,80 @@
+# Generated by Django 3.1 on 2020-09-29 16:49
+
+from django.conf import settings
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('RIGS', '0040_auto_20200925_2141'),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name='eventchecklist',
+ name='ear_plugs',
+ field=models.BooleanField(blank=True, help_text='Ear plugs issued to crew where needed?', null=True),
+ ),
+ migrations.AlterField(
+ model_name='eventchecklist',
+ name='earthing',
+ field=models.BooleanField(blank=True, help_text='Equipment appropriately earthed?
(truss, stage, generators etc)', null=True),
+ ),
+ migrations.AlterField(
+ model_name='eventchecklist',
+ name='event',
+ field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='checklists', to='RIGS.event'),
+ ),
+ migrations.AlterField(
+ model_name='eventchecklist',
+ name='event_size',
+ field=models.IntegerField(blank=True, choices=[(0, 'Small'), (1, 'Medium'), (2, 'Large')], null=True),
+ ),
+ migrations.AlterField(
+ model_name='eventchecklist',
+ name='exits',
+ field=models.BooleanField(blank=True, help_text='Emergency exits clear?', null=True),
+ ),
+ migrations.AlterField(
+ model_name='eventchecklist',
+ name='extinguishers_location',
+ field=models.CharField(blank=True, help_text='Location of fire extinguishers', max_length=255, null=True),
+ ),
+ migrations.AlterField(
+ model_name='eventchecklist',
+ name='hs_location',
+ field=models.CharField(blank=True, help_text='Location of Safety Bag/Box', max_length=255, null=True),
+ ),
+ migrations.AlterField(
+ model_name='eventchecklist',
+ name='pat',
+ field=models.BooleanField(blank=True, help_text='All equipment in PAT period?', null=True),
+ ),
+ migrations.AlterField(
+ model_name='eventchecklist',
+ name='power_mic',
+ field=models.ForeignKey(blank=True, help_text='Who is the Power MIC?', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='checklists', to=settings.AUTH_USER_MODEL, verbose_name='Power MIC'),
+ ),
+ migrations.AlterField(
+ model_name='eventchecklist',
+ name='safe_packing',
+ field=models.BooleanField(blank=True, help_text='Equipment packed away safely?
(including flightcases)', null=True),
+ ),
+ migrations.AlterField(
+ model_name='eventchecklist',
+ name='safe_parking',
+ field=models.BooleanField(blank=True, help_text='Vehicles parked safely?
(does not obstruct venue access)', null=True),
+ ),
+ migrations.AlterField(
+ model_name='eventchecklist',
+ name='trip_hazard',
+ field=models.BooleanField(blank=True, help_text='Appropriate barriers around kit and cabling secured?', null=True),
+ ),
+ migrations.AlterField(
+ model_name='eventchecklist',
+ name='warning_signs',
+ field=models.BooleanField(blank=True, help_text='Warning signs in place?
(strobe, smoke, power etc.)'),
+ ),
+ ]
diff --git a/RIGS/models.py b/RIGS/models.py
index 29da69b5..1a4f77eb 100644
--- a/RIGS/models.py
+++ b/RIGS/models.py
@@ -383,6 +383,10 @@ class Event(models.Model, RevisionMixin):
else:
return bool(self.purchase_order)
+ @property
+ def hs_done(self):
+ return self.riskassessment is not None and len(self.checklists.all()) > 0
+
@property
def has_start_time(self):
return self.start_time is not None
@@ -684,31 +688,31 @@ class EventChecklist(models.Model, RevisionMixin):
MEDIUM = (1, 'Medium')
LARGE = (2, 'Large')
SIZES = (SMALL, MEDIUM, LARGE)
- event = models.OneToOneField('Event', on_delete=models.CASCADE)
+ event = models.ForeignKey('Event', related_name='checklists', on_delete=models.CASCADE)
# General
- power_mic = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='checklists', null=True,
+ power_mic = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True, null=True, related_name='checklists',
verbose_name="Power MIC", on_delete=models.CASCADE, help_text="Who is the Power MIC?")
# Safety Checks
- safe_parking = models.BooleanField(help_text="Vehicles parked safely?
(does not obstruct venue access)")
- safe_packing = models.BooleanField(help_text="Equipment packed away safely?
(including flightcases)")
- exits = models.BooleanField(help_text="Emergency exits clear?")
- trip_hazard = models.BooleanField(help_text="Appropriate barriers around kit and cabling secured?")
- warning_signs = models.BooleanField(help_text="Warning signs in place?
(strobe, smoke, power etc.)")
- ear_plugs = models.BooleanField(help_text="Ear plugs issued to crew where needed?")
- hs_location = models.CharField(max_length=255, help_text="Location of Safety Bag/Box")
- extinguishers_location = models.CharField(max_length=255, help_text="Location of fire extinguishers")
+ safe_parking = models.BooleanField(blank=True, null=True, help_text="Vehicles parked safely?
(does not obstruct venue access)")
+ safe_packing = models.BooleanField(blank=True, null=True, help_text="Equipment packed away safely?
(including flightcases)")
+ exits = models.BooleanField(blank=True, null=True, help_text="Emergency exits clear?")
+ trip_hazard = models.BooleanField(blank=True, null=True, help_text="Appropriate barriers around kit and cabling secured?")
+ warning_signs = models.BooleanField(blank=True, help_text="Warning signs in place?
(strobe, smoke, power etc.)")
+ ear_plugs = models.BooleanField(blank=True, null=True, help_text="Ear plugs issued to crew where needed?")
+ hs_location = models.CharField(blank=True, null=True, max_length=255, help_text="Location of Safety Bag/Box")
+ extinguishers_location = models.CharField(blank=True, null=True, max_length=255, help_text="Location of fire extinguishers")
# Small Electrical Checks
rcds = models.BooleanField(blank=True, null=True, help_text="RCDs installed where needed and tested?")
supply_test = models.BooleanField(blank=True, null=True, help_text="Electrical supplies tested?
(using socket tester)")
# Shared electrical checks
- earthing = models.BooleanField(help_text="Equipment appropriately earthed?
(truss, stage, generators etc)")
- pat = models.BooleanField(help_text="All equipment in PAT period?")
+ earthing = models.BooleanField(blank=True, null=True, help_text="Equipment appropriately earthed?
(truss, stage, generators etc)")
+ pat = models.BooleanField(blank=True, null=True, help_text="All equipment in PAT period?")
- event_size = models.IntegerField(choices=SIZES)
+ event_size = models.IntegerField(blank=True, null=True, choices=SIZES)
# Medium Electrical Checks
source_rcd = models.BooleanField(blank=True, null=True, help_text="Source RCD protected?
(if cable is more than 3m long) ")
labelling = models.BooleanField(blank=True, null=True, help_text="Appropriate and clear labelling on distribution and cabling?")
@@ -748,7 +752,7 @@ class EventChecklist(models.Model, RevisionMixin):
('review_eventchecklist', 'Can review Event Checklists')
]
- def clean(self):
+ """def clean(self):
errdict = {}
if self.power_mic is None:
@@ -768,7 +772,7 @@ class EventChecklist(models.Model, RevisionMixin):
errdict['w1_description'] = 'Fully complete at least the first worst case point'
if errdict != {}: # If there was an error when validation
- raise ValidationError(errdict)
+ raise ValidationError(errdict)"""
@property
def activity_feed_string(self):
diff --git a/RIGS/templates/hs_list.html b/RIGS/templates/hs_list.html
index 96172fae..cb3755e0 100644
--- a/RIGS/templates/hs_list.html
+++ b/RIGS/templates/hs_list.html
@@ -1,5 +1,6 @@
{% extends 'base_rigs.html' %}
{% load paginator from filters %}
+{% load button from filters %}
{% block title %}H&S Overview{% endblock %}
@@ -11,7 +12,7 @@