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
|
||||
|
||||
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})
|
||||
@@ -4,6 +4,7 @@ from events.models import Event
|
||||
from players.models import Player
|
||||
from django.forms import modelformset_factory, inlineformset_factory, BaseModelFormSet,formset_factory
|
||||
from crispy_forms.helper import FormHelper, Layout
|
||||
from teamsnap.models import Event as TeamsnapEvent
|
||||
|
||||
class PositioningForm(forms.ModelForm):
|
||||
availability = None
|
||||
@@ -20,5 +21,24 @@ PositioningFormSet = modelformset_factory(
|
||||
# fields=['order', 'position','player'],
|
||||
# min_num=9,
|
||||
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 .models import Positioning
|
||||
from .forms import PositioningFormSet
|
||||
from .forms import PositioningFormSet, TeamsnapEventForm
|
||||
from events.models import Event
|
||||
from players.models import Player
|
||||
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_bench = [f for f in formset if f not in formset_lineup and f not in formset_dhd]
|
||||
|
||||
teamsnap_form = TeamsnapEventForm(instance=event)
|
||||
|
||||
details = {
|
||||
"Away Team": event.away_team,
|
||||
"Home Team": event.home_team,
|
||||
"Date": event.start.date(),
|
||||
"Time": event.start.time(),
|
||||
"Venue": event.venue,
|
||||
"TeamSnap": teamsnap_form
|
||||
# "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',
|
||||
'event': event,
|
||||
'details':details,
|
||||
'previous_event': previous_event,
|
||||
'teamsnap_form': teamsnap_form,
|
||||
'next_event': next_event,
|
||||
'formset': formset,
|
||||
'formset_lineup':formset_lineup,
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
from django import forms
|
||||
from .models import LineupEntry
|
||||
from events.models import Event
|
||||
from .models import LineupEntry, Event
|
||||
from players.models import Player
|
||||
from django.forms import modelformset_factory, inlineformset_factory, BaseModelFormSet,formset_factory
|
||||
from crispy_forms.helper import FormHelper, Layout
|
||||
@@ -19,3 +18,24 @@ LineupEntryFormSet = modelformset_factory(
|
||||
form=LineupEntryForm,
|
||||
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 django.views.generic.list import ListView
|
||||
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.urls import reverse
|
||||
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):
|
||||
#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)
|
||||
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):
|
||||
Model = Event
|
||||
edit_url = 'teamsnap edit event'
|
||||
|
||||
Reference in New Issue
Block a user