diff --git a/src/pretix/control/templates/pretixcontrol/event/index.html b/src/pretix/control/templates/pretixcontrol/event/index.html index c77932eac3..b4239163f1 100644 --- a/src/pretix/control/templates/pretixcontrol/event/index.html +++ b/src/pretix/control/templates/pretixcontrol/event/index.html @@ -182,6 +182,12 @@
{{ log.display }} + {% if staff_session %} + + + {% trans "Inspect" %} + + {% endif %}
{% endfor %} diff --git a/src/pretix/control/urls.py b/src/pretix/control/urls.py index 4137e8fa09..dd6b052655 100644 --- a/src/pretix/control/urls.py +++ b/src/pretix/control/urls.py @@ -18,6 +18,7 @@ urlpatterns = [ url(r'^global/settings/$', global_settings.GlobalSettingsView.as_view(), name='global.settings'), url(r'^global/update/$', global_settings.UpdateCheckView.as_view(), name='global.update'), url(r'^global/message/$', global_settings.MessageView.as_view(), name='global.message'), + url(r'^logdetail/$', global_settings.LogDetailView.as_view(), name='global.logdetail'), url(r'^reauth/$', user.ReauthView.as_view(), name='user.reauth'), url(r'^sudo/$', user.StartStaffSession.as_view(), name='user.sudo'), url(r'^sudo/stop/$', user.StopStaffSession.as_view(), name='user.sudo.stop'), diff --git a/src/pretix/control/views/global_settings.py b/src/pretix/control/views/global_settings.py index 9301555182..5986c3f050 100644 --- a/src/pretix/control/views/global_settings.py +++ b/src/pretix/control/views/global_settings.py @@ -1,8 +1,11 @@ from django.contrib import messages -from django.shortcuts import redirect, reverse +from django.http import JsonResponse +from django.shortcuts import get_object_or_404, redirect, reverse from django.utils.translation import ugettext_lazy as _ +from django.views import View from django.views.generic import FormView, TemplateView +from pretix.base.models import LogEntry from pretix.base.services.update_check import check_result_table, update_check from pretix.base.settings import GlobalSettingsObject from pretix.control.forms.global_settings import ( @@ -62,3 +65,9 @@ class UpdateCheckView(StaffMemberRequiredMixin, FormView): class MessageView(TemplateView): template_name = 'pretixcontrol/global_message.html' + + +class LogDetailView(AdministratorPermissionRequiredMixin, View): + def get(self, request, *args, **kwargs): + le = get_object_or_404(LogEntry, pk=request.GET.get('pk')) + return JsonResponse({'data': le.parsed_data}) diff --git a/src/pretix/static/pretixcontrol/js/ui/main.js b/src/pretix/static/pretixcontrol/js/ui/main.js index 7d7e943520..7eb8780f2b 100644 --- a/src/pretix/static/pretixcontrol/js/ui/main.js +++ b/src/pretix/static/pretixcontrol/js/ui/main.js @@ -551,6 +551,22 @@ $(function () { } }); + $("a[data-expandlogs]").click(function (e) { + e.preventDefault(); + var $a = $(this); + var id = $(this).attr("data-id"); + $a.find(".fa").removeClass("fa-eye").addClass("fa-cog fa-spin"); + $.getJSON('/control/logdetail/?pk=' + id, function (data) { + if ($a.parent().tagName === "p") { + $("").html(JSON.stringify(data.data, null, 2)).insertAfter($a.parent());
+ } else {
+ $("").html(JSON.stringify(data.data, null, 2)).appendTo($a.parent());
+ }
+ $a.remove();
+ });
+ return false;
+ });
+
$("#ajaxerr").on("click", ".ajaxerr-close", ajaxErrDialog.hide);
moment.locale($("body").attr("data-datetimelocale"));
});
diff --git a/src/tests/control/test_permissions.py b/src/tests/control/test_permissions.py
index 7e58a61ffa..ef58b98c25 100644
--- a/src/tests/control/test_permissions.py
+++ b/src/tests/control/test_permissions.py
@@ -26,6 +26,7 @@ def env():
superuser_urls = [
"global/settings/",
+ "logdetail/",
"users/select2",
"users/",
"users/add",