resolve conflicts
This commit is contained in:
@@ -36,7 +36,7 @@
|
|||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body class="bg-light">
|
||||||
|
|
||||||
<div class="mb-1 bg-light">
|
<div class="mb-1 bg-light">
|
||||||
<nav class="navbar navbar-expand-md navbar-dark bg-navbar">
|
<nav class="navbar navbar-expand-md navbar-dark bg-navbar">
|
||||||
@@ -65,6 +65,9 @@
|
|||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" href="{% url 'teamsnap_schedule' %}">{% translate "Schedule" %}</a>
|
<a class="nav-link" href="{% url 'teamsnap_schedule' %}">{% translate "Schedule" %}</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="{% url 'teamsnap_choose_multiple_lineups' team_id=request.user.teamsnap_preferences.managed_team_id%}?num=3">{% translate "Multi-Lineup" %}</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
<li class="nav-item dropdown">
|
<li class="nav-item dropdown">
|
||||||
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||||
|
|||||||
@@ -53,3 +53,17 @@ class LineupEntryForm(forms.Form):
|
|||||||
LineupEntryFormset = formset_factory(
|
LineupEntryFormset = formset_factory(
|
||||||
LineupEntryForm, can_delete=True, can_order=True, extra=0
|
LineupEntryForm, can_delete=True, can_order=True, extra=0
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class EventChooseForm(forms.Form):
|
||||||
|
event_id = forms.ChoiceField()
|
||||||
|
|
||||||
|
# checked = forms.BooleanField(required=False)
|
||||||
|
# def __init__(self, events, *args, **kwargs):
|
||||||
|
# super(EventChooseForm, self).__init__(*args, **kwargs)
|
||||||
|
# self.fields['foo'].choices = [e.data['id'] for e in events]
|
||||||
|
|
||||||
|
|
||||||
|
LineupEntryFormset = formset_factory(
|
||||||
|
LineupEntryForm, can_delete=True, can_order=True, extra=0
|
||||||
|
)
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ from .views import (
|
|||||||
PreferencesFormView,
|
PreferencesFormView,
|
||||||
dashboard,
|
dashboard,
|
||||||
edit_lineup,
|
edit_lineup,
|
||||||
|
multi_lineup_choose,
|
||||||
schedule_view,
|
schedule_view,
|
||||||
submit_lineup,
|
submit_lineup,
|
||||||
view_event,
|
view_event,
|
||||||
@@ -39,4 +40,9 @@ urlpatterns += [
|
|||||||
edit_lineup,
|
edit_lineup,
|
||||||
name="teamsnap_edit_multiple_lineups",
|
name="teamsnap_edit_multiple_lineups",
|
||||||
),
|
),
|
||||||
|
path(
|
||||||
|
"<int:team_id>/multievent/choose",
|
||||||
|
multi_lineup_choose,
|
||||||
|
name="teamsnap_choose_multiple_lineups",
|
||||||
|
),
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -462,3 +462,57 @@ def submit_lineup(request, team_id, event_id):
|
|||||||
pass
|
pass
|
||||||
return HttpResponse(status=200)
|
return HttpResponse(status=200)
|
||||||
return HttpResponseServerError()
|
return HttpResponseServerError()
|
||||||
|
|
||||||
|
|
||||||
|
def multi_lineup_choose(request, team_id):
|
||||||
|
from django.forms import formset_factory
|
||||||
|
from pyteamsnap.api import Event
|
||||||
|
|
||||||
|
from .forms import EventChooseForm
|
||||||
|
|
||||||
|
client = get_teamsnap_client(request)
|
||||||
|
|
||||||
|
if request.method == "POST":
|
||||||
|
ts_events = Event.search(client, team_id=team_id)
|
||||||
|
EventChooseFormset = formset_factory(EventChooseForm)
|
||||||
|
formset = EventChooseFormset(request.POST)
|
||||||
|
choices = [(e.data["id"], e.data["formatted_title"]) for e in ts_events]
|
||||||
|
|
||||||
|
for form in formset:
|
||||||
|
form.fields["event_id"].choices = choices
|
||||||
|
|
||||||
|
if formset.is_valid():
|
||||||
|
event_ids = [f.cleaned_data["event_id"] for f in formset]
|
||||||
|
else:
|
||||||
|
event_ids = request.GET.get("event_ids").split(",")
|
||||||
|
EventChooseFormset = formset_factory(EventChooseForm)
|
||||||
|
formset = EventChooseFormset(request.POST)
|
||||||
|
|
||||||
|
return redirect(
|
||||||
|
"teamsnap_edit_multiple_lineups",
|
||||||
|
team_id=team_id,
|
||||||
|
event_ids=",".join(event_ids),
|
||||||
|
)
|
||||||
|
elif not request.GET.get("num"):
|
||||||
|
return HttpResponse(500)
|
||||||
|
else:
|
||||||
|
num = int(request.GET.get("num"))
|
||||||
|
TEAM_ID = team_id
|
||||||
|
|
||||||
|
ts_events = Event.search(client, team_id=TEAM_ID)
|
||||||
|
ts_events = {e.data["id"]: e for e in ts_events}
|
||||||
|
|
||||||
|
EventChooseFormset = formset_factory(EventChooseForm, extra=num)
|
||||||
|
formset = EventChooseFormset()
|
||||||
|
|
||||||
|
choices = [(id, e.data["formatted_title"]) for id, e in ts_events.items()]
|
||||||
|
|
||||||
|
for form in formset:
|
||||||
|
form.fields["event_id"].choices = choices
|
||||||
|
|
||||||
|
pass
|
||||||
|
return render(
|
||||||
|
request,
|
||||||
|
"lineup/multiple_choose.html",
|
||||||
|
context={"formset": formset, "team_id": team_id},
|
||||||
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user