main
Razmig Sarkissian 2 years ago
parent f764754f55
commit 2e8c89fae0
  1. 23
      scores/migrations/0019_remove_team_match_team_tournament.py
  2. 8
      scores/models.py
  3. 2
      scores/serializers.py
  4. 83
      scores/templates/scores/match.html
  5. 110
      scores/templates/scores/teams.html
  6. 24
      scores/urls.py
  7. 16
      scores/views.py

@ -0,0 +1,23 @@
# Generated by Django 4.2 on 2023-07-28 18:32
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('scores', '0018_rename_backgroundcolor_team_background_color_and_more'),
]
operations = [
migrations.RemoveField(
model_name='team',
name='match',
),
migrations.AddField(
model_name='team',
name='tournament',
field=models.ForeignKey(blank=True, default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to='scores.tournament'),
),
]

@ -24,6 +24,9 @@ class Tournament(models.Model):
def ended_matches(self):
return self.matches.filter(enddate__isnull=False).order_by('court')
def teams(self):
return self.team_set.order_by('position')
class Match(models.Model):
tournament = models.ForeignKey(Tournament, on_delete=models.CASCADE, default=None)
@ -51,9 +54,6 @@ class Match(models.Model):
team2scorecolumn4 = models.CharField(max_length=200, blank=True)
team2scorecolumn5 = models.CharField(max_length=200, blank=True)
def teams(self):
return self.team_set.order_by('position')
def poule(self):
return self.court / 100
@ -118,5 +118,5 @@ class Team(models.Model):
position_label = models.CharField(max_length=200, blank=True)
date_label = models.CharField(max_length=200, blank=True)
background_color = models.CharField(max_length=200, blank=True)
match = models.ForeignKey(Match, on_delete=models.CASCADE, default=None)
tournament = models.ForeignKey(Tournament, on_delete=models.CASCADE, default=None, blank=True, null=True)

@ -28,5 +28,5 @@ class MatchSerializer(serializers.HyperlinkedModelSerializer):
class TeamSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Team
fields = ['id', 'name', 'background_color', 'rank', 'position', 'bracket', 'position_label', 'date_label', 'match']
fields = ['id', 'name', 'background_color', 'rank', 'position', 'bracket', 'position_label', 'date_label', 'tournament']

@ -3,21 +3,9 @@
{% load static %}
<head>
{% if tv %}
<script>history.scrollRestoration = "manual"</script>
<script src=
"https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js">
</script>
{% endif %}
<link rel="stylesheet" href="{% static 'scores/style.css' %}">
<title>Padel</title>
{% if match.teams %}
<meta http-equiv="refresh" content="15"/>
{% else %}
<meta http-equiv="refresh" content='{{ match.refreshrate }}'/>
{% endif %}
</head>
{% if tv %}
<div class="wrapper" style="zoom:200%">
@ -25,38 +13,6 @@
<div class="wrapper">
{% endif %}
{% if tv %}
<script>
var iInterval = 2000;
var iScrollInterval = 10000;
var iFadeInterval = 500;
var fade = function() {
$("body").fadeOut(iFadeInterval, function(){
$("html, body").scrollTop(0);
$("body").fadeIn(iFadeInterval,function(){
setTimeout(loop, iInterval);
});
});
}
var loop = function() {
var iScroll = $(document).height() - $(window).height();
$("html, body").animate({
scrollTop: iScroll
}, {
duration : iScrollInterval,
easing : "linear",
complete : function() {
setTimeout(fade, iInterval);
}
});
};
setTimeout(loop, iInterval);
</script>
{% endif %}
{% if match.tournament.club.header %}
<header class="scenter">{{ match.tournament.club.header }}</header>
{% endif %}
@ -66,39 +22,7 @@
<div class="scenter">{{ match.tournament.name }}</div>
<div class="scontainer">
<div class="teams">
{% if match.teams %}
<h1>Liste des équipes<h1>
<table>
<tr>
<th>Rang</th>
<th>Nom</th>
<th>Poids</th>
<th>Entrée</th>
<th>Jour</th>
</tr>
{% for team in teams %}
<tr height='100%' style="background-color:{{ team.backgroundColor }};">
<td class="score">#{{ team.position }}</td>
<td class="name" width='50%'>{{ team.name|linebreaksbr }}</td>
<td class="score">{{ team.rank }}</td>
{% if team.bracket %}
<td class="name" width='20%'>Poule</td>
{% else %}
<td class="name" width='20%'>{{ team.positionLabel }}</td>
{% endif %}
{% if team.dateLabel %}
<td class="name">{{ team.dateLabel }}</td>
{% else %}
<td class="name"> - </td>
{% endif %}
</tr>
{% endfor %}
</table>
{% else %}
<div class="smatchs">
<h1 class="scenter" style="padding-bottom:20px">{{ match.title }}</h1>
{% if match.team3 %}
@ -160,11 +84,6 @@
</p>
{% endif %}
{% endif %}
</div>
</div>

