move old teamsnap home to new page

This commit is contained in:
2022-05-19 18:23:50 -05:00
parent 0f2202cbc2
commit d9bae7a9a7
2 changed files with 102 additions and 96 deletions

View File

@@ -231,102 +231,7 @@ def opponent(request, team_id, id):
pass
@login_required()
def edit_lineup(request, event_id, team_id):
TOKEN = request.user.profile.teamsnap_access_token
from pyteamsnap.api import TeamSnap, Event, Availability, Member, EventLineupEntry, EventLineup, AvailabilitySummary, Opponent
client = TeamSnap(token=TOKEN)
time.sleep(0.5)
ts_bulkload = client.bulk_load(team_id=team_id,
types=[Event, EventLineup, EventLineupEntry, AvailabilitySummary, Member],
event__id=event_id)
ts_event = [i for i in ts_bulkload if isinstance(i, Event)][0]
ts_availabilities = Availability.search(client, event_id=ts_event.data['id'])
ts_availability_summary = \
[i for i in ts_bulkload if isinstance(i, AvailabilitySummary) and i.data['event_id'] == event_id][0]
ts_lineup_entries = EventLineupEntry.search(client, event_id=event_id)
if ts_lineup_entries:
ts_lineup = EventLineup.get(client, id=ts_lineup_entries[0].data['event_lineup_id'])
else:
ts_lineup = EventLineup.search(client, event_id=event_id)
ts_members = [i for i in ts_bulkload if isinstance(i, Member)]
ts_member_lookup = {m.data['id']: m for m in ts_members}
ts_availability_lookup = {m.data['member_id']: m for m in ts_availabilities}
ts_lineup_entries_lookup = {m.data['member_id']: m for m in ts_lineup_entries}
members=[]
for member in ts_members:
members.append ({
"member":getattr(member, 'data'),
"availability": getattr(ts_availability_lookup.get(member.data['id'], {}), 'data', {}),
"lineup_entry": getattr(ts_lineup_entries_lookup.get(member.data['id'], {}), 'data', {})
}
)
members = sorted(members, key=lambda d: (
{
None:3, # No Response
0:2, # No
2:1, # Maybe
1:0 # Yes
}.get(d['availability'].get('status_code')),
d['member'].get('last_name'))
)
from teamsnap.forms import LineupEntryFormset, LineupEntryForm
formset = LineupEntryFormset(
initial=[
{
"event_lineup_entry_id" : member['lineup_entry'].get('id'),
"event_lineup_id" : member['lineup_entry'].get('event_lineup_id'),
"event_id": event_id,
"member_id" : member['member']['id'],
"sequence" : member['lineup_entry'].get('sequence'),
"label" : member['lineup_entry'].get('label'),
}
for member in members if not member['member']['is_non_player']
]
)
for form in formset:
form.member = ts_member_lookup.get(form['member_id'].initial)
form.availability = ts_availability_lookup.get(form['member_id'].initial)
formset_lineup = [form for form in formset if form.initial.get('event_lineup_entry_id')]
formset_lineup = sorted(
formset_lineup,
key=lambda d: d.initial.get('sequence',100)
)
formset_bench = [form for form in formset if
form not in formset_lineup and
form.availability.data['status_code'] in [2, 1]
]
formset_out = [form for form in formset if
form not in formset_lineup and
form not in formset_bench and
not form.member.data['is_non_player']
]
return render(request, "teamsnap/lineup/edit.html", context={
"team_id": team_id,
"event_id": event_id,
"event": ts_event,
"formset": formset,
"formset_startinglineup":formset_lineup,
"formset_bench": formset_bench,
"formset_out": formset_out,
"lineup": ts_lineup
})
@login_required()
def edit_multiple_lineups(request, team_id, event_ids):
def edit_lineup(request, event_ids, team_id):
TOKEN = request.user.profile.teamsnap_access_token
from django.forms import formset_factory
from teamsnap.forms import EventChooseForm