Skip to content
Snippets Groups Projects
Commit 7c5953ae authored by Martin Mareš's avatar Martin Mareš
Browse files

Skript na export seznamu organizátorů a jejich rolí

parent 768be576
No related branches found
No related tags found
No related merge requests found
#!/usr/bin/env python3
# Přehled všech organizátorských účtů
from dataclasses import dataclass
from sqlalchemy.orm import joinedload
import sys
import mo.csv
import mo.db as db
sess = db.get_session()
orgs = (sess.query(db.User)
.filter_by(is_org=True)
.options(joinedload(db.User.roles).joinedload(db.UserRole.place))
.all())
@dataclass
class Row:
jmeno: str
email: str
last_login: str
role: str = ""
kod_souteze: str = ""
kod_mista: str = ""
misto: str = ""
output = []
for user in sorted(orgs, key=lambda u: u.sort_key()):
o = Row(
jmeno=user.full_name(),
email=user.email,
last_login=(user.last_login_at.strftime('%Y-%m-%d') if user.last_login_at is not None else '-'),
)
if user.roles:
for r in user.roles:
o.role = r.role
o.kod_souteze = f"{r.category or '*'}-{r.year or '*'}-{r.seq or '*'}"
p = r.place
o.kod_mista = p.get_code()
o.misto = p.type_name() + " " + p.name
output.append(o)
else:
o.role = '-'
output.append(o)
mo.csv.write(sys.stdout, mo.csv.FileFormat.en_csv, Row, output)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment