Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactors pagnination fields and allows cases to be expanded. #3631

Merged
merged 1 commit into from
Jul 31, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions src/dispatch/auth/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
)
from dispatch.database.core import Base
from dispatch.enums import UserRoles
from dispatch.models import OrganizationSlug, PrimaryKey, TimeStampMixin, DispatchBase
from dispatch.models import OrganizationSlug, PrimaryKey, TimeStampMixin, DispatchBase, Pagination
from dispatch.organization.models import Organization, OrganizationRead
from dispatch.project.models import Project, ProjectRead

Expand Down Expand Up @@ -187,6 +187,5 @@ class UserRegisterResponse(DispatchBase):
token: Optional[str] = Field(None, nullable=True)


class UserPagination(DispatchBase):
total: int
class UserPagination(Pagination):
items: List[UserRead] = []
7 changes: 2 additions & 5 deletions src/dispatch/case/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
from dispatch.group.models import Group, GroupRead
from dispatch.incident.models import IncidentReadMinimal
from dispatch.messaging.strings import CASE_RESOLUTION_DEFAULT
from dispatch.models import DispatchBase, ProjectMixin, TimeStampMixin
from dispatch.models import DispatchBase, ProjectMixin, Pagination, TimeStampMixin
from dispatch.models import NameStr, PrimaryKey
from dispatch.participant.models import Participant
from dispatch.participant.models import ParticipantRead, ParticipantReadMinimal, ParticipantUpdate
Expand Down Expand Up @@ -301,8 +301,5 @@ def find_exclusive(cls, v):
return v


class CasePagination(DispatchBase):
class CasePagination(Pagination):
items: List[CaseReadMinimal] = []
itemsPerPage: int
page: int
total: int
5 changes: 2 additions & 3 deletions src/dispatch/case/priority/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from sqlalchemy_utils import TSVectorType

from dispatch.database.core import Base, ensure_unique_default_per_project
from dispatch.models import DispatchBase, NameStr, ProjectMixin, PrimaryKey
from dispatch.models import DispatchBase, NameStr, ProjectMixin, PrimaryKey, Pagination
from dispatch.project.models import ProjectRead


Expand Down Expand Up @@ -56,6 +56,5 @@ class CasePriorityRead(CasePriorityBase):
id: Optional[PrimaryKey]


class CasePriorityPagination(DispatchBase):
total: int
class CasePriorityPagination(Pagination):
items: List[CasePriorityRead] = []
5 changes: 2 additions & 3 deletions src/dispatch/case/severity/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from sqlalchemy_utils import TSVectorType

from dispatch.database.core import Base, ensure_unique_default_per_project
from dispatch.models import DispatchBase, NameStr, ProjectMixin, PrimaryKey
from dispatch.models import DispatchBase, NameStr, ProjectMixin, PrimaryKey, Pagination
from dispatch.project.models import ProjectRead


Expand Down Expand Up @@ -60,6 +60,5 @@ class CaseSeverityRead(CaseSeverityBase):
id: PrimaryKey


class CaseSeverityPagination(DispatchBase):
total: int
class CaseSeverityPagination(Pagination):
items: List[CaseSeverityRead] = []
10 changes: 4 additions & 6 deletions src/dispatch/case/type/models.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from typing import List, Optional
from pydantic import Field, validator

from sqlalchemy import Column, Boolean, ForeignKey, Integer, String, JSON
from pydantic import Field, validator
from sqlalchemy import JSON, Boolean, Column, ForeignKey, Integer, String
from sqlalchemy.event import listen
from sqlalchemy.ext.hybrid import hybrid_method
from sqlalchemy.orm import relationship
Expand All @@ -10,8 +10,7 @@

from dispatch.database.core import Base, ensure_unique_default_per_project
from dispatch.enums import Visibility
from dispatch.models import DispatchBase, ProjectMixin
from dispatch.models import NameStr, PrimaryKey
from dispatch.models import DispatchBase, NameStr, Pagination, PrimaryKey, ProjectMixin
from dispatch.plugin.models import PluginMetadata
from dispatch.project.models import ProjectRead

