Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
44c344cd1f
|
|||
|
96a75eb4bb
|
|||
|
000625c727
|
|||
| d07dd3208d | |||
| c79aff9b4f |
@@ -12,6 +12,8 @@ ARG BUILD_ENVIRONMENT=local
|
|||||||
RUN apt-get update && apt-get install --no-install-recommends -y \
|
RUN apt-get update && apt-get install --no-install-recommends -y \
|
||||||
# dependencies for building Python packages
|
# dependencies for building Python packages
|
||||||
build-essential \
|
build-essential \
|
||||||
|
# git
|
||||||
|
git \
|
||||||
# psycopg2 dependencies
|
# psycopg2 dependencies
|
||||||
libpq-dev
|
libpq-dev
|
||||||
|
|
||||||
@@ -41,6 +43,8 @@ RUN apt-get update && apt-get install --no-install-recommends -y \
|
|||||||
libpq-dev \
|
libpq-dev \
|
||||||
# Translations dependencies
|
# Translations dependencies
|
||||||
gettext \
|
gettext \
|
||||||
|
# git for submodules
|
||||||
|
git \
|
||||||
# cleaning up unused files
|
# cleaning up unused files
|
||||||
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|||||||
@@ -14,6 +14,8 @@ ARG BUILD_ENVIRONMENT=production
|
|||||||
RUN apt-get update && apt-get install --no-install-recommends -y \
|
RUN apt-get update && apt-get install --no-install-recommends -y \
|
||||||
# dependencies for building Python packages
|
# dependencies for building Python packages
|
||||||
build-essential \
|
build-essential \
|
||||||
|
# git for submodules
|
||||||
|
git \
|
||||||
# psycopg2 dependencies
|
# psycopg2 dependencies
|
||||||
libpq-dev
|
libpq-dev
|
||||||
|
|
||||||
@@ -47,6 +49,8 @@ RUN apt-get update && apt-get install --no-install-recommends -y \
|
|||||||
libpq-dev \
|
libpq-dev \
|
||||||
# Translations dependencies
|
# Translations dependencies
|
||||||
gettext \
|
gettext \
|
||||||
|
# git for submodules
|
||||||
|
git \
|
||||||
# cleaning up unused files
|
# cleaning up unused files
|
||||||
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|||||||
@@ -133,7 +133,10 @@ def gen_image(
|
|||||||
|
|
||||||
# First line: Date
|
# First line: Date
|
||||||
font = ImageFont.truetype(font_regular_path, 62)
|
font = ImageFont.truetype(font_regular_path, 62)
|
||||||
text = f"{date:%a, %B %-d %-I:%M %p}".upper()
|
if len(f"{date:%B}") <= 4:
|
||||||
|
text = f"{date:%a, %B %-d %-I:%M %p}".upper()
|
||||||
|
else:
|
||||||
|
text = f"{date:%a, %b %-d %-I:%M %p}".upper()
|
||||||
# text = date
|
# text = date
|
||||||
loc = (1050, 280)
|
loc = (1050, 280)
|
||||||
section_info_draw.text(loc, text, (14, 42, 28), font=font, anchor="ra")
|
section_info_draw.text(loc, text, (14, 42, 28), font=font, anchor="ra")
|
||||||
@@ -267,7 +270,10 @@ def gen_results_image(
|
|||||||
)
|
)
|
||||||
|
|
||||||
# Second line: Date
|
# Second line: Date
|
||||||
text = f"{date:%a, %B %-d %-I:%M %p}".upper()
|
if len(f"{date:%B}") <= 4:
|
||||||
|
text = f"{date:%a, %B %-d %-I:%M %p}".upper()
|
||||||
|
else:
|
||||||
|
text = f"{date:%a, %b %-d %-I:%M %p}".upper()
|
||||||
# text = date
|
# text = date
|
||||||
font = ImageFont.truetype(font_condensed_path, 34)
|
font = ImageFont.truetype(font_condensed_path, 34)
|
||||||
loc = (1050, 355)
|
loc = (1050, 355)
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ def get_matchup_image(request, team_id, event_id, dimensions=None, background=No
|
|||||||
image = gen_image(
|
image = gen_image(
|
||||||
**game_info, background=BACKGROUND, width=width, height=height
|
**game_info, background=BACKGROUND, width=width, height=height
|
||||||
)
|
)
|
||||||
elif game_info["runs_for"] and game_info["runs_against"]:
|
elif game_info["runs_for"] or game_info["runs_against"]:
|
||||||
image = gen_results_image(
|
image = gen_results_image(
|
||||||
**game_info, background=BACKGROUND, width=width, height=height
|
**game_info, background=BACKGROUND, width=width, height=height
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ django-redis==5.2.0 # https://github.com/jazzband/django-redis
|
|||||||
|
|
||||||
api-client
|
api-client
|
||||||
|
|
||||||
-e git+ssh://gituser@home.ascorrea.com/~/pyteamsnap.git#egg=pyteamsnap
|
-e git+https://gitea.ascorrea.com/asc/pyteamsnap@2022#egg=pyteamsnap
|
||||||
-e git+ssh://gituser@home.ascorrea.com/~/gamescrapyr.git#egg=gamescrapyr
|
-e git+https://gitea.ascorrea.com/asc/gamescrapyr.git#egg=gamescrapyr
|
||||||
|
|
||||||
beautifulsoup4==4.11.1
|
beautifulsoup4==4.11.1
|
||||||
|
|||||||
@@ -37,6 +37,14 @@
|
|||||||
postSubmit.addEventListener("click", e => {
|
postSubmit.addEventListener("click", e => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
formData = new FormData(postSubmit.form);
|
formData = new FormData(postSubmit.form);
|
||||||
|
for (player_lineup_row of postSubmit.form.querySelectorAll("[class=player-lineup-row]")) {
|
||||||
|
event_lineup_entry_id_input = player_lineup_row.querySelector('[id$="event_lineup_entry_id"]')
|
||||||
|
sequence = player_lineup_row.querySelector('[id$="sequence"]').value
|
||||||
|
position = player_lineup_row.dataset['position']
|
||||||
|
if (position == '' && sequence == '') {
|
||||||
|
event_lineup_entry_id_input.value = ''
|
||||||
|
}
|
||||||
|
}
|
||||||
fetch(postSubmit.formAction, {
|
fetch(postSubmit.formAction, {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
body: formData,
|
body: formData,
|
||||||
@@ -44,10 +52,20 @@
|
|||||||
.then(response => response)
|
.then(response => response)
|
||||||
.then(data => {
|
.then(data => {
|
||||||
if (data.ok) {
|
if (data.ok) {
|
||||||
|
data.json().then(response_data => {
|
||||||
|
for (event_lineup_entry of response_data){
|
||||||
|
player_lineup_row = postSubmit.form.querySelector(`[data-player-id="${event_lineup_entry['member_id']}"]`)
|
||||||
|
event_lineup_entry_id_input = player_lineup_row.querySelector('[id$="event_lineup_entry_id"]')
|
||||||
|
event_lineup_entry_id_input.value = event_lineup_entry['id']
|
||||||
|
event_lineup_id_input = player_lineup_row.querySelector('[id$="event_lineup_id"]')
|
||||||
|
event_lineup_id_input.value = event_lineup_entry['event_lineup_id']
|
||||||
|
}
|
||||||
|
})
|
||||||
document.querySelector("#popup-messages-content").innerHTML = `<div class="alert alert-dismissible alert-success" role="alert">
|
document.querySelector("#popup-messages-content").innerHTML = `<div class="alert alert-dismissible alert-success" role="alert">
|
||||||
<strong>Success!</strong>
|
<strong>Success!</strong>
|
||||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||||
</div> `
|
</div> `
|
||||||
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
document.querySelector("#popup-messages-content").innerHTML = `<div class="alert alert-dismissible alert-danger" role="alert">
|
document.querySelector("#popup-messages-content").innerHTML = `<div class="alert alert-dismissible alert-danger" role="alert">
|
||||||
@@ -57,7 +75,10 @@
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
console.error('Error:', error);
|
document.querySelector("#popup-messages-content").innerHTML = `<div class="alert alert-dismissible alert-danger" role="alert">
|
||||||
|
<strong>Not Success! Some other error! </strong>
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||||
|
</div> `
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<table class="table table-sm my-0 table-{{ table_id }}" style="min-height: 1rem">
|
<table class="table table-sm my-0 table-{{ table_id }}" style="min-height: 1rem">
|
||||||
<tbody class="tbody-{{ table_id }}">
|
<tbody class="tbody-{{ table_id }}">
|
||||||
{% for form in formset %}
|
{% for form in formset %}
|
||||||
<tr data-player-id="{{ form.member.data.id }}"
|
<tr class="player-lineup-row" data-player-id="{{ form.member.data.id }}"
|
||||||
data-position="{{ form.label.value }}"
|
data-position="{{ form.label.value }}"
|
||||||
data-order="{{ form.sequence.value }}"
|
data-order="{{ form.sequence.value }}"
|
||||||
data-player-name="{{ form.member.data.last_name }}, {{ form.member.data.first_name }}"
|
data-player-name="{{ form.member.data.last_name }}, {{ form.member.data.first_name }}"
|
||||||
@@ -16,14 +16,12 @@
|
|||||||
{{ form.position_only.as_hidden }}
|
{{ form.position_only.as_hidden }}
|
||||||
{{ form.label.as_hidden }}
|
{{ form.label.as_hidden }}
|
||||||
{{ form.member_name.as_hidden }}
|
{{ form.member_name.as_hidden }}
|
||||||
|
{{ form.sequence.as_hidden }}
|
||||||
<th class="col-1" id="sequence-member-{{ form.member.data.id }}">
|
<th class="col-1" id="sequence-member-{{ form.member.data.id }}">
|
||||||
{{ form.sequence.value | add:"1" }}
|
{{ form.sequence.value | add:"1" }}
|
||||||
</th>
|
</th>
|
||||||
<td class="col-1">
|
<td class="col-1">
|
||||||
<div class="mx-1">
|
<div class="mx-1">
|
||||||
<span id="player-order-form-{{ form.member.id }}" class="lineup-sequence-form">
|
|
||||||
{{ form.sequence.as_hidden }}
|
|
||||||
</span>
|
|
||||||
|
|
||||||
<span id="player-order-{{ form.member.id }}" class="lineup-sequence-value">
|
<span id="player-order-{{ form.member.id }}" class="lineup-sequence-value">
|
||||||
{% if form.order.value > 0 %}{{ form.order.value | add:"1" }}{% endif %}
|
{% if form.order.value > 0 %}{{ form.order.value | add:"1" }}{% endif %}
|
||||||
@@ -33,7 +31,6 @@
|
|||||||
{% if form.availability.data.status_code == 2 %}
|
{% if form.availability.data.status_code == 2 %}
|
||||||
<i class="bi bi-question-circle-fill text-info"></i>
|
<i class="bi bi-question-circle-fill text-info"></i>
|
||||||
{% elif form.availability.data.status_code == 1 %}
|
{% elif form.availability.data.status_code == 1 %}
|
||||||
{# <i class="bi bi-check-circle-fill text-success"></i>#}
|
|
||||||
<i class="bi bi-check-circle-fill text-success"></i>
|
<i class="bi bi-check-circle-fill text-success"></i>
|
||||||
{% elif form.availability.data.status_code == 0 %}
|
{% elif form.availability.data.status_code == 0 %}
|
||||||
<i class="bi bi-x-circle-fill text-danger"></i>
|
<i class="bi bi-x-circle-fill text-danger"></i>
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ def edit_lineup(request, event_ids, team_id):
|
|||||||
EventLineupEntry,
|
EventLineupEntry,
|
||||||
Member,
|
Member,
|
||||||
)
|
)
|
||||||
|
|
||||||
from teamsnap.forms import LineupEntryFormset
|
from teamsnap.forms import LineupEntryFormset
|
||||||
|
|
||||||
client = get_teamsnap_client(request)
|
client = get_teamsnap_client(request)
|
||||||
@@ -199,11 +200,11 @@ def edit_lineup(request, event_ids, team_id):
|
|||||||
|
|
||||||
|
|
||||||
def submit_lineup(request, team_id, event_id):
|
def submit_lineup(request, team_id, event_id):
|
||||||
from pyteamsnap.objects import Event, EventLineup, EventLineupEntry
|
from pyteamsnap.objects import EventLineup, EventLineupEntry
|
||||||
|
|
||||||
from teamsnap.forms import LineupEntryFormset
|
from teamsnap.forms import LineupEntryFormset
|
||||||
|
|
||||||
client = get_teamsnap_client(request)
|
client = get_teamsnap_client(request)
|
||||||
ts_event = Event.get(client, event_id)
|
|
||||||
ts_lineup = EventLineup.search(client, event_id=event_id)
|
ts_lineup = EventLineup.search(client, event_id=event_id)
|
||||||
event_lineup_id = ts_lineup[0].data["id"]
|
event_lineup_id = ts_lineup[0].data["id"]
|
||||||
if request.GET:
|
if request.GET:
|
||||||
@@ -247,7 +248,8 @@ def submit_lineup(request, team_id, event_id):
|
|||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
pass
|
pass
|
||||||
return JsonResponse(ts_event.data)
|
ts_event_lineup_entries = EventLineupEntry.search(client, event_id=event_id)
|
||||||
|
return JsonResponse([lue.data for lue in ts_event_lineup_entries], safe=False)
|
||||||
return HttpResponseServerError
|
return HttpResponseServerError
|
||||||
|
|
||||||
|
|
||||||
@@ -258,7 +260,6 @@ def multi_lineup_choose(request, team_id=None):
|
|||||||
team_id=request.user.teamsnap_preferences.managed_team_id,
|
team_id=request.user.teamsnap_preferences.managed_team_id,
|
||||||
)
|
)
|
||||||
from django.forms import formset_factory
|
from django.forms import formset_factory
|
||||||
|
|
||||||
from pyteamsnap.objects import Event
|
from pyteamsnap.objects import Event
|
||||||
|
|
||||||
from .forms import EventChooseForm
|
from .forms import EventChooseForm
|
||||||
|
|||||||
Reference in New Issue
Block a user