misc: do not allow storing AnyFormData objects (#88338)
gitea/wcs/pipeline/head This commit looks good
Details
gitea/wcs/pipeline/head This commit looks good
Details
This commit is contained in:
parent
6de8f10127
commit
69249df789
|
@ -1692,6 +1692,26 @@ def test_load_all_evolutions_on_any_formdata(pub):
|
|||
assert len([x for x in objects if x._evolution is not None]) == 100
|
||||
|
||||
|
||||
def test_store_on_any_formdata(pub):
|
||||
drop_formdef_tables()
|
||||
|
||||
formdef = FormDef()
|
||||
formdef.name = 'test any store'
|
||||
formdef.fields = []
|
||||
formdef.store()
|
||||
|
||||
data_class = formdef.data_class(mode='sql')
|
||||
formdata = data_class()
|
||||
formdata.just_created()
|
||||
formdata.receipt_time = localtime()
|
||||
formdata.store()
|
||||
|
||||
objects = sql.AnyFormData.select()
|
||||
assert len(objects) == 1
|
||||
with pytest.raises(TypeError):
|
||||
objects[0].store()
|
||||
|
||||
|
||||
def test_geoloc_in_global_view(pub):
|
||||
drop_formdef_tables()
|
||||
|
||||
|
|
|
@ -4725,6 +4725,8 @@ class AnyFormData(SqlMixin):
|
|||
# convert back unstructured geolocation to the 'native' formdata format.
|
||||
if o.geoloc_base_x is not None:
|
||||
o.geolocations = {'base': {'lon': o.geoloc_base_x, 'lat': o.geoloc_base_y}}
|
||||
# do not allow storing those partial objects
|
||||
o.store = None
|
||||
return o
|
||||
|
||||
@classmethod
|
||||
|
|
Loading…
Reference in New Issue