@ -0,0 +1,110 @@
<html>
{% load static %}
<head>
{% if tv %}
<script>history.scrollRestoration = "manual"</script>
<script src=
"https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js">
</script>
{% endif %}
<link rel="stylesheet" href="{% static 'scores/style.css' %}">
<title>Padel</title>
<meta http-equiv="refresh" content="15"/>
</head>
{% if tv %}
<div class="wrapper" style="zoom:200%">
{% else %}
<div class="wrapper">
{% endif %}
{% if tv %}
<script>
var iInterval = 2000;
var iScrollInterval = 10000;
var iFadeInterval = 500;
var fade = function() {
$("body").fadeOut(iFadeInterval, function(){
$("html, body").scrollTop(0);
$("body").fadeIn(iFadeInterval,function(){
setTimeout(loop, iInterval);
});
});
}
var loop = function() {
var iScroll = $(document).height() - $(window).height();
$("html, body").animate({
scrollTop: iScroll
}, {
duration : iScrollInterval,
easing : "linear",
complete : function() {
setTimeout(fade, iInterval);
}
});
};
setTimeout(loop, iInterval);
</script>
{% endif %}
{% if tournament.club.header %}
<header class="scenter">{{ tournament.club.header }}</header>
{% endif %}
<main class="page-body">
{% autoescape off %}
<div class="scenter">{{ tournament.name }}</div>
<div class="scontainer">
<div class="teams">
{% if tournament.teams %}
<h1>Liste des équipes<h1>
<table>
<tr>
<th>Rang</th>
<th>Nom</th>
<th>Poids</th>
<th>Entrée</th>
<th>Jour</th>
</tr>
{% for team in tournament.teams %}
<tr height='100%' style="background-color:{{ team.backgroundColor }};">
<td class="score">#{{ team.position }}</td>
<td class="name" width='50%'>{{ team.name|linebreaksbr }}</td>
<td class="score">{{ team.rank }}</td>
{% if team.bracket %}
<td class="name" width='20%'>Poule</td>
{% else %}
<td class="name" width='20%'>{{ team.positionLabel }}</td>
{% endif %}
{% if team.dateLabel %}
<td class="name">{{ team.dateLabel }}</td>
{% else %}
<td class="name"> - </td>
{% endif %}
</tr>
{% endfor %}
</table>
{% endif %}
</div>
</div>
{% endautoescape %}
</main>
{% if tournament.club.footer %}
<footer class="page-footer, center">{{ tournament.club.footer }}</footer>
{% endif %}
</div>
</html>

