From 7246170de62bc2b5e0beca5fb16f7274448ce401 Mon Sep 17 00:00:00 2001 From: Nimesh Jethva Date: Mon, 17 Sep 2018 16:23:03 +0530 Subject: [PATCH 01/14] [IMP]account_*: Improvement in model description Purpose of this commit is to give description more "business oriented" because those descriptions appears in Odoo Studio which is supposed to be used by end users, not only by developers. Related Task ID : 37311 --- addons/account/models/account.py | 2 ++ addons/account/models/account_bank_statement.py | 4 ++-- addons/account/models/account_cash_rounding.py | 2 +- addons/account/models/account_move.py | 2 +- addons/account/models/account_payment.py | 2 +- addons/account/models/chart_template.py | 7 ++++--- addons/account/models/partner.py | 4 ++-- addons/account/models/reconciliation_widget.py | 1 + addons/account/report/account_aged_partner_balance.py | 1 + addons/account/report/account_balance.py | 1 + addons/account/report/account_general_ledger.py | 1 + addons/account/report/account_invoice_report.py | 1 + addons/account/report/account_journal.py | 1 + addons/account/report/account_overdue_report.py | 1 + addons/account/report/account_partner_ledger.py | 1 + addons/account/report/account_report_financial.py | 1 + addons/account/report/account_tax.py | 1 + addons/account/wizard/account_invoice_send.py | 1 + addons/account/wizard/account_move_reversal.py | 2 +- .../account/wizard/account_report_aged_partner_balance.py | 2 +- addons/account/wizard/account_report_common_account.py | 4 ++-- addons/account/wizard/account_report_common_journal.py | 2 +- addons/account/wizard/account_report_common_partner.py | 4 ++-- addons/account/wizard/account_report_partner_ledger.py | 2 +- addons/account/wizard/pos_box.py | 2 ++ addons/account/wizard/setup_wizards.py | 2 ++ addons/account/wizard/wizard_tax_adjustments.py | 2 +- addons/account_asset/models/account_asset.py | 4 ++-- .../wizard/asset_depreciation_confirmation_wizard.py | 2 +- .../wizard/journal_creation.py | 2 +- addons/account_test/models/accounting_assert_test.py | 1 + addons/account_test/report/report_account_test.py | 1 + addons/account_voucher/models/account_voucher.py | 2 +- addons/analytic/models/analytic_account.py | 1 + addons/l10n_sg/models/res_company.py | 1 + addons/payment/models/payment_acquirer.py | 1 + .../payment/wizards/payment_acquirer_onboarding_wizard.py | 1 + 37 files changed, 48 insertions(+), 24 deletions(-) diff --git a/addons/account/models/account.py b/addons/account/models/account.py index 290e44088f4..6f1e1f101b7 100644 --- a/addons/account/models/account.py +++ b/addons/account/models/account.py @@ -353,6 +353,7 @@ class AccountAccount(models.Model): class AccountGroup(models.Model): _name = "account.group" + _description = 'Account Group' _parent_store = True _order = 'code_prefix' @@ -857,6 +858,7 @@ class ResPartnerBank(models.Model): class AccountTaxGroup(models.Model): _name = 'account.tax.group' + _description = 'Tax Group' _order = 'sequence asc' name = fields.Char(required=True, translate=True) diff --git a/addons/account/models/account_bank_statement.py b/addons/account/models/account_bank_statement.py index 9374827096f..e899374d0c8 100644 --- a/addons/account/models/account_bank_statement.py +++ b/addons/account/models/account_bank_statement.py @@ -34,7 +34,7 @@ class AccountBankStmtCashWizard(models.Model): Account Bank Statement popup that allows entering cash details. """ _name = 'account.bank.statement.cashbox' - _description = 'Account Bank Statement Cashbox Details' + _description = 'Bank Statement Cashbox' cashbox_lines_ids = fields.One2many('account.cashbox.line', 'cashbox_id', string='Cashbox Lines') @@ -59,7 +59,7 @@ class AccountBankStmtCloseCheck(models.TransientModel): Account Bank Statement wizard that check that closing balance is correct. """ _name = 'account.bank.statement.closebalance' - _description = 'Account Bank Statement closing balance' + _description = 'Bank Statement Closing Balance' @api.multi def validate(self): diff --git a/addons/account/models/account_cash_rounding.py b/addons/account/models/account_cash_rounding.py index 3b336360736..091874074e4 100644 --- a/addons/account/models/account_cash_rounding.py +++ b/addons/account/models/account_cash_rounding.py @@ -12,7 +12,7 @@ class AccountCashRounding(models.Model): see https://en.wikipedia.org/wiki/Cash_rounding for more details. """ _name = 'account.cash.rounding' - _description = 'Account Rounding' + _description = 'Account Cash Rounding' name = fields.Char(string='Name', translate=True, required=True) rounding = fields.Float(string='Rounding Precision', required=True, diff --git a/addons/account/models/account_move.py b/addons/account/models/account_move.py index a336f1f096f..e0066eb155b 100644 --- a/addons/account/models/account_move.py +++ b/addons/account/models/account_move.py @@ -18,7 +18,7 @@ from lxml import etree class AccountMove(models.Model): _name = "account.move" - _description = "Account Entry" + _description = "Journal Entries" _order = 'date desc, id desc' @api.multi diff --git a/addons/account/models/account_payment.py b/addons/account/models/account_payment.py index 4d0830b1737..ae3a7862d4e 100644 --- a/addons/account/models/account_payment.py +++ b/addons/account/models/account_payment.py @@ -248,7 +248,7 @@ class account_abstract_payment(models.AbstractModel): class account_register_payments(models.TransientModel): _name = "account.register.payments" _inherit = 'account.abstract.payment' - _description = "Register payments on multiple invoices" + _description = "Register Payments" group_invoices = fields.Boolean(string="Group Invoices", help="""If enabled, groups invoices by commercial partner, invoice account, type and recipient bank account in the generated payments. If disabled, diff --git a/addons/account/models/chart_template.py b/addons/account/models/chart_template.py index 256fe79feb6..46626cdcec0 100644 --- a/addons/account/models/chart_template.py +++ b/addons/account/models/chart_template.py @@ -92,7 +92,7 @@ class AccountAccountTemplate(models.Model): class AccountChartTemplate(models.Model): _name = "account.chart.template" - _description = "Templates for Account Chart" + _description = "Account Chart Template" name = fields.Char(required=True) parent_id = fields.Many2one('account.chart.template', string='Parent Chart Template') @@ -901,7 +901,7 @@ class AccountFiscalPositionTemplate(models.Model): class AccountFiscalPositionTaxTemplate(models.Model): _name = 'account.fiscal.position.tax.template' - _description = 'Template Tax Fiscal Position' + _description = 'Tax Mapping Template of Fiscal Position' _rec_name = 'position_id' position_id = fields.Many2one('account.fiscal.position.template', string='Fiscal Position', required=True, ondelete='cascade') @@ -911,7 +911,7 @@ class AccountFiscalPositionTaxTemplate(models.Model): class AccountFiscalPositionAccountTemplate(models.Model): _name = 'account.fiscal.position.account.template' - _description = 'Template Account Fiscal Mapping' + _description = 'Accounts Mapping Template of Fiscal Position' _rec_name = 'position_id' position_id = fields.Many2one('account.fiscal.position.template', string='Fiscal Mapping', required=True, ondelete='cascade') @@ -921,6 +921,7 @@ class AccountFiscalPositionAccountTemplate(models.Model): class AccountReconcileModelTemplate(models.Model): _name = "account.reconcile.model.template" + _description = 'Reconcile Model Template' # Base fields. chart_template_id = fields.Many2one('account.chart.template', string='Chart Template', required=True) diff --git a/addons/account/models/partner.py b/addons/account/models/partner.py index e828a29564d..34f51fc0204 100644 --- a/addons/account/models/partner.py +++ b/addons/account/models/partner.py @@ -164,7 +164,7 @@ class AccountFiscalPosition(models.Model): class AccountFiscalPositionTax(models.Model): _name = 'account.fiscal.position.tax' - _description = 'Taxes Fiscal Position' + _description = 'Tax Mapping of Fiscal Position' _rec_name = 'position_id' position_id = fields.Many2one('account.fiscal.position', string='Fiscal Position', @@ -181,7 +181,7 @@ class AccountFiscalPositionTax(models.Model): class AccountFiscalPositionAccount(models.Model): _name = 'account.fiscal.position.account' - _description = 'Accounts Fiscal Position' + _description = 'Accounts Mapping of Fiscal Position' _rec_name = 'position_id' position_id = fields.Many2one('account.fiscal.position', string='Fiscal Position', diff --git a/addons/account/models/reconciliation_widget.py b/addons/account/models/reconciliation_widget.py index 5d742281464..8b43259d847 100644 --- a/addons/account/models/reconciliation_widget.py +++ b/addons/account/models/reconciliation_widget.py @@ -9,6 +9,7 @@ from odoo.tools.misc import formatLang class AccountReconciliation(models.AbstractModel): _name = 'account.reconciliation.widget' + _description = 'Account Reconciliation widget' #################################################### # Public diff --git a/addons/account/report/account_aged_partner_balance.py b/addons/account/report/account_aged_partner_balance.py index 88a6f4e3d88..a6bd6908e2f 100644 --- a/addons/account/report/account_aged_partner_balance.py +++ b/addons/account/report/account_aged_partner_balance.py @@ -11,6 +11,7 @@ from dateutil.relativedelta import relativedelta class ReportAgedPartnerBalance(models.AbstractModel): _name = 'report.account.report_agedpartnerbalance' + _description = 'Aged Partner Balance Report' def _get_partner_move_lines(self, account_type, date_from, target_move, period_length): # This method can receive the context key 'include_nullified_amount' {Boolean} diff --git a/addons/account/report/account_balance.py b/addons/account/report/account_balance.py index 020a71efea6..13b7a03e188 100644 --- a/addons/account/report/account_balance.py +++ b/addons/account/report/account_balance.py @@ -7,6 +7,7 @@ from odoo.exceptions import UserError class ReportTrialBalance(models.AbstractModel): _name = 'report.account.report_trialbalance' + _description = 'Trial Balance Report' def _get_accounts(self, accounts, display_account): """ compute the balance, debit and credit for the provided accounts diff --git a/addons/account/report/account_general_ledger.py b/addons/account/report/account_general_ledger.py index ce7ce9f113f..caf72143533 100644 --- a/addons/account/report/account_general_ledger.py +++ b/addons/account/report/account_general_ledger.py @@ -7,6 +7,7 @@ from odoo.exceptions import UserError class ReportGeneralLedger(models.AbstractModel): _name = 'report.account.report_generalledger' + _description = 'General Ledger Report' def _get_account_move_entry(self, accounts, init_balance, sortby, display_account): """ diff --git a/addons/account/report/account_invoice_report.py b/addons/account/report/account_invoice_report.py index 7572abf7352..aa37b7bec3c 100644 --- a/addons/account/report/account_invoice_report.py +++ b/addons/account/report/account_invoice_report.py @@ -185,6 +185,7 @@ class AccountInvoiceReport(models.Model): class ReportInvoiceWithPayment(models.AbstractModel): _name = 'report.account.report_invoice_with_payments' + _description = 'Account report with payment lines' @api.model def _get_report_values(self, docids, data=None): diff --git a/addons/account/report/account_journal.py b/addons/account/report/account_journal.py index 8521ecffc05..a327ef76364 100644 --- a/addons/account/report/account_journal.py +++ b/addons/account/report/account_journal.py @@ -7,6 +7,7 @@ from odoo.exceptions import UserError class ReportJournal(models.AbstractModel): _name = 'report.account.report_journal' + _description = 'Account Journal Report' def lines(self, target_move, journal_ids, sort_selection, data): if isinstance(journal_ids, int): diff --git a/addons/account/report/account_overdue_report.py b/addons/account/report/account_overdue_report.py index 12e25678b3e..5a76419ad8e 100644 --- a/addons/account/report/account_overdue_report.py +++ b/addons/account/report/account_overdue_report.py @@ -6,6 +6,7 @@ from odoo import api, fields, models class ReportOverdue(models.AbstractModel): _name = 'report.account.report_overdue' + _description = 'Account Overdue Report' def _get_account_move_lines(self, partner_ids): res = {x: [] for x in partner_ids} diff --git a/addons/account/report/account_partner_ledger.py b/addons/account/report/account_partner_ledger.py index fa7f1206cca..3b0b9e276cc 100644 --- a/addons/account/report/account_partner_ledger.py +++ b/addons/account/report/account_partner_ledger.py @@ -8,6 +8,7 @@ from odoo.exceptions import UserError class ReportPartnerLedger(models.AbstractModel): _name = 'report.account.report_partnerledger' + _description = 'Partner Ledger Report' def _lines(self, data, partner): full_account = [] diff --git a/addons/account/report/account_report_financial.py b/addons/account/report/account_report_financial.py index 5f0f5bd497c..129cd6a7114 100644 --- a/addons/account/report/account_report_financial.py +++ b/addons/account/report/account_report_financial.py @@ -7,6 +7,7 @@ from odoo.exceptions import UserError class ReportFinancial(models.AbstractModel): _name = 'report.account.report_financial' + _description = 'Financial Report' def _compute_account_balance(self, accounts): """ compute the balance, debit and credit for the provided accounts diff --git a/addons/account/report/account_tax.py b/addons/account/report/account_tax.py index e41ee0564f0..ca8945b9a6f 100644 --- a/addons/account/report/account_tax.py +++ b/addons/account/report/account_tax.py @@ -6,6 +6,7 @@ from odoo.exceptions import UserError class ReportTax(models.AbstractModel): _name = 'report.account.report_tax' + _description = 'Tax Report' @api.model def _get_report_values(self, docids, data=None): diff --git a/addons/account/wizard/account_invoice_send.py b/addons/account/wizard/account_invoice_send.py index 7ccffbe66a6..23aa2e97ec2 100644 --- a/addons/account/wizard/account_invoice_send.py +++ b/addons/account/wizard/account_invoice_send.py @@ -8,6 +8,7 @@ from odoo.exceptions import UserError class AccountInvoiceSend(models.TransientModel): _name = 'account.invoice.send' _inherits = {'mail.compose.message':'composer_id'} + _description = 'Account Invoice Send' is_email = fields.Boolean('Email', default=lambda self: self.env.user.company_id.invoice_is_email) is_print = fields.Boolean('Print', default=lambda self: self.env.user.company_id.invoice_is_print) diff --git a/addons/account/wizard/account_move_reversal.py b/addons/account/wizard/account_move_reversal.py index 9fecac50a21..2150c570314 100644 --- a/addons/account/wizard/account_move_reversal.py +++ b/addons/account/wizard/account_move_reversal.py @@ -6,7 +6,7 @@ class AccountMoveReversal(models.TransientModel): Account move reversal wizard, it cancel an account move by reversing it. """ _name = 'account.move.reversal' - _description = 'Account move reversal' + _description = 'Account Move Reversal' date = fields.Date(string='Reversal date', default=fields.Date.context_today, required=True) journal_id = fields.Many2one('account.journal', string='Use Specific Journal', help='If empty, uses the journal of the journal entry to be reversed.') diff --git a/addons/account/wizard/account_report_aged_partner_balance.py b/addons/account/wizard/account_report_aged_partner_balance.py index 178f1f80c38..24a3d8766f6 100644 --- a/addons/account/wizard/account_report_aged_partner_balance.py +++ b/addons/account/wizard/account_report_aged_partner_balance.py @@ -11,7 +11,7 @@ class AccountAgedTrialBalance(models.TransientModel): _name = 'account.aged.trial.balance' _inherit = 'account.common.partner.report' - _description = 'Account Aged Trial balance Report' + _description = 'Aged Trial Balance Report' period_length = fields.Integer(string='Period Length (days)', required=True, default=30) journal_ids = fields.Many2many('account.journal', string='Journals', required=True) diff --git a/addons/account/wizard/account_report_common_account.py b/addons/account/wizard/account_report_common_account.py index bbb217d5b29..d8a9fc43a34 100644 --- a/addons/account/wizard/account_report_common_account.py +++ b/addons/account/wizard/account_report_common_account.py @@ -5,9 +5,9 @@ from odoo import api, fields, models class AccountCommonAccountReport(models.TransientModel): _name = 'account.common.account.report' - _description = 'Account Common Account Report' + _description = 'Common Account Report' _inherit = "account.common.report" - + display_account = fields.Selection([('all','All'), ('movement','With movements'), ('not_zero','With balance is not equal to 0'),], string='Display Accounts', required=True, default='movement') diff --git a/addons/account/wizard/account_report_common_journal.py b/addons/account/wizard/account_report_common_journal.py index 2e7ffd1c38c..448561f1d67 100644 --- a/addons/account/wizard/account_report_common_journal.py +++ b/addons/account/wizard/account_report_common_journal.py @@ -5,7 +5,7 @@ from odoo import api, fields, models class AccountCommonJournalReport(models.TransientModel): _name = 'account.common.journal.report' - _description = 'Account Common Journal Report' + _description = 'Common Journal Report' _inherit = "account.common.report" amount_currency = fields.Boolean('With Currency', help="Print Report with the currency column if the currency differs from the company currency.") diff --git a/addons/account/wizard/account_report_common_partner.py b/addons/account/wizard/account_report_common_partner.py index 21ff0d5e330..ea2375087af 100644 --- a/addons/account/wizard/account_report_common_partner.py +++ b/addons/account/wizard/account_report_common_partner.py @@ -5,9 +5,9 @@ from odoo import fields, models class AccountingCommonPartnerReport(models.TransientModel): _name = 'account.common.partner.report' - _description = 'Account Common Partner Report' + _description = 'Common Partner Report' _inherit = "account.common.report" - + result_selection = fields.Selection([('customer', 'Receivable Accounts'), ('supplier', 'Payable Accounts'), ('customer_supplier', 'Receivable and Payable Accounts') diff --git a/addons/account/wizard/account_report_partner_ledger.py b/addons/account/wizard/account_report_partner_ledger.py index 0dc5dff606a..e9e533dbcd4 100644 --- a/addons/account/wizard/account_report_partner_ledger.py +++ b/addons/account/wizard/account_report_partner_ledger.py @@ -7,7 +7,7 @@ from odoo.exceptions import UserError class AccountPartnerLedger(models.TransientModel): _inherit = "account.common.partner.report" _name = "account.report.partner.ledger" - _description = "Account Partner Ledger" + _description = "Account Partner Ledger Report" amount_currency = fields.Boolean("With Currency", help="It adds the currency column on report if the currency differs from the company currency.") reconciled = fields.Boolean('Reconciled Entries') diff --git a/addons/account/wizard/pos_box.py b/addons/account/wizard/pos_box.py index 525432833d1..7a11dd5c822 100644 --- a/addons/account/wizard/pos_box.py +++ b/addons/account/wizard/pos_box.py @@ -40,6 +40,7 @@ class CashBox(models.TransientModel): class CashBoxIn(CashBox): _name = 'cash.box.in' + _description = 'Cash Box In' ref = fields.Char('Reference') @@ -60,6 +61,7 @@ class CashBoxIn(CashBox): class CashBoxOut(CashBox): _name = 'cash.box.out' + _description = 'Cash Box Out' @api.multi def _calculate_values_for_statement_line(self, record): diff --git a/addons/account/wizard/setup_wizards.py b/addons/account/wizard/setup_wizards.py index 56618642f11..64f6aef1375 100644 --- a/addons/account/wizard/setup_wizards.py +++ b/addons/account/wizard/setup_wizards.py @@ -6,6 +6,7 @@ from odoo import api, fields, models class FinancialYearOpeningWizard(models.TransientModel): _name = 'account.financial.year.op' + _description = 'Opening Balance of Financial Year' company_id = fields.Many2one(comodel_name='res.company', required=True) opening_move_posted = fields.Boolean(string='Opening Move Posted', compute='_compute_opening_move_posted') @@ -30,6 +31,7 @@ class FinancialYearOpeningWizard(models.TransientModel): class SetupBarBankConfigWizard(models.TransientModel): _inherits = {'res.partner.bank': 'res_partner_bank_id'} _name = 'account.setup.bank.manual.config' + _description = 'Bank setup manual config' res_partner_bank_id = fields.Many2one(comodel_name='res.partner.bank', ondelete='cascade', required=True) create_or_link_option = fields.Selection(selection=[('new', 'Create new journal'), ('link', 'Link to an existing journal')], default='new') diff --git a/addons/account/wizard/wizard_tax_adjustments.py b/addons/account/wizard/wizard_tax_adjustments.py index 51f1936b93b..91a0edc7cf4 100644 --- a/addons/account/wizard/wizard_tax_adjustments.py +++ b/addons/account/wizard/wizard_tax_adjustments.py @@ -6,7 +6,7 @@ from odoo import models, fields, api class TaxAdjustments(models.TransientModel): _name = 'tax.adjustments.wizard' - _description = 'Wizard for Tax Adjustments' + _description = 'Tax Adjustments Wizard' @api.multi def _get_default_journal(self): diff --git a/addons/account_asset/models/account_asset.py b/addons/account_asset/models/account_asset.py index 4973d6866e8..276f72268df 100644 --- a/addons/account_asset/models/account_asset.py +++ b/addons/account_asset/models/account_asset.py @@ -12,7 +12,7 @@ from odoo.tools import float_compare, float_is_zero class AccountAssetCategory(models.Model): _name = 'account.asset.category' - _description = 'Asset category' + _description = 'Asset Category' active = fields.Boolean(default=True) name = fields.Char(required=True, index=True, string="Asset Type") @@ -472,7 +472,7 @@ class AccountAssetAsset(models.Model): class AccountAssetDepreciationLine(models.Model): _name = 'account.asset.depreciation.line' - _description = 'Asset depreciation line' + _description = 'Asset Depreciation Line' name = fields.Char(string='Depreciation Name', required=True, index=True) sequence = fields.Integer(required=True) diff --git a/addons/account_asset/wizard/asset_depreciation_confirmation_wizard.py b/addons/account_asset/wizard/asset_depreciation_confirmation_wizard.py index 4ba3245871f..ab9b9356128 100644 --- a/addons/account_asset/wizard/asset_depreciation_confirmation_wizard.py +++ b/addons/account_asset/wizard/asset_depreciation_confirmation_wizard.py @@ -6,7 +6,7 @@ from odoo import api, fields, models, _ class AssetDepreciationConfirmationWizard(models.TransientModel): _name = "asset.depreciation.confirmation.wizard" - _description = "asset.depreciation.confirmation.wizard" + _description = "Assets Depreciation Confirmation wizard" date = fields.Date('Account Date', required=True, help="Choose the period for which you want to automatically post the depreciation lines of running assets", default=fields.Date.context_today) diff --git a/addons/account_bank_statement_import/wizard/journal_creation.py b/addons/account_bank_statement_import/wizard/journal_creation.py index d5572980e42..32c2464bc50 100644 --- a/addons/account_bank_statement_import/wizard/journal_creation.py +++ b/addons/account_bank_statement_import/wizard/journal_creation.py @@ -5,7 +5,7 @@ from odoo import api, fields, models class AccountBankStatementImportJounalCreation(models.TransientModel): _name = 'account.bank.statement.import.journal.creation' - _description = 'Import Bank Statement Journal Creation Wizard' + _description = 'Journal Creation on Bank Statement Import' journal_id = fields.Many2one('account.journal', delegate=True, required=True, ondelete='cascade') diff --git a/addons/account_test/models/accounting_assert_test.py b/addons/account_test/models/accounting_assert_test.py index f2ee18f67df..69d6f159495 100644 --- a/addons/account_test/models/accounting_assert_test.py +++ b/addons/account_test/models/accounting_assert_test.py @@ -14,6 +14,7 @@ result = res class AccountingAssertTest(models.Model): _name = "accounting.assert.test" + _description = 'Accounting Assert Test' _order = "sequence" name = fields.Char(string='Test Name', required=True, index=True, translate=True) diff --git a/addons/account_test/report/report_account_test.py b/addons/account_test/report/report_account_test.py index 1420f647cf8..cc4ee6bbe01 100644 --- a/addons/account_test/report/report_account_test.py +++ b/addons/account_test/report/report_account_test.py @@ -11,6 +11,7 @@ from odoo.tools.safe_eval import safe_eval class ReportAssertAccount(models.AbstractModel): _name = 'report.account_test.report_accounttest' + _description = 'Account Test Report' @api.model def execute_code(self, code_exec): diff --git a/addons/account_voucher/models/account_voucher.py b/addons/account_voucher/models/account_voucher.py index e5324f41032..b348e13a62e 100644 --- a/addons/account_voucher/models/account_voucher.py +++ b/addons/account_voucher/models/account_voucher.py @@ -396,7 +396,7 @@ class AccountVoucher(models.Model): class AccountVoucherLine(models.Model): _name = 'account.voucher.line' - _description = 'Voucher Lines' + _description = 'Accounting Voucher Line' name = fields.Text(string='Description', required=True) sequence = fields.Integer(default=10, diff --git a/addons/analytic/models/analytic_account.py b/addons/analytic/models/analytic_account.py index 5f488b786ae..199f6097ae1 100644 --- a/addons/analytic/models/analytic_account.py +++ b/addons/analytic/models/analytic_account.py @@ -9,6 +9,7 @@ from odoo.exceptions import ValidationError class AccountAnalyticDistribution(models.Model): _name = 'account.analytic.distribution' + _description = 'Analytic Account Distribution' _rec_name = 'account_id' account_id = fields.Many2one('account.analytic.account', string='Analytic Account', required=True) diff --git a/addons/l10n_sg/models/res_company.py b/addons/l10n_sg/models/res_company.py index c894cf1a1a9..8c560b59a12 100644 --- a/addons/l10n_sg/models/res_company.py +++ b/addons/l10n_sg/models/res_company.py @@ -4,6 +4,7 @@ from odoo import fields, models class ResCompany(models.Model): _name = 'res.company' + _description = 'Companies' _inherit = 'res.company' l10n_sg_unique_entity_number = fields.Char(string='UEN', related="partner_id.l10n_sg_unique_entity_number") diff --git a/addons/payment/models/payment_acquirer.py b/addons/payment/models/payment_acquirer.py index 64e7f02436b..0016e41ed62 100644 --- a/addons/payment/models/payment_acquirer.py +++ b/addons/payment/models/payment_acquirer.py @@ -1030,6 +1030,7 @@ class PaymentTransaction(models.Model): class PaymentToken(models.Model): _name = 'payment.token' _order = 'partner_id, id desc' + _description = 'Payment Token' name = fields.Char('Name', help='Name of the payment token') short_name = fields.Char('Short name', compute='_compute_short_name') diff --git a/addons/payment/wizards/payment_acquirer_onboarding_wizard.py b/addons/payment/wizards/payment_acquirer_onboarding_wizard.py index e3ea6ffead7..5913e5821b7 100644 --- a/addons/payment/wizards/payment_acquirer_onboarding_wizard.py +++ b/addons/payment/wizards/payment_acquirer_onboarding_wizard.py @@ -7,6 +7,7 @@ from odoo.exceptions import UserError class PaymentWizard(models.TransientModel): _name = 'payment.acquirer.onboarding.wizard' + _description = 'Payment acquire onboarding wizard' payment_method = fields.Selection([ ('paypal', "Pay with PayPal"), From 71820dbc20313dfbacc56277b197b267ac81b7a4 Mon Sep 17 00:00:00 2001 From: Nimesh Jethva Date: Mon, 17 Sep 2018 16:27:55 +0530 Subject: [PATCH 02/14] [IMP]crm_*, sale_*: Improvement in model description Purpose of this commit is to give description more "business oriented" because those descriptions appears in Odoo Studio which is supposed to be used by end users, not only by developers. Related Task ID : 37311 --- addons/crm/models/crm_lead.py | 4 +- addons/crm/models/crm_stage.py | 2 +- addons/crm/models/crm_team.py | 1 + addons/crm/wizard/crm_lead_to_opportunity.py | 4 +- addons/crm/wizard/crm_merge_opportunities.py | 2 +- addons/crm/wizard/crm_partner_binding.py | 2 +- .../wizard/crm_lead_convert2task.py | 1 + addons/membership/models/membership.py | 1 + addons/membership/report/report_membership.py | 2 +- addons/product/models/product.py | 5 +- addons/product/models/product_attribute.py | 3 + addons/product/models/product_pricelist.py | 2 +- addons/product/report/product_pricelist.py | 1 + addons/product/wizard/product_price_list.py | 2 +- addons/sale/models/sale.py | 2 +- .../sale/report/report_all_channels_sales.py | 2 +- addons/sale/report/sale_report.py | 3 +- .../payment_acquirer_onboarding_wizard.py | 1 + .../models/project_sale_line_employee_map.py | 1 + .../project_profitability_report_analysis.py | 2 +- .../wizard/project_create_invoice.py | 2 +- .../wizard/project_create_sale_order.py | 3 +- .../models/res_partner.py | 2 + .../report/crm_lead_report.py | 76 +++++++++++++++++++ .../report/crm_partner_report.py | 2 +- .../wizard/crm_forward_to_partner.py | 2 + 26 files changed, 111 insertions(+), 19 deletions(-) create mode 100644 addons/website_crm_partner_assign/report/crm_lead_report.py diff --git a/addons/crm/models/crm_lead.py b/addons/crm/models/crm_lead.py index b6829a25708..177d6aa8048 100644 --- a/addons/crm/models/crm_lead.py +++ b/addons/crm/models/crm_lead.py @@ -1234,7 +1234,7 @@ class Lead(models.Model): class Tag(models.Model): _name = "crm.lead.tag" - _description = "Category of lead" + _description = "Lead Tag" name = fields.Char('Name', required=True, translate=True) color = fields.Integer('Color Index') @@ -1246,7 +1246,7 @@ class Tag(models.Model): class LostReason(models.Model): _name = "crm.lost.reason" - _description = 'Reason for loosing leads' + _description = 'Opp. Lost Reason' name = fields.Char('Name', required=True, translate=True) active = fields.Boolean('Active', default=True) diff --git a/addons/crm/models/crm_stage.py b/addons/crm/models/crm_stage.py index f2e33c7ca86..d324a3fc00a 100644 --- a/addons/crm/models/crm_stage.py +++ b/addons/crm/models/crm_stage.py @@ -18,7 +18,7 @@ class Stage(models.Model): Stages are for example used to display the kanban view of records. """ _name = "crm.stage" - _description = "Stage of case" + _description = "CRM Stages" _rec_name = 'name' _order = "sequence, name, id" diff --git a/addons/crm/models/crm_team.py b/addons/crm/models/crm_team.py index 31b4eeed98c..2aa3802cdcd 100644 --- a/addons/crm/models/crm_team.py +++ b/addons/crm/models/crm_team.py @@ -11,6 +11,7 @@ from odoo.exceptions import ValidationError class Team(models.Model): _name = 'crm.team' _inherit = ['mail.alias.mixin', 'crm.team'] + _description = 'Sales Channels' use_leads = fields.Boolean('Leads', help="Check this box to filter and qualify incoming requests as leads before converting them into opportunities and assigning them to a salesperson.") use_opportunities = fields.Boolean('Pipeline', help="Check this box to manage a presales process with opportunities.") diff --git a/addons/crm/wizard/crm_lead_to_opportunity.py b/addons/crm/wizard/crm_lead_to_opportunity.py index 799863f3aa6..b911609f03a 100644 --- a/addons/crm/wizard/crm_lead_to_opportunity.py +++ b/addons/crm/wizard/crm_lead_to_opportunity.py @@ -9,7 +9,7 @@ from odoo.tools.translate import _ class Lead2OpportunityPartner(models.TransientModel): _name = 'crm.lead2opportunity.partner' - _description = 'Lead To Opportunity Partner' + _description = 'Convert Lead to Opportunity (not in mass)' _inherit = 'crm.partner.binding' @api.model @@ -157,7 +157,7 @@ class Lead2OpportunityPartner(models.TransientModel): class Lead2OpportunityMassConvert(models.TransientModel): _name = 'crm.lead2opportunity.partner.mass' - _description = 'Mass Lead To Opportunity Partner' + _description = 'Convert Lead to Opportunity (in mass)' _inherit = 'crm.lead2opportunity.partner' @api.model diff --git a/addons/crm/wizard/crm_merge_opportunities.py b/addons/crm/wizard/crm_merge_opportunities.py index c0e2a6cc7ba..82795678d89 100644 --- a/addons/crm/wizard/crm_merge_opportunities.py +++ b/addons/crm/wizard/crm_merge_opportunities.py @@ -15,7 +15,7 @@ class MergeOpportunity(models.TransientModel): """ _name = 'crm.merge.opportunity' - _description = 'Merge opportunities' + _description = 'Merge Opportunities' @api.model def default_get(self, fields): diff --git a/addons/crm/wizard/crm_partner_binding.py b/addons/crm/wizard/crm_partner_binding.py index aee80574444..85acbc62396 100644 --- a/addons/crm/wizard/crm_partner_binding.py +++ b/addons/crm/wizard/crm_partner_binding.py @@ -15,7 +15,7 @@ class PartnerBinding(models.TransientModel): """ _name = 'crm.partner.binding' - _description = 'Handle partner binding or generation in CRM wizards.' + _description = 'Partner linking/binding in CRM wizard' @api.model def default_get(self, fields): diff --git a/addons/crm_project/wizard/crm_lead_convert2task.py b/addons/crm_project/wizard/crm_lead_convert2task.py index 6f9f8de10d3..126f3fec692 100644 --- a/addons/crm_project/wizard/crm_lead_convert2task.py +++ b/addons/crm_project/wizard/crm_lead_convert2task.py @@ -7,6 +7,7 @@ class CrmLeadConvert2Task(models.TransientModel): _name = "crm.lead.convert2task" _inherit = 'crm.partner.binding' + _description = 'Lead convert to Task' @api.model def default_get(self, fields): diff --git a/addons/membership/models/membership.py b/addons/membership/models/membership.py index 900ee18755b..416907bca4d 100644 --- a/addons/membership/models/membership.py +++ b/addons/membership/models/membership.py @@ -19,6 +19,7 @@ class MembershipLine(models.Model): _name = 'membership.membership_line' _rec_name = 'partner' _order = 'id desc' + _description = 'Membership Line' partner = fields.Many2one('res.partner', string='Partner', ondelete='cascade', index=True) membership_id = fields.Many2one('product.product', string="Membership", required=True) diff --git a/addons/membership/report/report_membership.py b/addons/membership/report/report_membership.py index 9e016a9890e..2c506ce300e 100644 --- a/addons/membership/report/report_membership.py +++ b/addons/membership/report/report_membership.py @@ -18,7 +18,7 @@ class ReportMembership(models.Model): '''Membership Analysis''' _name = 'report.membership' - _description = __doc__ + _description = 'Membership Analysis' _auto = False _rec_name = 'start_date' diff --git a/addons/product/models/product.py b/addons/product/models/product.py index 12ddf1d9734..3318c9a075a 100644 --- a/addons/product/models/product.py +++ b/addons/product/models/product.py @@ -64,6 +64,7 @@ class ProductPriceHistory(models.Model): _name = 'product.price.history' _rec_name = 'datetime' _order = 'datetime desc' + _description = 'Product Price List History' def _get_default_company_id(self): return self._context.get('force_company', self.env.user.company_id.id) @@ -585,7 +586,7 @@ class ProductProduct(models.Model): class ProductPackaging(models.Model): _name = "product.packaging" - _description = "Packaging" + _description = "Product Packaging" _order = 'sequence' name = fields.Char('Package Type', required=True) @@ -598,7 +599,7 @@ class ProductPackaging(models.Model): class SupplierInfo(models.Model): _name = "product.supplierinfo" - _description = "Information about a product vendor" + _description = "Supplier Pricelist" _order = 'sequence, min_qty desc, price' name = fields.Many2one( diff --git a/addons/product/models/product_attribute.py b/addons/product/models/product_attribute.py index 76ba430ba25..e2c20145455 100644 --- a/addons/product/models/product_attribute.py +++ b/addons/product/models/product_attribute.py @@ -22,6 +22,7 @@ class ProductAttribute(models.Model): class ProductAttributevalue(models.Model): _name = "product.attribute.value" _order = 'attribute_id, sequence, id' + _description = 'Product Attribute Value' name = fields.Char('Attribute Value', required=True, translate=True) sequence = fields.Integer('Sequence', help="Determine the display order") @@ -82,6 +83,7 @@ class ProductAttributevalue(models.Model): class ProductAttributePrice(models.Model): _name = "product.attribute.price" + _description = 'Product Attribute Price' product_tmpl_id = fields.Many2one('product.template', 'Product Template', ondelete='cascade', required=True) value_id = fields.Many2one('product.attribute.value', 'Product Attribute Value', ondelete='cascade', required=True) @@ -91,6 +93,7 @@ class ProductAttributePrice(models.Model): class ProductAttributeLine(models.Model): _name = "product.attribute.line" _rec_name = 'attribute_id' + _description = 'Product Attribute Line' product_tmpl_id = fields.Many2one('product.template', 'Product Template', ondelete='cascade', required=True) attribute_id = fields.Many2one('product.attribute', 'Attribute', ondelete='restrict', required=True) diff --git a/addons/product/models/product_pricelist.py b/addons/product/models/product_pricelist.py index ef73478b30b..958d5823c50 100644 --- a/addons/product/models/product_pricelist.py +++ b/addons/product/models/product_pricelist.py @@ -359,7 +359,7 @@ class ResCountryGroup(models.Model): class PricelistItem(models.Model): _name = "product.pricelist.item" - _description = "Pricelist item" + _description = "Pricelist Item" _order = "applied_on, min_quantity desc, categ_id desc, id" product_tmpl_id = fields.Many2one( diff --git a/addons/product/report/product_pricelist.py b/addons/product/report/product_pricelist.py index 1b5c56003cf..2a94a4b2a29 100644 --- a/addons/product/report/product_pricelist.py +++ b/addons/product/report/product_pricelist.py @@ -7,6 +7,7 @@ from odoo.tools import float_round class report_product_pricelist(models.AbstractModel): _name = 'report.product.report_pricelist' + _description = 'Product Price List Report' @api.model def _get_report_values(self, docids, data=None): diff --git a/addons/product/wizard/product_price_list.py b/addons/product/wizard/product_price_list.py index 171c4b944be..bff0177f415 100644 --- a/addons/product/wizard/product_price_list.py +++ b/addons/product/wizard/product_price_list.py @@ -7,7 +7,7 @@ from odoo.exceptions import UserError class product_price_list(models.TransientModel): _name = 'product.price_list' - _description = 'Price List' + _description = 'Product Price per Unit Based on Pricelist Version' price_list = fields.Many2one('product.pricelist', 'PriceList', required=True) qty1 = fields.Integer('Quantity-1', default=1) diff --git a/addons/sale/models/sale.py b/addons/sale/models/sale.py index 6657dd04c25..8547a0cf5db 100644 --- a/addons/sale/models/sale.py +++ b/addons/sale/models/sale.py @@ -20,7 +20,7 @@ from werkzeug.urls import url_encode class SaleOrder(models.Model): _name = "sale.order" _inherit = ['portal.mixin', 'mail.thread', 'mail.activity.mixin'] - _description = "Quotation" + _description = "Sale Order" _order = 'date_order desc, id desc' def _default_validity_date(self): diff --git a/addons/sale/report/report_all_channels_sales.py b/addons/sale/report/report_all_channels_sales.py index 234e39e83f2..1638c087d05 100644 --- a/addons/sale/report/report_all_channels_sales.py +++ b/addons/sale/report/report_all_channels_sales.py @@ -6,7 +6,7 @@ from odoo import api, fields, models, tools class PosSaleReport(models.Model): _name = "report.all.channels.sales" - _description = "All sales orders grouped by Sales Teams" + _description = "Sales by Channel (All in One)" _auto = False name = fields.Char('Order Reference', readonly=True) diff --git a/addons/sale/report/sale_report.py b/addons/sale/report/sale_report.py index 190c11afbba..70a1ebd4277 100644 --- a/addons/sale/report/sale_report.py +++ b/addons/sale/report/sale_report.py @@ -7,7 +7,7 @@ from odoo import api, fields, models class SaleReport(models.Model): _name = "sale.report" - _description = "Sales Orders Statistics" + _description = "Sales Analysis Report" _auto = False _rec_name = 'date' _order = 'date desc' @@ -136,6 +136,7 @@ class SaleReport(models.Model): class SaleOrderReportProforma(models.AbstractModel): _name = 'report.sale.report_saleproforma' + _description = 'Proforma Report' @api.multi def _get_report_values(self, docids, data=None): diff --git a/addons/sale/wizard/payment_acquirer_onboarding_wizard.py b/addons/sale/wizard/payment_acquirer_onboarding_wizard.py index 2b7212437db..36653714cde 100644 --- a/addons/sale/wizard/payment_acquirer_onboarding_wizard.py +++ b/addons/sale/wizard/payment_acquirer_onboarding_wizard.py @@ -9,6 +9,7 @@ class PaymentWizard(models.TransientModel): _inherit = 'payment.acquirer.onboarding.wizard' _name = 'sale.payment.acquirer.onboarding.wizard' + _description = 'Sale Payment acquire onboarding wizard' def _get_default_payment_method(self): return self.env.user.company_id.sale_onboarding_payment_method or 'digital_signature' diff --git a/addons/sale_timesheet/models/project_sale_line_employee_map.py b/addons/sale_timesheet/models/project_sale_line_employee_map.py index 04814503a01..d657eeedabd 100644 --- a/addons/sale_timesheet/models/project_sale_line_employee_map.py +++ b/addons/sale_timesheet/models/project_sale_line_employee_map.py @@ -6,6 +6,7 @@ from odoo import api, fields, models class ProjectProductEmployeeMap(models.Model): _name = 'project.sale.line.employee.map' + _description = 'Project Sales line, employee mapping' @api.model def _default_project_id(self): diff --git a/addons/sale_timesheet/report/project_profitability_report_analysis.py b/addons/sale_timesheet/report/project_profitability_report_analysis.py index ae2e26819c4..366df3cc970 100644 --- a/addons/sale_timesheet/report/project_profitability_report_analysis.py +++ b/addons/sale_timesheet/report/project_profitability_report_analysis.py @@ -7,7 +7,7 @@ from odoo import fields, models, tools class ProfitabilityAnalysis(models.Model): _name = "project.profitability.report" - _description = "Project Profitability Analysis" + _description = "Project Profitability Report" _order = 'project_id, sale_line_id' _auto = False diff --git a/addons/sale_timesheet/wizard/project_create_invoice.py b/addons/sale_timesheet/wizard/project_create_invoice.py index a02ab47af75..1df7bf948b2 100644 --- a/addons/sale_timesheet/wizard/project_create_invoice.py +++ b/addons/sale_timesheet/wizard/project_create_invoice.py @@ -7,7 +7,7 @@ from odoo.exceptions import UserError class ProjectCreateInvoice(models.TransientModel): _name = 'project.create.invoice' - _description = "Create a Invoice from project" + _description = "Create Invoice from project" @api.model def default_get(self, fields): diff --git a/addons/sale_timesheet/wizard/project_create_sale_order.py b/addons/sale_timesheet/wizard/project_create_sale_order.py index 1e4ea237a48..781403dddbb 100644 --- a/addons/sale_timesheet/wizard/project_create_sale_order.py +++ b/addons/sale_timesheet/wizard/project_create_sale_order.py @@ -8,7 +8,7 @@ from odoo.addons import decimal_precision as dp class ProjectCreateSalesOrder(models.TransientModel): _name = 'project.create.sale.order' - _description = "Create a SO from project" + _description = "Create SO from project" @api.model def default_get(self, fields): @@ -194,6 +194,7 @@ class ProjectCreateSalesOrder(models.TransientModel): class ProjectCreateSalesOrderLine(models.TransientModel): _name = 'project.create.sale.order.line' + _description = 'Create SO Line from project' _order = 'id,create_date' wizard_id = fields.Many2one('project.create.sale.order', required=True) diff --git a/addons/website_crm_partner_assign/models/res_partner.py b/addons/website_crm_partner_assign/models/res_partner.py index 28372c1e402..7ff83efa005 100644 --- a/addons/website_crm_partner_assign/models/res_partner.py +++ b/addons/website_crm_partner_assign/models/res_partner.py @@ -8,6 +8,7 @@ from odoo.addons.http_routing.models.ir_http import slug class ResPartnerGrade(models.Model): _name = 'res.partner.grade' _inherit = ['website.published.mixin'] + _description = 'Partner Grade' website_published = fields.Boolean(default=True) sequence = fields.Integer('Sequence') @@ -26,6 +27,7 @@ class ResPartnerGrade(models.Model): class ResPartnerActivation(models.Model): _name = 'res.partner.activation' _order = 'sequence' + _description = 'Partner Activation' sequence = fields.Integer('Sequence') name = fields.Char('Name', required=True) diff --git a/addons/website_crm_partner_assign/report/crm_lead_report.py b/addons/website_crm_partner_assign/report/crm_lead_report.py new file mode 100644 index 00000000000..5971c239b2e --- /dev/null +++ b/addons/website_crm_partner_assign/report/crm_lead_report.py @@ -0,0 +1,76 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import api, fields, models +from odoo import tools +from odoo.addons.crm.models import crm_stage + + +class CrmLeadReportAssign(models.Model): + """ CRM Lead Report """ + _name = "crm.lead.report.assign" + _auto = False + _description = "Opp. Assignment Analysis" + + partner_assigned_id = fields.Many2one('res.partner', 'Partner', readonly=True) + grade_id = fields.Many2one('res.partner.grade', 'Grade', readonly=True) + user_id = fields.Many2one('res.users', 'User', readonly=True) + country_id = fields.Many2one('res.country', 'Country', readonly=True) + team_id = fields.Many2one('crm.team', 'Sales Team', oldname='section_id', readonly=True) + company_id = fields.Many2one('res.company', 'Company', readonly=True) + date_assign = fields.Date('Assign Date', readonly=True) + delay_open = fields.Float('Delay to Assign', digits=(16, 2), readonly=True, group_operator="avg", help="Number of Days to open the case") + delay_close = fields.Float('Delay to Close', digits=(16, 2), readonly=True, group_operator="avg", help="Number of Days to close the case") + delay_expected = fields.Float('Overpassed Deadline', digits=(16, 2), readonly=True, group_operator="avg") + probability = fields.Float('Avg Probability', digits=(16, 2), readonly=True, group_operator="avg") + probability_max = fields.Float('Max Probability', digits=(16, 2), readonly=True, group_operator="max") + planned_revenue = fields.Float('Planned Revenue', digits=(16, 2), readonly=True) + probable_revenue = fields.Float('Probable Revenue', digits=(16, 2), readonly=True) + tag_ids = fields.Many2many('crm.lead.tag', 'crm_lead_tag_rel', 'lead_id', 'tag_id', 'Tags') + partner_id = fields.Many2one('res.partner', 'Customer', readonly=True) + opening_date = fields.Datetime('Opening Date', readonly=True) + date_closed = fields.Datetime('Close Date', readonly=True) + nbr_cases = fields.Integer('# of Cases', readonly=True, oldname='nbr') + priority = fields.Selection(crm_stage.AVAILABLE_PRIORITIES, 'Priority') + type = fields.Selection([ + ('lead', 'Lead'), + ('opportunity', 'Opportunity') + ], 'Type', help="Type is used to separate Leads and Opportunities") + + @api.model_cr + def init(self): + """ + CRM Lead Report + @param cr: the current row, from the database cursor + """ + tools.drop_view_if_exists(self._cr, 'crm_lead_report_assign') + self._cr.execute(""" + CREATE OR REPLACE VIEW crm_lead_report_assign AS ( + SELECT + c.id, + c.date_open as opening_date, + c.date_closed as date_closed, + c.date_assign, + c.user_id, + c.probability, + c.probability as probability_max, + c.type, + c.company_id, + c.priority, + c.team_id, + c.partner_id, + c.country_id, + c.planned_revenue, + c.partner_assigned_id, + p.grade_id, + p.date as partner_date, + c.planned_revenue*(c.probability/100) as probable_revenue, + 1 as nbr_cases, + c.create_date as create_date, + extract('epoch' from (c.write_date-c.create_date))/(3600*24) as delay_close, + extract('epoch' from (c.date_deadline - c.date_closed))/(3600*24) as delay_expected, + extract('epoch' from (c.date_open-c.create_date))/(3600*24) as delay_open + FROM + crm_lead c + left join res_partner p on (c.partner_assigned_id=p.id) + )""") diff --git a/addons/website_crm_partner_assign/report/crm_partner_report.py b/addons/website_crm_partner_assign/report/crm_partner_report.py index 1f21f9fdc14..de062bdcd59 100644 --- a/addons/website_crm_partner_assign/report/crm_partner_report.py +++ b/addons/website_crm_partner_assign/report/crm_partner_report.py @@ -9,7 +9,7 @@ class CrmPartnerReportAssign(models.Model): """ CRM Lead Report """ _name = "crm.partner.report.assign" _auto = False - _description = "CRM Partner Report" + _description = "CRM Partnership Analysis" partner_id = fields.Many2one('res.partner', 'Partner', required=False, readonly=True) grade_id = fields.Many2one('res.partner.grade', 'Grade', readonly=True) diff --git a/addons/website_crm_partner_assign/wizard/crm_forward_to_partner.py b/addons/website_crm_partner_assign/wizard/crm_forward_to_partner.py index 3d85f0f4189..5b672a91ab4 100644 --- a/addons/website_crm_partner_assign/wizard/crm_forward_to_partner.py +++ b/addons/website_crm_partner_assign/wizard/crm_forward_to_partner.py @@ -8,6 +8,7 @@ from odoo.exceptions import UserError class CrmLeadForwardToPartner(models.TransientModel): """ Forward info history to partners. """ _name = 'crm.lead.forward.to.partner' + _description = 'Lead forward to partner' @api.model def _convert_to_assignation_line(self, lead, partner): @@ -128,6 +129,7 @@ class CrmLeadForwardToPartner(models.TransientModel): class CrmLeadAssignation(models.TransientModel): _name = 'crm.lead.assignation' + _description = 'Lead Assignation' forward_id = fields.Many2one('crm.lead.forward.to.partner', 'Partner Assignation') lead_id = fields.Many2one('crm.lead', 'Lead') From 7eea263f3649a5b6e7e9456bf30de13d7c65d13a Mon Sep 17 00:00:00 2001 From: Nimesh Jethva Date: Mon, 17 Sep 2018 16:34:24 +0530 Subject: [PATCH 03/14] [IMP]base_*: Improvement in model description Purpose of this commit is to give description more "business oriented" because those descriptions appears in Odoo Studio which is supposed to be used by end users, not only by developers. Related Task ID : 37311 --- addons/base_import/models/base_import.py | 2 ++ addons/base_import/models/test_models.py | 14 +++++++++++++- addons/base_sparse_field/models/models.py | 1 + odoo/addons/base/models/ir_actions.py | 6 ++++++ odoo/addons/base/models/ir_actions_report.py | 1 + odoo/addons/base/models/ir_attachment.py | 1 + odoo/addons/base/models/ir_autovacuum.py | 1 + odoo/addons/base/models/ir_config_parameter.py | 1 + odoo/addons/base/models/ir_default.py | 1 + odoo/addons/base/models/ir_demo.py | 1 + odoo/addons/base/models/ir_demo_failure.py | 2 ++ odoo/addons/base/models/ir_exports.py | 2 ++ odoo/addons/base/models/ir_fields.py | 1 + odoo/addons/base/models/ir_http.py | 2 +- odoo/addons/base/models/ir_logging.py | 1 + odoo/addons/base/models/ir_mail_server.py | 1 + odoo/addons/base/models/ir_model.py | 7 +++++++ odoo/addons/base/models/ir_property.py | 1 + odoo/addons/base/models/ir_qweb.py | 1 + odoo/addons/base/models/ir_qweb_fields.py | 17 +++++++++++++++++ odoo/addons/base/models/ir_rule.py | 1 + odoo/addons/base/models/ir_sequence.py | 2 ++ odoo/addons/base/models/ir_translation.py | 1 + odoo/addons/base/models/ir_ui_menu.py | 1 + odoo/addons/base/models/ir_ui_view.py | 2 ++ odoo/addons/base/models/report_paperformat.py | 2 +- odoo/addons/base/models/res_config.py | 3 +++ odoo/addons/base/models/res_partner.py | 2 ++ odoo/addons/base/models/res_users.py | 3 ++- .../report_base_report_irmodulereference.py | 1 + odoo/addons/base/wizard/base_export_language.py | 1 + .../addons/base/wizard/base_module_uninstall.py | 2 +- odoo/addons/base/wizard/base_module_upgrade.py | 2 +- odoo/addons/base/wizard/base_partner_merge.py | 2 ++ .../base/wizard/base_update_translations.py | 1 + 35 files changed, 84 insertions(+), 6 deletions(-) diff --git a/addons/base_import/models/base_import.py b/addons/base_import/models/base_import.py index 1d04c98b9ce..d2a11dfa824 100644 --- a/addons/base_import/models/base_import.py +++ b/addons/base_import/models/base_import.py @@ -85,6 +85,7 @@ class ImportMapping(models.Model): time. """ _name = 'base_import.mapping' + _description = 'Base Import Mapping' res_model = fields.Char(index=True) column_name = fields.Char() @@ -107,6 +108,7 @@ class ResUsers(models.Model): class Import(models.TransientModel): _name = 'base_import.import' + _description = 'Base Import' # allow imports to survive for 12h in case user is slow _transient_max_hours = 12.0 diff --git a/addons/base_import/models/test_models.py b/addons/base_import/models/test_models.py index 22316219dd4..478567f9a97 100644 --- a/addons/base_import/models/test_models.py +++ b/addons/base_import/models/test_models.py @@ -8,68 +8,80 @@ def name(suffix_name): class Char(models.Model): _name = name('char') + _description = 'Tests : Base Import Model, Character' value = fields.Char() - class CharRequired(models.Model): _name = name('char.required') + _description = 'Tests : Base Import Model, Character required' value = fields.Char(required=True) class CharReadonly(models.Model): _name = name('char.readonly') + _description = 'Tests : Base Import Model, Character readonly' value = fields.Char(readonly=True) class CharStates(models.Model): _name = name('char.states') + _description = 'Tests : Base Import Model, Character states' value = fields.Char(readonly=True, states={'draft': [('readonly', False)]}) class CharNoreadonly(models.Model): _name = name('char.noreadonly') + _description = 'Tests : Base Import Model, Character No readonly' value = fields.Char(readonly=True, states={'draft': [('invisible', True)]}) class CharStillreadonly(models.Model): _name = name('char.stillreadonly') + _description = 'Tests : Base Import Model, Character still readonly' value = fields.Char(readonly=True, states={'draft': [('readonly', True)]}) # TODO: complex field (m2m, o2m, m2o) class M2o(models.Model): _name = name('m2o') + _description = 'Tests : Base Import Model, Many to One' value = fields.Many2one(name('m2o.related')) class M2oRelated(models.Model): _name = name('m2o.related') + _description = 'Tests : Base Import Model, Many to One related' value = fields.Integer(default=42) class M2oRequired(models.Model): _name = name('m2o.required') + _description = 'Tests : Base Import Model, Many to One required' value = fields.Many2one(name('m2o.required.related'), required=True) class M2oRequiredRelated(models.Model): _name = name('m2o.required.related') + _description = 'Tests : Base Import Model, Many to One required related' value = fields.Integer(default=42) class O2m(models.Model): _name = name('o2m') + _description = 'Tests : Base Import Model, One to Many' value = fields.One2many(name('o2m.child'), 'parent_id') class O2mChild(models.Model): _name = name('o2m.child') + _description = 'Tests : Base Import Model, One to Many child' parent_id = fields.Many2one(name('o2m')) value = fields.Integer() class PreviewModel(models.Model): _name = name('preview') + _description = 'Tests : Base Import Model Preview' name = fields.Char('Name') somevalue = fields.Integer(string='Some Value', required=True) diff --git a/addons/base_sparse_field/models/models.py b/addons/base_sparse_field/models/models.py index 703c6466ee9..f3aed505e76 100644 --- a/addons/base_sparse_field/models/models.py +++ b/addons/base_sparse_field/models/models.py @@ -52,6 +52,7 @@ class IrModelFields(models.Model): class TestSparse(models.TransientModel): _name = 'sparse_fields.test' + _description = 'Sparse fields Test' data = fields.Serialized() boolean = fields.Boolean(sparse='data') diff --git a/odoo/addons/base/models/ir_actions.py b/odoo/addons/base/models/ir_actions.py index ff9152f7c33..d06a3b0a666 100644 --- a/odoo/addons/base/models/ir_actions.py +++ b/odoo/addons/base/models/ir_actions.py @@ -31,6 +31,7 @@ dateutil = wrap_module(dateutil, mods | attribs) class IrActions(models.Model): _name = 'ir.actions.actions' + _description = 'Actions' _table = 'ir_actions' _order = 'name' @@ -126,6 +127,7 @@ class IrActions(models.Model): class IrActionsActWindow(models.Model): _name = 'ir.actions.act_window' + _description = 'Action Window' _table = 'ir_act_window' _inherit = 'ir.actions.actions' _sequence = 'ir_actions_id_seq' @@ -269,6 +271,7 @@ VIEW_TYPES = [ class IrActionsActWindowView(models.Model): _name = 'ir.actions.act_window.view' + _description = 'Action Window View' _table = 'ir_act_window_view' _rec_name = 'view_id' _order = 'sequence,id' @@ -289,6 +292,7 @@ class IrActionsActWindowView(models.Model): class IrActionsActWindowclose(models.Model): _name = 'ir.actions.act_window_close' + _description = 'Action Window Close' _inherit = 'ir.actions.actions' _table = 'ir_actions' @@ -297,6 +301,7 @@ class IrActionsActWindowclose(models.Model): class IrActionsActUrl(models.Model): _name = 'ir.actions.act_url' + _description = 'Action URL' _table = 'ir_act_url' _inherit = 'ir.actions.actions' _sequence = 'ir_actions_id_seq' @@ -741,6 +746,7 @@ class IrActionsTodo(models.Model): class IrActionsActClient(models.Model): _name = 'ir.actions.client' + _description = 'Client Action' _inherit = 'ir.actions.actions' _table = 'ir_act_client' _sequence = 'ir_actions_id_seq' diff --git a/odoo/addons/base/models/ir_actions_report.py b/odoo/addons/base/models/ir_actions_report.py index 16257c836ac..e58e1bc9665 100644 --- a/odoo/addons/base/models/ir_actions_report.py +++ b/odoo/addons/base/models/ir_actions_report.py @@ -72,6 +72,7 @@ else: class IrActionsReport(models.Model): _name = 'ir.actions.report' + _description = 'Report Action' _inherit = 'ir.actions.actions' _table = 'ir_act_report_xml' _sequence = 'ir_actions_id_seq' diff --git a/odoo/addons/base/models/ir_attachment.py b/odoo/addons/base/models/ir_attachment.py index 167be01d8ce..7251665a4fa 100644 --- a/odoo/addons/base/models/ir_attachment.py +++ b/odoo/addons/base/models/ir_attachment.py @@ -36,6 +36,7 @@ class IrAttachment(models.Model): on the local filesystem using name based on their sha1 hash """ _name = 'ir.attachment' + _description = 'Attachment' _order = 'id desc' @api.depends('res_model', 'res_id') diff --git a/odoo/addons/base/models/ir_autovacuum.py b/odoo/addons/base/models/ir_autovacuum.py index 8cef88e7c20..4e47730fe8f 100644 --- a/odoo/addons/base/models/ir_autovacuum.py +++ b/odoo/addons/base/models/ir_autovacuum.py @@ -12,6 +12,7 @@ _logger = logging.getLogger(__name__) class AutoVacuum(models.AbstractModel): """ Expose the vacuum method to the cron jobs mechanism. """ _name = 'ir.autovacuum' + _description = 'Automatic Vacuum' @api.model def _gc_transient_models(self): diff --git a/odoo/addons/base/models/ir_config_parameter.py b/odoo/addons/base/models/ir_config_parameter.py index 1c0ca277513..eed10daadd8 100644 --- a/odoo/addons/base/models/ir_config_parameter.py +++ b/odoo/addons/base/models/ir_config_parameter.py @@ -28,6 +28,7 @@ _default_parameters = { class IrConfigParameter(models.Model): """Per-database storage of configuration key-value pairs.""" _name = 'ir.config_parameter' + _description = 'System Parameter' _rec_name = 'key' _order = 'key' diff --git a/odoo/addons/base/models/ir_default.py b/odoo/addons/base/models/ir_default.py index 93751c1a9a7..38ab488b94e 100644 --- a/odoo/addons/base/models/ir_default.py +++ b/odoo/addons/base/models/ir_default.py @@ -10,6 +10,7 @@ from odoo.exceptions import ValidationError class IrDefault(models.Model): """ User-defined default values for fields. """ _name = 'ir.default' + _description = 'Default Values' _rec_name = 'field_id' field_id = fields.Many2one('ir.model.fields', string="Field", required=True, diff --git a/odoo/addons/base/models/ir_demo.py b/odoo/addons/base/models/ir_demo.py index 34e4292be28..6c8775aee5e 100644 --- a/odoo/addons/base/models/ir_demo.py +++ b/odoo/addons/base/models/ir_demo.py @@ -5,6 +5,7 @@ from odoo.modules.loading import force_demo class IrDemo(models.TransientModel): _name = 'ir.demo' + _description = 'Demo' def install_demo(self): force_demo(self.env.cr) diff --git a/odoo/addons/base/models/ir_demo_failure.py b/odoo/addons/base/models/ir_demo_failure.py index 8a7396fa99d..2aa826fe73d 100644 --- a/odoo/addons/base/models/ir_demo_failure.py +++ b/odoo/addons/base/models/ir_demo_failure.py @@ -5,6 +5,7 @@ class DemoFailure(models.TransientModel): """ Stores modules for which we could not install demo data """ _name = 'ir.demo_failure' + _description = 'Demo failure' module_id = fields.Many2one('ir.module.module', required=True, string="Module") error = fields.Char(string="Error") @@ -12,6 +13,7 @@ class DemoFailure(models.TransientModel): class DemoFailureWizard(models.TransientModel): _name = 'ir.demo_failure.wizard' + _description = 'Demo Failure wizard' failure_ids = fields.One2many( 'ir.demo_failure', 'wizard_id', readonly=True, diff --git a/odoo/addons/base/models/ir_exports.py b/odoo/addons/base/models/ir_exports.py index 9b89d2e6f9a..2aa6392926d 100644 --- a/odoo/addons/base/models/ir_exports.py +++ b/odoo/addons/base/models/ir_exports.py @@ -6,6 +6,7 @@ from odoo import fields, models class IrExports(models.Model): _name = "ir.exports" + _description = 'Exports' _order = 'name' name = fields.Char(string='Export Name') @@ -15,6 +16,7 @@ class IrExports(models.Model): class IrExportsLine(models.Model): _name = 'ir.exports.line' + _description = 'Exports Line' _order = 'id' name = fields.Char(string='Field Name') diff --git a/odoo/addons/base/models/ir_fields.py b/odoo/addons/base/models/ir_fields.py index bcf3bd3f8c7..90208e7a86a 100644 --- a/odoo/addons/base/models/ir_fields.py +++ b/odoo/addons/base/models/ir_fields.py @@ -34,6 +34,7 @@ class ConversionNotFound(ValueError): class IrFieldsConverter(models.AbstractModel): _name = 'ir.fields.converter' + _description = 'Fields Converter' @api.model def _format_import_error(self, error_type, error_msg, error_params=(), error_args=None): diff --git a/odoo/addons/base/models/ir_http.py b/odoo/addons/base/models/ir_http.py index 292d2894a34..0d2ce7b3b40 100644 --- a/odoo/addons/base/models/ir_http.py +++ b/odoo/addons/base/models/ir_http.py @@ -74,7 +74,7 @@ class SignedIntConverter(werkzeug.routing.NumberConverter): class IrHttp(models.AbstractModel): _name = 'ir.http' - _description = "HTTP routing" + _description = "HTTP Routing" @classmethod def _get_converters(cls): diff --git a/odoo/addons/base/models/ir_logging.py b/odoo/addons/base/models/ir_logging.py index 0397bff7425..8d8a21f6d6c 100644 --- a/odoo/addons/base/models/ir_logging.py +++ b/odoo/addons/base/models/ir_logging.py @@ -4,6 +4,7 @@ from odoo import fields, models class IrLogging(models.Model): _name = 'ir.logging' + _description = 'Logging' _order = 'id DESC' create_date = fields.Datetime(readonly=True) diff --git a/odoo/addons/base/models/ir_mail_server.py b/odoo/addons/base/models/ir_mail_server.py index 9cf939dcf05..84b44c19aaf 100644 --- a/odoo/addons/base/models/ir_mail_server.py +++ b/odoo/addons/base/models/ir_mail_server.py @@ -128,6 +128,7 @@ def encode_rfc2822_address_header(header_text): class IrMailServer(models.Model): """Represents an SMTP server, able to send outgoing emails, with SSL and TLS capabilities.""" _name = "ir.mail_server" + _description = 'Mail Server' NO_VALID_RECIPIENT = ("At least one valid recipient address should be " "specified for outgoing emails (To/Cc/Bcc)") diff --git a/odoo/addons/base/models/ir_model.py b/odoo/addons/base/models/ir_model.py index b0d570ea46c..a8402080e9f 100644 --- a/odoo/addons/base/models/ir_model.py +++ b/odoo/addons/base/models/ir_model.py @@ -60,6 +60,7 @@ def query_update(cr, table, values, selectors): class Base(models.AbstractModel): """ The base model, which is implicitly inherited by all models. """ _name = 'base' + _description = 'Base' class Unknown(models.AbstractModel): @@ -68,6 +69,7 @@ class Unknown(models.AbstractModel): comodel. """ _name = '_unknown' + _description = 'Unknown' class IrModel(models.Model): @@ -928,6 +930,7 @@ class IrModelConstraint(models.Model): models. """ _name = 'ir.model.constraint' + _description = 'Model Constraint' name = fields.Char(string='Constraint', required=True, index=True, help="PostgreSQL constraint or foreign key name.") @@ -1049,6 +1052,7 @@ class IrModelRelation(models.Model): relations. """ _name = 'ir.model.relation' + _description = 'Relation Model' name = fields.Char(string='Relation Name', required=True, index=True, help="PostgreSQL table name implementing a many2many relation.") @@ -1106,6 +1110,7 @@ class IrModelRelation(models.Model): class IrModelAccess(models.Model): _name = 'ir.model.access' + _description = 'Model Access' name = fields.Char(required=True, index=True) active = fields.Boolean(default=True, help='If you uncheck the active field, it will disable the ACL without deleting it (if you delete a native ACL, it will be re-created when you reload the module).') @@ -1278,6 +1283,7 @@ class IrModelData(models.Model): update them seamlessly. """ _name = 'ir.model.data' + _description = 'Model Data' _order = 'module, model, name' name = fields.Char(string='External Identifier', required=True, @@ -1634,6 +1640,7 @@ class IrModelData(models.Model): class WizardModelMenu(models.TransientModel): _name = 'wizard.ir.model.menu.create' + _description = 'Create Menu Wizard' menu_id = fields.Many2one('ir.ui.menu', string='Parent Menu', required=True, ondelete='cascade') name = fields.Char(string='Menu Name', required=True) diff --git a/odoo/addons/base/models/ir_property.py b/odoo/addons/base/models/ir_property.py index ae944583a15..6b7493bb2e8 100644 --- a/odoo/addons/base/models/ir_property.py +++ b/odoo/addons/base/models/ir_property.py @@ -21,6 +21,7 @@ TYPE2FIELD = { class Property(models.Model): _name = 'ir.property' + _description = 'Company Property' name = fields.Char(index=True) res_id = fields.Char(string='Resource', index=True, help="If not set, acts as a default value for new resources",) diff --git a/odoo/addons/base/models/ir_qweb.py b/odoo/addons/base/models/ir_qweb.py index 5a117583aed..27e4636cbce 100644 --- a/odoo/addons/base/models/ir_qweb.py +++ b/odoo/addons/base/models/ir_qweb.py @@ -34,6 +34,7 @@ class IrQWeb(models.AbstractModel, QWeb): """ _name = 'ir.qweb' + _descriptiob = 'Qweb' @api.model def render(self, id_or_xml_id, values=None, **options): diff --git a/odoo/addons/base/models/ir_qweb_fields.py b/odoo/addons/base/models/ir_qweb_fields.py index 60764cdd24d..6c4357f4294 100644 --- a/odoo/addons/base/models/ir_qweb_fields.py +++ b/odoo/addons/base/models/ir_qweb_fields.py @@ -140,6 +140,7 @@ class FieldConverter(models.AbstractModel): class IntegerConverter(models.AbstractModel): _name = 'ir.qweb.field.integer' + _description = 'Qweb Field Integer' _inherit = 'ir.qweb.field' @api.model @@ -149,6 +150,7 @@ class IntegerConverter(models.AbstractModel): class FloatConverter(models.AbstractModel): _name = 'ir.qweb.field.float' + _description = 'Qweb Field Float' _inherit = 'ir.qweb.field' @api.model @@ -193,6 +195,7 @@ class FloatConverter(models.AbstractModel): class DateConverter(models.AbstractModel): _name = 'ir.qweb.field.date' + _description = 'Qweb Field Date' _inherit = 'ir.qweb.field' @api.model @@ -210,6 +213,7 @@ class DateConverter(models.AbstractModel): class DateTimeConverter(models.AbstractModel): _name = 'ir.qweb.field.datetime' + _description = 'Qweb Field Datetime' _inherit = 'ir.qweb.field' @api.model @@ -252,6 +256,7 @@ class DateTimeConverter(models.AbstractModel): class TextConverter(models.AbstractModel): _name = 'ir.qweb.field.text' + _description = 'Qweb Field Text' _inherit = 'ir.qweb.field' @api.model @@ -264,6 +269,7 @@ class TextConverter(models.AbstractModel): class SelectionConverter(models.AbstractModel): _name = 'ir.qweb.field.selection' + _description = 'Qweb Field Selection' _inherit = 'ir.qweb.field' @api.model @@ -289,6 +295,7 @@ class SelectionConverter(models.AbstractModel): class ManyToOneConverter(models.AbstractModel): _name = 'ir.qweb.field.many2one' + _description = 'Qweb Field Many to One' _inherit = 'ir.qweb.field' @api.model @@ -303,6 +310,7 @@ class ManyToOneConverter(models.AbstractModel): class ManyToManyConverter(models.AbstractModel): _name = 'ir.qweb.field.many2many' + _description = 'Qweb field many2many' _inherit = 'ir.qweb.field' @api.model @@ -315,6 +323,7 @@ class ManyToManyConverter(models.AbstractModel): class HTMLConverter(models.AbstractModel): _name = 'ir.qweb.field.html' + _description = 'Qweb Field HTML' _inherit = 'ir.qweb.field' @api.model @@ -342,6 +351,7 @@ class ImageConverter(models.AbstractModel): needs website-aware """ _name = 'ir.qweb.field.image' + _description = 'Qweb Field Image' _inherit = 'ir.qweb.field' @api.model @@ -372,6 +382,7 @@ class MonetaryConverter(models.AbstractModel): It's set under the ``_values`` key. """ _name = 'ir.qweb.field.monetary' + _description = 'Qweb Field Monerary' _inherit = 'ir.qweb.field' @api.model @@ -460,6 +471,7 @@ class FloatTimeConverter(models.AbstractModel): Can be used on any numerical field. """ _name = 'ir.qweb.field.float_time' + _description = 'Qweb Field Float Time' _inherit = 'ir.qweb.field' @api.model @@ -486,6 +498,7 @@ class DurationConverter(models.AbstractModel): Sub-second values will be ignored. """ _name = 'ir.qweb.field.duration' + _description = 'Qweb Field Duration' _inherit = 'ir.qweb.field' @api.model @@ -543,6 +556,7 @@ class DurationConverter(models.AbstractModel): class RelativeDatetimeConverter(models.AbstractModel): _name = 'ir.qweb.field.relative' + _description = 'Qweb Field Relative' _inherit = 'ir.qweb.field' @api.model @@ -578,6 +592,7 @@ class BarcodeConverter(models.AbstractModel): instead. """ _name = 'ir.qweb.field.barcode' + _description = 'Qweb Field Barcode' _inherit = 'ir.qweb.field' @api.model @@ -603,6 +618,7 @@ class BarcodeConverter(models.AbstractModel): class Contact(models.AbstractModel): _name = 'ir.qweb.field.contact' + _description = 'Qweb Field Contact' _inherit = 'ir.qweb.field.many2one' @api.model @@ -646,6 +662,7 @@ class Contact(models.AbstractModel): class QwebView(models.AbstractModel): _name = 'ir.qweb.field.qweb' + _description = 'Qweb Field qweb' _inherit = 'ir.qweb.field.many2one' @api.model diff --git a/odoo/addons/base/models/ir_rule.py b/odoo/addons/base/models/ir_rule.py index afcf0ac197c..90869ef45ac 100644 --- a/odoo/addons/base/models/ir_rule.py +++ b/odoo/addons/base/models/ir_rule.py @@ -12,6 +12,7 @@ from odoo.tools.safe_eval import safe_eval class IrRule(models.Model): _name = 'ir.rule' + _description = 'Record Rule' _order = 'model_id DESC' _MODES = ['read', 'write', 'create', 'unlink'] diff --git a/odoo/addons/base/models/ir_sequence.py b/odoo/addons/base/models/ir_sequence.py index b096e65e591..b995441c848 100644 --- a/odoo/addons/base/models/ir_sequence.py +++ b/odoo/addons/base/models/ir_sequence.py @@ -82,6 +82,7 @@ class IrSequence(models.Model): """ _name = 'ir.sequence' + _description = 'Sequence' _order = 'name' def _get_number_next_actual(self): @@ -311,6 +312,7 @@ class IrSequence(models.Model): class IrSequenceDateRange(models.Model): _name = 'ir.sequence.date_range' + _description = 'Sequence Date Range' _rec_name = "sequence_id" def _get_number_next_actual(self): diff --git a/odoo/addons/base/models/ir_translation.py b/odoo/addons/base/models/ir_translation.py index ccc926e8f39..2639d258347 100644 --- a/odoo/addons/base/models/ir_translation.py +++ b/odoo/addons/base/models/ir_translation.py @@ -187,6 +187,7 @@ class IrTranslationImport(object): class IrTranslation(models.Model): _name = "ir.translation" + _description = 'Translation' _log_access = False name = fields.Char(string='Translated field', required=True) diff --git a/odoo/addons/base/models/ir_ui_menu.py b/odoo/addons/base/models/ir_ui_menu.py index a721c74d335..7459dd29504 100644 --- a/odoo/addons/base/models/ir_ui_menu.py +++ b/odoo/addons/base/models/ir_ui_menu.py @@ -17,6 +17,7 @@ NUMBER_PARENS = re.compile(r"\(([0-9]+)\)") class IrUiMenu(models.Model): _name = 'ir.ui.menu' + _description = 'Menu' _order = "sequence,id" _parent_store = True diff --git a/odoo/addons/base/models/ir_ui_view.py b/odoo/addons/base/models/ir_ui_view.py index eef40cc916b..f9e613845be 100644 --- a/odoo/addons/base/models/ir_ui_view.py +++ b/odoo/addons/base/models/ir_ui_view.py @@ -82,6 +82,7 @@ def keep_query(*keep_params, **additional_params): class ViewCustom(models.Model): _name = 'ir.ui.view.custom' + _description = 'Custom View' _order = 'create_date desc' # search(limit=1) should return the last customization ref_id = fields.Many2one('ir.ui.view', string='Original View', index=True, required=True, ondelete='cascade') @@ -179,6 +180,7 @@ READONLY = re.compile(r"\breadonly\b") class View(models.Model): _name = 'ir.ui.view' + _description = 'View' _order = "priority,name,id" name = fields.Char(string='View Name', required=True) diff --git a/odoo/addons/base/models/report_paperformat.py b/odoo/addons/base/models/report_paperformat.py index 8383c6ffbd8..9c5afdcf03a 100644 --- a/odoo/addons/base/models/report_paperformat.py +++ b/odoo/addons/base/models/report_paperformat.py @@ -165,7 +165,7 @@ PAPER_SIZES = [ class report_paperformat(models.Model): _name = "report.paperformat" - _description = "Allows customization of a report." + _description = "Paper Format Config" name = fields.Char('Name', required=True) default = fields.Boolean('Default paper format ?') diff --git a/odoo/addons/base/models/res_config.py b/odoo/addons/base/models/res_config.py index df254acad15..7712904fcc0 100644 --- a/odoo/addons/base/models/res_config.py +++ b/odoo/addons/base/models/res_config.py @@ -51,6 +51,7 @@ class ResConfigConfigurable(models.TransientModel): their view inherit from the related res_config_view_base view. ''' _name = 'res.config' + _description = 'Config' @api.multi def start(self): @@ -228,6 +229,7 @@ class ResConfigInstaller(models.TransientModel, ResConfigModuleInstallationMixin """ _name = 'res.config.installer' _inherit = 'res.config' + _description = 'Config Installer' _install_if = {} @@ -379,6 +381,7 @@ class ResConfigSettings(models.TransientModel, ResConfigModuleInstallationMixin) such methods can be defined to provide current values for other fields. """ _name = 'res.config.settings' + _description = 'Config Settings' @api.multi def copy(self, values): diff --git a/odoo/addons/base/models/res_partner.py b/odoo/addons/base/models/res_partner.py index f676ab7dcc0..c74e10f28cb 100644 --- a/odoo/addons/base/models/res_partner.py +++ b/odoo/addons/base/models/res_partner.py @@ -43,6 +43,7 @@ def _tz_get(self): class FormatAddressMixin(models.AbstractModel): _name = "format.address.mixin" + _description = 'Fomat Address' def _fields_view_get_address(self, arch): # consider the country of the user, not the country of the partner we want to display @@ -121,6 +122,7 @@ class PartnerCategory(models.Model): class PartnerTitle(models.Model): _name = 'res.partner.title' _order = 'name' + _description = 'Partner Title' name = fields.Char(string='Title', required=True, translate=True) shortcut = fields.Char(string='Abbreviation', translate=True) diff --git a/odoo/addons/base/models/res_users.py b/odoo/addons/base/models/res_users.py index 01fbadff2f3..b541494d989 100644 --- a/odoo/addons/base/models/res_users.py +++ b/odoo/addons/base/models/res_users.py @@ -179,6 +179,7 @@ class Groups(models.Model): class ResUsersLog(models.Model): _name = 'res.users.log' _order = 'id desc' + _description = 'Users Log' # Currenly only uses the magical fields: create_uid, create_date, # for recording logins. To be extended for other uses (chat presence, etc.) @@ -1227,7 +1228,7 @@ class ChangePasswordWizard(models.TransientModel): class ChangePasswordUser(models.TransientModel): """ A model to configure users in the change password wizard. """ _name = 'change.password.user' - _description = 'Change Password Wizard User' + _description = 'User, Change Password Wizard' wizard_id = fields.Many2one('change.password.wizard', string='Wizard', required=True, ondelete='cascade') user_id = fields.Many2one('res.users', string='User', required=True, ondelete='cascade') diff --git a/odoo/addons/base/report/report_base_report_irmodulereference.py b/odoo/addons/base/report/report_base_report_irmodulereference.py index 58d55206202..64102f2848b 100644 --- a/odoo/addons/base/report/report_base_report_irmodulereference.py +++ b/odoo/addons/base/report/report_base_report_irmodulereference.py @@ -6,6 +6,7 @@ from odoo import api, models class IrModelReferenceReport(models.AbstractModel): _name = 'report.base.report_irmodulereference' + _description = 'Module Reference Report (base)' @api.model def _object_find(self, module): diff --git a/odoo/addons/base/wizard/base_export_language.py b/odoo/addons/base/wizard/base_export_language.py index 50c57bb870e..4695c250603 100644 --- a/odoo/addons/base/wizard/base_export_language.py +++ b/odoo/addons/base/wizard/base_export_language.py @@ -11,6 +11,7 @@ NEW_LANG_KEY = '__new__' class BaseLanguageExport(models.TransientModel): _name = "base.language.export" + _description = 'Language Export' @api.model def _get_languages(self): diff --git a/odoo/addons/base/wizard/base_module_uninstall.py b/odoo/addons/base/wizard/base_module_uninstall.py index a347930a037..ac224dcc82b 100644 --- a/odoo/addons/base/wizard/base_module_uninstall.py +++ b/odoo/addons/base/wizard/base_module_uninstall.py @@ -6,7 +6,7 @@ from odoo import api, fields, models class BaseModuleUninstall(models.TransientModel): _name = "base.module.uninstall" - _description = "Module Uninstallation" + _description = "Module Uninstall" show_all = fields.Boolean() module_id = fields.Many2one( diff --git a/odoo/addons/base/wizard/base_module_upgrade.py b/odoo/addons/base/wizard/base_module_upgrade.py index 07475ffeaf9..0d760c549c0 100644 --- a/odoo/addons/base/wizard/base_module_upgrade.py +++ b/odoo/addons/base/wizard/base_module_upgrade.py @@ -8,7 +8,7 @@ from odoo.exceptions import UserError class BaseModuleUpgrade(models.TransientModel): _name = "base.module.upgrade" - _description = "Module Upgrade" + _description = "Upgrade Module" @api.model @api.returns('ir.module.module') diff --git a/odoo/addons/base/wizard/base_partner_merge.py b/odoo/addons/base/wizard/base_partner_merge.py index 47c9f83fe51..007fff6deb2 100644 --- a/odoo/addons/base/wizard/base_partner_merge.py +++ b/odoo/addons/base/wizard/base_partner_merge.py @@ -17,6 +17,7 @@ _logger = logging.getLogger('base.partner.merge') class MergePartnerLine(models.TransientModel): _name = 'base.partner.merge.line' + _description = 'Merge Partner Line' _order = 'min_id asc' wizard_id = fields.Many2one('base.partner.merge.automatic.wizard', 'Wizard') @@ -32,6 +33,7 @@ class MergePartnerAutomatic(models.TransientModel): """ _name = 'base.partner.merge.automatic.wizard' + _description = 'Merge Partner Wizard' @api.model def default_get(self, fields): diff --git a/odoo/addons/base/wizard/base_update_translations.py b/odoo/addons/base/wizard/base_update_translations.py index 145176e2db5..f1dc7a10ca4 100644 --- a/odoo/addons/base/wizard/base_update_translations.py +++ b/odoo/addons/base/wizard/base_update_translations.py @@ -9,6 +9,7 @@ from odoo.exceptions import UserError class BaseUpdateTranslations(models.TransientModel): _name = 'base.update.translations' + _description = 'Update Translations' @api.model def _get_languages(self): From 427ba08e0d161e322c5774d7e99be6daf93ece86 Mon Sep 17 00:00:00 2001 From: Nimesh Jethva Date: Mon, 17 Sep 2018 16:35:47 +0530 Subject: [PATCH 04/14] [IMP]various: Improvement in model description Purpose of this commit is to give description more "business oriented" because those descriptions appears in Odoo Studio which is supposed to be used by end users, not only by developers. Related Task ID : 37311 --- addons/test_mail/models/test_mail_models.py | 1 + odoo/addons/test_access_rights/models.py | 2 ++ odoo/addons/test_converter/models.py | 3 +++ .../test_documentation_examples/delegation.py | 3 +++ .../test_documentation_examples/extension.py | 1 + .../inheritance.py | 2 ++ odoo/addons/test_exceptions/models.py | 1 + odoo/addons/test_impex/models.py | 9 ++++++++ odoo/addons/test_inherit/models.py | 5 +++++ odoo/addons/test_inherits/models.py | 3 +++ odoo/addons/test_limits/models.py | 1 + odoo/addons/test_new_api/models.py | 22 +++++++++++++++++++ odoo/addons/test_performance/models/models.py | 3 +++ odoo/addons/test_read_group/models.py | 5 +++++ odoo/addons/test_testing_utilities/models.py | 16 ++++++++++++++ odoo/addons/test_uninstall/models.py | 1 + 16 files changed, 78 insertions(+) diff --git a/addons/test_mail/models/test_mail_models.py b/addons/test_mail/models/test_mail_models.py index 5179eb44b54..8ada6ed86c8 100644 --- a/addons/test_mail/models/test_mail_models.py +++ b/addons/test_mail/models/test_mail_models.py @@ -110,6 +110,7 @@ class MailTestAlias(models.Model): class MailModel(models.Model): _name = 'test_performance.mail' + _description = 'Test Performance Mail' _inherit = 'mail.thread' name = fields.Char() diff --git a/odoo/addons/test_access_rights/models.py b/odoo/addons/test_access_rights/models.py index ee4b7ffb216..f0660776d70 100644 --- a/odoo/addons/test_access_rights/models.py +++ b/odoo/addons/test_access_rights/models.py @@ -5,11 +5,13 @@ from odoo import fields, models class SomeObj(models.Model): _name = 'test_access_right.some_obj' + _description = 'Object For Test Access Right' val = fields.Integer() class Container(models.Model): _name = 'test_access_right.container' + _description = 'Test Access Right Container' some_ids = fields.Many2many('test_access_right.some_obj', 'test_access_right_rel', 'container_id', 'some_id') diff --git a/odoo/addons/test_converter/models.py b/odoo/addons/test_converter/models.py index 55938946b34..49fc86cbb07 100644 --- a/odoo/addons/test_converter/models.py +++ b/odoo/addons/test_converter/models.py @@ -5,6 +5,7 @@ from odoo import models, fields, api, SUPERUSER_ID class test_model(models.Model): _name = 'test_converter.test_model' + _description = 'Test Converter Model' char = fields.Char() integer = fields.Integer() @@ -41,9 +42,11 @@ class test_model(models.Model): class test_model_sub(models.Model): _name = 'test_converter.test_model.sub' + _description = 'Subtraction For Test Model & Test Converter' name = fields.Char() class test_model_monetary(models.Model): _name = 'test_converter.monetary' + _description = 'Test Converter Monetary' value = fields.Float(digits=(16, 55)) diff --git a/odoo/addons/test_documentation_examples/delegation.py b/odoo/addons/test_documentation_examples/delegation.py index 3f9ba035168..54beeef77c6 100644 --- a/odoo/addons/test_documentation_examples/delegation.py +++ b/odoo/addons/test_documentation_examples/delegation.py @@ -5,16 +5,19 @@ from odoo import models, fields class Child0(models.Model): _name = 'delegation.child0' + _description = 'Delegation Child zero' field_0 = fields.Integer() class Child1(models.Model): _name = 'delegation.child1' + _description = 'Delegation Child one' field_1 = fields.Integer() class Delegating(models.Model): _name = 'delegation.parent' + _description = 'Delegation Parent' _inherits = { 'delegation.child0': 'child0_id', diff --git a/odoo/addons/test_documentation_examples/extension.py b/odoo/addons/test_documentation_examples/extension.py index 344c809026e..5e01e800b2f 100644 --- a/odoo/addons/test_documentation_examples/extension.py +++ b/odoo/addons/test_documentation_examples/extension.py @@ -5,6 +5,7 @@ from odoo import models, fields class Extension0(models.Model): _name = 'extension.0' + _description = 'Extension zero' name = fields.Char(default="A") diff --git a/odoo/addons/test_documentation_examples/inheritance.py b/odoo/addons/test_documentation_examples/inheritance.py index b1586760d98..510adb877d5 100644 --- a/odoo/addons/test_documentation_examples/inheritance.py +++ b/odoo/addons/test_documentation_examples/inheritance.py @@ -5,6 +5,7 @@ from odoo import models, fields class Inheritance0(models.Model): _name = 'inheritance.0' + _description = 'Inheritance Zero' name = fields.Char() @@ -17,6 +18,7 @@ class Inheritance0(models.Model): class Inheritance1(models.Model): _name = 'inheritance.1' _inherit = 'inheritance.0' + _description = 'Inheritance One' def call(self): return self.check("model 1") diff --git a/odoo/addons/test_exceptions/models.py b/odoo/addons/test_exceptions/models.py index 9b5e6902681..0a09164eaa7 100644 --- a/odoo/addons/test_exceptions/models.py +++ b/odoo/addons/test_exceptions/models.py @@ -12,6 +12,7 @@ class m(models.Model): and the clients. """ _name = 'test.exceptions.model' + _description = 'Test Exception Model' @api.multi def generate_except_osv(self): diff --git a/odoo/addons/test_impex/models.py b/odoo/addons/test_impex/models.py index 5a098936ccc..ca98a802a41 100644 --- a/odoo/addons/test_impex/models.py +++ b/odoo/addons/test_impex/models.py @@ -58,6 +58,7 @@ for name, field in MODELS: class One2ManyChild(models.Model): _name = 'export.one2many.child' + _description = 'Export One to Many Child' # FIXME: orm.py:1161, fix to name_get on m2o field _rec_name = 'value' @@ -80,6 +81,7 @@ class One2ManyChild(models.Model): class One2ManyMultiple(models.Model): _name = 'export.one2many.multiple' + _description = 'Export One To Many Multiple' parent_id = fields.Many2one('export.one2many.recursive') const = fields.Integer(default=36) @@ -91,6 +93,7 @@ class One2ManyChildMultiple(models.Model): _name = 'export.one2many.multiple.child' # FIXME: orm.py:1161, fix to name_get on m2o field _rec_name = 'value' + _description = 'Export One To Many Multiple Child' parent_id = fields.Many2one('export.one2many.multiple') str = fields.Char() @@ -104,15 +107,18 @@ class One2ManyChildMultiple(models.Model): class One2ManyChild1(models.Model): _name = 'export.one2many.child.1' _inherit = 'export.one2many.multiple.child' + _description = 'Export One to Many Child 1' class One2ManyChild2(models.Model): _name = 'export.one2many.child.2' _inherit = 'export.one2many.multiple.child' + _description = 'Export One To Many Child 2' class Many2ManyChild(models.Model): _name = 'export.many2many.other' + _description = 'Export Many to Many Other' # FIXME: orm.py:1161, fix to name_get on m2o field _rec_name = 'value' @@ -134,6 +140,7 @@ class Many2ManyChild(models.Model): class SelectionWithDefault(models.Model): _name = 'export.selection.withdefault' + _description = 'Export Selection With Default' const = fields.Integer(default=4) value = fields.Selection([(1, "Foo"), (2, "Bar")], default=2) @@ -141,6 +148,7 @@ class SelectionWithDefault(models.Model): class RecO2M(models.Model): _name = 'export.one2many.recursive' + _description = 'Export One To Many Recursive' value = fields.Integer() child = fields.One2many('export.one2many.multiple', 'parent_id') @@ -148,6 +156,7 @@ class RecO2M(models.Model): class OnlyOne(models.Model): _name = 'export.unique' + _description = 'Export Unique' value = fields.Integer() value2 = fields.Integer() diff --git a/odoo/addons/test_inherit/models.py b/odoo/addons/test_inherit/models.py index fb4175087bf..0962f319204 100644 --- a/odoo/addons/test_inherit/models.py +++ b/odoo/addons/test_inherit/models.py @@ -6,6 +6,7 @@ from odoo import models, fields, api # We create a new model class mother(models.Model): _name = 'test.inherit.mother' + _description = 'Test Inherit Mother' name = fields.Char(default='Foo') state = fields.Selection([('a', 'A'), ('b', 'B')], default='a') @@ -20,6 +21,7 @@ class mother(models.Model): # We inherit from the parent model, and we add some fields in the child model class daughter(models.Model): _name = 'test.inherit.daughter' + _description = 'Test Inherit Daughter' template_id = fields.Many2one('test.inherit.mother', 'Template', delegate=True, required=True, ondelete='cascade') @@ -78,6 +80,7 @@ class res_partner(models.Model): # Contribution by Adrien Peiffer (ACSONE). class test_inherit_property(models.Model): _name = 'test.inherit.property' + _description = 'Test Inherit Property' name = fields.Char('Name', required=True) property_foo = fields.Integer(string='Foo', company_dependent=True) @@ -104,6 +107,7 @@ class test_inherit_property(models.Model): # class Parent1(models.AbstractModel): _name = 'test.inherit.parent' + _description = 'Test Inherit Parent' def stuff(self): return 'P1' @@ -112,6 +116,7 @@ class Parent1(models.AbstractModel): class Child(models.AbstractModel): _name = 'test.inherit.child' _inherit = 'test.inherit.parent' + _description = 'Test Inherit Child' bar = fields.Integer() diff --git a/odoo/addons/test_inherits/models.py b/odoo/addons/test_inherits/models.py index 7aa570b669a..e31ebcdfff0 100644 --- a/odoo/addons/test_inherits/models.py +++ b/odoo/addons/test_inherits/models.py @@ -5,6 +5,7 @@ from odoo import models, fields, api # We just create a new model class Unit(models.Model): _name = 'test.unit' + _description = 'Test Unit' name = fields.Char('Name', required=True) state = fields.Selection([('a', 'A'), ('b', 'B')], string='State') @@ -21,6 +22,7 @@ class Unit(models.Model): class Box(models.Model): _name = 'test.box' _inherits = {'test.unit': 'unit_id'} + _description = 'Test Box' unit_id = fields.Many2one('test.unit', 'Unit', required=True, ondelete='cascade') @@ -31,6 +33,7 @@ class Box(models.Model): class Pallet(models.Model): _name = 'test.pallet' _inherits = {'test.box': 'box_id'} + _description = 'Test Pallet' box_id = fields.Many2one('test.box', 'Box', required=True, ondelete='cascade') diff --git a/odoo/addons/test_limits/models.py b/odoo/addons/test_limits/models.py index 957e3c3d6f9..c443c9ed1c9 100644 --- a/odoo/addons/test_limits/models.py +++ b/odoo/addons/test_limits/models.py @@ -11,6 +11,7 @@ class m(models.Model): resource' and 'a lot of resource'. """ _name = 'test.limits.model' + _description = 'Test Limits Model' @api.model def consume_nothing(self): diff --git a/odoo/addons/test_new_api/models.py b/odoo/addons/test_new_api/models.py index 5ff14093c38..bb55424b9c9 100644 --- a/odoo/addons/test_new_api/models.py +++ b/odoo/addons/test_new_api/models.py @@ -10,6 +10,7 @@ from odoo.tools import pycompat class Category(models.Model): _name = 'test_new_api.category' + _description = 'Test New API Category' _order = 'name' _parent_store = True _parent_name = 'parent' @@ -65,6 +66,7 @@ class Category(models.Model): class Discussion(models.Model): _name = 'test_new_api.discussion' + _description = 'Test New API Discussion' name = fields.Char(string='Title', required=True, help="General description of what this discussion is about.") @@ -112,6 +114,7 @@ class Discussion(models.Model): class Message(models.Model): _name = 'test_new_api.message' + _description = 'Test New API Message' discussion = fields.Many2one('test_new_api.discussion', ondelete='cascade') body = fields.Text() @@ -182,6 +185,7 @@ class Message(models.Model): class EmailMessage(models.Model): _name = 'test_new_api.emailmessage' + _description = 'Test New API Email Message' _inherits = {'test_new_api.message': 'message'} message = fields.Many2one('test_new_api.message', 'Message', @@ -194,6 +198,7 @@ class Multi(models.Model): one2many field several times. """ _name = 'test_new_api.multi' + _description = 'Test New API Multi' name = fields.Char(related='partner.name', readonly=True) partner = fields.Many2one('res.partner') @@ -212,6 +217,7 @@ class Multi(models.Model): class MultiLine(models.Model): _name = 'test_new_api.multi.line' + _description = 'Test New API Multi Line' multi = fields.Many2one('test_new_api.multi', ondelete='cascade') name = fields.Char() @@ -221,12 +227,14 @@ class MultiLine(models.Model): class MultiTag(models.Model): _name = 'test_new_api.multi.tag' + _description = 'Test New API Multi Tag' name = fields.Char() class Edition(models.Model): _name = 'test_new_api.creativework.edition' + _description = 'Test New API Creative Work Edition' name = fields.Char() res_id = fields.Integer(required=True) @@ -236,6 +244,7 @@ class Edition(models.Model): class Book(models.Model): _name = 'test_new_api.creativework.book' + _description = 'Test New API Creative Work Book' name = fields.Char() editions = fields.One2many( @@ -245,6 +254,7 @@ class Book(models.Model): class Movie(models.Model): _name = 'test_new_api.creativework.movie' + _description = 'Test New API Creative Work Movie' name = fields.Char() editions = fields.One2many( @@ -254,6 +264,7 @@ class Movie(models.Model): class MixedModel(models.Model): _name = 'test_new_api.mixed' + _description = 'Test New API Mixed' number = fields.Float(digits=(10, 2), default=3.14) date = fields.Date() @@ -288,6 +299,7 @@ class MixedModel(models.Model): class BoolModel(models.Model): _name = 'domain.bool' + _description = 'Boolean Domain' bool_true = fields.Boolean('b1', default=True) bool_false = fields.Boolean('b2', default=False) @@ -296,6 +308,7 @@ class BoolModel(models.Model): class Foo(models.Model): _name = 'test_new_api.foo' + _description = 'Test New API Foo' name = fields.Char() value1 = fields.Integer(change_default=True) @@ -304,6 +317,7 @@ class Foo(models.Model): class Bar(models.Model): _name = 'test_new_api.bar' + _description = 'Test New API Bar' name = fields.Char() foo = fields.Many2one('test_new_api.foo', compute='_compute_foo') @@ -318,6 +332,7 @@ class Bar(models.Model): class Related(models.Model): _name = 'test_new_api.related' + _description = 'Test New API Related' name = fields.Char() # related fields with a single field @@ -330,6 +345,7 @@ class Related(models.Model): class ComputeProtected(models.Model): _name = 'test_new_api.compute.protected' + _description = 'Test New API Compute Protected' foo = fields.Char(default='') bar = fields.Char(compute='_compute_bar', store=True) @@ -341,6 +357,7 @@ class ComputeProtected(models.Model): class ComputeInverse(models.Model): _name = 'test_new_api.compute.inverse' + _description = 'Test New API Compute Inversse' foo = fields.Char() bar = fields.Char(compute='_compute_bar', inverse='_inverse_bar', store=True) @@ -360,6 +377,7 @@ class ComputeInverse(models.Model): class MultiComputeInverse(models.Model): """ Model with the same inverse method for several fields. """ _name = 'test_new_api.multi_compute_inverse' + _description = 'Test New API Multi Compute Inverse' foo = fields.Char(default='', required=True) bar1 = fields.Char(compute='_compute_bars', inverse='_inverse_bar1', store=True) @@ -386,6 +404,7 @@ class MultiComputeInverse(models.Model): class CompanyDependent(models.Model): _name = 'test_new_api.company' + _description = 'Test New API Company' foo = fields.Char(company_dependent=True) tag_id = fields.Many2one('test_new_api.multi.tag', company_dependent=True) @@ -393,6 +412,7 @@ class CompanyDependent(models.Model): class CompanyDependentAttribute(models.Model): _name = 'test_new_api.company.attr' + _description = 'Test New API Company Attribute' company = fields.Many2one('test_new_api.company') quantity = fields.Integer() @@ -406,6 +426,7 @@ class CompanyDependentAttribute(models.Model): class ComputeRecursive(models.Model): _name = 'test_new_api.recursive' + _description = 'Test New API Recursive' name = fields.Char(required=True) parent = fields.Many2one('test_new_api.recursive', ondelete='cascade') @@ -422,6 +443,7 @@ class ComputeRecursive(models.Model): class ComputeCascade(models.Model): _name = 'test_new_api.cascade' + _description = 'Test New API Cascade' foo = fields.Char() bar = fields.Char(compute='_compute_bar') # depends on foo diff --git a/odoo/addons/test_performance/models/models.py b/odoo/addons/test_performance/models/models.py index b9d8b76b333..8189e9b8c0d 100644 --- a/odoo/addons/test_performance/models/models.py +++ b/odoo/addons/test_performance/models/models.py @@ -6,6 +6,7 @@ from odoo import models, fields, api class BaseModel(models.Model): _name = 'test_performance.base' + _description = 'Test Performance Base' name = fields.Char() value = fields.Integer() @@ -29,6 +30,7 @@ class BaseModel(models.Model): class LineModel(models.Model): _name = 'test_performance.line' + _description = 'Test Performance Line' base_id = fields.Many2one('test_performance.base', required=True, ondelete='cascade') value = fields.Integer() @@ -36,5 +38,6 @@ class LineModel(models.Model): class TagModel(models.Model): _name = 'test_performance.tag' + _description = 'Test Performance Tag' name = fields.Char() diff --git a/odoo/addons/test_read_group/models.py b/odoo/addons/test_read_group/models.py index 38820119f39..ac9592485dd 100644 --- a/odoo/addons/test_read_group/models.py +++ b/odoo/addons/test_read_group/models.py @@ -4,6 +4,7 @@ from odoo import fields, models class GroupOnDate(models.Model): _name = 'test_read_group.on_date' + _description = 'Group Test Read On Date' date = fields.Date("Date") value = fields.Integer("Value") @@ -11,6 +12,7 @@ class GroupOnDate(models.Model): class BooleanAggregate(models.Model): _name = 'test_read_group.aggregate.boolean' + _description = 'Group Test Read Boolean Aggregate' _order = 'key DESC' key = fields.Integer() @@ -22,6 +24,7 @@ class BooleanAggregate(models.Model): class Aggregate(models.Model): _name = 'test_read_group.aggregate' _order = 'id' + _description = 'Group Test Aggregate' key = fields.Integer() value = fields.Integer("Value") @@ -30,6 +33,7 @@ class Aggregate(models.Model): class GroupOnSelection(models.Model): _name = 'test_read_group.on_selection' + _description = 'Group Test Read On Selection' state = fields.Selection([('a', "A"), ('b', "B")], group_expand='_expand_states') value = fields.Integer() @@ -41,6 +45,7 @@ class GroupOnSelection(models.Model): class FillTemporal(models.Model): _name = 'test_read_group.fill_temporal' + _description = 'Group Test Fill Temporal' date = fields.Date() datetime = fields.Datetime() diff --git a/odoo/addons/test_testing_utilities/models.py b/odoo/addons/test_testing_utilities/models.py index 8d911e2135c..68dc9172123 100644 --- a/odoo/addons/test_testing_utilities/models.py +++ b/odoo/addons/test_testing_utilities/models.py @@ -4,6 +4,7 @@ from odoo import api, fields, models class A(models.Model): _name = 'test_testing_utilities.a' + _description = 'Testing Utilities A' f1 = fields.Integer(required=True) f2 = fields.Integer(default=42) @@ -21,6 +22,7 @@ class A(models.Model): class B(models.Model): _name = 'test_testing_utilities.readonly' + _description = 'Testing Utilities Readonly' f1 = fields.Integer(default=1, readonly=True) f2 = fields.Integer(compute='_compute_f2') @@ -32,6 +34,7 @@ class B(models.Model): class C(models.Model): _name = 'test_testing_utilities.c' + _description = 'Testing Utilities C' name = fields.Char("name", required=True) f2 = fields.Many2one('test_testing_utilities.m2o') @@ -42,11 +45,13 @@ class C(models.Model): class M2O(models.Model): _name = 'test_testing_utilities.m2o' + _description = 'Testing Utilities Many To One' name = fields.Char(required=True) class M2Onchange(models.Model): _name = 'test_testing_utilities.d' + _description = 'Testing Utilities D' # used to check that defaults & onchange to m2o work f = fields.Many2one( @@ -66,6 +71,7 @@ class M2Onchange(models.Model): class M2MChange(models.Model): _name = 'test_testing_utilities.e' + _description = 'Testing Utilities E' m2m = fields.Many2many('test_testing_utilities.sub2') count = fields.Integer(compute='_m2m_count') @@ -77,11 +83,13 @@ class M2MChange(models.Model): class M2MSub(models.Model): _name = 'test_testing_utilities.sub2' + _description = 'Testing Utilities Subtraction 2' name = fields.Char() class M2MChange2(models.Model): _name = 'test_testing_utilities.f' + _description = 'Testing Utilities F' def _get_some(self): r = self.env['test_testing_utilities.sub2'].search([], limit=2) @@ -99,16 +107,19 @@ class M2MChange2(models.Model): class M2MReadonly(models.Model): _name = 'test_testing_utilities.g' + _description = 'Testing Utilities G' m2m = fields.Many2many('test_testing_utilities.sub3', readonly=True) class M2MSub3(models.Model): _name = 'test_testing_utilities.sub3' + _description = 'Testing Utilities Subtraction 3' name = fields.Char() class O2MChange(models.Model): _name = 'test_testing_utilities.parent' + _description = 'Testing Utilities Parent' value = fields.Integer(default=1) v = fields.Integer() @@ -120,6 +131,7 @@ class O2MChange(models.Model): class O2MSub(models.Model): _name = 'test_testing_utilities.sub' + _description = 'Testing Utilities Subtraction' name = fields.Char(compute='_compute_name') value = fields.Integer(default=2) @@ -144,6 +156,7 @@ class O2MSub(models.Model): class O2MDefault(models.Model): _name = 'test_testing_utilities.default' + _description = 'Testing Utilities Default' def _default_subs(self): return [ @@ -155,6 +168,7 @@ class O2MDefault(models.Model): class O2MSub3(models.Model): _name = 'test_testing_utilities.sub3' + _description = 'Testing Utilities Subtraction 3' name = fields.Char(compute='_compute_name') value = fields.Integer(default=2) @@ -173,6 +187,7 @@ class O2MSub3(models.Model): class O2MOnchangeParent(models.Model): _name = 'test_testing_utilities.onchange_parent' + _description = 'Testing Utilities Onchange Parent' line_ids = fields.One2many('test_testing_utilities.onchange_line', 'parent') @@ -184,6 +199,7 @@ class O2MOnchangeParent(models.Model): class M2OOnchangeLine(models.Model): _name = 'test_testing_utilities.onchange_line' + _description = 'Testing Utilities Onchange Line' parent = fields.Many2one('test_testing_utilities.onchange_parent') dummy = fields.Float() diff --git a/odoo/addons/test_uninstall/models.py b/odoo/addons/test_uninstall/models.py index c86d9913615..052cecf14cf 100644 --- a/odoo/addons/test_uninstall/models.py +++ b/odoo/addons/test_uninstall/models.py @@ -9,6 +9,7 @@ class test_uninstall_model(models.Model): the uninstall feature of Odoo. """ _name = 'test_uninstall.model' + _description = 'Testing Uninstall Model' name = fields.Char('Name') ref = fields.Many2one('res.users', string='User') From 53e8aba1ab4411c5011b1f19d6cd8e75dea7b04e Mon Sep 17 00:00:00 2001 From: Nimesh Jethva Date: Mon, 17 Sep 2018 16:40:15 +0530 Subject: [PATCH 05/14] [IMP]website_*: Improvement in model description Purpose of this commit is to give description more "business oriented" because those descriptions appears in Odoo Studio which is supposed to be used by end users, not only by developers. Related Task ID : 37311 --- .../im_livechat/models/im_livechat_channel.py | 2 +- addons/im_livechat/models/mail_channel.py | 1 + .../report/im_livechat_report_channel.py | 2 +- .../report/im_livechat_report_operator.py | 2 +- addons/website/models/website.py | 3 + .../report/crm_lead_report.py | 76 ------------------- addons/website_customer/models/res_partner.py | 2 +- .../website_event_questions/models/event.py | 3 + .../report_event_registrations_questions.py | 1 + addons/website_event_track/models/event.py | 1 + .../website_event_track/models/event_track.py | 6 +- addons/website_form/models/models.py | 2 + addons/website_forum/models/forum.py | 2 +- addons/website_sale/models/product.py | 2 + .../models/product_wishlist.py | 1 + addons/website_slides/models/slides.py | 2 +- .../models/ir_module_module.py | 1 + .../models/theme_models.py | 5 ++ .../models/website_twitter_tweet.py | 1 + 19 files changed, 30 insertions(+), 85 deletions(-) delete mode 100644 addons/website_crm_partner_assign/report/crm_lead_report.py diff --git a/addons/im_livechat/models/im_livechat_channel.py b/addons/im_livechat/models/im_livechat_channel.py index f7368853ffc..f5547e8cd66 100644 --- a/addons/im_livechat/models/im_livechat_channel.py +++ b/addons/im_livechat/models/im_livechat_channel.py @@ -208,7 +208,7 @@ class ImLivechatChannelRule(models.Model): """ _name = 'im_livechat.channel.rule' - _description = 'Channel Rules' + _description = 'Livechat Channel Rules' _order = 'sequence asc' diff --git a/addons/im_livechat/models/mail_channel.py b/addons/im_livechat/models/mail_channel.py index db90ff357e6..4572ba64848 100644 --- a/addons/im_livechat/models/mail_channel.py +++ b/addons/im_livechat/models/mail_channel.py @@ -30,6 +30,7 @@ class MailChannel(models.Model): _name = 'mail.channel' _inherit = ['mail.channel', 'rating.mixin'] + _description = 'Discussion channel' anonymous_name = fields.Char('Anonymous Name') channel_type = fields.Selection(selection_add=[('livechat', 'Livechat Conversation')]) diff --git a/addons/im_livechat/report/im_livechat_report_channel.py b/addons/im_livechat/report/im_livechat_report_channel.py index 5749177b388..ffae21169ab 100644 --- a/addons/im_livechat/report/im_livechat_report_channel.py +++ b/addons/im_livechat/report/im_livechat_report_channel.py @@ -8,7 +8,7 @@ class ImLivechatReportChannel(models.Model): """ Livechat Support Report on the Channels """ _name = "im_livechat.report.channel" - _description = "Livechat Support Report" + _description = "Livechat Support Channel Report" _order = 'start_date, technical_name' _auto = False diff --git a/addons/im_livechat/report/im_livechat_report_operator.py b/addons/im_livechat/report/im_livechat_report_operator.py index 4a561296eaf..30adad7a5d7 100644 --- a/addons/im_livechat/report/im_livechat_report_operator.py +++ b/addons/im_livechat/report/im_livechat_report_operator.py @@ -8,7 +8,7 @@ class ImLivechatReportOperator(models.Model): """ Livechat Support Report on the Operator """ _name = "im_livechat.report.operator" - _description = "Livechat Support Report" + _description = "Livechat Support Operator Report" _order = 'livechat_channel_id, partner_id' _auto = False diff --git a/addons/website/models/website.py b/addons/website/models/website.py index 7504fa5c2ec..fc6ff771e1c 100644 --- a/addons/website/models/website.py +++ b/addons/website/models/website.py @@ -755,6 +755,7 @@ class SeoMetadata(models.AbstractModel): class WebsiteMultiMixin(models.AbstractModel): _name = 'website.multi.mixin' + _description = 'Multi Website Mixin' website_id = fields.Many2one('website', string='Website', help='Restrict publishing to this website.') @@ -771,6 +772,7 @@ class WebsiteMultiMixin(models.AbstractModel): class WebsitePublishedMixin(models.AbstractModel): _name = "website.published.mixin" + _description = 'Website Published Mixin' website_published = fields.Boolean('Visible on current website', related='is_published') is_published = fields.Boolean('Is published') @@ -803,6 +805,7 @@ class WebsitePublishedMultiMixin(WebsitePublishedMixin): _name = 'website.published.multi.mixin' _inherit = ['website.published.mixin', 'website.multi.mixin'] + _description = 'Multi Website Published Mixin' website_published = fields.Boolean(compute='_compute_website_published', inverse='_inverse_website_published', diff --git a/addons/website_crm_partner_assign/report/crm_lead_report.py b/addons/website_crm_partner_assign/report/crm_lead_report.py deleted file mode 100644 index 5971c239b2e..00000000000 --- a/addons/website_crm_partner_assign/report/crm_lead_report.py +++ /dev/null @@ -1,76 +0,0 @@ -# -*- coding: utf-8 -*- -# Part of Odoo. See LICENSE file for full copyright and licensing details. - -from odoo import api, fields, models -from odoo import tools -from odoo.addons.crm.models import crm_stage - - -class CrmLeadReportAssign(models.Model): - """ CRM Lead Report """ - _name = "crm.lead.report.assign" - _auto = False - _description = "Opp. Assignment Analysis" - - partner_assigned_id = fields.Many2one('res.partner', 'Partner', readonly=True) - grade_id = fields.Many2one('res.partner.grade', 'Grade', readonly=True) - user_id = fields.Many2one('res.users', 'User', readonly=True) - country_id = fields.Many2one('res.country', 'Country', readonly=True) - team_id = fields.Many2one('crm.team', 'Sales Team', oldname='section_id', readonly=True) - company_id = fields.Many2one('res.company', 'Company', readonly=True) - date_assign = fields.Date('Assign Date', readonly=True) - delay_open = fields.Float('Delay to Assign', digits=(16, 2), readonly=True, group_operator="avg", help="Number of Days to open the case") - delay_close = fields.Float('Delay to Close', digits=(16, 2), readonly=True, group_operator="avg", help="Number of Days to close the case") - delay_expected = fields.Float('Overpassed Deadline', digits=(16, 2), readonly=True, group_operator="avg") - probability = fields.Float('Avg Probability', digits=(16, 2), readonly=True, group_operator="avg") - probability_max = fields.Float('Max Probability', digits=(16, 2), readonly=True, group_operator="max") - planned_revenue = fields.Float('Planned Revenue', digits=(16, 2), readonly=True) - probable_revenue = fields.Float('Probable Revenue', digits=(16, 2), readonly=True) - tag_ids = fields.Many2many('crm.lead.tag', 'crm_lead_tag_rel', 'lead_id', 'tag_id', 'Tags') - partner_id = fields.Many2one('res.partner', 'Customer', readonly=True) - opening_date = fields.Datetime('Opening Date', readonly=True) - date_closed = fields.Datetime('Close Date', readonly=True) - nbr_cases = fields.Integer('# of Cases', readonly=True, oldname='nbr') - priority = fields.Selection(crm_stage.AVAILABLE_PRIORITIES, 'Priority') - type = fields.Selection([ - ('lead', 'Lead'), - ('opportunity', 'Opportunity') - ], 'Type', help="Type is used to separate Leads and Opportunities") - - @api.model_cr - def init(self): - """ - CRM Lead Report - @param cr: the current row, from the database cursor - """ - tools.drop_view_if_exists(self._cr, 'crm_lead_report_assign') - self._cr.execute(""" - CREATE OR REPLACE VIEW crm_lead_report_assign AS ( - SELECT - c.id, - c.date_open as opening_date, - c.date_closed as date_closed, - c.date_assign, - c.user_id, - c.probability, - c.probability as probability_max, - c.type, - c.company_id, - c.priority, - c.team_id, - c.partner_id, - c.country_id, - c.planned_revenue, - c.partner_assigned_id, - p.grade_id, - p.date as partner_date, - c.planned_revenue*(c.probability/100) as probable_revenue, - 1 as nbr_cases, - c.create_date as create_date, - extract('epoch' from (c.write_date-c.create_date))/(3600*24) as delay_close, - extract('epoch' from (c.date_deadline - c.date_closed))/(3600*24) as delay_expected, - extract('epoch' from (c.date_open-c.create_date))/(3600*24) as delay_open - FROM - crm_lead c - left join res_partner p on (c.partner_assigned_id=p.id) - )""") diff --git a/addons/website_customer/models/res_partner.py b/addons/website_customer/models/res_partner.py index 680a6c95f2d..a70dd40bab3 100644 --- a/addons/website_customer/models/res_partner.py +++ b/addons/website_customer/models/res_partner.py @@ -14,7 +14,7 @@ class Partner(models.Model): class Tags(models.Model): _name = 'res.partner.tag' - _description = 'Partner Tags - These tags can be used on website to find customers by sector, or ... ' + _description = 'Partner Tags - These tags can be used on website to find customers by sector, or ...' _inherit = 'website.published.mixin' @api.model diff --git a/addons/website_event_questions/models/event.py b/addons/website_event_questions/models/event.py index 8bf6a0f2d86..43b33d1368f 100644 --- a/addons/website_event_questions/models/event.py +++ b/addons/website_event_questions/models/event.py @@ -46,6 +46,7 @@ class EventRegistrationAnswer(models.Model): _name = 'event.registration.answer' _table = 'event_registration_answer' + _description = 'Event Registration Answer' event_answer_id = fields.Many2one('event.answer', required=True, ondelete='cascade') event_registration_id = fields.Many2one('event.registration', required=True, ondelete='cascade') @@ -62,6 +63,7 @@ class EventQuestion(models.Model): _name = 'event.question' _rec_name = 'title' _order = 'sequence,id' + _description = 'Event Question' title = fields.Char(required=True, translate=True) event_type_id = fields.Many2one('event.type', 'Event Type', ondelete='cascade') @@ -93,6 +95,7 @@ class EventQuestion(models.Model): class EventAnswer(models.Model): _name = 'event.answer' _order = 'sequence,id' + _description = 'Event Answer' name = fields.Char('Answer', required=True, translate=True) question_id = fields.Many2one('event.question', required=True, ondelete='cascade') diff --git a/addons/website_event_questions/report/report_event_registrations_questions.py b/addons/website_event_questions/report/report_event_registrations_questions.py index 0cf362bbf0d..8d229c55469 100644 --- a/addons/website_event_questions/report/report_event_registrations_questions.py +++ b/addons/website_event_questions/report/report_event_registrations_questions.py @@ -7,6 +7,7 @@ from odoo import api, fields, models, tools class ReportEventRegistrationQuestions(models.Model): _name = "event.question.report" _auto = False + _description = 'Event Question Report' attendee_id = fields.Many2one(comodel_name='event.registration', string='Registration') question_id = fields.Many2one(comodel_name='event.question', string='Question') diff --git a/addons/website_event_track/models/event.py b/addons/website_event_track/models/event.py index ca08ddcd616..422b91bef67 100644 --- a/addons/website_event_track/models/event.py +++ b/addons/website_event_track/models/event.py @@ -20,6 +20,7 @@ class EventType(models.Model): class EventMenu(models.Model): _name = "website.event.menu" + _description = "Website Event Menu" menu_id = fields.Many2one('website.menu', string='Menu', ondelete='cascade') event_id = fields.Many2one('event.event', string='Event', ondelete='cascade') diff --git a/addons/website_event_track/models/event_track.py b/addons/website_event_track/models/event_track.py index 9929f6e5519..1661167e0cd 100644 --- a/addons/website_event_track/models/event_track.py +++ b/addons/website_event_track/models/event_track.py @@ -8,7 +8,7 @@ from odoo.addons.http_routing.models.ir_http import slug class TrackTag(models.Model): _name = "event.track.tag" - _description = 'Track Tag' + _description = 'Event Track Tag' _order = 'name' name = fields.Char('Tag') @@ -22,14 +22,14 @@ class TrackTag(models.Model): class TrackLocation(models.Model): _name = "event.track.location" - _description = 'Track Location' + _description = 'Event Track Location' name = fields.Char('Room') class TrackStage(models.Model): _name = 'event.track.stage' - _description = 'Track Stage' + _description = 'Event Track Stage' _order = 'sequence, id' name = fields.Char(string='Stage Name', required=True, translate=True) diff --git a/addons/website_form/models/models.py b/addons/website_form/models/models.py index fb51dacc570..6ad987f89e6 100644 --- a/addons/website_form/models/models.py +++ b/addons/website_form/models/models.py @@ -23,6 +23,7 @@ class ResConfigSettings(models.TransientModel): class website_form_model(models.Model): _name = 'ir.model' + _description = 'Models' _inherit = 'ir.model' website_form_access = fields.Boolean('Allowed to use in forms', help='Enable the form builder feature for this model.') @@ -74,6 +75,7 @@ class website_form_model(models.Model): class website_form_model_fields(models.Model): """ fields configuration for form builder """ _name = 'ir.model.fields' + _description = 'Fields' _inherit = 'ir.model.fields' @api.model_cr diff --git a/addons/website_forum/models/forum.py b/addons/website_forum/models/forum.py index ad0885b9ebb..d1dce1b378e 100644 --- a/addons/website_forum/models/forum.py +++ b/addons/website_forum/models/forum.py @@ -863,7 +863,7 @@ class PostReason(models.Model): class Vote(models.Model): _name = 'forum.post.vote' - _description = 'Vote' + _description = 'Post Vote' post_id = fields.Many2one('forum.post', string='Post', ondelete='cascade', required=True) user_id = fields.Many2one('res.users', string='User', required=True, default=lambda self: self._uid) diff --git a/addons/website_sale/models/product.py b/addons/website_sale/models/product.py index 1f70b83b563..b4674d62ca2 100644 --- a/addons/website_sale/models/product.py +++ b/addons/website_sale/models/product.py @@ -10,6 +10,7 @@ from odoo.tools import float_is_zero class ProductStyle(models.Model): _name = "product.style" + _description = 'Product Style' name = fields.Char(string='Style Name', required=True) html_class = fields.Char(string='HTML Classes') @@ -232,6 +233,7 @@ class ProductAttributeValue(models.Model): class ProductImage(models.Model): _name = 'product.image' + _description = 'Product Image' name = fields.Char('Name') image = fields.Binary('Image', attachment=True) diff --git a/addons/website_sale_wishlist/models/product_wishlist.py b/addons/website_sale_wishlist/models/product_wishlist.py index 006473a5ce6..bea6c0931b6 100644 --- a/addons/website_sale_wishlist/models/product_wishlist.py +++ b/addons/website_sale_wishlist/models/product_wishlist.py @@ -6,6 +6,7 @@ from odoo.http import request class ProductWishlist(models.Model): _name = 'product.wishlist' + _description = 'Product Wishlist' _sql_constrains = [ ("product_unique_partner_id", "UNIQUE(product_id, partner_id)", diff --git a/addons/website_slides/models/slides.py b/addons/website_slides/models/slides.py index 50d6641f964..f120e388964 100644 --- a/addons/website_slides/models/slides.py +++ b/addons/website_slides/models/slides.py @@ -25,7 +25,7 @@ class Channel(models.Model): allowing to configure slide upload and access. Slides can be promoted in channels. """ _name = 'slide.channel' - _description = 'Channel for Slides' + _description = 'Slide Channel' _inherit = ['mail.thread', 'website.seo.metadata', 'website.published.multi.mixin'] _order = 'sequence, id' _order_by_strategy = { diff --git a/addons/website_theme_install/models/ir_module_module.py b/addons/website_theme_install/models/ir_module_module.py index 35d562485a6..51c225655df 100644 --- a/addons/website_theme_install/models/ir_module_module.py +++ b/addons/website_theme_install/models/ir_module_module.py @@ -10,6 +10,7 @@ _logger = logging.getLogger(__name__) class IrModuleModule(models.Model): _name = "ir.module.module" + _description = 'Module' _inherit = _name image_ids = fields.One2many('ir.attachment', 'res_id', diff --git a/addons/website_theme_install/models/theme_models.py b/addons/website_theme_install/models/theme_models.py index cb904b48f07..28c0b79b50f 100644 --- a/addons/website_theme_install/models/theme_models.py +++ b/addons/website_theme_install/models/theme_models.py @@ -10,6 +10,7 @@ _logger = logging.getLogger(__name__) class ThemeView(models.Model): _name = 'theme.ir.ui.view' + _description = 'Theme UI View' def compute_arch_fs(self): path_info = get_resource_from_path(self._context['install_filename']) @@ -30,6 +31,7 @@ class ThemeView(models.Model): class ThemeAttachment(models.Model): _name = 'theme.ir.attachment' + _description = 'Theme Attachments' name = fields.Char(required=True) key = fields.Char(required=True) @@ -39,6 +41,7 @@ class ThemeAttachment(models.Model): class ThemeMenu(models.Model): _name = 'theme.website.menu' + _description = 'Website Theme Menu' name = fields.Char(required=True) url = fields.Char(default='') @@ -51,6 +54,7 @@ class ThemeMenu(models.Model): class ThemePage(models.Model): _name = 'theme.website.page' + _description = 'Website Theme Page' url = fields.Char() view_id = fields.Many2one('theme.ir.ui.view', required=True, ondelete="cascade") @@ -60,6 +64,7 @@ class ThemePage(models.Model): class Theme(models.AbstractModel): _name = 'theme.utils' + _description = 'Theme Utils' _auto = False def _post_copy(self, mod): diff --git a/addons/website_twitter/models/website_twitter_tweet.py b/addons/website_twitter/models/website_twitter_tweet.py index 267c6ac8db3..4e80e439296 100644 --- a/addons/website_twitter/models/website_twitter_tweet.py +++ b/addons/website_twitter/models/website_twitter_tweet.py @@ -6,6 +6,7 @@ from odoo import fields, models class WebsiteTwitterTweet(models.Model): _name = 'website.twitter.tweet' + _description = 'Website Twitter' website_id = fields.Many2one('website', string='Website') screen_name = fields.Char(string='Screen Name') From e13efbd8b40d0e7b53c8a5b459e109cede4a8ef0 Mon Sep 17 00:00:00 2001 From: Nimesh Jethva Date: Mon, 17 Sep 2018 16:42:18 +0530 Subject: [PATCH 06/14] [IMP]stock_*: Improvement in model description Purpose of this commit is to give description more "business oriented" because those descriptions appears in Odoo Studio which is supposed to be used by end users, not only by developers. Related Task ID : 37311 --- addons/delivery/models/delivery_carrier.py | 2 +- addons/stock/models/product_strategy.py | 1 + addons/stock/models/stock_move_line.py | 2 +- addons/stock/models/stock_package_level.py | 1 + addons/stock/models/stock_picking.py | 2 +- addons/stock/models/stock_quant.py | 2 +- addons/stock/models/stock_rule.py | 2 +- addons/stock/models/stock_scrap.py | 1 + addons/stock/models/stock_traceability.py | 1 + addons/stock/report/report_stock_forecast.py | 1 + addons/stock/report/report_stock_rule.py | 1 + addons/stock/wizard/product_replenish.py | 1 + addons/stock/wizard/stock_overprocessed_transfer.py | 1 + addons/stock/wizard/stock_picking_return.py | 1 + addons/stock/wizard/stock_rules_report.py | 1 + addons/stock/wizard/stock_track_confirmation.py | 2 ++ addons/stock/wizard/stock_warn_insufficient_qty.py | 2 ++ addons/stock_landed_costs/models/stock_landed_cost.py | 4 ++-- addons/stock_picking_batch/wizard/stock_picking_to_batch.py | 2 +- 19 files changed, 22 insertions(+), 8 deletions(-) diff --git a/addons/delivery/models/delivery_carrier.py b/addons/delivery/models/delivery_carrier.py index 19e854e61af..d7797cb01fa 100644 --- a/addons/delivery/models/delivery_carrier.py +++ b/addons/delivery/models/delivery_carrier.py @@ -11,7 +11,7 @@ _logger = logging.getLogger(__name__) class DeliveryCarrier(models.Model): _name = 'delivery.carrier' - _description = "Carrier" + _description = "Delivery Methods" _order = 'sequence, id' ''' A Shipping Provider diff --git a/addons/stock/models/product_strategy.py b/addons/stock/models/product_strategy.py index 9271e87c431..9bc7dfad04b 100644 --- a/addons/stock/models/product_strategy.py +++ b/addons/stock/models/product_strategy.py @@ -49,6 +49,7 @@ class PutAwayStrategy(models.Model): class FixedPutAwayStrategy(models.Model): _name = 'stock.fixed.putaway.strat' _order = 'sequence' + _description = 'Fixed Putaway Strategy on Location' product_id = fields.Many2one('product.product', 'Product') putaway_id = fields.Many2one('product.putaway', 'Put Away Method', required=True) diff --git a/addons/stock/models/stock_move_line.py b/addons/stock/models/stock_move_line.py index d052f925413..9584fa842ef 100644 --- a/addons/stock/models/stock_move_line.py +++ b/addons/stock/models/stock_move_line.py @@ -12,7 +12,7 @@ from odoo.tools.float_utils import float_round, float_compare, float_is_zero class StockMoveLine(models.Model): _name = "stock.move.line" - _description = "Packing Operation" + _description = "Product Moves (Stock Move Line)" _rec_name = "product_id" _order = "result_package_id desc, id" diff --git a/addons/stock/models/stock_package_level.py b/addons/stock/models/stock_package_level.py index 3e6426669b7..1d01face6b5 100644 --- a/addons/stock/models/stock_package_level.py +++ b/addons/stock/models/stock_package_level.py @@ -8,6 +8,7 @@ from operator import itemgetter class StockPackageLevel(models.Model): _name = 'stock.package_level' + _description = 'Stock Package Level' package_id = fields.Many2one('stock.quant.package', 'Package', required=True) picking_id = fields.Many2one('stock.picking', 'Picking') diff --git a/addons/stock/models/stock_picking.py b/addons/stock/models/stock_picking.py index 642259a3f31..e1aa4ecfd6c 100644 --- a/addons/stock/models/stock_picking.py +++ b/addons/stock/models/stock_picking.py @@ -16,7 +16,7 @@ from operator import itemgetter class PickingType(models.Model): _name = "stock.picking.type" - _description = "The operation type determines the picking view" + _description = "Picking Type" _order = 'sequence, id' name = fields.Char('Operation Type', required=True, translate=True) diff --git a/addons/stock/models/stock_quant.py b/addons/stock/models/stock_quant.py index a4028a79f83..123e4856971 100644 --- a/addons/stock/models/stock_quant.py +++ b/addons/stock/models/stock_quant.py @@ -340,7 +340,7 @@ class StockQuant(models.Model): class QuantPackage(models.Model): """ Packages containing quants and/or other packages """ _name = "stock.quant.package" - _description = "Physical Packages" + _description = "Packages" _order = 'name' name = fields.Char( diff --git a/addons/stock/models/stock_rule.py b/addons/stock/models/stock_rule.py index 60fc7a8465b..724edff2df2 100644 --- a/addons/stock/models/stock_rule.py +++ b/addons/stock/models/stock_rule.py @@ -277,7 +277,7 @@ class ProcurementGroup(models.Model): sequence computed if created manually. """ _name = 'procurement.group' - _description = 'Procurement Requisition' + _description = 'Procurement Group' _order = "id desc" partner_id = fields.Many2one('res.partner', 'Partner') diff --git a/addons/stock/models/stock_scrap.py b/addons/stock/models/stock_scrap.py index 891f362843b..16f6b505acb 100644 --- a/addons/stock/models/stock_scrap.py +++ b/addons/stock/models/stock_scrap.py @@ -9,6 +9,7 @@ from odoo.tools import float_compare class StockScrap(models.Model): _name = 'stock.scrap' _order = 'id desc' + _description = 'Scrap' def _get_default_scrap_location_id(self): return self.env['stock.location'].search([('scrap_location', '=', True), ('company_id', 'in', [self.env.user.company_id.id, False])], limit=1).id diff --git a/addons/stock/models/stock_traceability.py b/addons/stock/models/stock_traceability.py index 5774325e589..2a30571b539 100644 --- a/addons/stock/models/stock_traceability.py +++ b/addons/stock/models/stock_traceability.py @@ -18,6 +18,7 @@ def autoIncrement(): class MrpStockReport(models.TransientModel): _name = 'stock.traceability.report' + _description = 'Traceability Report' @api.model def _get_move_lines(self, move_lines): diff --git a/addons/stock/report/report_stock_forecast.py b/addons/stock/report/report_stock_forecast.py index 1ca3b1195b5..b7f7712024f 100644 --- a/addons/stock/report/report_stock_forecast.py +++ b/addons/stock/report/report_stock_forecast.py @@ -6,6 +6,7 @@ from odoo import api, fields, models, tools class ReportStockForecat(models.Model): _name = 'report.stock.forecast' _auto = False + _description = 'Stock Forecast Report' date = fields.Date(string='Date') product_id = fields.Many2one('product.product', string='Product', readonly=True) diff --git a/addons/stock/report/report_stock_rule.py b/addons/stock/report/report_stock_rule.py index cb97877cac1..529eef48681 100644 --- a/addons/stock/report/report_stock_rule.py +++ b/addons/stock/report/report_stock_rule.py @@ -7,6 +7,7 @@ from odoo.exceptions import UserError class ReportStockRule(models.AbstractModel): _name = 'report.stock.report_stock_rule' + _description = 'Stock rule report' @api.model def _get_report_values(self, docids, data=None): diff --git a/addons/stock/wizard/product_replenish.py b/addons/stock/wizard/product_replenish.py index 24a6040f8d8..509375599d5 100644 --- a/addons/stock/wizard/product_replenish.py +++ b/addons/stock/wizard/product_replenish.py @@ -8,6 +8,7 @@ from odoo.exceptions import UserError class ProductReplenish(models.TransientModel): _name = 'product.replenish' + _description = 'Product Replenish' product_id = fields.Many2one('product.product', string='Product', required=True) product_tmpl_id = fields.Many2one('product.template', String='Product Template', required=True) diff --git a/addons/stock/wizard/stock_overprocessed_transfer.py b/addons/stock/wizard/stock_overprocessed_transfer.py index b77bd18f3e3..7652d96010c 100644 --- a/addons/stock/wizard/stock_overprocessed_transfer.py +++ b/addons/stock/wizard/stock_overprocessed_transfer.py @@ -7,6 +7,7 @@ from odoo.exceptions import UserError class StockOverProcessedTransfer(models.TransientModel): _name = 'stock.overprocessed.transfer' + _description = 'Transfer Over Processed Stock' picking_id = fields.Many2one('stock.picking') overprocessed_product_name = fields.Char(compute='_compute_overprocessed_product_name', diff --git a/addons/stock/wizard/stock_picking_return.py b/addons/stock/wizard/stock_picking_return.py index 3d77be223b5..103c2a8cb26 100644 --- a/addons/stock/wizard/stock_picking_return.py +++ b/addons/stock/wizard/stock_picking_return.py @@ -10,6 +10,7 @@ from odoo.tools.float_utils import float_round class ReturnPickingLine(models.TransientModel): _name = "stock.return.picking.line" _rec_name = 'product_id' + _description = 'Return Picking Line' product_id = fields.Many2one('product.product', string="Product", required=True, domain="[('id', '=', product_id)]") quantity = fields.Float("Quantity", digits=dp.get_precision('Product Unit of Measure'), required=True) diff --git a/addons/stock/wizard/stock_rules_report.py b/addons/stock/wizard/stock_rules_report.py index 17fc5311940..b637d2af591 100644 --- a/addons/stock/wizard/stock_rules_report.py +++ b/addons/stock/wizard/stock_rules_report.py @@ -6,6 +6,7 @@ from odoo import api, fields, models class StockRulesReport(models.TransientModel): _name = 'stock.rules.report' + _description = 'Stock Rules report' product_id = fields.Many2one('product.product', string='Product', required=True) product_tmpl_id = fields.Many2one('product.template', String='Product Template', required=True) diff --git a/addons/stock/wizard/stock_track_confirmation.py b/addons/stock/wizard/stock_track_confirmation.py index 7af29de7ef8..fa8cc62e3a1 100644 --- a/addons/stock/wizard/stock_track_confirmation.py +++ b/addons/stock/wizard/stock_track_confirmation.py @@ -6,6 +6,7 @@ from odoo import api, models, fields, tools class StockTrackConfirmation(models.TransientModel): _name = 'stock.track.confirmation' + _description = 'Stock Track Confirmation' tracking_line_ids = fields.One2many('stock.track.line', 'wizard_id') inventory_id = fields.Many2one('stock.inventory', 'Inventory') @@ -16,6 +17,7 @@ class StockTrackConfirmation(models.TransientModel): class StockTrackingLines(models.TransientModel): _name = 'stock.track.line' + _description = 'Stock Track Line' product_id = fields.Many2one('product.product', 'Product', readonly=True) tracking = fields.Selection([('lot', 'Tracked by lot'), ('serial', 'Tracked by serial number')], readonly=True) diff --git a/addons/stock/wizard/stock_warn_insufficient_qty.py b/addons/stock/wizard/stock_warn_insufficient_qty.py index 0ce45f250fc..50247d130bf 100644 --- a/addons/stock/wizard/stock_warn_insufficient_qty.py +++ b/addons/stock/wizard/stock_warn_insufficient_qty.py @@ -7,6 +7,7 @@ from odoo.tools import float_compare class StockWarnInsufficientQty(models.AbstractModel): _name = 'stock.warn.insufficient.qty' + _description = 'Warn Insufficient Quantity' product_id = fields.Many2one('product.product', 'Product', required=True) location_id = fields.Many2one( 'stock.location', 'Location', domain="[('usage', '=', 'internal')]", required=True) @@ -27,6 +28,7 @@ class StockWarnInsufficientQty(models.AbstractModel): class StockWarnInsufficientQtyScrap(models.TransientModel): _name = 'stock.warn.insufficient.qty.scrap' _inherit = 'stock.warn.insufficient.qty' + _description = 'Warn Insufficient Scrap Quantity' scrap_id = fields.Many2one('stock.scrap', 'Scrap') diff --git a/addons/stock_landed_costs/models/stock_landed_cost.py b/addons/stock_landed_costs/models/stock_landed_cost.py index a309a34f899..d41a53cd676 100644 --- a/addons/stock_landed_costs/models/stock_landed_cost.py +++ b/addons/stock_landed_costs/models/stock_landed_cost.py @@ -230,7 +230,7 @@ class LandedCost(models.Model): class LandedCostLine(models.Model): _name = 'stock.landed.cost.lines' - _description = 'Stock Landed Cost Lines' + _description = 'Stock Landed Cost Line' name = fields.Char('Description') cost_id = fields.Many2one( @@ -253,7 +253,7 @@ class LandedCostLine(models.Model): class AdjustmentLines(models.Model): _name = 'stock.valuation.adjustment.lines' - _description = 'Stock Valuation Adjustment Lines' + _description = 'Valuation Adjustment Lines' name = fields.Char( 'Description', compute='_compute_name', store=True) diff --git a/addons/stock_picking_batch/wizard/stock_picking_to_batch.py b/addons/stock_picking_batch/wizard/stock_picking_to_batch.py index c25b97bcad9..ddf02ffc172 100644 --- a/addons/stock_picking_batch/wizard/stock_picking_to_batch.py +++ b/addons/stock_picking_batch/wizard/stock_picking_to_batch.py @@ -6,7 +6,7 @@ from odoo import api, fields, models class StockPickingToBatch(models.TransientModel): _name = 'stock.picking.to.batch' - _description = 'Add pickings to a batch picking' + _description = 'Batch Picking Lines' batch_id = fields.Many2one('stock.picking.batch', string='Batch Picking', required=True, oldname="wave_id") From 2c1549cc597f57a8136783c29a0ee37add8024a1 Mon Sep 17 00:00:00 2001 From: Nimesh Jethva Date: Mon, 17 Sep 2018 16:50:34 +0530 Subject: [PATCH 07/14] [IMP]tools, technial modules: Improvement in model description Purpose of this commit is to give description more "business oriented" because those descriptions appears in Odoo Studio which is supposed to be used by end users, not only by developers. Related Task ID : 37311 --- addons/barcodes/models/barcode_events_mixin.py | 1 + addons/barcodes/models/barcodes.py | 2 ++ addons/base_automation/tests/test_models.py | 4 ++-- addons/bus/models/bus.py | 1 + addons/calendar/models/calendar.py | 8 +++++--- .../decimal_precision/models/decimal_precision.py | 2 ++ addons/fetchmail/models/fetchmail.py | 2 +- addons/google_account/models/google_service.py | 1 + addons/google_calendar/models/google_calendar.py | 1 + .../report/hr_timesheet_attendance_report.py | 1 + addons/iap/models/iap.py | 1 + addons/iot/models/iot.py | 2 ++ .../models/phone_validation_mixin.py | 1 + addons/portal/models/portal_mixin.py | 1 + addons/portal/wizard/portal_share.py | 1 + addons/resource/models/resource.py | 6 +++--- addons/sms/models/sms_api.py | 1 + addons/sms/wizard/send_sms.py | 1 + addons/snailmail/models/snailmail_letter.py | 1 + .../wizard/account_invoice_send.py | 1 + addons/utm/models/utm.py | 7 ++++--- addons/web/models/ir_qweb.py | 1 + addons/web/models/report_layout.py | 1 + addons/web_editor/models/ir_qweb.py | 15 +++++++++++++++ addons/web_editor/models/test_models.py | 2 ++ 25 files changed, 53 insertions(+), 12 deletions(-) diff --git a/addons/barcodes/models/barcode_events_mixin.py b/addons/barcodes/models/barcode_events_mixin.py index b8913dfdb09..e0e37f69ad3 100644 --- a/addons/barcodes/models/barcode_events_mixin.py +++ b/addons/barcodes/models/barcode_events_mixin.py @@ -10,6 +10,7 @@ class BarcodeEventsMixin(models.AbstractModel): """ _name = 'barcodes.barcode_events_mixin' + _description = 'Barcode Event Mixin' _barcode_scanned = fields.Char("Barcode Scanned", help="Value of the last barcode scanned.", store=False) diff --git a/addons/barcodes/models/barcodes.py b/addons/barcodes/models/barcodes.py index 6b1ae77edba..c7fd1292b92 100644 --- a/addons/barcodes/models/barcodes.py +++ b/addons/barcodes/models/barcodes.py @@ -16,6 +16,7 @@ UPC_EAN_CONVERSIONS = [ class BarcodeNomenclature(models.Model): _name = 'barcode.nomenclature' + _description = 'Barcode Nomenclature' name = fields.Char(string='Barcode Nomenclature', size=32, required=True, help='An internal identification of the barcode nomenclature') rule_ids = fields.One2many('barcode.rule', 'barcode_nomenclature_id', string='Rules', help='The list of barcode rules') @@ -167,6 +168,7 @@ class BarcodeNomenclature(models.Model): class BarcodeRule(models.Model): _name = 'barcode.rule' + _description = 'Barcode Rule' _order = 'sequence asc' diff --git a/addons/base_automation/tests/test_models.py b/addons/base_automation/tests/test_models.py index fd2255dff6f..3fbba42de03 100644 --- a/addons/base_automation/tests/test_models.py +++ b/addons/base_automation/tests/test_models.py @@ -7,7 +7,7 @@ from odoo import fields, models, api class LeadTest(models.Model): _name = "base.automation.lead.test" - _description = "Action Rule Test" + _description = "Automated Rule Test" name = fields.Char(string='Subject', required=True, index=True) user_id = fields.Many2one('res.users', string='Responsible') @@ -34,7 +34,7 @@ class LeadTest(models.Model): class LineTest(models.Model): _name = "base.automation.line.test" - _description = "Action Rule Line Test" + _description = "Automated Rule Line Test" name = fields.Char() lead_id = fields.Many2one('base.automation.lead.test', ondelete='cascade') diff --git a/addons/bus/models/bus.py b/addons/bus/models/bus.py index 8bb882608d5..72f1b7a8e07 100644 --- a/addons/bus/models/bus.py +++ b/addons/bus/models/bus.py @@ -32,6 +32,7 @@ def hashable(key): class ImBus(models.Model): _name = 'bus.bus' + _description = 'Communication Bus' channel = fields.Char('Channel') message = fields.Char('Message') diff --git a/addons/calendar/models/calendar.py b/addons/calendar/models/calendar.py index b31989e311b..cc074cec5c0 100644 --- a/addons/calendar/models/calendar.py +++ b/addons/calendar/models/calendar.py @@ -92,6 +92,7 @@ def sort_remap(f): class Contacts(models.Model): _name = 'calendar.contacts' + _description = 'Calendar Contacts' user_id = fields.Many2one('res.users', 'Me', required=True, default=lambda self: self.env.user) partner_id = fields.Many2one('res.partner', 'Employee', required=True) @@ -111,7 +112,7 @@ class Attendee(models.Model): _name = 'calendar.attendee' _rec_name = 'common_name' - _description = 'Calendar Registration' + _description = 'Calendar Attendee Information' def _default_access_token(self): return uuid.uuid4().hex @@ -240,6 +241,7 @@ class Attendee(models.Model): class AlarmManager(models.AbstractModel): _name = 'calendar.alarm_manager' + _description = 'Event Alarm Manager' def get_next_potential_limit_alarm(self, alarm_type, seconds=None, partner_id=None): result = {} @@ -471,7 +473,7 @@ class AlarmManager(models.AbstractModel): class Alarm(models.Model): _name = 'calendar.alarm' - _description = 'Event alarm' + _description = 'Event Alarm' @api.depends('interval', 'duration') def _compute_duration_minutes(self): @@ -527,7 +529,7 @@ class Alarm(models.Model): class MeetingType(models.Model): _name = 'calendar.event.type' - _description = 'Meeting Type' + _description = 'Event Meeting Type' name = fields.Char('Name', required=True) diff --git a/addons/decimal_precision/models/decimal_precision.py b/addons/decimal_precision/models/decimal_precision.py index eaf0f362bd9..35312a2ab54 100644 --- a/addons/decimal_precision/models/decimal_precision.py +++ b/addons/decimal_precision/models/decimal_precision.py @@ -5,6 +5,7 @@ from odoo import api, fields, models, tools class DecimalPrecision(models.Model): _name = 'decimal.precision' + _description = 'Decimal Precision' name = fields.Char('Usage', index=True, required=True) digits = fields.Integer('Digits', required=True, default=2) @@ -61,6 +62,7 @@ class DecimalPrecisionFloat(models.AbstractModel): class DecimalPrecisionTestModel(models.Model): _name = 'decimal.precision.test' + _description = 'Decimal Precision Test' float = fields.Float() float_2 = fields.Float(digits=(16, 2)) diff --git a/addons/fetchmail/models/fetchmail.py b/addons/fetchmail/models/fetchmail.py index 270bff7730e..f869afc8b7a 100644 --- a/addons/fetchmail/models/fetchmail.py +++ b/addons/fetchmail/models/fetchmail.py @@ -22,7 +22,7 @@ class FetchmailServer(models.Model): """Incoming POP/IMAP mail server account""" _name = 'fetchmail.server' - _description = "POP/IMAP Server" + _description = 'Incoming Mail Server' _order = 'priority' name = fields.Char('Name', required=True) diff --git a/addons/google_account/models/google_service.py b/addons/google_account/models/google_service.py index 663c684998f..1797dd66bea 100644 --- a/addons/google_account/models/google_service.py +++ b/addons/google_account/models/google_service.py @@ -25,6 +25,7 @@ GOOGLE_API_BASE_URL = 'https://www.googleapis.com' # FIXME : this needs to become an AbstractModel, to be inhereted by google_calendar_service and google_drive_service class GoogleService(models.TransientModel): _name = 'google.service' + _description = 'Google Service' @api.model def generate_refresh_token(self, service, authorization_code): diff --git a/addons/google_calendar/models/google_calendar.py b/addons/google_calendar/models/google_calendar.py index b02f7586e75..de467649142 100644 --- a/addons/google_calendar/models/google_calendar.py +++ b/addons/google_calendar/models/google_calendar.py @@ -189,6 +189,7 @@ class Exclude(SyncOperation): class GoogleCalendar(models.AbstractModel): STR_SERVICE = 'calendar' _name = 'google.%s' % STR_SERVICE + _description = 'Google Calendar' def generate_data(self, event, isCreating=False): if event.allday: diff --git a/addons/hr_timesheet_attendance/report/hr_timesheet_attendance_report.py b/addons/hr_timesheet_attendance/report/hr_timesheet_attendance_report.py index a0765b0d5cf..0aa0bbaf275 100644 --- a/addons/hr_timesheet_attendance/report/hr_timesheet_attendance_report.py +++ b/addons/hr_timesheet_attendance/report/hr_timesheet_attendance_report.py @@ -7,6 +7,7 @@ from odoo import api, fields, models class TimesheetAttendance(models.Model): _name = 'hr.timesheet.attendance.report' _auto = False + _description = 'Timesheet Attendance Report' user_id = fields.Many2one('res.users') date = fields.Date() diff --git a/addons/iap/models/iap.py b/addons/iap/models/iap.py index d9c0b65413f..64830bfa24e 100644 --- a/addons/iap/models/iap.py +++ b/addons/iap/models/iap.py @@ -137,6 +137,7 @@ def charge(env, key, account_token, credit, description=None, credit_template=No class IapAccount(models.Model): _name = 'iap.account' _rec_name = 'service_name' + _description = 'IAP Account' service_name = fields.Char() account_token = fields.Char(default=lambda s: uuid.uuid4().hex) diff --git a/addons/iot/models/iot.py b/addons/iot/models/iot.py index 4de67bc3209..d0e48869714 100644 --- a/addons/iot/models/iot.py +++ b/addons/iot/models/iot.py @@ -7,6 +7,7 @@ from odoo import api, fields, models, exceptions # ---------------------------------------------------------- class IotBox(models.Model): _name = 'iot.box' + _description = 'IOT Box' name = fields.Char('Name', readonly=True) identifier = fields.Char(string='Identifier (Mac Address)', readonly=True) @@ -17,6 +18,7 @@ class IotBox(models.Model): class IotDevice(models.Model): _name = 'iot.device' + _description = 'IOT Device' iot_id = fields.Many2one('iot.box', string='IoT Box', required = True) name = fields.Char('Name') diff --git a/addons/phone_validation/models/phone_validation_mixin.py b/addons/phone_validation/models/phone_validation_mixin.py index 02e4c6aa82a..0c86bad81bb 100644 --- a/addons/phone_validation/models/phone_validation_mixin.py +++ b/addons/phone_validation/models/phone_validation_mixin.py @@ -7,6 +7,7 @@ from odoo.addons.phone_validation.tools import phone_validation class PhoneValidationMixin(models.AbstractModel): _name = 'phone.validation.mixin' + _description = 'Phone Validation Mixin' def _phone_get_country(self): if 'country_id' in self and self.country_id: diff --git a/addons/portal/models/portal_mixin.py b/addons/portal/models/portal_mixin.py index c1535c62110..541919fc674 100644 --- a/addons/portal/models/portal_mixin.py +++ b/addons/portal/models/portal_mixin.py @@ -9,6 +9,7 @@ from odoo import api, exceptions, fields, models, tools, _ class PortalMixin(models.AbstractModel): _name = "portal.mixin" + _description = 'Portal Mixin' access_url = fields.Char( 'Portal Access URL', compute='_compute_access_url', diff --git a/addons/portal/wizard/portal_share.py b/addons/portal/wizard/portal_share.py index 5a2257a02de..5905df4eed4 100644 --- a/addons/portal/wizard/portal_share.py +++ b/addons/portal/wizard/portal_share.py @@ -5,6 +5,7 @@ from odoo import api, fields, models, _ class PortalShare(models.TransientModel): _name = 'portal.share' + _description = 'Portal Sharing' @api.model def default_get(self, fields): diff --git a/addons/resource/models/resource.py b/addons/resource/models/resource.py index 35d1e2cd9b4..08d6b9e73e9 100644 --- a/addons/resource/models/resource.py +++ b/addons/resource/models/resource.py @@ -143,7 +143,7 @@ class ResourceCalendar(models.Model): (begin_datetime, end_datetime). A list of intervals is therefore a list of tuples, holding several intervals of work or leaves. """ _name = "resource.calendar" - _description = "Resource Calendar" + _description = "Resource Working Time" @api.model def default_get(self, fields): @@ -419,7 +419,7 @@ class ResourceCalendarAttendance(models.Model): class ResourceResource(models.Model): _name = "resource.resource" - _description = "Resource Detail" + _description = "Resources" @api.model def default_get(self, fields): @@ -498,7 +498,7 @@ class ResourceResource(models.Model): class ResourceCalendarLeaves(models.Model): _name = "resource.calendar.leaves" - _description = "Leave Detail" + _description = "Resource Leaves Detail" name = fields.Char('Reason') company_id = fields.Many2one( diff --git a/addons/sms/models/sms_api.py b/addons/sms/models/sms_api.py index 1498ce54d98..f770676d0ca 100644 --- a/addons/sms/models/sms_api.py +++ b/addons/sms/models/sms_api.py @@ -10,6 +10,7 @@ DEFAULT_ENDPOINT = 'https://iap-sms.odoo.com' class SmsApi(models.AbstractModel): _name = 'sms.api' + _description = 'SMS API' @api.model def _send_sms(self, numbers, message): diff --git a/addons/sms/wizard/send_sms.py b/addons/sms/wizard/send_sms.py index 15d284e0879..448d9fcc626 100644 --- a/addons/sms/wizard/send_sms.py +++ b/addons/sms/wizard/send_sms.py @@ -24,6 +24,7 @@ except ImportError: class SendSMS(models.TransientModel): _name = 'sms.send_sms' + _description = 'Send SMS' recipients = fields.Char('Recipients', required=True) message = fields.Text('Message', required=True) diff --git a/addons/snailmail/models/snailmail_letter.py b/addons/snailmail/models/snailmail_letter.py index adbdb1268f5..853eb8ff6b7 100644 --- a/addons/snailmail/models/snailmail_letter.py +++ b/addons/snailmail/models/snailmail_letter.py @@ -16,6 +16,7 @@ PRINT_ENDPOINT = '/iap/snailmail/1/print' class SnailmailLetter(models.Model): _name = 'snailmail.letter' + _description = 'Snailmail Letter' user_id = fields.Many2one('res.users', 'User sending the letter') model = fields.Char('Model', required=True) diff --git a/addons/snailmail_account/wizard/account_invoice_send.py b/addons/snailmail_account/wizard/account_invoice_send.py index ed252b75829..4aa2ee0adaf 100644 --- a/addons/snailmail_account/wizard/account_invoice_send.py +++ b/addons/snailmail_account/wizard/account_invoice_send.py @@ -7,6 +7,7 @@ from odoo import api, fields, models class AccountInvoiceSend(models.TransientModel): _name = 'account.invoice.send' _inherit = 'account.invoice.send' + _description = 'Account Invoice Send' partner_id = fields.Many2one('res.partner', compute='_get_partner', string='Partner') snailmail_is_letter = fields.Boolean('Send by Post', help='Allows to send the document by snail mail (coventional posting delivery service)', default=lambda self: self.env.user.company_id.invoice_is_snailmail) diff --git a/addons/utm/models/utm.py b/addons/utm/models/utm.py index caff437468c..0627177ffd2 100644 --- a/addons/utm/models/utm.py +++ b/addons/utm/models/utm.py @@ -9,7 +9,7 @@ from odoo.tools import pycompat class UtmMedium(models.Model): # OLD crm.case.channel _name = 'utm.medium' - _description = 'Channels' + _description = 'UTM Medium' _order = 'name' name = fields.Char(string='Channel Name', required=True) @@ -19,14 +19,14 @@ class UtmMedium(models.Model): class UtmCampaign(models.Model): # OLD crm.case.resource.type _name = 'utm.campaign' - _description = 'Campaign' + _description = 'UTM Campaign' name = fields.Char(string='Campaign Name', required=True, translate=True) class UtmSource(models.Model): _name = 'utm.source' - _description = 'Source' + _description = 'UTM Source' name = fields.Char(string='Source Name', required=True, translate=True) @@ -35,6 +35,7 @@ class UtmMixin(models.AbstractModel): """Mixin class for objects which can be tracked by marketing. """ _name = 'utm.mixin' + _description = 'UTM Mixin' campaign_id = fields.Many2one('utm.campaign', 'Campaign', help="This is a name that helps you keep track of your different campaign efforts, e.g. Fall_Drive, Christmas_Special") diff --git a/addons/web/models/ir_qweb.py b/addons/web/models/ir_qweb.py index b734c4f193c..058ceb5d87b 100644 --- a/addons/web/models/ir_qweb.py +++ b/addons/web/models/ir_qweb.py @@ -17,6 +17,7 @@ class Image(models.AbstractModel): set as attribute on the generated tag """ _name = 'ir.qweb.field.image' + _description = 'Qweb Field Image' _inherit = 'ir.qweb.field.image' @api.model diff --git a/addons/web/models/report_layout.py b/addons/web/models/report_layout.py index f70129ec89d..a38f25c2033 100644 --- a/addons/web/models/report_layout.py +++ b/addons/web/models/report_layout.py @@ -11,6 +11,7 @@ _logger = logging.getLogger(__name__) class View(models.Model): _name = "report.layout" + _description = 'Report Layout' view_id = fields.Many2one('ir.ui.view', 'Document Template', required=True) image = fields.Char(string="Preview image src") diff --git a/addons/web_editor/models/ir_qweb.py b/addons/web_editor/models/ir_qweb.py index f833607e205..22a923e1854 100644 --- a/addons/web_editor/models/ir_qweb.py +++ b/addons/web_editor/models/ir_qweb.py @@ -93,6 +93,7 @@ class QWeb(models.AbstractModel): class Field(models.AbstractModel): _name = 'ir.qweb.field' + _description = 'Qweb Field' _inherit = 'ir.qweb.field' @api.model @@ -122,6 +123,7 @@ class Field(models.AbstractModel): class Integer(models.AbstractModel): _name = 'ir.qweb.field.integer' + _description = 'Qweb Field Integer' _inherit = 'ir.qweb.field.integer' value_from_string = int @@ -129,6 +131,7 @@ class Integer(models.AbstractModel): class Float(models.AbstractModel): _name = 'ir.qweb.field.float' + _description = 'Qweb Field Float' _inherit = 'ir.qweb.field.float' @api.model @@ -141,6 +144,7 @@ class Float(models.AbstractModel): class ManyToOne(models.AbstractModel): _name = 'ir.qweb.field.many2one' + _description = 'Qweb Field Many to One' _inherit = 'ir.qweb.field.many2one' @api.model @@ -171,6 +175,7 @@ class ManyToOne(models.AbstractModel): class Contact(models.AbstractModel): _name = 'ir.qweb.field.contact' + _description = 'Qweb Field Contact' _inherit = 'ir.qweb.field.contact' @api.model @@ -189,6 +194,7 @@ class Contact(models.AbstractModel): class Date(models.AbstractModel): _name = 'ir.qweb.field.date' + _description = 'Qweb Field Date' _inherit = 'ir.qweb.field.date' @api.model @@ -209,6 +215,7 @@ class Date(models.AbstractModel): class DateTime(models.AbstractModel): _name = 'ir.qweb.field.datetime' + _description = 'Qweb Field Datetime' _inherit = 'ir.qweb.field.datetime' @api.model @@ -255,6 +262,7 @@ class DateTime(models.AbstractModel): class Text(models.AbstractModel): _name = 'ir.qweb.field.text' + _description = 'Qweb Field Text' _inherit = 'ir.qweb.field.text' @api.model @@ -264,6 +272,7 @@ class Text(models.AbstractModel): class Selection(models.AbstractModel): _name = 'ir.qweb.field.selection' + _description = 'Qweb Field Selection' _inherit = 'ir.qweb.field.selection' @api.model @@ -282,6 +291,7 @@ class Selection(models.AbstractModel): class HTML(models.AbstractModel): _name = 'ir.qweb.field.html' + _description = 'Qweb Field HTML' _inherit = 'ir.qweb.field.html' @api.model @@ -302,6 +312,7 @@ class Image(models.AbstractModel): set as attribute on the generated tag """ _name = 'ir.qweb.field.image' + _description = 'Qweb Field Image' _inherit = 'ir.qweb.field.image' local_url_re = re.compile(r'^/(?P[^]]+)/static/(?P.+)$') @@ -383,6 +394,7 @@ class Image(models.AbstractModel): class Monetary(models.AbstractModel): _name = 'ir.qweb.field.monetary' + _description = 'Qweb Field Monerary' _inherit = 'ir.qweb.field.monetary' @api.model @@ -397,6 +409,7 @@ class Monetary(models.AbstractModel): class Duration(models.AbstractModel): _name = 'ir.qweb.field.duration' + _description = 'Qweb Field Duration' _inherit = 'ir.qweb.field.duration' @api.model @@ -416,6 +429,7 @@ class Duration(models.AbstractModel): class RelativeDatetime(models.AbstractModel): _name = 'ir.qweb.field.relative' + _description = 'Qweb Field Relative' _inherit = 'ir.qweb.field.relative' # get formatting from ir.qweb.field.relative but edition/save from datetime @@ -423,6 +437,7 @@ class RelativeDatetime(models.AbstractModel): class QwebView(models.AbstractModel): _name = 'ir.qweb.field.qweb' + _description = 'Qweb Field qweb' _inherit = 'ir.qweb.field.qweb' diff --git a/addons/web_editor/models/test_models.py b/addons/web_editor/models/test_models.py index c4ac2c748da..f5eb7e86f64 100644 --- a/addons/web_editor/models/test_models.py +++ b/addons/web_editor/models/test_models.py @@ -6,6 +6,7 @@ from odoo import models, fields class ConverterTest(models.Model): _name = 'web_editor.converter.test' + _description = 'Web Editor Converter Test' # disable translation export for those brilliant field labels and values _translate = False @@ -37,5 +38,6 @@ class ConverterTest(models.Model): class ConverterTestSub(models.Model): _name = 'web_editor.converter.test.sub' + _description = 'Web Editor Converter Subtest' name = fields.Char() From dae97ee5f0aa3e6d230416aa6a9eea1c39cf7441 Mon Sep 17 00:00:00 2001 From: Nimesh Jethva Date: Mon, 17 Sep 2018 16:53:04 +0530 Subject: [PATCH 08/14] [IMP]mail_*: Improvement in model description Purpose of this commit is to give description more "business oriented" because those descriptions appears in Odoo Studio which is supposed to be used by end users, not only by developers. Related Task ID : 37311 --- addons/mail/models/ir_actions.py | 1 + addons/mail/models/mail_alias.py | 1 + addons/mail/models/mail_channel.py | 2 +- addons/mail/models/res_users.py | 2 ++ addons/mail/models/update.py | 1 + addons/mail_bot/models/mail_bot.py | 1 + 6 files changed, 7 insertions(+), 1 deletion(-) diff --git a/addons/mail/models/ir_actions.py b/addons/mail/models/ir_actions.py index f6fa9d4fff0..6f2b6ae136a 100644 --- a/addons/mail/models/ir_actions.py +++ b/addons/mail/models/ir_actions.py @@ -10,6 +10,7 @@ from odoo.exceptions import UserError, ValidationError class ServerActions(models.Model): """ Add email option in server actions. """ _name = 'ir.actions.server' + _description = 'Server Action' _inherit = ['ir.actions.server'] state = fields.Selection(selection_add=[ diff --git a/addons/mail/models/mail_alias.py b/addons/mail/models/mail_alias.py index 2594d3162e0..0045ea87989 100644 --- a/addons/mail/models/mail_alias.py +++ b/addons/mail/models/mail_alias.py @@ -186,6 +186,7 @@ class AliasMixin(models.AbstractModel): """ _name = 'mail.alias.mixin' _inherits = {'mail.alias': 'alias_id'} + _description = 'Email Aliases Mixin' alias_id = fields.Many2one('mail.alias', string='Alias', ondelete="restrict", required=True) diff --git a/addons/mail/models/mail_channel.py b/addons/mail/models/mail_channel.py index 3de00e9dca6..d1c3c3f6fa6 100644 --- a/addons/mail/models/mail_channel.py +++ b/addons/mail/models/mail_channel.py @@ -54,7 +54,7 @@ class Moderation(models.Model): class Channel(models.Model): """ A mail.channel is a discussion group that may behave like a listener on documents. """ - _description = 'Discussion channel' + _description = 'Discussion Channel' _name = 'mail.channel' _mail_flat_thread = False _mail_post_access = 'read' diff --git a/addons/mail/models/res_users.py b/addons/mail/models/res_users.py index 11d687cbca1..18da52a96fc 100644 --- a/addons/mail/models/res_users.py +++ b/addons/mail/models/res_users.py @@ -16,6 +16,7 @@ class Users(models.Model): """ _name = 'res.users' _inherit = ['res.users'] + _description = 'Users' alias_id = fields.Many2one('mail.alias', 'Alias', ondelete="set null", required=False, help="Email address internally associated with this user. Incoming "\ @@ -149,6 +150,7 @@ class res_groups_mail_channel(models.Model): """ _name = 'res.groups' _inherit = 'res.groups' + _description = 'Access Groups' @api.multi def write(self, vals, context=None): diff --git a/addons/mail/models/update.py b/addons/mail/models/update.py index fa8b6fd593a..54cbc98ffef 100644 --- a/addons/mail/models/update.py +++ b/addons/mail/models/update.py @@ -20,6 +20,7 @@ _logger = logging.getLogger(__name__) class PublisherWarrantyContract(AbstractModel): _name = "publisher_warranty.contract" + _description = 'Publisher Warranty Contract' @api.model def _get_message(self): diff --git a/addons/mail_bot/models/mail_bot.py b/addons/mail_bot/models/mail_bot.py index 6c340193809..ec012fb2f6c 100644 --- a/addons/mail_bot/models/mail_bot.py +++ b/addons/mail_bot/models/mail_bot.py @@ -9,6 +9,7 @@ from odoo import models, _ class MailBot(models.AbstractModel): _name = 'mail.bot' + _description = 'Mail Bot' def _apply_logic(self, record, values, command=None): """ Apply bot logic to generate an answer (or not) for the user From afb512a660c75b1be15c55b3db03110384b19257 Mon Sep 17 00:00:00 2001 From: Nimesh Jethva Date: Mon, 17 Sep 2018 16:54:26 +0530 Subject: [PATCH 09/14] [IMP]pos_*: Improvement in model description Purpose of this commit is to give description more "business oriented" because those descriptions appears in Odoo Studio which is supposed to be used by end users, not only by developers. Related Task ID : 37311 --- addons/point_of_sale/models/pos_category.py | 2 +- addons/point_of_sale/models/pos_config.py | 1 + addons/point_of_sale/models/pos_order.py | 3 ++- addons/point_of_sale/models/pos_session.py | 1 + addons/point_of_sale/report/pos_invoice.py | 1 + addons/point_of_sale/report/pos_order_report.py | 2 +- addons/point_of_sale/wizard/pos_details.py | 2 +- addons/point_of_sale/wizard/pos_open_statement.py | 2 +- addons/pos_mercury/models/pos_mercury.py | 1 + addons/pos_mercury/models/pos_mercury_transaction.py | 1 + addons/pos_restaurant/models/pos_restaurant.py | 3 +++ 11 files changed, 14 insertions(+), 5 deletions(-) diff --git a/addons/point_of_sale/models/pos_category.py b/addons/point_of_sale/models/pos_category.py index 916db9f579f..c5741486794 100644 --- a/addons/point_of_sale/models/pos_category.py +++ b/addons/point_of_sale/models/pos_category.py @@ -4,7 +4,7 @@ from odoo import api, fields, models, tools, _ class PosCategory(models.Model): _name = "pos.category" - _description = "PoS Category" + _description = "Point of Sale Category" _order = "sequence, name" @api.constrains('parent_id') diff --git a/addons/point_of_sale/models/pos_config.py b/addons/point_of_sale/models/pos_config.py index 2fdec9782e4..232948c4bef 100644 --- a/addons/point_of_sale/models/pos_config.py +++ b/addons/point_of_sale/models/pos_config.py @@ -37,6 +37,7 @@ class AccountBankStmtCashWizard(models.Model): class PosConfig(models.Model): _name = 'pos.config' + _description = 'Point of Sale Configuration' def _default_sale_journal(self): journal = self.env.ref('point_of_sale.pos_sale_journal', raise_if_not_found=False) diff --git a/addons/point_of_sale/models/pos_order.py b/addons/point_of_sale/models/pos_order.py index ea3612c6bbf..e7c7cb70b1a 100644 --- a/addons/point_of_sale/models/pos_order.py +++ b/addons/point_of_sale/models/pos_order.py @@ -942,7 +942,7 @@ class PosOrder(models.Model): class PosOrderLine(models.Model): _name = "pos.order.line" - _description = "Lines of Point of Sale Orders" + _description = "Point of Sale Order Lines" _rec_name = "product_id" def _order_line_fields(self, line, session_id=None): @@ -1064,6 +1064,7 @@ class PosOrderLineLot(models.Model): class ReportSaleDetails(models.AbstractModel): _name = 'report.point_of_sale.report_saledetails' + _description = 'Point of Sale Details' @api.model diff --git a/addons/point_of_sale/models/pos_session.py b/addons/point_of_sale/models/pos_session.py index 48b635ca72b..8b6ee9aef2e 100644 --- a/addons/point_of_sale/models/pos_session.py +++ b/addons/point_of_sale/models/pos_session.py @@ -8,6 +8,7 @@ from odoo.exceptions import UserError, ValidationError class PosSession(models.Model): _name = 'pos.session' _order = 'id desc' + _description = 'Point of Sale Session' POS_SESSION_STATE = [ ('opening_control', 'Opening Control'), # method action_pos_session_open diff --git a/addons/point_of_sale/report/pos_invoice.py b/addons/point_of_sale/report/pos_invoice.py index 6f51e30a3e4..27b13ba67df 100644 --- a/addons/point_of_sale/report/pos_invoice.py +++ b/addons/point_of_sale/report/pos_invoice.py @@ -7,6 +7,7 @@ from odoo.exceptions import UserError class PosInvoiceReport(models.AbstractModel): _name = 'report.point_of_sale.report_invoice' + _description = 'Point of Sale Invoice Report' @api.model def _get_report_values(self, docids, data=None): diff --git a/addons/point_of_sale/report/pos_order_report.py b/addons/point_of_sale/report/pos_order_report.py index f0635c90a8b..25bd27d9bcf 100644 --- a/addons/point_of_sale/report/pos_order_report.py +++ b/addons/point_of_sale/report/pos_order_report.py @@ -6,7 +6,7 @@ from odoo import api, fields, models, tools class PosOrderReport(models.Model): _name = "report.pos.order" - _description = "Point of Sale Orders Statistics" + _description = "Point of Sale Orders Report" _auto = False _order = 'date desc' diff --git a/addons/point_of_sale/wizard/pos_details.py b/addons/point_of_sale/wizard/pos_details.py index 88027810189..06825a25f36 100644 --- a/addons/point_of_sale/wizard/pos_details.py +++ b/addons/point_of_sale/wizard/pos_details.py @@ -7,7 +7,7 @@ from odoo.exceptions import UserError class PosDetails(models.TransientModel): _name = 'pos.details.wizard' - _description = 'Open Sales Details Report' + _description = 'Point of Sale Details Report' def _default_start_date(self): """ Find the earliest start_date of the latests sessions """ diff --git a/addons/point_of_sale/wizard/pos_open_statement.py b/addons/point_of_sale/wizard/pos_open_statement.py index befa94b0324..2575d45af5f 100644 --- a/addons/point_of_sale/wizard/pos_open_statement.py +++ b/addons/point_of_sale/wizard/pos_open_statement.py @@ -7,7 +7,7 @@ from odoo.exceptions import UserError class PosOpenStatement(models.TransientModel): _name = 'pos.open.statement' - _description = 'Open Statements' + _description = 'Point of Sale Open Statement' @api.multi def open_statement(self): diff --git a/addons/pos_mercury/models/pos_mercury.py b/addons/pos_mercury/models/pos_mercury.py index 20076cdd692..a55e701b3db 100644 --- a/addons/pos_mercury/models/pos_mercury.py +++ b/addons/pos_mercury/models/pos_mercury.py @@ -19,6 +19,7 @@ class BarcodeRule(models.Model): class PosMercuryConfiguration(models.Model): _name = 'pos_mercury.configuration' + _description = 'Point of Sale Mercury Configuration' name = fields.Char(required=True, help='Name of this Mercury configuration') merchant_id = fields.Char(string='Merchant ID', required=True, help='ID of the merchant to authenticate him on the payment provider server') diff --git a/addons/pos_mercury/models/pos_mercury_transaction.py b/addons/pos_mercury/models/pos_mercury_transaction.py index 50c63cbd849..a3ea29099f5 100644 --- a/addons/pos_mercury/models/pos_mercury_transaction.py +++ b/addons/pos_mercury/models/pos_mercury_transaction.py @@ -14,6 +14,7 @@ from odoo.tools import DEFAULT_SERVER_DATETIME_FORMAT, misc class MercuryTransaction(models.Model): _name = 'pos_mercury.mercury_transaction' + _description = 'Point of Sale Mercury Transaction' def _get_pos_session(self): pos_session = self.env['pos.session'].search([('state', '=', 'opened'), ('user_id', '=', self.env.uid)], limit=1) diff --git a/addons/pos_restaurant/models/pos_restaurant.py b/addons/pos_restaurant/models/pos_restaurant.py index 8ec67096904..7530b774c6b 100644 --- a/addons/pos_restaurant/models/pos_restaurant.py +++ b/addons/pos_restaurant/models/pos_restaurant.py @@ -7,6 +7,7 @@ from odoo import api, fields, models class RestaurantFloor(models.Model): _name = 'restaurant.floor' + _description = 'Restaurant Floor' name = fields.Char('Floor Name', required=True, help='An internal identification of the restaurant floor') pos_config_id = fields.Many2one('pos.config', string='Point of Sale') @@ -19,6 +20,7 @@ class RestaurantFloor(models.Model): class RestaurantTable(models.Model): _name = 'restaurant.table' + _description = 'Restaurant Table' name = fields.Char('Table Name', required=True, help='An internal identification of a table') floor_id = fields.Many2one('restaurant.floor', string='Floor') @@ -54,6 +56,7 @@ class RestaurantTable(models.Model): class RestaurantPrinter(models.Model): _name = 'restaurant.printer' + _description = 'Restaurant Printer' name = fields.Char('Printer Name', required=True, default='Printer', help='An internal identification of the printer') proxy_ip = fields.Char('Proxy IP Address', help="The IP Address or hostname of the Printer's hardware proxy") From a308506051a72aa3e136a640c48eced76bc15bc4 Mon Sep 17 00:00:00 2001 From: Nimesh Jethva Date: Mon, 17 Sep 2018 17:00:43 +0530 Subject: [PATCH 10/14] [IMP]hr_*: Improvement in model description Purpose of this commit is to give description more "business oriented" because those descriptions appears in Odoo Studio which is supposed to be used by end users, not only by developers. Related Task ID : 37311 --- addons/fleet/models/fleet_vehicle.py | 6 ++++-- addons/gamification/models/badge.py | 4 ++-- addons/gamification/models/challenge.py | 2 +- addons/gamification/models/goal.py | 4 ++-- addons/gamification/wizard/grant_badge.py | 1 + addons/gamification/wizard/update_goal.py | 1 + addons/hr_expense/wizard/hr_expense_refuse_reason.py | 2 +- .../wizard/hr_expense_sheet_register_payment.py | 2 +- addons/hr_holidays/models/resource.py | 2 -- addons/hr_holidays/report/holidays_summary_report.py | 1 + addons/hr_payroll/models/hr_salary_rule.py | 1 + addons/hr_payroll/report/report_contribution_register.py | 1 + addons/hr_payroll/report/report_payslip_details.py | 1 + .../wizard/hr_payroll_contribution_register_report.py | 2 +- addons/hr_recruitment/models/hr_recruitment.py | 4 ++-- addons/lunch/models/lunch.py | 8 ++++---- addons/lunch/wizard/lucky_order.py | 1 + addons/maintenance/models/maintenance.py | 4 ++-- 18 files changed, 27 insertions(+), 20 deletions(-) diff --git a/addons/fleet/models/fleet_vehicle.py b/addons/fleet/models/fleet_vehicle.py index 609ecbe6e4f..3eadaca7a2c 100644 --- a/addons/fleet/models/fleet_vehicle.py +++ b/addons/fleet/models/fleet_vehicle.py @@ -10,7 +10,7 @@ from odoo.osv import expression class FleetVehicle(models.Model): _inherit = ['mail.thread', 'mail.activity.mixin'] _name = 'fleet.vehicle' - _description = 'Information on a vehicle' + _description = 'Vehicle' _order = 'license_plate asc, acquisition_date asc' def _get_default_state(self): @@ -313,6 +313,7 @@ class FleetVehicleOdometer(models.Model): class FleetVehicleState(models.Model): _name = 'fleet.vehicle.state' _order = 'sequence asc' + _description = 'Vehicle Status' name = fields.Char(required=True) sequence = fields.Integer(help="Used to order the note stages") @@ -322,6 +323,7 @@ class FleetVehicleState(models.Model): class FleetVehicleTag(models.Model): _name = 'fleet.vehicle.tag' + _description = 'Vehicle Tag' name = fields.Char(required=True, translate=True) color = fields.Integer('Color Index') @@ -331,7 +333,7 @@ class FleetVehicleTag(models.Model): class FleetServiceType(models.Model): _name = 'fleet.service.type' - _description = 'Type of services available on a vehicle' + _description = 'Fleet Service Type' name = fields.Char(required=True, translate=True) category = fields.Selection([ diff --git a/addons/gamification/models/badge.py b/addons/gamification/models/badge.py index 8aa184d1930..4e0d9d1c27c 100644 --- a/addons/gamification/models/badge.py +++ b/addons/gamification/models/badge.py @@ -12,7 +12,7 @@ class BadgeUser(models.Model): """User having received a badge""" _name = 'gamification.badge.user' - _description = 'Gamification user badge' + _description = 'Gamification User Badge' _order = "create_date desc" _rec_name = "badge_name" @@ -60,7 +60,7 @@ class GamificationBadge(models.Model): TOO_MANY = 5 _name = 'gamification.badge' - _description = 'Gamification badge' + _description = 'Gamification Badge' _inherit = ['mail.thread'] name = fields.Char('Badge', required=True, translate=True) diff --git a/addons/gamification/models/challenge.py b/addons/gamification/models/challenge.py index 48868407f24..1c088cd2bac 100644 --- a/addons/gamification/models/challenge.py +++ b/addons/gamification/models/challenge.py @@ -56,7 +56,7 @@ class Challenge(models.Model): """ _name = 'gamification.challenge' - _description = 'Gamification challenge' + _description = 'Gamification Challenge' _inherit = 'mail.thread' _order = 'end_date, start_date, name, id' diff --git a/addons/gamification/models/goal.py b/addons/gamification/models/goal.py index 1d11c0f8016..3f98b352bc9 100644 --- a/addons/gamification/models/goal.py +++ b/addons/gamification/models/goal.py @@ -21,7 +21,7 @@ class GoalDefinition(models.Model): a new gamification_goal_definition """ _name = 'gamification.goal.definition' - _description = 'Gamification goal definition' + _description = 'Gamification Goal Definition' name = fields.Char("Goal Definition", required=True, translate=True) description = fields.Text("Goal Description") @@ -146,7 +146,7 @@ class Goal(models.Model): An individual goal for a user on a specified time period""" _name = 'gamification.goal' - _description = 'Gamification goal instance' + _description = 'Gamification Goal' _order = 'start_date desc, end_date desc, definition_id, id' definition_id = fields.Many2one('gamification.goal.definition', string="Goal Definition", required=True, ondelete="cascade") diff --git a/addons/gamification/wizard/grant_badge.py b/addons/gamification/wizard/grant_badge.py index 01078f13017..49fc1aeebf1 100644 --- a/addons/gamification/wizard/grant_badge.py +++ b/addons/gamification/wizard/grant_badge.py @@ -7,6 +7,7 @@ from odoo import api, fields, models, _, exceptions class grant_badge_wizard(models.TransientModel): """ Wizard allowing to grant a badge to a user""" _name = 'gamification.badge.user.wizard' + _description = 'Gamification User Badge Wizard' user_id = fields.Many2one("res.users", string='User', required=True) badge_id = fields.Many2one("gamification.badge", string='Badge', required=True) diff --git a/addons/gamification/wizard/update_goal.py b/addons/gamification/wizard/update_goal.py index 34a5e8e1345..dfa8995238e 100644 --- a/addons/gamification/wizard/update_goal.py +++ b/addons/gamification/wizard/update_goal.py @@ -6,6 +6,7 @@ from odoo import api, models, fields class goal_manual_wizard(models.TransientModel): """Wizard to update a manual goal""" _name = 'gamification.goal.wizard' + _description = 'Gamification Goal Wizard' goal_id = fields.Many2one("gamification.goal", string='Goal', required=True) current = fields.Float('Current') diff --git a/addons/hr_expense/wizard/hr_expense_refuse_reason.py b/addons/hr_expense/wizard/hr_expense_refuse_reason.py index a88d2ac0b4a..42613a3f058 100644 --- a/addons/hr_expense/wizard/hr_expense_refuse_reason.py +++ b/addons/hr_expense/wizard/hr_expense_refuse_reason.py @@ -12,7 +12,7 @@ class HrExpenseRefuseWizard(models.TransientModel): """ _name = "hr.expense.refuse.wizard" - _description = "Expense refuse Reason wizard" + _description = "Expense Refuse Reason Wizard" reason = fields.Char(string='Reason', required=True) hr_expense_ids = fields.Many2many('hr.expense') diff --git a/addons/hr_expense/wizard/hr_expense_sheet_register_payment.py b/addons/hr_expense/wizard/hr_expense_sheet_register_payment.py index c00694a0b3e..f77f013d999 100644 --- a/addons/hr_expense/wizard/hr_expense_sheet_register_payment.py +++ b/addons/hr_expense/wizard/hr_expense_sheet_register_payment.py @@ -8,7 +8,7 @@ from werkzeug import url_encode class HrExpenseSheetRegisterPaymentWizard(models.TransientModel): _name = "hr.expense.sheet.register.payment.wizard" - _description = "Expense Report Register Payment wizard" + _description = "Expense Register Payment Wizard" @api.model def _default_partner_id(self): diff --git a/addons/hr_holidays/models/resource.py b/addons/hr_holidays/models/resource.py index 7a761e5650d..1fa1535079e 100644 --- a/addons/hr_holidays/models/resource.py +++ b/addons/hr_holidays/models/resource.py @@ -5,8 +5,6 @@ from odoo import fields, models class CalendarLeaves(models.Model): - _inherit = "resource.calendar.leaves" - _description = "Leave Detail" holiday_id = fields.Many2one("hr.leave", string='Leave Request') diff --git a/addons/hr_holidays/report/holidays_summary_report.py b/addons/hr_holidays/report/holidays_summary_report.py index 3337acc7af9..5047cde9742 100644 --- a/addons/hr_holidays/report/holidays_summary_report.py +++ b/addons/hr_holidays/report/holidays_summary_report.py @@ -11,6 +11,7 @@ from odoo.exceptions import UserError class HrHolidaySummaryReport(models.AbstractModel): _name = 'report.hr_holidays.report_holidayssummary' + _description = 'Holidays Summary Report' def _get_header_info(self, start_date, holiday_type): st_date = fields.Date.from_string(start_date) diff --git a/addons/hr_payroll/models/hr_salary_rule.py b/addons/hr_payroll/models/hr_salary_rule.py index 99b99bc46e1..44dff7ee4bf 100644 --- a/addons/hr_payroll/models/hr_salary_rule.py +++ b/addons/hr_payroll/models/hr_salary_rule.py @@ -95,6 +95,7 @@ class HrSalaryRuleCategory(models.Model): class HrSalaryRule(models.Model): _name = 'hr.salary.rule' _order = 'sequence, id' + _description = 'Salary Rule' name = fields.Char(required=True, translate=True) code = fields.Char(required=True, diff --git a/addons/hr_payroll/report/report_contribution_register.py b/addons/hr_payroll/report/report_contribution_register.py index f9e44981d00..83f984354bd 100644 --- a/addons/hr_payroll/report/report_contribution_register.py +++ b/addons/hr_payroll/report/report_contribution_register.py @@ -11,6 +11,7 @@ from odoo.exceptions import UserError class ContributionRegisterReport(models.AbstractModel): _name = 'report.hr_payroll.report_contributionregister' + _description = 'Payroll Contribution Register Report' def _get_payslip_lines(self, register_ids, date_from, date_to): result = {} diff --git a/addons/hr_payroll/report/report_payslip_details.py b/addons/hr_payroll/report/report_payslip_details.py index 3c44ca838a1..db8e7717c1b 100644 --- a/addons/hr_payroll/report/report_payslip_details.py +++ b/addons/hr_payroll/report/report_payslip_details.py @@ -5,6 +5,7 @@ from odoo import api, models class PayslipDetailsReport(models.AbstractModel): _name = 'report.hr_payroll.report_payslipdetails' + _description = 'Payslip Details Report' def get_details_by_rule_category(self, payslip_lines): PayslipLine = self.env['hr.payslip.line'] diff --git a/addons/hr_payroll/wizard/hr_payroll_contribution_register_report.py b/addons/hr_payroll/wizard/hr_payroll_contribution_register_report.py index e53bed24c93..a41147c68fc 100644 --- a/addons/hr_payroll/wizard/hr_payroll_contribution_register_report.py +++ b/addons/hr_payroll/wizard/hr_payroll_contribution_register_report.py @@ -9,7 +9,7 @@ from odoo import api, fields, models class PayslipLinesContributionRegister(models.TransientModel): _name = 'payslip.lines.contribution.register' - _description = 'PaySlip Lines by Contribution Registers' + _description = 'Payslip Lines by Contribution Registers' date_from = fields.Date(string='Date From', required=True, default=datetime.now().strftime('%Y-%m-01')) diff --git a/addons/hr_recruitment/models/hr_recruitment.py b/addons/hr_recruitment/models/hr_recruitment.py index def453578c4..8c7093b5c5c 100644 --- a/addons/hr_recruitment/models/hr_recruitment.py +++ b/addons/hr_recruitment/models/hr_recruitment.py @@ -44,7 +44,7 @@ class RecruitmentSource(models.Model): class RecruitmentStage(models.Model): _name = "hr.recruitment.stage" - _description = "Stage of Recruitment" + _description = "Recruitment Stages" _order = 'sequence' name = fields.Char("Stage name", required=True, translate=True) @@ -79,7 +79,7 @@ class RecruitmentStage(models.Model): class RecruitmentDegree(models.Model): _name = "hr.recruitment.degree" - _description = "Degree of Recruitment" + _description = "Applicant Degree" _sql_constraints = [ ('name_uniq', 'unique (name)', 'The name of the Degree of Recruitment must be unique!') ] diff --git a/addons/lunch/models/lunch.py b/addons/lunch/models/lunch.py index a5e021ca7e4..36cd7d1408c 100644 --- a/addons/lunch/models/lunch.py +++ b/addons/lunch/models/lunch.py @@ -160,7 +160,7 @@ class LunchOrder(models.Model): class LunchOrderLine(models.Model): _name = 'lunch.order.line' - _description = 'lunch order line' + _description = 'Lunch Order Line' _order = 'date desc, id desc' name = fields.Char(related='product_id.name', string="Product Name", readonly=True) @@ -321,7 +321,7 @@ class LunchOrderLine(models.Model): class LunchProduct(models.Model): """ Products available to order. A product is linked to a specific vendor. """ _name = 'lunch.product' - _description = 'lunch product' + _description = 'Lunch Product' name = fields.Char('Product', required=True) category_id = fields.Many2one('lunch.product.category', 'Product Category', required=True) @@ -369,7 +369,7 @@ class LunchProduct(models.Model): class LunchProductCategory(models.Model): """ Category of the product such as pizza, sandwich, pasta, chinese, burger... """ _name = 'lunch.product.category' - _description = 'lunch product category' + _description = 'Lunch Product Category' name = fields.Char('Product Category', required=True) @@ -377,7 +377,7 @@ class LunchProductCategory(models.Model): class LunchCashMove(models.Model): """ Two types of cashmoves: payment (credit) or order (debit) """ _name = 'lunch.cashmove' - _description = 'lunch cashmove' + _description = 'Lunch Cashmove' user_id = fields.Many2one('res.users', 'User', default=lambda self: self.env.uid) diff --git a/addons/lunch/wizard/lucky_order.py b/addons/lunch/wizard/lucky_order.py index 0533de5b4ee..5836a418e56 100644 --- a/addons/lunch/wizard/lucky_order.py +++ b/addons/lunch/wizard/lucky_order.py @@ -9,6 +9,7 @@ from odoo.exceptions import UserError class LunchOrderLineLucky(models.TransientModel): _name = 'lunch.order.line.lucky' + _description = 'Lunch Order Line Lucky' def _default_supplier(self): suppliers_obj = self.env['lunch.product'].search([]).mapped("supplier") diff --git a/addons/maintenance/models/maintenance.py b/addons/maintenance/models/maintenance.py index c117e5f72a6..719c912e038 100644 --- a/addons/maintenance/models/maintenance.py +++ b/addons/maintenance/models/maintenance.py @@ -23,7 +23,7 @@ class MaintenanceStage(models.Model): class MaintenanceEquipmentCategory(models.Model): _name = 'maintenance.equipment.category' _inherit = ['mail.alias.mixin', 'mail.thread'] - _description = 'Asset Category' + _description = 'Maintenance Equipment Category' @api.one @api.depends('equipment_ids') @@ -92,7 +92,7 @@ class MaintenanceEquipmentCategory(models.Model): class MaintenanceEquipment(models.Model): _name = 'maintenance.equipment' _inherit = ['mail.thread', 'mail.activity.mixin'] - _description = 'Equipment' + _description = 'Maintenance Equipment' @api.multi def _track_subtype(self, init_values): From d2ca8a10537c88ee14a694f246b0f19f70065c2a Mon Sep 17 00:00:00 2001 From: Nimesh Jethva Date: Mon, 17 Sep 2018 17:02:39 +0530 Subject: [PATCH 11/14] [IMP]marketing: Improvement in model description Purpose of this commit is to give description more "business oriented" because those descriptions appears in Odoo Studio which is supposed to be used by end users, not only by developers. Related Task ID : 37311 --- addons/event/models/event.py | 2 +- addons/event/models/event_mail.py | 2 +- addons/event/wizard/event_confirm.py | 1 + addons/event_sale/wizard/event_edit_registration.py | 2 ++ addons/link_tracker/models/link_tracker.py | 3 +++ addons/mass_mailing/wizard/mass_mailing_list_merge.py | 2 +- addons/mass_mailing/wizard/mass_mailing_schedule_date.py | 2 +- 7 files changed, 10 insertions(+), 4 deletions(-) diff --git a/addons/event/models/event.py b/addons/event/models/event.py index 0ff913fb42b..06156e3a99e 100644 --- a/addons/event/models/event.py +++ b/addons/event/models/event.py @@ -334,7 +334,7 @@ class EventEvent(models.Model): class EventRegistration(models.Model): _name = 'event.registration' - _description = 'Attendee' + _description = 'Event Registration' _inherit = ['mail.thread'] _order = 'name, create_date desc' diff --git a/addons/event/models/event_mail.py b/addons/event/models/event_mail.py index 3c725af4dd1..cc09c9a71fb 100644 --- a/addons/event/models/event_mail.py +++ b/addons/event/models/event_mail.py @@ -24,7 +24,7 @@ class EventTypeMail(models.Model): """ Template of event.mail to attach to event.type. Those will be copied upon all events created in that type to ease event creation. """ _name = 'event.type.mail' - _description = 'Mail Scheduling on Event Type' + _description = 'Mail Scheduling on Event Category' event_type_id = fields.Many2one( 'event.type', string='Event Type', diff --git a/addons/event/wizard/event_confirm.py b/addons/event/wizard/event_confirm.py index 5b33fac46d3..a9825af916c 100644 --- a/addons/event/wizard/event_confirm.py +++ b/addons/event/wizard/event_confirm.py @@ -7,6 +7,7 @@ from odoo import models, api class event_confirm(models.TransientModel): """Event Confirmation""" _name = "event.confirm" + _description = 'Event Confirmation' @api.multi def confirm(self): diff --git a/addons/event_sale/wizard/event_edit_registration.py b/addons/event_sale/wizard/event_edit_registration.py index f03623d91ad..73c5e44879e 100644 --- a/addons/event_sale/wizard/event_edit_registration.py +++ b/addons/event_sale/wizard/event_edit_registration.py @@ -5,6 +5,7 @@ from odoo import models, fields, api class RegistrationEditor(models.TransientModel): _name = "registration.editor" + _description = 'Edit Attendee Details on Sales Confirmation' sale_order_id = fields.Many2one('sale.order', 'Sales Order', required=True) event_registration_ids = fields.One2many('registration.editor.line', 'editor_id', string='Registrations to Edit') @@ -62,6 +63,7 @@ class RegistrationEditor(models.TransientModel): class RegistrationEditorLine(models.TransientModel): """Event Registration""" _name = "registration.editor.line" + _description = 'Edit Attendee Line on Sales Confirmation' editor_id = fields.Many2one('registration.editor') sale_order_line_id = fields.Many2one('sale.order.line', string='Sales Order Line') diff --git a/addons/link_tracker/models/link_tracker.py b/addons/link_tracker/models/link_tracker.py index bef01e95634..584894b4322 100644 --- a/addons/link_tracker/models/link_tracker.py +++ b/addons/link_tracker/models/link_tracker.py @@ -31,6 +31,7 @@ class link_tracker(models.Model): _name = "link.tracker" _rec_name = "short_url" + _description = 'Link Tracker' _inherit = ['utm.mixin'] @@ -204,6 +205,7 @@ class link_tracker(models.Model): class link_tracker_code(models.Model): _name = "link.tracker.code" + _description = 'Link Tracker Code' code = fields.Char(string='Short URL Code', store=True) link_id = fields.Many2one('link.tracker', 'Link', required=True, ondelete='cascade') @@ -227,6 +229,7 @@ class link_tracker_code(models.Model): class link_tracker_click(models.Model): _name = "link.tracker.click" _rec_name = "link_id" + _description = 'Link Tracker Click' click_date = fields.Date(string='Create Date') link_id = fields.Many2one('link.tracker', 'Link', required=True, ondelete='cascade') diff --git a/addons/mass_mailing/wizard/mass_mailing_list_merge.py b/addons/mass_mailing/wizard/mass_mailing_list_merge.py index 2cd408eca0c..c71661b668e 100644 --- a/addons/mass_mailing/wizard/mass_mailing_list_merge.py +++ b/addons/mass_mailing/wizard/mass_mailing_list_merge.py @@ -6,7 +6,7 @@ from odoo import api, fields, models class MassMailingListMerge(models.TransientModel): _name = 'mass.mailing.list.merge' - _description = 'Merge Mass Mailing Lists' + _description = 'Merge Mass Mailing List' src_list_ids = fields.Many2many('mail.mass_mailing.list', string='Mailing Lists') dest_list_id = fields.Many2one('mail.mass_mailing.list', string='Destination Mailing List') diff --git a/addons/mass_mailing/wizard/mass_mailing_schedule_date.py b/addons/mass_mailing/wizard/mass_mailing_schedule_date.py index 428ee9c54e5..c9a864ac6ca 100644 --- a/addons/mass_mailing/wizard/mass_mailing_schedule_date.py +++ b/addons/mass_mailing/wizard/mass_mailing_schedule_date.py @@ -7,7 +7,7 @@ from odoo.exceptions import ValidationError class MassMailingScheduleDate(models.TransientModel): _name = 'mass.mailing.schedule.date' - _description = 'Schedule in the Future' + _description = 'Mass Mailing Scheduling' schedule_date = fields.Datetime(string='Schedule in the Future') mass_mailing_id = fields.Many2one('mail.mass_mailing', required=True) From d356e8dbe636f7d6f0f8c28a825a605f34a13d92 Mon Sep 17 00:00:00 2001 From: Nimesh Jethva Date: Mon, 17 Sep 2018 17:04:25 +0530 Subject: [PATCH 12/14] [IMP]mrp_*: Improvement in model description Purpose of this commit is to give description more "business oriented" because those descriptions appears in Odoo Studio which is supposed to be used by end users, not only by developers. Related Task ID : 37311 --- addons/mrp/models/mrp_bom.py | 1 + addons/mrp/models/mrp_production.py | 2 +- addons/mrp/models/mrp_workcenter.py | 3 ++- addons/mrp/report/mrp_report_bom_structure.py | 1 + addons/mrp/wizard/change_production_qty.py | 2 +- addons/mrp/wizard/stock_warn_insufficient_qty.py | 1 + addons/mrp_bom_cost/models/product.py | 1 + addons/repair/models/repair.py | 4 ++-- addons/repair/wizard/repair_make_invoice.py | 2 +- addons/repair/wizard/stock_warn_insufficient_qty.py | 1 + 10 files changed, 12 insertions(+), 6 deletions(-) diff --git a/addons/mrp/models/mrp_bom.py b/addons/mrp/models/mrp_bom.py index 80799006a03..3ff3a18920d 100644 --- a/addons/mrp/models/mrp_bom.py +++ b/addons/mrp/models/mrp_bom.py @@ -206,6 +206,7 @@ class MrpBomLine(models.Model): _name = 'mrp.bom.line' _order = "sequence, id" _rec_name = "product_id" + _description = 'Bill of Material Line' def _get_default_product_uom_id(self): return self.env['uom.uom'].search([], limit=1, order='id').id diff --git a/addons/mrp/models/mrp_production.py b/addons/mrp/models/mrp_production.py index 504c0268ec8..c3c8465e01f 100644 --- a/addons/mrp/models/mrp_production.py +++ b/addons/mrp/models/mrp_production.py @@ -11,7 +11,7 @@ from odoo.tools import float_compare, float_round class MrpProduction(models.Model): """ Manufacturing Orders """ _name = 'mrp.production' - _description = 'Manufacturing Order' + _description = 'Production Order' _date_name = 'date_planned_start' _inherit = ['mail.thread', 'mail.activity.mixin'] _order = 'date_planned_start asc,id' diff --git a/addons/mrp/models/mrp_workcenter.py b/addons/mrp/models/mrp_workcenter.py index 3c4833ea79f..2d9aa26b7fd 100644 --- a/addons/mrp/models/mrp_workcenter.py +++ b/addons/mrp/models/mrp_workcenter.py @@ -175,6 +175,7 @@ class MrpWorkcenter(models.Model): class MrpWorkcenterProductivityLossType(models.Model): _name = "mrp.workcenter.productivity.loss.type" + _description = 'MRP Workorder productivity losses' _rec_name = 'loss_type' @api.depends('loss_type') @@ -197,7 +198,7 @@ class MrpWorkcenterProductivityLossType(models.Model): class MrpWorkcenterProductivityLoss(models.Model): _name = "mrp.workcenter.productivity.loss" - _description = "TPM Big Losses" + _description = "Workcenter Productivity Losses" _order = "sequence, id" name = fields.Char('Reason', required=True) diff --git a/addons/mrp/report/mrp_report_bom_structure.py b/addons/mrp/report/mrp_report_bom_structure.py index 42e18fd5073..5ffe4772dcd 100644 --- a/addons/mrp/report/mrp_report_bom_structure.py +++ b/addons/mrp/report/mrp_report_bom_structure.py @@ -7,6 +7,7 @@ from odoo.tools import float_round class ReportBomStructure(models.AbstractModel): _name = 'report.mrp.report_bom_structure' + _description = 'BOM Structure Report' @api.model def _get_report_values(self, docids, data=None): diff --git a/addons/mrp/wizard/change_production_qty.py b/addons/mrp/wizard/change_production_qty.py index 31722c53618..b92616c9a50 100644 --- a/addons/mrp/wizard/change_production_qty.py +++ b/addons/mrp/wizard/change_production_qty.py @@ -9,7 +9,7 @@ from odoo.tools import float_is_zero, float_round class ChangeProductionQty(models.TransientModel): _name = 'change.production.qty' - _description = 'Change Quantity of Products' + _description = 'Change Production Qty' # TDE FIXME: add production_id field mo_id = fields.Many2one('mrp.production', 'Manufacturing Order', required=True) diff --git a/addons/mrp/wizard/stock_warn_insufficient_qty.py b/addons/mrp/wizard/stock_warn_insufficient_qty.py index c6342b2bad7..192368e20c0 100644 --- a/addons/mrp/wizard/stock_warn_insufficient_qty.py +++ b/addons/mrp/wizard/stock_warn_insufficient_qty.py @@ -7,6 +7,7 @@ from odoo import api, fields, models class StockWarnInsufficientQtyUnbuild(models.TransientModel): _name = 'stock.warn.insufficient.qty.unbuild' _inherit = 'stock.warn.insufficient.qty' + _description = 'Warn Insufficient Unbuild Quantity' unbuild_id = fields.Many2one('mrp.unbuild', 'Unbuild') diff --git a/addons/mrp_bom_cost/models/product.py b/addons/mrp_bom_cost/models/product.py index c1a276918ae..9309d73a6d7 100644 --- a/addons/mrp_bom_cost/models/product.py +++ b/addons/mrp_bom_cost/models/product.py @@ -21,6 +21,7 @@ class ProductTemplate(models.Model): class ProductProduct(models.Model): _name = 'product.product' _inherit = 'product.product' + _description = 'Product' def button_bom_cost(self): self.ensure_one() diff --git a/addons/repair/models/repair.py b/addons/repair/models/repair.py index b0f188fd920..e38c76e20ce 100644 --- a/addons/repair/models/repair.py +++ b/addons/repair/models/repair.py @@ -497,7 +497,7 @@ class Repair(models.Model): class RepairLine(models.Model): _name = 'repair.line' - _description = 'Repair Line' + _description = 'Repair Line (parts)' name = fields.Text('Description', required=True) repair_id = fields.Many2one( @@ -613,7 +613,7 @@ class RepairLine(models.Model): class RepairFee(models.Model): _name = 'repair.fee' - _description = 'Repair Fees Line' + _description = 'Repair Fees' repair_id = fields.Many2one( 'repair.order', 'Repair Order Reference', diff --git a/addons/repair/wizard/repair_make_invoice.py b/addons/repair/wizard/repair_make_invoice.py index 72dba849e67..db2b684619f 100644 --- a/addons/repair/wizard/repair_make_invoice.py +++ b/addons/repair/wizard/repair_make_invoice.py @@ -6,7 +6,7 @@ from odoo import api, fields, models class MakeInvoice(models.TransientModel): _name = 'repair.order.make_invoice' - _description = 'Make Invoice' + _description = 'Create Mass Invoice (repair)' group = fields.Boolean('Group by partner invoice address') diff --git a/addons/repair/wizard/stock_warn_insufficient_qty.py b/addons/repair/wizard/stock_warn_insufficient_qty.py index f5a1e3a4601..f4a53558200 100644 --- a/addons/repair/wizard/stock_warn_insufficient_qty.py +++ b/addons/repair/wizard/stock_warn_insufficient_qty.py @@ -6,6 +6,7 @@ from odoo import fields, models class StockWarnInsufficientQtyRepair(models.TransientModel): _name = 'stock.warn.insufficient.qty.repair' _inherit = 'stock.warn.insufficient.qty' + _description = 'Warn Insufficient Repair Quantity' repair_id = fields.Many2one('repair.order', string='Repair') From 70464793655bd123e24b79d6ec00ea404e5f6c9a Mon Sep 17 00:00:00 2001 From: Nimesh Jethva Date: Mon, 17 Sep 2018 17:25:19 +0530 Subject: [PATCH 13/14] [IMP]project_*: Improvement in model description Purpose of this commit is to give description more "business oriented" because those descriptions appears in Odoo Studio which is supposed to be used by end users, not only by developers. Related Task ID : 37311 --- addons/pad_project/models/project.py | 1 + addons/project/models/project.py | 2 +- addons/project/report/project_report.py | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/addons/pad_project/models/project.py b/addons/pad_project/models/project.py index 6d2273b15dd..e3f1907b959 100644 --- a/addons/pad_project/models/project.py +++ b/addons/pad_project/models/project.py @@ -7,6 +7,7 @@ from odoo import api, fields, models class ProjectTask(models.Model): _name = "project.task" _inherit = ["project.task", 'pad.common'] + _description = 'Task' description_pad = fields.Char('Pad URL', pad_content_field='description', copy=False) use_pad = fields.Boolean(related="project_id.use_pads", string="Use collaborative pad", readonly=True) diff --git a/addons/project/models/project.py b/addons/project/models/project.py index 796b459634c..a4bbd7928e3 100644 --- a/addons/project/models/project.py +++ b/addons/project/models/project.py @@ -963,7 +963,7 @@ class Task(models.Model): class ProjectTags(models.Model): """ Tags of project's tasks """ _name = "project.tags" - _description = "Tasks Tags" + _description = "Project Tags" name = fields.Char(required=True) color = fields.Integer(string='Color Index') diff --git a/addons/project/report/project_report.py b/addons/project/report/project_report.py index e18cf5e0d09..54a8d061038 100644 --- a/addons/project/report/project_report.py +++ b/addons/project/report/project_report.py @@ -6,7 +6,7 @@ from odoo import fields, models, tools class ReportProjectTaskUser(models.Model): _name = "report.project.task.user" - _description = "Tasks by user and project" + _description = "Tasks Analysis" _order = 'name desc, project_id' _auto = False From f7cecc90f1bc2567298b52ef9685c626d1344b5e Mon Sep 17 00:00:00 2001 From: Nimesh Jethva Date: Mon, 17 Sep 2018 17:25:33 +0530 Subject: [PATCH 14/14] [IMP]purchase_*: Improvement in model description Purpose of this commit is to give description more "business oriented" because those descriptions appears in Odoo Studio which is supposed to be used by end users, not only by developers. Related Task ID : 37311 --- addons/purchase/report/purchase_bill.py | 2 +- addons/purchase/report/purchase_report.py | 2 +- addons/purchase_requisition/models/purchase_requisition.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/purchase/report/purchase_bill.py b/addons/purchase/report/purchase_bill.py index 07dd4bb9d34..f9af76ca424 100644 --- a/addons/purchase/report/purchase_bill.py +++ b/addons/purchase/report/purchase_bill.py @@ -7,7 +7,7 @@ from odoo.tools import formatLang class PurchaseBillUnion(models.Model): _name = 'purchase.bill.union' _auto = False - _description = 'Bills & Purchases' + _description = 'Purchases & Bills Union' _order = "purchase_order_id desc, vendor_bill_id desc" name = fields.Char(string='Reference', readonly=True) diff --git a/addons/purchase/report/purchase_report.py b/addons/purchase/report/purchase_report.py index e9fd6f22dc3..4b9ca15207b 100644 --- a/addons/purchase/report/purchase_report.py +++ b/addons/purchase/report/purchase_report.py @@ -10,7 +10,7 @@ from odoo import api, fields, models, tools class PurchaseReport(models.Model): _name = "purchase.report" - _description = "Purchases Orders" + _description = "Purchase Report" _auto = False _order = 'date_order desc, price_total desc' diff --git a/addons/purchase_requisition/models/purchase_requisition.py b/addons/purchase_requisition/models/purchase_requisition.py index a3f0bc72a2b..0c4ac448e48 100644 --- a/addons/purchase_requisition/models/purchase_requisition.py +++ b/addons/purchase_requisition/models/purchase_requisition.py @@ -19,7 +19,7 @@ PURCHASE_REQUISITION_STATES = [ class PurchaseRequisitionType(models.Model): _name = "purchase.requisition.type" - _description = "Purchase Agreement Type" + _description = "Purchase Requisition Type" _order = "sequence" name = fields.Char(string='Agreement Type', required=True, translate=True)