Fix iteration on records

This commit is contained in:
Guewen Baconnier 2018-07-27 11:45:08 +02:00
parent 3eeae22838
commit fa1110698e
2 changed files with 24 additions and 2 deletions

View File

@ -246,10 +246,12 @@ class ServerEnvMixin(models.AbstractModel):
for record in self: for record in self:
for field_name, options in self._server_env_fields.items(): for field_name, options in self._server_env_fields.items():
if record._server_env_has_key_defined(field_name): if record._server_env_has_key_defined(field_name):
self._compute_server_env_from_config(field_name, options) record._compute_server_env_from_config(field_name, options)
else: else:
self._compute_server_env_from_default(field_name, options) record._compute_server_env_from_default(
field_name, options
)
def _inverse_server_env(self, field_name): def _inverse_server_env(self, field_name):
options = self._server_env_fields[field_name] options = self._server_env_fields[field_name]

View File

@ -35,6 +35,26 @@ class TestServerEnvMixin(ServerEnvironmentCase):
self.assertEqual(foo.password, 'bar') self.assertEqual(foo.password, 'bar')
self.assertTrue(foo.ssl) self.assertTrue(foo.ssl)
def test_env_computed_fields_read_multi(self):
"""Read values in env-computed fields on several records"""
public = (
"[server_env_test]\n"
"host=test.example.com\n"
"port=21\n"
"user=foo\n"
)
# we can create the record even if we didn't provide
# the field host which was required
foo = self.env['server.env.test'].create({
'name': 'foo',
})
foo2 = self.env['server.env.test'].create({
'name': 'foo2',
})
foos = foo + foo2
with self.load_config(public):
foos._compute_server_env()
def test_env_computed_fields_write(self): def test_env_computed_fields_write(self):
"""Env-computed fields without key in config can be written""" """Env-computed fields without key in config can be written"""
public = ( public = (