Expand Down Expand Up @@ -111,6 +110,5 @@ class CaseTypeRead(CaseTypeBase):
id: PrimaryKey


class CaseTypePagination(DispatchBase):
total: int
class CaseTypePagination(Pagination):
items: List[CaseTypeRead] = []
5 changes: 2 additions & 3 deletions src/dispatch/data/alert/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from sqlalchemy_utils import TSVectorType

from dispatch.database.core import Base
from dispatch.models import DispatchBase, TimeStampMixin, PrimaryKey
from dispatch.models import DispatchBase, TimeStampMixin, PrimaryKey, Pagination


class Alert(Base, TimeStampMixin):
Expand Down Expand Up @@ -38,6 +38,5 @@ class AlertRead(AlertBase):
id: PrimaryKey


class AlertPagination(DispatchBase):
class AlertPagination(Pagination):
items: List[AlertRead]
total: int
11 changes: 8 additions & 3 deletions src/dispatch/data/query/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,13 @@
from sqlalchemy_utils import TSVectorType

from dispatch.database.core import Base
from dispatch.models import DispatchBase, ProjectMixin, TimeStampMixin, PrimaryKey
from dispatch.models import (
DispatchBase,
ProjectMixin,
Pagination,
TimeStampMixin,
PrimaryKey,
)
from dispatch.project.models import ProjectRead
from dispatch.data.source.models import SourceRead

Expand Down Expand Up @@ -65,6 +71,5 @@ class QueryRead(QueryBase):
id: PrimaryKey


class QueryPagination(DispatchBase):
class QueryPagination(Pagination):
items: List[QueryRead]
total: int
5 changes: 2 additions & 3 deletions src/dispatch/data/source/data_format/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from sqlalchemy_utils import TSVectorType

from dispatch.database.core import Base
from dispatch.models import DispatchBase, ProjectMixin, PrimaryKey
from dispatch.models import DispatchBase, ProjectMixin, Pagination, PrimaryKey
from dispatch.project.models import ProjectRead


Expand Down Expand Up @@ -41,6 +41,5 @@ class SourceDataFormatUpdate(SourceDataFormatBase):
id: PrimaryKey


class SourceDataFormatPagination(DispatchBase):
class SourceDataFormatPagination(Pagination):
items: List[SourceDataFormatRead]
total: int
5 changes: 2 additions & 3 deletions src/dispatch/data/source/environment/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from sqlalchemy_utils import TSVectorType

from dispatch.database.core import Base
from dispatch.models import DispatchBase, ProjectMixin, PrimaryKey
from dispatch.models import DispatchBase, ProjectMixin, Pagination, PrimaryKey
from dispatch.project.models import ProjectRead


Expand Down Expand Up @@ -41,6 +41,5 @@ class SourceEnvironmentUpdate(SourceEnvironmentBase):
id: PrimaryKey


class SourceEnvironmentPagination(DispatchBase):
class SourceEnvironmentPagination(Pagination):
items: List[SourceEnvironmentRead]
total: int
11 changes: 8 additions & 3 deletions src/dispatch/data/source/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,13 @@

from sqlalchemy_utils import TSVectorType
from dispatch.database.core import Base
from dispatch.models import DispatchBase, ProjectMixin, TimeStampMixin, PrimaryKey
from dispatch.models import (
DispatchBase,
ProjectMixin,
Pagination,
TimeStampMixin,
PrimaryKey,
)
from dispatch.project.models import ProjectRead
from dispatch.data.source.environment.models import SourceEnvironmentRead
from dispatch.data.source.data_format.models import SourceDataFormatRead
Expand Down Expand Up @@ -143,6 +149,5 @@ class SourceRead(SourceBase):
id: PrimaryKey


