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 # 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): class Index(generic.TemplateView):
template_name = 'index.html' template_name = 'index.html'
@@ -34,6 +34,7 @@ class Index(generic.TemplateView):
context['rig_count'] = models.Event.objects.rig_count() context['rig_count'] = models.Event.objects.rig_count()
return context return context
class SecureAPIRequest(generic.View): class SecureAPIRequest(generic.View):
models = { models = {
'venue': models.Venue, 'venue': models.Venue,

View File

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

View File

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

View File

@@ -473,6 +473,7 @@ class Event(models.Model, RevisionMixin):
self.full_clean() self.full_clean()
super(Event, self).save(*args, **kwargs) super(Event, self).save(*args, **kwargs)
class EventItem(models.Model): class EventItem(models.Model):
event = models.ForeignKey('Event', related_name='items', blank=True, on_delete=models.CASCADE) event = models.ForeignKey('Event', related_name='items', blank=True, on_delete=models.CASCADE)
name = models.CharField(max_length=255) name = models.CharField(max_length=255)
@@ -633,7 +634,8 @@ class RiskAssessment(models.Model, RevisionMixin):
def __str__(self): def __str__(self):
return "%i - %s" % (self.pk, self.event) return "%i - %s" % (self.pk, self.event)
@reversion.register(follow=['vehicles',])
@reversion.register(follow=['vehicles', ])
class EventChecklist(models.Model, RevisionMixin): class EventChecklist(models.Model, RevisionMixin):
event = models.OneToOneField('Event', on_delete=models.CASCADE) 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) user_activated.connect(send_admin_awaiting_approval_email)
# TODO Move # TODO Move
def update_cache(sender, instance, created, **kwargs): def update_cache(sender, instance, created, **kwargs):
cache.clear() cache.clear()

View File

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

View File

@@ -22,13 +22,13 @@ for app in apps.get_app_configs():
if appname == 'RIGS': if appname == 'RIGS':
appname = 'rigboard' appname = 'rigboard'
urlpatterns += [path(appname + '/activity/', permission_required_with_403('RIGS.view_event')(views.ActivityTable.as_view()), 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: else:
urlpatterns += [path(appname + '/activity/', permission_required_with_403('RIGS.view_event')(views.ActivityTable.as_view()), 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): for model in views.get_models(app.label):
modelname = model.__name__.lower() modelname = model.__name__.lower()
urlpatterns += [ urlpatterns += [
path(appname + '/' + modelname + '/<str:pk>/history/', permission_required_with_403('{}.change_{}'.format(app.label, modelname))(views.VersionHistory.as_view()), 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']} comparisonParams = {'excluded_keys': ['id', 'event', 'order']}
# Build some dicts of what we have # 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 for version in old_item_versions: # put all the old versions in a list
if version.field_dict["event_id"] == int(self.new.pk): if version.field_dict["event_id"] == int(self.new.pk):
compare = ModelComparison(old=version._object_version.object, **comparisonParams) 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.views.decorators.cache import never_cache
from django.utils.decorators import method_decorator from django.utils.decorators import method_decorator
class VersionHistory(generic.ListView): class VersionHistory(generic.ListView):
model = RIGSVersion model = RIGSVersion
template_name = "version_history.html" template_name = "version_history.html"
@@ -29,7 +30,7 @@ class VersionHistory(generic.ListView):
"-revision__date_created") "-revision__date_created")
def get_object(self, **kwargs): 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': if self.kwargs['model'].__name__ == 'Asset':
return get_object_or_404(self.kwargs['model'], asset_id=self.kwargs['pk']) return get_object_or_404(self.kwargs['model'], asset_id=self.kwargs['pk'])
else: else:
@@ -43,12 +44,14 @@ class VersionHistory(generic.ListView):
return context return context
def get_models(app=None): def get_models(app=None):
models = filter(lambda item: not hasattr(item, 'reversion_hide'),reversion.get_registered_models()) models = filter(lambda item: not hasattr(item, 'reversion_hide'), reversion.get_registered_models())
if app != None: if app is not None:
models = filter(lambda item: item in apps.get_app_config(app).get_models(),models) models = filter(lambda item: item in apps.get_app_config(app).get_models(), models)
return models return models
class ActivityTable(generic.ListView): class ActivityTable(generic.ListView):
model = RIGSVersion model = RIGSVersion
template_name = "activity_table.html" template_name = "activity_table.html"
@@ -67,7 +70,9 @@ class ActivityTable(generic.ListView):
return context return context
# Appears on homepage # 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): class ActivityFeed(generic.ListView):
model = RIGSVersion model = RIGSVersion
template_name = "activity_feed_data.html" template_name = "activity_feed_data.html"