[scrobbles] Fix log saving tests
This commit is contained in:
@ -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")
|
||||||
|
|||||||
@ -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 {}
|
||||||
|
|||||||
Reference in New Issue
Block a user