Skip to content
Snippets Groups Projects

Publikace výsledkovky na web MO

Compare and Show latest version
1 file
+ 1
1
Compare changes
  • Side-by-side
  • Inline
+ 42
0
@@ -206,6 +206,41 @@ round_state_names = {
}
class RoundType(MOEnum):
domaci = auto()
skolni = auto()
okresni = auto()
krajske = auto()
ustredni = auto()
other = auto()
def friendly_name(self) -> str:
return round_type_names[self]
def letter(self) -> Optional[str]:
"""Písmena se používají při exportu výsledkovky na web MO"""
return round_type_letters[self]
round_type_names = {
RoundType.domaci: 'domácí kolo',
RoundType.skolni: 'školní kolo',
RoundType.okresni: 'okresní kolo',
RoundType.krajske: 'krajské kolo',
RoundType.ustredni: 'ústřední kolo',
RoundType.other: 'jiné',
}
round_type_letters = {
RoundType.domaci: 'D',
RoundType.skolni: 'S',
RoundType.okresni: 'O',
RoundType.krajske: 'K',
RoundType.ustredni: 'U',
RoundType.other: None,
}
class RoundScoreMode(MOEnum):
basic = auto()
mo = auto()
@@ -260,6 +295,7 @@ class Round(Base):
level = Column(Integer, nullable=False)
code = Column(String(255), nullable=False)
name = Column(String(255), nullable=False)
round_type = Column(Enum(RoundType, name='round_type'), nullable=False, server_default=text("'other'::round_type"))
state = Column(Enum(RoundState, name='round_state'), nullable=False, server_default=text("'preparing'::round_state"))
tasks_file = Column(String(255))
ct_tasks_start = Column(DateTime(True))
@@ -275,6 +311,7 @@ class Round(Base):
enroll_advert = Column(String(255), nullable=False, server_default=text("''::text"))
master = relationship('Round', primaryjoin='Round.master_round_id == Round.round_id', remote_side='Round.round_id', post_update=True)
export_score_to_mo_web = Column(Boolean, nullable=False, server_default=text("false"))
def round_code_short(self):
""" Pro samostatné kolo ekvivalentní s `round_code()`, pro skupinu kol společná část kódu. """
@@ -717,6 +754,9 @@ class JobType(MOEnum):
sort_scans = auto()
fix_submits = auto()
send_grading_info = auto()
snapshot_score = auto()
export_score_to_mo_web = auto()
revert_export_score_to_mo_web = auto()
class JobState(MOEnum):
@@ -893,6 +933,8 @@ class ScoreTable(Base):
note = Column(Text, nullable=False)
tasks = Column(JSONB, nullable=False)
rows = Column(JSONB, nullable=False)
score_metadata = Column(JSONB, nullable=False, server_default=text("'{}'::jsonb"))
pdf_file = Column(String(255))
user = relationship('User')
contest = relationship('Contest', primaryjoin='Contest.scoretable_id == ScoreTable.scoretable_id')
Loading