Different approach to RA linking

This commit is contained in:
2020-05-28 21:46:39 +01:00
parent 00226e9c22
commit 4cfd83eeb3
7 changed files with 29 additions and 44 deletions

View File

@@ -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

View File

@@ -1,4 +1,4 @@
# Generated by Django 3.0.3 on 2020-05-28 16:51
# Generated by Django 3.0.3 on 2020-05-28 20:43
from django.conf import settings
from django.db import migrations, models
@@ -20,8 +20,6 @@ class Migration(migrations.Migration):
name='RiskAssessment',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('created', models.DateTimeField(blank=True, null=True)),
('last_edited', models.DateTimeField(blank=True, null=True)),
('nonstandard_equipment', models.BooleanField(default=False)),
('nonstandard_use', models.BooleanField(default=False)),
('contractors', models.BooleanField(default=False)),
@@ -45,13 +43,8 @@ class Migration(migrations.Migration):
('special_structures', models.BooleanField(default=False)),
('persons_responsible_structures', models.TextField(blank=True, null=True)),
('suspended_structures', models.BooleanField(default=False)),
('completed_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='completer', to=settings.AUTH_USER_MODEL, verbose_name='Completed By')),
('event', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to='RIGS.Event')),
('power_mic', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='power_mic', to=settings.AUTH_USER_MODEL, verbose_name='Power MIC')),
],
),
migrations.AddField(
model_name='event',
name='risk_assessment',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='RIGS.RiskAssessment'),
),
]

View File

@@ -326,9 +326,6 @@ class Event(models.Model, RevisionMixin):
auth_request_at = models.DateTimeField(null=True, blank=True)
auth_request_to = models.EmailField(null=True, blank=True)
# Risk assessment info
risk_assessment = models.ForeignKey('RiskAssessment', null=True, blank=True, on_delete=models.CASCADE)
# Calculated values
"""
EX Vat
@@ -574,11 +571,7 @@ class Payment(models.Model):
@reversion.register
class RiskAssessment(models.Model):
completed_by = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='completer', blank=True, null=True,
verbose_name="Completed By", on_delete=models.CASCADE)
created = models.DateTimeField(blank=True, null=True)
last_edited = models.DateTimeField(blank=True, null=True)
event = models.OneToOneField('Event', on_delete=models.CASCADE)
# General
nonstandard_equipment = models.BooleanField(default=False)
nonstandard_use = models.BooleanField(default=False)
@@ -590,7 +583,7 @@ class RiskAssessment(models.Model):
# Power
big_power = models.BooleanField(default=False)
power_mic = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='power_mic', blank=True, null=True,
verbose_name="Power MIC", on_delete=models.CASCADE)
verbose_name="Power MIC", on_delete=models.CASCADE)
generators = models.BooleanField(default=False)
other_companies_power = models.BooleanField(default=False)
nonstandard_equipment_power = models.BooleanField(default=False)

View File

@@ -92,25 +92,17 @@ class EventRADetail(generic.DetailView):
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)
ra.event = event
if created:
ra.created = timezone.now()
return ra
class EventRAEdit(generic.UpdateView):
model = models.RiskAssessment
template_name = 'risk_assessment_form.html'
form_class = forms.EventRiskAssessmentForm
def get_success_url(self):
ra = self.get_object()
ra.completed_by = self.request.user
ra.last_edited = timezone.now()
ra.save()
return super().get_success_url()
return reverse_lazy('event_ra', kwargs={'pk': self.object.event.pk })
class EventCreate(generic.CreateView):
model = models.Event

View File

@@ -5,7 +5,8 @@
<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>
<div class="col-sm">
<a href="{% url 'event_ra_edit' object.pk %}" class="btn btn-warning"><span class="fas fa-edit"></span> <span
class="hidden-xs">Edit</span></a>
<div class="card card-default mb-3">
<div class="card-header">Meta Details</div>
<div class="card-body">
@@ -27,5 +28,8 @@
</div>
</div>
</div>
<div class="col-sm-12 text-right">
{% include 'partials/last_edited.html' with target="ra_history" %}
</div>
</div>
{% endblock %}

View File

@@ -84,10 +84,6 @@ urlpatterns = [
name='event_oembed'),
path('event/<int:pk>/print/', permission_required_with_403('RIGS.view_event')(rigboard.EventPrint.as_view()),
name='event_print'),
path('event/<int:pk>/ra/', permission_required_with_403('RIGS.change_event')(rigboard.EventRADetail.as_view()),
name='event_ra'),
path('event/<int:pk>/ra/edit/', permission_required_with_403('RIGS.change_event')(rigboard.EventRAEdit.as_view()),
name='event_ra_edit'),
path('event/<int:pk>/edit/', permission_required_with_403('RIGS.change_event')(rigboard.EventUpdate.as_view()),
name='event_update'),
path('event/<int:pk>/duplicate/', permission_required_with_403('RIGS.add_event')(rigboard.EventDuplicate.as_view()),
@@ -95,6 +91,13 @@ urlpatterns = [
path('event/<int:pk>/history/',
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()),
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>/history/', permission_required_with_403('RIGS.change_event')(rigboard.EventRAEdit.as_view()),
name='ra_history', kwargs={'model': models.RiskAssessment}),
# Finance
path('invoice/', permission_required_with_403('RIGS.view_invoice')(finance.InvoiceIndex.as_view()),

View File

@@ -30,7 +30,7 @@ urlpatterns = [
path('asset/search/', views.AssetSearch.as_view(), name='asset_search_json'),
path('asset/id/<str:pk>/embed/',
xframe_options_exempt(
login_required(login_url='/user/login/embed/')(views.AssetEmbed.as_view())),
login_required(login_url='/user/login/embed/')(views.AssetEmbed.as_view())),
name='asset_embed'),
path('asset/id/<str:pk>/oembed_json/',
views.AssetOembed.as_view(),