class SourcePagination(DispatchBase):
class SourcePagination(Pagination):
items: List[SourceRead]
total: int
5 changes: 2 additions & 3 deletions src/dispatch/data/source/status/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from sqlalchemy_utils import TSVectorType

from dispatch.database.core import Base
from dispatch.models import DispatchBase, ProjectMixin, PrimaryKey
from dispatch.models import DispatchBase, ProjectMixin, Pagination, PrimaryKey
from dispatch.project.models import ProjectRead


Expand Down Expand Up @@ -41,6 +41,5 @@ class SourceStatusUpdate(SourceStatusBase):
id: PrimaryKey


class SourceStatusPagination(DispatchBase):
class SourceStatusPagination(Pagination):
items: List[SourceStatusRead]
total: int
5 changes: 2 additions & 3 deletions src/dispatch/data/source/transport/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from sqlalchemy_utils import TSVectorType

from dispatch.database.core import Base
from dispatch.models import DispatchBase, ProjectMixin, PrimaryKey
from dispatch.models import DispatchBase, ProjectMixin, Pagination, PrimaryKey
from dispatch.project.models import ProjectRead


Expand Down Expand Up @@ -41,6 +41,5 @@ class SourceTransportUpdate(SourceTransportBase):
id: PrimaryKey


class SourceTransportPagination(DispatchBase):
class SourceTransportPagination(Pagination):
items: List[SourceTransportRead]
total: int
5 changes: 2 additions & 3 deletions src/dispatch/data/source/type/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from sqlalchemy_utils import TSVectorType

from dispatch.database.core import Base
from dispatch.models import DispatchBase, ProjectMixin, PrimaryKey
from dispatch.models import DispatchBase, ProjectMixin, Pagination, PrimaryKey
from dispatch.project.models import ProjectRead


Expand Down Expand Up @@ -41,6 +41,5 @@ class SourceTypeUpdate(SourceTypeBase):
id: PrimaryKey


class SourceTypePagination(DispatchBase):
class SourceTypePagination(Pagination):
items: List[SourceTypeRead]
total: int
9 changes: 2 additions & 7 deletions src/dispatch/definition/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,7 @@
from sqlalchemy_utils import TSVectorType

from dispatch.database.core import Base
from dispatch.models import (
PrimaryKey,
DispatchBase,
ProjectMixin,
)
from dispatch.models import PrimaryKey, DispatchBase, ProjectMixin, Pagination
from dispatch.project.models import ProjectRead

# Association tables
Expand Down Expand Up @@ -73,6 +69,5 @@ class DefinitionRead(DefinitionBase):
terms: Optional[List[DefinitionTerm]]


class DefinitionPagination(DispatchBase):
total: int
class DefinitionPagination(Pagination):
items: List[DefinitionRead] = []
5 changes: 2 additions & 3 deletions src/dispatch/document/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

from dispatch.database.core import Base
from dispatch.messaging.strings import DOCUMENT_DESCRIPTIONS
from dispatch.models import DispatchBase, ResourceBase, ProjectMixin, ResourceMixin, EvergreenMixin
from dispatch.models import ResourceBase, ProjectMixin, ResourceMixin, EvergreenMixin, Pagination
from dispatch.project.models import ProjectRead
from dispatch.search_filter.models import SearchFilterRead

Expand Down Expand Up @@ -73,6 +73,5 @@ def set_description(cls, v, values):
return v


class DocumentPagination(DispatchBase):
total: int
class DocumentPagination(Pagination):
items: List[DocumentRead] = []
11 changes: 8 additions & 3 deletions src/dispatch/entity/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,13 @@
from sqlalchemy_utils import TSVectorType

