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