From abdab2d30b62d15825d9ccd1031d6a6e98069a55 Mon Sep 17 00:00:00 2001 From: Tony Date: Thu, 9 Jun 2022 07:46:53 -0500 Subject: [PATCH] split gamecard into its own app, add models to teamsnap for custom fields (images) --- config/settings/base.py | 3 +- config/urls.py | 1 + gamecard/__init__.py | 0 gamecard/apps.py | 6 + gamecard/migrations/__init__.py | 0 .../static/css/gamecard.css | 0 {benchcoach => gamecard}/static/css/paper.css | 2 +- .../static/fonts/m+1m/m+1m.css | 0 .../fonts/m+1m/mplus-1m-bold-webfont.woff | Bin .../fonts/m+1m/mplus-1m-light-webfont.woff | Bin .../fonts/m+1m/mplus-1m-medium-webfont.woff | Bin .../fonts/m+1m/mplus-1m-regular-webfont.woff | Bin .../fonts/m+1m/mplus-1m-thin-webfont.woff | Bin .../fonts/vera/Vera-Bold-Italic-webfont.woff | Bin .../static/fonts/vera/Vera-Bold-webfont.woff | Bin .../fonts/vera/Vera-Italic-webfont.woff | Bin .../static/fonts/vera/Vera-webfont.woff | Bin .../vera/VeraMono-Bold-Italic-webfont.woff | Bin .../fonts/vera/VeraMono-Bold-webfont.woff | Bin .../fonts/vera/VeraMono-Italic-webfont.woff | Bin .../static/fonts/vera/VeraMono-webfont.woff | Bin .../static/fonts/vera/bitstreamvera.css | 0 .../static/fonts/verdana/VerdanaPro-Black.ttf | Bin .../fonts/verdana/VerdanaPro-BlackItalic.ttf | Bin .../static/fonts/verdana/VerdanaPro-Bold.ttf | Bin .../fonts/verdana/VerdanaPro-BoldItalic.ttf | Bin .../fonts/verdana/VerdanaPro-CondBlack.ttf | Bin .../verdana/VerdanaPro-CondBlackItalic.ttf | Bin .../fonts/verdana/VerdanaPro-CondBold.ttf | Bin .../verdana/VerdanaPro-CondBoldItalic.ttf | Bin .../fonts/verdana/VerdanaPro-CondItalic.ttf | Bin .../fonts/verdana/VerdanaPro-CondLight.ttf | Bin .../verdana/VerdanaPro-CondLightItalic.ttf | Bin .../fonts/verdana/VerdanaPro-CondRegular.ttf | Bin .../fonts/verdana/VerdanaPro-CondSemiBold.ttf | Bin .../verdana/VerdanaPro-CondSemiBoldItalic.ttf | Bin .../fonts/verdana/VerdanaPro-Italic.ttf | Bin .../static/fonts/verdana/VerdanaPro-Light.ttf | Bin .../fonts/verdana/VerdanaPro-LightItalic.ttf | Bin .../fonts/verdana/VerdanaPro-Regular.ttf | Bin .../fonts/verdana/VerdanaPro-SemiBold.ttf | Bin .../verdana/VerdanaPro-SemiBoldItalic.ttf | Bin .../static/fonts/verdana/verdanapro.css | 0 .../templates/gamecard}/gamecard.html | 4 +- gamecard/tests.py | 3 + gamecard/urls.py | 7 ++ gamecard/utils/__init__.py | 0 gamecard/views.py | 109 ++++++++++++++++++ teamsnap/admin.py | 4 +- teamsnap/migrations/0001_initial.py | 10 +- .../migrations/0004_auto_20220609_0722.py | 33 ++++++ teamsnap/migrations/__init__.py | 0 teamsnap/models.py | 40 +++++++ teamsnap/templates/dashboard.html | 77 +++++++------ teamsnap/utils/__init__.py | 14 +++ teamsnap/views.py | 18 +-- 56 files changed, 273 insertions(+), 58 deletions(-) create mode 100644 gamecard/__init__.py create mode 100644 gamecard/apps.py create mode 100644 gamecard/migrations/__init__.py rename {benchcoach => gamecard}/static/css/gamecard.css (100%) rename {benchcoach => gamecard}/static/css/paper.css (99%) rename {benchcoach => gamecard}/static/fonts/m+1m/m+1m.css (100%) rename {benchcoach => gamecard}/static/fonts/m+1m/mplus-1m-bold-webfont.woff (100%) rename {benchcoach => gamecard}/static/fonts/m+1m/mplus-1m-light-webfont.woff (100%) rename {benchcoach => gamecard}/static/fonts/m+1m/mplus-1m-medium-webfont.woff (100%) rename {benchcoach => gamecard}/static/fonts/m+1m/mplus-1m-regular-webfont.woff (100%) rename {benchcoach => gamecard}/static/fonts/m+1m/mplus-1m-thin-webfont.woff (100%) rename {benchcoach => gamecard}/static/fonts/vera/Vera-Bold-Italic-webfont.woff (100%) rename {benchcoach => gamecard}/static/fonts/vera/Vera-Bold-webfont.woff (100%) rename {benchcoach => gamecard}/static/fonts/vera/Vera-Italic-webfont.woff (100%) rename {benchcoach => gamecard}/static/fonts/vera/Vera-webfont.woff (100%) rename {benchcoach => gamecard}/static/fonts/vera/VeraMono-Bold-Italic-webfont.woff (100%) rename {benchcoach => gamecard}/static/fonts/vera/VeraMono-Bold-webfont.woff (100%) rename {benchcoach => gamecard}/static/fonts/vera/VeraMono-Italic-webfont.woff (100%) rename {benchcoach => gamecard}/static/fonts/vera/VeraMono-webfont.woff (100%) rename {benchcoach => gamecard}/static/fonts/vera/bitstreamvera.css (100%) rename {benchcoach => gamecard}/static/fonts/verdana/VerdanaPro-Black.ttf (100%) rename {benchcoach => gamecard}/static/fonts/verdana/VerdanaPro-BlackItalic.ttf (100%) rename {benchcoach => gamecard}/static/fonts/verdana/VerdanaPro-Bold.ttf (100%) rename {benchcoach => gamecard}/static/fonts/verdana/VerdanaPro-BoldItalic.ttf (100%) rename {benchcoach => gamecard}/static/fonts/verdana/VerdanaPro-CondBlack.ttf (100%) rename {benchcoach => gamecard}/static/fonts/verdana/VerdanaPro-CondBlackItalic.ttf (100%) rename {benchcoach => gamecard}/static/fonts/verdana/VerdanaPro-CondBold.ttf (100%) rename {benchcoach => gamecard}/static/fonts/verdana/VerdanaPro-CondBoldItalic.ttf (100%) rename {benchcoach => gamecard}/static/fonts/verdana/VerdanaPro-CondItalic.ttf (100%) rename {benchcoach => gamecard}/static/fonts/verdana/VerdanaPro-CondLight.ttf (100%) rename {benchcoach => gamecard}/static/fonts/verdana/VerdanaPro-CondLightItalic.ttf (100%) rename {benchcoach => gamecard}/static/fonts/verdana/VerdanaPro-CondRegular.ttf (100%) rename {benchcoach => gamecard}/static/fonts/verdana/VerdanaPro-CondSemiBold.ttf (100%) rename {benchcoach => gamecard}/static/fonts/verdana/VerdanaPro-CondSemiBoldItalic.ttf (100%) rename {benchcoach => gamecard}/static/fonts/verdana/VerdanaPro-Italic.ttf (100%) rename {benchcoach => gamecard}/static/fonts/verdana/VerdanaPro-Light.ttf (100%) rename {benchcoach => gamecard}/static/fonts/verdana/VerdanaPro-LightItalic.ttf (100%) rename {benchcoach => gamecard}/static/fonts/verdana/VerdanaPro-Regular.ttf (100%) rename {benchcoach => gamecard}/static/fonts/verdana/VerdanaPro-SemiBold.ttf (100%) rename {benchcoach => gamecard}/static/fonts/verdana/VerdanaPro-SemiBoldItalic.ttf (100%) rename {benchcoach => gamecard}/static/fonts/verdana/verdanapro.css (100%) rename {teamsnap/templates/lineup => gamecard/templates/gamecard}/gamecard.html (97%) create mode 100644 gamecard/tests.py create mode 100644 gamecard/urls.py create mode 100644 gamecard/utils/__init__.py create mode 100644 gamecard/views.py create mode 100644 teamsnap/migrations/0004_auto_20220609_0722.py create mode 100644 teamsnap/migrations/__init__.py create mode 100644 teamsnap/utils/__init__.py diff --git a/config/settings/base.py b/config/settings/base.py index c1b3d3e..6c2d0db 100644 --- a/config/settings/base.py +++ b/config/settings/base.py @@ -272,5 +272,6 @@ SOCIALACCOUNT_FORMS = {"signup": "benchcoach.users.forms.UserSocialSignupForm"} # Your stuff... # ------------------------------------------------------------------------------ -INSTALLED_APPS += ["teamsnap", "instagen"] +INSTALLED_APPS += ["teamsnap", "instagen", "gamecard"] + SOCIALACCOUNT_PROVIDERS = {"teamsnap": {"SCOPE": ["read", "write"]}} diff --git a/config/urls.py b/config/urls.py index deae37b..8fdfd88 100644 --- a/config/urls.py +++ b/config/urls.py @@ -17,6 +17,7 @@ urlpatterns = [ path("accounts/", include("allauth.urls")), path("", include("teamsnap.urls")), path("", include("instagen.urls")), + path("", include("gamecard.urls")), ] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) diff --git a/gamecard/__init__.py b/gamecard/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/gamecard/apps.py b/gamecard/apps.py new file mode 100644 index 0000000..5e16d00 --- /dev/null +++ b/gamecard/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class GamecardConfig(AppConfig): + default_auto_field = "django.db.models.BigAutoField" + name = "gamecard" diff --git a/gamecard/migrations/__init__.py b/gamecard/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/benchcoach/static/css/gamecard.css b/gamecard/static/css/gamecard.css similarity index 100% rename from benchcoach/static/css/gamecard.css rename to gamecard/static/css/gamecard.css diff --git a/benchcoach/static/css/paper.css b/gamecard/static/css/paper.css similarity index 99% rename from benchcoach/static/css/paper.css rename to gamecard/static/css/paper.css index b3adee4..5b84e46 100644 --- a/benchcoach/static/css/paper.css +++ b/gamecard/static/css/paper.css @@ -49,4 +49,4 @@ body.legal.landscape .sheet { width: 357mm; height: 215mm } body.letter, body.legal { width: 216mm } body.letter.landscape { width: 280mm } body.legal.landscape { width: 357mm } -} \ No newline at end of file +} diff --git a/benchcoach/static/fonts/m+1m/m+1m.css b/gamecard/static/fonts/m+1m/m+1m.css similarity index 100% rename from benchcoach/static/fonts/m+1m/m+1m.css rename to gamecard/static/fonts/m+1m/m+1m.css diff --git a/benchcoach/static/fonts/m+1m/mplus-1m-bold-webfont.woff b/gamecard/static/fonts/m+1m/mplus-1m-bold-webfont.woff similarity index 100% rename from benchcoach/static/fonts/m+1m/mplus-1m-bold-webfont.woff rename to gamecard/static/fonts/m+1m/mplus-1m-bold-webfont.woff diff --git a/benchcoach/static/fonts/m+1m/mplus-1m-light-webfont.woff b/gamecard/static/fonts/m+1m/mplus-1m-light-webfont.woff similarity index 100% rename from benchcoach/static/fonts/m+1m/mplus-1m-light-webfont.woff rename to gamecard/static/fonts/m+1m/mplus-1m-light-webfont.woff diff --git a/benchcoach/static/fonts/m+1m/mplus-1m-medium-webfont.woff b/gamecard/static/fonts/m+1m/mplus-1m-medium-webfont.woff similarity index 100% rename from benchcoach/static/fonts/m+1m/mplus-1m-medium-webfont.woff rename to gamecard/static/fonts/m+1m/mplus-1m-medium-webfont.woff diff --git a/benchcoach/static/fonts/m+1m/mplus-1m-regular-webfont.woff b/gamecard/static/fonts/m+1m/mplus-1m-regular-webfont.woff similarity index 100% rename from benchcoach/static/fonts/m+1m/mplus-1m-regular-webfont.woff rename to gamecard/static/fonts/m+1m/mplus-1m-regular-webfont.woff diff --git a/benchcoach/static/fonts/m+1m/mplus-1m-thin-webfont.woff b/gamecard/static/fonts/m+1m/mplus-1m-thin-webfont.woff similarity index 100% rename from benchcoach/static/fonts/m+1m/mplus-1m-thin-webfont.woff rename to gamecard/static/fonts/m+1m/mplus-1m-thin-webfont.woff diff --git a/benchcoach/static/fonts/vera/Vera-Bold-Italic-webfont.woff b/gamecard/static/fonts/vera/Vera-Bold-Italic-webfont.woff similarity index 100% rename from benchcoach/static/fonts/vera/Vera-Bold-Italic-webfont.woff rename to gamecard/static/fonts/vera/Vera-Bold-Italic-webfont.woff diff --git a/benchcoach/static/fonts/vera/Vera-Bold-webfont.woff b/gamecard/static/fonts/vera/Vera-Bold-webfont.woff similarity index 100% rename from benchcoach/static/fonts/vera/Vera-Bold-webfont.woff rename to gamecard/static/fonts/vera/Vera-Bold-webfont.woff diff --git a/benchcoach/static/fonts/vera/Vera-Italic-webfont.woff b/gamecard/static/fonts/vera/Vera-Italic-webfont.woff similarity index 100% rename from benchcoach/static/fonts/vera/Vera-Italic-webfont.woff rename to gamecard/static/fonts/vera/Vera-Italic-webfont.woff diff --git a/benchcoach/static/fonts/vera/Vera-webfont.woff b/gamecard/static/fonts/vera/Vera-webfont.woff similarity index 100% rename from benchcoach/static/fonts/vera/Vera-webfont.woff rename to gamecard/static/fonts/vera/Vera-webfont.woff diff --git a/benchcoach/static/fonts/vera/VeraMono-Bold-Italic-webfont.woff b/gamecard/static/fonts/vera/VeraMono-Bold-Italic-webfont.woff similarity index 100% rename from benchcoach/static/fonts/vera/VeraMono-Bold-Italic-webfont.woff rename to gamecard/static/fonts/vera/VeraMono-Bold-Italic-webfont.woff diff --git a/benchcoach/static/fonts/vera/VeraMono-Bold-webfont.woff b/gamecard/static/fonts/vera/VeraMono-Bold-webfont.woff similarity index 100% rename from benchcoach/static/fonts/vera/VeraMono-Bold-webfont.woff rename to gamecard/static/fonts/vera/VeraMono-Bold-webfont.woff diff --git a/benchcoach/static/fonts/vera/VeraMono-Italic-webfont.woff b/gamecard/static/fonts/vera/VeraMono-Italic-webfont.woff similarity index 100% rename from benchcoach/static/fonts/vera/VeraMono-Italic-webfont.woff rename to gamecard/static/fonts/vera/VeraMono-Italic-webfont.woff diff --git a/benchcoach/static/fonts/vera/VeraMono-webfont.woff b/gamecard/static/fonts/vera/VeraMono-webfont.woff similarity index 100% rename from benchcoach/static/fonts/vera/VeraMono-webfont.woff rename to gamecard/static/fonts/vera/VeraMono-webfont.woff diff --git a/benchcoach/static/fonts/vera/bitstreamvera.css b/gamecard/static/fonts/vera/bitstreamvera.css similarity index 100% rename from benchcoach/static/fonts/vera/bitstreamvera.css rename to gamecard/static/fonts/vera/bitstreamvera.css diff --git a/benchcoach/static/fonts/verdana/VerdanaPro-Black.ttf b/gamecard/static/fonts/verdana/VerdanaPro-Black.ttf similarity index 100% rename from benchcoach/static/fonts/verdana/VerdanaPro-Black.ttf rename to gamecard/static/fonts/verdana/VerdanaPro-Black.ttf diff --git a/benchcoach/static/fonts/verdana/VerdanaPro-BlackItalic.ttf b/gamecard/static/fonts/verdana/VerdanaPro-BlackItalic.ttf similarity index 100% rename from benchcoach/static/fonts/verdana/VerdanaPro-BlackItalic.ttf rename to gamecard/static/fonts/verdana/VerdanaPro-BlackItalic.ttf diff --git a/benchcoach/static/fonts/verdana/VerdanaPro-Bold.ttf b/gamecard/static/fonts/verdana/VerdanaPro-Bold.ttf similarity index 100% rename from benchcoach/static/fonts/verdana/VerdanaPro-Bold.ttf rename to gamecard/static/fonts/verdana/VerdanaPro-Bold.ttf diff --git a/benchcoach/static/fonts/verdana/VerdanaPro-BoldItalic.ttf b/gamecard/static/fonts/verdana/VerdanaPro-BoldItalic.ttf similarity index 100% rename from benchcoach/static/fonts/verdana/VerdanaPro-BoldItalic.ttf rename to gamecard/static/fonts/verdana/VerdanaPro-BoldItalic.ttf diff --git a/benchcoach/static/fonts/verdana/VerdanaPro-CondBlack.ttf b/gamecard/static/fonts/verdana/VerdanaPro-CondBlack.ttf similarity index 100% rename from benchcoach/static/fonts/verdana/VerdanaPro-CondBlack.ttf rename to gamecard/static/fonts/verdana/VerdanaPro-CondBlack.ttf diff --git a/benchcoach/static/fonts/verdana/VerdanaPro-CondBlackItalic.ttf b/gamecard/static/fonts/verdana/VerdanaPro-CondBlackItalic.ttf similarity index 100% rename from benchcoach/static/fonts/verdana/VerdanaPro-CondBlackItalic.ttf rename to gamecard/static/fonts/verdana/VerdanaPro-CondBlackItalic.ttf diff --git a/benchcoach/static/fonts/verdana/VerdanaPro-CondBold.ttf b/gamecard/static/fonts/verdana/VerdanaPro-CondBold.ttf similarity index 100% rename from benchcoach/static/fonts/verdana/VerdanaPro-CondBold.ttf rename to gamecard/static/fonts/verdana/VerdanaPro-CondBold.ttf diff --git a/benchcoach/static/fonts/verdana/VerdanaPro-CondBoldItalic.ttf b/gamecard/static/fonts/verdana/VerdanaPro-CondBoldItalic.ttf similarity index 100% rename from benchcoach/static/fonts/verdana/VerdanaPro-CondBoldItalic.ttf rename to gamecard/static/fonts/verdana/VerdanaPro-CondBoldItalic.ttf diff --git a/benchcoach/static/fonts/verdana/VerdanaPro-CondItalic.ttf b/gamecard/static/fonts/verdana/VerdanaPro-CondItalic.ttf similarity index 100% rename from benchcoach/static/fonts/verdana/VerdanaPro-CondItalic.ttf rename to gamecard/static/fonts/verdana/VerdanaPro-CondItalic.ttf diff --git a/benchcoach/static/fonts/verdana/VerdanaPro-CondLight.ttf b/gamecard/static/fonts/verdana/VerdanaPro-CondLight.ttf similarity index 100% rename from benchcoach/static/fonts/verdana/VerdanaPro-CondLight.ttf rename to gamecard/static/fonts/verdana/VerdanaPro-CondLight.ttf diff --git a/benchcoach/static/fonts/verdana/VerdanaPro-CondLightItalic.ttf b/gamecard/static/fonts/verdana/VerdanaPro-CondLightItalic.ttf similarity index 100% rename from benchcoach/static/fonts/verdana/VerdanaPro-CondLightItalic.ttf rename to gamecard/static/fonts/verdana/VerdanaPro-CondLightItalic.ttf diff --git a/benchcoach/static/fonts/verdana/VerdanaPro-CondRegular.ttf b/gamecard/static/fonts/verdana/VerdanaPro-CondRegular.ttf similarity index 100% rename from benchcoach/static/fonts/verdana/VerdanaPro-CondRegular.ttf rename to gamecard/static/fonts/verdana/VerdanaPro-CondRegular.ttf diff --git a/benchcoach/static/fonts/verdana/VerdanaPro-CondSemiBold.ttf b/gamecard/static/fonts/verdana/VerdanaPro-CondSemiBold.ttf similarity index 100% rename from benchcoach/static/fonts/verdana/VerdanaPro-CondSemiBold.ttf rename to gamecard/static/fonts/verdana/VerdanaPro-CondSemiBold.ttf diff --git a/benchcoach/static/fonts/verdana/VerdanaPro-CondSemiBoldItalic.ttf b/gamecard/static/fonts/verdana/VerdanaPro-CondSemiBoldItalic.ttf similarity index 100% rename from benchcoach/static/fonts/verdana/VerdanaPro-CondSemiBoldItalic.ttf rename to gamecard/static/fonts/verdana/VerdanaPro-CondSemiBoldItalic.ttf diff --git a/benchcoach/static/fonts/verdana/VerdanaPro-Italic.ttf b/gamecard/static/fonts/verdana/VerdanaPro-Italic.ttf similarity index 100% rename from benchcoach/static/fonts/verdana/VerdanaPro-Italic.ttf rename to gamecard/static/fonts/verdana/VerdanaPro-Italic.ttf diff --git a/benchcoach/static/fonts/verdana/VerdanaPro-Light.ttf b/gamecard/static/fonts/verdana/VerdanaPro-Light.ttf similarity index 100% rename from benchcoach/static/fonts/verdana/VerdanaPro-Light.ttf rename to gamecard/static/fonts/verdana/VerdanaPro-Light.ttf diff --git a/benchcoach/static/fonts/verdana/VerdanaPro-LightItalic.ttf b/gamecard/static/fonts/verdana/VerdanaPro-LightItalic.ttf similarity index 100% rename from benchcoach/static/fonts/verdana/VerdanaPro-LightItalic.ttf rename to gamecard/static/fonts/verdana/VerdanaPro-LightItalic.ttf diff --git a/benchcoach/static/fonts/verdana/VerdanaPro-Regular.ttf b/gamecard/static/fonts/verdana/VerdanaPro-Regular.ttf similarity index 100% rename from benchcoach/static/fonts/verdana/VerdanaPro-Regular.ttf rename to gamecard/static/fonts/verdana/VerdanaPro-Regular.ttf diff --git a/benchcoach/static/fonts/verdana/VerdanaPro-SemiBold.ttf b/gamecard/static/fonts/verdana/VerdanaPro-SemiBold.ttf similarity index 100% rename from benchcoach/static/fonts/verdana/VerdanaPro-SemiBold.ttf rename to gamecard/static/fonts/verdana/VerdanaPro-SemiBold.ttf diff --git a/benchcoach/static/fonts/verdana/VerdanaPro-SemiBoldItalic.ttf b/gamecard/static/fonts/verdana/VerdanaPro-SemiBoldItalic.ttf similarity index 100% rename from benchcoach/static/fonts/verdana/VerdanaPro-SemiBoldItalic.ttf rename to gamecard/static/fonts/verdana/VerdanaPro-SemiBoldItalic.ttf diff --git a/benchcoach/static/fonts/verdana/verdanapro.css b/gamecard/static/fonts/verdana/verdanapro.css similarity index 100% rename from benchcoach/static/fonts/verdana/verdanapro.css rename to gamecard/static/fonts/verdana/verdanapro.css diff --git a/teamsnap/templates/lineup/gamecard.html b/gamecard/templates/gamecard/gamecard.html similarity index 97% rename from teamsnap/templates/lineup/gamecard.html rename to gamecard/templates/gamecard/gamecard.html index 9f3b97a..65bd032 100644 --- a/teamsnap/templates/lineup/gamecard.html +++ b/gamecard/templates/gamecard/gamecard.html @@ -169,7 +169,7 @@
-
@@ -177,7 +177,7 @@ VS.
-
diff --git a/gamecard/tests.py b/gamecard/tests.py new file mode 100644 index 0000000..a79ca8b --- /dev/null +++ b/gamecard/tests.py @@ -0,0 +1,3 @@ +# from django.test import TestCase + +# Create your tests here. diff --git a/gamecard/urls.py b/gamecard/urls.py new file mode 100644 index 0000000..ae4004c --- /dev/null +++ b/gamecard/urls.py @@ -0,0 +1,7 @@ +from django.urls import path + +from .views import gamecard + +urlpatterns = [ + path("/event//gamecard/", gamecard, name="gamecard") +] diff --git a/gamecard/utils/__init__.py b/gamecard/utils/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/gamecard/views.py b/gamecard/views.py new file mode 100644 index 0000000..d5cc273 --- /dev/null +++ b/gamecard/views.py @@ -0,0 +1,109 @@ +from django.shortcuts import render + +from teamsnap.models import Opponent, Team +from teamsnap.utils import get_teamsnap_client + + +def gamecard(request, team_id, event_id): + import re + + from pyteamsnap.api import ( + Availability, + AvailabilitySummary, + Event, + EventLineup, + EventLineupEntry, + Member, + ) + + client = get_teamsnap_client(request) + ts_bulkload = client.bulk_load( + team_id=team_id, + types=[Event, EventLineup, EventLineupEntry, AvailabilitySummary, Member], + event__id=event_id, + ) + + ts_event = [ + 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) + + if ts_lineup_entries: + # ts_lineup = EventLineup.get( + # client, id=ts_lineup_entries[0].data["event_lineup_id"] + # ) + pass + else: + # ts_lineup = EventLineup.search(client, event_id=event_id) + pass + + ts_members = [i for i in ts_bulkload if isinstance(i, Member)] + # ts_member_lookup = {m.data["id"]: m for m in ts_members} + ts_availability_lookup = {m.data["member_id"]: m for m in ts_availabilities} + ts_lineup_entries_lookup = {m.data["member_id"]: m for m in ts_lineup_entries} + + members = [] + + for member in ts_members: + if not member.data["is_non_player"]: + members.append( + { + "member": getattr(member, "data"), + "availability": getattr( + ts_availability_lookup.get(member.data["id"], {}), "data", {} + ), + "lineup_entry": getattr( + ts_lineup_entries_lookup.get(member.data["id"], {}), "data", {} + ), + } + ) + + members = sorted( + members, + key=lambda d: ( + {None: 3, 0: 2, 2: 1, 1: 0}.get( # No Response # No # Maybe # Yes + d["availability"].get("status_code") + ), + d["member"].get("last_name"), + ), + ) + + members_startinglineup = [] + members_startingpositiononly = [] + + for member in members: + if re.search( + r"([A-Z0-9]+)(?:\s+\[(.*)\])?", member["lineup_entry"].get("label", "") + ): + position, position_note = re.search( + r"([A-Z0-9]+)(?:\s+\[(.*)\])?", member["lineup_entry"].get("label", "") + ).groups() + else: + position, position_note = ("", "") + + position_only = position_note == "PO" + + if position_only: + member["lineup_entry"]["label"] = position + + if member["lineup_entry"].get("id") and not position_only: + members_startinglineup.append(member) + elif member["lineup_entry"].get("id") and position_only: + members_startingpositiononly.append(member) + + members_startinglineup = sorted( + members_startinglineup, + key=lambda d: d.get("lineup_entry", {}).get("sequence", 100), + ) + + context = { + "event": ts_event, + "members": members, + "members_startinglineup": members_startinglineup, + "members_startingpositiononly": members_startingpositiononly, + "ts_team": Team.objects.get(id=team_id), + "ts_opponent": Opponent.objects.get(id=ts_event.data["opponent_id"]), + } + return render(request, "gamecard/gamecard.html", context=context) diff --git a/teamsnap/admin.py b/teamsnap/admin.py index cdfa15c..921ac45 100644 --- a/teamsnap/admin.py +++ b/teamsnap/admin.py @@ -1,6 +1,8 @@ from django.contrib import admin -from .models import Preferences +from .models import Opponent, Preferences, Team # Register your models here. admin.site.register(Preferences) +admin.site.register(Team) +admin.site.register(Opponent) diff --git a/teamsnap/migrations/0001_initial.py b/teamsnap/migrations/0001_initial.py index 6a5fc68..9a9aaea 100644 --- a/teamsnap/migrations/0001_initial.py +++ b/teamsnap/migrations/0001_initial.py @@ -1,4 +1,4 @@ -# Generated by Django 3.2.13 on 2022-06-02 13:20 +# Generated by Django 3.2.13 on 2022-06-09 12:09 from django.conf import settings from django.db import migrations, models @@ -14,6 +14,14 @@ class Migration(migrations.Migration): ] operations = [ + migrations.CreateModel( + name='Team', + fields=[ + ('id', models.IntegerField(primary_key=True, serialize=False)), + ('logo', models.ImageField(upload_to='logos')), + ('logo_mono', models.ImageField(upload_to='logos_mono')), + ], + ), migrations.CreateModel( name="Preferences", fields=[ diff --git a/teamsnap/migrations/0004_auto_20220609_0722.py b/teamsnap/migrations/0004_auto_20220609_0722.py new file mode 100644 index 0000000..c74d7fa --- /dev/null +++ b/teamsnap/migrations/0004_auto_20220609_0722.py @@ -0,0 +1,33 @@ +# Generated by Django 3.2.13 on 2022-06-09 12:22 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('teamsnap', '0003_auto_20220609_0721'), + ] + + operations = [ + migrations.AlterField( + model_name='opponent', + name='logo', + field=models.ImageField(blank=True, null=True, upload_to='logos'), + ), + migrations.AlterField( + model_name='opponent', + name='logo_mono', + field=models.ImageField(blank=True, null=True, upload_to='logos_mono'), + ), + migrations.AlterField( + model_name='team', + name='logo', + field=models.ImageField(blank=True, null=True, upload_to='logos'), + ), + migrations.AlterField( + model_name='team', + name='logo_mono', + field=models.ImageField(blank=True, null=True, upload_to='logos_mono'), + ), + ] diff --git a/teamsnap/migrations/__init__.py b/teamsnap/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/teamsnap/models.py b/teamsnap/models.py index 7a48f0a..5452b3c 100644 --- a/teamsnap/models.py +++ b/teamsnap/models.py @@ -7,3 +7,43 @@ from benchcoach.users.models import User class Preferences(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) managed_team_id = models.IntegerField() + + +class Team(models.Model): + id = models.IntegerField(primary_key=True) + logo = models.ImageField( + upload_to="logos", + height_field=None, + width_field=None, + max_length=100, + null=True, + blank=True, + ) + logo_mono = models.ImageField( + upload_to="logos_mono", + height_field=None, + width_field=None, + max_length=100, + null=True, + blank=True, + ) + + +class Opponent(models.Model): + id = models.IntegerField(primary_key=True) + logo = models.ImageField( + upload_to="logos", + height_field=None, + width_field=None, + max_length=100, + null=True, + blank=True, + ) + logo_mono = models.ImageField( + upload_to="logos_mono", + height_field=None, + width_field=None, + max_length=100, + null=True, + blank=True, + ) diff --git a/teamsnap/templates/dashboard.html b/teamsnap/templates/dashboard.html index 3ecd6af..8e0c88f 100644 --- a/teamsnap/templates/dashboard.html +++ b/teamsnap/templates/dashboard.html @@ -34,7 +34,12 @@
{{ event.data.location_name }}
- Go to Lineup + + Go to Lineup + + + +