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

DB: Návrh změn pro odevzdávání

parent c11822cd
No related branches found
No related tags found
1 merge request!9WIP: Zárodek uživatelské části webu a submitování
......@@ -12,6 +12,7 @@ CREATE TABLE users (
last_name varchar(255) COLLATE "cs_CZ" NOT NULL,
is_org boolean NOT NULL DEFAULT false, -- přístup do organizátorské části webu
is_admin boolean NOT NULL DEFAULT false, -- globální administrátorské právo
is_test boolean NOT NULL DEFAULT false, -- testovací účastník, není vidět ve výsledkovkách
created_at timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
last_login_at timestamp with time zone DEFAULT NULL,
reset_at timestamp with time zone DEFAULT NULL, -- poslední požadavek na reset hesla
......@@ -69,6 +70,15 @@ CREATE TABLE schools (
);
-- Soutěžní kola
CREATE TYPE round_state AS ENUM (
'preparing', -- v přípravě (viditelné pouze organizátorům)
'submit', -- je možno odevzdávat
'grading', -- je možno opravovat a vyplňovat body
'closed', -- uzavřeno, není dovoleno nic měnit, zveřejněny výsledky
-- garanta stavy neomezují, vždycky může všechno
);
CREATE TABLE rounds (
round_id serial PRIMARY KEY,
year int NOT NULL, -- ročník MO
......@@ -76,8 +86,10 @@ CREATE TABLE rounds (
seq int NOT NULL, -- 1=domácí kolo atd.
level int NOT NULL, -- úroveň hierarchie míst
name varchar(255) NOT NULL, -- zobrazované jméno ("Krajské kolo" apod.)
-- FIXME: termíny
-- FIXME: stav odevzdávání/opravování/...
state round_state NOT NULL DEFAULT preparing, -- stav kola
submit_start timestamp with time zone DEFAULT NULL, -- od kdy se smí odevzdávat
ct_submit_end timestamp with time zone DEFAULT NULL, -- do kdy mohou odevzdávat účastníci
pr_submit_end timestamp with time zone DEFAULT NULL, -- do kdy může odevzdávat dozor
UNIQUE (year, category, seq)
);
......@@ -95,14 +107,14 @@ CREATE TABLE participants (
year int NOT NULL, -- ročník MO
school int NOT NULL REFERENCES places(place_id),
birth_year int NOT NULL,
grade varchar(20) NOT NULL, -- třída ve tvaru "X/Y" (FIXME)
grade varchar(20) NOT NULL, -- třída ve tvaru "X/Y"
PRIMARY KEY (user_id, year)
);
-- Účast v soutěžním kole
CREATE TYPE part_state AS ENUM (
'registered', -- přihlášen, ale jestě nedostal pozvánku
'registered', -- sám se přihlásil
'invited', -- pozván
'refused', -- odmítl účast
'present', -- soutěžil
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment