mirror of
https://github.com/nottinghamtec/PyRIGS.git
synced 2026-01-27 02:12:18 +00:00
Refactor RA creation stuff, again
This commit is contained in:
@@ -84,26 +84,6 @@ class EventEmbed(EventDetail):
|
|||||||
template_name = 'event_embed.html'
|
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):
|
class EventCreate(generic.CreateView):
|
||||||
model = models.Event
|
model = models.Event
|
||||||
form_class = forms.EventForm
|
form_class = forms.EventForm
|
||||||
@@ -441,6 +421,60 @@ class EventAuthoriseRequestEmailPreview(generic.DetailView):
|
|||||||
return context
|
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):
|
class EventRiskAssessmentList(generic.ListView):
|
||||||
paginate_by = 20
|
paginate_by = 20
|
||||||
model = models.RiskAssessment
|
model = models.RiskAssessment
|
||||||
|
|||||||
Binary file not shown.
@@ -1,6 +1,5 @@
|
|||||||
{% load help_text from filters %}
|
|
||||||
<label for="{{ formitem.id_for_label }}"
|
<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">
|
<div class="col-4 pb-3">
|
||||||
{% for radio in formitem %}
|
{% for radio in formitem %}
|
||||||
<div class="custom-control custom-radio">
|
<div class="custom-control custom-radio">
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<div class="row my-3 py-3">
|
<div class="row my-3 py-3">
|
||||||
<div class="col-sm-12">
|
<div class="col-sm-12">
|
||||||
<h3>Risk Assessment for Event N{{ object.event.pk|stringformat:"05d" }} {{ object.event.name }}</h3>
|
<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>
|
class="hidden-xs">Edit</span></a>
|
||||||
<div class="card card-default mb-3">
|
<div class="card card-default mb-3">
|
||||||
<div class="card-header">General</div>
|
<div class="card-header">General</div>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
{% load static %}
|
{% load static %}
|
||||||
{% load help_text from filters %}
|
{% 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 css %}
|
||||||
{{ block.super }}
|
{{ block.super }}
|
||||||
@@ -29,8 +29,12 @@
|
|||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="col-sm-offset-1 col-sm-10">
|
<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>
|
<h3>{% if edit %}Edit{% else %}Create{% endif %} Risk Assessment for Event N{{ event.pk|stringformat:"05d" }}</h3>
|
||||||
<form role="form" method="POST">
|
{% 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 %}
|
{% csrf_token %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
<thead class="thead-dark">
|
<thead class="thead-dark">
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="col">Event</th>
|
<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:'nonstandard_use'|title }}</th>
|
||||||
<th scope="col">{{ object_list.0|verbose_name:'contractors'|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>
|
<th scope="col">{{ object_list.0|verbose_name:'other_companies'|title }}</th>
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
<tbody>
|
<tbody>
|
||||||
{% for object in object_list %}
|
{% for object in object_list %}
|
||||||
<tr>
|
<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_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.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>
|
<td class="{% if object.contractors%}bg-danger text-white{%endif%}">{{object.contractors|yesno|title}}</td>
|
||||||
|
|||||||
@@ -9,13 +9,6 @@
|
|||||||
<div class="col-sm-12">
|
<div class="col-sm-12">
|
||||||
<h1>Venue | {{ object.name }}</h1>
|
<h1>Venue | {{ object.name }}</h1>
|
||||||
</div>
|
</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 %}
|
{% endif %}
|
||||||
<div class="col-sm-12">
|
<div class="col-sm-12">
|
||||||
<div class="card card-info">
|
<div class="card card-info">
|
||||||
@@ -46,8 +39,8 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-12">
|
<div class="col-sm-12 py-3">
|
||||||
<div class="card card-default">
|
<div class="card">
|
||||||
<div class="card-header">Associated Events</div>
|
<div class="card-header">Associated Events</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
{% with object.latest_events as events %}
|
{% with object.latest_events as events %}
|
||||||
@@ -79,7 +72,7 @@
|
|||||||
<div class="col-sm-12 text-right">
|
<div class="col-sm-12 text-right">
|
||||||
<div class="btn-group btn-page">
|
<div class="btn-group btn-page">
|
||||||
<a href="{% url 'venue_detail' object.pk %}" class="btn btn-primary"><span
|
<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
|
<a href="{% url 'venue_update' object.pk %}" class="btn btn-warning"><span
|
||||||
class="fas fa-edit"></span> Edit</a>
|
class="fas fa-edit"></span> Edit</a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -93,10 +93,12 @@ urlpatterns = [
|
|||||||
permission_required_with_403('RIGS.view_event')(versioning.VersionHistory.as_view()),
|
permission_required_with_403('RIGS.view_event')(versioning.VersionHistory.as_view()),
|
||||||
name='event_history', kwargs={'model': models.Event}),
|
name='event_history', kwargs={'model': models.Event}),
|
||||||
# Event H&S
|
# 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'),
|
name='event_ra'),
|
||||||
path('event/ra/<int:pk>/edit/', permission_required_with_403('RIGS.change_event')(rigboard.EventRAEdit.as_view()),
|
path('event/ra/<int:pk>/', permission_required_with_403('RIGS.change_event')(rigboard.EventRiskAssessmentDetail.as_view()),
|
||||||
name='event_ra_edit'),
|
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()),
|
path('event/ra/<int:pk>/history/', permission_required_with_403('RIGS.change_event')(versioning.VersionHistory.as_view()),
|
||||||
name='ra_history', kwargs={'model': models.RiskAssessment}),
|
name='ra_history', kwargs={'model': models.RiskAssessment}),
|
||||||
path('event/ra/list', permission_required_with_403('RIGS.change_event')(rigboard.EventRiskAssessmentList.as_view()),
|
path('event/ra/list', permission_required_with_403('RIGS.change_event')(rigboard.EventRiskAssessmentList.as_view()),
|
||||||
|
|||||||
@@ -180,6 +180,7 @@ class VenueCreate(generic.CreateView):
|
|||||||
|
|
||||||
|
|
||||||
class VenueUpdate(generic.UpdateView):
|
class VenueUpdate(generic.UpdateView):
|
||||||
|
template_name = 'venue_form.html'
|
||||||
model = models.Venue
|
model = models.Venue
|
||||||
fields = ['name', 'phone', 'email', 'address', 'notes', 'three_phase_available']
|
fields = ['name', 'phone', 'email', 'address', 'notes', 'three_phase_available']
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user