X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/de25649c03f4d7d476bf8764ba8671681bfd6324..f7323c314c42bdc6ff17ec6f3804d6acc9a481ee:/src/club/admin.py diff --git a/src/club/admin.py b/src/club/admin.py index ce94a094e..b0c20c2c5 100644 --- a/src/club/admin.py +++ b/src/club/admin.py @@ -1,7 +1,10 @@ # This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later. # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. # +import json from django.contrib import admin +from django.utils.html import conditional_escape +from django.utils.safestring import mark_safe from modeltranslation.admin import TranslationAdmin from . import models @@ -14,18 +17,31 @@ admin.site.register(models.Plan, PlanAdmin) class PayUOrderInline(admin.TabularInline): model = models.PayUOrder + fields = ['order_id', 'status', 'customer_ip'] + readonly_fields = fields extra = 0 show_change_link = True + can_delete = False + + def has_add_permission(self, request, obj): + return False class PayUCardTokenInline(admin.TabularInline): model = models.PayUCardToken + fields = ['created_at', 'disposable_token', 'reusable_token'] + readonly_fields = fields extra = 0 show_change_link = True + can_delete = False + show_change_link = True + + def has_add_permission(self, request, obj): + return False class ScheduleAdmin(admin.ModelAdmin): - list_display = ['email', 'started_at', 'expires_at', 'plan', 'amount', 'is_cancelled'] + list_display = ['email', 'started_at', 'payed_at', 'expires_at', 'plan', 'amount', 'is_cancelled'] list_search = ['email'] list_filter = ['is_cancelled'] date_hierarchy = 'started_at' @@ -37,8 +53,15 @@ admin.site.register(models.Schedule, ScheduleAdmin) class ScheduleInline(admin.TabularInline): model = models.Schedule + fields = ['email', 'plan', 'amount', 'method', 'is_cancelled', 'started_at', 'payed_at', 'expires_at', 'email_sent'] + readonly_fields = fields extra = 0 show_change_link = True + can_delete = False + + def has_add_permission(self, request, obj): + return False + class MembershipAdmin(admin.ModelAdmin): list_display = ['user'] @@ -52,4 +75,44 @@ admin.site.register(models.Membership, MembershipAdmin) admin.site.register(models.ReminderEmail, TranslationAdmin) -admin.site.register(models.PayUNotification) +class PayUNotificationAdmin(admin.ModelAdmin): + list_display = ['received_at', 'order'] + fields = ['received_at', 'order', 'body_'] + readonly_fields = ['received_at', 'body_'] + raw_id_fields = ['order'] + + def body_(self, obj): + return mark_safe( + "
" +
+                conditional_escape(json.dumps(json.loads(obj.body), indent=4))
+                + "
") + + +admin.site.register(models.PayUNotification, PayUNotificationAdmin) + + +class PayUNotificationInline(admin.TabularInline): + model = models.PayUNotification + fields = ['received_at', 'body_'] + readonly_fields = fields + extra = 0 + show_change_link = True + can_delete = False + + def body_(self, obj): + return mark_safe( + "
" +
+                conditional_escape(json.dumps(json.loads(obj.body), indent=4))
+                + "
") + + def has_add_permission(self, request, obj): + return False + + +class PayUOrderAdmin(admin.ModelAdmin): + list_display = ['schedule'] + raw_id_fields = ['schedule'] + inlines = [PayUNotificationInline] + + +admin.site.register(models.PayUOrder, PayUOrderAdmin)