diff --git a/RIGS/forms.py b/RIGS/forms.py
index 17ba4acd..2f548632 100644
--- a/RIGS/forms.py
+++ b/RIGS/forms.py
@@ -190,15 +190,11 @@ class EventRiskAssessmentForm(forms.ModelForm):
class EventChecklistForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
- if self.instance.event.venue:
- self.fields['venue'].initial = self.instance.event.venue
self.fields['date'].widget.format = '%Y-%m-%d'
for name, field in self.fields.items():
if field.__class__ == forms.NullBooleanField:
# Only display yes/no to user, the 'none' is only ever set in the background
field.widget = forms.CheckboxInput()
- # Parsed from incoming form data by clean, then saved into models when the form is saved
- items = {}
related_models = {
'venue': models.Venue,
@@ -213,15 +209,16 @@ class EventChecklistForm(forms.ModelForm):
class PowerTestRecordForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
- if self.instance.event.venue:
- self.fields['venue'].initial = self.instance.event.venue
- if self.instance.event.riskassessment.power_mic:
- self.fields['power_mic'].initial = self.instance.event.riskassessment.power_mic
for name, field in self.fields.items():
if field.__class__ == forms.NullBooleanField:
# Only display yes/no to user, the 'none' is only ever set in the background
field.widget = forms.CheckboxInput()
+ related_models = {
+ 'venue': models.Venue,
+ 'power_mic': models.Profile,
+ }
+
class Meta:
model = models.PowerTestRecord
fields = '__all__'
diff --git a/RIGS/templates/event_form.html b/RIGS/templates/event_form.html
index afa8d5b7..2102b18f 100644
--- a/RIGS/templates/event_form.html
+++ b/RIGS/templates/event_form.html
@@ -209,7 +209,7 @@
diff --git a/RIGS/views/hs.py b/RIGS/views/hs.py
index 9bb0e324..16672780 100644
--- a/RIGS/views/hs.py
+++ b/RIGS/views/hs.py
@@ -13,19 +13,12 @@ from django.shortcuts import redirect
class HSCreateView(generic.CreateView):
- def get_form(self, **kwargs):
- form = super().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().get_context_data(**kwargs)
- epk = self.kwargs.get('pk')
- event = models.Event.objects.get(pk=epk)
+ event = models.Event.objects.get(pk=self.kwargs.get('pk'))
context['event'] = event
context['page_title'] = f'Create {self.model.__name__} for Event {event.display_id}'
+ get_related(context['form'], context)
return context
@@ -43,7 +36,6 @@ class MarkReviewed(generic.RedirectView):
class EventRiskAssessmentCreate(HSCreateView):
model = models.RiskAssessment
template_name = 'hs/risk_assessment_form.html'
- form_class = forms.EventRiskAssessmentForm
def get(self, *args, **kwargs):
epk = kwargs.get('pk')
@@ -55,6 +47,8 @@ class EventRiskAssessmentCreate(HSCreateView):
if ra is not None:
return HttpResponseRedirect(reverse('ra_edit', kwargs={'pk': ra.pk}))
+ form = forms.EventRiskAssessmentForm(initial={'venue': "66"})
+
return super(EventRiskAssessmentCreate, self).get(self)
def get_success_url(self):
@@ -136,19 +130,22 @@ class EventChecklistCreate(HSCreateView):
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, f'A Risk Assessment must exist prior to creating any Event Checklists for {event}! Please create one now.')
return HttpResponseRedirect(reverse('event_ra', kwargs={'pk': epk}))
-
- return super(EventChecklistCreate, self).get(self)
+ return super().get(self)
def get_success_url(self):
return reverse('ec_detail', kwargs={'pk': self.object.pk})
+ def get_context_data(self, **kwargs):
+ context = super().get_context_data(**kwargs)
+ if context['event'].venue:
+ context['venue'] = context['event'].venue
+ return context
+
class PowerTestDetail(generic.DetailView):
model = models.PowerTestRecord
@@ -191,7 +188,6 @@ class PowerTestCreate(HSCreateView):
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()
@@ -204,6 +200,14 @@ class PowerTestCreate(HSCreateView):
def get_success_url(self):
return reverse('pt_detail', kwargs={'pk': self.object.pk})
+ def get_context_data(self, **kwargs):
+ context = super().get_context_data(**kwargs)
+ if context['event'].venue:
+ context['venue'] = context['event'].venue
+ if context['event'].riskassessment.power_mic:
+ context['power_mic'] = context['event'].riskassessment.power_mic
+ return context
+
class HSList(generic.ListView):
paginate_by = 20