diff --git a/RIGS/templates/RIGS/event_detail.html b/RIGS/templates/RIGS/event_detail.html
index 176756dc..8668bbac 100644
--- a/RIGS/templates/RIGS/event_detail.html
+++ b/RIGS/templates/RIGS/event_detail.html
@@ -245,7 +245,7 @@
diff --git a/assets/models.py b/assets/models.py
index 993c8c34..58877220 100644
--- a/assets/models.py
+++ b/assets/models.py
@@ -6,6 +6,10 @@ from django.urls import reverse
from django.db.models.signals import pre_save
from django.dispatch.dispatcher import receiver
+from reversion import revisions as reversion
+from reversion.models import Version
+
+from RIGS.models import RevisionMixin
class AssetCategory(models.Model):
class Meta:
@@ -30,7 +34,8 @@ class AssetStatus(models.Model):
return self.name
-class Supplier(models.Model):
+@reversion.register
+class Supplier(models.Model, RevisionMixin):
name = models.CharField(max_length=80)
class Meta:
@@ -55,7 +60,8 @@ class Connector(models.Model):
return self.description
-class Asset(models.Model):
+@reversion.register
+class Asset(models.Model, RevisionMixin):
class Meta:
ordering = ['asset_id_prefix', 'asset_id_number']
permissions = (
diff --git a/assets/templates/asset_update.html b/assets/templates/asset_update.html
index faee7662..9987e4fe 100644
--- a/assets/templates/asset_update.html
+++ b/assets/templates/asset_update.html
@@ -45,6 +45,16 @@
+{% if not edit %}
+
+{% endif %}
+
{% endblock %}
{% block js%}
diff --git a/assets/urls.py b/assets/urls.py
index 0a8ff599..ed3c0633 100644
--- a/assets/urls.py
+++ b/assets/urls.py
@@ -1,5 +1,7 @@
+from django.conf.urls import url
from django.urls import path
-from assets import views
+from assets import views, models
+from RIGS import versioning
from PyRIGS.decorators import permission_required_with_403
@@ -10,6 +12,8 @@ urlpatterns = [
path('asset/create/', permission_required_with_403('assets.add_asset')(views.AssetCreate.as_view()), name='asset_create'),
path('asset/id/
/edit/', permission_required_with_403('assets.change_asset')(views.AssetEdit.as_view()), name='asset_update'),
path('asset/id//duplicate/', permission_required_with_403('assets.add_asset')(views.AssetDuplicate.as_view()), name='asset_duplicate'),
+ path('asset/id//history/', views.AssetVersionHistory.as_view(),
+ name='asset_history', kwargs={'model': models.Asset}),
path('asset/search/', views.AssetSearch.as_view(), name='asset_search_json'),
diff --git a/assets/views.py b/assets/views.py
index 06449cdb..7b8b0cce 100644
--- a/assets/views.py
+++ b/assets/views.py
@@ -6,7 +6,7 @@ from django.utils.decorators import method_decorator
from django.urls import reverse
from django.db.models import Q
from assets import models, forms
-
+from RIGS import versioning
@method_decorator(csrf_exempt, name='dispatch')
class AssetList(LoginRequiredMixin, generic.ListView):
@@ -203,3 +203,17 @@ class SupplierUpdate(generic.UpdateView):
model = models.Supplier
form_class = forms.SupplierForm
template_name = 'supplier_update.html'
+
+class AssetVersionHistory(AssetIDUrlMixin, versioning.VersionHistory):
+ def get_context_data(self, **kwargs):
+ thisModel = self.kwargs['model']
+ context = super(versioning.VersionHistory, self).get_context_data(**kwargs)
+ queryset = models.Asset.objects.filter(asset_id=self.kwargs['pk'])
+ try:
+ # Get the single item from the filtered queryset
+ context['object'] = queryset.get()
+ except queryset.model.DoesNotExist:
+ raise Http404(_("No %(verbose_name)s found matching the query") %
+ {'verbose_name': queryset.model._meta.verbose_name})
+
+ return context
diff --git a/templates/base_assets.html b/templates/base_assets.html
index 7dd53034..b75ae15b 100644
--- a/templates/base_assets.html
+++ b/templates/base_assets.html
@@ -5,7 +5,7 @@
{% endblock %}
{% block titleelements %}
- {% if perms.assets.view_asset%}
+ {% if perms.assets.view_asset %}
Assets
{% endif %}
- {% if perms.assets.view_supplier%}
+ {% if perms.assets.view_supplier %}
Suppliers
{% endif %}
+ {% if perms.assets.view_asset %}
+ Recent Changes
+ {% endif %}
{% endblock %}