@ -21,21 +21,21 @@ from . import views
urlpatterns = [
path('match/<int:match_id>/', views.match, name='match'),
path('tv/club/<str:club_name>/<int:tournament_id>/equipes/', views.tv_teams_club_name_tournament, name='match_scrolling'),
path('tv/tournoi/<str:tournament_shortname>/equipes/', views.tv_teams_tournament_name, name='match_scrolling'),
path('tv/club/<str:club_name>/<str:tournament_shortname>/equipes/', views.tv_teams_club_name_tournament_name, name='match_scrolling'),
path('tv/club/<str:club_name>/<int:tournament_id>/equipes/', views.tv_teams_club_name_tournament, name='teams'),
path('tv/tournoi/<str:tournament_shortname>/equipes/', views.tv_teams_tournament_name, name='teams'),
path('tv/club/<str:club_name>/<str:tournament_shortname>/equipes/', views.tv_teams_club_name_tournament_name, name='teams'),
path('tv/', views.index, name='index_scrolling'),
path('tv/tournoi/<str:tournament_shortname>/', views.tv_tournament_name, name='tournament_scrolling'),
path('tv/', views.index, name='index'),
path('tv/tournoi/<str:tournament_shortname>/', views.tv_tournament_name, name='tournament'),
path('tv/club/<str:club_name>/', views.club_name, name='club'),
path('tv/club/<str:club_name>/<int:tournament_id>/', views.tv_club_name_tournament, name='tournament_scrolling'),
path('tv/club/<str:club_name>/<str:tournament_shortname>/', views.tv_club_name_tournament_name, name='tournament_scrolling'),
path('tv/club/<str:club_name>/<int:tournament_id>/', views.tv_club_name_tournament, name='tournament'),
path('tv/club/<str:club_name>/<str:tournament_shortname>/', views.tv_club_name_tournament_name, name='tournament'),
path('club/<str:club_name>/<str:tournament_shortname>/equipes/', views.teams_club_name_tournament_name, name='match'),
path('tournoi/<str:tournament_shortname>/equipes/', views.teams_tournament_name, name='match'),
path('tournoi/<int:tournament_id>/equipes/', views.teams_tournament, name='match'),
path('club/<str:club_name>/<str:tournament_shortname>/equipes/', views.teams_club_name_tournament_name, name='match'),
path('club/<str:club_name>/<int:tournament_id>/equipes', views.teams_club_name_tournament, name='match'),
path('club/<str:club_name>/<str:tournament_shortname>/equipes/', views.teams_club_name_tournament_name, name='teams'),
path('tournoi/<str:tournament_shortname>/equipes/', views.teams_tournament_name, name='teams'),
path('tournoi/<int:tournament_id>/equipes/', views.teams_tournament, name='teams'),
path('club/<str:club_name>/<str:tournament_shortname>/equipes/', views.teams_club_name_tournament_name, name='teams'),
path('club/<str:club_name>/<int:tournament_id>/equipes', views.teams_club_name_tournament, name='teams'),
path('club/<str:club_name>/<str:tournament_shortname>/', views.club_name_tournament_name, name='tournament'),
path('club/<str:club_name>/<int:tournament_id>/', views.club_name_tournament, name='tournament'),
path('club/<str:club_name>/', views.club_name, name='club'),

@ -70,11 +70,9 @@ def tournament(request, tournament_id):
def match(request, match_id):
match = get_object_or_404(Match, pk=match_id)
teams = Team.objects.filter(match=match.id).order_by('position')
template = loader.get_template('scores/match.html')
context = {
'match': match,
'teams': teams,
}
return HttpResponse(template.render(context, request))
@ -96,12 +94,9 @@ def teams_club_name_tournament_name(request, club_name, tournament_shortname):
def teams_tournament(request, tournament_id):
tournament = get_object_or_404(Tournament, pk=tournament_id)
match = Match.objects.filter(tournament=tournament.id).filter(match_index=-1).first()
teams = Team.objects.filter(match=match.id).order_by('position')
template = loader.get_template('scores/match.html')
template = loader.get_template('scores/teams.html')
context = {
'match': match,
'teams': teams,
'tournament': tournament,
}
return HttpResponse(template.render(context, request))
@ -162,12 +157,9 @@ def tv_teams_club_name_tournament_name(request, club_name, tournament_shortname)
def tv_teams_tournament(request, tournament_id):
tournament = get_object_or_404(Tournament, pk=tournament_id)
match = Match.objects.filter(tournament=tournament.id).filter(match_index=-1).first()
teams = Team.objects.filter(match=match.id).order_by('position')
template = loader.get_template('scores/match.html')
template = loader.get_template('scores/teams.html')
context = {
'match': match,
'teams': teams,
'tournament': tournament,
'tv': True,
}
return HttpResponse(template.render(context, request))

Loading…
Cancel
Save