[entity,views/json] backout 353bbd17a8b6 (reopens #2559931)
Calling .complete() unconditionnally from the json encoder is unsafe
since on entity creation validation:
* an eid may have been drawn (hence even .has_eid() would not help)
while processing form data in the edit controller
* a ValidationError may have been raised and the entity-creating
transaction rollbacked
This leads to a crash on the return path from the validation to the
browser, where the json_dumps((status, args, entity)) call will
stumble upon the .complete() call which will fail because the entity
does not (any more) exist in the database.
for eschema in schema.entities():
if not (eschema.final or 'cw_source' in eschema.subjrels):
add_relation_definition(eschema.type, 'cw_source', 'CWSource', ask_confirm=False)
sql('INSERT INTO cw_source_relation(eid_from, eid_to) '
'SELECT e.eid,s.cw_eid FROM entities as e, cw_CWSource as s '
'WHERE s.cw_name=e.source AND NOT EXISTS(SELECT 1 FROM cw_source_relation WHERE eid_from=e.eid AND eid_to=s.cw_eid)')
commit()