Start to seperate versioning into its own app

This commit is contained in:
2020-03-18 17:36:09 +00:00
parent 959097286c
commit 0144bd37fc
16 changed files with 47 additions and 102 deletions

View File

@@ -58,6 +58,7 @@ INSTALLED_APPS = (
'django.contrib.messages', 'django.contrib.messages',
'django.contrib.staticfiles', 'django.contrib.staticfiles',
'django.contrib.humanize', 'django.contrib.humanize',
'versioning',
'RIGS', 'RIGS',
'assets', 'assets',

View File

@@ -1,28 +0,0 @@
__author__ = 'ghost'
import unittest
from importer import fix_email
class EmailFixerTest(unittest.TestCase):
def test_correct(self):
e = fix_email("tom@ghost.uk.net")
self.assertEqual(e, "tom@ghost.uk.net")
def test_partial(self):
e = fix_email("psytp")
self.assertEqual(e, "psytp@nottingham.ac.uk")
def test_none(self):
old = None
new = fix_email(old)
self.assertEqual(old, new)
def test_empty(self):
old = ""
new = fix_email(old)
self.assertEqual(old, new)
if __name__ == '__main__':
unittest.main()

View File

@@ -5,7 +5,8 @@ from django.views.decorators.clickjacking import xframe_options_exempt
from django.views.generic import RedirectView from django.views.generic import RedirectView
from PyRIGS.decorators import (api_key_required, has_oembed, from PyRIGS.decorators import (api_key_required, has_oembed,
permission_required_with_403) permission_required_with_403)
from RIGS import finance, ical, models, rigboard, versioning, views from RIGS import finance, ical, models, rigboard, views
from versioning import versioning
urlpatterns = [ urlpatterns = [
path('', login_required(views.Index.as_view()), name='index'), path('', login_required(views.Index.as_view()), name='index'),

View File

@@ -1,7 +1,7 @@
from django.conf.urls import url from django.conf.urls import url
from django.urls import path from django.urls import path
from assets import views, models from assets import views, models
from RIGS import versioning from versioning import versioning
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.views.decorators.clickjacking import xframe_options_exempt from django.views.decorators.clickjacking import xframe_options_exempt

View File

@@ -1,16 +1,14 @@
import simplejson
from assets import forms, models
from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib.auth.mixins import LoginRequiredMixin
from django.http import JsonResponse from django.db.models import Q
from django.http import HttpResponse, Http404 from django.http import Http404, HttpResponse, JsonResponse
from django.shortcuts import get_object_or_404
from django.urls import reverse
from django.utils.decorators import method_decorator
from django.views import generic from django.views import generic
from django.views.decorators.csrf import csrf_exempt from django.views.decorators.csrf import csrf_exempt
from django.utils.decorators import method_decorator from versioning import versioning
from django.urls import reverse
from django.db.models import Q
from django.shortcuts import get_object_or_404
from assets import models, forms
from RIGS import versioning
import simplejson
@method_decorator(csrf_exempt, name='dispatch') @method_decorator(csrf_exempt, name='dispatch')

View File

@@ -77,7 +77,7 @@ function browserSyncReload(done) {
function watchFiles() { function watchFiles() {
gulp.watch("RIGS/static/scss/**/*", styles); gulp.watch("RIGS/static/scss/**/*", styles);
gulp.watch("RIGS/static/js/**/*", scripts); gulp.watch("RIGS/static/js/**/*", scripts);
gulp.watch(['templates/**/*.html', 'RIGS/templates/**/*.html', 'assets/templates/**/*.html'], browserSyncReload); gulp.watch(['templates/**/*.html', 'RIGS/templates/**/*.html', 'assets/templates/**/*.html', 'versioning/templates/**/*.html'], browserSyncReload);
//gulp.watch("gulpfile.js", gulp.parallel(styles, scripts)); TODO This causes a reload loop //gulp.watch("gulpfile.js", gulp.parallel(styles, scripts)); TODO This causes a reload loop
} }

View File

@@ -1,21 +1,6 @@
{% load static %}
{% block js %} {% block js %}
<script src="{% static 'js/tooltip.js' %}"></script> {% include 'version_scripts.html' %}
<script src="{% static 'js/popover.js' %}"></script>
<script> <script>
$(function () {
$('[data-toggle="tooltip"]').tooltip();
})
</script>
<script>
$(function () {
$('[data-toggle="popover"]').popover().click(function(){
if($(this).attr('href')){
window.location.href = $(this).attr('href');
}
});
})
$(document).ready(function() { $(document).ready(function() {
$(function () { $(function () {
$( "#activity" ).hide(); $( "#activity" ).hide();

View File

@@ -1,28 +1,11 @@
{% extends request.is_ajax|yesno:"base_ajax.html,base_rigs.html" %} {% extends request.is_ajax|yesno:"base_ajax.html,base_rigs.html" %}
{% load static %}
{% load paginator from filters %} {% load paginator from filters %}
{% load to_class_name from filters %} {% load to_class_name from filters %}
{% block title %}Rigboard Activity Stream{% endblock %} {% block title %}Rigboard Activity Stream{% endblock %}
{% block js %} {% block js %}
<script src="{% static "js/tooltip.js" %}"></script> {% include 'version_scripts.html' %}
<script src="{% static "js/popover.js" %}"></script>
<script src="{% static "js/moment.js" %}"></script>
<script>
$(function () {
$('[data-toggle="popover"]').popover().click(function(){
if($(this).attr('href')){
window.location.href = $(this).attr('href');
}
});
$('.date').each(function (index, dateElem) {
var $dateElem = $(dateElem);
var formatted = moment($dateElem.attr('data-date')).fromNow();
$dateElem.text(formatted);
});
})
</script>
{% endblock %} {% endblock %}
{% block content %} {% block content %}

View File

@@ -1,9 +1,9 @@
{% if version.changes.item_changes or version.changes.field_changes or version.changes.old == None %} {% if version.changes.item_changes or version.changes.field_changes or version.changes.old == None %}
{% for change in version.changes.field_changes %} {% for change in version.changes.field_changes %}
<a tabindex="0" title="Changes to {{ change.field.verbose_name }}" type="button" class="badge badge-secondary" data-container="body" data-html="true" data-trigger='hover' data-toggle="popover" data-content='{% spaceless %}{% include "version_changes_change.html" %}{% endspaceless %}'>{{ change.field.verbose_name }}</a> <span title="Changes to {{ change.field.verbose_name }}" class="badge badge-info p-2" data-container="body" data-html="true" data-trigger='hover' data-toggle="popover" data-content='{% spaceless %}{% include "version_changes_change.html" %}{% endspaceless %}'>{{ change.field.verbose_name }}</span>
{% endfor %} {% endfor %}
{% for itemChange in version.changes.item_changes %} {% for itemChange in version.changes.item_changes %}
<a tabindex="0" title="Changes to item '{% if itemChange.new %}{{ itemChange.new.name }}{% else %}{{ itemChange.old.name }}{% endif %}'" type="button" class="badge badge-secondary" data-container="body" data-html="true" data-trigger='hover' data-toggle="popover" data-content='{% spaceless %} <span title="Changes to item '{% if itemChange.new %}{{ itemChange.new.name }}{% else %}{{ itemChange.old.name }}{% endif %}'" class="badge badge-info p-1" data-container="body" data-html="true" data-trigger='hover' data-toggle="popover" data-content='{% spaceless %}
<ul class="list-group"> <ul class="list-group">
{% for change in itemChange.field_changes %} {% for change in itemChange.field_changes %}
<li class="list-group-item"> <li class="list-group-item">
@@ -12,7 +12,7 @@
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
{% endspaceless %}'>item '{% if itemChange.new %}{{ itemChange.new.name }}{% else %}{{ itemChange.old.name }}{% endif %}'</a> {% endspaceless %}'>item '{% if itemChange.new %}{{ itemChange.new.name }}{% else %}{{ itemChange.old.name }}{% endif %}'</span>
{% endfor %} {% endfor %}
{% else %} {% else %}
nothing useful nothing useful

View File

@@ -1,22 +1,11 @@
{% extends request.is_ajax|yesno:"base_ajax.html,base_rigs.html" %} {% extends request.is_ajax|yesno:"base_ajax.html,base_rigs.html" %}
{% load to_class_name from filters %} {% load to_class_name from filters %}
{% load paginator from filters %} {% load paginator from filters %}
{% load static %}
{% block title %}{{object|to_class_name}} {{ object.pk|stringformat:"05d" }} - Revision History{% endblock %} {% block title %}{{object|to_class_name}} {{ object.pk|stringformat:"05d" }} - Revision History{% endblock %}
{% block js %} {% block js %}
<script src="{% static "js/tooltip.js" %}"></script> {% include 'version_scripts.html' %}
<script src="{% static "js/popover.js" %}"></script>
<script>
$(function () {
$('[data-toggle="popover"]').popover().click(function(){
if($(this).attr('href')){
window.location.href = $(this).attr('href');
}
});
})
</script>
{% endblock %} {% endblock %}
{% block content %} {% block content %}

View File

@@ -0,0 +1,20 @@
{% load static %}
<script src="{% static "js/tooltip.js" %}"></script>
<script src="{% static "js/popover.js" %}"></script>
<script src="{% static "js/moment.js" %}"></script>
<script>
$(function () {
$('[data-toggle="tooltip"]').tooltip();
});
$(function() {
$('[data-toggle="popover"]').popover({whiteList: whiteList});
});
</script>
<script>
var whiteList = $.fn.tooltip.Constructor.Default.whiteList
whiteList.ins = []
whiteList.del = []
$(document).ready(function() {
});
</script>

View File

@@ -1,18 +1,14 @@
import logging
import datetime import datetime
import logging
from django.core.exceptions import ObjectDoesNotExist
from django.shortcuts import get_object_or_404
from django.views import generic
from django.utils.functional import cached_property
from django.db.models import IntegerField, EmailField, TextField
from django.contrib.contenttypes.models import ContentType
from reversion.models import Version, VersionQuerySet
from diff_match_patch import diff_match_patch from diff_match_patch import diff_match_patch
from django.contrib.contenttypes.models import ContentType
from django.core.exceptions import ObjectDoesNotExist
from django.db.models import EmailField, IntegerField, TextField
from django.shortcuts import get_object_or_404
from django.utils.functional import cached_property
from django.views import generic
from reversion.models import Version, VersionQuerySet
from RIGS import models from RIGS import models
logger = logging.getLogger('tec.pyrigs') logger = logging.getLogger('tec.pyrigs')