2017-02-08 156 views
1

我有一個V9版本的9模塊。我試圖讓它在V10中安裝並出現錯誤。創建安全組時發生錯誤。我也嘗試從維護工具遷移到V10。Odoo 9模塊到V10

> Replace openerp imports to odoo. 
> 
>  Rename __openerp__.py to __manifest__.py 
> 
>  Replace select = True by index = TrueReplace string selectors in XML by name (if possible) or other attribute selector or even another 
> equivalent path/reference. For example, change <group string="x" 
> position="after"> by <group name="x" position="after">Remove <data> 
> and </data> in xml files if noupdate="0" 
> 
>  Replace the <openerp>/</openerp> tags in xml files by <odoo>/</odoo>. 
> 
>  Don't use @api.one with @api.onchange or it will crash. 
> 
>  ... 

下面是錯誤

File "/home/jason/git/odoo10/odoo/addons/base/ir/ir_model.py", line 1028, in xmlid_lookup 
    raise ValueError('External ID not found in the system: %s' % xmlid) 
ParseError: "<type 'exceptions.ValueError'>: "External ID not found in the system: base.group_sale_salesman_all_leads" while evaluating 
"[(4,ref('base.group_user')),           (4,ref('account.group_account_invoice')),           (4,ref('stock.group_stock_user')),           (4,ref('base.group_sale_salesman_all_leads'))]"" while parsing /home/jason/git/customaddons/layby_order/security/layby_security.xml:5, near 
<record id="group_layby_user" model="res.groups"> 
     <field name="name">Layby User</field> 
     <field name="category_id" ref="base.module_category_sales_management"/> 
     <field name="comment">This is applicable for Layby User.</field> 
     <field name="implied_ids" eval="[(4,ref('base.group_user')),           (4,ref('account.group_account_invoice')),           (4,ref('stock.group_stock_user')),           (4,ref('base.group_sale_salesman_all_leads'))]"/> 
    </record> 

layby_security.xml

<?xml version="1.0" encoding="utf-8"?> 
<openerp> 
<data> 

    <record id="group_layby_user" model="res.groups"> 
     <field name="name">Layby User</field> 
     <field name="category_id" ref="base.module_category_sales_management"/> 
     <field name="comment">This is applicable for Layby User.</field> 
     <field name="implied_ids" eval="[(4,ref('base.group_user')), 
             (4,ref('account.group_account_invoice')), 
             (4,ref('stock.group_stock_user')), 
             (4,ref('base.group_sale_salesman_all_leads'))]"/> 
    </record> 

</data> 
</openerp> 

ir.model.access.csv

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink 
access_layby_order,layby.order,model_layby_order,group_layby_user,1,1,1,0 
access_layby_order_line,layby.order.line,model_layby_order_line,group_layby_user,1,1,1,1 

如果我停止服務器並啓動它再次嘗試安裝我得到的第一個錯誤

File "/home/jason/git/customaddons/layby_order/layby.py", line 147 
     date_order = fields.Date.context_today(self) 
SyntaxError: invalid syntax 

之後,如果我安裝我得到的分析錯誤外部ID未找到。我想我得到的原因是因爲安裝停止在線147 date_order = fields.Date.context_today(self),但我不知道爲什麼。

更新

仍停在管線147

date_order = fields.Date.context_today(self)) 

更改爲sales_team.group_sale_salesman_all_leads

原來的錯誤是走了,但現在得到

raise Exception(_('Module loading %s failed: file %s could not be processed:\n %s') % (module, fname, warning_msg)) 
Exception: Module loading layby_order failed: file layby_order/security/ir.model.access.csv could not be processed: 
No matching record found for external id 'model_layby_order' in field 'Object' 
Missing required value for the field 'Object' (model_id) 
No matching record found for external id 'model_layby_order_line' in field 'Object' 
Missing required value for the field 'Object' (model_id) 

回答

2

OCA指南遷移從V9模塊後到v10大多是足夠的,除了它沒有提到過去以base爲前綴的幾個安全組已經被移動/模塊化到它們各自的模塊,例如base.group_hr_user,正如您在案例中看到的base.group_sale_salesman_all_leads

解決您的第一個問題,改變你的裁判base.group_sale_salesman_all_leadssales_team.group_sale_salesman_all_leadslayby_security.xml

<?xml version="1.0" encoding="utf-8"?> 
<openerp> 
<data> 

    <record id="group_layby_user" model="res.groups"> 
     <field name="name">Layby User</field> 
     <field name="category_id" ref="base.module_category_sales_management"/> 
     <field name="comment">This is applicable for Layby User</field> 
     <field name="implied_ids" eval="[(4,ref('base.group_user')), 
            (4,ref('account.group_account_invoice')), 
            (4,ref('stock.group_stock_user')), 
            (4,ref('sales_team.group_sale_salesman_all_leads'))]"/> 
    </record> 

</data> 
</openerp> 

對於你的第二個問題,如果date_order是要添加到您的類中的字段,這樣做,而不是:

date_order = fields.Date(default=fields.Date.context_today) 

否則,如果您實際聲明變量而不是新字段,則語法看起來不錯,而Odoo 10仍在使用fields.Date.context_today()

您可以look it up on github


編輯:(問題是更新後)

錯誤可能是因爲你缺少你res.groups記錄模型聲明。

您可以嘗試在layby_security.xml中添加<field name="model_id" ref="model_layby_order"/>嗎?

<?xml version="1.0" encoding="utf-8"?> 
<openerp> 
<data> 

    <record id="group_layby_user" model="res.groups"> 
     <field name="name">Layby User</field> 
     <field name="model_id" ref="model_layby_order"/> 
     <field name="category_id" ref="base.module_category_sales_management"/> 
     <field name="comment">This is applicable for Layby User</field> 
     <field name="implied_ids" eval="[(4,ref('base.group_user')), 
            (4,ref('account.group_account_invoice')), 
            (4,ref('stock.group_stock_user')), 
            (4,ref('sales_team.group_sale_salesman_all_leads'))]"/> 
    </record> 

</data> 
</openerp> 
+0

我更新了我原來的問題。我得到了一個不同的錯誤,現在無法處理ir.model.access.csv:仍然停在date_order = fields.Date.context_today(self)) – user2379186

+0

我更新了答案!讓我知道它是否有幫助。 –

+0

我收到提高ValueError('系統中找不到外部ID:%s'%xmlid) ParseError:解析/ home/jason/git/customaddons/layby_order時系統中找不到外部ID:layby_order.model_layby_order/security/layby_security.xml:5,在 – user2379186