X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/79e9ae3a7f85ac383306a5840250343597024a0b..24f09a9815fff57bde69683b12980480fd8dc6a2:/src/club/admin.py?ds=sidebyside diff --git a/src/club/admin.py b/src/club/admin.py index 4e85d4dc1..2f07a4f41 100644 --- a/src/club/admin.py +++ b/src/club/admin.py @@ -1,3 +1,4 @@ + # This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later. # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. # @@ -5,6 +6,7 @@ import json from django.contrib import admin from django.db.models.functions import Now from django.db.models import Q +from django import forms from django.utils.html import conditional_escape from django.utils.safestring import mark_safe from django.utils.translation import gettext_lazy as _ @@ -14,7 +16,20 @@ 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,10 +69,29 @@ class ExpiredFilter(YesNoFilter): q = Q(expires_at__isnull=False, expires_at__lt=Now()) +class ScheduleForm(forms.ModelForm): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.fields['email'].required = False + self.fields['method'].required = False + self.fields['consent'].required = False + + class Meta: + model = models.Schedule + fields = '__all__' + + class ScheduleAdmin(admin.ModelAdmin): - list_display = ['email', 'started_at', 'payed_at', 'expires_at', 'amount', 'monthly', 'yearly', 'is_cancelled'] + form = ScheduleForm + + list_display = [ + 'email', 'started_at', 'payed_at', 'expires_at', 'amount', 'monthly', 'yearly', 'is_cancelled', + 'method' + ] + list_display_links = ['email', 'started_at'] search_fields = ['email'] - list_filter = ['is_cancelled', 'monthly', 'yearly', PayedFilter, ExpiredFilter, 'source'] + list_filter = ['is_cancelled', 'monthly', 'yearly', 'method', PayedFilter, ExpiredFilter, 'source'] + filter_horizontal = ['consent'] date_hierarchy = 'started_at' raw_id_fields = ['membership'] inlines = [PayUOrderInline, PayUCardTokenInline] @@ -138,21 +172,14 @@ admin.site.register(models.PayUOrder, PayUOrderAdmin) admin.site.register(models.Ambassador) - -@admin.register(models.DirectDebit) -class DirectDebitAdmin(admin.ModelAdmin): - list_display = ['date', 'amount', 'first_name', 'last_name'] - fields = [ - ('first_name', 'sex', 'date_of_birth'), - 'last_name', - ('street', 'building'), - ('town', 'flat'), - ('postal_code', 'phone'), - 'email', - 'iban', - 'payment_id', - 'agree_newsletter', - 'date', - 'amount' - ] + +@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 []