feat: add WatchMedium field, general review editing, configurable deploy
Some checks failed
CI / Check / Test (push) Failing after 27m0s

- WatchMedium enum (cinema/streaming/tv/physical_media/download/media_server/other)
- PATCH /api/v1/reviews/:id partial update (rating, comment, watched_at, watch_medium)
- edit_review use case w/ ownership + remote review guard, best-effort AP Update broadcast
- SPA: icon picker, edit sheet (long-press mobile / pencil desktop), watch medium badge
- shared ReviewFormFields, EditableContextMenu, parse_watched_at/format_watched_at
- deploy.sh parameterized (--features, --tag), CORS allows PATCH
- CONTEXT.md glossary, ADR-0001 general review editing
This commit is contained in:
2026-07-10 00:01:14 +02:00
parent 9794babe06
commit 29cc68b07c
72 changed files with 1298 additions and 124 deletions

View File

@@ -364,6 +364,7 @@ pub fn parse_csv(content: &str) -> Vec<ParsedRow> {
Some(comment)
},
watched_at,
watch_medium: None,
}),
});
}
@@ -856,6 +857,7 @@ pub fn update(app: &mut App, action: Action) -> Vec<Command> {
rating,
comment,
watched_at,
watch_medium: None,
};
app.loading = true;
return vec![Command::CreateReview(req)];

View File

@@ -54,6 +54,7 @@ fn diary_entry() -> DiaryEntryDto {
rating: 5,
comment: None,
watched_at: "1999-03-31T00:00:00".into(),
watch_medium: None,
},
}
}
@@ -381,6 +382,7 @@ fn bulk_import_all_with_valid_rows_returns_import_next_command() {
rating: 5,
comment: None,
watched_at: "1999-03-31T00:00:00".into(),
watch_medium: None,
}),
}];
}
@@ -403,6 +405,7 @@ fn bulk_item_done_advances_stage_and_returns_next_command() {
rating: 5,
comment: None,
watched_at: "2024-01-01T00:00:00".into(),
watch_medium: None,
},
LogReviewRequest {
external_metadata_id: None,
@@ -412,6 +415,7 @@ fn bulk_item_done_advances_stage_and_returns_next_command() {
rating: 4,
comment: None,
watched_at: "2024-01-02T00:00:00".into(),
watch_medium: None,
},
];
m.bulk_import.results = vec![None, None];
@@ -440,6 +444,7 @@ fn bulk_item_done_last_item_transitions_to_done() {
rating: 5,
comment: None,
watched_at: "2024-01-01T00:00:00".into(),
watch_medium: None,
}];
m.bulk_import.results = vec![None];
}

View File

@@ -23,6 +23,7 @@ fn log_review_request_skips_none_fields() {
rating: 5,
comment: None,
watched_at: "2024-01-15T20:00:00".into(),
watch_medium: None,
};
let json = serde_json::to_string(&req).unwrap();
assert!(!json.contains("external_metadata_id"));
@@ -42,6 +43,7 @@ fn log_review_request_includes_director_when_set() {
rating: 5,
comment: None,
watched_at: "2024-01-15T20:00:00".into(),
watch_medium: None,
};
let json = serde_json::to_string(&req).unwrap();
assert!(json.contains("\"manual_director\":\"Denis Villeneuve\""));