Progress! My custom constraints have effect on the query and don't
completely disappear. But when Update redirects to
".../query?foo-id=3&owner=admin...", the filters section doesn't end
up with my "Foo ID" custom constraint for 3, it ends up with "Ticket".
I suspect this is in the template:
{{{
<form id="query" method="post" action="${href.query()}"
py:with="field_names = sorted(fields.iterkeys(),
key=lambda name: fields[name].label.lower())">
<fieldset id="filters">
<legend class="foldable">Filters</legend>
<table summary="Query filters">
<tbody py:for="clause_num, constraints in
enumerate(clauses or [{}])"
py:with="clause_pre = '%d_' % clause_num">
<tr style="${'display: none' if clause_num == 0 else None}">
}}}
where `fields` doesn't include my custom constraints so the template
has nothing to match `?foo-id`. Maybe I need to add my custom
constraint names to `fields` earlier (or get them passed to the
template some how).