From 39eae81d0fce2a9acbaa550932d4868ae9948184 Mon Sep 17 00:00:00 2001
From: Martin Mares <mj@ucw.cz>
Date: Mon, 12 Apr 2021 16:46:39 +0200
Subject: [PATCH] =?UTF-8?q?Export=20seznamu=20=C3=BA=C4=8Dastn=C3=ADk?=
 =?UTF-8?q?=C5=AF=20uv=C3=A1d=C3=AD=20i=20user=5Fid?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

... aby bylo možné zkonstruovat bodovací tabulku bez stahování vzoru
a matchování účastníků podle jmen. Hodí se v MO-P.

Closes #202.
---
 mo/web/org_contest.py | 13 ++++++++-----
 mo/web/org_round.py   |  2 +-
 2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/mo/web/org_contest.py b/mo/web/org_contest.py
index d5710d50..f9bdb12c 100644
--- a/mo/web/org_contest.py
+++ b/mo/web/org_contest.py
@@ -480,7 +480,7 @@ def org_contest_list(id: int, site_id: Optional[int] = None):
             filter=filter, count=count, action_form=action_form,
         )
     else:
-        table = make_contestant_table(query)
+        table = make_contestant_table(query, is_export=True)
         return table.send_as(format)
 
 
@@ -535,7 +535,7 @@ def get_contestants_query(
     return query
 
 
-def make_contestant_table(query: Query, add_checkbox: bool = False, add_contest_column: bool = False):
+def make_contestant_table(query: Query, add_checkbox: bool = False, add_contest_column: bool = False, is_export: bool = False):
     ctants = query.all()
 
     rows: List[Row] = []
@@ -550,6 +550,7 @@ def make_contestant_table(query: Query, add_checkbox: bool = False, add_contest_
         rows.append(Row(
             keys={
                 'sort_key': u.sort_key(),
+                'user_id': u.user_id,
                 'first_name': cell_pion_link(u, pion.contest_id, u.first_name),
                 'last_name': cell_pion_link(u, pion.contest_id, u.last_name),
                 'email': cell_email_link(u),
@@ -567,11 +568,13 @@ def make_contestant_table(query: Query, add_checkbox: bool = False, add_contest_
 
     rows.sort(key=lambda r: r.keys['sort_key'])
 
-    cols: Sequence[Column] = contest_list_columns
+    cols: List[Column] = list(contest_list_columns)
     if add_checkbox:
-        cols = [Column(key='checkbox', name=' ', title=' ')] + list(cols)
+        cols = [Column(key='checkbox', name=' ', title=' ')] + cols
     if add_contest_column:
-        cols = list(cols) + [Column(key='region_code', name='kod_oblasti', title='Oblast')]
+        cols.append(Column(key='region_code', name='kod_oblasti', title='Oblast'))
+    if is_export:
+        cols.append(Column(key='user_id', name='user_id'))
 
     return Table(
         columns=cols,
diff --git a/mo/web/org_round.py b/mo/web/org_round.py
index 8d8b16ff..c0c69847 100644
--- a/mo/web/org_round.py
+++ b/mo/web/org_round.py
@@ -389,7 +389,7 @@ def org_round_list(id: int):
             filter=filter, count=count, action_form=action_form,
         )
     else:
-        table = make_contestant_table(query)
+        table = make_contestant_table(query, is_export=True)
         return table.send_as(format)
 
 
-- 
GitLab