from dispatch.database.core import Base
from dispatch.models import DispatchBase, TimeStampMixin, ProjectMixin, PrimaryKey
from dispatch.models import (
DispatchBase,
TimeStampMixin,
ProjectMixin,
PrimaryKey,
Pagination,
)
from dispatch.project.models import ProjectRead
from dispatch.entity_type.models import (
EntityTypeCreate,
Expand Down Expand Up @@ -79,6 +85,5 @@ class EntityReadMinimal(DispatchBase):
entity_type: Optional[EntityTypeReadMinimal]


class EntityPagination(DispatchBase):
class EntityPagination(Pagination):
items: List[EntityRead]
total: int
12 changes: 9 additions & 3 deletions src/dispatch/entity_type/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,14 @@

from dispatch.enums import DispatchEnum
from dispatch.database.core import Base
from dispatch.models import DispatchBase, NameStr, TimeStampMixin, ProjectMixin, PrimaryKey
from dispatch.models import (
DispatchBase,
NameStr,
TimeStampMixin,
ProjectMixin,
PrimaryKey,
Pagination,
)
from dispatch.project.models import ProjectRead


Expand Down Expand Up @@ -80,6 +87,5 @@ class EntityTypeReadMinimal(DispatchBase):
regular_expression: Optional[str] = Field(None, nullable=True)


class EntityTypePagination(DispatchBase):
class EntityTypePagination(Pagination):
items: List[EntityTypeRead]
total: int
5 changes: 2 additions & 3 deletions src/dispatch/feedback/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from dispatch.database.core import Base
from dispatch.feedback.enums import FeedbackRating
from dispatch.incident.models import IncidentReadMinimal
from dispatch.models import DispatchBase, TimeStampMixin, PrimaryKey
from dispatch.models import DispatchBase, TimeStampMixin, PrimaryKey, Pagination
from dispatch.participant.models import ParticipantRead
from dispatch.project.models import ProjectRead

Expand Down Expand Up @@ -59,6 +59,5 @@ class FeedbackRead(FeedbackBase):
project: Optional[ProjectRead]


class FeedbackPagination(DispatchBase):
class FeedbackPagination(Pagination):
items: List[FeedbackRead]
total: int
17 changes: 10 additions & 7 deletions src/dispatch/incident/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,14 @@
)
from dispatch.incident_cost.models import IncidentCostRead, IncidentCostUpdate
from dispatch.messaging.strings import INCIDENT_RESOLUTION_DEFAULT
from dispatch.models import DispatchBase, NameStr, PrimaryKey, ProjectMixin, TimeStampMixin
from dispatch.models import (
DispatchBase,
NameStr,
PrimaryKey,
ProjectMixin,
TimeStampMixin,
Pagination,
)
from dispatch.participant.models import (
Participant,
ParticipantRead,
Expand Down Expand Up @@ -378,15 +385,11 @@ class IncidentRead(IncidentBase):
workflow_instances: Optional[List[WorkflowInstanceRead]] = []


class IncidentExpandedPagination(DispatchBase):
total: int
class IncidentExpandedPagination(Pagination):
itemsPerPage: int
page: int
items: List[IncidentRead] = []


class IncidentPagination(DispatchBase):
total: int
itemsPerPage: int
page: int
class IncidentPagination(Pagination):
items: List[IncidentReadMinimal] = []
5 changes: 2 additions & 3 deletions src/dispatch/incident/priority/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from sqlalchemy_utils import TSVectorType

from dispatch.database.core import Base, ensure_unique_default_per_project
from dispatch.models import DispatchBase, NameStr, ProjectMixin, PrimaryKey
from dispatch.models import DispatchBase, NameStr, ProjectMixin, PrimaryKey, Pagination
from dispatch.project.models import ProjectRead


Expand Down Expand Up @@ -75,6 +75,5 @@ class IncidentPriorityReadMinimal(DispatchBase):
color: Optional[Color] = Field(None, nullable=True)


class IncidentPriorityPagination(DispatchBase):
total: int
class IncidentPriorityPagination(Pagination):
items: List[IncidentPriorityRead] = []
Loading