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 reversion import revisions as reversion
from django.db.models import AutoField, ManyToOneRel
from django.contrib import messages
class EventRiskAssessmentCreate(generic.CreateView):
model = models.RiskAssessment
@@ -141,6 +141,20 @@ class EventChecklistCreate(generic.CreateView):
template_name = 'event_checklist_form.html'
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):
form = super(EventChecklistCreate, self).get_form(**kwargs)
epk = self.kwargs.get('pk')

View File

@@ -104,15 +104,10 @@
</div>
</div>
<div class="card mb-3">
<div class="card-header">Power {% 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%}</div>
{% if object.event_size != 2 %}
<div class="card-header">Power {% include 'partials/event_size.html' with object=object.event.riskassessment %}</div>
{% if object.event.riskassessment.event_size != 2 %}
<div class="card-body">
{% if object.event_size == 1 %}
{% if object.event.riskassessment.event_size == 1 %}
<dl class="row">
<dt class="col-10">{{ object|help_text:'source_rcd'|safe }}</dt>
<dd class="col-2">

View File

@@ -29,36 +29,7 @@
{% include 'partials/datetime-fix.html' %}
<script>
const matches = window.matchMedia("(prefers-reduced-motion: reduce)").matches || window.matchMedia("(update: slow)").matches;
$(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) {
event.preventDefault();
var target = $($(this).attr('data-target'));
@@ -116,6 +87,8 @@
<dd class="col-8">{{ event.name }}</dd>
<dt class="col-4">Client</dt>
<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>
<div class="form-group form-row">
<label for="{{ form.date.id_for_label }}"
@@ -263,22 +236,10 @@
</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="card text-center">
<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 border-success">
<div class="card-header">Electrical Checks <small>for Small TEC Events <6kVA (aprox. 26A)</small></div>
<div class="card-body">
{% include 'partials/checklist_checkbox.html' with formitem=form.rcds %}
@@ -289,9 +250,10 @@
</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="card">
<div class="card border-warning">
<div class="card-header">Electrical Checks <small>for Medium TEC Events </small></div>
<div class="card-body">
{% include 'partials/checklist_checkbox.html' with formitem=form.source_rcd %}
@@ -383,9 +345,10 @@
</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="card">
<div class="card border-danger">
<div class="card-header">Electrical Checks <small>for Large TEC Events</small></div>
<div class="card-body">
<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>
{% endif %}
<div class="row mt-3">
<div class="col-sm-12 text-right">
{% 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 class="card card-default mb-3">
<div class="card-header">Power {% 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%}</div>
<div class="card-header">Power {% include 'partials/event_size.html' %}</div>
<div class="card-body">
<dl class="row">
<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.conf import settings
import simplejson
from django.contrib import messages
import datetime
import pytz
import operator