カスタムモジュールを使用してOdooの機能を変更しようとしています。プロジェクトタスクのコピー機能を変更することです。ネイティブに、作業要約を含むタスクを含むテンプレートから新規プロジェクトを作成する場合、作業要約はコピーされません(私はそれらを保持したい)。私は仕事をコピーする機能を見つけましたが、このままで立ち往生しています...Odoo 8ネイティブモジュールを変更するエラーを修正しました
これは私が得たエラーです(これはduplicate_template()を参照しているためわかりません) )プロジェクトのクラスから:
Traceback (most recent call last): File "/opt/odoo/odoo-server/openerp/http.py", line 540, in
_handle_exception
return super(JsonRequest, self)._handle_exception(exception) File "/opt/odoo/odoo-server/openerp/http.py", line 577, in dispatch
result = self._call_function(**self.params) File "/opt/odoo/odoo-server/openerp/http.py", line 313, in _call_function
return checked_call(self.db, *args, **kwargs) File "/opt/odoo/odoo-server/openerp/service/model.py", line 118, in wrapper
return f(dbname, *args, **kwargs) File "/opt/odoo/odoo-server/openerp/http.py", line 310, in checked_call
return self.endpoint(*a, **kw) File "/opt/odoo/odoo-server/openerp/http.py", line 806, in __call__
return self.method(*args, **kw) File "/opt/odoo/odoo-server/openerp/http.py", line 406, in response_wrap
response = f(*args, **kw) File "/opt/odoo/odoo-server/addons/web/controllers/main.py", line 948, in call_button
action = self._call_kw(model, method, args, {}) File "/opt/odoo/odoo-server/addons/web/controllers/main.py", line 936, in
_call_kw
return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs) File "/opt/odoo/odoo-server/openerp/api.py", line 268, in wrapper
return old_api(self, *args, **kwargs) File "/opt/odoo/odoo-server/openerp/api.py", line 399, in old_api
result = method(recs, *args, **kwargs)
TypeError: duplicate_template() takes at least 4 arguments (2 given)
そして、ここに私のコードです:
mymodule.py
import openerp
from openerp import models,fields,api
from openerp.osv import fields, osv
class task(osv.osv):
_inherit="project.task"
@api.multi
def copy_data(self, default=None, context=None):
if default is None:
default = {}
current = self.browse(cr, uid, id, context=context)
if not default.get('name'):
default['name'] = _("%s (copy)") % current.name
if 'remaining_hours' not in default:
default['remaining_hours'] = current.planned_hours
default['work_ids'] = current.work_ids
return super(task, self).copy_data(cr, uid, id, default, context)
default['work_ids'] = current.work_ids was added by me - it was not included in original function.
なぜ私は間違っているのですか?
ご協力いただきありがとうございます。
大切にしてください。
にする必要があり、あなたの答えは完全に傲慢だったにもかかわらず、それは非常に役に立ちました。私はもう一度文書を読むでしょう。物事を明確にするために、誰かが私のために無料でコードを書くことを期待していませんでした。ありがとう。 –