mirror of
https://github.com/rommapp/romm.git
synced 2026-06-28 23:06:11 +00:00
feat: expose rom sort_name in edit form
Co-authored-by: gantoine <3247106+gantoine@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
280092d38a
commit
3f98aa16f4
@@ -246,6 +246,7 @@ class RomSchema(BaseModel):
|
||||
fs_size_bytes: int
|
||||
|
||||
name: str | None
|
||||
sort_name: str | None
|
||||
slug: str | None
|
||||
summary: str | None
|
||||
|
||||
|
||||
@@ -131,6 +131,7 @@ class RomUpdateForm(BaseModel):
|
||||
default=None, description="Raw manual metadata as JSON string."
|
||||
)
|
||||
name: str | None = None
|
||||
sort_name: str | None = None
|
||||
summary: str | None = None
|
||||
fs_name: str | None = None
|
||||
url_cover: str | None = None
|
||||
@@ -190,6 +191,7 @@ async def parse_rom_update_form(
|
||||
raw_hltb_metadata: str | None = Form(default=None),
|
||||
raw_manual_metadata: str | None = Form(default=None),
|
||||
name: str | None = Form(default=None),
|
||||
sort_name: str | None = Form(default=None),
|
||||
summary: str | None = Form(default=None),
|
||||
fs_name: str | None = Form(default=None),
|
||||
url_cover: str | None = Form(default=None),
|
||||
@@ -218,6 +220,7 @@ async def parse_rom_update_form(
|
||||
"raw_hltb_metadata": raw_hltb_metadata,
|
||||
"raw_manual_metadata": raw_manual_metadata,
|
||||
"name": name,
|
||||
"sort_name": sort_name,
|
||||
"summary": summary,
|
||||
"fs_name": fs_name,
|
||||
"url_cover": url_cover,
|
||||
@@ -1108,6 +1111,7 @@ async def update_rom(
|
||||
"hltb_id": None,
|
||||
"libretro_id": None,
|
||||
"name": rom.fs_name,
|
||||
"sort_name": None,
|
||||
"summary": "",
|
||||
"url_screenshots": [],
|
||||
"path_screenshots": [],
|
||||
@@ -1294,6 +1298,11 @@ async def update_rom(
|
||||
cleaned_data.update(
|
||||
{
|
||||
"name": form_data.name if "name" in provided_fields else rom.name,
|
||||
"sort_name": (
|
||||
form_data.sort_name or None
|
||||
if "sort_name" in provided_fields
|
||||
else rom.sort_name
|
||||
),
|
||||
"summary": (
|
||||
form_data.summary if "summary" in provided_fields else rom.summary
|
||||
),
|
||||
|
||||
@@ -74,6 +74,7 @@ def test_update_rom(
|
||||
data={
|
||||
"igdb_id": str(MOCK_IGDB_ID),
|
||||
"name": "Metroid Prime Remastered",
|
||||
"sort_name": "Metroid Prime",
|
||||
"slug": "metroid-prime-remastered",
|
||||
"fs_name": "Metroid Prime Remastered.zip",
|
||||
"summary": "summary test",
|
||||
@@ -99,6 +100,7 @@ def test_update_rom(
|
||||
|
||||
body = response.json()
|
||||
assert body["fs_name"] == "Metroid Prime Remastered.zip"
|
||||
assert body["sort_name"] == "Metroid Prime"
|
||||
|
||||
assert rename_fs_rom_mock.called
|
||||
assert get_rom_by_id_mock.called
|
||||
@@ -420,7 +422,10 @@ class TestUpdateMetadataIDs:
|
||||
response = client.put(
|
||||
f"/api/roms/{rom.id}",
|
||||
headers={"Authorization": f"Bearer {access_token}"},
|
||||
data={"igdb_id": str(MOCK_IGDB_ID)},
|
||||
data={
|
||||
"igdb_id": str(MOCK_IGDB_ID),
|
||||
"sort_name": "Imported sort title",
|
||||
},
|
||||
)
|
||||
assert response.status_code == status.HTTP_200_OK
|
||||
|
||||
@@ -1101,7 +1106,10 @@ class TestUnmatchMetadata:
|
||||
initial_response = client.put(
|
||||
f"/api/roms/{rom.id}",
|
||||
headers={"Authorization": f"Bearer {access_token}"},
|
||||
data={"igdb_id": str(MOCK_IGDB_ID)},
|
||||
data={
|
||||
"igdb_id": str(MOCK_IGDB_ID),
|
||||
"sort_name": "Imported sort title",
|
||||
},
|
||||
)
|
||||
assert initial_response.status_code == status.HTTP_200_OK
|
||||
assert get_rom_by_id_mock.called
|
||||
@@ -1109,6 +1117,7 @@ class TestUnmatchMetadata:
|
||||
initial_body = initial_response.json()
|
||||
assert initial_body["igdb_id"] == MOCK_IGDB_ID
|
||||
assert initial_body["igdb_metadata"] is not None
|
||||
assert initial_body["sort_name"] == "Imported sort title"
|
||||
|
||||
# Now unmatch all metadata
|
||||
response = client.put(
|
||||
@@ -1131,6 +1140,7 @@ class TestUnmatchMetadata:
|
||||
assert body["hltb_id"] is None
|
||||
|
||||
assert body["name"] == rom.fs_name
|
||||
assert body["sort_name"] is None
|
||||
assert body["summary"] == ""
|
||||
assert body["url_cover"] == ""
|
||||
assert body["slug"] == ""
|
||||
|
||||
@@ -27,9 +27,9 @@ export type Body_update_rom_api_roms__id__put = {
|
||||
raw_hltb_metadata?: (string | null);
|
||||
raw_manual_metadata?: (string | null);
|
||||
name?: (string | null);
|
||||
sort_name?: (string | null);
|
||||
summary?: (string | null);
|
||||
fs_name?: (string | null);
|
||||
url_cover?: (string | null);
|
||||
url_manual?: (string | null);
|
||||
};
|
||||
|
||||
|
||||
@@ -47,6 +47,7 @@ export type DetailedRomSchema = {
|
||||
fs_path: string;
|
||||
fs_size_bytes: number;
|
||||
name: (string | null);
|
||||
sort_name: (string | null);
|
||||
slug: (string | null);
|
||||
summary: (string | null);
|
||||
alternative_names: Array<string>;
|
||||
@@ -99,4 +100,3 @@ export type DetailedRomSchema = {
|
||||
user_collections: Array<UserCollectionSchema>;
|
||||
all_user_notes: Array<UserNoteSchema>;
|
||||
};
|
||||
|
||||
|
||||
@@ -40,6 +40,7 @@ export type SimpleRomSchema = {
|
||||
fs_path: string;
|
||||
fs_size_bytes: number;
|
||||
name: (string | null);
|
||||
sort_name: (string | null);
|
||||
slug: (string | null);
|
||||
summary: (string | null);
|
||||
alternative_names: Array<string>;
|
||||
@@ -85,4 +86,3 @@ export type SimpleRomSchema = {
|
||||
merged_ra_metadata: (RomRAMetadata | null);
|
||||
sibling_ids: Array<number>;
|
||||
};
|
||||
|
||||
|
||||
@@ -312,6 +312,14 @@ function handleRomUpdateFromMetadata(updatedRom: UpdateRom) {
|
||||
variant="outlined"
|
||||
class="my-4"
|
||||
/>
|
||||
<v-text-field
|
||||
hide-details
|
||||
v-model="rom.sort_name"
|
||||
clearable
|
||||
:label="t('rom.sort-name')"
|
||||
variant="outlined"
|
||||
class="my-4"
|
||||
/>
|
||||
<v-text-field
|
||||
hide-details
|
||||
v-model="rom.fs_name"
|
||||
|
||||
@@ -95,6 +95,7 @@
|
||||
"status-never-playing": "Never Playing",
|
||||
"status-now-playing": "Now Playing",
|
||||
"status-retired": "Retired",
|
||||
"sort-name": "Sort name",
|
||||
"summary": "Summary",
|
||||
"switch-version": "Switch version",
|
||||
"tags": "Tags",
|
||||
|
||||
@@ -95,6 +95,7 @@
|
||||
"status-never-playing": "Never Playing",
|
||||
"status-now-playing": "Now Playing",
|
||||
"status-retired": "Retired",
|
||||
"sort-name": "Sort name",
|
||||
"summary": "Summary",
|
||||
"switch-version": "Switch version",
|
||||
"tags": "Tags",
|
||||
|
||||
@@ -454,6 +454,7 @@ async function updateRom({
|
||||
|
||||
const fields: FormInputField<UpdateRomInput>[] = [
|
||||
["name", rom.name],
|
||||
["sort_name", rom.sort_name],
|
||||
["fs_name", rom.fs_name],
|
||||
["summary", rom.summary],
|
||||
["igdb_id", toFormIdValue(rom.igdb_id)],
|
||||
|
||||
Reference in New Issue
Block a user