gamecard v0.1
This commit is contained in:
@@ -1 +1,12 @@
|
|||||||
@import url("https://cdn.jsdelivr.net/npm/bootstrap-icons@1.7.2/font/bootstrap-icons.css");
|
@import url("https://cdn.jsdelivr.net/npm/bootstrap-icons@1.7.2/font/bootstrap-icons.css");
|
||||||
|
@import url('https://fonts.googleapis.com/css2?family=Graduate&display=swap');
|
||||||
|
|
||||||
|
.wordmark {
|
||||||
|
font-family: "Graduate", sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar .navbar-brand {
|
||||||
|
font-family: "Graduate", sans-serif;
|
||||||
|
font-weight: bolder;
|
||||||
|
font-stretch: condensed;
|
||||||
|
}
|
||||||
@@ -15,6 +15,8 @@ body.A4 .sheet { width: 210mm; height: 296mm }
|
|||||||
body.A4.landscape .sheet { width: 297mm; height: 209mm }
|
body.A4.landscape .sheet { width: 297mm; height: 209mm }
|
||||||
body.A5 .sheet { width: 148mm; height: 209mm }
|
body.A5 .sheet { width: 148mm; height: 209mm }
|
||||||
body.A5.landscape .sheet { width: 210mm; height: 147mm }
|
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 .sheet { width: 216mm; height: 279mm }
|
||||||
body.letter.landscape .sheet { width: 280mm; height: 215mm }
|
body.letter.landscape .sheet { width: 280mm; height: 215mm }
|
||||||
body.legal .sheet { width: 216mm; height: 356mm }
|
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-20mm { padding: 20mm }
|
||||||
.sheet.padding-25mm { padding: 25mm }
|
.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 **/
|
/** Fix for Chrome issue #273306 **/
|
||||||
@media print {
|
@media print {
|
||||||
body.A3.landscape { width: 420mm }
|
body.A3.landscape { width: 420mm }
|
||||||
body.A3, body.A4.landscape { width: 297mm }
|
body.A3, body.A4.landscape { width: 297mm }
|
||||||
body.A4, body.A5.landscape { width: 210mm }
|
body.A4, body.A5.landscape { width: 210mm }
|
||||||
body.A5 { width: 148mm }
|
body.A5 { width: 148mm }
|
||||||
|
body.b5 { width: 190mm }
|
||||||
|
body.b5.landscape { width: 250mm }
|
||||||
body.letter, body.legal { width: 216mm }
|
body.letter, body.legal { width: 216mm }
|
||||||
body.letter.landscape { width: 280mm }
|
body.letter.landscape { width: 280mm }
|
||||||
body.legal.landscape { width: 357mm }
|
body.legal.landscape { width: 357mm }
|
||||||
|
|||||||
152
benchcoachproject/static/teamsnap/css/gamecard.css
Normal file
152
benchcoachproject/static/teamsnap/css/gamecard.css
Normal file
@@ -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;
|
||||||
|
}
|
||||||
BIN
benchcoachproject/static/teamsnap/fonts/dinpro/DINPro-Black.otf
Normal file
BIN
benchcoachproject/static/teamsnap/fonts/dinpro/DINPro-Black.otf
Normal file
Binary file not shown.
Binary file not shown.
BIN
benchcoachproject/static/teamsnap/fonts/dinpro/DINPro-Bold.otf
Normal file
BIN
benchcoachproject/static/teamsnap/fonts/dinpro/DINPro-Bold.otf
Normal file
Binary file not shown.
Binary file not shown.
BIN
benchcoachproject/static/teamsnap/fonts/dinpro/DINPro-Cond.otf
Normal file
BIN
benchcoachproject/static/teamsnap/fonts/dinpro/DINPro-Cond.otf
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
benchcoachproject/static/teamsnap/fonts/dinpro/DINPro-Italic.otf
Normal file
BIN
benchcoachproject/static/teamsnap/fonts/dinpro/DINPro-Italic.otf
Normal file
Binary file not shown.
BIN
benchcoachproject/static/teamsnap/fonts/dinpro/DINPro-Light.otf
Normal file
BIN
benchcoachproject/static/teamsnap/fonts/dinpro/DINPro-Light.otf
Normal file
Binary file not shown.
Binary file not shown.
BIN
benchcoachproject/static/teamsnap/fonts/dinpro/DINPro-Medium.otf
Normal file
BIN
benchcoachproject/static/teamsnap/fonts/dinpro/DINPro-Medium.otf
Normal file
Binary file not shown.
Binary file not shown.
BIN
benchcoachproject/static/teamsnap/fonts/dinpro/DINPro.otf
Normal file
BIN
benchcoachproject/static/teamsnap/fonts/dinpro/DINPro.otf
Normal file
Binary file not shown.
123
benchcoachproject/static/teamsnap/fonts/dinpro/dinpro.css
Normal file
123
benchcoachproject/static/teamsnap/fonts/dinpro/dinpro.css
Normal file
@@ -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");
|
||||||
|
}
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
39
benchcoachproject/static/teamsnap/fonts/m+1m/m+1m.css
Normal file
39
benchcoachproject/static/teamsnap/fonts/m+1m/m+1m.css
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
@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;
|
||||||
|
}
|
||||||
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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");
|
||||||
|
}
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
benchcoachproject/static/teamsnap/fonts/vera/Vera-webfont.woff
Normal file
BIN
benchcoachproject/static/teamsnap/fonts/vera/Vera-webfont.woff
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,74 @@
|
|||||||
|
@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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
123
benchcoachproject/static/teamsnap/fonts/verdana/verdanapro.css
Normal file
123
benchcoachproject/static/teamsnap/fonts/verdana/verdanapro.css
Normal file
@@ -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;
|
||||||
|
}
|
||||||
191
teamsnap/templates/teamsnap/lineup/gamecard.html
Normal file
191
teamsnap/templates/teamsnap/lineup/gamecard.html
Normal file
@@ -0,0 +1,191 @@
|
|||||||
|
{% load static %}
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<link rel="stylesheet" href="{% static 'teamsnap/css/gamecard.css' %}">
|
||||||
|
<title>Title</title>
|
||||||
|
</head>
|
||||||
|
<body class="b5">
|
||||||
|
<section class="sheet">
|
||||||
|
<div class="whole-card">
|
||||||
|
<div class="half-card">
|
||||||
|
<div class="content card-left">
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th colspan="8" class="gametitle">
|
||||||
|
{{ 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#}
|
||||||
|
</th>
|
||||||
|
<th class="homeaway" colspan="4">{{ event.data.game_type }}</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
</table>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th class="numbercell">
|
||||||
|
</td>
|
||||||
|
<th class="customcol">
|
||||||
|
</td>
|
||||||
|
<th class="numbercell">
|
||||||
|
</td>
|
||||||
|
<th class="numbercell">
|
||||||
|
</td>
|
||||||
|
<th class="numbercell">1
|
||||||
|
</td>
|
||||||
|
<th class="numbercell">2
|
||||||
|
</td>
|
||||||
|
<th class="numbercell">3
|
||||||
|
</td>
|
||||||
|
<th class="numbercell">4
|
||||||
|
</td>
|
||||||
|
<th class="numbercell">5
|
||||||
|
</td>
|
||||||
|
<th class="numbercell">6
|
||||||
|
</td>
|
||||||
|
<th class="numbercell">7
|
||||||
|
</td>
|
||||||
|
<th class="numbercell">X
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{% for member in members_startinglineup %}
|
||||||
|
<tr>
|
||||||
|
<td class="numbercell">{{ member.lineup_entry.sequence | add:"1" }}</td>
|
||||||
|
<td class="customcol">{{ member.member.last_name }}</td>
|
||||||
|
<td class="numbercell">{{ member.member.jersey_number }}</td>
|
||||||
|
<td class="numbercell">{{ member.lineup_entry.label }}</td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
<table>
|
||||||
|
<tbody>
|
||||||
|
{% for member in members_startingpositiononly %}
|
||||||
|
<tr>
|
||||||
|
<td class="numbercell"></td>
|
||||||
|
<td class="customcol">{{ member.member.last_name }}</td>
|
||||||
|
<td class="numbercell">{{ member.member.jersey_number }}</td>
|
||||||
|
<td class="numbercell">{{ member.lineup_entry.label }}</td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
<td></td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="half-card">
|
||||||
|
<div class="content card-right">
|
||||||
|
<table class="tg">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th class="numbercell"></th>
|
||||||
|
<th class="numbercell"></th>
|
||||||
|
<th class="condensedNameCell">Available</th>
|
||||||
|
<th class="statscell">AVG/OBP/SLG:PA</th>
|
||||||
|
<th class="numbercell"></th>
|
||||||
|
<th class="numbercell"></th>
|
||||||
|
<th class="numbercell"></th>
|
||||||
|
<th class="numbercell"></th>
|
||||||
|
<th class="numbercell"></th>
|
||||||
|
<th class="numbercell"></th>
|
||||||
|
<th class="numbercell"></th>
|
||||||
|
<th class="numbercell"></th>
|
||||||
|
<th class="numbercell"></th>
|
||||||
|
<th class="numbercell"></th>
|
||||||
|
<th class="numbercell"></th>
|
||||||
|
<th class="numbercell"></th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{% for member in members %}
|
||||||
|
<tr>
|
||||||
|
<td class="numbercell"></td>
|
||||||
|
<td class="numbercell available-status-code-{{ member.availability.status_code }}">{{ member.member.jersey_number }}</td>
|
||||||
|
<td class="condensedNameCell available-status-code-{{ member.availability.status_code }}">{{ member.member.last_name }}</td>
|
||||||
|
<td class="statscell"></td>
|
||||||
|
<td class="numbercell"></td>
|
||||||
|
<td class="numbercell"></td>
|
||||||
|
<td class="numbercell"></td>
|
||||||
|
<td class="numbercell"></td>
|
||||||
|
<td class="numbercell"></td>
|
||||||
|
<td class="numbercell"></td>
|
||||||
|
<td class="numbercell"></td>
|
||||||
|
<td class="numbercell"></td>
|
||||||
|
<td class="numbercell"></td>
|
||||||
|
<td class="numbercell"></td>
|
||||||
|
<td class="numbercell"></td>
|
||||||
|
<td class="numbercell"></td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="whole-card">
|
||||||
|
<div class="half-card">
|
||||||
|
<div class="content card-left"></div>
|
||||||
|
</div>
|
||||||
|
<div class="half-card">
|
||||||
|
<div class="content card-right">
|
||||||
|
<div>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th class="numbercell" style="background-color: #323669">
|
||||||
|
{{ event.data.start_date|date:"D, F j, Y g:i A" }}
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th class="numbercell" style="background-color: #323669">
|
||||||
|
{{ event.data.location_name }}
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th class="numbercell" style="background-color: lightgray">
|
||||||
|
|
||||||
|
</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
</table>
|
||||||
|
<div>
|
||||||
|
<div class="" width="100%">
|
||||||
|
<img src="{% static 'teamsnap/ig/logos/hounds.png' %}"
|
||||||
|
height="120px"
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="" width="100%" style="text-align: center;font-size: xxx-large; font-family: Pacifico">
|
||||||
|
VS.
|
||||||
|
</div>
|
||||||
|
<div class="" width="100%" style="text-align: right">
|
||||||
|
<img src="{% static 'teamsnap/ig/logos/hounds.png' %}"
|
||||||
|
width="120px"
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -19,6 +19,7 @@ urlpatterns = [
|
|||||||
path('<int:team_id>/event/<int:event_ids>/edit_lineup/', views.edit_lineup, name='teamsnap_edit_lineup'),
|
path('<int:team_id>/event/<int:event_ids>/edit_lineup/', views.edit_lineup, name='teamsnap_edit_lineup'),
|
||||||
path('<int:team_id>/event/<str:event_ids>/edit_lineup/', views.edit_lineup, name='teamsnap_edit_multiple_lineups'),
|
path('<int:team_id>/event/<str:event_ids>/edit_lineup/', views.edit_lineup, name='teamsnap_edit_multiple_lineups'),
|
||||||
path('<int:team_id>/event/<int:event_id>/submit_lineup/', views.submit_lineup, name='teamsnap_submit_lineup'),
|
path('<int:team_id>/event/<int:event_id>/submit_lineup/', views.submit_lineup, name='teamsnap_submit_lineup'),
|
||||||
|
path('<int:team_id>/event/<int:event_id>/gamecard/', views.gamecard, name='teamsnap_gamecard'),
|
||||||
path('<int:team_id>/event/<int:event_id>/image_generator/', views.image_generator, name='teamsnap_image_generator'),
|
path('<int:team_id>/event/<int:event_id>/image_generator/', views.image_generator, name='teamsnap_image_generator'),
|
||||||
path('<int:team_id>/event/<int:event_id>/image_generator/generate', views.get_matchup_image, name='teamsnap_image_generator_generate'),
|
path('<int:team_id>/event/<int:event_id>/image_generator/generate', views.get_matchup_image, name='teamsnap_image_generator_generate'),
|
||||||
path('<int:team_id>/multievent/choose', views.multi_lineup_choose, name='teamsnap_choose_multiple_lineups')
|
path('<int:team_id>/multievent/choose', views.multi_lineup_choose, name='teamsnap_choose_multiple_lineups')
|
||||||
|
|||||||
@@ -550,3 +550,96 @@ def multi_lineup_choose(request, team_id):
|
|||||||
|
|
||||||
pass
|
pass
|
||||||
return render(request, "teamsnap/lineup/multiple_choose.html", context={"formset": formset, "team_id": team_id})
|
return render(request, "teamsnap/lineup/multiple_choose.html", context={"formset": formset, "team_id": team_id})
|
||||||
|
|
||||||
|
def gamecard(request, team_id, event_id):
|
||||||
|
TOKEN = request.user.profile.teamsnap_access_token
|
||||||
|
from django.forms import formset_factory
|
||||||
|
from teamsnap.forms import EventChooseForm
|
||||||
|
from pyteamsnap.api import TeamSnap, Event, Availability, Member, EventLineupEntry, EventLineup, \
|
||||||
|
AvailabilitySummary, Opponent
|
||||||
|
client = TeamSnap(token=TOKEN)
|
||||||
|
time.sleep(0.5)
|
||||||
|
ts_bulkload = client.bulk_load(team_id=team_id,
|
||||||
|
types=[Event, EventLineup, EventLineupEntry, AvailabilitySummary, Member],
|
||||||
|
event__id=event_id)
|
||||||
|
formsets_lineup = []
|
||||||
|
formsets_bench = []
|
||||||
|
formsets = []
|
||||||
|
events = []
|
||||||
|
contexts = []
|
||||||
|
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_availability_summary = \
|
||||||
|
[i for i in ts_bulkload if isinstance(i, AvailabilitySummary) and i.data['event_id'] == event_id][0]
|
||||||
|
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'])
|
||||||
|
else:
|
||||||
|
ts_lineup = EventLineup.search(client, event_id=event_id)
|
||||||
|
|
||||||
|
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, # No Response
|
||||||
|
0: 2, # No
|
||||||
|
2: 1, # Maybe
|
||||||
|
1: 0 # Yes
|
||||||
|
|
||||||
|
}.get(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)
|
||||||
|
)
|
||||||
|
|
||||||
|
from teamsnap.forms import LineupEntryFormset, LineupEntryForm
|
||||||
|
|
||||||
|
initial = []
|
||||||
|
l=[]
|
||||||
|
# l = [(member,ts_availability_lookup.get(member['member_id'])) for member in members if not member['is_non_player']]
|
||||||
|
|
||||||
|
context={
|
||||||
|
"event": ts_event,
|
||||||
|
"members": members,
|
||||||
|
"members_startinglineup":members_startinglineup,
|
||||||
|
"members_startingpositiononly":members_startingpositiononly
|
||||||
|
}
|
||||||
|
return render(request, "teamsnap/lineup/gamecard.html", context=context)
|
||||||
Reference in New Issue
Block a user