Implement codedoctor suggestions

This commit is contained in:
2023-05-17 09:45:46 +01:00
parent 0d1beeaead
commit 8da90ba670
3 changed files with 54 additions and 39 deletions

View File

@@ -1,4 +1,4 @@
# Generated by Django 3.2.16 on 2023-05-10 17:23 # Generated by Django 3.2.19 on 2023-05-17 08:44
from django.conf import settings from django.conf import settings
from django.db import migrations, models from django.db import migrations, models
@@ -19,7 +19,7 @@ class Migration(migrations.Migration):
('time', models.DateTimeField()), ('time', models.DateTimeField()),
('role', models.CharField(blank=True, max_length=50)), ('role', models.CharField(blank=True, max_length=50)),
('vehicle', models.CharField(blank=True, max_length=100)), ('vehicle', models.CharField(blank=True, max_length=100)),
('end_time', models.DateTimeField(null=True)), ('end_time', models.DateTimeField(blank=True, null=True)),
('event', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='crew', to='RIGS.event')), ('event', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='crew', to='RIGS.event')),
('person', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='checkins', to=settings.AUTH_USER_MODEL)), ('person', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='checkins', to=settings.AUTH_USER_MODEL)),
], ],
@@ -145,6 +145,21 @@ class Migration(migrations.Migration):
name='power_mic', name='power_mic',
field=models.ForeignKey(blank=True, help_text='Who is the Power MIC?', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='checklists', to=settings.AUTH_USER_MODEL, verbose_name='Power MIC'), field=models.ForeignKey(blank=True, help_text='Who is the Power MIC?', null=True, on_delete=django.db.models.deletion.CASCADE, related_name='checklists', to=settings.AUTH_USER_MODEL, verbose_name='Power MIC'),
), ),
migrations.AlterField(
model_name='eventchecklist',
name='reviewed_at',
field=models.DateTimeField(blank=True, null=True),
),
migrations.AlterField(
model_name='powertestrecord',
name='reviewed_at',
field=models.DateTimeField(blank=True, null=True),
),
migrations.AlterField(
model_name='riskassessment',
name='reviewed_at',
field=models.DateTimeField(blank=True, null=True),
),
migrations.DeleteModel( migrations.DeleteModel(
name='EventChecklistCrew', name='EventChecklistCrew',
), ),

View File

