ステータスバーでステータスを追加するために、クラス calendar_event を拡張します。イベントを更新すると完全に機能しますが、作成しようとすると問題が発生します:
トレースバック (最新の呼び出しが最後): ファイル "/home/x/workspace/Odoo8/openerp/http.py"、530 行目、_handle_exception 内 super(JsonRequest, self)._handle_exception(例外) を返す ファイル「/home/x/workspace/Odoo8/openerp/http.py」、行 567、ディスパッチ 結果 = self._call_function(**self.params) ファイル "/home/x/workspace/Odoo8/openerp/http.py"、303 行目、_call_function 内 return checked_call(self.db, *args, **kwargs) ファイル「/home/x/workspace/Odoo8/openerp/service/model.py」、113 行目、ラッパー f(dbname, *args, **kwargs) を返す ファイル "/home/x/workspace/Odoo8/openerp/http.py"、300 行目、checked_call 内 return self.endpoint(*a, **kw) ファイル "/home/x/workspace/Odoo8/openerp/http.py"、796 行目、__call__ 内 return self.method(*args, **kw) ファイル「/home/x/workspace/Odoo8/openerp/http.py」、396 行目、response_wrap 内 応答 = f(*args, **kw) ファイル "/home/x/workspace/alpbureautique_openerp/openerp/addons/web/controllers/main.py"、949 行目、call_kw return self._call_kw(モデル、メソッド、引数、kwargs) ファイル "/home/x/workspace/alpbureautique_openerp/openerp/addons/web/controllers/main.py"、941 行目、_call_kw return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs) ファイル「/home/x/workspace/Odoo8/openerp/api.py」、241 行目、ラッパー return old_api(self, *args, **kwargs) ファイル「/home/x/workspace/alpbureautique_openerp/openerp/cap_addons/cap_CRM/models/calendar_event.py」、66行目、作成 res = super(calendar_event, self).create(cr, uid, vals, context=context) ファイル「/home/x/workspace/Odoo8/openerp/api.py」、241 行目、ラッパー return old_api(self, *args, **kwargs) ファイル「/home/x/workspace/alpbureautique_openerp/openerp/addons/crm/calendar_event.py」、36 行目、作成 res = super(calendar_event, self).create(cr, uid, vals, context=context) ファイル「/home/x/workspace/Odoo8/openerp/api.py」、241 行目、ラッパー return old_api(self, *args, **kwargs) ファイル「/home/x/workspace/alpbureautique_openerp/openerp/addons/calendar/calendar.py」、1646 行目、作成 res = super(calendar_event, self).create(cr, uid, vals, context=context) ファイル「/home/x/workspace/Odoo8/openerp/api.py」、241 行目、ラッパー return old_api(self, *args, **kwargs) ファイル「/home/x/workspace/alpbureautique_openerp/openerp/addons/mail/mail_thread.py」、377行目、作成 thread_id = super(mail_thread, self).create(cr, uid, values, context=context) ファイル「/home/x/workspace/Odoo8/openerp/api.py」、241 行目、ラッパー return old_api(self, *args, **kwargs) ファイル「/home/x/workspace/Odoo8/openerp/api.py」、336 行目、old_api 内 結果 = メソッド (recs、*args、**kwargs) ファイル「/home/x/workspace/Odoo8/openerp/models.py」、行 4042、作成 レコード = self.browse(self._create(old_vals)) ファイル「/home/x/workspace/Odoo8/openerp/api.py」、239 行目、ラッパー return new_api(self, *args, **kwargs) ファイル「/home/x/workspace/Odoo8/openerp/api.py」、462 行目、new_api 内 結果 = メソッド (self._model, cr, uid, *args, **kwargs) ファイル「/home/x/workspace/Odoo8/openerp/models.py」、4214 行目、_create 内 recs.modified(self._fields) ファイル「/home/x/workspace/Odoo8/openerp/api.py」、239 行目、ラッパー return new_api(self, *args, **kwargs) ファイル「/home/x/workspace/Odoo8/openerp/models.py」、行 5608、変更済み spec += self._fields[fname].modified(self) ファイル「/home/x/workspace/Odoo8/openerp/fields.py」の 1414 行を修正 spec = super(_Relational, self).modified(レコード) ファイル「/home/x/workspace/Odoo8/openerp/fields.py」、行 908、修正済み target = env[field.model_name].search([(path, 'in', records.ids)]) ファイル「/home/x/workspace/Odoo8/openerp/api.py」、239 行目、ラッパー return new_api(self, *args, **kwargs) ファイル「/home/x/workspace/Odoo8/openerp/api.py」、462 行目、new_api 内 結果 = メソッド (self._model, cr, uid, *args, **kwargs) ファイル「/home/x/workspace/alpbureautique_openerp/openerp/addons/calendar/calendar.py」、1511行目、検索 res = self.get_recurrent_ids(cr, uid, res, args, order=order, context=context) ファイル「/home/x/workspace/Odoo8/openerp/api.py」、241 行目、ラッパー return old_api(self, *args, **kwargs) ファイル "/home/x/workspace/alpbureautique_openerp/openerp/addons/calendar/calendar.py"、1187 行目、get_recurrent_ids 内 result_data.append(self.get_search_fields(ev, order_fields)) ファイル「/home/x/workspace/alpbureautique_openerp/openerp/addons/calendar/calendar.py」、1155 行目、get_search_fields 内 sort_fields['sort_start'] = browse_event['display_start'].replace(' ', '').replace('-', '') AttributeError: 'bool' オブジェクトには属性 'replace' がありません
このエラーは、super() によって create() を呼び出したときに発生し、フィールド「participant_without_owner」とのリンクです
私のコード:
クラス calendar_event(osv.Model): _inherit = 'calendar.event' _列 = { 'cap_state':fields.selection( [(「オープン」、「確認済み」)、 (「キャンセル」、「キャンセル」)、 (「保留中」、「保留中」)、 (「完了」、「保留」) ], string='ステータス', track_visibility='onchange', help='ケースが作成されると、ステータスは [確認済み] に設定されます。\n' 「通話が終了すると、ステータスは保留に設定されます。\n」 '通話が適用されなくなった場合、ステータスをキャンセル済みに設定できます。'), 'participant_without_owner':fields.char(compute="_compute_participant",store=True), } _デフォルト = { 'cap_state':'open' } @api.depends('partner_ids', 'user_id') def _compute_participant (自己): 自己記録用: record.partner_ids の record.user_id.partner_id の場合: 参加者 = record.partner_ids - record.user_id.partner_id chaine = str("") 参加者の p の場合: chaine = chaine + p.name + ", " record.participant_without_owner = chaine def done_event_in_tree (自己、cr、uid、ids、コンテキスト = なし): res = self.write(cr, uid, ids, {'cap_state': 'done'}, context) 解像度を返す def create (self、cr、uid、vals、context=None): 日時を dt としてインポート コンテキストが None の場合: コンテキスト = {} date_appel = datetime.strptime(vals['start_datetime'], '%Y-%m-%d %H:%M:%S') 印字タイプ(date_appel) 印刷タイプ (dt.datetime.today()) date_appel > dt.datetime.today() の場合: vals['cap_state'] = 'open' そうしないと: vals['cap_state'] = '完了' vals['participant_without_owner'] = "" 値を出力 res = super(calendar_event, self).create(cr, uid, vals, context=context) 解像度を返す
odoo v8 で