mirror of
https://github.com/rommapp/romm.git
synced 2026-06-29 15:25:46 +00:00
added default aspect ratio in platform table
This commit is contained in:
@@ -8,6 +8,7 @@ Create Date: 2024-11-17 23:05:31.038917
|
||||
|
||||
import sqlalchemy as sa
|
||||
from alembic import op
|
||||
from models.platform import DEFAULT_COVER_ASPECT_RATIO
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = "0027_platforms_data"
|
||||
@@ -31,6 +32,14 @@ def upgrade() -> None:
|
||||
batch_op.add_column(
|
||||
sa.Column("url_logo", sa.String(length=1000), nullable=True)
|
||||
)
|
||||
batch_op.add_column(
|
||||
sa.Column(
|
||||
"aspect_ratio",
|
||||
sa.Float(),
|
||||
nullable=False,
|
||||
server_default=str(DEFAULT_COVER_ASPECT_RATIO),
|
||||
)
|
||||
)
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
@@ -43,4 +52,5 @@ def downgrade() -> None:
|
||||
batch_op.drop_column("family_slug")
|
||||
batch_op.drop_column("generation")
|
||||
batch_op.drop_column("category")
|
||||
batch_op.drop_column("aspect_ratio")
|
||||
# ### end Alembic commands ###
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
from datetime import datetime
|
||||
|
||||
from models.platform import DEFAULT_COVER_ASPECT_RATIO
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
from .firmware import FirmwareSchema
|
||||
@@ -22,6 +23,7 @@ class PlatformSchema(BaseModel):
|
||||
url_logo: str | None = None
|
||||
logo_path: str | None = None
|
||||
firmware: list[FirmwareSchema] = Field(default_factory=list)
|
||||
aspect_ratio: float = DEFAULT_COVER_ASPECT_RATIO
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
|
||||
@@ -4,13 +4,16 @@ from typing import TYPE_CHECKING
|
||||
|
||||
from models.base import BaseModel
|
||||
from models.rom import Rom
|
||||
from sqlalchemy import String, func, select
|
||||
from sqlalchemy import Float, String, func, select
|
||||
from sqlalchemy.orm import Mapped, column_property, mapped_column, relationship
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from models.firmware import Firmware
|
||||
|
||||
|
||||
DEFAULT_COVER_ASPECT_RATIO = 2 / 3
|
||||
|
||||
|
||||
class Platform(BaseModel):
|
||||
__tablename__ = "platforms"
|
||||
|
||||
@@ -34,6 +37,10 @@ class Platform(BaseModel):
|
||||
lazy="selectin", back_populates="platform"
|
||||
)
|
||||
|
||||
aspect_ratio: Mapped[float] = mapped_column(
|
||||
Float, server_default=str(DEFAULT_COVER_ASPECT_RATIO)
|
||||
)
|
||||
|
||||
# This runs a subquery to get the count of roms for the platform
|
||||
rom_count = column_property(
|
||||
select(func.count(Rom.id)).where(Rom.platform_id == id).scalar_subquery()
|
||||
|
||||
Reference in New Issue
Block a user