Добавить статус «ожидающий утверждения» Odoo 12

#model #odoo #odoo-12

#Модель #odoo #odoo-12

Вопрос:

Я хочу добавить статус предложений, я вижу, что в начале их 3: предложение, отправленный бюджет и уведомление о заказе на продажу. Мне нужно добавить состояние «ожидающий утверждения», чтобы его утверждал только управляющий пользователь. Я знаю, что я могу сделать с помощью inherit, но где находится модель и какой модуль я должен поместить в качестве зависимости.

Кто-нибудь может мне помочь?

ОБНОВЛЕНИЕ: я уже нашел это. И я уже нашел поле, в которое хочу добавить больше состояний. Однако, будучи новичком, я не могу понять весь этот код. Может кто-нибудь объяснить мне, пожалуйста?


state = fields.Selection([
('draft', 'Quotation'),
('sent', 'Quotation Sent'),
('sale', 'Sales Order'),
('done', 'Locked'),
('cancel', 'Cancelled'),
], string='Status', readonly=True, copy=False, index=True, track_visibility='onchange', track_sequence=3, $
date_order = fields.Datetime(string='Order Date', required=True, readonly=True, index=True, states={'draft': [$
validity_date = fields.Date(string='Validity', readonly=True, copy=False, states={'draft': [('readonly', False$
help="Validity date of the quotation, after this date, the customer won't be able to validate the quotatio$
is_expired = fields.Boolean(compute='_compute_is_expired', string="Is expired")

Ответ №1:

котировки — это заказы на продажу, которые еще не подтверждены. Вы можете проверить модель записи с помощью нескольких подсказок, например:

  1. из URL, как только вы перейдете в меню предложений, вы получите URL, подобный следующему /web?#view_type=listamp;model=sale.orderamp;action=264amp;menu_id=166 . Здесь параметр модели model=sale.order , поэтому вам нужно искать определение модели sale.order .
  2. Перейдите к требуемому представлению, выберите меню отладки -> Действие редактирования, найдите объект field, также в этом случае sale.order .

Как только вы узнаете, над какой моделью вам нужно работать, вы можете найти определение моделей с помощью поиска _name.*sale.order или заменить sale.order на любую модель, которую вам нужно унаследовать.

В этом конкретном случае требуемый модуль определен в sale модуле. Итак, вы можете начать с наследования sale.order и установки sale в качестве зависимости ваших пользовательских модулей. Также имейте в виду, что встроенные модули odoo иногда наследуются, поэтому может возникнуть случай, когда вы хотите наследовать функциональность модели, но fields или views , которые вы хотите унаследовать, определены в дочернем модуле sale , например, некоторые функциональные возможности sale.order моделей определены в sale_stock модуле посредством наследования. В этом случае вы должны установить sale_stock как зависимость.

Комментарии:

1. Спасибо, я уже нашел это. И я уже нашел поле, в которое хочу добавить больше состояний. Однако, будучи новичком, я не могу понять весь этот код. Может кто-нибудь объяснить мне, пожалуйста?

2. Это было бы слишком сложно объяснить в StackOverflow. Попробуйте ознакомиться с официальной документацией , онлайн-руководствами или купите книгу о разработке Odoo.