Source code for fsi.collections.course

from onegov.core.collection import GenericCollection
from onegov.fsi.models.course import Course


from typing import TYPE_CHECKING
if TYPE_CHECKING:
    from onegov.fsi.models import CourseAttendee
    from sqlalchemy.orm import Query, Session
    from typing import Self
    from uuid import UUID


[docs] class CourseCollection(GenericCollection[Course]): def __init__( self, session: 'Session', # TODO: Why do we have this argument? We don't use it auth_attendee: 'CourseAttendee | None' = None, show_hidden_from_public: bool = False, ) -> None: super().__init__(session)
[docs] self.auth_attendee = auth_attendee
[docs] self.show_hidden_from_public = show_hidden_from_public
@property
[docs] def model_class(self) -> type[Course]: return Course
[docs] def query(self) -> 'Query[Course]': query = super().query() if not self.show_hidden_from_public: query = query.filter_by(hidden_from_public=False) return query.order_by(Course.name)
[docs] def by_id( self, id: 'UUID' # type:ignore[override] ) -> Course | None: return super().query().filter(self.primary_key == id).first()
[docs] def toggled_hidden(self) -> 'Self': return self.__class__( self.session, self.auth_attendee, show_hidden_from_public=not self.show_hidden_from_public )