...
This commit is contained in:
4
.idea/benchcoach.iml
generated
4
.idea/benchcoach.iml
generated
@@ -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" />
|
||||
|
||||
1
.idea/inspectionProfiles/profiles_settings.xml
generated
1
.idea/inspectionProfiles/profiles_settings.xml
generated
@@ -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
2
.idea/misc.xml
generated
@@ -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>
|
||||
|
||||
19
.idea/runConfigurations/migrate.xml
generated
19
.idea/runConfigurations/migrate.xml
generated
@@ -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>
|
||||
|
||||
10
.idea/runConfigurations/runserver.xml
generated
10
.idea/runConfigurations/runserver.xml
generated
@@ -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" />
|
||||
|
||||
16
.idea/runConfigurations/runserver_plus.xml
generated
16
.idea/runConfigurations/runserver_plus.xml
generated
@@ -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" />
|
||||
@@ -25,4 +37,4 @@
|
||||
<option name="customRunCommand" value="runserver_plus" />
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
||||
</component>
|
||||
|
||||
@@ -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 = []
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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', () => {
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user