This commit is contained in:
2022-11-15 07:34:01 -06:00
parent 9a18bb56ab
commit d5450597dd
14 changed files with 79 additions and 50 deletions

View File

@@ -25,7 +25,7 @@
{% block inline_javascript %}
{{ block.super }}
<script src="{% static 'js/Sortable.js' %}"></script>
<script src="https://cdn.jsdelivr.net/npm/sortablejs@1.15.0/Sortable.min.js"></script>
<script src="{% static 'lineup/js/lineup.js' %}"></script>
<script>
window.addEventListener('DOMContentLoaded', () => {

View File

@@ -17,7 +17,7 @@ def teamsnap_event_redirect(request, event_id, team_id):
def edit_lineup(request, event_ids, team_id):
import re
from pyteamsnap.objects import (
from pyteamsnap.models import (
Availability,
AvailabilitySummary,
Event,
@@ -25,7 +25,6 @@ def edit_lineup(request, event_ids, team_id):
EventLineupEntry,
Member,
)
from teamsnap.forms import LineupEntryFormset
client = get_teamsnap_client(request)
@@ -41,16 +40,16 @@ def edit_lineup(request, event_ids, team_id):
contexts = []
for event_id in event_ids:
ts_event = [
ts_event = next(
i for i in ts_bulkload if isinstance(i, Event) and i.data["id"] == event_id
][0]
)
ts_availabilities = Availability.search(client, event_id=ts_event.data["id"])
ts_lineup_entries = EventLineupEntry.search(client, event_id=event_id)
ts_availability_summary = [
ts_availability_summary = next(
i
for i in ts_bulkload
if isinstance(i, AvailabilitySummary) and i.data["event_id"] == event_id
][0]
)
ts_members = [i for i in ts_bulkload if isinstance(i, Member)]
ts_member_lookup = {m.data["id"]: m for m in ts_members}
gc_player_lookup = {
@@ -150,31 +149,31 @@ def edit_lineup(request, event_ids, team_id):
form.member = ts_member_lookup.get(form["member_id"].initial)
form.availability = ts_availability_lookup.get(form["member_id"].initial)
formset_startinglineup = [
formset_startinglineup = (
form
for form in formset
if form.initial.get("event_lineup_entry_id")
and not form.initial.get("position_only")
]
)
formset_startinglineup = sorted(
formset_startinglineup, key=lambda d: d.initial.get("sequence", 100)
)
formset_startingpositiononly = [
formset_startingpositiononly = (
form
for form in formset
if form.initial.get("event_lineup_entry_id")
and form not in formset_startinglineup
]
)
formset_startingpositiononly = sorted(
formset_startingpositiononly, key=lambda d: d.initial.get("sequence", 100)
)
formset_bench = [
formset_bench = (
form
for form in formset
if form not in formset_startinglineup
and form not in formset_startingpositiononly
and form.availability.data["status_code"] in [2, 1]
]
)
formset_out = [
form
for form in formset
@@ -195,16 +194,15 @@ def edit_lineup(request, event_ids, team_id):
"formset_out": formset_out,
}
)
return render(request, "lineup/edit.html", context={"contexts": contexts})
def submit_lineup(request, team_id, event_id):
from pyteamsnap.objects import EventLineup, EventLineupEntry
from pyteamsnap.models import Event, EventLineup, EventLineupEntry
from teamsnap.forms import LineupEntryFormset
client = get_teamsnap_client(request)
ts_event = Event.get(client, event_id)
ts_lineup = EventLineup.search(client, event_id=event_id)
event_lineup_id = ts_lineup[0].data["id"]
if request.GET:
@@ -260,7 +258,8 @@ def multi_lineup_choose(request, team_id=None):
team_id=request.user.teamsnap_preferences.managed_team_id,
)
from django.forms import formset_factory
from pyteamsnap.objects import Event
from pyteamsnap.models import Event
from .forms import EventChooseForm