More moving of event size logic

This commit is contained in:
2020-12-14 21:58:15 +00:00
parent dd95447008
commit c027182962
6 changed files with 38 additions and 64 deletions

View File

@@ -5,7 +5,7 @@ from django.http import HttpResponseRedirect
from django.urls import reverse_lazy from django.urls import reverse_lazy
from reversion import revisions as reversion from reversion import revisions as reversion
from django.db.models import AutoField, ManyToOneRel from django.db.models import AutoField, ManyToOneRel
from django.contrib import messages
class EventRiskAssessmentCreate(generic.CreateView): class EventRiskAssessmentCreate(generic.CreateView):
model = models.RiskAssessment model = models.RiskAssessment
@@ -141,6 +141,20 @@ class EventChecklistCreate(generic.CreateView):
template_name = 'event_checklist_form.html' template_name = 'event_checklist_form.html'
form_class = forms.EventChecklistForm form_class = forms.EventChecklistForm
# From both business logic and programming POVs, RAs must exist before ECs!
def get(self, *args, **kwargs):
epk = kwargs.get('pk')
event = models.Event.objects.get(pk=epk)
# Check if RA exists
ra = models.RiskAssessment.objects.filter(event=event).first()
if ra is None:
messages.error(self.request, 'A Risk Assessment must exist prior to creating any Event Checklists for {}! Please create one now.'.format(event))
return HttpResponseRedirect(reverse_lazy('event_ra', kwargs={'pk': epk}))
return super(EventChecklistCreate, self).get(self)
def get_form(self, **kwargs): def get_form(self, **kwargs):
form = super(EventChecklistCreate, self).get_form(**kwargs) form = super(EventChecklistCreate, self).get_form(**kwargs)
epk = self.kwargs.get('pk') epk = self.kwargs.get('pk')

View File

@@ -104,15 +104,10 @@
</div> </div>
</div> </div>
<div class="card mb-3"> <div class="card mb-3">
<div class="card-header">Power {% if object.event_size == 2 %} <div class="card-header">Power {% include 'partials/event_size.html' with object=object.event.riskassessment %}</div>
<span class="badge badge-danger p-2 my-3">Large Event</span> {% if object.event.riskassessment.event_size != 2 %}
{% elif object.event_size == 1 %}
<span class="badge badge-warning p-2 my-3">Medium Event</span>
{%else%}<span class="badge badge-success p-2 my-3">Small Event</span>
{%endif%}</div>
{% if object.event_size != 2 %}
<div class="card-body"> <div class="card-body">
{% if object.event_size == 1 %} {% if object.event.riskassessment.event_size == 1 %}
<dl class="row"> <dl class="row">
<dt class="col-10">{{ object|help_text:'source_rcd'|safe }}</dt> <dt class="col-10">{{ object|help_text:'source_rcd'|safe }}</dt>
<dd class="col-2"> <dd class="col-2">

View File

