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

4
.idea/benchcoach.iml generated
View File

@@ -19,10 +19,12 @@
<excludeFolder url="file://$MODULE_DIR$/docs/_build" />
<excludeFolder url="file://$MODULE_DIR$/venv" />
</content>
<orderEntry type="jdk" jdkName="Python 3.9 (benchcoach) (2)" jdkType="Python SDK" />
<orderEntry type="jdk" jdkName="Python 3.10 (benchcoach)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="pyteamsnap" />
<orderEntry type="module" module-name="gamescrapyr" />
<orderEntry type="library" name="bootstrap-icons" level="application" />
<orderEntry type="library" name="bootstrap" level="application" />
</component>
<component name="PackageRequirementsSettings">
<option name="requirementsPath" value="$MODULE_DIR$/requirements/local.txt" />

View File

@@ -1,5 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="PROJECT_PROFILE" value="Default" />
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>

2
.idea/misc.xml generated
View File

@@ -3,5 +3,5 @@
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9 (benchcoach) (2)" project-jdk-type="Python SDK" />
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10 (pyteamsnap)" project-jdk-type="Python SDK" />
</project>

View File

@@ -12,13 +12,16 @@
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<PathMappingSettings>
<option name="pathMappings">
<list>
<mapping local-root="$PROJECT_DIR$" remote-root="/app" />
</list>
</option>
</PathMappingSettings>
<EXTENSION ID="net.ashald.envfile">
<option name="IS_ENABLED" value="false" />
<option name="IS_SUBST" value="false" />
<option name="IS_PATH_MACRO_SUPPORTED" value="false" />
<option name="IS_IGNORE_MISSING_FILES" value="false" />
<option name="IS_ENABLE_EXPERIMENTAL_INTEGRATIONS" value="false" />
<ENTRIES>
<ENTRY IS_ENABLED="true" PARSER="runconfig" />
</ENTRIES>
</EXTENSION>
<option name="launchJavascriptDebuger" value="false" />
<option name="host" value="" />
<option name="additionalOptions" value="" />
@@ -27,6 +30,6 @@
<option name="runNoReload" value="false" />
<option name="useCustomRunCommand" value="true" />
<option name="customRunCommand" value="migrate" />
<method />
<method v="2" />
</configuration>
</component>

View File

@@ -14,6 +14,16 @@
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<EXTENSION ID="net.ashald.envfile">
<option name="IS_ENABLED" value="false" />
<option name="IS_SUBST" value="false" />
<option name="IS_PATH_MACRO_SUPPORTED" value="false" />
<option name="IS_IGNORE_MISSING_FILES" value="false" />
<option name="IS_ENABLE_EXPERIMENTAL_INTEGRATIONS" value="false" />
<ENTRIES>
<ENTRY IS_ENABLED="true" PARSER="runconfig" />
</ENTRIES>
</EXTENSION>
<option name="launchJavascriptDebuger" value="false" />
<option name="port" value="8000" />
<option name="host" value="0.0.0.0" />

View File

@@ -5,8 +5,9 @@
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
<env name="DJANGO_SETTINGS_MODULE" value="config.settings.local" />
<env name="DATABASE_URL" value="postgres://postgres:debug@127.0.0.1:5432/benchcoach" />
<env name="DEBUG" value="True" />
<env name="DJANGO_SETTINGS_MODULE" value="config.settings.local" />
<env name="USE_DOCKER" value="yes" />
</envs>
<option name="SDK_HOME" value="" />
@@ -14,6 +15,17 @@
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<EXTENSION ID="net.ashald.envfile">
<option name="IS_ENABLED" value="true" />
<option name="IS_SUBST" value="false" />
<option name="IS_PATH_MACRO_SUPPORTED" value="false" />
<option name="IS_IGNORE_MISSING_FILES" value="false" />
<option name="IS_ENABLE_EXPERIMENTAL_INTEGRATIONS" value="false" />
<ENTRIES>
<ENTRY IS_ENABLED="true" PARSER="runconfig" />
<ENTRY IS_ENABLED="true" PARSER="env" PATH=".envs/.local/.django" />
</ENTRIES>
</EXTENSION>
<option name="launchJavascriptDebuger" value="true" />
<option name="port" value="8000" />
<option name="host" value="127.0.0.1" />

View File

@@ -64,8 +64,8 @@ def gamecard(request, team_id, event_id):
gc_client = get_gamechanger_client(request)
stats = gc_client.get_stats()
stats_lookup = {
GcModels.Player.objects.filter(id=k).first().teamsnap_member_id: stat_row
for k, stat_row in stats.items()
# GcModels.Player.objects.filter(id=k).first().teamsnap_member_id: stat_row
# for k, stat_row in stats.items()
}
members = []

View File

@@ -134,7 +134,7 @@ def roster(request):
def roster_import(request):
if request.method == "GET":
from pyteamsnap.objects import Member
from pyteamsnap.models import Member
gc_client = get_gamechanger_client(request)
season_slug = request.user.gamechanger_preferences.managed_team.season_slug

View File

@@ -14,7 +14,7 @@ def image_generator(request, team_id, event_id):
TOKEN = current_teamsnap_user.socialtoken_set.order_by("-expires_at").first().token
from pyteamsnap.client import TeamSnap
from pyteamsnap.objects import Event
from pyteamsnap.models import Event
client = TeamSnap(token=TOKEN)
@@ -25,7 +25,7 @@ def image_generator(request, team_id, event_id):
def get_matchup_image(request, team_id, event_id, dimensions=None, background=None):
import io
from pyteamsnap.objects import Location, Opponent, Team
from pyteamsnap.models import Location, Opponent, Team
from .utils.gen_image import Location as ImagegenLocation
from .utils.gen_image import Team as ImagegenTeam
@@ -45,7 +45,7 @@ def get_matchup_image(request, team_id, event_id, dimensions=None, background=No
)
from pyteamsnap.client import TeamSnap
from pyteamsnap.objects import Event
from pyteamsnap.models import Event
teamsnap = TeamSnap(token=ts_token)

View File

@@ -18,7 +18,8 @@ django-redis==5.2.0 # https://github.com/jazzband/django-redis
api-client
-e git+ssh://gituser@home.ascorrea.com/~/pyteamsnap.git#egg=pyteamsnap
-e git+ssh://gituser@home.ascorrea.com/~/gamescrapyr.git#egg=gamescrapyr
-e git+https://git@gitea.ascorrea.com/asc/pyteamsnap.git#egg=pyteamsnap
-e git+https://git@gitea.ascorrea.com/asc/gamescrapyr.git#egg=gamescrapyr
beautifulsoup4==4.11.1
pyOpenSSL

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")