From 7fd93c0e1573e213106a7b8d84bebea8c8d198f3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ji=C5=99=C3=AD=20Setni=C4=8Dka?= <setnicka@seznam.cz>
Date: Sat, 19 Feb 2022 20:02:21 +0100
Subject: [PATCH] =?UTF-8?q?V=C3=BDsledkovky=20a=20seznamy=20=C3=BA=C4=8Das?=
 =?UTF-8?q?tn=C3=ADk=C5=AF:=20Exporty=20um=C3=AD=20volit=20sloupce=20pro?=
 =?UTF-8?q?=20export?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Issue #182
---
 mo/web/org_contest.py                  |  4 ++--
 mo/web/org_score.py                    | 12 ++++++++----
 mo/web/templates/org_generic_list.html |  8 ++++++++
 3 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/mo/web/org_contest.py b/mo/web/org_contest.py
index 355c4721..fccf0413 100644
--- a/mo/web/org_contest.py
+++ b/mo/web/org_contest.py
@@ -552,7 +552,7 @@ def org_generic_list(round_id: Optional[int] = None, hier_id: Optional[int] = No
         )
     else:
         table = make_contestant_table(query, round)
-        return table.send_as(format)
+        return table.send_as(format, args=request.args)
 
 
 contest_list_columns = (
@@ -641,7 +641,7 @@ def make_contestant_table(query: Query, round: db.Round, add_checkbox: bool = Fa
 
     cols: List[Column] = list(contest_list_columns)
     if add_checkbox:
-        cols = [Column(key='checkbox', name=' ', title=' ')] + cols
+        cols = [Column(key='checkbox', name=' ', title=' ', in_export=None)] + cols
     if add_contest_column:
         cols.append(Column(key='region_code', name='kod_oblasti', title=round.get_level().name.title()))
 
diff --git a/mo/web/org_score.py b/mo/web/org_score.py
index c4ecdb76..4f6eafef 100644
--- a/mo/web/org_score.py
+++ b/mo/web/org_score.py
@@ -144,11 +144,13 @@ def org_score(round_id: Optional[int] = None, hier_id: Optional[int] = None, ct_
     columns = [
         Column(key='order',         name='poradi',          title='Pořadí'),
         Column(key='status',        name='stav',            title='Stav (vítěz, …)', in_html=False),
-        Column(key='participant',   name='ucastnik',        title='Účastník'),
+        Column(key='participant',   name='ucastnik',        title='Účastník',       in_export=False),
+        Column(key='first_name',    name='krestni',         title='Křestní jméno',  in_html=False),
+        Column(key='last_name',     name='prijmeni',        title='Příjmení',       in_html=False),
         Column(key='email',         name='email',           title='E-mail',         in_html=False),
     ]
     if not ct_id:
-        columns.append(Column(key='contest', name='oblast', title=round.get_level().name.title()))
+        columns.append(Column(key='contest', name='oblast', title='Soutěžní ' + round.get_level().name))
     columns.extend([
         Column(key='pion_place',    name='soutezni_misto',  title='Soutěžní místo', in_html=False),
         Column(key='school',        name='skola',           title='Škola'),
@@ -171,7 +173,7 @@ def org_score(round_id: Optional[int] = None, hier_id: Optional[int] = None, ct_
     columns.append(Column(key='total_points', name='celkove_body', title='Celkové body'))
     if is_edit:
         columns.append(Column(key='suborder', name='zjednoznacneni_poradi', title='Zjednoznačnění'))
-    # columns.append(Column(key='order_key', name='order_key', title='Třídící klíč'))
+    columns.append(Column(key='order_key', name='order_key', title='Třídící klíč', in_html=False, in_export=False))
 
     # Construct rows
     table_rows = []
@@ -197,6 +199,8 @@ def org_score(round_id: Optional[int] = None, hier_id: Optional[int] = None, ct_
             'order':        order_cell,
             'status':       status,
             'user':         user,
+            'first_name':   user.first_name,
+            'last_name':    user.last_name,
             'email':        user.email,
             'participant':  cell_pion_link(user, local_pion_ct_id, user.full_name()),
             'contest':      CellLink(pion.contest.place.name or "?", url_for('org_contest', ct_id=pion.contest_id)),
@@ -253,7 +257,7 @@ def org_score(round_id: Optional[int] = None, hier_id: Optional[int] = None, ct_
             edit_form=edit_form, snapshot_form=snapshot_form,
         )
     else:
-        return table.send_as(format)
+        return table.send_as(format, args=request.args)
 
 
 class SetFinalScoretableForm(FlaskForm):
diff --git a/mo/web/templates/org_generic_list.html b/mo/web/templates/org_generic_list.html
index 379c7a3a..40785f47 100644
--- a/mo/web/templates/org_generic_list.html
+++ b/mo/web/templates/org_generic_list.html
@@ -63,6 +63,14 @@
 		Celkem <b>{{count|inflected('nalezený účastník', 'nalezení účastníci', 'nalezených účastníků')}}</b>.
 		{% endif %}
 	</div>
+	<div class="form-row">
+		<div class="collapsible"><input type="checkbox" class="toggle" id="column-selection-toggle">
+			<label for="column-selection-toggle" class="toggle toggle-small">Vybrat sloupce pro stažení</label>
+			<div class="collapsible-inner"><div class="form-frame">
+				{{ table.get_columns_checkboxes(line_prefix="\t\t\t\t", args=request.args) }}
+			</div></div>
+		</div>
+	</div>
 </form>
 </div>
 
-- 
GitLab