@@ -29,36 +29,7 @@
{% include 'partials/datetime-fix.html' %} {% include 'partials/datetime-fix.html' %}
<script> <script>
const matches = window.matchMedia("(prefers-reduced-motion: reduce)").matches || window.matchMedia("(update: slow)").matches;
$(document).ready(function () { $(document).ready(function () {
dur = matches ? 0 : 500;
{% if not object.pk %}
$('.form-hide').slideUp(dur);
{% else %}
$('#size-selector button[data-event-size={{object.event_size}}]').addClass('active');
for(i = 0; i < 3; i++) {
if(i == {{object.event_size}}) {
$('#size-{{object.event_size}}').slideDown(dur);
}
else {
$('#size-' + i).slideUp(dur);
}
}
{% endif %}
$('#size-selector button').on('click', function () {
$('#{{form.event_size.auto_id}}').val($(this).data('event-size'))
$(this).toggleClass('active');
$('#size-selector button').not(this).removeClass('active');
$('#size-' + $(this).data('event-size')).slideDown(dur);
for(i = 0; i < 3; i++) {
if(i == $(this).data('event-size')) {
$('#size-' + $(this).data('event-size')).slideDown(dur);
}
else {
$('#size-' + i).slideUp(dur);
}
}
});
$('button[data-action=add]').on('click', function (event) { $('button[data-action=add]').on('click', function (event) {
event.preventDefault(); event.preventDefault();
var target = $($(this).attr('data-target')); var target = $($(this).attr('data-target'));
@@ -116,6 +87,8 @@
<dd class="col-8">{{ event.name }}</dd> <dd class="col-8">{{ event.name }}</dd>
<dt class="col-4">Client</dt> <dt class="col-4">Client</dt>
<dd class="col-8">{{ event.person }}</dd> <dd class="col-8">{{ event.person }}</dd>
<dt class="col-4">Event Size</dt>
<dd class="col-8">{% include 'partials/event_size.html' with object=event.riskassessment %}</dd>
</dl> </dl>
<div class="form-group form-row"> <div class="form-group form-row">
<label for="{{ form.date.id_for_label }}" <label for="{{ form.date.id_for_label }}"
@@ -263,22 +236,10 @@
</div> </div>
</div> </div>
</div> </div>
<div class="row my-3"> {% if event.riskassessment.event_size == 0 %}
<div class="row my-3" id="size-0">
<div class="col-12"> <div class="col-12">
<div class="card text-center"> <div class="card border-success">
<div class="card-header">Event Size</div>
<div class="card-body" id="size-selector">
{% render_field form.event_size style="display: none;" %}
<button type="button" class="btn btn-success" data-event-size="0" style="width: 32%">Small</button>
<button type="button" class="btn btn-warning" data-event-size="1" style="width: 32%">Medium</button>
<button type="button" class="btn btn-danger" data-event-size="2" style="width: 32%">Large</button>
</div>
</div>
</div>
</div>
<div class="row my-3 form-hide" id="size-0">
<div class="col-12">
<div class="card">
<div class="card-header">Electrical Checks <small>for Small TEC Events <6kVA (aprox. 26A)</small></div> <div class="card-header">Electrical Checks <small>for Small TEC Events <6kVA (aprox. 26A)</small></div>
<div class="card-body"> <div class="card-body">
{% include 'partials/checklist_checkbox.html' with formitem=form.rcds %} {% include 'partials/checklist_checkbox.html' with formitem=form.rcds %}
@@ -289,9 +250,10 @@
</div> </div>
</div> </div>
</div> </div>
<div class="row my-3 form-hide" id="size-1"> {% elif event.riskassessment.event_size == 1 %}
<div class="row my-3" id="size-1">
<div class="col-12"> <div class="col-12">
<div class="card"> <div class="card border-warning">
<div class="card-header">Electrical Checks <small>for Medium TEC Events </small></div> <div class="card-header">Electrical Checks <small>for Medium TEC Events </small></div>
<div class="card-body"> <div class="card-body">
{% include 'partials/checklist_checkbox.html' with formitem=form.source_rcd %} {% include 'partials/checklist_checkbox.html' with formitem=form.source_rcd %}
@@ -383,9 +345,10 @@
</div> </div>
</div> </div>
</div> </div>
<div class="row my-3 form-hide" id="size-2"> {% else %}
<div class="row my-3" id="size-2">
<div class="col-12"> <div class="col-12">
<div class="card"> <div class="card border-danger">
<div class="card-header">Electrical Checks <small>for Large TEC Events</small></div> <div class="card-header">Electrical Checks <small>for Large TEC Events</small></div>
<div class="card-body"> <div class="card-body">
<p>Outside the scope of this assessment. <strong>I really hope you checked with a supervisor...</strong></p> <p>Outside the scope of this assessment. <strong>I really hope you checked with a supervisor...</strong></p>
@@ -393,6 +356,7 @@
</div> </div>
</div> </div>
</div> </div>
{% endif %}
<div class="row mt-3"> <div class="row mt-3">
<div class="col-sm-12 text-right"> <div class="col-sm-12 text-right">
{% button 'submit' %} {% button 'submit' %}

View File

@@ -0,0 +1,7 @@
{% if object.event_size == 2 %}
<span class="badge badge-danger p-2 my-3">Large Event</span>
{% elif object.event_size == 1 %}
<span class="badge badge-warning p-2 my-3">Medium Event</span>
{%else%}
<span class="badge badge-success p-2 my-3">Small Event</span>
{%endif%}

View File

@@ -40,12 +40,7 @@
</div> </div>
</div> </div>
<div class="card card-default mb-3"> <div class="card card-default mb-3">
<div class="card-header">Power {% if object.event_size == 2 %} <div class="card-header">Power {% include 'partials/event_size.html' %}</div>
<span class="badge badge-danger p-2 my-3">Large Event</span>
{% elif object.event_size == 1 %}
<span class="badge badge-warning p-2 my-3">Medium Event</span>
{%else%}<span class="badge badge-success p-2 my-3">Small Event</span>
{%endif%}</div>
<div class="card-body"> <div class="card-body">
<dl class="row"> <dl class="row">
<dt class="col-sm-6">{{ object|help_text:'big_power' }}</dt> <dt class="col-sm-6">{{ object|help_text:'big_power' }}</dt>

View File

@@ -9,7 +9,6 @@ from django.shortcuts import get_object_or_404
from django.core import serializers from django.core import serializers
from django.conf import settings from django.conf import settings
import simplejson import simplejson
from django.contrib import messages
import datetime import datetime
import pytz import pytz
import operator import operator