diff --git a/benchcoach/static/fonts/dinpro/DINPro-Black.otf b/benchcoach/static/fonts/dinpro/DINPro-Black.otf new file mode 100644 index 0000000..578641d Binary files /dev/null and b/benchcoach/static/fonts/dinpro/DINPro-Black.otf differ diff --git a/benchcoach/static/fonts/dinpro/DINPro-BlackItalic.otf b/benchcoach/static/fonts/dinpro/DINPro-BlackItalic.otf new file mode 100644 index 0000000..82b5f18 Binary files /dev/null and b/benchcoach/static/fonts/dinpro/DINPro-BlackItalic.otf differ diff --git a/benchcoach/static/fonts/dinpro/DINPro-Bold.otf b/benchcoach/static/fonts/dinpro/DINPro-Bold.otf new file mode 100644 index 0000000..b170223 Binary files /dev/null and b/benchcoach/static/fonts/dinpro/DINPro-Bold.otf differ diff --git a/benchcoach/static/fonts/dinpro/DINPro-BoldItalic.otf b/benchcoach/static/fonts/dinpro/DINPro-BoldItalic.otf new file mode 100644 index 0000000..76c99de Binary files /dev/null and b/benchcoach/static/fonts/dinpro/DINPro-BoldItalic.otf differ diff --git a/benchcoach/static/fonts/dinpro/DINPro-Cond.otf b/benchcoach/static/fonts/dinpro/DINPro-Cond.otf new file mode 100644 index 0000000..cb581b3 Binary files /dev/null and b/benchcoach/static/fonts/dinpro/DINPro-Cond.otf differ diff --git a/benchcoach/static/fonts/dinpro/DINPro-CondBlack.otf b/benchcoach/static/fonts/dinpro/DINPro-CondBlack.otf new file mode 100644 index 0000000..cbcc768 Binary files /dev/null and b/benchcoach/static/fonts/dinpro/DINPro-CondBlack.otf differ diff --git a/benchcoach/static/fonts/dinpro/DINPro-CondBlackIta.otf b/benchcoach/static/fonts/dinpro/DINPro-CondBlackIta.otf new file mode 100644 index 0000000..9da8b6b Binary files /dev/null and b/benchcoach/static/fonts/dinpro/DINPro-CondBlackIta.otf differ diff --git a/benchcoach/static/fonts/dinpro/DINPro-CondBold.otf b/benchcoach/static/fonts/dinpro/DINPro-CondBold.otf new file mode 100644 index 0000000..81501d5 Binary files /dev/null and b/benchcoach/static/fonts/dinpro/DINPro-CondBold.otf differ diff --git a/benchcoach/static/fonts/dinpro/DINPro-CondBoldIta.otf b/benchcoach/static/fonts/dinpro/DINPro-CondBoldIta.otf new file mode 100644 index 0000000..38d7bad Binary files /dev/null and b/benchcoach/static/fonts/dinpro/DINPro-CondBoldIta.otf differ diff --git a/benchcoach/static/fonts/dinpro/DINPro-CondIta.otf b/benchcoach/static/fonts/dinpro/DINPro-CondIta.otf new file mode 100644 index 0000000..1e39666 Binary files /dev/null and b/benchcoach/static/fonts/dinpro/DINPro-CondIta.otf differ diff --git a/benchcoach/static/fonts/dinpro/DINPro-CondLight.otf b/benchcoach/static/fonts/dinpro/DINPro-CondLight.otf new file mode 100644 index 0000000..7666695 Binary files /dev/null and b/benchcoach/static/fonts/dinpro/DINPro-CondLight.otf differ diff --git a/benchcoach/static/fonts/dinpro/DINPro-CondLightIta.otf b/benchcoach/static/fonts/dinpro/DINPro-CondLightIta.otf new file mode 100644 index 0000000..be30b9b Binary files /dev/null and b/benchcoach/static/fonts/dinpro/DINPro-CondLightIta.otf differ diff --git a/benchcoach/static/fonts/dinpro/DINPro-CondMediIta.otf b/benchcoach/static/fonts/dinpro/DINPro-CondMediIta.otf new file mode 100644 index 0000000..3596e2c Binary files /dev/null and b/benchcoach/static/fonts/dinpro/DINPro-CondMediIta.otf differ diff --git a/benchcoach/static/fonts/dinpro/DINPro-CondMedium.otf b/benchcoach/static/fonts/dinpro/DINPro-CondMedium.otf new file mode 100644 index 0000000..00b38f6 Binary files /dev/null and b/benchcoach/static/fonts/dinpro/DINPro-CondMedium.otf differ diff --git a/benchcoach/static/fonts/dinpro/DINPro-Italic.otf b/benchcoach/static/fonts/dinpro/DINPro-Italic.otf new file mode 100644 index 0000000..fa12564 Binary files /dev/null and b/benchcoach/static/fonts/dinpro/DINPro-Italic.otf differ diff --git a/benchcoach/static/fonts/dinpro/DINPro-Light.otf b/benchcoach/static/fonts/dinpro/DINPro-Light.otf new file mode 100644 index 0000000..1b8cfbd Binary files /dev/null and b/benchcoach/static/fonts/dinpro/DINPro-Light.otf differ diff --git a/benchcoach/static/fonts/dinpro/DINPro-LightItalic.otf b/benchcoach/static/fonts/dinpro/DINPro-LightItalic.otf new file mode 100644 index 0000000..baeefa4 Binary files /dev/null and b/benchcoach/static/fonts/dinpro/DINPro-LightItalic.otf differ diff --git a/benchcoach/static/fonts/dinpro/DINPro-Medium.otf b/benchcoach/static/fonts/dinpro/DINPro-Medium.otf new file mode 100644 index 0000000..6f771ab Binary files /dev/null and b/benchcoach/static/fonts/dinpro/DINPro-Medium.otf differ diff --git a/benchcoach/static/fonts/dinpro/DINPro-MediumItalic.otf b/benchcoach/static/fonts/dinpro/DINPro-MediumItalic.otf new file mode 100644 index 0000000..151db45 Binary files /dev/null and b/benchcoach/static/fonts/dinpro/DINPro-MediumItalic.otf differ diff --git a/benchcoach/static/fonts/dinpro/DINPro.otf b/benchcoach/static/fonts/dinpro/DINPro.otf new file mode 100644 index 0000000..e6e44b1 Binary files /dev/null and b/benchcoach/static/fonts/dinpro/DINPro.otf differ diff --git a/benchcoach/static/fonts/dinpro/dinpro.css b/benchcoach/static/fonts/dinpro/dinpro.css new file mode 100644 index 0000000..849372c --- /dev/null +++ b/benchcoach/static/fonts/dinpro/dinpro.css @@ -0,0 +1,123 @@ +@font-face { + font-family: "DINPro"; + font-weight: 800; + src: url("DINPro-Black.otf") format("opentype"); +} +@font-face { + font-family: "DINPro"; + font-weight: 800; + font-style: italic; + src: url("DINPro-BlackItalic.otf") format("opentype"); +} +@font-face { + font-family: "DINPro"; + font-weight: bold; + src: url("DINPro-Bold.otf") format("opentype"); +} +@font-face { + font-family: "DINPro"; + font-weight: bold; + font-style: italic; + src: url("DINPro-BoldItalic.otf") format("opentype"); +} +@font-face { + font-family: "DINPro"; + font-stretch: condensed; + src: url("DINPro-Cond.otf") format("opentype"); +} +@font-face { + font-family: "DINPro"; + font-stretch: condensed; + font-weight: 800; + src: url("DINPro-CondBlack.otf") format("opentype"); +} +@font-face { + font-family: "DINPro"; + font-stretch: condensed; + font-weight: 800; + font-style: italic; + src: url("DINPro-CondBlackIta.otf") format("opentype"); +} +@font-face { + font-family: "DINPro"; + font-stretch: condensed; + font-weight: bold; + src: url("DINPro-CondBold.otf") format("opentype"); +} +@font-face { + font-family: "DINPro"; + font-stretch: condensed; + font-weight: bold; + font-style: italic; + src: url("DINPro-CondBoldIta.otf") format("opentype"); +} +@font-face { + font-family: "DINPro"; + font-stretch: condensed; + font-style: italic; + src: url("DINPro-CondIta.otf") format("opentype"); +} +@font-face { + font-family: "DINPro"; + font-stretch: condensed; + font-weight: 300; + src: url("DINPro-CondLight.otf") format("opentype"); +} +@font-face { + font-family: "DINPro"; + font-stretch: condensed; + font-weight: 300; + font-style: italic; + src: url("DINPro-CondLightIta.otf") format("opentype"); +} +@font-face { + font-family: "DINPro"; + font-stretch: condensed; + font-: Medi; + font-style: italic; + src: url("DINPro-CondMediIta.otf") format("opentype"); +} +@font-face { + font-family: "DINPro"; + font-stretch: condensed; + font-: Medium; + src: url("DINPro-CondMedium.otf") format("opentype"); +} +@font-face { + font-family: "DINPro"; + font-style: italic; + src: url("DINPro-Italic.otf") format("opentype"); +} +@font-face { + font-family: "DINPro"; + font-weight: 300; + src: url("DINPro-Light.otf") format("opentype"); +} +@font-face { + font-family: "DINPro"; + font-weight: 300; + font-style: italic; + + src: url("DINPro-LightItalic.otf") format("opentype"); +} +@font-face { + font-family: "DINPro"; + font-: Medium; + + + src: url("DINPro-Medium.otf") format("opentype"); +} +@font-face { + font-family: "DINPro"; + font-: Medium; + font-style: italic; + + src: url("DINPro-MediumItalic.otf") format("opentype"); +} +@font-face { + font-family: "DINPro"; + font-style: normal; + font-weight: normal; + + src: url("DINPro.otf") format("opentype"); +} diff --git a/benchcoach/static/fonts/epilogue/Epilogue-Black.ttf b/benchcoach/static/fonts/epilogue/Epilogue-Black.ttf new file mode 100644 index 0000000..3d4ad46 Binary files /dev/null and b/benchcoach/static/fonts/epilogue/Epilogue-Black.ttf differ diff --git a/benchcoach/static/fonts/epilogue/Epilogue-BlackItalic.ttf b/benchcoach/static/fonts/epilogue/Epilogue-BlackItalic.ttf new file mode 100644 index 0000000..427ee62 Binary files /dev/null and b/benchcoach/static/fonts/epilogue/Epilogue-BlackItalic.ttf differ diff --git a/benchcoach/static/fonts/epilogue/Epilogue-Bold.ttf b/benchcoach/static/fonts/epilogue/Epilogue-Bold.ttf new file mode 100644 index 0000000..cdd74d6 Binary files /dev/null and b/benchcoach/static/fonts/epilogue/Epilogue-Bold.ttf differ diff --git a/benchcoach/static/fonts/epilogue/Epilogue-BoldItalic.ttf b/benchcoach/static/fonts/epilogue/Epilogue-BoldItalic.ttf new file mode 100644 index 0000000..6def85f Binary files /dev/null and b/benchcoach/static/fonts/epilogue/Epilogue-BoldItalic.ttf differ diff --git a/benchcoach/static/fonts/epilogue/Epilogue-ExtraBold.ttf b/benchcoach/static/fonts/epilogue/Epilogue-ExtraBold.ttf new file mode 100644 index 0000000..f0ac762 Binary files /dev/null and b/benchcoach/static/fonts/epilogue/Epilogue-ExtraBold.ttf differ diff --git a/benchcoach/static/fonts/epilogue/Epilogue-ExtraBoldItalic.ttf b/benchcoach/static/fonts/epilogue/Epilogue-ExtraBoldItalic.ttf new file mode 100644 index 0000000..3b5d878 Binary files /dev/null and b/benchcoach/static/fonts/epilogue/Epilogue-ExtraBoldItalic.ttf differ diff --git a/benchcoach/static/fonts/epilogue/Epilogue-ExtraLight.ttf b/benchcoach/static/fonts/epilogue/Epilogue-ExtraLight.ttf new file mode 100644 index 0000000..7038cb7 Binary files /dev/null and b/benchcoach/static/fonts/epilogue/Epilogue-ExtraLight.ttf differ diff --git a/benchcoach/static/fonts/epilogue/Epilogue-ExtraLightItalic.ttf b/benchcoach/static/fonts/epilogue/Epilogue-ExtraLightItalic.ttf new file mode 100644 index 0000000..1fc2b0a Binary files /dev/null and b/benchcoach/static/fonts/epilogue/Epilogue-ExtraLightItalic.ttf differ diff --git a/benchcoach/static/fonts/epilogue/Epilogue-Italic.ttf b/benchcoach/static/fonts/epilogue/Epilogue-Italic.ttf new file mode 100644 index 0000000..781c033 Binary files /dev/null and b/benchcoach/static/fonts/epilogue/Epilogue-Italic.ttf differ diff --git a/benchcoach/static/fonts/epilogue/Epilogue-Light.ttf b/benchcoach/static/fonts/epilogue/Epilogue-Light.ttf new file mode 100644 index 0000000..f4e963a Binary files /dev/null and b/benchcoach/static/fonts/epilogue/Epilogue-Light.ttf differ diff --git a/benchcoach/static/fonts/epilogue/Epilogue-LightItalic.ttf b/benchcoach/static/fonts/epilogue/Epilogue-LightItalic.ttf new file mode 100644 index 0000000..1a9f181 Binary files /dev/null and b/benchcoach/static/fonts/epilogue/Epilogue-LightItalic.ttf differ diff --git a/benchcoach/static/fonts/epilogue/Epilogue-Medium.ttf b/benchcoach/static/fonts/epilogue/Epilogue-Medium.ttf new file mode 100644 index 0000000..86adf15 Binary files /dev/null and b/benchcoach/static/fonts/epilogue/Epilogue-Medium.ttf differ diff --git a/benchcoach/static/fonts/epilogue/Epilogue-MediumItalic.ttf b/benchcoach/static/fonts/epilogue/Epilogue-MediumItalic.ttf new file mode 100644 index 0000000..78ba8a1 Binary files /dev/null and b/benchcoach/static/fonts/epilogue/Epilogue-MediumItalic.ttf differ diff --git a/benchcoach/static/fonts/epilogue/Epilogue-Regular.ttf b/benchcoach/static/fonts/epilogue/Epilogue-Regular.ttf new file mode 100644 index 0000000..262d4c8 Binary files /dev/null and b/benchcoach/static/fonts/epilogue/Epilogue-Regular.ttf differ diff --git a/benchcoach/static/fonts/epilogue/Epilogue-SemiBold.ttf b/benchcoach/static/fonts/epilogue/Epilogue-SemiBold.ttf new file mode 100644 index 0000000..41de5e7 Binary files /dev/null and b/benchcoach/static/fonts/epilogue/Epilogue-SemiBold.ttf differ diff --git a/benchcoach/static/fonts/epilogue/Epilogue-SemiBoldItalic.ttf b/benchcoach/static/fonts/epilogue/Epilogue-SemiBoldItalic.ttf new file mode 100644 index 0000000..a49cf13 Binary files /dev/null and b/benchcoach/static/fonts/epilogue/Epilogue-SemiBoldItalic.ttf differ diff --git a/benchcoach/static/fonts/epilogue/Epilogue-Thin.ttf b/benchcoach/static/fonts/epilogue/Epilogue-Thin.ttf new file mode 100644 index 0000000..1ada722 Binary files /dev/null and b/benchcoach/static/fonts/epilogue/Epilogue-Thin.ttf differ diff --git a/benchcoach/static/fonts/epilogue/Epilogue-ThinItalic.ttf b/benchcoach/static/fonts/epilogue/Epilogue-ThinItalic.ttf new file mode 100644 index 0000000..8fe60e5 Binary files /dev/null and b/benchcoach/static/fonts/epilogue/Epilogue-ThinItalic.ttf differ diff --git a/benchcoach/static/fonts/refrigerator/refigerator.css b/benchcoach/static/fonts/refrigerator/refigerator.css new file mode 100644 index 0000000..673671a --- /dev/null +++ b/benchcoach/static/fonts/refrigerator/refigerator.css @@ -0,0 +1,26 @@ +@font-face { + font-family: "refigerator"; + font-weight: bold; + src: url("refrigerator-deluxe-bold.otf") format("opentype"); +} +@font-face { + font-family: "refigerator"; + font-weight: extrabold; + src: url("refrigerator-deluxe-extrabold.otf") format("opentype"); +} +@font-face { + font-family: "refigerator"; + font-weight: heavy; + src: url("refrigerator-deluxe-heavy.otf") format("opentype"); +} +@font-face { + font-family: "refigerator"; + font-weight: light; + src: url("refrigerator-deluxe-light.otf") format("opentype"); +} +@font-face { + font-family: "refigerator"; + font-weight: normal; + font-style: normal; + src: url("refrigerator-deluxe.otf") format("opentype"); +} diff --git a/benchcoach/static/fonts/refrigerator/refrigerator-deluxe-bold.otf b/benchcoach/static/fonts/refrigerator/refrigerator-deluxe-bold.otf new file mode 100644 index 0000000..6a9132a Binary files /dev/null and b/benchcoach/static/fonts/refrigerator/refrigerator-deluxe-bold.otf differ diff --git a/benchcoach/static/fonts/refrigerator/refrigerator-deluxe-extrabold.otf b/benchcoach/static/fonts/refrigerator/refrigerator-deluxe-extrabold.otf new file mode 100644 index 0000000..ab65e2d Binary files /dev/null and b/benchcoach/static/fonts/refrigerator/refrigerator-deluxe-extrabold.otf differ diff --git a/benchcoach/static/fonts/refrigerator/refrigerator-deluxe-heavy.otf b/benchcoach/static/fonts/refrigerator/refrigerator-deluxe-heavy.otf new file mode 100644 index 0000000..8d2864f Binary files /dev/null and b/benchcoach/static/fonts/refrigerator/refrigerator-deluxe-heavy.otf differ diff --git a/benchcoach/static/fonts/refrigerator/refrigerator-deluxe-light.otf b/benchcoach/static/fonts/refrigerator/refrigerator-deluxe-light.otf new file mode 100644 index 0000000..7c31975 Binary files /dev/null and b/benchcoach/static/fonts/refrigerator/refrigerator-deluxe-light.otf differ diff --git a/benchcoach/static/fonts/refrigerator/refrigerator-deluxe.otf b/benchcoach/static/fonts/refrigerator/refrigerator-deluxe.otf new file mode 100644 index 0000000..1988e34 Binary files /dev/null and b/benchcoach/static/fonts/refrigerator/refrigerator-deluxe.otf differ 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/gamecard/static/css/gamecard.css b/gamecard/static/css/gamecard.css new file mode 100644 index 0000000..107338b --- /dev/null +++ b/gamecard/static/css/gamecard.css @@ -0,0 +1,152 @@ +@import url("../../css/paper.css"); +@import url('https://fonts.googleapis.com/css2?family=Roboto&display=swap'); +@import url('../fonts/vera/bitstreamvera.css'); +@import url('../fonts/verdana/verdanapro.css'); +@import url('../fonts/m+1m/m+1m.css'); +@import url('../fonts/dinpro/dinpro.css'); +@import url('../fonts/refrigerator/refigerator.css'); +@import url('https://fonts.googleapis.com/css2?family=Pacifico&display=swap'); + +@page { size: B5; } + +* { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +body { + font-family: "VerdanaPro"; + /*font-family: -apple-system;*/ + /*font-weight: bold;*/ + font-size: 10px; +} +.whole-card { + margin:0; + padding:0; + height: 12.5cm; + width: 17.5cm; + outline: solid black; + margin: auto; + display: flex; +} + +.half-card { + margin:0; + padding: .1in; + height: 100%; + width: 50%; +} + +card-left { + float: left; +} +card-right { + float: right; +} + +.content { + height: 100%; + width: 100%; + /* padding: .1in; */ + outline: solid grey; +} + +table { + border-collapse: collapse; + empty-cells: show; + font-size:11px; + table-layout: fixed; + white-space: nowrap; + text-overflow: ellipsis; + overflow-x: hidden; + width: 100%; +} + +th, tr, td { + /* box-sizing: content-box; */ + border: 0.5px solid black; + height: 17px; + text-overflow: ellipsis; + overflow-x: hidden; +} + +.gametitle { + font-weight: normal; + text-transform: uppercase; + font-stretch: condensed; +} + +.homeaway { + text-transform: uppercase; + font-stretch: normal; + font-weight: bolder; +} + +.numbercell { + font-family: "m+1m"; + text-align: center; + font-stretch: condensed; + font-size: 10px; +} + +.statscell { + font-family: "m+1m"; + text-align: center; + font-stretch: extra-condensed; + font-size: 9px; + width: 60px; +} + +tr:nth-child(even) {background-color: #f2f2f2;} + +th{ + background: black; + color: white; + border: none; +} + +.customcol{ + width: 120px; + text-transform: uppercase; +} + +.condensedNameCell{ + width: 70px; + text-transform: uppercase; + font-stretch: condensed; +} + +.square { + height: 14px; + width: 14px; +} + +.available-status-code-1{ + background-color: #B7E1CD; +} + +.available-status-code-0{ + background-color: #F4C7C3; +} + +.available-status-code-2{ + background-color: #ACC9FE; +} + +.starting{ + font-weight: bold; +} +.grid-container { + display: flex; + grid-template-columns: auto auto auto; + /*background-color: #2196F3;*/ + /*padding: 10px;*/ +} + +.grid-item { + /*background-color: rgba(255, 255, 255, 0.8);*/ + /*border: 1px solid rgba(0, 0, 0, 0.8);*/ + /*padding: 20px;*/ + font-size: 30px; + text-align: center; +} diff --git a/benchcoach/static/css/paper.css b/gamecard/static/css/paper.css similarity index 77% rename from benchcoach/static/css/paper.css rename to gamecard/static/css/paper.css index ede1dab..5b84e46 100644 --- a/benchcoach/static/css/paper.css +++ b/gamecard/static/css/paper.css @@ -15,6 +15,8 @@ body.A4 .sheet { width: 210mm; height: 296mm } body.A4.landscape .sheet { width: 297mm; height: 209mm } body.A5 .sheet { width: 148mm; height: 209mm } body.A5.landscape .sheet { width: 210mm; height: 147mm } +body.b5 .sheet { width: 176mm; height: 250mm } +body.b5.landscape .sheet { width: 250mm; height: 176mm } body.letter .sheet { width: 216mm; height: 279mm } body.letter.landscape .sheet { width: 280mm; height: 215mm } body.legal .sheet { width: 216mm; height: 356mm } @@ -26,12 +28,24 @@ body.legal.landscape .sheet { width: 357mm; height: 215mm } .sheet.padding-20mm { padding: 20mm } .sheet.padding-25mm { padding: 25mm } +/** For screen preview **/ +@media screen { + body { background: #e0e0e0 } + .sheet { + background: white; + box-shadow: 0 .5mm 2mm rgba(0,0,0,.3); + margin: 5mm auto; + } +} + /** Fix for Chrome issue #273306 **/ @media print { body.A3.landscape { width: 420mm } body.A3, body.A4.landscape { width: 297mm } body.A4, body.A5.landscape { width: 210mm } body.A5 { width: 148mm } + body.b5 { width: 190mm } + body.b5.landscape { width: 250mm } body.letter, body.legal { width: 216mm } body.letter.landscape { width: 280mm } body.legal.landscape { width: 357mm } diff --git a/gamecard/static/fonts/m+1m/m+1m.css b/gamecard/static/fonts/m+1m/m+1m.css new file mode 100644 index 0000000..c8f1fb9 --- /dev/null +++ b/gamecard/static/fonts/m+1m/m+1m.css @@ -0,0 +1,38 @@ +@font-face { + font-family: 'm+1m'; + src: url('mplus-1m-bold-webfont.woff') format('woff'); + font-weight: bold; + font-style: normal; + +} + +@font-face { + font-family: 'm+1m'; + src: url('mplus-1m-light-webfont.woff') format('woff'); + font-weight: 300; + font-style: normal; + +} + +@font-face { + font-family: 'm+1m'; + src: url('mplus-1m-medium-webfont.woff') format('woff'); + font-weight: 500; + font-style: normal; + +} + +@font-face { + font-family: 'm+1m'; + src: url('mplus-1m-regular-webfont.woff') format('woff'); + font-weight: normal; + font-style: normal; + +} + +@font-face { + font-family: 'm+1m'; + src: url('mplus-1m-thin-webfont.woff') format('woff'); + font-weight: 100; + font-style: normal; +} diff --git a/gamecard/static/fonts/m+1m/mplus-1m-bold-webfont.woff b/gamecard/static/fonts/m+1m/mplus-1m-bold-webfont.woff new file mode 100644 index 0000000..4caef46 Binary files /dev/null and b/gamecard/static/fonts/m+1m/mplus-1m-bold-webfont.woff differ diff --git a/gamecard/static/fonts/m+1m/mplus-1m-light-webfont.woff b/gamecard/static/fonts/m+1m/mplus-1m-light-webfont.woff new file mode 100644 index 0000000..0ed6554 Binary files /dev/null and b/gamecard/static/fonts/m+1m/mplus-1m-light-webfont.woff differ diff --git a/gamecard/static/fonts/m+1m/mplus-1m-medium-webfont.woff b/gamecard/static/fonts/m+1m/mplus-1m-medium-webfont.woff new file mode 100644 index 0000000..bf9c839 Binary files /dev/null and b/gamecard/static/fonts/m+1m/mplus-1m-medium-webfont.woff differ diff --git a/gamecard/static/fonts/m+1m/mplus-1m-regular-webfont.woff b/gamecard/static/fonts/m+1m/mplus-1m-regular-webfont.woff new file mode 100644 index 0000000..f588a6a Binary files /dev/null and b/gamecard/static/fonts/m+1m/mplus-1m-regular-webfont.woff differ diff --git a/gamecard/static/fonts/m+1m/mplus-1m-thin-webfont.woff b/gamecard/static/fonts/m+1m/mplus-1m-thin-webfont.woff new file mode 100644 index 0000000..65cd24b Binary files /dev/null and b/gamecard/static/fonts/m+1m/mplus-1m-thin-webfont.woff differ diff --git a/gamecard/static/fonts/vera/Vera-Bold-Italic-webfont.woff b/gamecard/static/fonts/vera/Vera-Bold-Italic-webfont.woff new file mode 100644 index 0000000..fb1260d Binary files /dev/null and b/gamecard/static/fonts/vera/Vera-Bold-Italic-webfont.woff differ diff --git a/gamecard/static/fonts/vera/Vera-Bold-webfont.woff b/gamecard/static/fonts/vera/Vera-Bold-webfont.woff new file mode 100644 index 0000000..ec47bbc Binary files /dev/null and b/gamecard/static/fonts/vera/Vera-Bold-webfont.woff differ diff --git a/gamecard/static/fonts/vera/Vera-Italic-webfont.woff b/gamecard/static/fonts/vera/Vera-Italic-webfont.woff new file mode 100644 index 0000000..3e9531b Binary files /dev/null and b/gamecard/static/fonts/vera/Vera-Italic-webfont.woff differ diff --git a/gamecard/static/fonts/vera/Vera-webfont.woff b/gamecard/static/fonts/vera/Vera-webfont.woff new file mode 100644 index 0000000..3425711 Binary files /dev/null and b/gamecard/static/fonts/vera/Vera-webfont.woff differ diff --git a/gamecard/static/fonts/vera/VeraMono-Bold-Italic-webfont.woff b/gamecard/static/fonts/vera/VeraMono-Bold-Italic-webfont.woff new file mode 100644 index 0000000..a3df515 Binary files /dev/null and b/gamecard/static/fonts/vera/VeraMono-Bold-Italic-webfont.woff differ diff --git a/gamecard/static/fonts/vera/VeraMono-Bold-webfont.woff b/gamecard/static/fonts/vera/VeraMono-Bold-webfont.woff new file mode 100644 index 0000000..e7d57e4 Binary files /dev/null and b/gamecard/static/fonts/vera/VeraMono-Bold-webfont.woff differ diff --git a/gamecard/static/fonts/vera/VeraMono-Italic-webfont.woff b/gamecard/static/fonts/vera/VeraMono-Italic-webfont.woff new file mode 100644 index 0000000..3f04533 Binary files /dev/null and b/gamecard/static/fonts/vera/VeraMono-Italic-webfont.woff differ diff --git a/gamecard/static/fonts/vera/VeraMono-webfont.woff b/gamecard/static/fonts/vera/VeraMono-webfont.woff new file mode 100644 index 0000000..1cd4e47 Binary files /dev/null and b/gamecard/static/fonts/vera/VeraMono-webfont.woff differ diff --git a/gamecard/static/fonts/vera/bitstreamvera.css b/gamecard/static/fonts/vera/bitstreamvera.css new file mode 100644 index 0000000..3672c63 --- /dev/null +++ b/gamecard/static/fonts/vera/bitstreamvera.css @@ -0,0 +1,68 @@ +@font-face { + font-family: 'Bitstream Vera Sans'; + src: url('Vera-Bold-webfont.woff') format('woff'); + font-weight: bold; + font-style: normal; +} + +@font-face { + font-family: 'Bitstream Vera Sans'; + src: url('Vera-Bold-Italic-webfont.woff') format('woff'); + font-weight: bold; + font-style: oblique; + +} + +@font-face { + font-family: 'Bitstream Vera Sans'; + src: url('Vera-Italic-webfont.woff') format('woff'); + font-weight: normal; + font-style: oblique; + +} + +@font-face { + font-family: 'Bitstream Vera Sans'; + src: url('Vera-webfont.woff') format('woff'); + font-weight: normal; + font-style: normal; + +} + +@font-face { + font-family: 'Bitstream Vera Sans Mono'; + src: url('VeraMono-Bold-webfont.woff') format('woff'); + font-weight: bold; + font-style: normal; + +} + +@font-face { + font-family: 'Bitstream Vera Sans Mono'; + src: url('VeraMono-Bold-Italic-webfont.woff') format('woff'); + font-weight: bold; + font-style: italic; + +} + +@font-face { + font-family: 'Bitstream Vera Sans Mono'; + src: url('VeraMono-Italic-webfont.woff') format('woff'); + font-weight: normal; + font-style: italic; + +} + +@font-face { + font-family: 'Bitstream Vera Sans Mono'; + src: url('VeraMono-webfont.woff') format('woff'); + font-weight: normal; + font-style: normal; +} + +@font-face { + font-family: 'Bitstream Vera Sans Mono'; + src: url('VeraMono-webfont.woff') format('woff'); + font-weight: 800; + font-style: normal; +} diff --git a/gamecard/static/fonts/verdana/VerdanaPro-Black.ttf b/gamecard/static/fonts/verdana/VerdanaPro-Black.ttf new file mode 100644 index 0000000..52067f9 Binary files /dev/null and b/gamecard/static/fonts/verdana/VerdanaPro-Black.ttf differ diff --git a/gamecard/static/fonts/verdana/VerdanaPro-BlackItalic.ttf b/gamecard/static/fonts/verdana/VerdanaPro-BlackItalic.ttf new file mode 100644 index 0000000..b8445ef Binary files /dev/null and b/gamecard/static/fonts/verdana/VerdanaPro-BlackItalic.ttf differ diff --git a/gamecard/static/fonts/verdana/VerdanaPro-Bold.ttf b/gamecard/static/fonts/verdana/VerdanaPro-Bold.ttf new file mode 100644 index 0000000..887539d Binary files /dev/null and b/gamecard/static/fonts/verdana/VerdanaPro-Bold.ttf differ diff --git a/gamecard/static/fonts/verdana/VerdanaPro-BoldItalic.ttf b/gamecard/static/fonts/verdana/VerdanaPro-BoldItalic.ttf new file mode 100644 index 0000000..952d29c Binary files /dev/null and b/gamecard/static/fonts/verdana/VerdanaPro-BoldItalic.ttf differ diff --git a/gamecard/static/fonts/verdana/VerdanaPro-CondBlack.ttf b/gamecard/static/fonts/verdana/VerdanaPro-CondBlack.ttf new file mode 100644 index 0000000..b097f5c Binary files /dev/null and b/gamecard/static/fonts/verdana/VerdanaPro-CondBlack.ttf differ diff --git a/gamecard/static/fonts/verdana/VerdanaPro-CondBlackItalic.ttf b/gamecard/static/fonts/verdana/VerdanaPro-CondBlackItalic.ttf new file mode 100644 index 0000000..8c48bd2 Binary files /dev/null and b/gamecard/static/fonts/verdana/VerdanaPro-CondBlackItalic.ttf differ diff --git a/gamecard/static/fonts/verdana/VerdanaPro-CondBold.ttf b/gamecard/static/fonts/verdana/VerdanaPro-CondBold.ttf new file mode 100644 index 0000000..471c96a Binary files /dev/null and b/gamecard/static/fonts/verdana/VerdanaPro-CondBold.ttf differ diff --git a/gamecard/static/fonts/verdana/VerdanaPro-CondBoldItalic.ttf b/gamecard/static/fonts/verdana/VerdanaPro-CondBoldItalic.ttf new file mode 100644 index 0000000..96b32f4 Binary files /dev/null and b/gamecard/static/fonts/verdana/VerdanaPro-CondBoldItalic.ttf differ diff --git a/gamecard/static/fonts/verdana/VerdanaPro-CondItalic.ttf b/gamecard/static/fonts/verdana/VerdanaPro-CondItalic.ttf new file mode 100644 index 0000000..9e95137 Binary files /dev/null and b/gamecard/static/fonts/verdana/VerdanaPro-CondItalic.ttf differ diff --git a/gamecard/static/fonts/verdana/VerdanaPro-CondLight.ttf b/gamecard/static/fonts/verdana/VerdanaPro-CondLight.ttf new file mode 100644 index 0000000..8513024 Binary files /dev/null and b/gamecard/static/fonts/verdana/VerdanaPro-CondLight.ttf differ diff --git a/gamecard/static/fonts/verdana/VerdanaPro-CondLightItalic.ttf b/gamecard/static/fonts/verdana/VerdanaPro-CondLightItalic.ttf new file mode 100644 index 0000000..c8b7e30 Binary files /dev/null and b/gamecard/static/fonts/verdana/VerdanaPro-CondLightItalic.ttf differ diff --git a/gamecard/static/fonts/verdana/VerdanaPro-CondRegular.ttf b/gamecard/static/fonts/verdana/VerdanaPro-CondRegular.ttf new file mode 100644 index 0000000..c2ccf32 Binary files /dev/null and b/gamecard/static/fonts/verdana/VerdanaPro-CondRegular.ttf differ diff --git a/gamecard/static/fonts/verdana/VerdanaPro-CondSemiBold.ttf b/gamecard/static/fonts/verdana/VerdanaPro-CondSemiBold.ttf new file mode 100644 index 0000000..9d299a7 Binary files /dev/null and b/gamecard/static/fonts/verdana/VerdanaPro-CondSemiBold.ttf differ diff --git a/gamecard/static/fonts/verdana/VerdanaPro-CondSemiBoldItalic.ttf b/gamecard/static/fonts/verdana/VerdanaPro-CondSemiBoldItalic.ttf new file mode 100644 index 0000000..7b7bd70 Binary files /dev/null and b/gamecard/static/fonts/verdana/VerdanaPro-CondSemiBoldItalic.ttf differ diff --git a/gamecard/static/fonts/verdana/VerdanaPro-Italic.ttf b/gamecard/static/fonts/verdana/VerdanaPro-Italic.ttf new file mode 100644 index 0000000..595646b Binary files /dev/null and b/gamecard/static/fonts/verdana/VerdanaPro-Italic.ttf differ diff --git a/gamecard/static/fonts/verdana/VerdanaPro-Light.ttf b/gamecard/static/fonts/verdana/VerdanaPro-Light.ttf new file mode 100644 index 0000000..31962b2 Binary files /dev/null and b/gamecard/static/fonts/verdana/VerdanaPro-Light.ttf differ diff --git a/gamecard/static/fonts/verdana/VerdanaPro-LightItalic.ttf b/gamecard/static/fonts/verdana/VerdanaPro-LightItalic.ttf new file mode 100644 index 0000000..632f35e Binary files /dev/null and b/gamecard/static/fonts/verdana/VerdanaPro-LightItalic.ttf differ diff --git a/gamecard/static/fonts/verdana/VerdanaPro-Regular.ttf b/gamecard/static/fonts/verdana/VerdanaPro-Regular.ttf new file mode 100644 index 0000000..78394be Binary files /dev/null and b/gamecard/static/fonts/verdana/VerdanaPro-Regular.ttf differ diff --git a/gamecard/static/fonts/verdana/VerdanaPro-SemiBold.ttf b/gamecard/static/fonts/verdana/VerdanaPro-SemiBold.ttf new file mode 100644 index 0000000..e1a54ca Binary files /dev/null and b/gamecard/static/fonts/verdana/VerdanaPro-SemiBold.ttf differ diff --git a/gamecard/static/fonts/verdana/VerdanaPro-SemiBoldItalic.ttf b/gamecard/static/fonts/verdana/VerdanaPro-SemiBoldItalic.ttf new file mode 100644 index 0000000..bd9e631 Binary files /dev/null and b/gamecard/static/fonts/verdana/VerdanaPro-SemiBoldItalic.ttf differ diff --git a/gamecard/static/fonts/verdana/verdanapro.css b/gamecard/static/fonts/verdana/verdanapro.css new file mode 100644 index 0000000..2dccbc7 --- /dev/null +++ b/gamecard/static/fonts/verdana/verdanapro.css @@ -0,0 +1,123 @@ +@font-face { + font-family: 'VerdanaPro'; + src: url('VerdanaPro-Black.ttf') format('truetype'); + font-weight: 800; + font-style: normal; +} +@font-face { + font-family: 'VerdanaPro'; + src: url('VerdanaPro-BlackItalic.ttf') format('truetype'); + font-weight: 800; + font-style: italic; +} +@font-face { + font-family: 'VerdanaPro'; + src: url('VerdanaPro-Bold.ttf') format('truetype'); + font-weight: bold; + font-style: normal; +} +@font-face { + font-family: 'VerdanaPro'; + src: url('VerdanaPro-BoldItalic.ttf') format('truetype'); + font-weight: bold; + font-style: italic; +} +@font-face { + font-family: 'VerdanaPro'; + src: url('VerdanaPro-CondBlack.ttf') format('truetype'); + font-stretch: condensed; + font-weight: 800; +} +@font-face { + font-family: 'VerdanaPro'; + src: url('VerdanaPro-CondBlackItalic.ttf') format('truetype'); + font-stretch: condensed; + font-weight: 800; + font-style: italic; +} +@font-face { + font-family: 'VerdanaPro'; + src: url('VerdanaPro-CondBold.ttf') format('truetype'); + font-stretch: condensed; + font-weight: bold; +} +@font-face { + font-family: 'VerdanaPro'; + src: url('VerdanaPro-CondBoldItalic.ttf') format('truetype'); + font-stretch: condensed; + font-weight: bold; + font-style: italic; +} +@font-face { + font-family: 'VerdanaPro'; + src: url('VerdanaPro-CondItalic.ttf') format('truetype'); + font-stretch: condensed; + font-style: italic; +} +@font-face { + font-family: 'VerdanaPro'; + src: url('VerdanaPro-CondLight.ttf') format('truetype'); + font-stretch: condensed; + font-weight: 300; +} +@font-face { + font-family: 'VerdanaPro'; + src: url('VerdanaPro-CondLightItalic.ttf') format('truetype'); + font-stretch: condensed; + font-weight: 300; + font-style: italic; +} +@font-face { + font-family: 'VerdanaPro'; + src: url('VerdanaPro-CondRegular.ttf') format('truetype'); + font-stretch: condensed; + font-style: normal; +} +@font-face { + font-family: 'VerdanaPro'; + src: url('VerdanaPro-CondSemiBold.ttf') format('truetype'); + font-stretch: condensed; + font-weight: 600; +} +@font-face { + font-family: 'VerdanaPro'; + src: url('VerdanaPro-CondSemiBoldItalic.ttf') format('truetype'); + font-stretch: condensed; + font-weight: 600; + font-style: italic; +} +@font-face { + font-family: 'VerdanaPro'; + src: url('VerdanaPro-Italic.ttf') format('truetype'); + font-style: italic; + font-weight: normal; +} +@font-face { + font-family: 'VerdanaPro'; + src: url('VerdanaPro-Light.ttf') format('truetype'); + font-weight: 300; +} +@font-face { + font-family: 'VerdanaPro'; + src: url('VerdanaPro-LightItalic.ttf') format('truetype'); + font-weight: 300; + font-style: italic; +} +@font-face { + font-family: 'VerdanaPro'; + src: url('VerdanaPro-Regular.ttf') format('truetype'); + font-style: normal; + font-weight: normal; +} +@font-face { + font-family: 'VerdanaPro'; + src: url('VerdanaPro-SemiBold.ttf') format('truetype'); + font-weight: 600; + font-style: normal; +} +@font-face { + font-family: 'VerdanaPro'; + src: url('VerdanaPro-SemiBoldItalic.ttf') format('truetype'); + font-weight: 600; + font-style: italic; +} diff --git a/gamecard/templates/gamecard/gamecard.html b/gamecard/templates/gamecard/gamecard.html new file mode 100644 index 0000000..65bd032 --- /dev/null +++ b/gamecard/templates/gamecard/gamecard.html @@ -0,0 +1,191 @@ +{% load static %} + + + + + + Title + + +
+
+
+
+ + + + + + + +
+ {{ event.data.formatted_title }} {{ event.data.start_date|date:'m/d/Y g:i A' }} + {# G#01 at Browns 05/01/2021 12:30 PM#} + {{ event.data.game_type }}
+ + + + + + + + + + + + + + + + + + + {% for member in members_startinglineup %} + + + + + + + + + + + + + + + {% endfor %} + +
+ + + + 1 + 2 + 3 + 4 + 5 + 6 + 7 + X +
{{ member.lineup_entry.sequence | add:"1" }}{{ member.member.last_name }}{{ member.member.jersey_number }}{{ member.lineup_entry.label }}
+ + + {% for member in members_startingpositiononly %} + + + + + + + + + + + + + + + {% endfor %} + +
{{ member.member.last_name }}{{ member.member.jersey_number }}{{ member.lineup_entry.label }}
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + {% for member in members %} + + + + + + + + + + + + + + + + + + + {% endfor %} + +
AvailableAVG/OBP/SLG:PA
{{ member.member.jersey_number }}{{ member.member.last_name }}
+
+
+
+
+
+
+
+
+
+
+ + + + + + + + + + + + +
+ {{ event.data.start_date|date:"D, F j, Y g:i A" }} +
+ {{ event.data.location_name }} +
+ +
+
+
+ +
+
+ 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/dashboard/templates/dashboard.html b/teamsnap/dashboard/templates/dashboard.html index 3ecd6af..8e0c88f 100644 --- a/teamsnap/dashboard/templates/dashboard.html +++ b/teamsnap/dashboard/templates/dashboard.html @@ -34,7 +34,12 @@
{{ event.data.location_name }}
- Go to Lineup + + Go to Lineup + + + +