forked from CGM_Public/pretix_original
Expose log details for admins
This commit is contained in:
@@ -182,6 +182,12 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-lg-6 col-sm-12 col-xs-12">
|
<div class="col-lg-6 col-sm-12 col-xs-12">
|
||||||
{{ log.display }}
|
{{ log.display }}
|
||||||
|
{% if staff_session %}
|
||||||
|
<a href="" class="btn btn-default btn-xs" data-expandlogs data-id="{{ log.pk }}">
|
||||||
|
<span class="fa-eye fa fa-fw"></span>
|
||||||
|
{% trans "Inspect" %}
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -31,7 +31,8 @@
|
|||||||
<li class="list-group-item logentry">
|
<li class="list-group-item logentry">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-2 col-sm-6 col-xs-12">
|
<div class="col-lg-2 col-sm-6 col-xs-12">
|
||||||
<span class="fa fa-clock-o"></span> {{ log.datetime|date:"SHORT_DATETIME_FORMAT" }}
|
<span class="fa fa-clock-o"></span>
|
||||||
|
{{ log.datetime|date:"SHORT_DATETIME_FORMAT" }}
|
||||||
{% if log.shredded %}
|
{% if log.shredded %}
|
||||||
<span class="fa fa-eraser fa-danger fa-fw"
|
<span class="fa fa-eraser fa-danger fa-fw"
|
||||||
data-toggle="tooltip"
|
data-toggle="tooltip"
|
||||||
@@ -69,6 +70,12 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-lg-6 col-sm-12 col-xs-12">
|
<div class="col-lg-6 col-sm-12 col-xs-12">
|
||||||
{{ log.display }}
|
{{ log.display }}
|
||||||
|
{% if staff_session %}
|
||||||
|
<a href="" class="btn btn-default btn-xs" data-expandlogs data-id="{{ log.pk }}">
|
||||||
|
<span class="fa-eye fa fa-fw"></span>
|
||||||
|
{% trans "Inspect" %}
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -30,13 +30,18 @@
|
|||||||
<span class="fa fa-eraser fa-danger fa-fw"
|
<span class="fa fa-eraser fa-danger fa-fw"
|
||||||
data-toggle="tooltip"
|
data-toggle="tooltip"
|
||||||
title="{% trans "Personal data was cleared from this log entry." %}">
|
title="{% trans "Personal data was cleared from this log entry." %}">
|
||||||
|
|
||||||
</span>
|
</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
{{ log.display }}
|
{{ log.display }}
|
||||||
|
{% if staff_session %}
|
||||||
|
<a href="" class="btn btn-default btn-xs" data-expandlogs data-id="{{ log.pk }}">
|
||||||
|
<span class="fa-eye fa fa-fw"></span>
|
||||||
|
{% trans "Inspect" %}
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
</p>
|
</p>
|
||||||
</li>
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ urlpatterns = [
|
|||||||
url(r'^global/settings/$', global_settings.GlobalSettingsView.as_view(), name='global.settings'),
|
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/update/$', global_settings.UpdateCheckView.as_view(), name='global.update'),
|
||||||
url(r'^global/message/$', global_settings.MessageView.as_view(), name='global.message'),
|
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'^reauth/$', user.ReauthView.as_view(), name='user.reauth'),
|
||||||
url(r'^sudo/$', user.StartStaffSession.as_view(), name='user.sudo'),
|
url(r'^sudo/$', user.StartStaffSession.as_view(), name='user.sudo'),
|
||||||
url(r'^sudo/stop/$', user.StopStaffSession.as_view(), name='user.sudo.stop'),
|
url(r'^sudo/stop/$', user.StopStaffSession.as_view(), name='user.sudo.stop'),
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
from django.contrib import messages
|
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.utils.translation import ugettext_lazy as _
|
||||||
|
from django.views import View
|
||||||
from django.views.generic import FormView, TemplateView
|
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.services.update_check import check_result_table, update_check
|
||||||
from pretix.base.settings import GlobalSettingsObject
|
from pretix.base.settings import GlobalSettingsObject
|
||||||
from pretix.control.forms.global_settings import (
|
from pretix.control.forms.global_settings import (
|
||||||
@@ -62,3 +65,9 @@ class UpdateCheckView(StaffMemberRequiredMixin, FormView):
|
|||||||
|
|
||||||
class MessageView(TemplateView):
|
class MessageView(TemplateView):
|
||||||
template_name = 'pretixcontrol/global_message.html'
|
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})
|
||||||
|
|||||||
@@ -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") {
|
||||||
|
$("<pre>").html(JSON.stringify(data.data, null, 2)).insertAfter($a.parent());
|
||||||
|
} else {
|
||||||
|
$("<pre>").html(JSON.stringify(data.data, null, 2)).appendTo($a.parent());
|
||||||
|
}
|
||||||
|
$a.remove();
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
$("#ajaxerr").on("click", ".ajaxerr-close", ajaxErrDialog.hide);
|
$("#ajaxerr").on("click", ".ajaxerr-close", ajaxErrDialog.hide);
|
||||||
moment.locale($("body").attr("data-datetimelocale"));
|
moment.locale($("body").attr("data-datetimelocale"));
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ def env():
|
|||||||
|
|
||||||
superuser_urls = [
|
superuser_urls = [
|
||||||
"global/settings/",
|
"global/settings/",
|
||||||
|
"logdetail/",
|
||||||
"users/select2",
|
"users/select2",
|
||||||
"users/",
|
"users/",
|
||||||
"users/add",
|
"users/add",
|
||||||
|
|||||||
Reference in New Issue
Block a user