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 @@ def dashboard(request, team_id=None):
team_id=request.user.teamsnap_preferences.managed_team_id,
)
from pyteamsnap.objects import AvailabilitySummary, Event
from pyteamsnap.models import AvailabilitySummary, Event
client = get_teamsnap_client(request)
ts_events = Event.search(client, team_id=team_id)

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

View File

@@ -79,17 +79,17 @@ class PreferencesFormView(FormView):
Returns the initial data to use for forms on this view.
"""
import pyteamsnap.client
import pyteamsnap.objects
import pyteamsnap.models
ts_account = self.request.user.socialaccount_set.first()
ts_token = ts_account.socialtoken_set.first()
# ts_token =
ts = pyteamsnap.client.TeamSnap(token=ts_token)
me = pyteamsnap.objects.Me(ts)
me = pyteamsnap.models.Me(ts)
teams = [
(id, pyteamsnap.objects.Team.get(ts, id=id))
(id, pyteamsnap.models.Team.get(ts, id=id))
for id in me.data["managed_team_ids"]
]
@@ -117,7 +117,7 @@ def schedule_view(request, team_id=None):
client = get_teamsnap_client(request)
no_past = bool(request.GET.get("no_past", 0))
games_only = bool(request.GET.get("games_only", 0))
from pyteamsnap.objects import Event
from pyteamsnap.models import Event
ts_events = Event.search(client, team_id=team_id)
if no_past:
@@ -144,7 +144,7 @@ def view_event(request, event_id, team_id=None):
"teamsnap_event", team_id=request.user.teamsnap_preferences.managed_team_id
)
from pyteamsnap.objects import (
from pyteamsnap.models import (
AvailabilitySummary,
Event,
EventLineup,
@@ -184,7 +184,8 @@ def view_event(request, event_id, team_id=None):
def multi_lineup_choose(request, team_id):
from django.forms import formset_factory
from pyteamsnap.objects import Event
from pyteamsnap.models import Event
from .forms import EventChooseForm
@@ -248,13 +249,13 @@ class OpponentFormView(FormView):
def form_valid(self, form):
# This method is called when valid form data has been POSTed.
# It should return an HttpResponse.
import pyteamsnap.objects
import pyteamsnap.models
ts_client = get_teamsnap_client(self.request)
user = pyteamsnap.objects.Me(ts_client)
user = pyteamsnap.models.Me(ts_client)
team_id = int(self.kwargs.get("team_id"))
opponent_id = int(self.kwargs.get("opponent_id"))
opponent = pyteamsnap.objects.Opponent.get(ts_client, opponent_id)
opponent = pyteamsnap.models.Opponent.get(ts_client, opponent_id)
if (
team_id in user.data["managed_team_ids"]
and opponent.data["team_id"] == team_id
@@ -282,11 +283,11 @@ class OpponentFormView(FormView):
return form
def get_context_data(self, **kwargs):
import pyteamsnap.objects
import pyteamsnap.models
ts_client = get_teamsnap_client(self.request)
context = super().get_context_data(**kwargs)
opponent = pyteamsnap.objects.Opponent.get(
opponent = pyteamsnap.models.Opponent.get(
ts_client, self.kwargs.get("opponent_id")
)
context["opponent"] = opponent
@@ -299,7 +300,7 @@ class Opponents(ListView):
pass
def get_queryset(self):
from pyteamsnap.objects import Opponent as TsOpponent
from pyteamsnap.models import Opponent as TsOpponent
ts_client = get_teamsnap_client(self.request)
team_id = self.kwargs.get("team_id")