From e0edb2637b3a5f09a4925ee05bc8258c99f738aa Mon Sep 17 00:00:00 2001 From: Martin Mares <mj@ucw.cz> Date: Fri, 30 Aug 2024 01:09:09 +0200 Subject: [PATCH] =?UTF-8?q?Inicializace=20ro=C4=8Dn=C3=ADku=20nastavuje=20?= =?UTF-8?q?term=C3=ADny,=20t=C5=99=C3=ADdy=20a=20tex=5Fhacks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Viz #404, #402, #405, #383, #381. --- bin/init-year | 181 ++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 161 insertions(+), 20 deletions(-) diff --git a/bin/init-year b/bin/init-year index 2283b2bd..0c571ad6 100755 --- a/bin/init-year +++ b/bin/init-year @@ -7,44 +7,137 @@ if [ $# != 1 ] ; then fi YEAR=$1 +YY1=$((1950+$YEAR)) +YY2=$((1951+$YEAR)) + +# Datum konání +declare -A D +D[START]=$YY1-09-01 +D[Z5_DOMACI]=$YY2-01-05 +D[Z5_OKRESNI]=$YY2-01-05 +D[Z6_DOMACI]=$YY2-03-01 +D[Z6_OKRESNI]=$YY2-04-03 +D[Z7_DOMACI]=${D[Z6_DOMACI]} +D[Z7_OKRESNI]=${D[Z6_OKRESNI]} +D[Z8_DOMACI]=${D[Z6_DOMACI]} +D[Z8_OKRESNI]=${D[Z6_OKRESNI]} +D[Z9_DOMACI]=${D[Z5_DOMACI]} +D[Z9_OKRESNI]=${D[Z5_OKRESNI]} +D[Z9_KRAJSKE]=$YY2-03-26 +D[A_DOMACI]=$YY1-12-03 +D[A_SKOLNI]=$YY1-12-10 +D[A_KRAJSKE]=$YY2-01-14 +D[B_DOMACI]=$YY2-01-21 +D[B_SKOLNI]=$YY2-01-28 +D[B_KRAJSKE]=$YY2-04-01 +D[C_DOMACI]=${D[B_DOMACI]} +D[C_SKOLNI]=${D[B_SKOLNI]} +D[C_KRAJSKE]=${D[B_KRAJSKE]} +D[P_DOMACI]=$YY1-11-15 +D[P_KRAJSKE]=$YY2-01-23 +D[USTREDNI_PONDELI]=$YY2-03-16 + +# Délka soutěže v minutách +declare -A L +L[Z5_OKRESNI]=90 +L[Z6_OKRESNI]=120 +L[Z7_OKRESNI]=120 +L[Z8_OKRESNI]=120 +L[Z9_OKRESNI]=240 +L[Z9_KRAJSKE]=240 + +# Hacky do výsledkovek +KDE_USTREDNI="Plzeň" +HACK_A_USTREDNI="podhlavicka={$KDE_USTREDNI 16.--18. března $YY2}" +HACK_P_USTREDNI="podhlavicka={$KDE_USTREDNI 18.--20. března $YY2}" + +dd() +{ + date -d "$1" -Idate +} + +dt() +{ + date -d "$1" -Iminutes +} create_ss() { local CAT=$1 local ADV="$2" + local MIN_GRADE="$3" + local MAX_GRADE="$4" + + local D_START=${D[START]} + local D_DOMACI=${D[${CAT}_DOMACI]} + local D_SKOLNI=${D[${CAT}_SKOLNI]} + local D_OKRESNI=${D[${CAT}_OKRESNI]} + local D_KRAJSKE=${D[${CAT}_KRAJSKE]} + local D_ENROLL=$(dd "+2 days $D_DOMACI") + bin/create-round --year $YEAR --cat $CAT --seq 1 \ --level 4 \ --type domaci --name 'Domácí kolo' \ - --enroll-mode register --enroll-advert "$ADV" + --enroll-mode register --enroll-advert "$ADV" \ + --min-rec-grade $MIN_GRADE --max-rec-grade $MAX_GRADE \ + --ct-tasks-start $D_START \ + --ct-submit-end "$D_DOMACI 23:59" \ + --pr-tasks-start $D_START \ + --pr-submit-end "$D_DOMACI 23:59" \ + --enroll-deadline "$D_ENROLL 23:59" \ + --switch-to-grading $(dd "+1 day $D_DOMACI") \ + --score-successful-limit 20 --score-advance-limit 20 bin/create-tasks --round $YEAR-$CAT-1 --code $CAT-I-1 \ --name 'Úloha 1' --points 6 --count 6 bin/create-round --year $YEAR --cat $CAT --seq 2 \ --level 4 \ - --type skolni --name 'Školní kolo' + --type skolni --name 'Školní kolo' \ + --ct-tasks-start "$D_SKOLNI 10:00" \ + --ct-submit-end "$D_SKOLNI 14:20" \ + --pr-tasks-start $(dt "-1 day $D_SKOLNI 7:00") \ + --pr-submit-end "$D_SKOLNI 18:00" \ + --switch-to-grading "$D_SKOLNI 19:00" \ + --score-successful-limit 10 bin/create-tasks --round $YEAR-$CAT-2 --code $CAT-II-1 \ --name 'Úloha 1' --points 6 --count 3 bin/create-round --year $YEAR --cat $CAT --seq 3 \ --level 1 \ --type krajske --name 'Krajské kolo' \ + --ct-tasks-start "$D_KRAJSKE 10:00" \ + --ct-submit-end "$D_KRAJSKE 14:20" \ + --pr-tasks-start $(dt "-1 day $D_KRAJSKE 7:00") \ + --pr-submit-end "$D_KRAJSKE 18:00" \ + --switch-to-grading "$D_KRAJSKE 19:00" \ --publish-score bin/create-tasks --round $YEAR-$CAT-3 --code $CAT-III-1 \ --name 'Úloha 1' --points 6 --count 4 bin/create-contests $YEAR-$CAT-3 if [ $CAT = A ] ; then + local D_USTREDNI_DEN1=${D[USTREDNI_PONDELI]} bin/create-round --year $YEAR --cat $CAT --seq 4 --part 1 \ --level 0 \ --type ustredni --name 'Ústřední kolo (1. den)' \ + --ct-tasks-start "$D_USTREDNI_DEN1 13:00" \ + --ct-submit-end "$D_USTREDNI_DEN1 13:00" \ + --pr-tasks-start "$D_USTREDNI_DEN1 13:00" \ + --pr-submit-end "$D_USTREDNI_DEN1 13:00" \ --publish-score bin/create-tasks --round $YEAR-$CAT-4a --code $CAT-IV-1 \ --name 'Úloha 1' --points 7 --count 3 - bin/create-contests $YEAR-$CAT-4a + bin/create-contests $YEAR-$CAT-4a \ + --tex-hacks "$HACK_A_USTREDNI" + local D_USTREDNI_DEN2=$(dd "+1 days ${D[USTREDNI_PONDELI]}") bin/create-round --year $YEAR --cat $CAT --seq 4 --part 2 \ --level 0 \ - --type ustredni --name 'Ústřední kolo (2. den)' + --type ustredni --name 'Ústřední kolo (2. den)' \ + --ct-tasks-start "$D_USTREDNI_DEN2 13:00" \ + --ct-submit-end "$D_USTREDNI_DEN2 13:00" \ + --pr-tasks-start "$D_USTREDNI_DEN2 13:00" \ + --pr-submit-end "$D_USTREDNI_DEN2 13:00" bin/create-tasks --round $YEAR-$CAT-4b --code $CAT-IV-4 \ --name 'Úloha 4' --points 7 --count 3 bin/create-contests $YEAR-$CAT-4b @@ -53,28 +146,53 @@ create_ss() create_zs() { - local CAT=$1 - local ADV="$2" + local GRADE=$1 + local CAT=Z$GRADE + local D_START=${D[START]} + local D_DOMACI=${D[${CAT}_DOMACI]} + local D_OKRESNI=${D[${CAT}_OKRESNI]} + local D_ENROLL=$(dd "+7 days $D_DOMACI") + local L_OKRESNI=${L[${CAT}_OKRESNI]} bin/create-round --year $YEAR --cat $CAT --seq 1 \ --level 4 \ --type domaci --name 'Domácí kolo' \ - --enroll-mode register --enroll-advert "$ADV" + --enroll-mode register --enroll-advert "$GRADE. ročník ZŠ" \ + --min-rec-grade $GRADE --max-rec-grade $GRADE \ + --ct-tasks-start $D_START \ + --ct-submit-end "$D_DOMACI 23:59" \ + --enroll-deadline "$D_ENROLL 23:59" \ + --switch-to-grading $(dd "+1 day $D_DOMACI") \ + --score-successful-limit 20 --score-advance-limit 20 bin/create-tasks --round $YEAR-$CAT-1 --code $CAT-I-1 \ --name 'Úloha 1' --points 6 --count 6 bin/create-round --year $YEAR --cat $CAT --seq 2 \ --level 2 \ --type okresni --name 'Okresní kolo' \ + --ct-tasks-start "$D_OKRESNI 10:00" \ + --ct-submit-end $(dt "$L_OKRESNI minutes $D_OKRESNI 10:20") \ + --pr-tasks-start "$D_OKRESNI 10:00" \ + --pr-submit-end "$D_OKRESNI 18:00" \ + --switch-to-grading "$D_OKRESNI 19:00" \ + --score-successful-limit $(if [ $CAT = Z9 ] ; then echo 12 ; else echo 9 ; fi) \ --publish-score bin/create-tasks --round $YEAR-$CAT-2 --code $CAT-II-1 \ --name 'Úloha 1' --points 6 --count $(if [ $CAT = Z9 ] ; then echo 4 ; else echo 3 ; fi) bin/create-contests $YEAR-$CAT-2 if [ $CAT = Z9 ] ; then + local D_KRAJSKE=${D[${CAT}_KRAJSKE]} + local L_KRAJSKE=${L[${CAT}_KRAJSKE]} bin/create-round --year $YEAR --cat $CAT --seq 3 \ --level 1 \ --type krajske --name 'Krajské kolo' \ + --ct-tasks-start "$D_KRAJSKE 10:00" \ + --ct-submit-end $(dt "$L_KRAJSKE minutes $D_KRAJSKE 10:20") \ + --pr-tasks-start "$D_KRAJSKE 10:00" \ + --pr-submit-end "$D_KRAJSKE 18:00" \ + --switch-to-grading "$D_KRAJSKE 19:00" \ + --score-successful-limit 12 \ --publish-score bin/create-tasks --round $YEAR-$CAT-3 --code $CAT-III-1 \ --name 'Úloha 1' --points 6 --count 4 @@ -84,10 +202,17 @@ create_zs() create_p() { + local D_START=${D[START]} + local D_DOMACI=${D[P_DOMACI]} + local D_KRAJSKE=${D[P_KRAJSKE]} + bin/create-round --year $YEAR --cat P --seq 1 \ - --level 0 \ + --level 1 \ --type domaci --name 'Domácí kolo' \ --enroll-mode register --enroll-advert "Programování" \ + --ct-tasks-start $D_START \ + --ct-submit-end "$D_DOMACI 23:59" \ + --switch-to-grading $(dd "+1 day $D_DOMACI 7:00") \ --online-submit bin/create-tasks --round $YEAR-P-1 --code P-I-1 \ --name 'Úloha 1' --points 10 --type cms --count 2 @@ -97,34 +222,50 @@ create_p() bin/create-round --year $YEAR --cat P --seq 2 \ --level 1 \ - --type krajske --name 'Krajské kolo' + --type krajske --name 'Krajské kolo' \ + --ct-tasks-start "$D_KRAJSKE 10:00" \ + --ct-submit-end "$D_KRAJSKE 14:20" \ + --pr-tasks-start $(dt "-1 day $D_KRAJSKE 7:00") \ + --pr-submit-end "$D_KRAJSKE 18:00" \ + --switch-to-grading "$D_KRAJSKE 19:00" bin/create-tasks --round $YEAR-P-2 --code P-II-1 \ --name 'Úloha 1' --points 10 --count 4 bin/create-contests $YEAR-P-2 + local D_USTREDNI_DEN1=$(dd "+3 days ${D[USTREDNI_PONDELI]}") bin/create-round --year $YEAR --cat P --seq 3 --part 1 \ --level 0 \ - --type ustredni --name 'Ústřední kolo (1. den)' + --type ustredni --name 'Ústřední kolo (1. den)' \ + --ct-tasks-start "$D_USTREDNI_DEN1 13:00" \ + --ct-submit-end "$D_USTREDNI_DEN1 13:00" \ + --pr-tasks-start "$D_USTREDNI_DEN1 13:00" \ + --pr-submit-end "$D_USTREDNI_DEN1 13:00" bin/create-tasks --round $YEAR-P-3a --code P-III-1 \ --name 'Úloha 1' --points 10 --count 3 - bin/create-contests $YEAR-P-3a + bin/create-contests $YEAR-P-3a \ + --tex-hacks "$HACK_P_USTREDNI" + local D_USTREDNI_DEN2=$(dd "+4 days ${D[USTREDNI_PONDELI]}") bin/create-round --year $YEAR --cat P --seq 3 --part 2 \ --level 0 \ - --type ustredni --name 'Ústřední kolo (2. den)' + --type ustredni --name 'Ústřední kolo (2. den)' \ + --ct-tasks-start "$D_USTREDNI_DEN2 13:00" \ + --ct-submit-end "$D_USTREDNI_DEN2 13:00" \ + --pr-tasks-start "$D_USTREDNI_DEN2 13:00" \ + --pr-submit-end "$D_USTREDNI_DEN2 13:00" bin/create-tasks --round $YEAR-P-3b --code P-III-4 \ --name 'Úloha 4' --points 10 --type cms --count 3 bin/create-contests $YEAR-P-3b } -create_ss A "3. a 4. ročník středních škol" -create_ss B "2. ročník středních škol" -create_ss C "1. ročník středních škol" +create_ss A "3. a 4. ročník středních škol" 3 4 +create_ss B "2. ročník středních škol" 2 2 +create_ss C "1. ročník středních škol" 1 1 -create_zs Z9 "9. ročník ZŠ" -create_zs Z8 "8. ročník ZŠ" -create_zs Z7 "7. ročník ZŠ" -create_zs Z6 "6. ročník ZŠ" -create_zs Z5 "5. ročník ZŠ" +create_zs 9 +create_zs 8 +create_zs 7 +create_zs 6 +create_zs 5 create_p -- GitLab