mirror of
https://github.com/nottinghamtec/PyRIGS.git
synced 2026-01-17 05:22:16 +00:00
Added version history to models with the use of a mixin
This commit is contained in:
@@ -7,7 +7,9 @@ django.setup()
|
||||
from django.db import connections
|
||||
from django.core.exceptions import ObjectDoesNotExist
|
||||
from django.db.utils import ConnectionDoesNotExist
|
||||
from django.db import transaction
|
||||
from RIGS import models
|
||||
import reversion
|
||||
|
||||
def setup_cursor():
|
||||
try:
|
||||
@@ -40,6 +42,8 @@ def import_people():
|
||||
person, created = models.Person.objects.get_or_create(pk=row[0], name=row[1], phone=row[2], email=email, address=row[4], notes=notes)
|
||||
if created:
|
||||
print("Created: " + person.__unicode__())
|
||||
with transaction.atomic(), reversion.create_revision():
|
||||
person.save()
|
||||
else:
|
||||
print("Found: " + person.__unicode__())
|
||||
|
||||
|
||||
@@ -16,8 +16,20 @@ class Profile(AbstractUser):
|
||||
url = "https://www.gravatar.com/avatar/" + hashlib.md5(self.email).hexdigest() + "?d=identicon&s=500"
|
||||
return url
|
||||
|
||||
class RevisionMixin(object):
|
||||
@property
|
||||
def last_edited_at(self):
|
||||
version = reversion.get_for_object(self)[0]
|
||||
return version.revision.date_created
|
||||
|
||||
@property
|
||||
def last_edited_by(self):
|
||||
version = reversion.get_for_object(self)[0]
|
||||
return version.revision.user
|
||||
|
||||
|
||||
@reversion.register
|
||||
class Person(models.Model):
|
||||
class Person(models.Model, RevisionMixin):
|
||||
name = models.CharField(max_length=50)
|
||||
phone = models.CharField(max_length=15, blank=True, null=True)
|
||||
email = models.EmailField(blank=True, null=True)
|
||||
@@ -30,4 +42,5 @@ class Person(models.Model):
|
||||
string = self.name
|
||||
if len(self.notes) > 0:
|
||||
string += "*"
|
||||
return string
|
||||
return string
|
||||
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
<div class="row">
|
||||
{% if not request.is_ajax %}
|
||||
<h3>{{ object.name }}</h3>
|
||||
|
||||
<div class="pull-right">
|
||||
<a href="{% url 'person_update' object.pk %}" class="btn btn-primary">Edit <span
|
||||
class="glyphicon glyphicon-pencil"></span></a>
|
||||
@@ -38,9 +37,16 @@
|
||||
|
||||
{% if request.is_ajax %}
|
||||
{% block footer %}
|
||||
<div class="pull-right">
|
||||
<a href="{% url 'person_update' object.pk %}" class="btn btn-primary">Edit <span
|
||||
class="glyphicon glyphicon-pencil"></span></a>
|
||||
<div class="row">
|
||||
<div class="col-sm-10 align-left">
|
||||
Lasted edited at {{ object.last_edited_at|date:"SHORT_DATE_FORMAT" }} by {{ user }}
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<div class="pull-right">
|
||||
<a href="{% url 'person_update' object.pk %}" class="btn btn-primary">Edit <span
|
||||
class="glyphicon glyphicon-pencil"></span></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% endif %}
|
||||
@@ -59,5 +59,4 @@ def paginator(context, adjacent_pages=3):
|
||||
dict['previous'] = page.previous_page_number()
|
||||
|
||||
return dict
|
||||
|
||||
register.inclusion_tag('pagination.html', takes_context=True)(paginator)
|
||||
BIN
db.sqlite3
BIN
db.sqlite3
Binary file not shown.
Reference in New Issue
Block a user