adding gamechanger, in progress
This commit is contained in:
81
gamechanger/views.py
Normal file
81
gamechanger/views.py
Normal file
@@ -0,0 +1,81 @@
|
||||
from django.shortcuts import render
|
||||
from django.views.generic.edit import FormView
|
||||
from django.views.generic.list import ListView
|
||||
from .forms import PreferencesForm, AccountForm, PlayerFormSet
|
||||
from .utils.gamechanger import scrape_page
|
||||
from teamsnap.views import get_teamsnap_client
|
||||
|
||||
# Create your views here.
|
||||
class PreferencesFormView(FormView):
|
||||
template_name = "gamechanger/form.html"
|
||||
form_class = PreferencesForm
|
||||
success_url = "/"
|
||||
|
||||
def form_valid(self, form):
|
||||
# This method is called when valid form data has been POSTed.
|
||||
# It should return an HttpResponse.
|
||||
if form.data["user"] == str(self.request.user.id):
|
||||
form.save()
|
||||
return super().form_valid(form)
|
||||
|
||||
def get_initial(self):
|
||||
"""
|
||||
Returns the initial data to use for forms on this view.
|
||||
"""
|
||||
initial = super().get_initial()
|
||||
initial["user"] = self.request.user
|
||||
initial["email"] = self.request.user.username
|
||||
# initial['managed_team_id']
|
||||
|
||||
return initial
|
||||
|
||||
class AccountFormView(FormView):
|
||||
template_name = "gamechanger/form.html"
|
||||
form_class = AccountForm
|
||||
success_url = "/"
|
||||
|
||||
def form_valid(self, form):
|
||||
# This method is called when valid form data has been POSTed.
|
||||
# It should return an HttpResponse.
|
||||
if form.data["user"] == str(self.request.user.id):
|
||||
form.save()
|
||||
return super().form_valid(form)
|
||||
|
||||
def get_initial(self):
|
||||
"""
|
||||
Returns the initial data to use for forms on this view.
|
||||
"""
|
||||
initial = super().get_initial()
|
||||
initial["user"] = self.request.user
|
||||
initial["email"] = self.request.user.username
|
||||
# initial['managed_team_id']
|
||||
|
||||
return initial
|
||||
|
||||
def roster_view(request):
|
||||
from pyteamsnap.api import Member
|
||||
client = get_teamsnap_client(request)
|
||||
season_id = request.user.gamechanger_preferences.season_id
|
||||
team_id = request.user.gamechanger_preferences.team_id
|
||||
teamsnap_team_id = request.user.preferences.managed_team_id
|
||||
teamsnap_members = {
|
||||
f"{member.data['first_name']} {member.data['last_name']}":member
|
||||
for member in Member.search(client, team_id=teamsnap_team_id)
|
||||
}
|
||||
|
||||
page = "roster"
|
||||
|
||||
d = scrape_page(season_id, team_id, page)
|
||||
roster = d['roster']
|
||||
initial = [{
|
||||
'gamechanger_name':f"{player['fname']} {player['lname']}",
|
||||
'teamsnap_name':"{first_name} {last_name}".format(**teamsnap_members[f"{player['fname']} {player['lname']}"].data),
|
||||
'gamechanger_id':player.get('player_id'),
|
||||
'teamsnap_member_id':teamsnap_members[f"{player['fname']} {player['lname']}"].data['id'],
|
||||
} for player in roster]
|
||||
formset = PlayerFormSet(initial=initial)
|
||||
return render(request, "gamechanger/roster.html", context={'roster':roster, 'formset':formset})
|
||||
pass
|
||||
|
||||
def roster_save(request):
|
||||
pass
|
||||
Reference in New Issue
Block a user