mirror of
				https://gitlab.com/animath/si/plateforme.git
				synced 2025-10-31 15:40:01 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			70 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # 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"<button class='btn btn-secondary'><i class='fas fa-money-bill-wave'></i> {_('Update')}</button>")
 | |
| 
 | |
|     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.")
 |