[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()
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")

View File

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