Refactor RA creation stuff, again

This commit is contained in:
2020-06-03 15:15:02 +01:00
parent 3768f4a613
commit d31900c5c3
9 changed files with 74 additions and 41 deletions

View File

@@ -84,26 +84,6 @@ class EventEmbed(EventDetail):
template_name = 'event_embed.html'
class EventRADetail(generic.DetailView):
model = models.RiskAssessment
template_name = 'risk_assessment_detail.html'
def get_object(self, queryset=None):
epk = self.kwargs.get(self.pk_url_kwarg)
event = models.Event.objects.get(pk=epk)
ra, created = models.RiskAssessment.objects.get_or_create(event=event)
return ra
class EventRAEdit(generic.UpdateView):
model = models.RiskAssessment
template_name = 'risk_assessment_form.html'
form_class = forms.EventRiskAssessmentForm
def get_success_url(self):
return reverse_lazy('event_ra', kwargs={'pk': self.object.event.pk})
class EventCreate(generic.CreateView):
model = models.Event
form_class = forms.EventForm
@@ -441,6 +421,60 @@ class EventAuthoriseRequestEmailPreview(generic.DetailView):
return context
class EventRiskAssessmentCreate(generic.CreateView):
model = models.RiskAssessment
template_name = 'risk_assessment_form.html'
form_class = forms.EventRiskAssessmentForm
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 not None:
return HttpResponseRedirect(reverse_lazy('ra_edit', kwargs={'pk': ra.pk}))
return super(EventRiskAssessmentCreate, self).get(self)
def get_form(self, **kwargs):
form = super(EventRiskAssessmentCreate, self).get_form(**kwargs)
epk = self.kwargs.get('pk')
event = models.Event.objects.get(pk=epk)
form.instance.event = event
return form
def get_context_data(self, **kwargs):
context = super(EventRiskAssessmentCreate, self).get_context_data(**kwargs)
epk = self.kwargs.get('pk')
event = models.Event.objects.get(pk=epk)
context['event'] = event
return context
def get_success_url(self):
return reverse_lazy('ra_detail', kwargs={'pk': self.object.pk})
class EventRiskAssessmentEdit(generic.UpdateView):
model = models.RiskAssessment
template_name = 'risk_assessment_form.html'
form_class = forms.EventRiskAssessmentForm
def get_success_url(self):
return reverse_lazy('ra_detail', kwargs={'pk': self.object.pk})
def get_context_data(self, **kwargs):
context = super(EventRiskAssessmentEdit, self).get_context_data(**kwargs)
context['edit'] = True
return context
class EventRiskAssessmentDetail(generic.DetailView):
model = models.RiskAssessment
template_name = 'risk_assessment_detail.html'
class EventRiskAssessmentList(generic.ListView):
paginate_by = 20
model = models.RiskAssessment

View File

@@ -1,6 +1,5 @@
{% load help_text from filters %}
<label for="{{ formitem.id_for_label }}"
class="col-sm-8 control-label">{{ object|help_text:formitem.name|safe }}</label>
class="col-sm-8 control-label">{{ formitem.help_text|safe }}</label>
<div class="col-4 pb-3">
{% for radio in formitem %}
<div class="custom-control custom-radio">

View File

@@ -6,7 +6,7 @@
<div class="row my-3 py-3">
<div class="col-sm-12">
<h3>Risk Assessment for Event N{{ object.event.pk|stringformat:"05d" }} {{ object.event.name }}</h3>
<a href="{% url 'event_ra_edit' object.pk %}" class="btn btn-warning my-3"><span class="fas fa-edit"></span> <span
<a href="{% url 'ra_edit' object.pk %}" class="btn btn-warning my-3"><span class="fas fa-edit"></span> <span
class="hidden-xs">Edit</span></a>
<div class="card card-default mb-3">
<div class="card-header">General</div>

View File

@@ -3,7 +3,7 @@
{% load static %}
{% load help_text from filters %}
{% block title %}{% if object.pk %}Edit{% else %}Create{% endif %} Risk Assessment for Event N{{ event.pk|stringformat:"05d" }}{% endblock %}
{% block title %}{% if edit %}Edit{% else %}Create{% endif %} Risk Assessment for Event N{{ event.pk|stringformat:"05d" }}{% endblock %}
{% block css %}
{{ block.super }}
@@ -29,8 +29,12 @@
{% block content %}
<div class="col-sm-offset-1 col-sm-10">
<h3>{% if object.pk %}Edit{% else %}Create{% endif %} Risk Assessment for Event N{{ event.pk|stringformat:"05d" }}</h3>
<form role="form" method="POST">
<h3>{% if edit %}Edit{% else %}Create{% endif %} Risk Assessment for Event N{{ event.pk|stringformat:"05d" }}</h3>
{% if edit %}
<form method="POST" action="{% url 'ra_edit' pk=object.pk %}">
{% else %}
<form role="form" method="POST" action="{% url 'event_ra' pk=event.pk %}">
{% endif %}
{% csrf_token %}
<div class="row">
<div class="col-12">

