From e7fcaa36bb91011cee3d721494fbc4d4e01069de Mon Sep 17 00:00:00 2001 From: FreneticScribbler Date: Fri, 14 Feb 2020 11:45:42 +0000 Subject: [PATCH] WIP: Audit modal works Need to get the ID search working. --- assets/templates/asset_audit.html | 30 +++-------------- assets/templates/asset_audit_list.html | 46 ++++++++++++++++++++++++++ assets/templates/asset_update.html | 2 +- assets/urls.py | 4 +-- assets/views.py | 34 +++++++++---------- 5 files changed, 70 insertions(+), 46 deletions(-) create mode 100644 assets/templates/asset_audit_list.html diff --git a/assets/templates/asset_audit.html b/assets/templates/asset_audit.html index 20e37f1a..26f426a0 100644 --- a/assets/templates/asset_audit.html +++ b/assets/templates/asset_audit.html @@ -1,14 +1,9 @@ -{% extends 'base_assets.html' %} +{% extends request.is_ajax|yesno:'base_ajax.html,base_assets.html' %} {% load widget_tweaks %} {% block title %}Audit Asset {{ object.asset_id }}{% endblock %} {% block content %} - -
+ {% include 'form_errors.html' %} {% csrf_token %} @@ -58,25 +53,10 @@
- -
- +
+ +
{% endblock %} - -{% block js%} -{% if edit %} - -{% endif %} -{% endblock %} diff --git a/assets/templates/asset_audit_list.html b/assets/templates/asset_audit_list.html new file mode 100644 index 00000000..8019a34c --- /dev/null +++ b/assets/templates/asset_audit_list.html @@ -0,0 +1,46 @@ +{% extends 'base_assets.html' %} +{% block title %}Asset Audit List{% endblock %} +{% load static %} +{% load paginator from filters %} +{% load widget_tweaks %} + +{% block js %} + + + +{% endblock %} + +{% block content %} + + +
+
+ {% render_field form.query|add_class:'form-control' placeholder='Enter Asset ID' style="width: 250px"%} + + Search +
+
+ + + + + + + + + + + + + {% include 'partials/asset_list_table_body.html' %} + +
Asset IDDescriptionCategoryStatus
+ +{% if is_paginated %} +
+ {% paginator %} +
+{% endif %} +{% endblock %} diff --git a/assets/templates/asset_update.html b/assets/templates/asset_update.html index 0540e590..7bd9af5f 100644 --- a/assets/templates/asset_update.html +++ b/assets/templates/asset_update.html @@ -1,4 +1,4 @@ -{% extends 'base_assets.html' %} +{% extends request.is_ajax|yesno:'base_ajax.html,base_assets.html' %} {% load widget_tweaks %} {% block title %}Asset {{ object.asset_id }}{% endblock %} diff --git a/assets/urls.py b/assets/urls.py index c27e5bfa..9cb92c44 100644 --- a/assets/urls.py +++ b/assets/urls.py @@ -31,8 +31,8 @@ urlpatterns = [ views.AssetOembed.as_view(), name='asset_oembed'), - path('asset/audit/', permission_required_with_403('assets.view_asset')(views.AssetAuditList.as_view()), name='asset_audit_list'), - path('asset/id//audit/', permission_required_with_403('assets.view_asset')(views.AssetAudit.as_view()), name='asset_audit'), + path('asset/audit/', permission_required_with_403('assets.change_asset')(views.AssetAuditList.as_view()), name='asset_audit_list'), + path('asset/id//audit/', permission_required_with_403('assets.change_asset')(views.AssetAudit.as_view()), name='asset_audit'), path('supplier/list', views.SupplierList.as_view(), name='supplier_list'), path('supplier/', views.SupplierDetail.as_view(), name='supplier_detail'), diff --git a/assets/views.py b/assets/views.py index f3f21c2b..e23b9d9d 100644 --- a/assets/views.py +++ b/assets/views.py @@ -4,9 +4,11 @@ from django.http import HttpResponse, Http404 from django.views import generic from django.views.decorators.csrf import csrf_exempt from django.utils.decorators import method_decorator -from django.urls import reverse +from django.urls import reverse_lazy, reverse from django.db.models import Q from django.shortcuts import get_object_or_404 +from django.core import serializers +from django.contrib import messages from assets import models, forms from RIGS import versioning @@ -110,7 +112,14 @@ class AssetEdit(LoginRequiredMixin, AssetIDUrlMixin, generic.UpdateView): return context def get_success_url(self): - return reverse("asset_detail", kwargs={"pk": self.object.asset_id}) + if self.request.is_ajax(): + url = reverse_lazy('closemodal') + update_url = str(reverse_lazy('asset_update', kwargs={'pk': self.object.pk})) + messages.info(self.request, "modalobject=" + serializers.serialize("json", [self.object])) + messages.info(self.request, "modalobject[0]['update_url']='" + update_url + "'") + else: + url = reverse_lazy('asset_detail', kwargs={'pk': self.object.asset_id, }) + return url class AssetCreate(LoginRequiredMixin, generic.CreateView): @@ -174,24 +183,13 @@ class AssetEmbed(AssetDetail): template_name = 'asset_embed.html' -class AssetAuditList(LoginRequiredMixin, generic.ListView): - model = models.Asset - template_name = 'asset_list.html' - paginate_by = 40 - ordering = ['-pk'] +@method_decorator(csrf_exempt, name='dispatch') +class AssetAuditList(AssetList): + template_name = 'asset_audit_list.html' -class AssetAudit(LoginRequiredMixin, AssetIDUrlMixin, generic.UpdateView): +class AssetAudit(AssetEdit): template_name = 'asset_audit.html' - model = models.Asset - form_class = forms.AssetForm - - def get_context_data(self, **kwargs): - context = super().get_context_data(**kwargs) - context['edit'] = True - context['connectors'] = models.Connector.objects.all() - - return context def get_success_url(self): # TODO For some reason this doesn't stick when done in form_valid?? @@ -199,7 +197,7 @@ class AssetAudit(LoginRequiredMixin, AssetIDUrlMixin, generic.UpdateView): asset.last_audited_by = self.request.user asset.last_audited_at = datetime.datetime.now() asset.save() - return reverse("asset_audit_list") + return super().get_success_url() class SupplierList(generic.ListView):