1
0
mirror of https://gitlab.com/animath/si/plateforme.git synced 2025-06-21 07:58:26 +02:00

Display teams

This commit is contained in:
Yohann D'ANELLO
2020-04-29 16:59:59 +02:00
parent e865910ee3
commit f57d7554e7
7 changed files with 139 additions and 7 deletions

View File

@ -39,7 +39,7 @@ class Tournament(models.Model):
)
date_end = models.DateField(
verbose_name=_("date start"),
verbose_name=_("date end"),
)
date_inscription = models.DateTimeField(
@ -89,6 +89,7 @@ class Team(models.Model):
tournament = models.ForeignKey(
Tournament,
on_delete=models.PROTECT,
related_name="teams",
verbose_name=_("tournament"),
)
@ -102,7 +103,7 @@ class Team(models.Model):
choices=[
("0invalid", _("Registration not validated")),
("1waiting", _("Waiting for validation")),
("1valid", _("Registration validated")),
("2valid", _("Registration validated")),
],
verbose_name=_("validation status"),
)

View File

@ -1,10 +1,16 @@
import django_tables2 as tables
from django.utils.translation import gettext as _
from django_tables2 import A
from .models import Tournament
from .models import Tournament, Team
class TournamentTable(tables.Table):
name = tables.LinkColumn(
"tournament:detail",
args=[A("pk")],
)
date_start = tables.Column(
verbose_name=_("dates").capitalize(),
)
@ -18,3 +24,12 @@ class TournamentTable(tables.Table):
attrs = {
'class': 'table table-condensed table-striped table-hover'
}
class TeamTable(tables.Table):
class Meta:
model = Team
fields = ("name", "trigram", "validation_status", )
attrs = {
'class': 'table table-condensed table-striped table-hover'
}

View File

@ -1,9 +1,10 @@
from django.urls import path
from .views import TournamentListView
from .views import TournamentListView, TournamentDetailView
app_name = "tournament"
urlpatterns = [
path('list/', TournamentListView.as_view(), name="list"),
path('<int:pk>/', TournamentDetailView.as_view(), name="detail"),
]

View File

@ -1,10 +1,11 @@
from django.db.models import Q
from django.utils.translation import gettext_lazy as _
from django.views.generic import DetailView
from django_tables2.views import SingleTableView
from member.models import TFJMUser
from .models import Tournament
from .tables import TournamentTable
from .tables import TournamentTable, TeamTable
class TournamentListView(SingleTableView):
@ -15,10 +16,36 @@ class TournamentListView(SingleTableView):
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
team_users = TFJMUser.objects.filter(Q(team__isnull=False) | Q(role="admin") | Q(role="organizer"))
valid_team_users = team_users.filter(Q(team__validation_status="valid") | Q(role="admin") | Q(role="organizer"))
team_users = TFJMUser.objects.filter(Q(team__isnull=False) | Q(role="admin") | Q(role="organizer"))\
.order_by('-role')
valid_team_users = team_users.filter(
Q(team__validation_status="2valid") | Q(role="admin") | Q(role="organizer"))
context["team_users_emails"] = [user.email for user in team_users]
context["valid_team_users_emails"] = [user.email for user in valid_team_users]
return context
class TournamentDetailView(DetailView):
model = Tournament
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context["title"] = _("Tournament of {name}").format(name=self.object.name)
team_users = TFJMUser.objects.filter(
Q(team__tournament=self.object)
| Q(organized_tournaments=self.object)).order_by('role')
valid_team_users = team_users.filter(
Q(team__validation_status="2valid")
| Q(role="admin")
| Q(organized_tournaments=self.object))
context["team_users_emails"] = [user.email for user in team_users]
context["valid_team_users_emails"] = [user.email for user in valid_team_users]
context["teams"] = TeamTable(self.object.teams.all())
return context