djangofantalega: Classifica
15 Novembre 2016
12 – Classifica
Per visualizzare la classifica delle squadre della lega,
Colleghiamo il pulsante già presente nella template league.html
alla view league_details:
... @login_required def league_details(request, league_id): ... if request.GET.get('chart'): return redirect('chart', league.id) context = {'league': league, 'teams': league_teams, 'days': days, 'user': request.user} return render(request, 'fantalega/league.html', context) ...
inserire la url:
... # chart url url(r'^leagues/(?P<league_id>[0-9]+)/chart$', views.chart, name='chart'), ]
Aggiungere nel file fantalega\views.py la nuove vista:
... @login_required def chart(request, league_id): league = get_object_or_404(League, pk=int(league_id)) league_teams = league.team_set.all() if request.GET.get('back_to_teams'): return redirect('league_details', league.id) lineups_values = [] for team in league_teams: lineups = [lineup for lineup in Lineup.objects.filter(league=league, team=team).all() if lineup.pts] won = sum([lineup.won for lineup in lineups]) matched = sum([lineup.matched for lineup in lineups]) lost = sum([lineup.lost for lineup in lineups]) gm = sum([lineup.goals_made for lineup in lineups]) gc = sum([lineup.goals_conceded for lineup in lineups]) tot_pts = sum([lineup.pts for lineup in lineups]) tot = won * 3 + matched lineups_values.append((team, tot, won, matched, lost, gm, gc, tot_pts)) lineups_values.sort(key=lambda x: (x[1], x[6]), reverse=True) context = {'league': league, 'lineups_values': lineups_values} return render(request, 'fantalega/chart.html', context)
la template
fantalega/templates/fantalega/chart.html
{% extends 'fantalega/base.html' %} {% load bootstrap3 %} {% block content %} <h1><font color="green">{{ league.name }}</font></h1> <form action="#" method="get"> <input type="submit" class="btn" value="back to {{ league.name }} teams" name="back_to_teams"> </form> <table class="table table-striped" width="100%"> <tr> <th>team</th> <th>pts</th> <th>won</th> <th>matched</th> <th>lost</th> <th>goals made</th> <th>goals conceded</th> <th>total pts</th> </tr> {% for values in lineups_values %} <tr> <td>{{ values.0.name }}</td> <td>{{ values.1 }}</td> <td>{{ values.2 }}</td> <td>{{ values.3 }}</td> <td>{{ values.4 }}</td> <td>{{ values.5 }}</td> <td>{{ values.6 }}</td> <td>{{ values.7 }}</td> </tr> {% endfor %} </table> {% endblock %}
Per visualizzare la classifica basterà premere il pulsante ‘view chart’
Salvare su github:
git add --all
git commit -m "Chart added"
git push -u origin master
articoli precedenti
0 – indice
1 – Virtualenv e Git
2 – Models: Season
3 – Admin: Login e Logout
4 – Models: League
5 – Models: Team
6 – Models: Match
7 – Models: Player
8 – Asta
9 – Models: Lineup
10 – Models: Trade
11 – Asta di riparazione
Commenti recenti