l10n-brazil icon indicating copy to clipboard operation
l10n-brazil copied to clipboard

[14.0][BUG] Possivel erro na atualização quando a view l10n_br_base.res.partner.address quando não tem modelo de dados associado a ela

Open marcelsavegnago opened this issue 2 years ago • 3 comments

A principio toda view precisa de ter um modelo de dados quando ela é criada. Porém, esta view deve ser utilizada tanto pelo modelo de dados res.partner como pelo modelo de dados res.company e portanto existe um script que zera o modelo de dados associado a esta view para queo funcionamento ocorra conforme o planejado.

Porém, quando esta view não está com um modelo associado recebo mensagem de erros e somente após a associação do modelo de dados é que o sistema consegue atualizar os modulos.

image

l10n_br_base.l10n_br_base_res_partner_address l10n_br_zip.l10n_br_zip_res_partner_form

ping @renatonlima @rvalyi @mbcosta @netosjb @felipemotter @vanderleiromera @mileo

marcelsavegnago avatar Mar 08 '22 14:03 marcelsavegnago

Erro:
Odoo Server Error

Traceback (most recent call last):
  File "/home/odoo/src/odoo/odoo/addons/base/models/ir_http.py", line 237, in _dispatch
    result = request.dispatch()
  File "/home/odoo/src/odoo/odoo/http.py", line 685, in dispatch
    result = self._call_function(**self.params)
  File "/home/odoo/src/odoo/odoo/http.py", line 361, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/home/odoo/src/odoo/odoo/service/model.py", line 94, in wrapper
    return f(dbname, *args, **kwargs)
  File "/home/odoo/src/odoo/odoo/http.py", line 349, in checked_call
    result = self.endpoint(*a, **kw)
  File "/home/odoo/src/odoo/odoo/http.py", line 914, in __call__
    return self.method(*args, **kw)
  File "/home/odoo/src/odoo/odoo/http.py", line 533, in response_wrap
    response = f(*args, **kw)
  File "/home/odoo/src/odoo/addons/web/controllers/main.py", line 1398, in call_button
    action = self._call_kw(model, method, args, kwargs)
  File "/home/odoo/src/odoo/addons/web/controllers/main.py", line 1386, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "/home/odoo/src/odoo/odoo/api.py", line 399, in call_kw
    result = _call_kw_multi(method, model, args, kwargs)
  File "/home/odoo/src/odoo/odoo/api.py", line 386, in _call_kw_multi
    result = method(recs, *args, **kwargs)
  File "<decorator-gen-77>", line 2, in button_immediate_upgrade
  File "/home/odoo/src/odoo/odoo/addons/base/models/ir_module.py", line 74, in check_and_log
    return method(self, *args, **kwargs)
  File "/home/odoo/src/odoo/odoo/addons/base/models/ir_module.py", line 654, in button_immediate_upgrade
    return self._button_immediate_function(type(self).button_upgrade)
  File "/home/odoo/src/odoo/odoo/addons/base/models/ir_module.py", line 593, in _button_immediate_function
    modules.registry.Registry.new(self._cr.dbname, update_module=True)
  File "/home/odoo/src/odoo/odoo/modules/registry.py", line 89, in new
    odoo.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/home/odoo/src/odoo/odoo/modules/loading.py", line 455, in load_modules
    processed_modules += load_marked_modules(cr, graph,
  File "/home/odoo/src/odoo/odoo/modules/loading.py", line 347, in load_marked_modules
    loaded, processed = load_module_graph(
  File "/home/odoo/src/odoo/odoo/modules/loading.py", line 244, in load_module_graph
    env['ir.ui.view']._validate_module_views(module_name)
  File "/home/odoo/src/odoo/odoo/addons/base/models/ir_ui_view.py", line 1804, in _validate_module_views
    view.handle_view_error("Can't validate view:\n%s" % e)
  File "/home/odoo/src/odoo/odoo/addons/base/models/ir_ui_view.py", line 673, in handle_view_error
    raise ValueError(formatted_message).with_traceback(from_traceback) from from_exception
Exception

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/odoo/src/odoo/odoo/http.py", line 641, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/home/odoo/src/odoo/odoo/http.py", line 317, in _handle_exception
    raise exception.with_traceback(None) from new_cause
ValueError: Can't validate view:
Erro ao validar a visualização:

Modelo não encontrado: False

View name: l10n_br_base.res.partner.address
Error context:
 view: ir.ui.view(3431,)
 xmlid: l10n_br_base.l10n_br_base_res_partner_address


View name: l10n_br_base.res.partner.address
Error context:
 view: ir.ui.view(3431,)
 xmlid: l10n_br_base.l10n_br_base_res_partner_address

marcelsavegnago avatar Mar 10 '22 04:03 marcelsavegnago

Estou analisando o comportamento das views nativas do sistema em relação ao cadastro no res.partner e estou chegando a conclusão que pode ser necessário alguma modificação em relação a esta view reutilizavel tanto pelo res.partner como pelo res.company. Exemplo:

Quando o res.partner do tipo contato tem um parent_id, os dados de endereço apresentados no cadastro do contato são os da empresa e estes campos não devem ser alterados no cadastro do contato e sim no do parent_id. Atualmente estes campos ficam editáveis e geram insconsistência nesta situação. Como a view é aplicada tanto no res.partner como no res.company passamos a ter problema também para definir quando aquele campo eh readonly ou nao já que ficamos limitados a campos que são comuns entre os dois modelos de dados.

image

E além dos campos, o botão de pesquisa do CEP tbm precisa ser alterado para não permitir o clique nesta situação.

Ou seja, talvez esta reutilização destas views possa atrapalhar. Fora isso, como citado nas mensagens acima testando a atualização do sistema em uma edição enterprise o sistema reclama quando uma destas views reutilizavies nao tem um modelo de dados atrelado.

cc @renatonlima

marcelsavegnago avatar Jul 21 '22 15:07 marcelsavegnago

Marcel percebi isso tmb. Achei que era um erro na minha sequência de instalação. To como sempre na lxc aviso pelas duvidas

Em qui., 21 de jul. de 2022 12:14, Marcel Savegnago < @.***> escreveu:

Estou analisando o comportamento das views nativas do sistema em relação ao cadastro no res.partner e estou chegando a conclusão que pode ser necessário alguma modificação em relação a esta view reutilizavel tanto pelo res.partner como pelo res.company. Exemplo:

Quando o res.partner do tipo contato tem um parent_id os dados de endereço apresentados no cadastro do contato são os da empresa e este campos não devem ser alterados no cadastro do contato e sim no do parent_id. Atualmente estes campos ficam editaveis e geram insconsistencia. E como a view é aplicada tanto no res.partner como no res.company passamos a ter problema para definir quando aquele campo eh readonly ou nao usando por exemplo um campo que está apenas no res.partner e nao no res.company

[image: image] https://user-images.githubusercontent.com/3595132/180249577-86fa1919-d70e-4d9d-8be5-f5c39266bdf3.png

E além dos campos o botão de pesquisa do CEP tbm precisa ser alterado para não permitir o clique quando nesta situação

— Reply to this email directly, view it on GitHub https://github.com/OCA/l10n-brazil/issues/1829#issuecomment-1191609595, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJEVVIEXMHHBC2AML7TY2NLVVFSM5ANCNFSM5QGRTKJA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

marcos-mendez avatar Oct 11 '22 08:10 marcos-mendez

There hasn't been any activity on this issue in the past 6 months, so it has been marked as stale and it will be closed automatically if no further activity occurs in the next 30 days. If you want this issue to never become stale, please ask a PSC member to apply the "no stale" label.

github-actions[bot] avatar Aug 20 '23 12:08 github-actions[bot]