Merge branch 'v2' into gamecard
# Conflicts: # benchcoach/static/css/gamecard.css # benchcoach/static/fonts/dinpro/dinpro.css # benchcoach/static/fonts/m+1m/m+1m.css # benchcoach/static/fonts/m+1m/mplus-1m-bold-webfont.woff # benchcoach/static/fonts/m+1m/mplus-1m-light-webfont.woff # benchcoach/static/fonts/m+1m/mplus-1m-medium-webfont.woff # benchcoach/static/fonts/m+1m/mplus-1m-regular-webfont.woff # benchcoach/static/fonts/m+1m/mplus-1m-thin-webfont.woff # benchcoach/static/fonts/refrigerator/refigerator.css # benchcoach/static/fonts/vera/Vera-Bold-Italic-webfont.woff # benchcoach/static/fonts/vera/Vera-Bold-webfont.woff # benchcoach/static/fonts/vera/Vera-Italic-webfont.woff # benchcoach/static/fonts/vera/Vera-webfont.woff # benchcoach/static/fonts/vera/VeraMono-Bold-Italic-webfont.woff # benchcoach/static/fonts/vera/VeraMono-Bold-webfont.woff # benchcoach/static/fonts/vera/VeraMono-Italic-webfont.woff # benchcoach/static/fonts/vera/VeraMono-webfont.woff # benchcoach/static/fonts/vera/bitstreamvera.css # benchcoach/static/fonts/verdana/VerdanaPro-Black.ttf # benchcoach/static/fonts/verdana/VerdanaPro-BlackItalic.ttf # benchcoach/static/fonts/verdana/VerdanaPro-Bold.ttf # benchcoach/static/fonts/verdana/VerdanaPro-BoldItalic.ttf # benchcoach/static/fonts/verdana/VerdanaPro-CondBlack.ttf # benchcoach/static/fonts/verdana/VerdanaPro-CondBlackItalic.ttf # benchcoach/static/fonts/verdana/VerdanaPro-CondBold.ttf # benchcoach/static/fonts/verdana/VerdanaPro-CondBoldItalic.ttf # benchcoach/static/fonts/verdana/VerdanaPro-CondItalic.ttf # benchcoach/static/fonts/verdana/VerdanaPro-CondLight.ttf # benchcoach/static/fonts/verdana/VerdanaPro-CondLightItalic.ttf # benchcoach/static/fonts/verdana/VerdanaPro-CondRegular.ttf # benchcoach/static/fonts/verdana/VerdanaPro-CondSemiBold.ttf # benchcoach/static/fonts/verdana/VerdanaPro-CondSemiBoldItalic.ttf # benchcoach/static/fonts/verdana/VerdanaPro-Italic.ttf # benchcoach/static/fonts/verdana/VerdanaPro-Light.ttf # benchcoach/static/fonts/verdana/VerdanaPro-LightItalic.ttf # benchcoach/static/fonts/verdana/VerdanaPro-Regular.ttf # benchcoach/static/fonts/verdana/VerdanaPro-SemiBold.ttf # benchcoach/static/fonts/verdana/VerdanaPro-SemiBoldItalic.ttf # benchcoach/static/fonts/verdana/verdanapro.css # benchcoachproject/static/css/base.css # teamsnap/templates/lineup/gamecard.html # teamsnap/urls.py # teamsnap/views.py
This commit is contained in:
148
teamsnap/templates/dashboard.html
Normal file
148
teamsnap/templates/dashboard.html
Normal file
@@ -0,0 +1,148 @@
|
||||
{% extends "base.html" %}{% load static %}
|
||||
{% block title %} {{ title }}{% endblock %}
|
||||
{% block page_heading %}{% endblock %}
|
||||
{% block content %}
|
||||
<h3>Dashboard</h3>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md pb-2">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h4>Upcoming Games</h4>
|
||||
</div>
|
||||
<div class="card-body p-0 m-0">
|
||||
|
||||
{% for event, availability_summary in events_availabilities|slice:":4" %}
|
||||
<div class="row m-0 p-2 border-bottom">
|
||||
<div class="col p-0 m-auto" style="flex: 0 0 100px;">
|
||||
<div class="d-inline-flex m-0 p-0">
|
||||
<div class="chart-container" style="height: 100px;width: 100px;">
|
||||
<canvas id="availability-donut-{{ event.data.id }}" class="availability-donut"
|
||||
data-event-id="{{ event.data.id }}"
|
||||
data-available-yes="{{ availability_summary.data.player_going_count }}"
|
||||
data-available-no="{{ availability_summary.data.player_not_going_count }}"
|
||||
data-available-maybe="{{ availability_summary.data.player_maybe_count }}"
|
||||
data-available-unknown="{{ availability_summary.data.player_unknown_count }}"
|
||||
>
|
||||
</canvas></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div>
|
||||
<h4><strong><a class="text-decoration-none text-black" href="{% url 'teamsnap_view_event' team_id=event.data.team_id event_id=event.data.id %}">{{ event.data.formatted_title }}</a></strong></h4>
|
||||
<h6 class="text-muted mb-2">{{ event.data.start_date|date:"D, F j, g:i A" }}</h6>
|
||||
<h6 class="text-muted mb-2">{{ event.data.location_name }}</h6>
|
||||
</div>
|
||||
<div class="d-flex">
|
||||
<a class="btn btn-primary btn-sm mx-1" role="button" href="{% url 'teamsnap_edit_lineup' event_ids=event.data.id team_id=event.data.team_id %}">Go to Lineup</a>
|
||||
<form method="get"
|
||||
action="{% url 'instagen_generate' team_id=event.data.team_id event_id=event.data.id %}">
|
||||
<select hidden class="form-select" name="game_id" id="game_id">
|
||||
<optgroup label="Events">
|
||||
<option value="" disabled="disabled">Select an event...</option>
|
||||
<option selected
|
||||
value="{{ event.data.id }}">{{ event.data.formatted_title }}</option>
|
||||
</optgroup>
|
||||
</select>
|
||||
<input hidden class="form-check-input" type="radio" name="background"
|
||||
id="backgroundLocation" checked value="location">
|
||||
<input hidden class="form-check-input" type="radio" name="dimensions" id="square" checked
|
||||
value="1080x1080">
|
||||
<button type="submit" class="btn btn-primary btn-sm"><i class="bi bi-instagram"></i>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md pb-2">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h4>Past Games</h4>
|
||||
</div>
|
||||
<div class="card-body p-0 m-0">
|
||||
|
||||
{% for event in ts_events_past|slice:":4" %}
|
||||
<div class="row m-0 p-2 border-bottom">
|
||||
<div class="col p-0 m-auto rounded-circle bg-light" style="flex: 0 0 100px;">
|
||||
<div class="d-inline-flex m-0 p-0">
|
||||
<div class="d-flex align-items-center justify-content-center" style="height: 100px;width: 100px;">
|
||||
<h4 class="text-center"><strong>{{ event.data.formatted_results }}</strong></h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<h4 class=""><strong><a class="text-decoration-none text-black" href="{% url 'teamsnap_view_event' team_id=event.data.team_id event_id=event.data.id %}">{{ event.data.formatted_title }}</a></strong></h4>
|
||||
<h6 class="text-muted mb-2">{{ event.data.start_date|date:"D, F j" }}</h6>
|
||||
{# <h6 class="text-muted mb-2">{{ event.data.location_name }}</h6><a class="btn btn-primary btn-sm" role="button" href="{% url 'teamsnap_edit_lineup' event_ids=event.data.id team_id=request.user.teamsnapsettings.managed_team.id %}">Go to Lineup</a>#}
|
||||
|
||||
<div class="d-flex">
|
||||
<form method="get"
|
||||
action="{% url 'instagen_generate' team_id=event.data.team_id event_id=event.data.id %}">
|
||||
<select hidden class="form-select" name="game_id" id="game_id">
|
||||
<optgroup label="Events">
|
||||
<option value="" disabled="disabled">Select an event...</option>
|
||||
<option selected
|
||||
value="{{ event.data.id }}">{{ event.data.formatted_title }}</option>
|
||||
</optgroup>
|
||||
</select>
|
||||
<input hidden class="form-check-input" type="radio" name="background"
|
||||
id="backgroundLocation" checked value="location">
|
||||
<input hidden class="form-check-input" type="radio" name="dimensions" id="square" checked
|
||||
value="1080x1080">
|
||||
<button type="submit" class="btn btn-primary btn-sm"><i class="bi bi-instagram"></i>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% block inline_javascript %}
|
||||
<script>
|
||||
function donut(ctx, yes_count, maybe_count, no_count, unknown_count) {
|
||||
var style = getComputedStyle(document.body);
|
||||
const myChart = new Chart(ctx, {
|
||||
type: 'doughnut',
|
||||
responsive: 'true',
|
||||
data: {
|
||||
datasets: [{
|
||||
label: 'Availability',
|
||||
labels: [
|
||||
'Yes',
|
||||
'Maybe',
|
||||
'No',
|
||||
'Unknown'
|
||||
],
|
||||
data: [yes_count, maybe_count, no_count, unknown_count],
|
||||
backgroundColor: [
|
||||
style.getPropertyValue('--bs-success'),
|
||||
style.getPropertyValue('--bs-info'),
|
||||
style.getPropertyValue('--bs-danger'),
|
||||
style.getPropertyValue('--bs-secondary')
|
||||
],
|
||||
hoverOffset: 4
|
||||
}]
|
||||
},
|
||||
});
|
||||
|
||||
}
|
||||
for (ctx of document.querySelectorAll('.availability-donut')){
|
||||
donut(ctx,
|
||||
ctx.dataset.availableYes,
|
||||
ctx.dataset.availableMaybe,
|
||||
ctx.dataset.availableNo,
|
||||
ctx.dataset.availableUnknown,
|
||||
)
|
||||
}
|
||||
</script>
|
||||
{% endblock %}
|
||||
@@ -73,4 +73,4 @@
|
||||
</div>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
@@ -1,5 +1,5 @@
|
||||
{% extends "base.html" %}{% load static %}
|
||||
{% block title %} {{ event.data.formatted_title }}{% endblock %}
|
||||
{% block title %} {{ title }}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="card mx-auto" style="max-width: 455px">
|
||||
@@ -10,7 +10,7 @@
|
||||
<div class="row">
|
||||
<div class="col text-end">
|
||||
<form method="get"
|
||||
action="{% url "teamsnap_image_generator_generate" team_id=request.user.profile.teamsnapsettings.managed_team.id event_id=event.data.id %}">
|
||||
action="{% url 'instagen_generate' team_id=event.data.team_id event_id=event.data.id %}">
|
||||
<select hidden class="form-select" name="game_id" id="game_id">
|
||||
<optgroup label="Events">
|
||||
<option value="" disabled="disabled">Select an event...</option>
|
||||
@@ -26,7 +26,7 @@
|
||||
</button>
|
||||
</form>
|
||||
<a class="btn btn-primary btn-sm py-0 m-1"
|
||||
href="{% url "teamsnap_image_generator" team_id=request.user.profile.teamsnapsettings.managed_team.id event_id=event.data.id %}"
|
||||
href="{% url "instagen" team_id=event.data.team_id event_id=event.data.id %}"
|
||||
role="button">
|
||||
<div class="d-inline-block"><i class="bi bi-instagram"></i> <i class="bi bi-three-dots"></i>
|
||||
</div>
|
||||
@@ -61,7 +61,7 @@
|
||||
Opponent
|
||||
</th>
|
||||
<td>
|
||||
<a href="{% url 'teamsnap_opponent' team_id=request.user.profile.teamsnapsettings.managed_team.id id=event.data.opponent_id %}">{{ event.data.opponent_name }}</a>
|
||||
<a href="">{{ event.data.opponent_name }}</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -69,7 +69,7 @@
|
||||
Location
|
||||
</th>
|
||||
<td>
|
||||
<a href="{% url 'teamsnap_location' team_id=request.user.profile.teamsnapsettings.managed_team.id id=event.data.location_id %}">{{ event.data.location_name }}</a>
|
||||
<a href="">{{ event.data.location_name }}</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
@@ -134,11 +134,11 @@
|
||||
<div class="row m-0">
|
||||
<div class="flex-column m-2">
|
||||
<a class="btn btn-primary btn-sm"
|
||||
href="{% url 'teamsnap_edit_lineup' event_ids=event.data.id team_id=request.user.profile.teamsnapsettings.managed_team.id %}"
|
||||
href="{% url 'teamsnap_edit_lineup' team_id=event.data.team_id event_ids=event.data.id %}"
|
||||
role="button">Edit</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
@@ -7,4 +7,4 @@
|
||||
{% include 'teamsnap/lineup/widgets/lineup.html' with formset_lineup=formset_lineup formset_bench=formset_bench%}
|
||||
<script src="{% static 'js/Sortable.js' %}"></script>
|
||||
<script src="{% static 'teamsnap/js/lineup-table.js' %}"></script>
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
@@ -28,7 +28,7 @@
|
||||
{{ form.checked }}
|
||||
</td>
|
||||
<td>
|
||||
<a href="{% url 'teamsnap_view_event' event_id=form.event.data.id team_id=request.user.profile.teamsnapsettings.managed_team.id%}">{{ form.event.data.formatted_title }}</a>
|
||||
<a href="{% url 'teamsnap_view_event' event_id=form.event.data.id team_id=request.user.teamsnapsettings.managed_team.id%}">{{ form.event.data.formatted_title }}</a>
|
||||
</td>
|
||||
<td>
|
||||
{{ form.event.data.start_date | localtime}}
|
||||
77
teamsnap/templates/lineup/multiple_edit.html
Normal file
77
teamsnap/templates/lineup/multiple_edit.html
Normal file
@@ -0,0 +1,77 @@
|
||||
{% extends "base.html" %}{% load static %}
|
||||
{% block title %} Edit Lineups {% endblock %}
|
||||
{#{% block page_heading %}Edit Lineups{% endblock %}#}
|
||||
{#{% block page_subheading %}{% endblock %}#}
|
||||
|
||||
{% block content %}
|
||||
{# <div class="container overflow-scroll mx-0 px-0">#}
|
||||
{# <div class="row flex-row flex-nowrap">#}
|
||||
{# {% for event_data in contexts %}#}
|
||||
{# <div class="col border-start border-end">#}
|
||||
{# <div class = "border-bottom">#}
|
||||
{# <h4>{{ event_data.event.data.formatted_title }}</h4>#}
|
||||
{# <h6 class="text-muted" >{{ event_data.data.start_date }}</h6>#}
|
||||
{# </div>#}
|
||||
{# {% include 'teamsnap/lineup/widgets/lineup.html' with formset_lineup=event_data.formset_lineup formset_bench=event_data.formset_bench event_id=event_data.event.data.id %}#}
|
||||
{# </div>#}
|
||||
{# {% endfor %}#}
|
||||
{# </div>#}
|
||||
{# </div>#}
|
||||
<div class="container overflow-scroll">
|
||||
<div id="popup-messages-content">
|
||||
</div>
|
||||
<div class="row flex-row flex-nowrap">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr class="align-top mx-1">
|
||||
{% for event_data in contexts %}
|
||||
|
||||
<td class="px-1">
|
||||
{% include "lineup/widgets/lineup.html" with event=event_data.event event_id=event_data.event.data.id formset=event_data.formset formset_startinglineup=event_data.formset_startinglineup formset_bench=event_data.formset_bench formset_out=event_data.formset_out formset_startingpositionalonly=event_data.formset_startingpositionalonly %}
|
||||
</td>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block inline_javascript %}
|
||||
{{ block.super }}
|
||||
<script src="{% static 'js/Sortable.js' %}"></script>
|
||||
<script src="{% static 'js/lineup-table.js' %}"></script>
|
||||
<script>
|
||||
window.addEventListener('DOMContentLoaded', () => {
|
||||
/* Run whatever you want */
|
||||
const postForms = document.querySelectorAll("[id^=form-lineup]");
|
||||
for (postForm of postForms) {
|
||||
function handleSubmit(postForm) {
|
||||
postForm.addEventListener("submit", e => {
|
||||
e.preventDefault();
|
||||
formData = new FormData(postForm);
|
||||
fetch(postForm.action, {
|
||||
method: 'POST',
|
||||
body: formData,
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
{#postForm.reset();#}
|
||||
document.querySelector("#popup-messages-content").innerHTML = `<div class="alert alert-dismissible alert-success" role="alert">
|
||||
<strong>Success!</strong> ${data.formatted_title} <strong>saved</strong>.
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div> `
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error('Error:', error);
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
handleSubmit(postForm)
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
{% endblock %}
|
||||
97
teamsnap/templates/lineup/widgets/lineup.html
Normal file
97
teamsnap/templates/lineup/widgets/lineup.html
Normal file
@@ -0,0 +1,97 @@
|
||||
{% load static %}
|
||||
<div class="card mx-auto benchcoach-lineup" style="max-width: 455px" id="benchcoach-lineup-{{ event_id }}">
|
||||
<form method="post" action='{% url 'teamsnap_submit_lineup' team_id=event.data.team_id event_id=event.data.id %}' id="form-lineup-{{ event.data.id }}">
|
||||
{{ formset.management_form }}
|
||||
{% csrf_token %}
|
||||
<div class="border-bottom p-2">
|
||||
<h4 class="card-title text-nowrap">{{ event.data.formatted_title }}</h4>
|
||||
<h6 class="text-muted card-subtitle text-nowrap">{{ event.data.start_date|date:"D, F j, Y g:i A" }}</h6>
|
||||
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<button class="btn btn-primary btn-sm py-0 m-1" onclick="importFromClipboard(this)" type="button"><i class="bi bi-arrow-90deg-down"></i></i><i class="bi bi-file-spreadsheet"></i> </button>
|
||||
</div>
|
||||
<div class="col text-end d-inline">
|
||||
<div class="dropdown">
|
||||
<button class="btn btn-secondary dropdown-toggle btn-sm py-0 m-1" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
<i class="bi bi-share"></i> Export
|
||||
</button>
|
||||
<ul class="dropdown-menu" aria-labelledby="dropdownMenuButton1">
|
||||
<li>
|
||||
<a class="dropdown-item" href="javascript:;" onclick="copyEmailTable(this, '{{ event.data.start_date|date:"D, F j, Y g:i A" }}, {{ event.data.location_name }}, ({% if event.data.game_type == 'Away' %}@{% endif %}{{ event.data.opponent_name }})', '{% for form in formset %}{{ form.member.data.email_addresses.0 }},{% endfor %}')">
|
||||
<i class="bi bi-envelope"></i> Generate Lineup Email
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="dropdown-item" onclick="sendToClipboard(this)">
|
||||
<i class="bi bi-file-spreadsheet"></i> Sheet format to Clipboard
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<button class="btn btn-teamsnap btn-sm py-0 m-1" type="submit">
|
||||
<i class="bi bi-arrow-right"></i>
|
||||
TeamSnap
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-body p-0 m-0">
|
||||
<div>
|
||||
<div class="row m-0">
|
||||
<div class="col border-bottom bg-light">
|
||||
<i class="bi bi-clipboard-check me-1"></i><span class="text-uppercase fw-bold small">Starting Lineup</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class = "row m-0">
|
||||
<div class="col border-bottom px-0">
|
||||
<div class="row mx-0 my-1 position-status">
|
||||
{% with 'P C 1B 2B 3B SS LF CF RF EH DH' as position_list %}
|
||||
{% for position in position_list.split %}
|
||||
<div class="col fw-bold text-center small">
|
||||
<span class="" id="position-status-{{ position }}">{{ position }}</span>
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% endwith %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% include 'lineup/widgets/lineup_table.html' with formset=formset_startinglineup table_id="benchcoach-startinglineup" %}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="row m-0">
|
||||
<div class="col border-bottom bg-light">
|
||||
<i class="bi bi-clipboard-minus me-1"></i><span class="text-uppercase fw-bold small">Starting (Positional Only)</span>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% include 'lineup/widgets/lineup_table.html' with formset=formset_startingpositionalonly table_id="benchcoach-startingpositionalonly" %}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="row m-0">
|
||||
<div class="col border-bottom bg-light">
|
||||
<i class="bi bi-clipboard me-1"></i><span class="text-uppercase fw-bold small">Bench</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% include 'lineup/widgets/lineup_table.html' with formset=formset_bench table_id="benchcoach-bench" %}
|
||||
|
||||
<div>
|
||||
<div class="row m-0">
|
||||
<div class="col border-bottom bg-light">
|
||||
<i class="bi bi-clipboard-x me-1"></i><span class="text-uppercase fw-bold small">Out</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% include 'lineup/widgets/lineup_table.html' with formset=formset_out table_id="benchcoach-out" %}
|
||||
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@@ -66,4 +66,4 @@
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
7
teamsnap/templates/preferences.html
Normal file
7
teamsnap/templates/preferences.html
Normal file
@@ -0,0 +1,7 @@
|
||||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
<form method="post">{% csrf_token %}
|
||||
{{ form.as_p }}
|
||||
<input type="submit" value="Save">
|
||||
</form>
|
||||
{% endblock content %}
|
||||
@@ -1,22 +1,6 @@
|
||||
{% extends "base.html" %}{% load static %}
|
||||
{% block title %} {{ title }}{% endblock %}
|
||||
{% block page_heading %}
|
||||
<div class="row d-none" >
|
||||
<div hidden class="col">
|
||||
<div class="container m-2">
|
||||
<div class="container m-2">
|
||||
<div class="btn-group">
|
||||
<form action="">
|
||||
<a class="btn btn-sm btn-outline-primary text-nowrap" href="{% url 'teamsnap_schedule' team_id=team_id%}?filters=no_past">No Past Events</a>
|
||||
<button class="btn btn-sm btn-outline-primary text-nowrap">Games Only</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
{% load tz %}
|
||||
<div class="">
|
||||
@@ -51,7 +35,7 @@
|
||||
{{ event.data.location_name }}
|
||||
</td>
|
||||
<td>
|
||||
<a class="btn btn-outline-secondary btn-sm" href="{% url 'teamsnap_view_event' event_id=event.data.id team_id=request.user.profile.teamsnapsettings.managed_team.id%}"><i class="bi bi-three-dots"></i></a>
|
||||
<a class="btn btn-outline-secondary btn-sm" href="{% url 'teamsnap_view_event' team_id=event.data.team_id event_id=event.data.id %}"><i class="bi bi-three-dots"></i></a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
@@ -61,4 +45,4 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
@@ -1,27 +0,0 @@
|
||||
{% extends "base.html" %}{% load static %}
|
||||
{% block title %} {{ title }}{% endblock %}
|
||||
{% block page_heading %}Schedule{% endblock %}
|
||||
{% block content %}
|
||||
{% load tz %}
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped table-sm">
|
||||
{# <thead>#}
|
||||
{# </thead>#}
|
||||
<tbody>
|
||||
{% for event in events %}
|
||||
<tr>
|
||||
<td>
|
||||
<a href="{% url 'teamsnap_event' id=event.data.id team_id=schedule.html %}">{{ event.data.formatted_title }}</a>
|
||||
</td>
|
||||
<td>
|
||||
{{ event.data.start_date | localtime}}
|
||||
</td>
|
||||
<td>
|
||||
{{ event.data.location_name }}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -1,150 +0,0 @@
|
||||
{% extends "base.html" %}{% load static %}
|
||||
{% block title %} {{ title }}{% endblock %}
|
||||
{% block page_heading %}{% endblock %}
|
||||
{% block content %}
|
||||
<h3>Dashboard</h3>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md pb-2">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h4>Upcoming Games</h4>
|
||||
</div>
|
||||
<div class="card-body p-0 m-0">
|
||||
|
||||
{% for event, availability_summary in events_availabilities|slice:":4" %}
|
||||
<div class="row m-0 p-2 border-bottom">
|
||||
<div class="col p-0 m-auto" style="flex: 0 0 100px;">
|
||||
<div class="d-inline-flex m-0 p-0">
|
||||
<div class="chart-container" style="height: 100px;width: 100px;">
|
||||
<canvas id="availability-donut-{{ event.data.id }}" class="availability-donut"
|
||||
data-event-id="{{ event.data.id }}"
|
||||
data-available-yes="{{ availability_summary.data.player_going_count }}"
|
||||
data-available-no="{{ availability_summary.data.player_not_going_count }}"
|
||||
data-available-maybe="{{ availability_summary.data.player_maybe_count }}"
|
||||
data-available-unknown="{{ availability_summary.data.player_unknown_count }}"
|
||||
>
|
||||
</canvas></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div>
|
||||
<h4><strong><a class="text-decoration-none text-black" href="{% url 'teamsnap_view_event' team_id=team_id event_id=event.data.id %}">{{ event.data.formatted_title }}</a></strong></h4>
|
||||
<h6 class="text-muted mb-2">{{ event.data.start_date|date:"D, F j, g:i A" }}</h6>
|
||||
<h6 class="text-muted mb-2">{{ event.data.location_name }}</h6>
|
||||
</div>
|
||||
<div class="d-flex">
|
||||
<a class="btn btn-primary btn-sm mx-1" role="button" href="{% url 'teamsnap_edit_lineup' event_ids=event.data.id team_id=request.user.profile.teamsnapsettings.managed_team.id %}">Go to Lineup</a>
|
||||
<form method="get"
|
||||
action="{% url "teamsnap_image_generator_generate" team_id=request.user.profile.teamsnapsettings.managed_team.id event_id=event.data.id %}">
|
||||
<select hidden class="form-select" name="game_id" id="game_id">
|
||||
<optgroup label="Events">
|
||||
<option value="" disabled="disabled">Select an event...</option>
|
||||
<option selected
|
||||
value="{{ event.data.id }}">{{ event.data.formatted_title }}</option>
|
||||
</optgroup>
|
||||
</select>
|
||||
<input hidden class="form-check-input" type="radio" name="background"
|
||||
id="backgroundLocation" checked value="location">
|
||||
<input hidden class="form-check-input" type="radio" name="dimensions" id="square" checked
|
||||
value="1080x1080">
|
||||
<button type="submit" class="btn btn-primary btn-sm"><i class="bi bi-instagram"></i>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md pb-2">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h4>Past Games</h4>
|
||||
</div>
|
||||
<div class="card-body p-0 m-0">
|
||||
|
||||
{% for event in ts_events_past|slice:":4" %}
|
||||
<div class="row m-0 p-2 border-bottom">
|
||||
<div class="col p-0 m-auto rounded-circle bg-light" style="flex: 0 0 100px;">
|
||||
<div class="d-inline-flex m-0 p-0">
|
||||
<div class="d-flex align-items-center justify-content-center" style="height: 100px;width: 100px;">
|
||||
<h4 class="text-center"><strong>{{ event.data.formatted_results }}</strong></h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<h4 class=""><strong><a class="text-decoration-none text-black" href="{% url 'teamsnap_view_event' team_id=team_id event_id=event.data.id %}">{{ event.data.formatted_title }}</a></strong></h4>
|
||||
<h6 class="text-muted mb-2">{{ event.data.start_date|date:"D, F j" }}</h6>
|
||||
{# <h6 class="text-muted mb-2">{{ event.data.location_name }}</h6><a class="btn btn-primary btn-sm" role="button" href="{% url 'teamsnap_edit_lineup' event_ids=event.data.id team_id=request.user.profile.teamsnapsettings.managed_team.id %}">Go to Lineup</a>#}
|
||||
|
||||
<div class="d-flex">
|
||||
<form method="get"
|
||||
action="{% url "teamsnap_image_generator_generate" team_id=request.user.profile.teamsnapsettings.managed_team.id event_id=event.data.id %}">
|
||||
<select hidden class="form-select" name="game_id" id="game_id">
|
||||
<optgroup label="Events">
|
||||
<option value="" disabled="disabled">Select an event...</option>
|
||||
<option selected
|
||||
value="{{ event.data.id }}">{{ event.data.formatted_title }}</option>
|
||||
</optgroup>
|
||||
</select>
|
||||
<input hidden class="form-check-input" type="radio" name="background"
|
||||
id="backgroundLocation" checked value="location">
|
||||
<input hidden class="form-check-input" type="radio" name="dimensions" id="square" checked
|
||||
value="1080x1080">
|
||||
<button type="submit" class="btn btn-primary btn-sm"><i class="bi bi-instagram"></i>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
function donut(ctx, yes_count, maybe_count, no_count, unknown_count) {
|
||||
var style = getComputedStyle(document.body);
|
||||
const myChart = new Chart(ctx, {
|
||||
type: 'doughnut',
|
||||
responsive: 'true',
|
||||
data: {
|
||||
datasets: [{
|
||||
label: 'Availability',
|
||||
labels: [
|
||||
'Yes',
|
||||
'Maybe',
|
||||
'No',
|
||||
'Unknown'
|
||||
],
|
||||
data: [yes_count, maybe_count, no_count, unknown_count],
|
||||
backgroundColor: [
|
||||
style.getPropertyValue('--bs-success'),
|
||||
style.getPropertyValue('--bs-info'),
|
||||
style.getPropertyValue('--bs-danger'),
|
||||
style.getPropertyValue('--bs-secondary')
|
||||
],
|
||||
hoverOffset: 4
|
||||
}]
|
||||
},
|
||||
});
|
||||
|
||||
}
|
||||
for (ctx of document.querySelectorAll('.availability-donut')){
|
||||
donut(ctx,
|
||||
ctx.dataset.availableYes,
|
||||
ctx.dataset.availableMaybe,
|
||||
ctx.dataset.availableNo,
|
||||
ctx.dataset.availableUnknown,
|
||||
)
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
{% endblock %}
|
||||
@@ -1,28 +0,0 @@
|
||||
<div class="card">
|
||||
<div class="row">
|
||||
<div class="text-center my-2">
|
||||
<h1><img class="mx-auto" src="{% static 'benchcoach.svg' %}" style="width: 64px;"/>
|
||||
<strong>Welcome to <span class="text-nowrap">Bench Coach</span></strong>
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="text-center my-2">
|
||||
<div class="col-lg-6 m-auto">
|
||||
<p class="lead mb-4">Quisque at curabitur mollis ornare, malesuada maecenas. Orci elit
|
||||
tristique,
|
||||
malesuada eu pharetra. Est praesent tortor porttitor aptent, amet quisque.</p>
|
||||
{# <div class="d-grid gap-2 d-sm-flex justify-content-sm-center mx-1">#}
|
||||
{# <button class="btn btn-primary" type="button">Login</button><button class="btn btn-outline-secondary" type="button">Sign Up</button>#}
|
||||
{# </div>#}
|
||||
</div>
|
||||
|
||||
<div class="container-sm">
|
||||
{# <ul class="nav nav-pills flex-column mb-auto">#}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1,191 +0,0 @@
|
||||
{% 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>
|
||||
@@ -1,37 +0,0 @@
|
||||
{% extends "base.html" %}{% load static %}
|
||||
{% block title %} Edit Lineups {% endblock %}
|
||||
{#{% block page_heading %}Edit Lineups{% endblock %}#}
|
||||
{#{% block page_subheading %}{% endblock %}#}
|
||||
|
||||
{% block content %}
|
||||
{# <div class="container overflow-scroll mx-0 px-0">#}
|
||||
{# <div class="row flex-row flex-nowrap">#}
|
||||
{# {% for event_data in contexts %}#}
|
||||
{# <div class="col border-start border-end">#}
|
||||
{# <div class = "border-bottom">#}
|
||||
{# <h4>{{ event_data.event.data.formatted_title }}</h4>#}
|
||||
{# <h6 class="text-muted" >{{ event_data.data.start_date }}</h6>#}
|
||||
{# </div>#}
|
||||
{# {% include 'teamsnap/lineup/widgets/lineup.html' with formset_lineup=event_data.formset_lineup formset_bench=event_data.formset_bench event_id=event_data.event.data.id %}#}
|
||||
{# </div>#}
|
||||
{# {% endfor %}#}
|
||||
{# </div>#}
|
||||
{# </div>#}
|
||||
<div class="container overflow-scroll">
|
||||
<div class="row flex-row flex-nowrap">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr class="align-top mx-1">
|
||||
{% for event_data in contexts %}
|
||||
<td class="px-1">
|
||||
{% include "teamsnap/lineup/widgets/lineup.html" with event=event_data.event event_id=event_data.event.data.id formset=event_data.formset formset_startinglineup=event_data.formset_startinglineup formset_bench=event_data.formset_bench formset_out=event_data.formset_out formset_startingpositionalonly=event_data.formset_startingpositionalonly %}
|
||||
</td>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<script src="{% static 'js/Sortable.js' %}"></script>
|
||||
<script src="{% static 'teamsnap/js/lineup-table.js' %}"></script>
|
||||
{% endblock %}
|
||||
@@ -1,77 +0,0 @@
|
||||
<div class="card mx-auto benchcoach-lineup" style="max-width: 455px" id="benchcoach-lineup-{{ event_id }}">
|
||||
<form method="post" action="{% url 'teamsnap_submit_lineup' team_id=team_id event_id=event_id%}">
|
||||
{{ formset.management_form }}
|
||||
{% csrf_token %}
|
||||
<div class="border-bottom p-2">
|
||||
<h4 class="card-title text-nowrap">{{ event.data.formatted_title }}</h4>
|
||||
<h6 class="text-muted card-subtitle text-nowrap">{{ event.data.start_date|date:"D, F j, Y g:i A" }}</h6>
|
||||
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<button class="btn btn-primary btn-sm py-0 m-1" onclick="importFromClipboard(this)" type="button"><i class="bi bi-arrow-90deg-down"></i></i><i class="bi bi-file-spreadsheet"></i> </button>
|
||||
</div>
|
||||
<div class="col text-end">
|
||||
<button class="btn btn-primary btn-sm py-0 m-1" onclick="copyEmailTable(this, '{{ event.data.start_date|date:"D, F j, Y g:i A" }}, {{ event.data.location_name }}, ({% if event.data.game_type == 'Away' %}@{% endif %}{{ event.data.opponent_name }})', '{% for form in formset %}{{ form.member.data.email_addresses.0 }},{% endfor %}')" type="button"><i class="bi bi-arrow-right"></i><i class="bi bi-envelope"></i></button>
|
||||
<button class="btn btn-primary btn-sm py-0 m-1" onclick="sendToClipboard(this)" type="button"><i class="bi bi-arrow-right"></i><i class="bi bi-file-spreadsheet"></i></button>
|
||||
<button class="btn btn-success btn-sm py-0 m-1" type="submit"><i class="bi bi-arrow-right"></i><i class="bi bi-asterisk"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-body p-0 m-0">
|
||||
<div>
|
||||
<div class="row m-0">
|
||||
<div class="col border-bottom bg-light">
|
||||
<i class="bi bi-clipboard-check me-1"></i><span class="text-uppercase fw-bold small">Starting Lineup</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class = "row m-0">
|
||||
<div class="col border-bottom px-0">
|
||||
<div class="row mx-0 my-1 position-status">
|
||||
{% with 'P C 1B 2B 3B SS LF CF RF EH DH' as position_list %}
|
||||
{% for position in position_list.split %}
|
||||
<div class="col fw-bold text-center small">
|
||||
<span class="" id="position-status-{{ position }}">{{ position }}</span>
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% endwith %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% include 'teamsnap/lineup/widgets/lineup_table.html' with formset=formset_startinglineup table_id="benchcoach-startinglineup" %}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="row m-0">
|
||||
<div class="col border-bottom bg-light">
|
||||
<i class="bi bi-clipboard-minus me-1"></i><span class="text-uppercase fw-bold small">Starting (Positional Only)</span>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% include 'teamsnap/lineup/widgets/lineup_table.html' with formset=formset_startingpositionalonly table_id="benchcoach-startingpositionalonly" %}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="row m-0">
|
||||
<div class="col border-bottom bg-light">
|
||||
<i class="bi bi-clipboard me-1"></i><span class="text-uppercase fw-bold small">Bench</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% include 'teamsnap/lineup/widgets/lineup_table.html' with formset=formset_bench table_id="benchcoach-bench" %}
|
||||
|
||||
<div>
|
||||
<div class="row m-0">
|
||||
<div class="col border-bottom bg-light">
|
||||
<i class="bi bi-clipboard-x me-1"></i><span class="text-uppercase fw-bold small">Out</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% include 'teamsnap/lineup/widgets/lineup_table.html' with formset=formset_out table_id="benchcoach-out" %}
|
||||
|
||||
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@@ -1,22 +0,0 @@
|
||||
{% extends "base.html" %}{% load static %}
|
||||
{% block title %} {{ location.data.name }}{% endblock %}
|
||||
{% block page_heading %}{{ location.data.name }}{% endblock %}
|
||||
{% block content %}
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped table-sm">
|
||||
{# <thead>#}
|
||||
{# </thead>#}
|
||||
<tbody>
|
||||
{% for key, value in location.data.items %}
|
||||
<tr>
|
||||
<th scope="col">
|
||||
{{ key }}
|
||||
</th>
|
||||
<td>
|
||||
{{ value }}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endblock %}
|
||||
@@ -1,22 +0,0 @@
|
||||
{% extends "base.html" %}{% load static %}
|
||||
{% block title %} {{ opponent.data.name }}{% endblock %}
|
||||
{% block page_heading %}{{ opponent.data.name }}{% endblock %}
|
||||
{% block content %}
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped table-sm">
|
||||
{# <thead>#}
|
||||
{# </thead>#}
|
||||
<tbody>
|
||||
{% for key, value in opponent.data.items %}
|
||||
<tr>
|
||||
<th scope="col">
|
||||
{{ key }}
|
||||
</th>
|
||||
<td>
|
||||
{{ value }}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endblock %}
|
||||
@@ -1,22 +0,0 @@
|
||||
{% extends 'base.html' %}
|
||||
{% block content %}
|
||||
<form method="post">
|
||||
{{ formset.management_form }}{% csrf_token %}
|
||||
<table class="table">
|
||||
<tr>
|
||||
{% for _, field in formset.0.base_fields.items %}
|
||||
<th>{{ field.label }}</th>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
|
||||
{% for form in formset %}
|
||||
<tr>
|
||||
{% for field in form %}
|
||||
<td>{{ field }}</td>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
<input type="submit" value="Submit">
|
||||
</form>
|
||||
{% endblock %}
|
||||
@@ -1,8 +0,0 @@
|
||||
<form method="post" id="formSync" action="{% url 'sync from teamsnap' %}">{% csrf_token %}
|
||||
<input type="hidden" name="object_name" value="{{ object_name }}">
|
||||
<input type="hidden" name="object_id" value={{ object_id }}>
|
||||
<input type="hidden" name="next" value="{{ next }}">
|
||||
<button type="submit" value="update_event" class="btn btn-sm btn-outline-secondary d-xl-flex align-items-xl-center mx-1">
|
||||
<i class="bi bi-arrow-clockwise"></i><i class="bi bi-asterisk"></i>
|
||||
</button>
|
||||
</form>
|
||||
Reference in New Issue
Block a user