Project 'mj/mo-submit' was moved to 'mo-p/osmo'. Please update any links and bookmarks that may still have the old path.
Select Git revision
Martin Mareš authored
test-init 5.60 KiB
#!/bin/bash
set -e
if [ $# != 2 -o "$1" = "--help" ] ; then
cat <<AMEN
Použití: $0 <jméno-databáze> <datový-adresář>
POZOR: Databáze i datový adresář jsou kompletně přepsané!!!
Obojí musí odpovídat nastavení v mo.config.
AMEN
exit 1
fi
DB="$1"
DATA="$2"
T_GREEN="$(tput setaf 2)"
T_NORMAL="$(tput sgr0)"
PATH="./bin:$PATH"
progress ()
{
echo "${T_GREEN}>>> $1${T_NORMAL}"
}
run ()
{
echo "+ $@"
"$@"
}
init_data ()
{
progress "Inicializuji databázi"
psql "$DB" <db/drop-all.sql
psql "$DB" <db/db.ddl
progress "Inicializuji datový adresář"
rm -rf "$DATA"
run init-data-dir "$DATA"
progress "Zakládám regiony"
run init-regions
progress "Zakládám školy"
run init-schools
progress "Zkracuji školy"
run shorten-schools
}
init_codes ()
{
progress "Přiděluji školám kódy"
run test-school-code --red-izo 600039811 --code zs-sutka # ZŠ Na Šutce, P8
run test-school-code --red-izo 691008736 --code zs-brno # Scio ZŠ Brno
run test-school-code --red-izo 600005933 --code gulz # G U Libeň. zámku, P8
run test-school-code --red-izo 600013481 --code gkj # G tř. Kpt. Jaroše, Brno
}
init_users ()
{
progress "Zakládám uživatele"
run create-user admin@test Hlavní Administrátor --admin --passwd brum
run create-user cg@test Celostátní Garant --org --passwd brum
run add-role --email cg@test --role garant
run create-user kg@test Krajský Garant --org --passwd brum
run add-role --email kg@test --role garant_kraj --cat A --place A
run create-user og@test Okresní Garant --org --passwd brum
run add-role --email og@test --role garant_okres --cat Z --place P8
run create-user sg-sutka@test Garant 'ZŠ Šutka' --org --passwd brum
run add-role --email sg-sutka@test --role garant_skola --place zs-sutka
run create-user sg-brno@test Garant 'ZŠ Brno' --org --passwd brum
run add-role --email sg-brno@test --role garant_skola --place zs-brno
run create-user sg-gulz@test Garant 'G Libeň' --org --passwd brum
run add-role --email sg-gulz@test --role garant_skola --place gulz
run create-user sg-gkj@test Garant 'G Jaroše' --org --passwd brum
run add-role --email sg-gkj@test --role garant_skola --place gkj
run create-user ko@test Krajský Opravovatel --org --passwd brum
run add-role --email ko@test --role opravovatel --place A
run create-user so@test Školní Opravovatel --org --passwd brum
run add-role --email so@test --role opravovatel --cat Z --place zs-sutka
run create-user sd@test Školní Dozor --org --passwd brum
run add-role --email sd@test --role dozor --cat Z --place zs-sutka
run create-user u0@test Nultý Účastník --passwd brum
run create-user u1@test První Účastník --passwd brum
run create-user u2@test Druhý Účastník --passwd brum
run create-user u3@test Třetí Účastník --passwd brum
run create-user u4@test Čtvrtý Účastník --passwd brum
run create-user u5@test Pátý Účastník --passwd brum
}
init_contests ()
{
progress "Zakládám soutěže"
run init-year 42
# init-year zakládá krajská a vyšší kola, zde doplňujeme nižší
run create-contests 42-A-1 --region gulz
run create-contests 42-A-1 --region gkj
run create-contests 42-A-2 --region gulz
run create-contests 42-A-2 --region gkj
run create-contests 42-Z7-1 --region zs-sutka
run create-contests 42-Z7-1 --region zs-brno
run create-contests 42-Z7-2 --region P8
}
init_tasks()
{
progress "Zakládám úlohy"
local R
for R in 42-A-{1,2,3,4a,4b} 42-Z7-{1,2} ; do
run create-tasks $R $(echo $R | cut -d- -f3) 4 --points 10
done
}
init_contestants ()
{
progress "Přihlašuji soutěžící"
# u0 zůstává volný na testování přihlášek
run register-year --email u1@test --year 42 --school gulz --grade 3/4 --birth-year=2002
run register-contest --email u1@test --round 42-A-1 --region gulz
run register-contest --email u1@test --round 42-A-2 --region gulz
run register-contest --email u1@test --round 42-A-3 --region A
run register-contest --email u1@test --round 42-A-4a --region CZ
run register-contest --email u1@test --round 42-P-1 --region CZ
run register-year --email u2@test --year 42 --school gkj --grade 4/4 --birth-year=2001
run register-contest --email u2@test --round 42-A-1 --region gkj
run register-contest --email u2@test --round 42-A-2 --region gkj
# V krajském kole soutěží v jiném kraji, než kam patří
run register-contest --email u2@test --round 42-A-3 --region B --site A
run register-contest --email u2@test --round 42-A-4a --region CZ
run register-contest --email u2@test --round 42-P-1 --region CZ
run register-year --email u3@test --year 42 --school zs-sutka --grade 7 --birth-year=2010
run register-contest --email u3@test --round 42-Z7-1 --region zs-sutka
# V okresním kole soutěží na své škole
run register-contest --email u3@test --round 42-Z7-2 --region P8 --site zs-sutka
run register-year --email u4@test --year 42 --school zs-sutka --grade 7 --birth-year=2011
run register-contest --email u4@test --round 42-Z7-1 --region zs-sutka
run register-contest --email u4@test --round 42-Z7-2 --region P8
# Na zs-brno registrujeme jen do prvního kola, ať se dá testovat zakládání
# soutěží a postupy.
run register-year --email u5@test --year 42 --school zs-brno --grade 7 --birth-year=2011
run register-contest --email u5@test --round 42-Z7-1 --region zs-brno
}
init_states ()
{
progress "Generuji PDF zadání"
echo '# Zadání úlohy' >"$DATA/tmp/zadani.md"
pandoc "$DATA/tmp/zadani.md" -o "$DATA/tmp/zadani.pdf"
progress "Nastavuji stav soutěží"
run test-state preparing --statement "$DATA/tmp/zadani.pdf"
}
init_data
init_codes
init_users
init_contests
init_tasks
init_contestants
init_states