@@ -711,17 +711,17 @@ def validate_url(value):
class ReviewableModel(models.Model): class ReviewableModel(models.Model):
reviewed_at = models.DateTimeField(null=True) reviewed_at = models.DateTimeField(null=True, blank=True)
reviewed_by = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True, null=True, reviewed_by = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True, null=True,
verbose_name="Reviewer", on_delete=models.CASCADE) verbose_name="Reviewer", on_delete=models.CASCADE)
class Meta:
abstract = True
@cached_property @cached_property
def fieldz(self): def fieldz(self):
return [n.name for n in list(self._meta.get_fields()) if n.name != 'reviewed_at' and n.name != 'reviewed_by' and not n.is_relation and not n.auto_created] return [n.name for n in list(self._meta.get_fields()) if n.name != 'reviewed_at' and n.name != 'reviewed_by' and not n.is_relation and not n.auto_created]
class Meta:
abstract = True
@reversion.register @reversion.register
class RiskAssessment(ReviewableModel, RevisionMixin): class RiskAssessment(ReviewableModel, RevisionMixin):
@@ -821,6 +821,12 @@ class RiskAssessment(ReviewableModel, RevisionMixin):
def get_event_size_display(self): def get_event_size_display(self):
return self.SIZES[self.event_size][1] + " Event" return self.SIZES[self.event_size][1] + " Event"
def __str__(self):
return f"{self.pk} | {self.event}"
def get_absolute_url(self):
return reverse('ra_detail', kwargs={'pk': self.pk})
@property @property
def activity_feed_string(self): def activity_feed_string(self):
return str(self.event) return str(self.event)
@@ -829,12 +835,6 @@ class RiskAssessment(ReviewableModel, RevisionMixin):
def name(self): def name(self):
return str(self) return str(self)
def get_absolute_url(self):
return reverse('ra_detail', kwargs={'pk': self.pk})
def __str__(self):
return f"{self.pk} | {self.event}"
@reversion.register @reversion.register
class EventChecklist(ReviewableModel, RevisionMixin): class EventChecklist(ReviewableModel, RevisionMixin):
@@ -862,6 +862,9 @@ class EventChecklist(ReviewableModel, RevisionMixin):
('review_eventchecklist', 'Can review Event Checklists') ('review_eventchecklist', 'Can review Event Checklists')
] ]
def __str__(self):
return f"{self.pk} - {self.event}"
@property @property
def activity_feed_string(self): def activity_feed_string(self):
return str(self.event) return str(self.event)
@@ -869,9 +872,6 @@ class EventChecklist(ReviewableModel, RevisionMixin):
def get_absolute_url(self): def get_absolute_url(self):
return reverse('ec_detail', kwargs={'pk': self.pk}) return reverse('ec_detail', kwargs={'pk': self.pk})
def __str__(self):
return f"{self.pk} - {self.event}"
@reversion.register @reversion.register
class PowerTestRecord(ReviewableModel, RevisionMixin): class PowerTestRecord(ReviewableModel, RevisionMixin):
@@ -915,6 +915,12 @@ class PowerTestRecord(ReviewableModel, RevisionMixin):
all_rcds_tested = models.BooleanField(blank=True, null=True, help_text="All circuit RCDs tested?<br><small>(using test button)</small>") all_rcds_tested = models.BooleanField(blank=True, null=True, help_text="All circuit RCDs tested?<br><small>(using test button)</small>")
public_sockets_tested = models.BooleanField(blank=True, null=True, help_text="Public/Performer accessible circuits tested?<br><small>(using socket tester)</small>") public_sockets_tested = models.BooleanField(blank=True, null=True, help_text="Public/Performer accessible circuits tested?<br><small>(using socket tester)</small>")
class Meta:
ordering = ['event']
permissions = [
('review_power', 'Can review Power Test Records')
]
def __str__(self): def __str__(self):
return f"{self.pk} - {self.event}" return f"{self.pk} - {self.event}"
@@ -922,12 +928,6 @@ class PowerTestRecord(ReviewableModel, RevisionMixin):
def activity_feed_string(self): def activity_feed_string(self):
return str(self.event) return str(self.event)
class Meta:
ordering = ['event']
permissions = [
('review_power', 'Can review Power Test Records')
]
class EventCheckIn(models.Model): class EventCheckIn(models.Model):
event = models.ForeignKey('Event', related_name='crew', on_delete=models.CASCADE) event = models.ForeignKey('Event', related_name='crew', on_delete=models.CASCADE)
@@ -935,7 +935,10 @@ class EventCheckIn(models.Model):
time = models.DateTimeField() time = models.DateTimeField()
role = models.CharField(max_length=50, blank=True) role = models.CharField(max_length=50, blank=True)
vehicle = models.CharField(max_length=100, blank=True) vehicle = models.CharField(max_length=100, blank=True)
end_time = models.DateTimeField(null=True) end_time = models.DateTimeField(null=True, blank=True)
def __str__(self):
return f"{self.person} on {self.event}"
def clean(self): def clean(self):
sass = " Please invent time travel and retry." sass = " Please invent time travel and retry."
@@ -944,11 +947,8 @@ class EventCheckIn(models.Model):
if self.end_time and self.end_time < self.time: if self.end_time and self.end_time < self.time:
raise ValidationError("May not check out before you've checked in." + sass) raise ValidationError("May not check out before you've checked in." + sass)
def get_absolute_url(self):
return reverse('event_detail', kwargs={'pk': self.event_id})
def active(self): def active(self):
return end_time is not None return end_time is not None
def get_absolute_url(self):
return reverse('event_detail', kwargs={'pk': self.event.pk})
def __str__(self):
return f"{self.person} on {self.event}"

View File

