# Copyright (C) 2020 by Animath # SPDX-License-Identifier: GPL-3.0-or-later from django.utils.safestring import mark_safe from django.utils.translation import gettext_lazy as _ import django_tables2 as tables from participation.models import Team from .models import Payment, Registration class RegistrationTable(tables.Table): """ Table of all registrations. """ last_name = tables.LinkColumn( 'registration:user_detail', args=[tables.A("user_id")], verbose_name=lambda: _("last name").capitalize(), accessor="user__last_name", ) def order_type(self, queryset, desc): return queryset.order_by(('-' if desc else '') + 'polymorphic_ctype'), True class Meta: attrs = { 'class': 'table table-condensed table-striped', } model = Registration fields = ('last_name', 'user__first_name', 'user__email', 'type',) order_by = ('type', 'last_name', 'first_name',) class PaymentTable(tables.Table): """ Table of all payments. """ team_id = tables.Column( verbose_name=_("team").capitalize, ) update_payment = tables.LinkColumn( 'registration:update_payment', accessor='id', args=[tables.A("id")], verbose_name=_("Update"), orderable=False, ) def render_team_id(self, value): return Team.objects.get(id=value).trigram def render_amount(self, value): return f"{value} €" def render_update_payment(self, record): return mark_safe(f"") class Meta: attrs = { 'class': 'table table-condensed table-striped', } row_attrs = { 'class': lambda record: ('table-success' if record.valid else 'table-danger' if record.valid is False else 'table-warning'), } model = Payment fields = ('registrations', 'team_id', 'type', 'amount', 'valid', 'update_payment',) empty_text = _("No payment yet.")