mirror of
https://github.com/nottinghamtec/PyRIGS.git
synced 2026-01-28 19:02:16 +00:00
Working revision view
This commit is contained in:
@@ -17,6 +17,9 @@ from django.contrib import messages
|
|||||||
from z3c.rml import rml2pdf
|
from z3c.rml import rml2pdf
|
||||||
from PyPDF2 import PdfFileMerger, PdfFileReader
|
from PyPDF2 import PdfFileMerger, PdfFileReader
|
||||||
import reversion
|
import reversion
|
||||||
|
import diff_match_patch
|
||||||
|
import simplejson
|
||||||
|
from reversion.helpers import generate_patch_html
|
||||||
|
|
||||||
from RIGS import models, forms
|
from RIGS import models, forms
|
||||||
import datetime
|
import datetime
|
||||||
@@ -181,15 +184,55 @@ class EventArchive(generic.ArchiveIndexView):
|
|||||||
|
|
||||||
return qs
|
return qs
|
||||||
|
|
||||||
class RevisionList(generic.ListView):
|
class EventRevisions(generic.ListView):
|
||||||
model = reversion.revisions.Version
|
model = reversion.revisions.Version
|
||||||
template_name = "RIGS/revision_list.html"
|
template_name = "RIGS/revision_list.html"
|
||||||
|
|
||||||
def get_queryset(self):
|
# def get_queryset(self):
|
||||||
|
# thisEvent = get_object_or_404(models.Event, pk=self.kwargs['pk'])
|
||||||
|
# items = reversion.get_for_object(thisEvent)
|
||||||
|
# #logger.info('There are '+items[0].date_created)
|
||||||
|
# return items
|
||||||
|
|
||||||
|
def get_context_data(self, **kwargs):
|
||||||
|
# Call the base implementation first to get a context
|
||||||
|
#context = super(PublisherDetail, self).get_context_data(**kwargs)
|
||||||
|
# Add in a QuerySet of all the books
|
||||||
|
context = {}
|
||||||
thisEvent = get_object_or_404(models.Event, pk=self.kwargs['pk'])
|
thisEvent = get_object_or_404(models.Event, pk=self.kwargs['pk'])
|
||||||
items = reversion.get_for_object(thisEvent)
|
revisions = reversion.get_for_object(thisEvent)
|
||||||
logger.info('There are '+str(len(items)))
|
#logger.info('There are '+items[0].date_created)
|
||||||
return items
|
items = []
|
||||||
|
for revisionNo, thisRevision in enumerate(revisions):
|
||||||
|
thisItem = {}
|
||||||
|
thisItem['revision'] = thisRevision.revision
|
||||||
|
if revisionNo >= len(revisions)-1:
|
||||||
|
thisItem['changedKeys'] = {}
|
||||||
|
else:
|
||||||
|
old_version = revisions[revisionNo+1]
|
||||||
|
new_version = thisRevision
|
||||||
|
old_version_obj = simplejson.loads(old_version.serialized_data)[0]['fields']
|
||||||
|
new_version_obj = simplejson.loads(new_version.serialized_data)[0]['fields']
|
||||||
|
|
||||||
|
thisItem['changedKeys'] = {}
|
||||||
|
for key,value in new_version_obj.iteritems():
|
||||||
|
if value != old_version_obj[key]:
|
||||||
|
thisItem['changedKeys'][key] = generate_patch_html(old_version, new_version, key, cleanup="semantic")
|
||||||
|
items.append(thisItem)
|
||||||
|
logger.info(thisItem)
|
||||||
|
context['object_list'] = items
|
||||||
|
logger.info('done')
|
||||||
|
|
||||||
|
return context
|
||||||
|
|
||||||
|
class EventRevision(generic.DetailView):
|
||||||
|
model = reversion.revisions.Revision
|
||||||
|
template_name = "RIGS/event_revision.html"
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
pk=self.kwargs['pk']
|
||||||
|
thisVersion = get_object_or_404(reversion.models.Revision, pk=self.kwargs['pk'])
|
||||||
|
#items = reversion.revisions.Version
|
||||||
|
#thisVersion.
|
||||||
|
|
||||||
|
return self.model.objects.filter(pk=pk)
|
||||||
0
RIGS/templates/RIGS/event_revision.html
Normal file
0
RIGS/templates/RIGS/event_revision.html
Normal file
@@ -1,14 +1,43 @@
|
|||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
|
{% load static %}
|
||||||
|
|
||||||
{% block title %}Revisions{% endblock %}
|
{% block title %}Revisions{% endblock %}
|
||||||
|
|
||||||
|
{% block js %}
|
||||||
|
<script src="{% static "js/tooltip.js" %}"></script>
|
||||||
|
<script src="{% static "js/popover.js" %}"></script>
|
||||||
|
<script>
|
||||||
|
$(function () {
|
||||||
|
$('[data-toggle="popover"]').popover()
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
hello
|
<table class="table table-striped">
|
||||||
<ul>
|
<thead>
|
||||||
{% for version in object_list %}
|
<tr>
|
||||||
<li>
|
<td></td>
|
||||||
{{ version.date_created|date:"y" }}
|
<td>Date</td>
|
||||||
</li>
|
<td>User</td>
|
||||||
{% endfor %}
|
<td>Changes</td>
|
||||||
</ul>
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{% for version in object_list %}
|
||||||
|
<tr>
|
||||||
|
<td>{{ version.revision.pk }}</td>
|
||||||
|
<td>{{ version.revision.date_created }}</td>
|
||||||
|
<td>{{ version.revision.user.name }}</td>
|
||||||
|
<td>{% for key, value in version.changedKeys.iteritems %}
|
||||||
|
<button title="Changes to {{ key }}" type="button" class="btn btn-default btn-xs" data-container="body" data-html="true" data-trigger='hover' data-placement='left' data-toggle="popover" data-content="{{ value }}">{{ key }}</button>
|
||||||
|
{% endfor %}</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
{{ thediff }}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
@@ -78,8 +78,12 @@ urlpatterns = patterns('',
|
|||||||
name='event_duplicate'),
|
name='event_duplicate'),
|
||||||
url(r'^event/archive/$', login_required()(rigboard.EventArchive.as_view()),
|
url(r'^event/archive/$', login_required()(rigboard.EventArchive.as_view()),
|
||||||
name='event_archive'),
|
name='event_archive'),
|
||||||
url(r'^event/(?P<pk>\d+)/revisions/$',
|
|
||||||
permission_required_with_403('RIGS.view_event')(rigboard.RevisionList.as_view()),
|
url(r'^event_revisions/(?P<pk>\d+)/$',
|
||||||
|
permission_required_with_403('RIGS.view_event')(rigboard.EventRevisions.as_view()),
|
||||||
|
name='event_revisions'),
|
||||||
|
url(r'^event_revision/(?P<pk>\d+)/$',
|
||||||
|
permission_required_with_403('RIGS.view_event')(rigboard.EventRevision.as_view()),
|
||||||
name='event_revisions'),
|
name='event_revisions'),
|
||||||
|
|
||||||
# Finance
|
# Finance
|
||||||
|
|||||||
@@ -10,4 +10,5 @@ pillow==2.7.0
|
|||||||
reportlab==2.7
|
reportlab==2.7
|
||||||
z3c.rml==2.7.2
|
z3c.rml==2.7.2
|
||||||
pyPDF2==1.23
|
pyPDF2==1.23
|
||||||
django-ical==1.3
|
django-ical==1.3
|
||||||
|
diff_match_patch
|
||||||
Reference in New Issue
Block a user