This commit is contained in:
2020-08-29 17:31:41 +01:00
parent d708207ab9
commit 1feb9449ed
9 changed files with 27 additions and 14 deletions

View File

@@ -25,7 +25,7 @@ from django.utils.decorators import method_decorator
# Displays the current rig count along with a few other bits and pieces
@method_decorator(never_cache, name='dispatch') # Disable browser based caching
@method_decorator(never_cache, name='dispatch') # Disable browser based caching
class Index(generic.TemplateView):
template_name = 'index.html'
@@ -34,6 +34,7 @@ class Index(generic.TemplateView):
context['rig_count'] = models.Event.objects.rig_count()
return context
class SecureAPIRequest(generic.View):
models = {
'venue': models.Venue,

View File

@@ -175,9 +175,9 @@ class EventChecklistForm(forms.ModelForm):
items = {}
def clean(self):
vehicles = {key:val for key, val in self.data.items()
if key.startswith('vehicle')}
drivers = {key:val for key, val in self.data.items()
vehicles = {key: val for key, val in self.data.items()
if key.startswith('vehicle')}
drivers = {key: val for key, val in self.data.items()
if key.startswith('driver')}
for key in vehicles:
pk = int(key.split('_')[1])

View File

@@ -89,6 +89,7 @@ class EventChecklistDetail(generic.DetailView):
model = models.EventChecklist
template_name = 'event_checklist_detail.html'
class EventChecklistEdit(generic.UpdateView):
model = models.EventChecklist
template_name = 'event_checklist_form.html'
@@ -102,6 +103,7 @@ class EventChecklistEdit(generic.UpdateView):
context['edit'] = True
return context
class EventChecklistCreate(generic.CreateView):
model = models.EventChecklist
template_name = 'event_checklist_form.html'

View File

@@ -473,6 +473,7 @@ class Event(models.Model, RevisionMixin):
self.full_clean()
super(Event, self).save(*args, **kwargs)
class EventItem(models.Model):
event = models.ForeignKey('Event', related_name='items', blank=True, on_delete=models.CASCADE)
name = models.CharField(max_length=255)
@@ -633,7 +634,8 @@ class RiskAssessment(models.Model, RevisionMixin):
def __str__(self):
return "%i - %s" % (self.pk, self.event)
@reversion.register(follow=['vehicles',])
@reversion.register(follow=['vehicles', ])
class EventChecklist(models.Model, RevisionMixin):
event = models.OneToOneField('Event', on_delete=models.CASCADE)

View File

@@ -142,6 +142,8 @@ def send_admin_awaiting_approval_email(user, request, **kwargs):
user_activated.connect(send_admin_awaiting_approval_email)
# TODO Move
def update_cache(sender, instance, created, **kwargs):
cache.clear()

View File

@@ -22,6 +22,7 @@ from functools import reduce
from PyRIGS.views import GenericListView
class PersonList(GenericListView):
template_name = 'person_list.html'
model = models.Person

View File

@@ -22,13 +22,13 @@ for app in apps.get_app_configs():
if appname == 'RIGS':
appname = 'rigboard'
urlpatterns += [path(appname + '/activity/', permission_required_with_403('RIGS.view_event')(views.ActivityTable.as_view()),
name='activity_table', kwargs={'app': appname, 'models': views.get_models(app.label)}),]
name='activity_table', kwargs={'app': appname, 'models': views.get_models(app.label)}), ]
else:
urlpatterns += [path(appname + '/activity/', permission_required_with_403('RIGS.view_event')(views.ActivityTable.as_view()),
name=appname + '_activity_table', kwargs={'app': appname, 'models': views.get_models(app.label)}),]
name=appname + '_activity_table', kwargs={'app': appname, 'models': views.get_models(app.label)}), ]
for model in views.get_models(app.label):
modelname = model.__name__.lower()
urlpatterns += [
path(appname + '/' + modelname + '/<str:pk>/history/', permission_required_with_403('{}.change_{}'.format(app.label, modelname))(views.VersionHistory.as_view()),
name='{}_history'.format(modelname), kwargs={'model': model, 'app': appname,}),
name='{}_history'.format(modelname), kwargs={'model': model, 'app': appname, }),
]

View File

@@ -127,7 +127,7 @@ class ModelComparison(object):
comparisonParams = {'excluded_keys': ['id', 'event', 'order']}
# Build some dicts of what we have
# build a list of items, key is the item_pk
# build a list of items, key is the item_pk
for version in old_item_versions: # put all the old versions in a list
if version.field_dict["event_id"] == int(self.new.pk):
compare = ModelComparison(old=version._object_version.object, **comparisonParams)

View File

@@ -18,6 +18,7 @@ from versioning.versioning import RIGSVersion
from django.views.decorators.cache import never_cache
from django.utils.decorators import method_decorator
class VersionHistory(generic.ListView):
model = RIGSVersion
template_name = "version_history.html"
@@ -29,7 +30,7 @@ class VersionHistory(generic.ListView):
"-revision__date_created")
def get_object(self, **kwargs):
#Goddamit, almost got away without specific hacks
# Goddamit, almost got away without specific hacks
if self.kwargs['model'].__name__ == 'Asset':
return get_object_or_404(self.kwargs['model'], asset_id=self.kwargs['pk'])
else:
@@ -43,12 +44,14 @@ class VersionHistory(generic.ListView):
return context
def get_models(app=None):
models = filter(lambda item: not hasattr(item, 'reversion_hide'),reversion.get_registered_models())
if app != None:
models = filter(lambda item: item in apps.get_app_config(app).get_models(),models)
models = filter(lambda item: not hasattr(item, 'reversion_hide'), reversion.get_registered_models())
if app is not None:
models = filter(lambda item: item in apps.get_app_config(app).get_models(), models)
return models
class ActivityTable(generic.ListView):
model = RIGSVersion
template_name = "activity_table.html"
@@ -67,7 +70,9 @@ class ActivityTable(generic.ListView):
return context
# Appears on homepage
@method_decorator(never_cache, name='dispatch') # Disable browser based caching
@method_decorator(never_cache, name='dispatch') # Disable browser based caching
class ActivityFeed(generic.ListView):
model = RIGSVersion
template_name = "activity_feed_data.html"