This question has been flagged
1 Reply
7480 Views

custom module - psycopg2.errors.NotNullViolation


Odoo 13.0 CE

Selfhosted, localhost

Database: postgresql, selfhosted on own NAS

Windows 10, Phycharm



Dear all,


I created and installed my own app, I assigned the access to base.group_user in the security file ir.model.access.csv.

In the views.xml I created a menu, that should be visible on the root menu. It doesn't appear there. 

When I upgrade the app I receive the below error message. 


psycopg2.errors.NotNullViolation: null value in column "activity_user_type" violates not-null constraint

DETAIL:  Failing row contains (479, ad_assessment server, ir.actions.server, null, null, action, list,form, 1, 2020-04-13 22:00:19.8789, 1, 2020-04-13 22:00:19.8789, ir_actions_server, code, 5, 344, null, 

        action = {

          "type": "ir.actions.act_window",

 ..., null, null, null, null, null, null, null, null, null, null, null, null, null).


Do you know how this could be corrected? or what's the cause? 


Thank you.

Kind regards, 



Full odoo error below:


Error:

Odoo Server Error


Traceback (most recent call last):

  File "C:\Users\cot\Odoo 13.0\server\odoo\tools\convert.py", line 712, in parse

    self._tag_root(de)

  File "C:\Users\cot\Odoo 13.0\server\odoo\tools\convert.py", line 674, in _tag_root

    f(rec)

  File "C:\Users\cot\Odoo 13.0\server\odoo\tools\convert.py", line 674, in _tag_root

    f(rec)

  File "C:\Users\cot\Odoo 13.0\server\odoo\tools\convert.py", line 577, in _tag_record

    record = model._load_records([data], self.mode == 'update')

  File "C:\Users\cot\Odoo 13.0\server\odoo\models.py", line 4080, in _load_records

    records = self._load_records_create([data['values'] for data in to_create])

  File "C:\Users\cot\Odoo 13.0\server\odoo\models.py", line 3994, in _load_records_create

    return self.create(values)

  File "<decorator-gen-34>", line 2, in create

  File "C:\Users\cot\Odoo 13.0\server\odoo\api.py", line 336, in _model_create_multi

    return create(self, arg)

  File "C:\Users\cot\Odoo 13.0\server\odoo\addons\base\models\ir_actions.py", line 59, in create

    res = super(IrActions, self).create(vals_list)

  File "<decorator-gen-3>", line 2, in create

  File "C:\Users\cot\Odoo 13.0\server\odoo\api.py", line 336, in _model_create_multi

    return create(self, arg)

  File "C:\Users\cot\Odoo 13.0\server\odoo\models.py", line 3742, in create

    records = self._create(data_list)

  File "C:\Users\cot\Odoo 13.0\server\odoo\models.py", line 3828, in _create

    cr.execute(query, params)

  File "C:\Users\cot\Odoo 13.0\server\odoo\sql_db.py", line 164, in wrapper

    return f(self, *args, **kwargs)

  File "C:\Users\cot\Odoo 13.0\server\odoo\sql_db.py", line 241, in execute

    res = self._obj.execute(query, params)

psycopg2.errors.NotNullViolation: null value in column "activity_user_type" violates not-null constraint

DETAIL:  Failing row contains (479, ad_assessment server, ir.actions.server, null, null, action, list,form, 1, 2020-04-13 22:00:19.8789, 1, 2020-04-13 22:00:19.8789, ir_actions_server, code, 5, 344, null, 

        action = {

          "type": "ir.actions.act_window",

 ..., null, null, null, null, null, null, null, null, null, null, null, null, null).



During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "C:\Users\cot\Odoo 13.0\server\odoo\http.py", line 624, in _handle_exception

    return super(JsonRequest, self)._handle_exception(exception)

  File "C:\Users\cot\Odoo 13.0\server\odoo\http.py", line 310, in _handle_exception

    raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])

  File "C:\Users\cot\Odoo 13.0\server\odoo\tools\pycompat.py", line 14, in reraise

    raise value

  File "C:\Users\cot\Odoo 13.0\server\odoo\http.py", line 669, in dispatch

    result = self._call_function(**self.params)

  File "C:\Users\cot\Odoo 13.0\server\odoo\http.py", line 350, in _call_function

    return checked_call(self.db, *args, **kwargs)

  File "C:\Users\cot\Odoo 13.0\server\odoo\service\model.py", line 93, in wrapper

    return f(dbname, *args, **kwargs)

  File "C:\Users\cot\Odoo 13.0\server\odoo\http.py", line 339, in checked_call

    result = self.endpoint(*a, **kw)

  File "C:\Users\cot\Odoo 13.0\server\odoo\http.py", line 915, in __call__

    return self.method(*args, **kw)

  File "C:\Users\cot\Odoo 13.0\server\odoo\http.py", line 515, in response_wrap

    response = f(*args, **kw)

  File "C:\Users\cot\Odoo 13.0\server\odoo\addons\web\controllers\main.py", line 1326, in call_button

    action = self._call_kw(model, method, args, kwargs)

  File "C:\Users\cot\Odoo 13.0\server\odoo\addons\web\controllers\main.py", line 1314, in _call_kw

    return call_kw(request.env[model], method, args, kwargs)

  File "C:\Users\cot\Odoo 13.0\server\odoo\api.py", line 387, in call_kw

    result = _call_kw_multi(method, model, args, kwargs)

  File "C:\Users\cot\Odoo 13.0\server\odoo\api.py", line 374, in _call_kw_multi

    result = method(recs, *args, **kwargs)

  File "<decorator-gen-65>", line 2, in button_immediate_upgrade

  File "C:\Users\cot\Odoo 13.0\server\odoo\addons\base\models\ir_module.py", line 72, in check_and_log

    return method(self, *args, **kwargs)

  File "C:\Users\cot\Odoo 13.0\server\odoo\addons\base\models\ir_module.py", line 634, in button_immediate_upgrade

    return self._button_immediate_function(type(self).button_upgrade)

  File "C:\Users\cot\Odoo 13.0\server\odoo\addons\base\models\ir_module.py", line 573, in _button_immediate_function

    modules.registry.Registry.new(self._cr.dbname, update_module=True)

  File "C:\Users\cot\Odoo 13.0\server\odoo\modules\registry.py", line 86, in new

    odoo.modules.load_modules(registry._db, force_demo, status, update_module)

  File "C:\Users\cot\Odoo 13.0\server\odoo\modules\loading.py", line 419, in load_modules

    force, status, report, loaded_modules, update_module, models_to_check)

  File "C:\Users\cot\Odoo 13.0\server\odoo\modules\loading.py", line 315, in load_marked_modules

    perform_checks=perform_checks, models_to_check=models_to_check

  File "C:\Users\cot\Odoo 13.0\server\odoo\modules\loading.py", line 225, in load_module_graph

    load_data(cr, idref, mode, kind='data', package=package, report=report)

  File "C:\Users\cot\Odoo 13.0\server\odoo\modules\loading.py", line 68, in load_data

    tools.convert_file(cr, package.name, filename, idref, mode, noupdate, kind, report)

  File "C:\Users\cot\Odoo 13.0\server\odoo\tools\convert.py", line 736, in convert_file

    convert_xml_import(cr, module, fp, idref, mode, noupdate, report)

  File "C:\Users\cot\Odoo 13.0\server\odoo\tools\convert.py", line 803, in convert_xml_import

    obj.parse(doc.getroot())

  File "C:\Users\cot\Odoo 13.0\server\odoo\tools\convert.py", line 721, in parse

    exc_info[2]

  File "C:\Users\cot\Odoo 13.0\server\odoo\tools\pycompat.py", line 13, in reraise

    raise value.with_traceback(tb)

  File "C:\Users\cot\Odoo 13.0\server\odoo\tools\convert.py", line 712, in parse

    self._tag_root(de)

  File "C:\Users\cot\Odoo 13.0\server\odoo\tools\convert.py", line 674, in _tag_root

    f(rec)

  File "C:\Users\cot\Odoo 13.0\server\odoo\tools\convert.py", line 674, in _tag_root

    f(rec)

  File "C:\Users\cot\Odoo 13.0\server\odoo\tools\convert.py", line 577, in _tag_record

    record = model._load_records([data], self.mode == 'update')

  File "C:\Users\cot\Odoo 13.0\server\odoo\models.py", line 4080, in _load_records

    records = self._load_records_create([data['values'] for data in to_create])

  File "C:\Users\cot\Odoo 13.0\server\odoo\models.py", line 3994, in _load_records_create

    return self.create(values)

  File "<decorator-gen-34>", line 2, in create

  File "C:\Users\cot\Odoo 13.0\server\odoo\api.py", line 336, in _model_create_multi

    return create(self, arg)

  File "C:\Users\cot\Odoo 13.0\server\odoo\addons\base\models\ir_actions.py", line 59, in create

    res = super(IrActions, self).create(vals_list)

  File "<decorator-gen-3>", line 2, in create

  File "C:\Users\cot\Odoo 13.0\server\odoo\api.py", line 336, in _model_create_multi

    return create(self, arg)

  File "C:\Users\cot\Odoo 13.0\server\odoo\models.py", line 3742, in create

    records = self._create(data_list)

  File "C:\Users\cot\Odoo 13.0\server\odoo\models.py", line 3828, in _create

    cr.execute(query, params)

  File "C:\Users\cot\Odoo 13.0\server\odoo\sql_db.py", line 164, in wrapper

    return f(self, *args, **kwargs)

  File "C:\Users\cot\Odoo 13.0\server\odoo\sql_db.py", line 241, in execute

    res = self._obj.execute(query, params)

