Restored code for robustness
parent
92b3346935
commit
961520679c
|
@ -293,9 +293,8 @@ class BveView(models.Model):
|
||||||
join_nodes = get_join_nodes(info)
|
join_nodes = get_join_nodes(info)
|
||||||
|
|
||||||
table_name = self.model_name.replace('.', '_')
|
table_name = self.model_name.replace('.', '_')
|
||||||
tools.drop_view_if_exists(self.env.cr, table_name)
|
|
||||||
|
|
||||||
# this line is only for robustness in case something goes wrong
|
# robustness in case something went wrong
|
||||||
self._cr.execute('DROP TABLE IF EXISTS "%s"' % table_name)
|
self._cr.execute('DROP TABLE IF EXISTS "%s"' % table_name)
|
||||||
|
|
||||||
basic_fields = [
|
basic_fields = [
|
||||||
|
@ -344,6 +343,9 @@ class BveView(models.Model):
|
||||||
vals.update({'selection': selection_domain})
|
vals.update({'selection': selection_domain})
|
||||||
return vals
|
return vals
|
||||||
|
|
||||||
|
# clean dirty view (in case something went wrong)
|
||||||
|
self.action_reset()
|
||||||
|
|
||||||
# create sql view
|
# create sql view
|
||||||
self._create_sql_view()
|
self._create_sql_view()
|
||||||
|
|
||||||
|
@ -358,7 +360,8 @@ class BveView(models.Model):
|
||||||
for field in data
|
for field in data
|
||||||
if 'join_node' not in field]
|
if 'join_node' not in field]
|
||||||
}
|
}
|
||||||
model = self.env['ir.model'].sudo().create(model_vals)
|
Model = self.env['ir.model'].sudo().with_context(bve=True)
|
||||||
|
model = Model.create(model_vals)
|
||||||
|
|
||||||
# give access rights
|
# give access rights
|
||||||
self._build_access_rules(model)
|
self._build_access_rules(model)
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||||
|
|
||||||
from odoo import api, models
|
from odoo import api, models
|
||||||
|
from odoo.modules.registry import RegistryManager
|
||||||
|
|
||||||
NO_BI_MODELS = [
|
NO_BI_MODELS = [
|
||||||
'temp.range',
|
'temp.range',
|
||||||
|
@ -269,3 +270,26 @@ class IrModel(models.Model):
|
||||||
reverse=True
|
reverse=True
|
||||||
)
|
)
|
||||||
return sorted_fields
|
return sorted_fields
|
||||||
|
|
||||||
|
@api.model
|
||||||
|
def create(self, vals):
|
||||||
|
if self._context and self._context.get('bve'):
|
||||||
|
vals['state'] = 'base'
|
||||||
|
res = super(IrModel, self).create(vals)
|
||||||
|
|
||||||
|
# this sql update is necessary since a write method here would
|
||||||
|
# be not working (an orm constraint is restricting the modification
|
||||||
|
# of the state field while updating ir.model)
|
||||||
|
q = ("""UPDATE ir_model SET state = 'manual'
|
||||||
|
WHERE id = """ + str(res.id))
|
||||||
|
self.env.cr.execute(q)
|
||||||
|
|
||||||
|
# # update registry
|
||||||
|
if self._context.get('bve'):
|
||||||
|
# setup models; this reloads custom models in registry
|
||||||
|
self.pool.setup_models(self._cr, partial=(not self.pool.ready))
|
||||||
|
|
||||||
|
# signal that registry has changed
|
||||||
|
RegistryManager.signal_registry_change(self.env.cr.dbname)
|
||||||
|
|
||||||
|
return res
|
||||||
|
|
Loading…
Reference in New Issue