mirror of
https://github.com/stijndcl/didier.git
synced 2026-04-07 23:55:46 +02:00
Parsing of schedules
This commit is contained in:
parent
8fea65e4ad
commit
14ccb42424
10 changed files with 228 additions and 20 deletions
|
|
@ -5,7 +5,7 @@ from sqlalchemy.ext.asyncio import AsyncSession
|
|||
|
||||
from database.schemas import UforaCourse, UforaCourseAlias
|
||||
|
||||
__all__ = ["get_all_courses", "get_course_by_name"]
|
||||
__all__ = ["get_all_courses", "get_course_by_code", "get_course_by_name"]
|
||||
|
||||
|
||||
async def get_all_courses(session: AsyncSession) -> list[UforaCourse]:
|
||||
|
|
@ -14,6 +14,12 @@ async def get_all_courses(session: AsyncSession) -> list[UforaCourse]:
|
|||
return list((await session.execute(statement)).scalars().all())
|
||||
|
||||
|
||||
async def get_course_by_code(session: AsyncSession, code: str) -> Optional[UforaCourse]:
|
||||
"""Try to find a course by its code"""
|
||||
statement = select(UforaCourse).where(UforaCourse.code == code)
|
||||
return (await session.execute(statement)).scalar_one_or_none()
|
||||
|
||||
|
||||
async def get_course_by_name(session: AsyncSession, query: str) -> Optional[UforaCourse]:
|
||||
"""Try to find a course by its name
|
||||
|
||||
|
|
|
|||
|
|
@ -199,6 +199,7 @@ class UforaCourse(Base):
|
|||
year: int = Column(Integer, nullable=False)
|
||||
compulsory: bool = Column(Boolean, server_default="1", nullable=False)
|
||||
role_id: Optional[int] = Column(Integer, nullable=True, unique=False)
|
||||
overarching_role_id: Optional[int] = Column(Integer, nullable=True, unique=False)
|
||||
log_announcements: bool = Column(Boolean, server_default="0", nullable=False)
|
||||
|
||||
announcements: list[UforaAnnouncement] = relationship(
|
||||
|
|
|
|||
16
database/scripts/debug_add_courses.py
Normal file
16
database/scripts/debug_add_courses.py
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from database.engine import DBSession
|
||||
from database.schemas import UforaCourse
|
||||
|
||||
__all__ = ["main"]
|
||||
|
||||
|
||||
async def main():
|
||||
"""Add debug Ufora courses"""
|
||||
session: AsyncSession
|
||||
async with DBSession() as session:
|
||||
modsim = UforaCourse(course_id=439235, code="C003786", name="Modelleren en Simuleren", year=3, compulsory=False)
|
||||
|
||||
session.add_all([modsim])
|
||||
await session.commit()
|
||||
Loading…
Add table
Add a link
Reference in a new issue