From d31900c5c382ffab079068862ca383eb0f8dd4db Mon Sep 17 00:00:00 2001 From: Arona Date: Wed, 3 Jun 2020 15:15:02 +0100 Subject: [PATCH] Refactor RA creation stuff, again --- RIGS/rigboard.py | 74 +++++++++++++----- .../.risk_assessment_table.html.kate-swp | Bin 61 -> 0 bytes RIGS/templates/partials/yes_no_radio.html | 3 +- RIGS/templates/risk_assessment_detail.html | 2 +- RIGS/templates/risk_assessment_form.html | 10 ++- RIGS/templates/risk_assessment_table.html | 4 +- RIGS/templates/venue_detail.html | 13 +-- RIGS/urls.py | 8 +- RIGS/views.py | 1 + 9 files changed, 74 insertions(+), 41 deletions(-) delete mode 100644 RIGS/templates/.risk_assessment_table.html.kate-swp diff --git a/RIGS/rigboard.py b/RIGS/rigboard.py index 1603f924..e1f846a4 100644 --- a/RIGS/rigboard.py +++ b/RIGS/rigboard.py @@ -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 diff --git a/RIGS/templates/.risk_assessment_table.html.kate-swp b/RIGS/templates/.risk_assessment_table.html.kate-swp deleted file mode 100644 index 6a7e00230550b0d4ed751ebc735b213397f5cbb2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61 zcmZQzU=Z?7EJ;-eE>A2_aLdd|RWQ;sU|?Vn@ncb9%RFnt$TK(I*!1AVo0fd~DZxP? L86Y+WVh2|M#>frI diff --git a/RIGS/templates/partials/yes_no_radio.html b/RIGS/templates/partials/yes_no_radio.html index d0f415ed..7ae89db8 100644 --- a/RIGS/templates/partials/yes_no_radio.html +++ b/RIGS/templates/partials/yes_no_radio.html @@ -1,6 +1,5 @@ -{% load help_text from filters %} + class="col-sm-8 control-label">{{ formitem.help_text|safe }}
{% for radio in formitem %}
diff --git a/RIGS/templates/risk_assessment_detail.html b/RIGS/templates/risk_assessment_detail.html index 6f67c973..363fad12 100644 --- a/RIGS/templates/risk_assessment_detail.html +++ b/RIGS/templates/risk_assessment_detail.html @@ -6,7 +6,7 @@

Risk Assessment for Event N{{ object.event.pk|stringformat:"05d" }} {{ object.event.name }}

-
General
diff --git a/RIGS/templates/risk_assessment_form.html b/RIGS/templates/risk_assessment_form.html index b286e673..6fe7bcff 100644 --- a/RIGS/templates/risk_assessment_form.html +++ b/RIGS/templates/risk_assessment_form.html @@ -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 %}
-

{% if object.pk %}Edit{% else %}Create{% endif %} Risk Assessment for Event N{{ event.pk|stringformat:"05d" }}

-
+

{% if edit %}Edit{% else %}Create{% endif %} Risk Assessment for Event N{{ event.pk|stringformat:"05d" }}

+ {% if edit %} + + {% else %} + + {% endif %} {% csrf_token %}
diff --git a/RIGS/templates/risk_assessment_table.html b/RIGS/templates/risk_assessment_table.html index 4e042206..5763d7d4 100644 --- a/RIGS/templates/risk_assessment_table.html +++ b/RIGS/templates/risk_assessment_table.html @@ -18,7 +18,7 @@ Event - {{ object_list.0|verbose_name:'nonstandard_equipment'|title }} + {{ object_list.0|verbose_name:'nonstandard_equipment'|title }} {{ object_list.0|verbose_name:'nonstandard_use'|title }} {{ object_list.0|verbose_name:'contractors'|title }} {{ object_list.0|verbose_name:'other_companies'|title }} @@ -47,7 +47,7 @@ {% for object in object_list %} - {{ object.event }} + {{ object.event }} {{object.nonstandard_equipment|yesno|title}} {{object.nonstandard_use|yesno|title}} {{object.contractors|yesno|title}} diff --git a/RIGS/templates/venue_detail.html b/RIGS/templates/venue_detail.html index 74f5cc79..954369b3 100644 --- a/RIGS/templates/venue_detail.html +++ b/RIGS/templates/venue_detail.html @@ -9,13 +9,6 @@

Venue | {{ object.name }}

- -
-
- Edit -
-
{% endif %}
@@ -46,8 +39,8 @@
-
-
+
+
Associated Events
{% with object.latest_events as events %} @@ -79,7 +72,7 @@
Open Page + class="fas fa-eye"> Open Page Edit
diff --git a/RIGS/urls.py b/RIGS/urls.py index 7dd23b44..2b7220f8 100644 --- a/RIGS/urls.py +++ b/RIGS/urls.py @@ -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//ra/', permission_required_with_403('RIGS.change_event')(rigboard.EventRADetail.as_view()), + path('event//ra/', permission_required_with_403('RIGS.change_event')(rigboard.EventRiskAssessmentCreate.as_view()), name='event_ra'), - path('event/ra//edit/', permission_required_with_403('RIGS.change_event')(rigboard.EventRAEdit.as_view()), - name='event_ra_edit'), + path('event/ra//', permission_required_with_403('RIGS.change_event')(rigboard.EventRiskAssessmentDetail.as_view()), + name='ra_detail'), + path('event/ra//edit/', permission_required_with_403('RIGS.change_event')(rigboard.EventRiskAssessmentEdit.as_view()), + name='ra_edit'), path('event/ra//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()), diff --git a/RIGS/views.py b/RIGS/views.py index f1a358bc..ea948883 100644 --- a/RIGS/views.py +++ b/RIGS/views.py @@ -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']