Source code for pas.collections.change

from __future__ import annotations

from onegov.core.collection import GenericCollection
from onegov.core.collection import Pagination
from onegov.pas.models import Change
from sqlalchemy import desc

from typing import TYPE_CHECKING
if TYPE_CHECKING:
    from sqlalchemy.orm import Query
    from sqlalchemy.orm import Session
    from typing import Self


[docs] class ChangeCollection(GenericCollection[Change], Pagination[Change]):
[docs] batch_size = 20
def __init__(self, session: Session, page: int = 0): GenericCollection.__init__(self, session) Pagination.__init__(self, page) @property
[docs] def model_class(self) -> type[Change]: return Change
[docs] def __eq__(self, other: object) -> bool: return isinstance(other, ChangeCollection) and self.page == other.page
[docs] def subset(self) -> Query[Change]: return self.query()
@property
[docs] def page_index(self) -> int: return self.page
[docs] def page_by_index(self, index: int) -> Self: return self.__class__(self.session, index)
[docs] def query(self) -> Query[Change]: return super().query().order_by(desc(Change.last_change))