From c178a293a17131a6672b254856ee2854ce3a9401 Mon Sep 17 00:00:00 2001 From: David Taylor Date: Mon, 19 Jun 2017 23:25:58 +0100 Subject: [PATCH] Fix model registration and RevisionMixin lookups. Also much more efficient and DRY now --- RIGS/models.py | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/RIGS/models.py b/RIGS/models.py index 84b8ba39..5d71c898 100644 --- a/RIGS/models.py +++ b/RIGS/models.py @@ -9,6 +9,7 @@ from django.utils import timezone from django.utils.functional import cached_property from django.utils.encoding import python_2_unicode_compatible from reversion import revisions as reversion +from reversion.models import Version import string import random @@ -61,32 +62,31 @@ class Profile(AbstractUser): class RevisionMixin(object): + @property + def current_version(self): + version = Version.objects.get_for_object(self).select_related('revision').first() + return version + @property def last_edited_at(self): - versions = reversion.get_for_object(self) - if versions: - version = reversion.get_for_object(self)[0] - return version.revision.date_created - else: + version = self.current_version + if version is None: return None + return version.revision.date_created @property def last_edited_by(self): - versions = reversion.get_for_object(self) - if versions: - version = reversion.get_for_object(self)[0] - return version.revision.user - else: + version = self.current_version + if version is None: return None + return version.revision.user @property def current_version_id(self): - versions = reversion.get_for_object(self) - if versions: - version = reversion.get_for_object(self)[0] - return "V{0} | R{1}".format(version.pk, version.revision.pk) - else: + version = self.current_version + if version is None: return None + return "V{0} | R{1}".format(version.pk, version.revision.pk) @reversion.register