X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/30e79991759b2d512e397a61d0e3a3e8ca40ae17..807d88a6bbd34865987b59a757e7b4ef3b3fc718:/src/club/admin.py diff --git a/src/club/admin.py b/src/club/admin.py index 79b76cf21..ce74ec61b 100644 --- a/src/club/admin.py +++ b/src/club/admin.py @@ -8,12 +8,26 @@ from django.db.models import Q from django.utils.html import conditional_escape from django.utils.safestring import mark_safe from django.utils.translation import gettext_lazy as _ +from fnpdjango.actions import export_as_csv_action from modeltranslation.admin import TranslationAdmin from wolnelektury.utils import YesNoFilter from . import models -admin.site.register(models.Club) +class SingleAmountInline(admin.TabularInline): + model = models.SingleAmount + + +class MonthlyAmountInline(admin.TabularInline): + model = models.MonthlyAmount + + +@admin.register(models.Club) +class ClubAdmin(admin.ModelAdmin): + inlines = [ + SingleAmountInline, + MonthlyAmountInline + ] class PayUOrderInline(admin.TabularInline): @@ -54,12 +68,17 @@ class ExpiredFilter(YesNoFilter): class ScheduleAdmin(admin.ModelAdmin): - list_display = ['email', 'started_at', 'payed_at', 'expires_at', 'amount', 'monthly', 'yearly', 'is_cancelled'] + list_display = [ + 'email', 'started_at', 'payed_at', 'expires_at', 'amount', 'monthly', 'yearly', 'is_cancelled', + 'method' + ] search_fields = ['email'] - list_filter = ['is_cancelled', 'monthly', 'yearly', PayedFilter, ExpiredFilter] + list_filter = ['is_cancelled', 'monthly', 'yearly', 'method', PayedFilter, ExpiredFilter, 'source'] + filter_horizontal = ['consent'] date_hierarchy = 'started_at' raw_id_fields = ['membership'] inlines = [PayUOrderInline, PayUCardTokenInline] + actions = [export_as_csv_action()] admin.site.register(models.Schedule, ScheduleAdmin) @@ -77,9 +96,11 @@ class ScheduleInline(admin.TabularInline): class MembershipAdmin(admin.ModelAdmin): - list_display = ['user'] + list_display = ['user', 'manual', 'updated_at', 'notes'] + list_filter = ['manual'] + date_hierarchy = 'updated_at' raw_id_fields = ['user'] - search_fields = ['user__username', 'user__email', 'schedule__email'] + search_fields = ['user__username', 'user__email', 'schedule__email', 'notes'] inlines = [ScheduleInline] admin.site.register(models.Membership, MembershipAdmin) @@ -132,3 +153,16 @@ admin.site.register(models.PayUOrder, PayUOrderAdmin) admin.site.register(models.Ambassador) + + + + +@admin.register(models.Consent) +class ConsentAdmin(admin.ModelAdmin): + list_display = ['text', 'order', 'active', 'required'] + + def get_readonly_fields(self, request, obj=None): + if obj: + return ['text'] + else: + return []