[scrobbles] Fix log saving tests

This commit is contained in:
2026-05-31 23:24:22 -04:00
parent 96d1d7ac6b
commit 8d069df9d1
2 changed files with 21 additions and 13 deletions

View File

@ -607,7 +607,8 @@ def test_scrobble_detail_view_post_updates_log(client):
scrobble.refresh_from_db() scrobble.refresh_from_db()
assert scrobble.log["description"] == "Updated description" assert scrobble.log["description"] == "Updated description"
assert scrobble.log["notes"] == ["Updated note"] assert isinstance(scrobble.log["notes"], dict)
assert list(scrobble.log["notes"].values()) == ["Updated note"]
@pytest.mark.skip("Need to refactor") @pytest.mark.skip("Need to refactor")

View File

@ -112,11 +112,14 @@ class NotesDictWidget(forms.Widget):
def value_from_datadict(self, data, files, name): def value_from_datadict(self, data, files, name):
timestamps = data.getlist(f"{name}_timestamps") timestamps = data.getlist(f"{name}_timestamps")
if timestamps:
contents = data.getlist(f"{name}_contents") contents = data.getlist(f"{name}_contents")
return { result = {}
"timestamps": timestamps, for i, ts in enumerate(timestamps):
"contents": contents, if i < len(contents) and ts:
} result[ts] = contents[i]
return result if result else ""
return data.get(name, "")
def get_context(self, name, value, attrs): def get_context(self, name, value, attrs):
context = super().get_context(name, value, attrs) context = super().get_context(name, value, attrs)
@ -139,10 +142,14 @@ class NotesDictField(forms.Field):
def clean(self, value): def clean(self, value):
if not value: if not value:
return {} return {}
result = {}
timestamps = value.get("timestamps", []) if isinstance(value, str):
contents = value.get("contents", []) if value.strip():
for i, ts in enumerate(timestamps): from datetime import datetime
if i < len(contents) and ts and contents[i].strip(): return {datetime.now().isoformat(): value.strip()}
result[ts] = contents[i].strip() return {}
return result if result else {}
if isinstance(value, dict):
return value
return {}