started transitioning lineup and players to tables

This commit is contained in:
2021-11-15 15:57:43 -06:00
parent 27ff641d3e
commit 265c160f25
2 changed files with 45 additions and 18 deletions

View File

@@ -8,7 +8,7 @@
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
<h6>Lineup</h6> <h5>Lineup</h5>
{# <ul class="list-group">#} {# <ul class="list-group">#}
<form action="{% url 'edit lineup' event_id=event.id%}" method="post"> <form action="{% url 'edit lineup' event_id=event.id%}" method="post">
@@ -23,12 +23,20 @@
<th scope="col">Position</th> <th scope="col">Position</th>
</tr> </tr>
</thead> </thead>
{% for form in positionings_formset %} {% for player in positionings_players_initial|dictsort:"positioning.order" %}
<tr> {% if player.positioning %}
<th scope="row">{{ form.order }}</th> <tr data-player-id="{{ player.id }}",
<td>{{ form.player }}</td> data-positioning-position="{{ player.positioning.position }}"
<td>{{ form.position }}</td> >
{# <th scope="row">{{ form.order }}</th>#}
{# <td>{{ form.player }}</td>#}
{# <td>{{ form.position }}</td>#}
<th scope="row">{% if player.positioning.order %}{{ player.positioning.order }}{% endif %}</th>
<th>{{ player.first_name }} {{ player.last_name }}</th>
<td>{{ player.positioning.position }}</td>
</tr> </tr>
{% endif %}
{% endfor %} {% endfor %}
</table> </table>
{# {% endfor %}#} {# {% endfor %}#}
@@ -37,11 +45,23 @@
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<h6>Players</h6> <h5>Players</h5>
<ul class="list-group"> <div class="col-md-6">
<table class="table">
<tr>
<th scope="col"></th>
<th scope="col">Name</th>
<th scope="col">#</th>
<th scope="col">Avg</th>
<th scope="col">Slug</th>
<th scope="col">OBP</th>
</tr>
{% for player in players %} {% for player in players %}
<li class="list-group-item"> {% if not player.positioning %}
{% if player.availability.available == 2 %} <tr>
<td>
{% if player.availability.available == 2 %}
<img class="bg-success p-2 rounded-circle" width="5" height="5"><span class="visually-hidden">Yes</span></img> <img class="bg-success p-2 rounded-circle" width="5" height="5"><span class="visually-hidden">Yes</span></img>
{% elif player.availability.available == 1%} {% elif player.availability.available == 1%}
<img class="bg-info p-2 rounded-circle" width="5" height="5"><span class="visually-hidden">Maybe</span></span> <img class="bg-info p-2 rounded-circle" width="5" height="5"><span class="visually-hidden">Maybe</span></span>
@@ -50,11 +70,16 @@
{% elif player.availability.available == -1%} {% elif player.availability.available == -1%}
<img class="bg-secondary p-2 rounded-circle" width="5" height="5"><span class="visually-hidden">Unknown</span></span> <img class="bg-secondary p-2 rounded-circle" width="5" height="5"><span class="visually-hidden">Unknown</span></span>
{% endif %} {% endif %}
{{ player.first_name }} {{ player.last_name }} </td>
<code><small>{{ player.statline }}</small></code> <th><span class="d-none d-md-block">{{ player.first_name }}</span> {{ player.last_name }}</th>
</li> <td>{{ player.jersey_number }}</td>
<td><code>{{ player.statline.batting_avg|stringformat:".3f"|slice:"1:" }}</code></td>
<td><code>{{ player.statline.slugging_pct|stringformat:".3f"|slice:"1:" }}</code></td>
<td><code>{{ player.statline.onbase_pct|stringformat:".3f"|slice:"1:" }}</code></td>
</tr>
{% endif %}
{% endfor %} {% endfor %}
</ul> </table >
</div> </div>
</div> </div>
</div> </div>

View File

@@ -29,18 +29,19 @@ def edit(request, event_id):
return render(request, 'success.html', {'call_back':'edit lineup','id':event_id}, status=200) return render(request, 'success.html', {'call_back':'edit lineup','id':event_id}, status=200)
# return render(request, 'success.html', {'call_back':'schedule'}) # return render(request, 'success.html', {'call_back':'schedule'})
event = Event.objects.get(id=event_id) event = Event.objects.get(id=event_id)
players = Player.objects.all().prefetch_related('availability_set', 'statline_set') players = Player.objects.all().prefetch_related('availability_set', 'statline_set', 'positioning_set')
players = [ players = [
{ {
**model_to_dict(player), **model_to_dict(player),
'availability':player.availability_set.get(event_id=event_id), 'availability':player.availability_set.get(event_id=event_id),
# 'available_value': player.availability_set.get(event_id=event_id).available, # 'available_value': player.availability_set.get(event_id=event_id).available,
'statline': player.statline_set.get(player_id=player.id) 'statline': player.statline_set.get(player_id=player.id),
'positioning': player.positioning_set.filter(event_id=event_id).first()
} }
for player in players for player in players
] ]
players.sort(key=lambda d: d['availability'].available, reverse = True) players.sort(key=lambda d: (-d['availability'].available, d['last_name']))
qset = Positioning.objects.filter(event_id=event_id, order__isnull = False) qset = Positioning.objects.filter(event_id=event_id)
formset = PositioningFormSet(queryset=qset) formset = PositioningFormSet(queryset=qset)
for form in formset: for form in formset:
for field in form.fields: for field in form.fields:
@@ -48,4 +49,5 @@ def edit(request, event_id):
return render(request, 'lineups/lineup.html', {'title': 'Lineup', return render(request, 'lineups/lineup.html', {'title': 'Lineup',
'event': event, 'event': event,
'players': players, 'players': players,
'positionings_players_initial':[player for player in players if player['positioning']],
'positionings_formset':formset}) 'positionings_formset':formset})