@@ -1,7 +1,7 @@
from django.apps import apps from django.apps import apps
from django.contrib import messages from django.contrib import messages
from django.http import HttpResponseRedirect from django.http import HttpResponseRedirect
from django.urls import reverse_lazy from django.urls import reverse
from django.utils import timezone from django.utils import timezone
from django.views import generic from django.views import generic
from reversion import revisions as reversion from reversion import revisions as reversion
@@ -37,7 +37,7 @@ class MarkReviewed(generic.View):
obj.reviewed_by = self.request.user obj.reviewed_by = self.request.user
obj.reviewed_at = timezone.now() obj.reviewed_at = timezone.now()
obj.save() obj.save()
return HttpResponseRedirect(reverse_lazy('hs_list')) return HttpResponseRedirect(reverse('hs_list'))
class EventRiskAssessmentCreate(HSCreateView): class EventRiskAssessmentCreate(HSCreateView):
@@ -53,12 +53,12 @@ class EventRiskAssessmentCreate(HSCreateView):
ra = models.RiskAssessment.objects.filter(event=event).first() ra = models.RiskAssessment.objects.filter(event=event).first()
if ra is not None: if ra is not None:
return HttpResponseRedirect(reverse_lazy('ra_edit', kwargs={'pk': ra.pk})) return HttpResponseRedirect(reverse('ra_edit', kwargs={'pk': ra.pk}))
return super(EventRiskAssessmentCreate, self).get(self) return super(EventRiskAssessmentCreate, self).get(self)
def get_success_url(self): def get_success_url(self):
return reverse_lazy('ra_detail', kwargs={'pk': self.object.pk}) return reverse('ra_detail', kwargs={'pk': self.object.pk})
class EventRiskAssessmentEdit(generic.UpdateView): class EventRiskAssessmentEdit(generic.UpdateView):
@@ -71,7 +71,7 @@ class EventRiskAssessmentEdit(generic.UpdateView):
ra.reviewed_by = None ra.reviewed_by = None
ra.reviewed_at = None ra.reviewed_at = None
ra.save() ra.save()
return reverse_lazy('ra_detail', kwargs={'pk': self.object.pk}) return reverse('ra_detail', kwargs={'pk': self.object.pk})
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(EventRiskAssessmentEdit, self).get_context_data(**kwargs) context = super(EventRiskAssessmentEdit, self).get_context_data(**kwargs)
@@ -114,7 +114,7 @@ class EventChecklistEdit(generic.UpdateView):
ec.reviewed_by = None ec.reviewed_by = None
ec.reviewed_at = None ec.reviewed_at = None
ec.save() ec.save()
return reverse_lazy('ec_detail', kwargs={'pk': self.object.pk}) return reverse('ec_detail', kwargs={'pk': self.object.pk})
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super(EventChecklistEdit, self).get_context_data(**kwargs) context = super(EventChecklistEdit, self).get_context_data(**kwargs)
@@ -142,12 +142,12 @@ class EventChecklistCreate(HSCreateView):
if ra is None: 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.') 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_lazy('event_ra', kwargs={'pk': epk})) return HttpResponseRedirect(reverse('event_ra', kwargs={'pk': epk}))
return super(EventChecklistCreate, self).get(self) return super(EventChecklistCreate, self).get(self)
def get_success_url(self): def get_success_url(self):
return reverse_lazy('ec_detail', kwargs={'pk': self.object.pk}) return reverse('ec_detail', kwargs={'pk': self.object.pk})
class PowerTestDetail(generic.DetailView): class PowerTestDetail(generic.DetailView):
@@ -170,7 +170,7 @@ class PowerTestEdit(generic.UpdateView):
ec.reviewed_by = None ec.reviewed_by = None
ec.reviewed_at = None ec.reviewed_at = None
ec.save() ec.save()
return reverse_lazy('ec_detail', kwargs={'pk': self.object.pk}) return reverse('ec_detail', kwargs={'pk': self.object.pk})
def get_context_data(self, **kwargs): def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs) context = super().get_context_data(**kwargs)
@@ -197,12 +197,12 @@ class PowerTestCreate(HSCreateView):
if ra is None: if ra is None:
messages.error(self.request, f'A Risk Assessment must exist prior to creating any Power Test Records for {event}! Please create one now.') messages.error(self.request, f'A Risk Assessment must exist prior to creating any Power Test Records for {event}! Please create one now.')
return HttpResponseRedirect(reverse_lazy('event_ra', kwargs={'pk': epk})) return HttpResponseRedirect(reverse('event_ra', kwargs={'pk': epk}))
return super().get(self) return super().get(self)
def get_success_url(self): def get_success_url(self):
return reverse_lazy('pt_detail', kwargs={'pk': self.object.pk}) return reverse('pt_detail', kwargs={'pk': self.object.pk})
class HSList(generic.ListView): class HSList(generic.ListView):