fix: add Notes schema type

this is because the dict we get from (normalizing the) farmOS API
record will have e.g. `notes=None` but that winds up rendering as
"None" instead of empty string - so we use colander.null value in such
cases so empty string is rendered
This commit is contained in:
Lance Edgar 2026-02-24 20:03:59 -06:00
parent 331543d74b
commit b9ab27523f
2 changed files with 25 additions and 1 deletions

View file

@ -28,6 +28,7 @@ import json
import colander import colander
from wuttaweb.forms.schema import ObjectRef, WuttaSet from wuttaweb.forms.schema import ObjectRef, WuttaSet
from wuttaweb.forms.widgets import NotesWidget
class AnimalTypeRef(ObjectRef): class AnimalTypeRef(ObjectRef):
@ -380,3 +381,25 @@ class LogAssetRefs(WuttaSet):
from wuttafarm.web.forms.widgets import LogAssetRefsWidget from wuttafarm.web.forms.widgets import LogAssetRefsWidget
return LogAssetRefsWidget(self.request, **kwargs) return LogAssetRefsWidget(self.request, **kwargs)
class Notes(colander.String):
"""
Custom schema type for "note" fields.
"""
def serialize(self, node, appstruct):
""" """
if not appstruct:
return colander.null
return super().serialize(node, appstruct)
def widget_maker(self, **kwargs):
"""
Construct a default widget for the field.
:returns: Instance of
:class:`~wuttaweb.forms.widgets.NotesWidget`.
"""
return NotesWidget(**kwargs)

View file

@ -25,7 +25,7 @@ View for farmOS Harvest Logs
from webhelpers2.html import tags from webhelpers2.html import tags
from wuttaweb.forms.schema import WuttaDateTime, WuttaDictEnum, Notes from wuttaweb.forms.schema import WuttaDateTime, WuttaDictEnum
from wuttaweb.forms.widgets import WuttaDateTimeWidget from wuttaweb.forms.widgets import WuttaDateTimeWidget
from wuttafarm.web.views.farmos import FarmOSMasterView from wuttafarm.web.views.farmos import FarmOSMasterView
@ -42,6 +42,7 @@ from wuttafarm.web.forms.schema import (
FarmOSAssetRefs, FarmOSAssetRefs,
FarmOSRefs, FarmOSRefs,
LogQuick, LogQuick,
Notes,
) )
from wuttafarm.web.util import render_quantity_objects from wuttafarm.web.util import render_quantity_objects