odoo.tools.convert.ParseError: "null value in column "activity_user_type" violates not-null constraint

DETAIL:  Failing row contains (479, ad_assessment server, ir.actions.server, null, null, action, list,form, 1, 2020-04-13 22:00:19.8789, 1, 2020-04-13 22:00:19.8789, ir_actions_server, code, 5, 344, null, 

        action = {

          "type": "ir.actions.act_window",

 ..., null, null, null, null, null, null, null, null, null, null, null, null, null).

" while parsing file:/c:/users/cot/odoo 13.0/server/addons/ad_assessment/views/views.xml:3, near

<odoo>

  <data>


    <record id="action_ad_assessment" model="ir.actions.act_window">

        <field name="name">AD assessment</field>

        <field name="type">ir.actions.act_window</field>

        <field name="res_model">res.partner</field>

        <field name="view_mode">tree,form</field>

        <field name="search_view_id" ref="base.view_res_partner_filter"/>

        <field name="context">{'default_is_company': True}</field>

        <field name="help" type="html">

          <p class="o_view_nocontent_smiling_face">

            Create a contact in your address book

          </p><p>

            Odoo helps you to easily track all activities related to a customer.

          </p>

        </field>

    </record>

<!--    &lt;!&ndash; explicit list view definition &ndash;&gt;-->


<!--    <record model="ir.ui.view" id="ad_assessment.list">-->

<!--      <field name="name">ad_assessment list</field>-->

<!--      <field name="model">ad_assessment</field>-->

<!--      <field name="arch" type="xml">-->

<!--        <tree>-->

<!--          <field name="name"/>-->

<!--          <field name="acModel"/>-->

<!--          <field name="country"/>-->

<!--          <field name="adSubject"/>-->

<!--          <field name="sbReference"/>-->

<!--          <field name="issueDate"/>-->

<!--          <field name="effectiveDate"/>-->

<!--          <field name="product"/>-->

<!--          <field name="oem"/>-->

<!--        </tree>-->

<!--      </field>-->

<!--    </record>-->


<!--    explicit tree view definition -->


    <record id="action_ad_assessment_view_tree" model="ir.actions.act_window.view">

        <field name="sequence" eval="1"/>

        <field name="view_mode">tree</field>

        <field name="view_id" ref="base.view_partner_tree"/>

        <field name="act_window_id" ref="action_ad_assessment"/>

    </record>


    <record id="action_ad_assessment_view_form" model="ir.actions.act_window.view">

        <field name="sequence" eval="2"/>

        <field name="view_mode">form</field>

        <field name="view_id" ref="base.view_partner_form"/>

        <field name="act_window_id" ref="action_ad_assessment"/>

    </record>



    <!-- actions opening views on models -->


    <record model="ir.actions.act_window" id="ad_assessment.act_window">

      <field name="name">ad_assessment window</field>

      <field name="type">ir.action.act_window</field>

      <field name="res_model">ad_assessment</field>

      <field name="view_mode">tree,form</field>

      <field name="context">{'default_is_company': True}</field>

        <field name="help" type="html">

          <p class="o_view_nocontent_smiling_face">

            Create a contact in your address book

          </p><p>

            Odoo helps you to easily track all activities related to a customer.

          </p>

        </field>

    </record>




    <!-- server action to the one above -->


    <record model="ir.actions.server" id="ad_assessment.action_server">

      <field name="name">ad_assessment server</field>

      <field name="model_id" ref="model_ad_assessment"/>

      <field name="state">code</field>

      <field name="code">

        action = {

          "type": "ir.actions.act_window",

          "view_mode": "tree,form",

          "res_model": model._name,

        }

      </field>

    </record>



    <!-- Top menu item -->


    <menuitem name="AD tool" id="ad_assessment.menu_root" sequence="1" groups="base.group_user"/>



    <!-- menu categories -->


    <menuitem name="Menu 1" id="ad_assessment.menu_1" parent="ad_assessment.menu_root"/>

    <menuitem name="Menu 2" id="ad_assessment.menu_2" parent="ad_assessment.menu_root"/>


    <!-- actions -->


    <menuitem name="List" id="ad_assessment.menu_1_list" parent="ad_assessment.menu_1" action="ad_assessment.action_window"/>

    <menuitem name="Server to list" id="ad_assessment" parent="ad_assessment.menu_2" action="ad_assessment.action_server"/>


  </data>

</odoo>

Avatar
Discard

I just have the similar error as yours. May i know if your problem is solved. If so, what did you do? Thank you.

Best Answer

add 'mail' to the depends in the manifest.py file in you module.

Avatar
Discard