diff --git a/RIGS/forms.py b/RIGS/forms.py index 065f440e..0b4b14de 100644 --- a/RIGS/forms.py +++ b/RIGS/forms.py @@ -168,4 +168,4 @@ class EventRiskAssessmentForm(forms.ModelForm): class Meta: model = models.RiskAssessment fields = '__all__' - exclude = [] + exclude = ['reviewed_at', 'reviewed_by'] diff --git a/RIGS/ical.py b/RIGS/ical.py index bd3dfcba..3940390b 100644 --- a/RIGS/ical.py +++ b/RIGS/ical.py @@ -102,7 +102,7 @@ class CalendarICS(ICalFeed): return item.earliest_time def item_end_datetime(self, item): - if type(item.latest_time) == datetime.date: # Ical end_datetime is non-inclusive, so add a day + if isinstance(item.latest_time, datetime.date): # Ical end_datetime is non-inclusive, so add a day return item.latest_time + datetime.timedelta(days=1) return item.latest_time diff --git a/RIGS/models.py b/RIGS/models.py index 34fe50a8..f0ffe0be 100644 --- a/RIGS/models.py +++ b/RIGS/models.py @@ -67,6 +67,8 @@ class Profile(AbstractUser): return self.name # TODO move to versioning - currently get import errors with that + + class RevisionMixin(object): @property def is_first_version(self): @@ -100,7 +102,6 @@ class RevisionMixin(object): return "V{0} | R{1}".format(version.pk, version.revision.pk) - class Person(models.Model, RevisionMixin): name = models.CharField(max_length=50) phone = models.CharField(max_length=15, blank=True, null=True) @@ -616,9 +617,9 @@ class RiskAssessment(models.Model, RevisionMixin): # Blimey that was a lot of options - # reviewed_at = models.DateTimeField() - # reviewed_by = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True, null=True, - # verbose_name="Reviewer", on_delete=models.CASCADE) + reviewed_at = models.DateTimeField(null=True) + reviewed_by = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True, null=True, + verbose_name="Reviewer", on_delete=models.CASCADE) def clean(self): errdict = {} diff --git a/RIGS/rigboard.py b/RIGS/rigboard.py index 8d11f0a3..7c1f401f 100644 --- a/RIGS/rigboard.py +++ b/RIGS/rigboard.py @@ -6,19 +6,18 @@ import urllib.parse from django.contrib.staticfiles.storage import staticfiles_storage from django.core.mail import EmailMessage, EmailMultiAlternatives from django.views import generic -from django.urls import reverse_lazy from django.shortcuts import get_object_or_404 from django.http import HttpResponseRedirect from django.template import RequestContext from django.template.loader import get_template from django.conf import settings from django.urls import reverse +from django.urls import reverse_lazy from django.core import signing from django.http import HttpResponse from django.core.exceptions import SuspiciousOperation from django.db.models import Q from django.contrib import messages -from django.utils import timezone from django.utils.decorators import method_decorator from django.views.decorators.csrf import csrf_exempt from django.utils import timezone @@ -426,63 +425,3 @@ class EventAuthoriseRequestEmailPreview(generic.DetailView): }) context['to_name'] = self.request.GET.get('to_name', None) 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 - template_name = 'risk_assessment_table.html' diff --git a/RIGS/templates/base_rigs.html b/RIGS/templates/base_rigs.html index 6bda8547..46b1d2da 100644 --- a/RIGS/templates/base_rigs.html +++ b/RIGS/templates/base_rigs.html @@ -53,6 +53,16 @@ {% if perms.RIGS.view_venue %}
| {{ object_list.0|verbose_name:'special_structures'|title }} | {{ object_list.0|verbose_name:'persons_responsible_structures'|title }} | {{ object_list.0|verbose_name:'suspended_structures'|title }} | +Review | {% endif %} @@ -79,10 +80,17 @@{{object.special_structures|yesno|title}} | {{ object.persons_responsible_structures|default:'N/A'|linebreaks }} | {{object.suspended_structures|yesno|title}} | ++ {% if object.reviewed_by %} + Reviewed by {{ object.reviewed_by }} at {{ object.reviewed_at }} + {% else %} + Mark Reviewed + {% endif %} + | {% empty %}||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Not Found | +No risk assessments found |