mirror of
https://github.com/rommapp/romm.git
synced 2026-02-18 00:27:41 +01:00
filter out rows when order by columnis null
This commit is contained in:
@@ -58,14 +58,12 @@ def upgrade():
|
||||
ELSE '[]'::jsonb
|
||||
END AS game_modes,
|
||||
|
||||
(
|
||||
SELECT jsonb_agg(rating -> 'rating')
|
||||
FROM jsonb_array_elements(
|
||||
CASE WHEN r.igdb_metadata ? 'age_ratings'
|
||||
THEN r.igdb_metadata -> 'age_ratings'
|
||||
ELSE '[]'::jsonb
|
||||
END
|
||||
) AS rating
|
||||
COALESCE(
|
||||
jsonb_path_query_array(
|
||||
r.igdb_metadata,
|
||||
'$.age_ratings[*].rating'
|
||||
),
|
||||
'[]'::jsonb
|
||||
) AS age_ratings,
|
||||
|
||||
CASE
|
||||
@@ -161,9 +159,12 @@ def upgrade():
|
||||
END AS game_modes,
|
||||
|
||||
CASE
|
||||
WHEN JSON_CONTAINS_PATH(r.igdb_metadata, 'one', '$.age_ratings') THEN
|
||||
WHEN JSON_CONTAINS_PATH(r.igdb_metadata, 'one', '$.age_ratings')
|
||||
AND JSON_LENGTH(JSON_EXTRACT(r.igdb_metadata, '$.age_ratings')) > 0
|
||||
THEN
|
||||
JSON_EXTRACT(r.igdb_metadata, '$.age_ratings[*].rating')
|
||||
ELSE JSON_ARRAY()
|
||||
ELSE
|
||||
JSON_ARRAY()
|
||||
END AS age_ratings,
|
||||
|
||||
CASE
|
||||
|
||||
@@ -384,11 +384,13 @@ class DBRomsHandler(DBBaseHandler):
|
||||
)
|
||||
|
||||
if user_id and hasattr(RomUser, order_by) and not hasattr(Rom, order_by):
|
||||
query = query.filter(RomUser.user_id == user_id)
|
||||
order_attr = getattr(RomUser, order_by)
|
||||
query = query.filter(RomUser.user_id == user_id, order_attr.isnot(None))
|
||||
elif hasattr(RomMetadata, order_by) and not hasattr(Rom, order_by):
|
||||
query = query.outerjoin(RomMetadata, RomMetadata.rom_id == Rom.id)
|
||||
order_attr = getattr(RomMetadata, order_by)
|
||||
query = query.outerjoin(RomMetadata, RomMetadata.rom_id == Rom.id).filter(
|
||||
order_attr.isnot(None)
|
||||
)
|
||||
elif hasattr(Rom, order_by):
|
||||
order_attr = getattr(Rom, order_by)
|
||||
else:
|
||||
|
||||
@@ -276,10 +276,6 @@ class Rom(BaseModel):
|
||||
or []
|
||||
)
|
||||
|
||||
@property
|
||||
def first_release_date(self) -> int | None:
|
||||
return self.metadatum.first_release_date
|
||||
|
||||
@property
|
||||
def is_unidentified(self) -> bool:
|
||||
return not self.igdb_id and not self.moby_id and not self.ss_id
|
||||
|
||||
Reference in New Issue
Block a user