provide ways to add benchcoach object to teamsnap object.
This commit is contained in:
@@ -2,5 +2,5 @@ from django.http import HttpResponse
|
|||||||
from django.shortcuts import render
|
from django.shortcuts import render
|
||||||
|
|
||||||
def welcome(request):
|
def welcome(request):
|
||||||
pages = ['events list', 'teams list', 'venues list', 'players list', 'teamsnap list events']
|
pages = ['events list', 'teams list', 'venues list', 'players list', 'teamsnap list events', 'teamsnap home']
|
||||||
return render(request,'home.html',{'pages':pages})
|
return render(request,'home.html',{'pages':pages})
|
||||||
@@ -4,6 +4,7 @@ from events.models import Event
|
|||||||
from players.models import Player
|
from players.models import Player
|
||||||
from django.forms import modelformset_factory, inlineformset_factory, BaseModelFormSet,formset_factory
|
from django.forms import modelformset_factory, inlineformset_factory, BaseModelFormSet,formset_factory
|
||||||
from crispy_forms.helper import FormHelper, Layout
|
from crispy_forms.helper import FormHelper, Layout
|
||||||
|
from teamsnap.models import Event as TeamsnapEvent
|
||||||
|
|
||||||
class PositioningForm(forms.ModelForm):
|
class PositioningForm(forms.ModelForm):
|
||||||
availability = None
|
availability = None
|
||||||
@@ -20,5 +21,24 @@ PositioningFormSet = modelformset_factory(
|
|||||||
# fields=['order', 'position','player'],
|
# fields=['order', 'position','player'],
|
||||||
# min_num=9,
|
# min_num=9,
|
||||||
extra=0
|
extra=0
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
class TeamsnapEventForm(forms.ModelForm):
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super(TeamsnapEventForm, self).__init__(*args, **kwargs)
|
||||||
|
if self.instance and self.instance.event_set.first():
|
||||||
|
initial = (self.instance.event_set.first().id, self.instance.event_set.first())
|
||||||
|
else:
|
||||||
|
initial = None
|
||||||
|
self.fields = {}
|
||||||
|
choices = [("","-----")]
|
||||||
|
choices += [(choice.id, choice) for choice in TeamsnapEvent.objects.all()]
|
||||||
|
self.fields['teamsnap event'] = forms.MultipleChoiceField(
|
||||||
|
widget=forms.Select(attrs={'class': 'form-control'}),
|
||||||
|
choices=choices,
|
||||||
|
initial=initial
|
||||||
|
)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = Event
|
||||||
|
fields = ['start', 'home_team', 'away_team', 'venue']
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
from django.shortcuts import render, redirect, get_object_or_404
|
from django.shortcuts import render, redirect, get_object_or_404
|
||||||
from .models import Positioning
|
from .models import Positioning
|
||||||
from .forms import PositioningFormSet
|
from .forms import PositioningFormSet, TeamsnapEventForm
|
||||||
from events.models import Event
|
from events.models import Event
|
||||||
from players.models import Player
|
from players.models import Player
|
||||||
from django.db.models import Case, When
|
from django.db.models import Case, When
|
||||||
@@ -88,20 +88,26 @@ def edit(request, event_id):
|
|||||||
formset_dhd = [f for f in formset if not f.instance.order and f.instance.position]
|
formset_dhd = [f for f in formset if not f.instance.order and f.instance.position]
|
||||||
formset_bench = [f for f in formset if f not in formset_lineup and f not in formset_dhd]
|
formset_bench = [f for f in formset if f not in formset_lineup and f not in formset_dhd]
|
||||||
|
|
||||||
|
teamsnap_form = TeamsnapEventForm(instance=event)
|
||||||
|
|
||||||
details = {
|
details = {
|
||||||
"Away Team": event.away_team,
|
"Away Team": event.away_team,
|
||||||
"Home Team": event.home_team,
|
"Home Team": event.home_team,
|
||||||
"Date": event.start.date(),
|
"Date": event.start.date(),
|
||||||
"Time": event.start.time(),
|
"Time": event.start.time(),
|
||||||
"Venue": event.venue,
|
"Venue": event.venue,
|
||||||
|
"TeamSnap": teamsnap_form
|
||||||
# "TeamSnap Link": event.event_set.first()
|
# "TeamSnap Link": event.event_set.first()
|
||||||
"TeamSnap Link": f'<a href="{reverse("teamsnap edit event", kwargs={"id": event.event_set.first().id})}"> {event.event_set.first()} </a>' if event.event_set.first() else None
|
# "TeamSnap Link": f'<a href="{reverse("teamsnap edit event", kwargs={"id": event.event_set.first().id})}"> {event.event_set.first()} </a>' if event.event_set.first() else None
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return render(request, 'lineups/lineup.html', {'title': 'Lineup',
|
return render(request, 'lineups/lineup.html', {'title': 'Lineup',
|
||||||
'event': event,
|
'event': event,
|
||||||
'details':details,
|
'details':details,
|
||||||
'previous_event': previous_event,
|
'previous_event': previous_event,
|
||||||
|
'teamsnap_form': teamsnap_form,
|
||||||
'next_event': next_event,
|
'next_event': next_event,
|
||||||
'formset': formset,
|
'formset': formset,
|
||||||
'formset_lineup':formset_lineup,
|
'formset_lineup':formset_lineup,
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
from django import forms
|
from django import forms
|
||||||
from .models import LineupEntry
|
from .models import LineupEntry, Event
|
||||||
from events.models import Event
|
|
||||||
from players.models import Player
|
from players.models import Player
|
||||||
from django.forms import modelformset_factory, inlineformset_factory, BaseModelFormSet,formset_factory
|
from django.forms import modelformset_factory, inlineformset_factory, BaseModelFormSet,formset_factory
|
||||||
from crispy_forms.helper import FormHelper, Layout
|
from crispy_forms.helper import FormHelper, Layout
|
||||||
@@ -19,3 +18,24 @@ LineupEntryFormSet = modelformset_factory(
|
|||||||
form=LineupEntryForm,
|
form=LineupEntryForm,
|
||||||
extra=0
|
extra=0
|
||||||
)
|
)
|
||||||
|
|
||||||
|
class EventForm(forms.ModelForm):
|
||||||
|
availability = None
|
||||||
|
class Meta:
|
||||||
|
model = Event
|
||||||
|
fields = ('formatted_title', 'start_date', 'benchcoach_object')
|
||||||
|
labels ={
|
||||||
|
'formatted_title':"Title",
|
||||||
|
'benchcoach_object':'BenchCoach Link',
|
||||||
|
'start_date':'Date/Time'
|
||||||
|
}
|
||||||
|
widgets = {
|
||||||
|
"formatted_title":forms.TextInput(attrs={"disabled":"disabled"}),
|
||||||
|
"start_date": forms.DateTimeInput(attrs={"disabled": "disabled"})
|
||||||
|
}
|
||||||
|
|
||||||
|
EventFormSet = modelformset_factory(
|
||||||
|
model=Event,
|
||||||
|
form=EventForm,
|
||||||
|
extra=0
|
||||||
|
)
|
||||||
|
|||||||
29
teamsnap/templates/teamsnap/event-table.html
Normal file
29
teamsnap/templates/teamsnap/event-table.html
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>Title</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
{{ formset.management_form }}
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
{% for _, field in formset.0.base_fields.items %}
|
||||||
|
<th>{{ field.label }}</th>
|
||||||
|
{% endfor %}
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
{% for form in formset %}
|
||||||
|
<tr>
|
||||||
|
{% for field in form %}
|
||||||
|
|
||||||
|
<td>{{ field }}</td>
|
||||||
|
|
||||||
|
{% endfor %}
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
10
teamsnap/templates/teamsnap/home.html
Normal file
10
teamsnap/templates/teamsnap/home.html
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{% extends "base.html" %}
|
||||||
|
{% block title %} {{ title }}{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
|
||||||
|
<h1>Currently Logged in as</h1>
|
||||||
|
<p><b>BenchCoach: </b>{{ user }} ({{ user.email }})</p>
|
||||||
|
<p><b>TeamSnap: </b>{{ teamsnap_user.email }}</p>
|
||||||
|
|
||||||
|
{% endblock %}
|
||||||
@@ -4,10 +4,13 @@ from django.shortcuts import render, redirect
|
|||||||
from .models import User, Member, Team, Event, Location, LineupEntry
|
from .models import User, Member, Team, Event, Location, LineupEntry
|
||||||
from django.views.generic.list import ListView
|
from django.views.generic.list import ListView
|
||||||
from lib.views import BenchcoachListView
|
from lib.views import BenchcoachListView
|
||||||
from .forms import LineupEntryForm, LineupEntryFormSet
|
from .forms import LineupEntryForm, LineupEntryFormSet, EventForm, EventFormSet
|
||||||
from django.forms.models import model_to_dict
|
from django.forms.models import model_to_dict
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.db.models import Case, When
|
from django.db.models import Case, When
|
||||||
|
from django.views import View
|
||||||
|
from django.http import HttpResponse
|
||||||
|
from benchcoach.models import Profile as BenchcoachUser
|
||||||
|
|
||||||
def queryset_from_ids(Model, id_list):
|
def queryset_from_ids(Model, id_list):
|
||||||
#https://stackoverflow.com/questions/4916851/django-get-a-queryset-from-array-of-ids-in-specific-order
|
#https://stackoverflow.com/questions/4916851/django-get-a-queryset-from-array-of-ids-in-specific-order
|
||||||
@@ -19,6 +22,22 @@ def edit_event(request, id):
|
|||||||
event = Event.objects.get(id = id)
|
event = Event.objects.get(id = id)
|
||||||
return redirect(event.edit_url)
|
return redirect(event.edit_url)
|
||||||
|
|
||||||
|
def home(request):
|
||||||
|
current_benchcoach_user = BenchcoachUser.objects.get(id=1)
|
||||||
|
current_teamsnap_user = current_benchcoach_user.teamsnap_user
|
||||||
|
context= {
|
||||||
|
'user': request.user,
|
||||||
|
'benchcoach_user': current_benchcoach_user,
|
||||||
|
'teamsnap_user': current_teamsnap_user
|
||||||
|
}
|
||||||
|
return render(request, 'teamsnap/home.html', context)
|
||||||
|
|
||||||
|
class EventsTableView(View):
|
||||||
|
def get(self, request):
|
||||||
|
qs = Event.objects.all()
|
||||||
|
formset = EventFormSet(queryset=qs)
|
||||||
|
return render(request,'teamsnap/event-table.html', context={'formset':formset})
|
||||||
|
|
||||||
class EventsListView(BenchcoachListView):
|
class EventsListView(BenchcoachListView):
|
||||||
Model = Event
|
Model = Event
|
||||||
edit_url = 'teamsnap edit event'
|
edit_url = 'teamsnap edit event'
|
||||||
|
|||||||
Reference in New Issue
Block a user