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/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/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/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/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/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/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/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/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/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/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_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/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/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/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/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/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/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/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
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):
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)
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/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/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/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"),
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/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/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/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")
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/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
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)
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')
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/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/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/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")
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/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()
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/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_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')
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')
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):
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')