Compare commits

...

2 Commits

Author SHA1 Message Date
Emmy D'Anello c4ec6a6f29
Don't delete extra jury lines on Google Sheets
Signed-off-by: Emmy D'Anello <emmy.danello@animath.fr>
2024-03-31 15:34:21 +02:00
Emmy D'Anello 779aec5e55
Don't use Google Sheets in tests (for now)
Signed-off-by: Emmy D'Anello <emmy.danello@animath.fr>
2024-03-31 15:30:17 +02:00
3 changed files with 12 additions and 9 deletions

View File

@ -3,6 +3,7 @@
from collections import OrderedDict
import json
import os
from random import randint, shuffle
from asgiref.sync import sync_to_async
@ -990,7 +991,9 @@ class DrawConsumer(AsyncJsonWebsocketConsumer):
if await pool.is_exportable():
await pool.export()
await sync_to_async(self.tournament.update_ranking_spreadsheet)()
# Update Google Sheets final sheet
if os.getenv('GOOGLE_PRIVATE_KEY_ID', None):
await sync_to_async(self.tournament.update_ranking_spreadsheet)()
@ensure_orga
async def continue_final(self, **kwargs):

View File

@ -1,6 +1,8 @@
# Copyright (C) 2023 by Animath
# SPDX-License-Identifier: GPL-3.0-or-later
import os
from asgiref.sync import sync_to_async
from django.conf import settings
from django.core.validators import MaxValueValidator, MinValueValidator
@ -399,7 +401,9 @@ class Pool(models.Model):
passage.observer = tds[line[3]].participation
await passage.asave()
await sync_to_async(self.associated_pool.update_spreadsheet)()
# Update Google Sheets
if os.getenv('GOOGLE_PRIVATE_KEY_ID', None):
await sync_to_async(self.associated_pool.update_spreadsheet)()
return self.associated_pool

View File

@ -635,7 +635,7 @@ class Tournament(models.Model):
else:
tweak2_qs.update_or_create(defaults={'diff': tweak2_nb},
create_defaults={'diff': tweak2_nb, 'pool': pool2,
'participation': participation})
'participation': participation})
def get_absolute_url(self):
return reverse_lazy("participation:tournament_detail", args=(self.pk,))
@ -1269,13 +1269,9 @@ class Pool(models.Model):
max_row = average_cell.row - 1
juries_visible = worksheet.get(f"A{min_row}:B{max_row}")
juries_visible = [t for t in juries_visible if t and len(t) == 2]
rows_to_delete = []
for i, (_jury_name, jury_id) in enumerate(juries_visible):
for i, (jury_name, jury_id) in enumerate(juries_visible):
if not jury_id.isnumeric() or int(jury_id) not in self.juries.values_list("id", flat=True):
rows_to_delete.append(min_row + i)
for row_to_delete in rows_to_delete:
worksheet.delete_rows(row_to_delete)
max_row -= len(rows_to_delete)
print(f"Warning: {jury_name} ({jury_id}) appears on the sheet but is not part of the jury.")
for jury in self.juries.all():
if str(jury.id) not in list(map(lambda x: x[1], juries_visible)):