re-add multiple event views, add message for success

This commit is contained in:
2022-06-06 20:19:03 -05:00
parent b927157bb0
commit f42f81d280
6 changed files with 124 additions and 9 deletions

View File

@@ -8,6 +8,7 @@ from allauth.socialaccount.providers.oauth2.views import (
)
from django.shortcuts import redirect, render
from django.views.generic.edit import FormView
from django.http import HttpResponseNotAllowed, HttpResponse, JsonResponse, HttpResponseServerError
from .forms import PreferencesForm
from .models import Preferences
@@ -365,9 +366,9 @@ def edit_lineup(request, event_ids, team_id):
}
)
return render(
request, "lineup/multiple_edit.html", context={"contexts": contexts}
)
return render(
request, "lineup/multiple_edit.html", context={"contexts": contexts}
)
def dashboard(request, team_id=None):
@@ -412,3 +413,63 @@ def dashboard(request, team_id=None):
],
},
)
def submit_lineup(request, team_id, event_id):
from teamsnap.forms import LineupEntryFormset
request.user.socialaccount_set.filter(provider="teamsnap").first()
from pyteamsnap.api import EventLineup, TeamSnap, EventLineupEntry, Event
current_teamsnap_user = request.user.socialaccount_set.filter(
provider="teamsnap"
).first()
ts_token = (
current_teamsnap_user.socialtoken_set.order_by("-expires_at").first().token
)
client = TeamSnap(token=ts_token)
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:
return HttpResponseNotAllowed()
if request.POST:
formset = LineupEntryFormset(request.POST)
if formset.is_valid():
r = []
for form in formset:
data = form.cleaned_data
if data.get('event_lineup_entry_id'):
event_lineup_entry = EventLineupEntry.get(client, id=data.get('event_lineup_entry_id'))
if data.get('position_only'):
data['label'] = data['label'] + ' [PO]'
event_lineup_entry.data.update(data)
if not data.get('sequence') and not data.get('label'):
try:
r.append(event_lineup_entry.delete())
except Exception as e:
raise e
else:
try:
r.append(event_lineup_entry.put())
except:
pass
pass
elif data.get('sequence') is not None and data.get('label'):
event_lineup_entry = EventLineupEntry.new(client)
if data.get('position_only'):
data['label'] = data['label'] + ' [PO]'
event_lineup_entry.data.update(data)
event_lineup_entry.data.update({"event_lineup_id": event_lineup_id})
try:
r.append(event_lineup_entry.post())
except Exception as e:
raise e
else:
pass
else:
# breakpoint()
pass
# breakpoint()
pass
return JsonResponse(ts_event.data)
pass
return HttpResponseServerError