View File

@@ -18,7 +18,7 @@
<thead class="thead-dark">
<tr>
<th scope="col">Event</th>
<th scope="col" class="text-truncate">{{ object_list.0|verbose_name:'nonstandard_equipment'|title }}</th>
<th scope="col" class="">{{ object_list.0|verbose_name:'nonstandard_equipment'|title }}</th>
<th scope="col">{{ object_list.0|verbose_name:'nonstandard_use'|title }}</th>
<th scope="col">{{ object_list.0|verbose_name:'contractors'|title }}</th>
<th scope="col">{{ object_list.0|verbose_name:'other_companies'|title }}</th>
@@ -47,7 +47,7 @@
<tbody>
{% for object in object_list %}
<tr>
<th scope="row">{{ object.event }}</th>
<th scope="row"><a href="{% url 'event_detail' object.event.pk %}">{{ object.event }}</a></th>
<td class="{% if object.nonstandard_equipment%}bg-danger text-white{%endif%}">{{object.nonstandard_equipment|yesno|title}}</td>
<td class="{% if object.nonstandard_use%}bg-danger text-white{%endif%}">{{object.nonstandard_use|yesno|title}}</td>
<td class="{% if object.contractors%}bg-danger text-white{%endif%}">{{object.contractors|yesno|title}}</td>

View File

@@ -9,13 +9,6 @@
<div class="col-sm-12">
<h1>Venue | {{ object.name }}</h1>
</div>
<div class="col-sm-12 text-right">
<div class="btn-group btn-page">
<a href="{% url 'venue_update' object.pk %}" class="btn btn-default"><span
class="fas fa-pencil"></span> Edit</a>
</div>
</div>
{% endif %}
<div class="col-sm-12">
<div class="card card-info">
@@ -46,8 +39,8 @@
</div>
<div class="row">
<div class="col-sm-12">
<div class="card card-default">
<div class="col-sm-12 py-3">
<div class="card">
<div class="card-header">Associated Events</div>
<div class="card-body">
{% with object.latest_events as events %}
@@ -79,7 +72,7 @@
<div class="col-sm-12 text-right">
<div class="btn-group btn-page">
<a href="{% url 'venue_detail' object.pk %}" class="btn btn-primary"><span
class="fas fa-eye-open"></span> Open Page</a>
class="fas fa-eye"></span> Open Page</a>
<a href="{% url 'venue_update' object.pk %}" class="btn btn-warning"><span
class="fas fa-edit"></span> Edit</a>
</div>

View File

@@ -93,10 +93,12 @@ urlpatterns = [
permission_required_with_403('RIGS.view_event')(versioning.VersionHistory.as_view()),
name='event_history', kwargs={'model': models.Event}),
# Event H&S
path('event/<int:pk>/ra/', permission_required_with_403('RIGS.change_event')(rigboard.EventRADetail.as_view()),
path('event/<int:pk>/ra/', permission_required_with_403('RIGS.change_event')(rigboard.EventRiskAssessmentCreate.as_view()),
name='event_ra'),
path('event/ra/<int:pk>/edit/', permission_required_with_403('RIGS.change_event')(rigboard.EventRAEdit.as_view()),
name='event_ra_edit'),
path('event/ra/<int:pk>/', permission_required_with_403('RIGS.change_event')(rigboard.EventRiskAssessmentDetail.as_view()),
name='ra_detail'),
path('event/ra/<int:pk>/edit/', permission_required_with_403('RIGS.change_event')(rigboard.EventRiskAssessmentEdit.as_view()),
name='ra_edit'),
path('event/ra/<int:pk>/history/', permission_required_with_403('RIGS.change_event')(versioning.VersionHistory.as_view()),
name='ra_history', kwargs={'model': models.RiskAssessment}),
path('event/ra/list', permission_required_with_403('RIGS.change_event')(rigboard.EventRiskAssessmentList.as_view()),

View File

@@ -180,6 +180,7 @@ class VenueCreate(generic.CreateView):
class VenueUpdate(generic.UpdateView):
template_name = 'venue_form.html'
model = models.Venue
fields = ['name', 'phone', 'email', 'address', 'notes', 'three_phase_available']