access_ir_model_access_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_model_access' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_model_fields_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_model_fields' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_model_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_model' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_rule_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_rule' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_res_groups_group_erp_manager — Access rule grants write/create/unlink on security model 'model_res_groups' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_res_users_group_erp_manager — Access rule grants write/create/unlink on security model 'model_res_users' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationFound by automated static analysis: these patterns are usually risky, but only a manual review of the module can confirm a real issue.
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
act_report_xml_search_view |
ir.actions.report.search | ir.actions.report | search | New |
act_report_xml_view |
ir.actions.report | ir.actions.report | form | New |
act_report_xml_view_tree |
ir.actions.report.list | ir.actions.report | list | New |
action_view |
ir.actions.actions | ir.actions.actions | form | New |
action_view_search |
ir.actions.actions.search | ir.actions.actions | search | New |
action_view_tree |
ir.actions.actions.list | ir.actions.actions | list | New |
asset_view_form |
ir.asset | form | New | |
asset_view_search |
ir.asset | search | New | |
asset_view_tree |
ir.asset | list | New | |
base.language_install_view_form_lang_switch |
Switch to language | base.language.install | form | New |
base_partner_merge_automatic_wizard_form |
base.partner.merge.automatic.wizard.form | base.partner.merge.automatic.wizard | form | New |
change_password_own_form |
Change Own Password | change.password.own | form | New |
change_password_wizard_user_tree_view |
Change Password Users | change.password.user | list | New |
change_password_wizard_view |
Change Password | change.password.wizard | form | New |
config_wizard_step_view_form |
Config Wizard Steps | ir.actions.todo | form | New |
config_wizard_step_view_search |
ir.actions.todo.select | ir.actions.todo | search | New |
contact |
contact | ir.ui.view | qweb | New |
contact_name |
contact_name | ir.ui.view | qweb | New |
demo_failures_dialog |
Demo Failure Dialog | ir.demo_failure.wizard | form | New |
demo_force_install_form |
ir.demo.form | ir.demo | form | New |
demo_wizard_form_view |
Demo Failure Form | ir.demo_failure | form | New |
edit_menu |
ir.ui.menu | list | New | |
edit_menu_access |
ir.ui.menu | form | New | |
edit_menu_access_search |
ir.ui.menu.search | ir.ui.menu | search | New |
embedded_action_form |
ir.embedded.actions.form | ir.embedded.actions | form | New |
embedded_action_tree |
Embedded Actions | ir.embedded.actions | list | New |
enable_profiling_wizard |
Enable profiling | base.enable.profiling.wizard | form | New |
form_res_users_key_description |
API Key: description input form | res.users.apikeys.description | form | New |
form_res_users_key_show |
API Key: show | res.users.apikeys.show | form | New |
ir_access_view_form |
ir.model.access | form | New | |
ir_access_view_search |
ir.model.access | search | New | |
ir_access_view_tree |
ir.model.access.view.list | ir.model.access | list | New |
ir_access_view_tree_edition |
ir.model.access.view.list.edition | ir.model.access | list | New |
ir_actions_todo_tree |
Config Wizard Steps | ir.actions.todo | list | New |
ir_cron_trigger_view_form |
ir.cron.trigger.view.form | ir.cron.trigger | form | New |
ir_cron_trigger_view_search |
ir.cron.trigger.view.search | ir.cron.trigger | search | New |
ir_cron_trigger_view_tree |
ir.cron.trigger.view.list | ir.cron.trigger | list | New |
ir_cron_view_calendar |
ir.cron | calendar | New | |
ir_cron_view_form |
ir.cron.view.form | ir.cron | form | Inherits base.view_server_action_form |
ir_cron_view_search |
ir.cron | search | New | |
ir_cron_view_tree |
ir.cron | list | New | |
ir_default_form_view |
ir.default form view | ir.default | form | New |
ir_default_search_view |
ir.default search view | ir.default | search | New |
ir_default_tree_view |
ir.default list view | ir.default | list | New |
ir_filters_view_edit_form |
ir.filters | form | Inherits base.ir_filters_view_form | |
ir_filters_view_form |
ir.filters | form | New | |
ir_filters_view_search |
ir.filters | search | New | |
ir_filters_view_tree |
ir.filters | list | New | |
ir_logging_form_view |
ir.logging | form | New | |
ir_logging_search_view |
ir.logging | search | New | |
ir_logging_tree_view |
ir.logging | list | New | |
ir_mail_server_form |
ir.mail_server | form | New | |
ir_mail_server_list |
ir.mail_server | list | New | |
ir_profile_view_form |
IR Profile Form | ir.profile | form | New |
ir_profile_view_list |
IR Profile List | ir.profile | list | New |
ir_profile_view_search |
IR Profile Search | ir.profile | search | New |
module_form |
ir.module.module.form | ir.module.module | form | New |
module_tree |
ir.module.module.list | ir.module.module | list | New |
module_view_kanban |
Apps Kanban | ir.module.module | kanban | New |
no_contact |
no_contact | ir.ui.view | qweb | New |
paperformat_view_form |
paper_format_view_form | report.paperformat | form | New |
paperformat_view_tree |
paper_format_view_tree | report.paperformat | list | New |
report_irmodeloverview |
report_irmodeloverview | ir.ui.view | qweb | New |
report_irmodulereference |
report_irmodulereference | ir.ui.view | qweb | New |
res_bank_view_search |
res.bank.view.search | res.bank | search | New |
res_config_settings_view_form |
res.config.settings.view.form | res.config.settings | form | New |
res_config_view_base |
res.config.view.base | res.config | form | New |
res_device_view_form |
res.device.form | res.device | form | New |
res_device_view_kanban |
res.device.kanban | res.device | kanban | New |
res_device_view_tree |
res.device.list | res.device | list | New |
res_lang_form |
res.lang.form | res.lang | form | New |
res_lang_search |
res.lang.search | res.lang | search | New |
res_lang_tree |
res.lang.list | res.lang | list | New |
res_partner_category_view_search |
res.partner.category.view.search | res.partner.category | search | New |
res_partner_industry_view_form |
Industry | res.partner.industry | form | New |
res_partner_industry_view_search |
res.partner.industry.view.search | res.partner.industry | search | New |
res_partner_industry_view_tree |
Industry | res.partner.industry | list | New |
res_partner_kanban_view |
res.partner.kanban | res.partner | kanban | New |
res_users_apikeys_view_kanban |
res.users.apikeys.kanban | res.users.apikeys | kanban | New |
res_users_identitycheck_view_form |
res.users.identitycheck | form | New | |
reset_view_arch_wizard_view |
Reset View Architecture | reset.view.arch.wizard | form | New |
sequence_view |
ir.sequence | form | New | |
sequence_view_tree |
ir.sequence | list | New | |
server_action_history_wizard_view |
Server Action History Wizard | server.action.history.wizard | form | New |
view_apikeys |
API Keys Listing | res.users.apikeys | list | New |
view_attachment_form |
ir.attachment | form | New | |
view_attachment_search |
ir.attachment | search | New | |
view_attachment_tree |
ir.attachment | list | New | |
view_base_import_language |
Import Translation | base.language.import | form | New |
view_base_language_install |
Load a Translation | base.language.install | form | New |
view_base_module_uninstall |
Uninstall module | base.module.uninstall | form | New |
view_base_module_update |
Module Update | base.module.update | form | New |
view_base_module_upgrade |
Module Upgrade | base.module.upgrade | form | New |
view_base_module_upgrade_install |
Module Upgrade Install | base.module.upgrade | form | New |
view_client_action_form |
ir.actions.client.form | ir.actions.client | form | New |
view_client_action_tree |
Client Actions | ir.actions.client | list | New |
view_company_form |
res.company.form | res.company | form | New |
view_company_tree |
res.company.list | res.company | list | New |
view_country_form |
res.country.form | res.country | form | New |
view_country_group_form |
res.country.group.form | res.country.group | form | New |
view_country_group_tree |
res.country.group.list | res.country.group | list | New |
view_country_search |
res.country.search | res.country | search | New |
view_country_state_form |
res.country.state.form | res.country.state | form | New |
view_country_state_search |
res.country.state.search | res.country.state | search | New |
view_country_state_tree |
res.country.state.list | res.country.state | list | New |
view_country_tree |
res.country.list | res.country | list | New |
view_currency_form |
res.currency.form | res.currency | form | New |
view_currency_kanban |
res.currency.kanban | res.currency | kanban | New |
view_currency_rate_form |
res.currency.rate.form | res.currency.rate | form | New |
view_currency_rate_search |
res.currency.rate.search | res.currency.rate | search | New |
view_currency_rate_tree |
res.currency.rate.list | res.currency.rate | list | New |
view_currency_search |
res.currency.search | res.currency | search | New |
view_currency_tree |
res.currency.list | res.currency | list | New |
view_decimal_precision_form |
Decimal Precision | decimal.precision | form | New |
view_decimal_precision_tree |
Decimal Precision List | decimal.precision | list | New |
view_default_groups_form |
res.groups default groups form | res.groups | form | New |
view_groups_form |
res.groups.form | res.groups | form | New |
view_groups_list |
res.groups.list | res.groups | list | New |
view_groups_search |
res.groups.search | res.groups | search | New |
view_ir_config_form |
ir.config_parameter | form | New | |
view_ir_config_list |
ir.config_parameter | list | New | |
view_ir_config_search |
ir.config_parameter | search | New | |
view_ir_mail_server_search |
ir.mail_server | search | New | |
view_model_constraint_form |
ir.model.constraint | form | New | |
view_model_constraint_list |
ir.model.constraint | list | New | |
view_model_constraint_search |
ir.model.constraint | search | New | |
view_model_data_form |
ir.model.data | form | New | |
view_model_data_list |
ir.model.data | list | New | |
view_model_data_search |
ir.model.data | search | New | |
view_model_fields_form |
ir.model.fields | form | New | |
view_model_fields_search |
ir.model.fields | search | New | |
view_model_fields_selection_form |
ir.model.fields.selection | form | New | |
view_model_fields_selection_search |
ir.model.fields.selection | search | New | |
view_model_fields_selection_tree |
ir.model.fields.selection | list | New | |
view_model_fields_tree |
ir.model.fields | list | New | |
view_model_form |
ir.model | form | New | |
view_model_menu_create |
Create Menu | wizard.ir.model.menu.create | form | New |
view_model_relation_form |
ir.model.relation | form | New | |
view_model_relation_list |
ir.model.relation | list | New | |
view_model_search |
ir.model | search | New | |
view_model_tree |
ir.model | list | New | |
view_module_category_form |
ir.module.category.form | ir.module.category | form | New |
view_module_filter |
ir.module.module.list.select | ir.module.module | search | New |
view_partner_address_form |
res.partner.form.address | res.partner | form | New |
view_partner_bank_form |
res.partner.bank.form | res.partner.bank | form | New |
view_partner_bank_search |
res.partner.bank.search | res.partner.bank | search | New |
view_partner_bank_tree |
res.partner.bank.list | res.partner.bank | list | New |
view_partner_category_form |
Contact Tags | res.partner.category | form | New |
view_partner_category_list |
Contact Tags | res.partner.category | list | New |
view_partner_form |
res.partner.form | res.partner | form | New |
view_partner_simple_form |
res.partner.simplified.form | res.partner | form | New |
view_partner_tree |
res.partner.list | res.partner | list | New |
view_res_bank_form |
res.bank.form | res.bank | form | New |
view_res_bank_tree |
res.bank.list | res.bank | list | New |
view_res_company_kanban |
res.company.kanban | res.company | kanban | New |
view_res_groups_privilege_form |
res.groups.privilege.form | res.groups.privilege | form | New |
view_res_groups_privilege_list |
res.groups.privilege.list | res.groups.privilege | list | New |
view_res_partner_filter |
res.partner.select | res.partner | search | New |
view_res_users_kanban |
res.users.kanban | res.users | kanban | New |
view_rule_form |
ir.rule | form | New | |
view_rule_search |
ir.rule | search | New | |
view_rule_tree |
ir.rule | list | New | |
view_sequence_search |
ir.sequence | search | New | |
view_server_action_form |
Server Action | ir.actions.server | form | New |
view_server_action_kanban |
Server Actions | ir.actions.server | kanban | New |
view_server_action_search |
ir.actions.server.search | ir.actions.server | search | New |
view_server_action_tree |
Server Actions | ir.actions.server | list | New |
view_users_form |
res.users.form | res.users | form | New |
view_users_form_simple_modif |
res.users.preferences.form | res.users | form | New |
view_users_search |
res.users.search | res.users | search | New |
view_users_simple_form |
res.users.simplified.form | res.users | form | New |
view_users_tree |
res.users.list | res.users | list | New |
view_view_custom_form |
ir.ui.view.custom | form | New | |
view_view_custom_search |
ir.ui.view.custom | search | New | |
view_view_custom_tree |
ir.ui.view.custom | list | New | |
view_view_form |
ir.ui.view | form | New | |
view_view_search |
ir.ui.view | search | New | |
view_view_tree |
ir.ui.view | list | New | |
view_window_action_form |
ir.actions.windows.form | ir.actions.act_window | form | New |
view_window_action_search |
ir.actions.windows.search | ir.actions.act_window | search | New |
view_window_action_tree |
ir.actions.windows.list | ir.actions.act_window | list | New |
wizard_lang_export |
Export Translations | base.language.export | form | New |
No HTTP endpoints found for this module.
No new fields.
Public methods (0)No public methods.
avatar_1024
Image
compute='_compute_avatar_1024'
args: 'Avatar 1024'
avatar_128
Image
compute='_compute_avatar_128'
args: 'Avatar 128'
avatar_1920
Image
compute='_compute_avatar_1920'
args: 'Avatar'
avatar_256
Image
compute='_compute_avatar_256'
args: 'Avatar 256'
avatar_512
Image
compute='_compute_avatar_512'
args: 'Avatar 512'
No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (6)get_empty_list_help(self, help_message: str) -> str
get_formview_action(self, access_uid=None)
get_formview_id(self, access_uid=None)
get_view(self, view_id=None, view_type='form', **options)
get_views(self, views, options=None)
view_header_get(self, view_id, view_type)
duration
Selection
string='Enable profiling for'
args: [('minutes_5', '5 Minutes'), ('hours_1', '1 Hour'), ('days_1', '1 Day'), ('months_1', '1 Month')]
expiration
Datetime
compute='_compute_expiration'
readonly=False
store=True
args: 'Enable profiling until'
submit(self)
data
Binary
attachment=False
readonly=True
args: 'File'
domain
Char
default='[]'
string='Model Domain'
export_type
Selection
default='module'
required=True
string='Export Type'
args: [('module', 'Module'), ('model', 'Model')]
format
Selection
default='po'
required=True
string='File Format'
args: [('csv', 'CSV File'), ('po', 'PO File'), ('tgz', 'TGZ Archive')]
lang
Selection
default=NEW_LANG_KEY
required=True
string='Language'
args: _get_languages
model_id
Many2one → ir.model
domain=[('transient', '=', False)]
string='Model to Export'
args: 'ir.model'
model_name
Char
related='model_id.model'
string='Model Name'
modules
Many2many → ir.module.module
domain=[('state', '=', 'installed')]
string='Apps To Export'
args: 'ir.module.module', 'rel_modules_langexport', 'wiz_id', 'module_id'
name
Char
readonly=True
args: 'File Name'
state
Selection
default='choose'
args: [('choose', 'choose'), ('get', 'get')]
act_getfile(self)
code
Char
help='ISO Language and Country code, e.g. en_US'
required=True
args: 'ISO Code'
data
Binary
attachment=False
required=True
args: 'File'
filename
Char
required=True
args: 'File Name'
name
Char
required=True
args: 'Language Name'
overwrite
Boolean
default=True
help='If you enable this option, existing translations (including custom ones) will be overwritten and replaced by those in this file'
args: 'Overwrite Existing Terms'
import_lang(self)
first_lang_id
Many2one → res.lang
compute='_compute_first_lang_id'
help='Used when the user only selects one language and is given the option to switch to it'
args: 'res.lang'
lang_ids
Many2many → res.lang
context={'active_test': False}
default=_default_lang_ids
required=True
args: 'res.lang', 'res_lang_install_rel', 'language_wizard_id', 'lang_id', 'Languages'
overwrite
Boolean
default=True
help='If you check this box, your customized translations will be overwritten and replaced by the official ones.'
args: 'Overwrite Existing Terms'
lang_install(self)
reload(self)
switch_lang(self)
impacted_module_ids
Many2many → ir.module.module
compute='_compute_impacted_module_ids'
string='Impacted modules'
args: 'ir.module.module'
model_ids
Many2many → ir.model
compute='_compute_model_ids'
string='Impacted data models'
args: 'ir.model'
module_ids
Many2many → ir.module.module
domain=[('state', 'in', ['installed', 'to upgrade', 'to install'])]
ondelete='cascade'
readonly=True
required=True
string='Module(s)'
args: 'ir.module.module'
show_all
Boolean
action_uninstall(self)
added
Integer
readonly=True
args: 'Number of modules added'
state
Selection
default='init'
readonly=True
args: [('init', 'init'), ('done', 'done')], 'Status'
updated
Integer
readonly=True
args: 'Number of modules updated'
action_module_open(self)
update_module(self)
module_info
Text
default=_default_module_info
readonly=True
args: 'Apps to Update'
config(self)
get_module_list(self)
get_view(self, view_id=None, view_type='form', **options)
upgrade_module(self)
upgrade_module_cancel(self)
current_line_id
Many2one → base.partner.merge.line
string='Current Line'
args: 'base.partner.merge.line'
dst_partner_id
Many2one → res.partner
string='Destination Contact'
args: 'res.partner'
exclude_contact
Boolean
exclude_journal_item
Boolean
group_by_email
Boolean
group_by_is_company
Boolean
group_by_name
Boolean
group_by_parent_id
Boolean
group_by_vat
Boolean
line_ids
One2many → base.partner.merge.line
string='Lines'
args: 'base.partner.merge.line', 'wizard_id'
maximum_group
Integer
number_group
Integer
readonly=True
args: 'Group of Contacts'
partner_ids
Many2many → res.partner
context={'active_test': False}
string='Contacts'
args: 'res.partner'
state
Selection
default='option'
readonly=True
required=True
string='State'
args: [('option', 'Option'), ('selection', 'Selection'), ('finished', 'Finished')]
action_merge(self)
action_skip(self)
action_start_automatic_process(self)
action_start_manual_process(self)
action_update_all_process(self)
default_get(self, fields)
parent_migration_process_cb(self)
aggr_ids
Char
required=True
args: 'Ids'
min_id
Integer
wizard_id
Many2one → base.partner.merge.automatic.wizard
No public methods.
confirm_password
Char
string='New Password (Confirmation)'
new_password
Char
string='New Password'
change_password(self)
new_passwd
Char
default=''
string='New Password'
user_id
Many2one → res.users
ondelete='cascade'
required=True
string='User'
args: 'res.users'
user_login
Char
readonly=True
string='User Login'
wizard_id
Many2one → change.password.wizard
ondelete='cascade'
required=True
string='Wizard'
args: 'change.password.wizard'
change_password_button(self)
user_ids
One2many → change.password.user
default=_default_user_ids
string='Users'
args: 'change.password.user', 'wizard_id'
change_password_button(self)
digits
Integer
default=2
required=True
args: 'Digits'
name
Char
required=True
args: 'Usage'
create(self, vals_list)
precision_get(self, application)
unlink(self)
write(self, vals)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
image_1024
Image
max_height=1024
max_width=1024
related='image_1920'
store=True
args: 'Image 1024'
image_128
Image
max_height=128
max_width=128
related='image_1920'
store=True
args: 'Image 128'
image_1920
Image
max_height=1920
max_width=1920
args: 'Image'
image_256
Image
max_height=256
max_width=256
related='image_1920'
store=True
args: 'Image 256'
image_512
Image
max_height=512
max_width=512
related='image_1920'
store=True
args: 'Image 512'
No public methods.
target
Selection
default='new'
required=True
string='Action Target'
args: [('new', 'New Window'), ('self', 'This Window'), ('download', 'Download')]
type
Char
default='ir.actions.act_url'
url
Text
required=True
string='Action URL'
No public methods.
cache
Boolean
default=True
help='If enabled, this action will cache the related data used in list, Kanban and form views with the aim to increase the loading speed'
string='Data Caching'
context
Char
default={}
help='Context dictionary as Python expression, empty by default (Default: {})'
required=True
string='Context Value'
domain
Char
help='Optional domain filtering of the destination data, as a Python expression'
string='Domain Value'
embedded_action_ids
One2many → ir.embedded.actions
compute='_compute_embedded_actions'
args: 'ir.embedded.actions'
filter
Boolean
group_ids
Many2many → res.groups
string='Groups'
args: 'res.groups', 'ir_act_window_group_rel', 'act_id', 'gid'
limit
Integer
default=80
help='Default limit for the list view'
mobile_view_mode
Char
default='kanban'
help="First view mode in mobile and small screen environments (default='kanban'). If it can't be found among available view modes, the same mode as for wider screens is used)"
res_id
Integer
help="Database ID of record to open in form view, when ``view_mode`` is set to 'form' only"
string='Record ID'
res_model
Char
help='Model name of the object to open in the view window'
required=True
string='Destination Model'
search_view_id
Many2one → ir.ui.view
string='Search View Ref.'
args: 'ir.ui.view'
target
Selection
default='current'
string='Target Window'
args: [('current', 'Current Window'), ('new', 'New Window'), ('fullscreen', 'Full Screen'), ('main', 'Main action of Current Window')]
type
Char
default='ir.actions.act_window'
usage
Char
help='Used to filter menu and home actions from the user form.'
string='Action Usage'
view_id
Many2one → ir.ui.view
ondelete='set null'
string='View Ref.'
args: 'ir.ui.view'
view_ids
One2many → ir.actions.act_window.view
string='No of Views'
args: 'ir.actions.act_window.view', 'act_window_id'
view_mode
Char
default='list,form'
help="Comma-separated list of allowed view modes, such as 'form', 'list', 'calendar', etc. (Default: list,form)"
required=True
views
Binary
compute='_compute_views'
help='This function field computes the ordered list of views that should be enabled when displaying the result of an action, federating view mode, views and reference view. The result is returned as an ordered list of pairs (view_id,view_mode).'
create(self, vals_list)
exists(self)
read(self, fields=None, load='_classic_read')
unlink(self)
act_window_id
Many2one → ir.actions.act_window
index='btree_not_null'
ondelete='cascade'
string='Action'
args: 'ir.actions.act_window'
multi
Boolean
help='If set to true, the action will not be displayed on the right toolbar of a form view.'
string='On Multiple Doc.'
sequence
Integer
view_id
Many2one → ir.ui.view
string='View'
args: 'ir.ui.view'
view_mode
Selection
required=True
string='View Type'
args: VIEW_TYPES
No public methods.
type
Char
default='ir.actions.act_window_close'
No public methods.
binding_model_id
Many2one → ir.model
help='Setting a value makes this action available in the sidebar for the given model.'
ondelete='cascade'
args: 'ir.model'
binding_type
Selection
default='action'
required=True
args: [('action', 'Action'), ('report', 'Report')]
binding_view_types
Char
default='list,form'
help
Html
help='Optional help text for the users with a description of the target view, such as its usage and purpose.'
string='Action Description'
translate=True
name
Char
required=True
string='Action Name'
translate=True
path
Char
string='Path to show in the URL'
type
Char
required=True
string='Action Type'
xml_id
Char
compute='_compute_xml_id'
string='External ID'
create(self, vals_list)
get_bindings(self, model_name)
unlink(self)
write(self, vals)
context
Char
default='{}'
help='Context dictionary as Python expression, empty by default (Default: {})'
required=True
string='Context Value'
params
Binary
compute='_compute_params'
help='Arguments sent to the client along with the view tag'
inverse='_inverse_params'
string='Supplementary arguments'
params_store
Binary
attachment=False
readonly=True
string='Params storage'
res_model
Char
help='Optional model, mostly used for needactions.'
string='Destination Model'
tag
Char
help='An arbitrary string, interpreted by the client according to its own needs and wishes. There is no central tag repository across clients.'
required=True
string='Client action tag'
target
Selection
default='current'
string='Target Window'
args: [('current', 'Current Window'), ('new', 'New Window'), ('fullscreen', 'Full Screen'), ('main', 'Main action of Current Window')]
type
Char
default='ir.actions.client'
No public methods.
attachment
Char
help='This is the filename of the attachment used to store the printing result. Keep empty to not save the printed reports. You can use a python expression with the object and time variables.'
string='Save as Attachment Prefix'
attachment_use
Boolean
help='If enabled, then the second time the user prints with same attachment name, it returns the previous report.'
string='Reload from Attachment'
binding_type
Selection
default='report'
domain
Char
help='If set, the action will only appear on records that matches the domain.'
string='Filter domain'
group_ids
Many2many → res.groups
string='Groups'
args: 'res.groups', 'res_groups_report_rel', 'uid', 'gid'
model
Char
required=True
string='Model Name'
model_id
Many2one → ir.model
compute='_compute_model_id'
search='_search_model_id'
string='Model'
args: 'ir.model'
multi
Boolean
help='If set to true, the action will not be displayed on the right toolbar of a form view.'
string='On Multiple Doc.'
paperformat_id
Many2one → report.paperformat
index='btree_not_null'
args: 'report.paperformat', 'Paper Format'
print_report_name
Char
help="This is the filename of the report going to download. Keep empty to not change the report filename. You can use a python expression with the 'object' and 'time' variables."
translate=True
args: 'Printed Report Name'
report_file
Char
help='The path to the main report file (depending on Report Type) or empty if the content is in another field'
readonly=False
required=False
store=True
string='Report File'
report_name
Char
required=True
string='Template Name'
report_type
Selection
default='qweb-pdf'
help='The type of the report that will be rendered, each one having its own rendering method. HTML means the report will be opened directly in your browser PDF means the report will be rendered using Wkhtmltopdf and downloaded by the user.'
required=True
args: [('qweb-html', 'HTML'), ('qweb-pdf', 'PDF'), ('qweb-text', 'Text')]
type
Char
default='ir.actions.report'
associated_view(self)
barcode(self, barcode_type, value, **kwargs)
create_action(self)
get_available_barcode_masks(self)
get_paperformat(self)
get_paperformat_by_xmlid(self, xml_id)
get_valid_action_reports(self, model, record_ids)
get_wkhtmltopdf_state(self)
report_action(self, docids, data=None, config=True)
retrieve_attachment(self, record)
unlink_action(self)
allowed_states
Json
compute='_compute_allowed_states'
string='Allowed states'
automated_name
Char
compute='_compute_name'
store=True
available_model_ids
Many2many → ir.model
compute='_compute_available_model_ids'
store=False
string='Available Models'
args: 'ir.model'
child_ids
One2many → ir.actions.server
copy=True
domain=<expr>
help='Child server actions that will be executed. Note that the last return returned action value will be used as global return value.'
string='Child Actions'
args: 'ir.actions.server', 'parent_id'
code
Text
groups='base.group_system'
help='Write Python code that the action will execute. Some variables are available for use; help about python expression is given in the help tab.'
string='Python Code'
crud_model_id
Many2one → ir.model
compute='_compute_crud_relations'
help='Specify which kind of record should be created. Set this field only to specify a different model than the base model.'
inverse='_set_crud_model_id'
readonly=False
store=True
string='Record to Create'
args: 'ir.model'
crud_model_name
Char
readonly=True
related='crud_model_id.model'
string='Target Model Name'
evaluation_type
Selection
change_default=True
default='value'
args: [('value', 'Update'), ('sequence', 'Sequence'), ('equation', 'Compute')], 'Value Type'
group_ids
Many2many → res.groups
help='Groups that can execute the server action. Leave empty to allow everybody.'
string='Allowed Groups'
args: 'res.groups', 'ir_act_server_group_rel', 'act_id', 'gid'
html_value
Html
ir_cron_ids
One2many → ir.cron
context={'active_test': False}
args: 'ir.cron', 'ir_actions_server_id', 'Scheduled Action'
link_field_id
Many2one → ir.model.fields
help='Specify a field used to link the newly created record on the record used by the server action.'
string='Link Field'
args: 'ir.model.fields'
model_id
Many2one → ir.model
help='Model on which the server action runs.'
index=True
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
model_name
Char
related='model_id.model'
string='Model Name'
name
Char
compute='_compute_name'
readonly=False
store=True
parent_id
Many2one → ir.actions.server
index=True
ondelete='cascade'
string='Parent Action'
args: 'ir.actions.server'
resource_ref
Reference
inverse='_set_resource_ref'
selection='_selection_target_model'
string='Record'
selection_value
Many2one → ir.model.fields.selection
domain='[("field_id", "=", update_field_id)]'
inverse='_set_selection_value'
ondelete='cascade'
string='Custom Value'
args: 'ir.model.fields.selection'
sequence
Integer
default=5
help='When dealing with multiple actions, the execution order is based on the sequence. Low number means high priority.'
sequence_id
Many2one → ir.sequence
string='Sequence to use'
args: 'ir.sequence'
show_code_history
Boolean
compute='_compute_show_code_history'
state
Selection
copy=True
help="Type of server action. The following values are available:\n- 'Update a Record': update the values of a record\n- 'Create Activity': create an activity (Discuss)\n- 'Send Email': post a message, a note or send an email (Discuss)\n- 'Send SMS': send SMS, log them on documents (SMS)- 'Add/Remove Followers': add or remove followers to a record (Discuss)\n- 'Create Record': create a new record with new values\n- 'Execute Code': a block of Python code that will be executed\n- 'Send Webhook Notification': send a POST request to an external system, also known as a Webhook\n- 'Multi Actions': define an action that triggers several other server actions\n"
required=True
string='Type'
args: [('object_write', 'Update Record'), ('object_create', 'Create Record'), ('object_copy', 'Duplicate Record'), ('code', 'Execute Code'), ('webhook', 'Send Webhook Notification'), ('multi', 'Multi Actions')]
type
Char
default='ir.actions.server'
update_boolean_value
Selection
default='true'
string='Boolean Value'
args: [('true', 'Yes (True)'), ('false', 'No (False)')]
update_field_id
Many2one → ir.model.fields
compute='_compute_crud_relations'
ondelete='cascade'
readonly=False
store=True
string='Field to Update'
args: 'ir.model.fields'
update_field_type
Selection
readonly=True
related='update_field_id.ttype'
update_m2m_operation
Selection
default='add'
string='Many2many Operations'
args: [('add', 'Adding'), ('remove', 'Removing'), ('set', 'Setting it to'), ('clear', 'Clearing it')]
update_path
Char
default=_default_update_path
help="Path to the field to update, e.g. 'partner_id.name'"
string='Field to Update Path'
update_related_model_id
Many2one → ir.model
compute='_compute_crud_relations'
readonly=False
store=True
args: 'ir.model'
usage
Selection
default='ir_actions_server'
required=True
string='Usage'
args: [('ir_actions_server', 'Server Action'), ('ir_cron', 'Scheduled Action')]
value
Text
help="For Python expressions, this field may hold a Python expression that can use the same values as for the code field on the server action,e.g. `env.user.name` to set the current user's name as the value or `record.id` to set the ID of the record on which the action is run.\n\nFor Static values, the value will be used directly without evaluation, e.g.`42` or `My custom name` or the selected record."
value_field_to_show
Selection
compute='_compute_value_field_to_show'
args: [('value', 'value'), ('html_value', 'html_value'), ('sequence_id', 'sequence_id'), ('resource_ref', 'reference'), ('update_boolean_value', 'update_boolean_value'), ('selection_value', 'selection_value')]
warning
Text
compute='_compute_warning'
recursive=True
string='Warning'
webhook_field_ids
Many2many → ir.model.fields
help="Fields to send in the POST request. The id and model of the record are always sent as '_id' and '_model'. The name of the action that triggered the webhook is always sent as '_name'."
string='Webhook Fields'
args: 'ir.model.fields', 'ir_act_server_webhook_field_rel', 'server_id', 'field_id'
webhook_sample_payload
Text
compute='_compute_webhook_sample_payload'
string='Sample Payload'
webhook_url
Char
help='URL to send the POST request to.'
string='Webhook URL'
action_open_parent_action(self)
action_open_scheduled_action(self)
copy_data(self, default=None)
create(self, vals_list)
create_action(self)
history_wizard_action(self)
run(self)
unlink_action(self)
write(self, vals)
action_id
Many2one → ir.actions.server
ondelete='cascade'
required=True
args: 'ir.actions.server'
code
Text
No public methods.
action_id
Many2one → ir.actions.actions
index=True
required=True
string='Action'
args: 'ir.actions.actions'
name
Char
sequence
Integer
default=10
state
Selection
default='open'
required=True
string='Status'
args: [('open', 'To Do'), ('done', 'Done')]
action_launch(self)
action_open(self)
create(self, vals_list)
ensure_one_open_todo(self)
unlink(self)
write(self, vals)
active
Boolean
default=True
string='active'
bundle
Char
required=True
string='Bundle name'
directive
Selection
default=APPEND_DIRECTIVE
selection=[(APPEND_DIRECTIVE, 'Append'), (PREPEND_DIRECTIVE, 'Prepend'), (AFTER_DIRECTIVE, 'After'), (BEFORE_DIRECTIVE, 'Before'), (REMOVE_DIRECTIVE, 'Remove'), (REPLACE_DIRECTIVE, 'Replace'), (INCLUDE_DIRECTIVE, 'Include')]
string='Directive'
name
Char
required=True
string='Name'
path
Char
required=True
string='Path (or glob pattern)'
sequence
Integer
default=DEFAULT_SEQUENCE
required=True
string='Sequence'
target
Char
string='Target'
create(self, vals_list)
unlink(self)
write(self, vals)
access_token
Char
groups='base.group_user'
args: 'Access Token'
checksum
Char
readonly=True
size=40
args: 'Checksum/SHA1'
company_id
Many2one → res.company
change_default=True
default=<expr>
string='Company'
args: 'res.company'
datas
Binary
compute='_compute_datas'
inverse='_inverse_datas'
string='File Content (base64)'
db_datas
Binary
attachment=False
args: 'Database Data'
description
Text
file_size
Integer
readonly=True
args: 'File Size'
index_content
Text
prefetch=False
readonly=True
args: 'Indexed Content'
mimetype
Char
readonly=True
args: 'Mime Type'
name
Char
required=True
args: 'Name'
public
Boolean
raw
Binary
compute='_compute_raw'
inverse='_inverse_raw'
string='File Content (raw)'
res_field
Char
res_id
Many2oneReference
model_field='res_model'
args: 'Resource ID'
res_model
Char
res_name
Char
compute='_compute_res_name'
args: 'Resource Name'
store_fname
Char
index=True
args: 'Stored Filename'
type
Selection
change_default=True
default='binary'
help='You can either upload a file from your computer or copy/paste an internet link to your file.'
required=True
string='Type'
args: [('url', 'URL'), ('binary', 'File')]
url
Char
index='btree_not_null'
size=1024
args: 'Url'
action_get(self)
check(self, mode, values=None)
copy_data(self, default=None)
create(self, vals_list)
create_unique(self, values_list)
force_storage(self)
generate_access_token(self)
get_serving_groups(self)
regenerate_assets_bundles(self)
unlink(self)
write(self, vals)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
key
Char
required=True
value
Text
required=True
create(self, vals_list)
get_param(self, key, default=False)
init(self, force=False)
set_param(self, key, value)
unlink(self)
unlink_default_parameters(self)
write(self, vals)
active
Boolean
default=True
cron_name
Char
compute='_compute_cron_name'
store=True
args: 'Name'
failure_count
Integer
default=0
help='The number of consecutive failures of this job. It is automatically reset on success.'
first_failure_date
Datetime
help='The first time the cron failed. It is automatically reset on success.'
string='First Failure Date'
interval_number
Integer
aggregator='avg'
default=1
help='Repeat every x.'
required=True
interval_type
Selection
default='months'
required=True
string='Interval Unit'
args: [('minutes', 'Minutes'), ('hours', 'Hours'), ('days', 'Days'), ('weeks', 'Weeks'), ('months', 'Months')]
ir_actions_server_id
Many2one → ir.actions.server
delegate=True
index=True
ondelete='restrict'
required=True
args: 'ir.actions.server', 'Server action'
lastcall
Datetime
help='Previous time the cron ran successfully, provided to the job through the context on the `lastcall` key'
string='Last Execution Date'
nextcall
Datetime
default=fields.Datetime.now
help='Next planned execution date for this job.'
required=True
string='Next Execution Date'
priority
Integer
aggregator=None
default=5
help='The priority of the job, as an integer: 0 means higher priority, 10 means lower priority.'
user_id
Many2one → res.users
default=<expr>
required=True
string='Scheduler User'
args: 'res.users'
action_open_parent_action(self)
action_open_scheduled_action(self)
create(self, vals_list)
default_get(self, fields)
method_direct_trigger(self)
toggle(self, model, domain)
write(self, vals)
cron_id
Many2one → ir.cron
index=True
ondelete='cascade'
required=True
args: 'ir.cron'
deactivate
Boolean
done
Integer
default=0
remaining
Integer
default=0
timed_out_counter
Integer
default=0
No public methods.
call_at
Datetime
index=True
required=True
cron_id
Many2one → ir.cron
index=True
ondelete='cascade'
required=True
args: 'ir.cron'
No public methods.
company_id
Many2one → res.company
help='If set, action binding only applies for this company'
index=True
ondelete='cascade'
string='Company'
args: 'res.company'
condition
Char
help='If set, applies the default upon condition.'
args: 'Condition'
field_id
Many2one → ir.model.fields
index=True
ondelete='cascade'
required=True
string='Field'
args: 'ir.model.fields'
json_value
Char
required=True
args: 'Default Value (JSON format)'
user_id
Many2one → res.users
help='If set, action binding only applies for this user.'
index=True
ondelete='cascade'
string='User'
args: 'res.users'
create(self, vals_list)
discard_records(self, records)
discard_values(self, model_name, field_name, values)
set(self, model_name, field_name, value, user_id=False, company_id=False, condition=False)
unlink(self)
write(self, vals)
No new fields.
Public methods (1)install_demo(self)
error
Char
string='Error'
module_id
Many2one → ir.module.module
required=True
string='Module'
args: 'ir.module.module'
wizard_id
Many2one → ir.demo_failure.wizard
No public methods.
failure_ids
One2many → ir.demo_failure
readonly=True
string='Demo Installation Failures'
args: 'ir.demo_failure', 'wizard_id'
failures_count
Integer
compute='_compute_failures_count'
done(self)
action_id
Many2one → ir.actions.actions
ondelete='cascade'
string='Action'
args: 'ir.actions.actions'
context
Char
default='{}'
help='Context dictionary as Python expression, empty by default (Default: {})'
default_view_mode
Char
help='Default view (if none, default view of the action is taken)'
string='Default View'
domain
Char
default='[]'
help='Domain applied to the active id of the parent model'
filter_ids
One2many → ir.filters
help='Default filter of the embedded action (if none, no filters)'
args: 'ir.filters', 'embedded_action_id'
groups_ids
Many2many → res.groups
help='Groups that can execute the embedded action. Leave empty to allow everybody.'
args: 'res.groups'
is_deletable
Boolean
compute='_compute_is_deletable'
is_visible
Boolean
compute='_compute_is_visible'
help='Computed field to check if the record should be visible according to the domain'
string='Embedded visibility'
name
Char
translate=True
parent_action_id
Many2one → ir.actions.act_window
ondelete='cascade'
required=True
string='Parent Action'
args: 'ir.actions.act_window'
parent_res_id
Integer
string='Active Parent Id'
parent_res_model
Char
required=True
string='Active Parent Model'
python_method
Char
help='Python method returning an action'
sequence
Integer
user_id
Many2one → res.users
help='User specific embedded action. If empty, shared embedded action'
ondelete='cascade'
string='User'
args: 'res.users'
create(self, vals_list)
export_fields
One2many → ir.exports.line
copy=True
string='Export ID'
args: 'ir.exports.line', 'export_id'
name
Char
string='Export Name'
resource
Char
index=True
No public methods.
export_id
Many2one → ir.exports
index=True
ondelete='cascade'
string='Export'
args: 'ir.exports'
name
Char
string='Field Name'
No public methods.
No new fields.
Public methods (3)db_id_for(self, model, field, subfield, value, savepoint)
for_model(self, model, fromtype=str, *, savepoint)
to_field(self, model, field, fromtype=str, *, savepoint)
action_id
Many2one → ir.actions.actions
help='The menu action this filter applies to. When left empty the filter applies to all menus for this model.'
ondelete='cascade'
string='Action'
args: 'ir.actions.actions'
active
Boolean
default=True
context
Text
default='{}'
required=True
domain
Text
default='[]'
required=True
embedded_action_id
Many2one → ir.embedded.actions
help='The embedded action this filter is applied to'
index='btree_not_null'
ondelete='cascade'
args: 'ir.embedded.actions'
embedded_parent_res_id
Integer
help='id of the record the filter should be applied to. Only used in combination with embedded actions'
is_default
Boolean
string='Default Filter'
model_id
Selection
required=True
selection='_list_all_models'
string='Model'
name
Char
required=True
string='Filter Name'
sort
Char
default='[]'
required=True
user_ids
Many2many → res.users
help='The users the filter is shared with. If empty, the filter is shared with all users.'
ondelete='cascade'
string='Users'
args: 'res.users'
copy_data(self, default=None)
create_filter(self, vals)
get_filters(self, model, action_id=None, embedded_action_id=None, embedded_parent_res_id=None)
write(self, vals)
No new fields.
Public methods (1)routing_map(self, key=None)
create_date
Datetime
readonly=True
string='Created on'
create_uid
Integer
readonly=True
string='Created by'
dbname
Char
index=True
string='Database Name'
func
Char
required=True
string='Function'
level
Char
index=True
line
Char
required=True
message
Text
required=True
name
Char
required=True
path
Char
required=True
type
Selection
index=True
required=True
args: [('client', 'Client'), ('server', 'Server')]
write_date
Datetime
readonly=True
string='Last Updated on'
write_uid
Integer
readonly=True
string='Last Updated by'
init(self)
active
Boolean
default=True
from_filter
Char
help='Comma-separated list of addresses or domains for which this server can be used.\ne.g.: "notification@odoo.com" or "odoo.com"'
args: 'FROM Filtering'
max_email_size
Float
string='Max Email Size'
name
Char
index=True
required=True
string='Name'
sequence
Integer
default=10
help='When no specific mail server is requested for a mail, the highest priority one is used. Default priority is 10 (smaller number = higher priority)'
string='Priority'
smtp_authentication
Selection
default='login'
required=True
string='Authenticate with'
args: [('login', 'Username'), ('certificate', 'SSL Certificate'), ('cli', 'Command Line Interface')]
smtp_authentication_info
Text
compute='_compute_smtp_authentication_info'
args: 'Authentication Info'
smtp_debug
Boolean
help='If enabled, the full output of SMTP sessions will be written to the server log at DEBUG level (this is very verbose and may include confidential info!)'
string='Debugging'
smtp_encryption
Selection
default='none'
help='Choose the connection encryption scheme:\n- None: SMTP sessions are done in cleartext.\n- TLS (STARTTLS): TLS encryption is requested at start of SMTP session (Recommended)\n- SSL/TLS: SMTP sessions are encrypted with SSL/TLS through a dedicated port (default: 465)\n\nChoose an additionnal variant for SSL or TLS:\n- encryption and validation: encrypt the data and authentify the server using its SSL certificate (Recommended)\n- encryption only: encrypt the data but skip server authentication'
required=True
string='Connection Encryption'
args: [('none', 'None'), ('starttls_strict', 'TLS (STARTTLS), encryption and validation'), ('starttls', 'TLS (STARTTLS), encryption only'), ('ssl_strict', 'SSL/TLS, encryption and validation'), ('ssl', 'SSL/TLS, encryption only')]
smtp_host
Char
help='Hostname or IP of SMTP server'
string='SMTP Server'
smtp_pass
Char
groups='base.group_system'
help='Optional password for SMTP authentication'
string='Password'
smtp_port
Integer
default=25
help='SMTP Port. Usually 465 for SSL, and 25 or 587 for other cases.'
string='SMTP Port'
smtp_ssl_certificate
Binary
attachment=False
groups='base.group_system'
help='SSL certificate used for authentication'
args: 'SSL Certificate'
smtp_ssl_private_key
Binary
attachment=False
groups='base.group_system'
help='SSL private key used for authentication'
args: 'SSL Private Key'
smtp_user
Char
groups='base.group_system'
help='Optional username for SMTP authentication'
string='Username'
action_retrieve_max_email_size(self)
send_email(self, message, mail_server_id=None, smtp_server=None, smtp_port=None, smtp_user=None, smtp_password=None, smtp_encryption=None, smtp_ssl_certificate=None, smtp_ssl_private_key=None, smtp_debug=False, smtp_session=None)
test_smtp_connection(self, autodetect_max_email_size=False)
write(self, vals)
abstract
Boolean
string='Abstract Model'
access_ids
One2many → ir.model.access
string='Access'
args: 'ir.model.access', 'model_id'
count
Integer
compute='_compute_count'
help='Total number of records in this model'
string='Count (Incl. Archived)'
field_id
One2many → ir.model.fields
copy=True
default=_default_field_id
required=True
string='Fields'
args: 'ir.model.fields', 'model_id'
fold_name
Char
help='In a Kanban view where columns are records of this model, the value of this (boolean) field determines which column should be folded by default.'
string='Fold Field'
info
Text
string='Information'
inherited_model_ids
Many2many → ir.model
compute='_inherited_models'
help='The list of models that extends the current model.'
string='Inherited models'
args: 'ir.model'
model
Char
default='x_'
required=True
modules
Char
compute='_in_modules'
help='List of modules in which the object is defined or inherited'
string='In Apps'
name
Char
required=True
string='Model Description'
translate=True
order
Char
default='id'
help='SQL expression for ordering records in the model; e.g. "x_sequence asc, id desc"'
required=True
string='Order'
rule_ids
One2many → ir.rule
string='Record Rules'
args: 'ir.rule', 'model_id'
state
Selection
default='manual'
readonly=True
string='Type'
args: [('manual', 'Custom Object'), ('base', 'Base Object')]
transient
Boolean
string='Transient Model'
view_ids
One2many → ir.ui.view
compute='_view_ids'
string='Views'
args: 'ir.ui.view'
create(self, vals_list)
name_create(self, name)
unlink(self)
write(self, vals)
active
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).'
group_id
Many2one → res.groups
index=True
ondelete='restrict'
string='Group'
args: 'res.groups'
model_id
Many2one → ir.model
index=True
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
name
Char
index=True
required=True
perm_create
Boolean
string='Create Access'
perm_read
Boolean
string='Read Access'
perm_unlink
Boolean
string='Delete Access'
perm_write
Boolean
string='Write Access'
call_cache_clearing_methods(self)
check(self, model, mode='read', raise_exception=True)
create(self, vals_list)
group_names_with_access(self, model_name, access_mode)
unlink(self)
write(self, vals)
definition
Char
help='PostgreSQL constraint definition'
readonly=True
message
Char
help='Error message returned when the constraint is violated.'
translate=True
model
Many2one → ir.model
index=True
ondelete='cascade'
readonly=True
required=True
args: 'ir.model'
module
Many2one → ir.module.module
index=True
ondelete='cascade'
readonly=True
required=True
args: 'ir.module.module'
name
Char
help='PostgreSQL constraint or foreign key name.'
index=True
readonly=True
required=True
string='Constraint'
type
Char
help='Type of the constraint: `f` for a foreign key, `u` for other constraints.'
readonly=True
required=True
size=1
string='Constraint Type'
copy_data(self, default=None)
unlink(self)
complete_name
Char
compute='_compute_complete_name'
string='Complete ID'
model
Char
required=True
string='Model Name'
module
Char
default=''
required=True
name
Char
help='External Key/Identifier that can be used for data integration with third-party systems'
required=True
string='External Identifier'
noupdate
Boolean
default=False
string='Non Updatable'
reference
Char
compute='_compute_reference'
readonly=True
store=False
string='Reference'
res_id
Many2oneReference
help='ID of the target record in the database'
model_field='model'
string='Record ID'
check_object_reference(self, module, xml_id, raise_on_access_error=False)
copy_data(self, default=None)
create(self, vals_list)
toggle_noupdate(self, model, res_id)
unlink(self)
write(self, vals)
column1
Char
help='Column referring to the record in the model table'
string='Column 1'
column2
Char
help='Column referring to the record in the comodel table'
string='Column 2'
company_dependent
Boolean
help='Whether values for this field is company dependent'
readonly=True
string='Company Dependent'
compute
Text
help="Code to compute the value of the field.\nIterate on the recordset 'self' and assign the field's value:\n\n for record in self:\n record['size'] = len(record.name)\n\nModules time, datetime, dateutil are available."
copied
Boolean
compute='_compute_copied'
help='Whether the value is copied when duplicating a record.'
readonly=False
store=True
string='Copied'
currency_field
Char
help='Name of the Many2one field holding the res.currency'
string='Currency field'
depends
Char
help='Dependencies of compute method; a list of comma-separated field names, like\n\n name, partner_id.name'
string='Dependencies'
domain
Char
default='[]'
help="The optional domain to restrict possible values for relationship fields, specified as a Python expression defining a list of triplets. For example: [('color','=','red')]"
field_description
Char
default=''
required=True
string='Field Label'
translate=True
group_expand
Boolean
help="If checked, all the records of the target model will be included\nin a grouped result (e.g. 'Group By' filters, Kanban columns, etc.).\nNote that it can significantly reduce performance if the target model\nof the field contains a lot of records; usually used on models with\nfew records (e.g. Stages, Job Positions, Event Types, etc.)."
string='Expand Groups'
groups
Many2many → res.groups
help
Text
string='Field Help'
translate=True
index
Boolean
string='Indexed'
model
Char
help='The technical name of the model this field belongs to'
index=True
required=True
string='Model Name'
model_id
Many2one → ir.model
help='The model this field belongs to'
index=True
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
modules
Char
compute='_in_modules'
help='List of modules in which the field is defined'
string='In Apps'
name
Char
default='x_'
index=True
required=True
string='Field Name'
on_delete
Selection
default='set null'
help='On delete property for many2one fields'
string='On Delete'
args: [('cascade', 'Cascade'), ('set null', 'Set NULL'), ('restrict', 'Restrict')]
readonly
Boolean
related
Char
help='The corresponding related field, if any. This must be a dot-separated list of field names.'
string='Related Field Definition'
related_field_id
Many2one → ir.model.fields
compute='_compute_related_field_id'
ondelete='cascade'
store=True
string='Related Field'
args: 'ir.model.fields'
relation
Char
help='For relationship fields, the technical name of the target model'
string='Related Model'
relation_field
Char
help='For one2many fields, the field on the target model that implement the opposite many2one relationship'
relation_field_id
Many2one → ir.model.fields
compute='_compute_relation_field_id'
ondelete='cascade'
store=True
string='Relation field'
args: 'ir.model.fields'
relation_table
Char
help='Used for custom many2many fields to define a custom relation table name'
required
Boolean
sanitize
Boolean
default=True
string='Sanitize HTML'
sanitize_attributes
Boolean
default=True
string='Sanitize HTML Attributes'
sanitize_form
Boolean
default=True
string='Sanitize HTML Form'
sanitize_overridable
Boolean
default=False
string='Sanitize HTML overridable'
sanitize_style
Boolean
default=False
string='Sanitize HTML Style'
sanitize_tags
Boolean
default=True
string='Sanitize HTML Tags'
selectable
Boolean
default=True
selection
Char
compute='_compute_selection'
inverse='_inverse_selection'
string='Selection Options (Deprecated)'
selection_ids
One2many → ir.model.fields.selection
copy=True
string='Selection Options'
args: 'ir.model.fields.selection', 'field_id'
size
Integer
state
Selection
default='manual'
index=True
readonly=True
required=True
string='Type'
args: [('manual', 'Custom Field'), ('base', 'Base Field')]
store
Boolean
default=True
help='Whether the value is stored in the database.'
string='Stored'
strip_classes
Boolean
default=False
string='Strip Class Attribute'
strip_style
Boolean
default=False
string='Strip Style Attribute'
translate
Selection
help='Whether values for this field can be translated (enables the translation mechanism for that field)'
string='Translatable'
args: [('standard', 'Translate as a whole'), ('html_translate', 'Translate HTML terms'), ('xml_translate', 'Translate XML terms')]
ttype
Selection
required=True
selection=FIELD_TYPES
string='Field Type'
create(self, vals_list)
get_field_help(self, model_name)
get_field_selection(self, model_name, field_name)
get_field_string(self, model_name)
unlink(self)
write(self, vals)
field_id
Many2one → ir.model.fields
domain=[('ttype', 'in', ['selection', 'reference'])]
index=True
ondelete='cascade'
required=True
args: 'ir.model.fields'
name
Char
required=True
translate=True
sequence
Integer
default=1000
value
Char
required=True
create(self, vals_list)
unlink(self)
write(self, vals)
model_id
Many2one → ir.model
ondelete='cascade'
required=True
args: 'ir.model'
parent_field_id
Many2one → ir.model.fields
ondelete='cascade'
args: 'ir.model.fields'
parent_id
Many2one → ir.model
ondelete='cascade'
required=True
args: 'ir.model'
No public methods.
create_date
Datetime
model
Many2one → ir.model
index=True
ondelete='cascade'
required=True
args: 'ir.model'
module
Many2one → ir.module.module
index=True
ondelete='cascade'
required=True
args: 'ir.module.module'
name
Char
help='PostgreSQL table name implementing a many2many relation.'
index=True
required=True
string='Relation Name'
write_date
Datetime
No public methods.
child_ids
One2many → ir.module.category
string='Child Applications'
args: 'ir.module.category', 'parent_id'
description
Text
string='Description'
translate=True
exclusive
Boolean
string='Exclusive'
module_ids
One2many → ir.module.module
string='Modules'
args: 'ir.module.module', 'category_id'
name
Char
required=True
string='Name'
translate=True
parent_id
Many2one → ir.module.category
index=True
string='Parent Application'
args: 'ir.module.category'
privilege_ids
One2many → res.groups.privilege
string='Privileges'
args: 'res.groups.privilege', 'category_id'
sequence
Integer
string='Sequence'
visible
Boolean
default=True
string='Visible'
xml_id
Char
compute='_compute_xml_id'
string='External ID'
No public methods.
application
Boolean
readonly=True
args: 'Application'
author
Char
readonly=True
args: 'Author'
auto_install
Boolean
help='An auto-installable module is automatically installed by the system when all its dependencies are satisfied. If the module has no dependency, it is always installed.'
args: 'Automatic Installation'
category_id
Many2one → ir.module.category
index=True
readonly=True
string='Category'
args: 'ir.module.category'
contributors
Text
readonly=True
args: 'Contributors'
country_ids
Many2many → res.country
demo
Boolean
default=False
readonly=True
args: 'Demo Data'
dependencies_id
One2many → ir.module.module.dependency
readonly=True
string='Dependencies'
args: 'ir.module.module.dependency', 'module_id'
description
Text
readonly=True
translate=True
args: 'Description'
description_html
Html
compute='_get_desc'
args: 'Description HTML'
exclusion_ids
One2many → ir.module.module.exclusion
readonly=True
string='Exclusions'
args: 'ir.module.module.exclusion', 'module_id'
has_iap
Boolean
compute='_compute_has_iap'
icon
Char
icon_flag
Char
compute='_get_icon_image'
string='Flag'
icon_image
Binary
compute='_get_icon_image'
string='Icon'
installed_version
Char
compute='_get_latest_version'
args: 'Latest Version'
latest_version
Char
readonly=True
args: 'Installed Version'
license
Selection
default='LGPL-3'
readonly=True
string='License'
args: [('GPL-2', 'GPL Version 2'), ('GPL-2 or any later version', 'GPL-2 or later version'), ('GPL-3', 'GPL Version 3'), ('GPL-3 or any later version', 'GPL-3 or later version'), ('AGPL-3', 'Affero GPL-3'), ('LGPL-3', 'LGPL Version 3'), ('Other OSI approved licence', 'Other OSI Approved License'), ('OEEL-1', 'Odoo Enterprise Edition License v1.0'), ('OPL-1', 'Odoo Proprietary License v1.0'), ('Other proprietary', 'Other Proprietary')]
maintainer
Char
readonly=True
args: 'Maintainer'
menus_by_module
Text
compute='_get_views'
store=True
string='Menus'
name
Char
readonly=True
required=True
args: 'Technical Name'
published_version
Char
readonly=True
args: 'Published Version'
reports_by_module
Text
compute='_get_views'
store=True
string='Reports'
sequence
Integer
default=100
args: 'Sequence'
shortdesc
Char
readonly=True
translate=True
args: 'Module Name'
state
Selection
default='uninstallable'
index=True
readonly=True
string='Status'
args: STATES
summary
Char
readonly=True
translate=True
args: 'Summary'
to_buy
Boolean
default=False
args: 'Odoo Enterprise Module'
url
Char
readonly=True
args: 'URL'
views_by_module
Text
compute='_get_views'
store=True
string='Views'
website
Char
readonly=True
args: 'Website'
button_immediate_install(self)
button_immediate_uninstall(self)
button_immediate_upgrade(self)
button_install(self)
button_reset_state(self)
button_uninstall(self)
button_uninstall_wizard(self)
button_upgrade(self)
check_external_dependencies(self, module_name, newstate='to install')
check_module_update(self)
create(self, vals_list)
downstream_dependencies(self, known_deps=None, exclude_states=('uninstalled', 'uninstallable', 'to remove'))
get_module_info(cls, name)
get_values_from_terp(terp)
module_uninstall(self)
next(self)
search_panel_select_range(self, field_name, **kwargs)
unlink(self)
update_list(self)
upstream_dependencies(self, known_deps=None, exclude_states=('installed', 'uninstallable', 'to remove'))
auto_install_required
Boolean
default=True
help='Whether this dependency blocks automatic installation of the dependent'
depend_id
Many2one → ir.module.module
compute='_compute_depend'
search='_search_depend'
args: 'ir.module.module', 'Dependency'
module_id
Many2one → ir.module.module
ondelete='cascade'
args: 'ir.module.module', 'Module'
name
Char
index=True
state
Selection
compute='_compute_state'
string='Status'
args: DEP_STATES
all_dependencies(self, module_names)
exclusion_id
Many2one → ir.module.module
compute='_compute_exclusion'
search='_search_exclusion'
args: 'ir.module.module', 'Exclusion Module'
module_id
Many2one → ir.module.module
ondelete='cascade'
args: 'ir.module.module', 'Module'
name
Char
index=True
state
Selection
compute='_compute_state'
string='Status'
args: DEP_STATES
No public methods.
config_url
Text
compute='_compute_config_url'
args: 'Open profiles config'
cpu_duration
Float
digits=(9, 3)
help='CPU clock (not including other processes or SQL)'
args: 'CPU Duration'
create_date
Datetime
duration
Float
digits=(9, 3)
help='Real elapsed time'
args: 'Duration'
entry_count
Integer
init_stack_trace
Text
prefetch=False
args: 'Initial stack trace'
name
Char
others
Text
prefetch=False
args: 'others'
qweb
Text
prefetch=False
args: 'Qweb'
session
Char
index=True
args: 'Session'
speedscope
Binary
compute='_compute_speedscope'
args: 'Speedscope'
speedscope_url
Text
compute='_compute_speedscope_url'
args: 'Open'
sql
Text
prefetch=False
args: 'Sql'
sql_count
Integer
traces_async
Text
prefetch=False
args: 'Traces Async'
traces_sync
Text
prefetch=False
args: 'Traces Sync'
action_view_speedscope(self)
set_profiling(self, profile=None, collectors=None, params=None)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (5)attributes(self, record, field_name, options, values=None)
get_available_options(self)
record_to_html(self, record, field_name, options)
user_lang(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options=None)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)record_to_html(self, record, field_name, options)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
active
Boolean
default=True
help='If you uncheck the active field, it will disable the record rule without deleting it (if you delete a native record rule, it may be re-created when you reload the module).'
domain_force
Text
string='Domain'
groups
Many2many → res.groups
ondelete='restrict'
args: 'res.groups', 'rule_group_rel', 'rule_group_id', 'group_id'
model_id
Many2one → ir.model
index=True
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
name
Char
perm_create
Boolean
default=True
string='Create'
perm_read
Boolean
default=True
string='Read'
perm_unlink
Boolean
default=True
string='Delete'
perm_write
Boolean
default=True
string='Write'
create(self, vals_list)
unlink(self)
write(self, vals)
active
Boolean
default=True
code
Char
string='Sequence Code'
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
date_range_ids
One2many → ir.sequence.date_range
string='Subsequences'
args: 'ir.sequence.date_range', 'sequence_id'
implementation
Selection
default='standard'
help="While assigning a sequence number to a record, the 'no gap' sequence implementation ensures that each previous sequence number has been assigned already. While this sequence implementation will not skip any sequence number upon assignment, there can still be gaps in the sequence if records are deleted. The 'no gap' implementation is slower than the standard one."
required=True
string='Implementation'
args: [('standard', 'Standard'), ('no_gap', 'No gap')]
name
Char
required=True
number_increment
Integer
default=1
help='The next number of the sequence will be incremented by this number'
required=True
string='Step'
number_next
Integer
default=1
help='Next number of this sequence'
required=True
string='Next Number'
number_next_actual
Integer
compute='_get_number_next_actual'
help='Next number that will be used. This number can be incremented frequently so the displayed value might already be obsolete'
inverse='_set_number_next_actual'
string='Actual Next Number'
padding
Integer
default=0
help="Odoo will automatically adds some '0' on the left of the 'Next Number' to get the required padding size."
required=True
string='Sequence Size'
prefix
Char
help='Prefix value of the record for the sequence'
trim=False
suffix
Char
help='Suffix value of the record for the sequence'
trim=False
use_date_range
Boolean
string='Use subsequences per date_range'
create(self, vals_list)
get_next_char(self, number_next)
next_by_code(self, sequence_code, sequence_date=None)
next_by_id(self, sequence_date=None)
unlink(self)
write(self, vals)
date_from
Date
required=True
string='From'
date_to
Date
required=True
string='To'
number_next
Integer
default=1
help='Next number of this sequence'
required=True
string='Next Number'
number_next_actual
Integer
compute='_get_number_next_actual'
help='Next number that will be used. This number can be incremented frequently so the displayed value might already be obsolete'
inverse='_set_number_next_actual'
string='Actual Next Number'
sequence_id
Many2one → ir.sequence
ondelete='cascade'
required=True
string='Main Sequence'
args: 'ir.sequence'
create(self, vals_list)
default_get(self, fields)
unlink(self)
write(self, vals)
action
Reference
selection=[('ir.actions.report', 'ir.actions.report'), ('ir.actions.act_window', 'ir.actions.act_window'), ('ir.actions.act_url', 'ir.actions.act_url'), ('ir.actions.server', 'ir.actions.server'), ('ir.actions.client', 'ir.actions.client')]
active
Boolean
default=True
child_id
One2many → ir.ui.menu
string='Child IDs'
args: 'ir.ui.menu', 'parent_id'
complete_name
Char
compute='_compute_complete_name'
recursive=True
string='Full Path'
group_ids
Many2many → res.groups
help="If you have groups, the visibility of this menu will be based on these groups. If this field is empty, Odoo will compute visibility based on the related object's read access."
string='Groups'
args: 'res.groups', 'ir_ui_menu_group_rel', 'menu_id', 'gid'
name
Char
required=True
string='Menu'
translate=True
parent_id
Many2one → ir.ui.menu
index=True
ondelete='restrict'
string='Parent Menu'
args: 'ir.ui.menu'
parent_path
Char
index=True
sequence
Integer
default=10
web_icon
Char
string='Web Icon File'
web_icon_data
Binary
attachment=True
string='Web Icon Image'
copy(self, default=None)
create(self, vals_list)
get_user_roots(self)
load_menus(self, debug)
load_menus_root(self)
unlink(self)
write(self, vals)
active
Boolean
default=True
help='If this view is inherited,\n* if True, the view always extends its parent\n* if False, the view currently does not extend its parent but can be enabled\n '
arch
Text
compute='_compute_arch'
help='This field should be used when accessing view arch. It will use translation.\n Note that it will read `arch_db` or `arch_fs` if in dev-xml mode.'
inverse='_inverse_arch'
string='View Architecture'
arch_base
Text
compute='_compute_arch_base'
help='This field is the same as `arch` field without translations'
inverse='_inverse_arch_base'
string='Base View Architecture'
arch_db
Text
help='This field stores the view arch.'
string='Arch Blob'
translate=xml_translate
arch_fs
Char
help='File from where the view originates.\n Useful to (hard) reset broken views or to read arch from file in dev-xml mode.'
string='Arch Filename'
arch_prev
Text
help='This field will save the current `arch_db` before writing on it.\n Useful to (soft) reset a broken view.'
string='Previous View Architecture'
arch_updated
Boolean
string='Modified Architecture'
group_ids
Many2many → res.groups
help='If this field is empty, the view applies to all users. Otherwise, the view applies to the users of those groups only.'
string='Groups'
args: 'res.groups', 'ir_ui_view_group_rel', 'view_id', 'group_id'
inherit_children_ids
One2many → ir.ui.view
string='Views which inherit from this one'
args: 'ir.ui.view', 'inherit_id'
inherit_id
Many2one → ir.ui.view
index=True
ondelete='restrict'
string='Inherited View'
args: 'ir.ui.view'
invalid_locators
Json
compute='_compute_invalid_locators'
key
Char
index='btree_not_null'
mode
Selection
default='primary'
help="Only applies if this view inherits from an other one (inherit_id is not False/Null).\n\n* if extension (default), if this view is requested the closest primary view\nis looked up (via inherit_id), then all views inheriting from it with this\nview's model are applied\n* if primary, the closest primary view is fully resolved (even if it uses a\ndifferent model than this one), then this view's inheritance specs\n(<xpath/>) are applied, and the result is used as if it were this view's\nactual arch.\n"
required=True
string='View inheritance mode'
args: [('primary', 'Base view'), ('extension', 'Extension View')]
model
Char
index=True
model_data_id
Many2one → ir.model.data
compute='_compute_model_data_id'
search='_search_model_data_id'
string='Model Data'
args: 'ir.model.data'
model_id
Many2one → ir.model
compute='_compute_model_id'
inverse='_inverse_compute_model_id'
string='Model of the view'
args: 'ir.model'
name
Char
required=True
string='View Name'
priority
Integer
default=16
required=True
string='Sequence'
type
Selection
string='View Type'
args: [('list', 'List'), ('form', 'Form'), ('graph', 'Graph'), ('pivot', 'Pivot'), ('calendar', 'Calendar'), ('kanban', 'Kanban'), ('search', 'Search'), ('qweb', 'QWeb')]
warning_info
Html
compute='_compute_warning_info'
string='Warning information'
xml_id
Char
compute='_compute_xml_id'
help='ID of the view defined in xml file'
string='External ID'
apply_inheritance_specs(self, source, specs_tree, pre_locate=None)
copy_data(self, default=None)
create(self, vals_list)
default_view(self, model, view_type)
distribute_branding(self, e, branding=None, parent_xpath='', index_map=ConstantMapping(1))
get_combined_arch(self)
inherit_branding(self, specs_tree)
is_node_branded(self, node)
locate_node(self, arch, spec)
postprocess_and_fields(self, node, model=None, **options)
render_public_asset(self, template, values=None)
reset_arch(self, mode='soft')
unlink(self)
write(self, vals)
arch
Text
required=True
string='View Architecture'
ref_id
Many2one → ir.ui.view
index=True
ondelete='cascade'
required=True
string='Original View'
args: 'ir.ui.view'
user_id
Many2one → res.users
index=True
ondelete='cascade'
required=True
string='User'
args: 'res.users'
No public methods.
properties_definition
PropertiesDefinition
properties_field_id
Many2one → ir.model.fields
ondelete='cascade'
required=True
args: 'ir.model.fields'
write(self, vals)
properties
Properties
copy=True
definition='properties_base_definition_id.properties_definition'
string='Properties'
properties_base_definition_id
Many2one → properties.base.definition
compute='_compute_properties_base_definition_id'
search='_search_properties_base_definition_id'
args: 'properties.base.definition'
create(self, vals_list)
No new fields.
Public methods (0)No public methods.
image
Char
string='Preview image src'
name
Char
pdf
Char
string='Preview pdf src'
sequence
Integer
default=50
view_id
Many2one → ir.ui.view
required=True
args: 'ir.ui.view', 'Document Template'
No public methods.
css_margins
Boolean
default=False
args: 'Use css margins'
default
Boolean
disable_shrinking
Boolean
dpi
Integer
default=90
required=True
args: 'Output DPI'
format
Selection
default='A4'
help='Select Proper Paper size'
args: <expr>, 'Paper size'
header_line
Boolean
default=False
args: 'Display a header line'
header_spacing
Integer
default=35
args: 'Header spacing'
margin_bottom
Float
default=20
args: 'Bottom Margin (mm)'
margin_left
Float
default=7
args: 'Left Margin (mm)'
margin_right
Float
default=7
args: 'Right Margin (mm)'
margin_top
Float
default=40
args: 'Top Margin (mm)'
name
Char
required=True
args: 'Name'
orientation
Selection
default='Landscape'
args: [('Landscape', 'Landscape'), ('Portrait', 'Portrait')], 'Orientation'
page_height
Integer
default=False
args: 'Page height (mm)'
page_width
Integer
default=False
args: 'Page width (mm)'
print_page_height
Float
compute='_compute_print_page_size'
args: 'Print page height (mm)'
print_page_width
Float
compute='_compute_print_page_size'
args: 'Print page width (mm)'
report_ids
One2many → ir.actions.report
help='Explicitly associated reports'
args: 'ir.actions.report', 'paperformat_id', 'Associated reports'
No public methods.
active
Boolean
default=True
bic
Char
help='Sometimes called BIC or Swift.'
index=True
args: 'Bank Identifier Code'
city
Char
country
Many2one → res.country
country_code
Char
related='country.code'
string='Country Code'
email
Char
name
Char
required=True
phone
Char
state
Many2one → res.country.state
domain="[('country_id', '=?', country)]"
args: 'res.country.state', 'Fed. State'
street
Char
street2
Char
zip
Char
create(self, vals_list)
write(self, vals)
active
Boolean
default=True
all_child_ids
One2many → res.company
context={'active_test': False}
args: 'res.company', 'parent_id'
bank_ids
One2many
readonly=False
related='partner_id.bank_ids'
child_ids
One2many → res.company
string='Branches'
args: 'res.company', 'parent_id'
city
Char
compute='_compute_address'
inverse='_inverse_city'
color
Integer
compute='_compute_color'
inverse='_inverse_color'
company_details
Html
help='Header text displayed at the top of all reports.'
string='Company Details'
translate=True
company_registry
Char
readonly=False
related='partner_id.company_registry'
string='Company ID'
company_registry_placeholder
Char
related='partner_id.company_registry_placeholder'
country_code
Char
depends=['country_id']
related='country_id.code'
country_id
Many2one → res.country
compute='_compute_address'
inverse='_inverse_country'
string='Country'
args: 'res.country'
currency_id
Many2one → res.currency
default=<expr>
required=True
string='Currency'
args: 'res.currency'
email
Char
readonly=False
related='partner_id.email'
store=True
external_report_layout_id
Many2one → ir.ui.view
font
Selection
default='Lato'
args: [('Lato', 'Lato'), ('Roboto', 'Roboto'), ('Open_Sans', 'Open Sans'), ('Montserrat', 'Montserrat'), ('Oswald', 'Oswald'), ('Raleway', 'Raleway'), ('Tajawal', 'Tajawal'), ('Fira_Mono', 'Fira Mono')]
is_company_details_empty
Boolean
compute='_compute_empty_company_details'
layout_background
Selection
default='Blank'
required=True
args: [('Blank', 'Blank'), ('Demo logo', 'Demo logo'), ('Custom', 'Custom')]
layout_background_image
Binary
logo
Binary
default=_get_logo
readonly=False
related='partner_id.image_1920'
string='Company Logo'
logo_web
Binary
attachment=False
compute='_compute_logo_web'
store=True
name
Char
readonly=False
related='partner_id.name'
required=True
store=True
string='Company Name'
paperformat_id
Many2one → report.paperformat
default=<expr>
args: 'report.paperformat', 'Paper format'
parent_id
Many2one → res.company
index=True
ondelete='restrict'
string='Parent Company'
args: 'res.company'
parent_ids
Many2many → res.company
compute='_compute_parent_ids'
compute_sudo=True
args: 'res.company'
parent_path
Char
index=True
partner_id
Many2one → res.partner
index=True
required=True
string='Partner'
args: 'res.partner'
phone
Char
readonly=False
related='partner_id.phone'
store=True
primary_color
Char
report_footer
Html
help='Footer text displayed at the bottom of all reports.'
string='Report Footer'
translate=True
report_header
Html
help="Company tagline, which is included in a printed document's header or footer (depending on the selected layout)."
string='Company Tagline'
translate=True
root_id
Many2one → res.company
compute='_compute_parent_ids'
compute_sudo=True
args: 'res.company'
secondary_color
Char
sequence
Integer
default=10
help='Used to order Companies in the company switcher'
state_id
Many2one → res.country.state
compute='_compute_address'
domain="[('country_id', '=?', country_id)]"
inverse='_inverse_state'
string='Fed. State'
args: 'res.country.state'
street
Char
compute='_compute_address'
inverse='_inverse_street'
street2
Char
compute='_compute_address'
inverse='_inverse_street2'
uninstalled_l10n_module_ids
Many2many → ir.module.module
compute='_compute_uninstalled_l10n_module_ids'
args: 'ir.module.module'
user_ids
Many2many → res.users
string='Accepted Users'
args: 'res.users', 'res_company_users_rel', 'cid', 'user_id'
uses_default_logo
Boolean
compute='_compute_uses_default_logo'
store=True
vat
Char
readonly=False
related='partner_id.vat'
string='Tax ID'
website
Char
readonly=False
related='partner_id.website'
zip
Char
compute='_compute_address'
inverse='_inverse_zip'
action_all_company_branches(self)
cache_invalidation_fields(self)
copy(self, default=None)
create(self, vals_list)
init(self)
install_l10n_modules(self)
unlink(self)
write(self, vals)
No new fields.
Public methods (7)action_cancel(self)
action_next(self)
action_skip(self)
cancel(self)
execute(self)
next(self)
start(self)
No new fields.
Public methods (11)action_open_template_user(self)
cancel(self)
copy(self, default=None)
create(self, vals_list)
default_get(self, fields)
execute(self)
get_config_warning(self, msg)
get_option_name(self, full_field_name)
get_option_path(self, menu_xml_id)
get_values(self)
set_values(self)
address_format
Text
default='%(street)s\n%(street2)s\n%(city)s %(state_code)s %(zip)s\n%(country_name)s'
help="Display format to use for addresses belonging to this country.\n\nYou can use python-style string pattern with all the fields of the address (for example, use '%(street)s' to display the field 'street') plus\n%(state_name)s: the name of the state\n%(state_code)s: the code of the state\n%(country_name)s: the name of the country\n%(country_code)s: the code of the country"
string='Layout in Reports'
address_view_id
Many2one → ir.ui.view
comodel_name='ir.ui.view'
domain=[('model', '=', 'res.partner'), ('type', '=', 'form')]
help='Use this field if you want to replace the usual way to encode a complete address. Note that the address_format field is used to modify the way to display addresses (in reports for example), while this field is used to modify the input form for addresses.'
string='Input View'
code
Char
help='The ISO country code in two chars. \nYou can use this field for quick search.'
required=True
size=2
string='Country Code'
country_group_codes
Json
compute='_compute_country_group_codes'
country_group_ids
Many2many → res.country.group
string='Country Groups'
args: 'res.country.group', 'res_country_res_country_group_rel', 'res_country_id', 'res_country_group_id'
currency_id
Many2one → res.currency
string='Currency'
args: 'res.currency'
image_url
Char
compute='_compute_image_url'
help='Url of static flag image'
string='Flag'
name
Char
required=True
string='Country Name'
translate=True
name_position
Selection
default='before'
help='Determines where the customer/company name should be placed, i.e. after or before the address.'
string='Customer Name Position'
args: [('before', 'Before Address'), ('after', 'After Address')]
phone_code
Integer
string='Country Calling Code'
state_ids
One2many → res.country.state
string='States'
args: 'res.country.state', 'country_id'
state_required
Boolean
default=False
vat_label
Char
help='Use this field if you want to change vat label.'
prefetch=True
string='Vat Label'
translate=True
zip_required
Boolean
default=True
create(self, vals_list)
get_address_fields(self)
name_search(self, name='', domain=None, operator='ilike', limit=100)
unlink(self)
write(self, vals)
code
Char
string='Code'
country_ids
Many2many → res.country
string='Countries'
args: 'res.country', 'res_country_res_country_group_rel', 'res_country_group_id', 'res_country_id'
name
Char
required=True
translate=True
create(self, vals_list)
write(self, vals)
code
Char
help='The state code.'
required=True
string='State Code'
country_id
Many2one → res.country
index=True
required=True
string='Country'
args: 'res.country'
name
Char
help='Administrative divisions of a country. E.g. Fed. State, Department, Canton'
required=True
string='State Name'
name_search(self, name='', domain=None, operator='ilike', limit=100)
active
Boolean
default=True
currency_subunit_label
Char
string='Currency Subunit'
translate=True
currency_unit_label
Char
string='Currency Unit'
translate=True
date
Date
compute='_compute_date'
decimal_places
Integer
compute='_compute_decimal_places'
help='Decimal places taken into account for operations on amounts in this currency. It is determined by the rounding factor.'
store=True
full_name
Char
string='Name'
inverse_rate
Float
compute='_compute_current_rate'
digits=0
help='The currency of rate 1 to the rate of the currency.'
readonly=True
is_current_company_currency
Boolean
compute='_compute_is_current_company_currency'
iso_numeric
Integer
help='Currency Numeric Code (ISO 4217).'
string='Currency numeric code.'
name
Char
help='Currency Code (ISO 4217)'
required=True
size=3
string='Currency'
position
Selection
default='after'
help='Determines where the currency symbol should be placed after or before the amount.'
string='Symbol Position'
args: [('after', 'After Amount'), ('before', 'Before Amount')]
rate
Float
compute='_compute_current_rate'
digits=0
help='The rate of the currency to the currency of rate 1.'
string='Current Rate'
rate_ids
One2many → res.currency.rate
string='Rates'
args: 'res.currency.rate', 'currency_id'
rate_string
Char
compute='_compute_current_rate'
rounding
Float
default=0.01
digits=(12, 6)
help='Amounts in this currency are rounded off to the nearest multiple of the rounding factor.'
string='Rounding Factor'
symbol
Char
help='Currency sign, to be used when printing amounts.'
required=True
amount_to_text(self, amount)
compare_amounts(self, amount1, amount2)
create(self, vals_list)
format(self, amount)
get_all_currencies(self)
is_zero(self, amount)
round(self, amount)
unlink(self)
write(self, vals)
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
company_rate
Float
aggregator='avg'
compute='_compute_company_rate'
digits=0
help='The currency of rate 1 to the rate of the currency.'
inverse='_inverse_company_rate'
currency_id
Many2one → res.currency
index=True
ondelete='cascade'
readonly=True
required=True
string='Currency'
args: 'res.currency'
inverse_company_rate
Float
aggregator='avg'
compute='_compute_inverse_company_rate'
digits=0
help='The rate of the currency to the currency of rate 1 '
inverse='_inverse_inverse_company_rate'
name
Date
default=fields.Date.context_today
index=True
required=True
string='Date'
rate
Float
aggregator='avg'
digits=0
help='The rate of the currency to the currency of rate 1'
string='Technical Rate'
create(self, vals_list)
write(self, vals)
No new fields.
Public methods (2)init(self)
revoke(self)
browser
Char
city
Char
country
Char
device_type
Selection
first_activity
Datetime
ip_address
Char
is_current
Boolean
compute='_compute_is_current'
args: 'Current Device'
last_activity
Datetime
index='btree'
args: 'Last Activity'
linked_ip_addresses
Text
compute='_compute_linked_ip_addresses'
args: 'Linked IP address'
platform
Char
revoked
Boolean
help='If True, the session file corresponding to this device\n no longer exists on the filesystem.'
args: 'Revoked'
session_identifier
Char
index='btree'
required=True
args: 'Session Identifier'
user_id
Many2one → res.users
index='btree'
args: 'res.users'
No public methods.
all_implied_by_ids
Many2many → res.groups
compute='_compute_all_implied_by_ids'
compute_sudo=True
recursive=True
search='_search_all_implied_by_ids'
string='Transitively Implying Groups'
args: 'res.groups'
all_implied_ids
Many2many → res.groups
compute='_compute_all_implied_ids'
compute_sudo=True
help='The group itself with all its implied groups.'
recursive=True
search='_search_all_implied_ids'
string='Transitively Implied Groups'
args: 'res.groups'
all_user_ids
Many2many → res.users
compute='_compute_all_user_ids'
inverse='_inverse_all_user_ids'
search='_search_all_user_ids'
string='Users and implied users'
args: 'res.users'
all_users_count
Integer
compute='_compute_all_users_count'
compute_sudo=True
help='Number of users having this group (implicitly or explicitly)'
args: '# Users'
api_key_duration
Float
help='Determines the maximum duration of an api key created by a user belonging to this group.'
string='API Keys maximum duration days'
comment
Text
translate=True
disjoint_ids
Many2many → res.groups
compute='_compute_disjoint_ids'
help='A user may not belong to this group and one of those. For instance, users may not be portal users and internal users.'
string='Disjoint Groups'
args: 'res.groups'
full_name
Char
compute='_compute_full_name'
search='_search_full_name'
string='Group Name'
implied_by_ids
Many2many → res.groups
help='Users in those groups are implicitly part of this group.'
string='Implying Groups'
args: 'res.groups', 'res_groups_implied_rel', 'hid', 'gid'
implied_ids
Many2many → res.groups
help='Users of this group are also implicitly part of those groups'
string='Implied Groups'
args: 'res.groups', 'res_groups_implied_rel', 'gid', 'hid'
menu_access
Many2many → ir.ui.menu
string='Access Menu'
args: 'ir.ui.menu', 'ir_ui_menu_group_rel', 'gid', 'menu_id'
model_access
One2many → ir.model.access
copy=True
string='Access Controls'
args: 'ir.model.access', 'group_id'
name
Char
required=True
translate=True
privilege_id
Many2one → res.groups.privilege
index=True
string='Privilege'
args: 'res.groups.privilege'
rule_groups
Many2many → ir.rule
domain="[('global', '=', False)]"
string='Rules'
args: 'ir.rule', 'rule_group_rel', 'group_id', 'rule_group_id'
sequence
Integer
string='Sequence'
share
Boolean
help='Group created to set access rights for sharing data with some users.'
string='Share Group'
user_ids
Many2many → res.users
help='Users explicitly in this group'
args: 'res.users', 'res_groups_users_rel', 'gid', 'uid'
view_access
Many2many → ir.ui.view
string='Views'
args: 'ir.ui.view', 'ir_ui_view_group_rel', 'group_id', 'view_id'
view_group_hierarchy
Json
compute='_compute_view_group_hierarchy'
string='Technical field for default group setting'
action_show_all_users(self)
copy_data(self, default=None)
create(self, vals_list)
unlink(self)
write(self, vals)
category_id
Many2one → ir.module.category
index=True
string='Category'
args: 'ir.module.category'
description
Text
string='Description'
group_ids
One2many → res.groups
string='Groups'
args: 'res.groups', 'privilege_id'
name
Char
required=True
string='Name'
translate=True
placeholder
Char
default='No'
help='Text that is displayed as placeholder in the selection field of the user form.'
string='Placeholder'
sequence
Integer
default=100
string='Sequence'
No public methods.
active
Boolean
code
Char
help='This field is used to set/get locales for user'
required=True
string='Locale Code'
date_format
Selection
default='%m/%d/%Y'
required=True
selection=_get_date_format_selection
string='Date Format'
decimal_point
Char
default='.'
required=True
string='Decimal Separator'
trim=False
direction
Selection
default='ltr'
required=True
args: [('ltr', 'Left-to-Right'), ('rtl', 'Right-to-Left')]
flag_image
Image
flag_image_url
Char
compute=_compute_field_flag_image_url
grouping
Selection
default='[3,0]'
help='The International Grouping will represent 123456789 to be 123,456,789.00; The Indian Grouping will represent 123456789 to be 12,34,56,789.00'
required=True
string='Separator Format'
args: [('[3,0]', 'International Grouping'), ('[3,2,0]', 'Indian Grouping')]
iso_code
Char
help='This ISO code is the name of po files to use for translations'
string='ISO code'
name
Char
required=True
thousands_sep
Char
default=','
string='Thousands Separator'
trim=False
time_format
Selection
default='%H:%M:%S'
required=True
string='Time Format'
args: [('%H:%M:%S', '13:00:00'), ('%I:%M:%S %p', ' 1:00:00 PM')]
url_code
Char
help='The Lang Code displayed in the URL'
required=True
args: 'URL Code'
week_start
Selection
default='7'
required=True
string='First Day of Week'
args: [('1', 'Monday'), ('2', 'Tuesday'), ('3', 'Wednesday'), ('4', 'Thursday'), ('5', 'Friday'), ('6', 'Saturday'), ('7', 'Sunday')]
CACHED_FIELDS(self) -> OrderedSet
action_activate_langs(self)
action_unarchive(self)
copy_data(self, default=None)
create(self, vals_list)
format(self, percent: str, value, grouping: bool=False) -> str
get_installed(self) -> <expr>
install_lang(self)
unlink(self)
write(self, vals)
active
Boolean
default=True
active_lang_count
Integer
compute='_compute_active_lang_count'
application_statistics
Json
compute='_compute_application_statistics'
string='Stats'
barcode
Char
company_dependent=True
copy=False
help='Use a barcode to identify this contact.'
city
Char
color
Integer
default=0
string='Color Index'
comment
Html
string='Notes'
commercial_company_name
Char
compute='_compute_commercial_company_name'
store=True
args: 'Company Name Entity'
company_name
Char
company_registry
Char
compute='_compute_company_registry'
help='The registry number of the company. Use it if it is different from the Tax ID. It must be unique across all partners of a same country'
index='btree_not_null'
readonly=False
store=True
string='Company ID'
company_registry_label
Char
compute='_compute_company_registry_label'
string='Company ID Label'
company_registry_placeholder
Char
compute='_compute_company_registry_placeholder'
company_type
Selection
compute='_compute_company_type'
inverse='_write_company_type'
selection=[('person', 'Person'), ('company', 'Company')]
string='Company Type'
complete_name
Char
compute='_compute_complete_name'
index=True
store=True
contact_address
Char
compute='_compute_contact_address'
string='Complete Address'
country_code
Char
related='country_id.code'
string='Country Code'
email
Char
email_formatted
Char
compute='_compute_email_formatted'
help='Format email address "Name <email@domain>"'
args: 'Formatted Email'
employee
Boolean
help='Check this box if this contact is an Employee.'
function
Char
string='Job Position'
is_company
Boolean
default=False
help='Check if the contact is a company, otherwise it is a person'
string='Is a Company'
is_public
Boolean
compute='_compute_is_public'
compute_sudo=True
lang
Selection
compute='_compute_lang'
help='All the emails and documents sent to this contact will be translated in this language.'
readonly=False
store=True
string='Language'
args: _lang_get
name
Char
default_export_compatible=True
index=True
parent_name
Char
readonly=True
related='parent_id.name'
string='Parent name'
partner_latitude
Float
digits=(10, 7)
string='Geo Latitude'
partner_longitude
Float
digits=(10, 7)
string='Geo Longitude'
partner_share
Boolean
compute='_compute_partner_share'
help='Either customer (not a user), either shared user. Indicated the current partner is a customer without access or with a limited access created for sharing data.'
store=True
args: 'Share Partner'
phone
Char
ref
Char
index=True
string='Reference'
street
Char
street2
Char
type
Selection
default='contact'
string='Address Type'
args: [('contact', 'Contact'), ('invoice', 'Invoice'), ('delivery', 'Delivery'), ('other', 'Other')]
type_address_label
Char
compute='_compute_type_address_label'
args: 'Address Type Description'
tz
Selection
default=<expr>
help='When printing documents and exporting/importing data, time values are computed according to this timezone.\nIf the timezone is not set, UTC (Coordinated Universal Time) is used.\nAnywhere else, time values are computed according to the time offset of your web client.'
string='Timezone'
args: _tzs
tz_offset
Char
compute='_compute_tz_offset'
string='Timezone offset'
vat
Char
help="You can use '/' to indicate that the customer has no Tax ID."
index=True
string='Tax ID'
vat_label
Char
compute='_compute_vat_label'
string='Tax ID Label'
website
Char
zip
Char
change_default=True
address_get(self, adr_pref=None)
copy_data(self, default=None)
create(self, vals_list)
create_company(self)
default_get(self, fields)
find_or_create(self, email, assert_valid_email=False)
get_import_templates(self)
name_create(self, name)
onchange_company_type(self)
onchange_parent_id(self)
open_commercial_entity(self)
view_header_get(self, view_id, view_type)
write(self, vals)
acc_holder_name
Char
compute='_compute_account_holder_name'
help='Account holder name, in case it is different than the name of the Account Holder'
readonly=False
store=True
string='Account Holder Name'
acc_number
Char
required=True
search='_search_acc_number'
args: 'Account Number'
acc_type
Selection
compute='_compute_acc_type'
help='Bank account type: Normal or IBAN. Inferred from the bank account number.'
selection=<expr>
string='Type'
active
Boolean
default=True
allow_out_payment
Boolean
copy=False
default=False
help='This account can be used for outgoing payments'
readonly=False
args: 'Send Money'
bank_bic
Char
readonly=False
related='bank_id.bic'
bank_id
Many2one → res.bank
string='Bank'
args: 'res.bank'
bank_name
Char
readonly=False
related='bank_id.name'
clearing_number
Char
color
Integer
compute='_compute_color'
company_id
Many2one → res.company
readonly=True
related='partner_id.company_id'
store=True
args: 'res.company', 'Company'
country_code
Char
related='partner_id.country_code'
string='Country Code'
currency_id
Many2one → res.currency
string='Currency'
args: 'res.currency'
note
Text
partner_id
Many2one → res.partner
domain=['|', ('is_company', '=', True), ('parent_id', '=', False)]
index=True
ondelete='cascade'
required=True
args: 'res.partner', 'Account Holder'
sanitized_acc_number
Char
compute='_compute_sanitized_acc_number'
readonly=True
store=True
string='Sanitized Account Number'
sequence
Integer
default=10
action_archive_bank(self)
create(self, vals_list)
get_supported_account_types(self)
retrieve_acc_type(self, acc_number)
unlink(self)
write(self, vals)
active
Boolean
default=True
help='The active field allows you to hide the category without removing it.'
color
Integer
aggregator=False
default=_get_default_color
string='Color'
name
Char
required=True
translate=True
args: 'Name'
parent_path
Char
index=True
No public methods.
active
Boolean
default=True
args: 'Active'
full_name
Char
translate=True
args: 'Full Name'
name
Char
translate=True
args: 'Name'
No public methods.
accesses_count
Integer
compute='_compute_accesses_count'
compute_sudo=True
help='Number of access rights that apply to the current user'
args: '# Access Rights'
action_id
Many2one → ir.actions.actions
help='If specified, this action will be opened at log on for this user, in addition to the standard menu.'
string='Home Action'
args: 'ir.actions.actions'
active
Boolean
default=True
active_partner
Boolean
readonly=True
related='partner_id.active'
string='Partner is Active'
all_group_ids
Many2many → res.groups
compute='_compute_all_group_ids'
compute_sudo=True
search='_search_all_group_ids'
string='Groups and implied groups'
args: 'res.groups'
api_key_ids
One2many → res.users.apikeys
string='API Keys'
args: 'res.users.apikeys', 'user_id'
companies_count
Integer
compute='_compute_companies_count'
string='Number of Companies'
company_id
Many2one → res.company
context={'user_preference': True}
default=<expr>
help='The default company for this user.'
required=True
string='Company'
args: 'res.company'
company_ids
Many2many → res.company
default=<expr>
string='Companies'
args: 'res.company', 'res_company_users_rel', 'user_id', 'cid'
device_ids
One2many → res.device
string='User devices'
args: 'res.device', 'user_id'
email
Char
inherited=True
readonly=False
related='partner_id.email'
email_domain_placeholder
Char
compute='_compute_email_domain_placeholder'
group_ids
Many2many → res.groups
default=<expr>
help='Groups explicitly assigned to the user'
string='Groups'
args: 'res.groups', 'res_groups_users_rel', 'uid', 'gid'
groups_count
Integer
compute='_compute_accesses_count'
compute_sudo=True
help='Number of groups that apply to the current user'
args: '# Groups'
log_ids
One2many → res.users.log
string='User log entries'
args: 'res.users.log', 'create_uid'
login
Char
help='Used to log into the system'
required=True
login_date
Datetime
readonly=False
related='log_ids.create_date'
string='Latest Login'
name
Char
inherited=True
readonly=False
related='partner_id.name'
new_password
Char
compute='_compute_password'
help="Specify a value only when creating a user or if you're changing the user's password, otherwise leave empty. After a change of password, the user has to login again."
inverse='_set_new_password'
string='Set Password'
partner_id
Many2one → res.partner
bypass_search_access=True
help='Partner-related data of the user'
index=True
ondelete='restrict'
required=True
string='Related Partner'
args: 'res.partner'
password
Char
compute='_compute_password'
copy=False
help="Keep empty if you don't want the user to be able to connect on the system."
inverse='_set_password'
phone
Char
inherited=True
readonly=False
related='partner_id.phone'
res_users_settings_id
Many2one → res.users.settings
compute='_compute_res_users_settings_id'
search='_search_res_users_settings_id'
string='Settings'
args: 'res.users.settings'
res_users_settings_ids
One2many → res.users.settings
role
Selection
compute='_compute_role'
readonly=False
string='Role'
args: [('group_user', 'User'), ('group_system', 'Administrator')]
rules_count
Integer
compute='_compute_accesses_count'
compute_sudo=True
help='Number of record rules that apply to the current user'
args: '# Record Rules'
share
Boolean
compute='_compute_share'
compute_sudo=True
help='External user with limited access, created only for the purpose of sharing data.'
store=True
string='Share User'
signature
Html
compute='_compute_signature'
readonly=False
store=True
string='Email Signature'
tz_offset
Char
compute='_compute_tz_offset'
string='Timezone offset'
view_group_hierarchy
Json
copy=False
default=_default_view_group_hierarchy
store=False
string='Technical field for user group setting'
SELF_READABLE_FIELDS(self)
SELF_WRITEABLE_FIELDS(self)
action_change_password_wizard(self)
action_get(self)
action_revoke_all_devices(self)
action_show_accesses(self)
action_show_groups(self)
action_show_rules(self)
api_key_wizard(self)
authenticate(self, credential, user_agent_env)
change_password(self, old_passwd, new_passwd)
context_get(self)
copy_data(self, default=None)
create(self, vals_list)
fields_get(self, allfields=None, attributes=None)
get_company_currency_id(self)
has_group(self, group_ext_id: str) -> bool
has_groups(self, group_spec: str) -> bool
init(self)
name_search(self, name='', domain=None, operator='ilike', limit=100)
on_change_login(self)
onchange(self, values, field_names, fields_spec)
onchange_parent_id(self)
preference_change_password(self)
preference_save(self)
read(self, fields=None, load='_classic_read')
write(self, vals)
No new fields.
Public methods (3)create(self, vals_list)
new(self, values=None, origin=None, ref=None)
write(self, vals)
create_date
Datetime
readonly=True
args: 'Creation Date'
expiration_date
Datetime
readonly=True
args: 'Expiration Date'
name
Char
readonly=True
required=True
args: 'Description'
scope
Char
readonly=True
args: 'Scope'
user_id
Many2one → res.users
index=True
ondelete='cascade'
readonly=True
required=True
args: 'res.users'
generate(self, key, scope, name, expiration_date)
init(self)
remove(self)
revoke(self, key)
duration
Selection
default=<expr>
required=True
selection='_selection_duration'
string='Duration'
expiration_date
Datetime
compute='_compute_expiration_date'
readonly=False
store=True
args: 'Expiration Date'
name
Char
required=True
args: 'Description'
check_access_make_key(self)
create(self, vals_list)
make_key(self)
id
Id
key
Char
readonly=True
No public methods.
state
Selection
default='todo'
required=True
string='State'
args: [('todo', 'To Do'), ('done', 'Done'), ('fail', 'Failed')]
user_id
Many2one → res.users
ondelete='set null'
string='User'
args: 'res.users'
user_id_int
Integer
compute='_compute_user_id_int'
store=True
args: 'User Id'
No public methods.
auth_method
Selection
default=<expr>
args: [('password', 'Password')]
password
Char
store=False
request
Char
groups=fields.NO_ACCESS
readonly=True
run_check(self)
create_uid
Many2one → res.users
index=True
readonly=True
string='Created by'
args: 'res.users'
No public methods.
user_id
Many2one → res.users
domain=[('res_users_settings_id', '=', False)]
index=False
ondelete='cascade'
required=True
string='User'
args: 'res.users'
set_res_users_settings(self, new_settings)
arch_diff
Html
compute='_compute_arch_diff'
readonly=True
sanitize_tags=False
string='Architecture Diff'
arch_to_compare
Text
compute='_compute_arch_diff'
args: 'Arch To Compare To'
compare_view_id
Many2one → ir.ui.view
string='Compare To View'
args: 'ir.ui.view'
has_diff
Boolean
compute='_compute_arch_diff'
reset_mode
Selection
default='soft'
required=True
string='Reset Mode'
args: [('soft', 'Restore previous version (soft reset).'), ('hard', 'Reset to file version (hard reset).'), ('other_view', 'Reset to another view.')]
view_id
Many2one → ir.ui.view
string='View'
args: 'ir.ui.view'
view_name
Char
related='view_id.name'
string='View Name'
default_get(self, fields)
reset_view_button(self)
action_id
Many2one → ir.actions.server
code_diff
Html
compute='_compute_code_diff'
sanitize_tags=False
current_code
Text
readonly=True
related='action_id.code'
revision
Many2one → ir.actions.server.history
default=_default_revision
domain="[('action_id', '=', action_id), ('code', '!=', current_code)]"
required=True
args: 'ir.actions.server.history'
restore_revision(self)
menu_id
Many2one → ir.ui.menu
ondelete='cascade'
required=True
string='Parent Menu'
args: 'ir.ui.menu'
name
Char
required=True
string='Menu Name'
menu_create(self)
access_ir_model_access_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_model_access' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_model_fields_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_model_fields' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_model_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_model' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_rule_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_rule' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_res_groups_group_erp_manager — Access rule grants write/create/unlink on security model 'model_res_groups' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_res_users_group_erp_manager — Access rule grants write/create/unlink on security model 'model_res_users' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationFound by automated static analysis: these patterns are usually risky, but only a manual review of the module can confirm a real issue.
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
act_report_xml_search_view |
ir.actions.report.search | ir.actions.report | search | New |
act_report_xml_view |
ir.actions.report | ir.actions.report | form | New |
act_report_xml_view_tree |
ir.actions.report.list | ir.actions.report | list | New |
action_view |
ir.actions.actions | ir.actions.actions | form | New |
action_view_search |
ir.actions.actions.search | ir.actions.actions | search | New |
action_view_tree |
ir.actions.actions.list | ir.actions.actions | list | New |
asset_view_form |
ir.asset | form | New | |
asset_view_search |
ir.asset | search | New | |
asset_view_tree |
ir.asset | list | New | |
base.language_install_view_form_lang_switch |
Switch to language | base.language.install | form | New |
base_partner_merge_automatic_wizard_form |
base.partner.merge.automatic.wizard.form | base.partner.merge.automatic.wizard | form | New |
change_password_own_form |
Change Own Password | change.password.own | form | New |
change_password_wizard_user_tree_view |
Change Password Users | change.password.user | list | New |
change_password_wizard_view |
Change Password | change.password.wizard | form | New |
config_wizard_step_view_form |
Config Wizard Steps | ir.actions.todo | form | New |
config_wizard_step_view_search |
ir.actions.todo.select | ir.actions.todo | search | New |
contact |
contact | ir.ui.view | qweb | New |
contact_name |
contact_name | ir.ui.view | qweb | New |
demo_failures_dialog |
Demo Failure Dialog | ir.demo_failure.wizard | form | New |
demo_force_install_form |
ir.demo.form | ir.demo | form | New |
demo_wizard_form_view |
Demo Failure Form | ir.demo_failure | form | New |
edit_menu |
ir.ui.menu | list | New | |
edit_menu_access |
ir.ui.menu | form | New | |
edit_menu_access_search |
ir.ui.menu.search | ir.ui.menu | search | New |
embedded_action_form |
ir.embedded.actions.form | ir.embedded.actions | form | New |
embedded_action_tree |
Embedded Actions | ir.embedded.actions | list | New |
enable_profiling_wizard |
Enable profiling | base.enable.profiling.wizard | form | New |
form_res_users_key_description |
API Key: description input form | res.users.apikeys.description | form | New |
form_res_users_key_show |
API Key: show | res.users.apikeys.show | form | New |
ir_access_view_form |
ir.model.access | form | New | |
ir_access_view_search |
ir.model.access | search | New | |
ir_access_view_tree |
ir.model.access.view.list | ir.model.access | list | New |
ir_access_view_tree_edition |
ir.model.access.view.list.edition | ir.model.access | list | New |
ir_actions_todo_tree |
Config Wizard Steps | ir.actions.todo | list | New |
ir_cron_trigger_view_form |
ir.cron.trigger.view.form | ir.cron.trigger | form | New |
ir_cron_trigger_view_search |
ir.cron.trigger.view.search | ir.cron.trigger | search | New |
ir_cron_trigger_view_tree |
ir.cron.trigger.view.list | ir.cron.trigger | list | New |
ir_cron_view_calendar |
ir.cron | calendar | New | |
ir_cron_view_form |
ir.cron.view.form | ir.cron | form | Inherits base.view_server_action_form |
ir_cron_view_search |
ir.cron | search | New | |
ir_cron_view_tree |
ir.cron | list | New | |
ir_default_form_view |
ir.default form view | ir.default | form | New |
ir_default_search_view |
ir.default search view | ir.default | search | New |
ir_default_tree_view |
ir.default list view | ir.default | list | New |
ir_filters_view_form |
ir.filters | form | New | |
ir_filters_view_search |
ir.filters | search | New | |
ir_filters_view_tree |
ir.filters | list | New | |
ir_logging_form_view |
ir.logging | form | New | |
ir_logging_search_view |
ir.logging | search | New | |
ir_logging_tree_view |
ir.logging | list | New | |
ir_mail_server_form |
ir.mail_server | form | New | |
ir_mail_server_list |
ir.mail_server | list | New | |
ir_profile_view_form |
IR Profile Form | ir.profile | form | New |
ir_profile_view_list |
IR Profile List | ir.profile | list | New |
ir_profile_view_search |
IR Profile Search | ir.profile | search | New |
module_form |
ir.module.module.form | ir.module.module | form | New |
module_tree |
ir.module.module.list | ir.module.module | list | New |
module_view_kanban |
Apps Kanban | ir.module.module | kanban | New |
no_contact |
no_contact | ir.ui.view | qweb | New |
paperformat_view_form |
paper_format_view_form | report.paperformat | form | New |
paperformat_view_tree |
paper_format_view_tree | report.paperformat | list | New |
report_irmodeloverview |
report_irmodeloverview | ir.ui.view | qweb | New |
report_irmodulereference |
report_irmodulereference | ir.ui.view | qweb | New |
res_bank_view_search |
res.bank.view.search | res.bank | search | New |
res_config_settings_view_form |
res.config.settings.view.form | res.config.settings | form | New |
res_config_view_base |
res.config.view.base | res.config | form | New |
res_device_view_form |
res.device.form | res.device | form | New |
res_device_view_kanban |
res.device.kanban | res.device | kanban | New |
res_device_view_tree |
res.device.list | res.device | list | New |
res_lang_form |
res.lang.form | res.lang | form | New |
res_lang_search |
res.lang.search | res.lang | search | New |
res_lang_tree |
res.lang.list | res.lang | list | New |
res_partner_category_view_search |
res.partner.category.view.search | res.partner.category | search | New |
res_partner_industry_view_form |
Industry | res.partner.industry | form | New |
res_partner_industry_view_search |
res.partner.industry.view.search | res.partner.industry | search | New |
res_partner_industry_view_tree |
Industry | res.partner.industry | list | New |
res_partner_kanban_view |
res.partner.kanban | res.partner | kanban | New |
res_partner_view_form_private |
res.partner.view.form.private | res.partner | form | New |
res_users_identitycheck_view_form |
res.users.identitycheck | form | New | |
reset_view_arch_wizard_view |
Reset View Architecture | reset.view.arch.wizard | form | New |
sequence_view |
ir.sequence | form | New | |
sequence_view_tree |
ir.sequence | list | New | |
user_groups_view |
res.users.groups | res.users | form | Inherits view_users_form |
view_apikeys |
API Keys Listing | res.users.apikeys | list | New |
view_attachment_form |
ir.attachment | form | New | |
view_attachment_search |
ir.attachment | search | New | |
view_attachment_tree |
ir.attachment | list | New | |
view_base_import_language |
Import Translation | base.language.import | form | New |
view_base_language_install |
Load a Translation | base.language.install | form | New |
view_base_module_uninstall |
Uninstall module | base.module.uninstall | form | New |
view_base_module_update |
Module Update | base.module.update | form | New |
view_base_module_upgrade |
Module Upgrade | base.module.upgrade | form | New |
view_base_module_upgrade_install |
Module Upgrade Install | base.module.upgrade | form | New |
view_client_action_form |
ir.actions.client.form | ir.actions.client | form | New |
view_client_action_tree |
Client Actions | ir.actions.client | list | New |
view_company_form |
res.company.form | res.company | form | New |
view_company_tree |
res.company.list | res.company | list | New |
view_country_form |
res.country.form | res.country | form | New |
view_country_group_form |
res.country.group.form | res.country.group | form | New |
view_country_group_tree |
res.country.group.list | res.country.group | list | New |
view_country_search |
res.country.search | res.country | search | New |
view_country_state_form |
res.country.state.form | res.country.state | form | New |
view_country_state_search |
res.country.state.search | res.country.state | search | New |
view_country_state_tree |
res.country.state.list | res.country.state | list | New |
view_country_tree |
res.country.list | res.country | list | New |
view_currency_form |
res.currency.form | res.currency | form | New |
view_currency_kanban |
res.currency.kanban | res.currency | kanban | New |
view_currency_rate_form |
res.currency.rate.form | res.currency.rate | form | New |
view_currency_rate_search |
res.currency.rate.search | res.currency.rate | search | New |
view_currency_rate_tree |
res.currency.rate.list | res.currency.rate | list | New |
view_currency_search |
res.currency.search | res.currency | search | New |
view_currency_tree |
res.currency.list | res.currency | list | New |
view_decimal_precision_form |
Decimal Precision | decimal.precision | form | New |
view_decimal_precision_tree |
Decimal Precision List | decimal.precision | list | New |
view_groups_form |
res.groups.form | res.groups | form | New |
view_groups_search |
res.groups.search | res.groups | search | New |
view_ir_config_form |
ir.config_parameter | form | New | |
view_ir_config_list |
ir.config_parameter | list | New | |
view_ir_config_search |
ir.config_parameter | search | New | |
view_ir_mail_server_search |
ir.mail_server | search | New | |
view_model_constraint_form |
ir.model.constraint | form | New | |
view_model_constraint_list |
ir.model.constraint | list | New | |
view_model_constraint_search |
ir.model.constraint | search | New | |
view_model_data_form |
ir.model.data | form | New | |
view_model_data_list |
ir.model.data | list | New | |
view_model_data_search |
ir.model.data | search | New | |
view_model_fields_form |
ir.model.fields | form | New | |
view_model_fields_search |
ir.model.fields | search | New | |
view_model_fields_selection_form |
ir.model.fields.selection | form | New | |
view_model_fields_selection_search |
ir.model.fields.selection | search | New | |
view_model_fields_selection_tree |
ir.model.fields.selection | list | New | |
view_model_fields_tree |
ir.model.fields | list | New | |
view_model_form |
ir.model | form | New | |
view_model_menu_create |
Create Menu | wizard.ir.model.menu.create | form | New |
view_model_relation_form |
ir.model.relation | form | New | |
view_model_relation_list |
ir.model.relation | list | New | |
view_model_search |
ir.model | search | New | |
view_model_tree |
ir.model | list | New | |
view_module_category_form |
ir.module.category.form | ir.module.category | form | New |
view_module_filter |
ir.module.module.list.select | ir.module.module | search | New |
view_partner_address_form |
res.partner.form.address | res.partner | form | New |
view_partner_bank_form |
res.partner.bank.form | res.partner.bank | form | New |
view_partner_bank_search |
res.partner.bank.search | res.partner.bank | search | New |
view_partner_bank_tree |
res.partner.bank.list | res.partner.bank | list | New |
view_partner_category_form |
Contact Tags | res.partner.category | form | New |
view_partner_category_list |
Contact Tags | res.partner.category | list | New |
view_partner_form |
res.partner.form | res.partner | form | New |
view_partner_simple_form |
res.partner.simplified.form | res.partner | form | New |
view_partner_title_form |
res.partner.title.form | res.partner.title | form | New |
view_partner_title_tree |
res.partner.title.list | res.partner.title | list | New |
view_partner_tree |
res.partner.list | res.partner | list | New |
view_res_bank_form |
res.bank.form | res.bank | form | New |
view_res_bank_tree |
res.bank.list | res.bank | list | New |
view_res_company_kanban |
res.company.kanban | res.company | kanban | New |
view_res_partner_filter |
res.partner.select | res.partner | search | New |
view_res_users_kanban |
res.users.kanban | res.users | kanban | New |
view_rule_form |
ir.rule | form | New | |
view_rule_search |
ir.rule | search | New | |
view_rule_tree |
ir.rule | list | New | |
view_sequence_search |
ir.sequence | search | New | |
view_server_action_form |
Server Action | ir.actions.server | form | New |
view_server_action_search |
ir.actions.server.search | ir.actions.server | search | New |
view_server_action_tree |
Server Actions | ir.actions.server | list | New |
view_users_form |
res.users.form | res.users | form | New |
view_users_form_simple_modif |
res.users.preferences.form | res.users | form | New |
view_users_search |
res.users.search | res.users | search | New |
view_users_simple_form |
res.users.simplified.form | res.users | form | New |
view_users_tree |
res.users.list | res.users | list | New |
view_view_custom_form |
ir.ui.view.custom | form | New | |
view_view_custom_search |
ir.ui.view.custom | search | New | |
view_view_custom_tree |
ir.ui.view.custom | list | New | |
view_view_form |
ir.ui.view | form | New | |
view_view_search |
ir.ui.view | search | New | |
view_view_tree |
ir.ui.view | list | New | |
view_window_action_form |
ir.actions.windows.form | ir.actions.act_window | form | New |
view_window_action_search |
ir.actions.windows.search | ir.actions.act_window | search | New |
view_window_action_tree |
ir.actions.windows.list | ir.actions.act_window | list | New |
wizard_lang_export |
Export Translations | base.language.export | form | New |
| Route(s) | Handler | Auth | Type | Methods | Flags |
|---|---|---|---|---|---|
/jsonrpc |
RPC.jsonrpc |
none | json | ALL | |
/xmlrpc/<service> |
RPC.xmlrpc_1 |
none | http | POST | csrf off |
/xmlrpc/2/<service> |
RPC.xmlrpc_2 |
none | http | POST | csrf off |
No new fields.
Public methods (0)No public methods.
avatar_1024
Image
compute='_compute_avatar_1024'
args: 'Avatar 1024'
avatar_128
Image
compute='_compute_avatar_128'
args: 'Avatar 128'
avatar_1920
Image
compute='_compute_avatar_1920'
args: 'Avatar'
avatar_256
Image
compute='_compute_avatar_256'
args: 'Avatar 256'
avatar_512
Image
compute='_compute_avatar_512'
args: 'Avatar 512'
No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (6)get_empty_list_help(self, help_message)
get_formview_action(self, access_uid=None)
get_formview_id(self, access_uid=None)
get_view(self, view_id=None, view_type='form', **options)
get_views(self, views, options=None)
view_header_get(self, view_id=None, view_type='form')
duration
Selection
string='Enable profiling for'
args: [('minutes_5', '5 Minutes'), ('hours_1', '1 Hour'), ('days_1', '1 Day'), ('months_1', '1 Month')]
expiration
Datetime
compute='_compute_expiration'
readonly=False
store=True
args: 'Enable profiling until'
submit(self)
data
Binary
attachment=False
readonly=True
args: 'File'
domain
Char
default='[]'
string='Model Domain'
export_type
Selection
default='module'
required=True
string='Export Type'
args: [('module', 'Module'), ('model', 'Model')]
format
Selection
default='po'
required=True
string='File Format'
args: [('csv', 'CSV File'), ('po', 'PO File'), ('tgz', 'TGZ Archive')]
lang
Selection
default=NEW_LANG_KEY
required=True
string='Language'
args: _get_languages
model_id
Many2one → ir.model
domain=[('transient', '=', False)]
string='Model to Export'
args: 'ir.model'
model_name
Char
related='model_id.model'
string='Model Name'
modules
Many2many → ir.module.module
domain=[('state', '=', 'installed')]
string='Apps To Export'
args: 'ir.module.module', 'rel_modules_langexport', 'wiz_id', 'module_id'
name
Char
readonly=True
args: 'File Name'
state
Selection
default='choose'
args: [('choose', 'choose'), ('get', 'get')]
act_getfile(self)
code
Char
help='ISO Language and Country code, e.g. en_US'
required=True
args: 'ISO Code'
data
Binary
attachment=False
required=True
args: 'File'
filename
Char
required=True
args: 'File Name'
name
Char
required=True
args: 'Language Name'
overwrite
Boolean
default=True
help='If you enable this option, existing translations (including custom ones) will be overwritten and replaced by those in this file'
args: 'Overwrite Existing Terms'
import_lang(self)
first_lang_id
Many2one → res.lang
compute='_compute_first_lang_id'
help='Used when the user only selects one language and is given the option to switch to it'
args: 'res.lang'
lang_ids
Many2many → res.lang
context={'active_test': False}
default=_default_lang_ids
required=True
args: 'res.lang', 'res_lang_install_rel', 'language_wizard_id', 'lang_id', 'Languages'
overwrite
Boolean
default=True
help='If you check this box, your customized translations will be overwritten and replaced by the official ones.'
args: 'Overwrite Existing Terms'
lang_install(self)
reload(self)
switch_lang(self)
model_ids
Many2many → ir.model
compute='_compute_model_ids'
string='Impacted data models'
args: 'ir.model'
module_id
Many2one → ir.module.module
domain=[('state', 'in', ['installed', 'to upgrade', 'to install'])]
ondelete='cascade'
readonly=True
required=True
string='Module'
args: 'ir.module.module'
module_ids
Many2many → ir.module.module
compute='_compute_module_ids'
string='Impacted modules'
args: 'ir.module.module'
show_all
Boolean
action_uninstall(self)
added
Integer
readonly=True
args: 'Number of modules added'
state
Selection
default='init'
readonly=True
args: [('init', 'init'), ('done', 'done')], 'Status'
updated
Integer
readonly=True
args: 'Number of modules updated'
action_module_open(self)
update_module(self)
module_info
Text
default=_default_module_info
readonly=True
args: 'Apps to Update'
config(self)
get_module_list(self)
get_view(self, view_id=None, view_type='form', **options)
upgrade_module(self)
upgrade_module_cancel(self)
current_line_id
Many2one → base.partner.merge.line
string='Current Line'
args: 'base.partner.merge.line'
dst_partner_id
Many2one → res.partner
string='Destination Contact'
args: 'res.partner'
exclude_contact
Boolean
exclude_journal_item
Boolean
group_by_email
Boolean
group_by_is_company
Boolean
group_by_name
Boolean
group_by_parent_id
Boolean
group_by_vat
Boolean
line_ids
One2many → base.partner.merge.line
string='Lines'
args: 'base.partner.merge.line', 'wizard_id'
maximum_group
Integer
number_group
Integer
readonly=True
args: 'Group of Contacts'
partner_ids
Many2many → res.partner
context={'active_test': False}
string='Contacts'
args: 'res.partner'
state
Selection
default='option'
readonly=True
required=True
string='State'
args: [('option', 'Option'), ('selection', 'Selection'), ('finished', 'Finished')]
action_merge(self)
action_skip(self)
action_start_automatic_process(self)
action_start_manual_process(self)
action_update_all_process(self)
default_get(self, fields)
parent_migration_process_cb(self)
aggr_ids
Char
required=True
args: 'Ids'
min_id
Integer
wizard_id
Many2one → base.partner.merge.automatic.wizard
No public methods.
confirm_password
Char
string='New Password (Confirmation)'
new_password
Char
string='New Password'
change_password(self)
new_passwd
Char
default=''
string='New Password'
user_id
Many2one → res.users
ondelete='cascade'
required=True
string='User'
args: 'res.users'
user_login
Char
readonly=True
string='User Login'
wizard_id
Many2one → change.password.wizard
ondelete='cascade'
required=True
string='Wizard'
args: 'change.password.wizard'
change_password_button(self)
user_ids
One2many → change.password.user
default=_default_user_ids
string='Users'
args: 'change.password.user', 'wizard_id'
change_password_button(self)
digits
Integer
default=2
required=True
args: 'Digits'
name
Char
required=True
args: 'Usage'
create(self, vals_list)
precision_get(self, application)
unlink(self)
write(self, data)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
image_1024
Image
max_height=1024
max_width=1024
related='image_1920'
store=True
args: 'Image 1024'
image_128
Image
max_height=128
max_width=128
related='image_1920'
store=True
args: 'Image 128'
image_1920
Image
max_height=1920
max_width=1920
args: 'Image'
image_256
Image
max_height=256
max_width=256
related='image_1920'
store=True
args: 'Image 256'
image_512
Image
max_height=512
max_width=512
related='image_1920'
store=True
args: 'Image 512'
No public methods.
target
Selection
default='new'
required=True
string='Action Target'
args: [('new', 'New Window'), ('self', 'This Window'), ('download', 'Download')]
type
Char
default='ir.actions.act_url'
url
Text
required=True
string='Action URL'
No public methods.
context
Char
default={}
help='Context dictionary as Python expression, empty by default (Default: {})'
required=True
string='Context Value'
domain
Char
help='Optional domain filtering of the destination data, as a Python expression'
string='Domain Value'
embedded_action_ids
One2many → ir.embedded.actions
compute='_compute_embedded_actions'
args: 'ir.embedded.actions'
filter
Boolean
groups_id
Many2many → res.groups
string='Groups'
args: 'res.groups', 'ir_act_window_group_rel', 'act_id', 'gid'
limit
Integer
default=80
help='Default limit for the list view'
mobile_view_mode
Char
default='kanban'
help="First view mode in mobile and small screen environments (default='kanban'). If it can't be found among available view modes, the same mode as for wider screens is used)"
res_id
Integer
help="Database ID of record to open in form view, when ``view_mode`` is set to 'form' only"
string='Record ID'
res_model
Char
help='Model name of the object to open in the view window'
required=True
string='Destination Model'
search_view_id
Many2one → ir.ui.view
string='Search View Ref.'
args: 'ir.ui.view'
target
Selection
default='current'
string='Target Window'
args: [('current', 'Current Window'), ('new', 'New Window'), ('inline', 'Inline Edit'), ('fullscreen', 'Full Screen'), ('main', 'Main action of Current Window')]
type
Char
default='ir.actions.act_window'
usage
Char
help='Used to filter menu and home actions from the user form.'
string='Action Usage'
view_id
Many2one → ir.ui.view
ondelete='set null'
string='View Ref.'
args: 'ir.ui.view'
view_ids
One2many → ir.actions.act_window.view
string='No of Views'
args: 'ir.actions.act_window.view', 'act_window_id'
view_mode
Char
default='list,form'
help="Comma-separated list of allowed view modes, such as 'form', 'list', 'calendar', etc. (Default: list,form)"
required=True
views
Binary
compute='_compute_views'
help='This function field computes the ordered list of views that should be enabled when displaying the result of an action, federating view mode, views and reference view. The result is returned as an ordered list of pairs (view_id,view_mode).'
create(self, vals_list)
exists(self)
read(self, fields=None, load='_classic_read')
unlink(self)
act_window_id
Many2one → ir.actions.act_window
ondelete='cascade'
string='Action'
args: 'ir.actions.act_window'
multi
Boolean
help='If set to true, the action will not be displayed on the right toolbar of a form view.'
string='On Multiple Doc.'
sequence
Integer
view_id
Many2one → ir.ui.view
string='View'
args: 'ir.ui.view'
view_mode
Selection
required=True
string='View Type'
args: VIEW_TYPES
No public methods.
type
Char
default='ir.actions.act_window_close'
No public methods.
binding_model_id
Many2one → ir.model
help='Setting a value makes this action available in the sidebar for the given model.'
ondelete='cascade'
args: 'ir.model'
binding_type
Selection
default='action'
required=True
args: [('action', 'Action'), ('report', 'Report')]
binding_view_types
Char
default='list,form'
help
Html
help='Optional help text for the users with a description of the target view, such as its usage and purpose.'
string='Action Description'
translate=True
name
Char
required=True
string='Action Name'
translate=True
path
Char
string='Path to show in the URL'
type
Char
required=True
string='Action Type'
xml_id
Char
compute='_compute_xml_id'
string='External ID'
create(self, vals_list)
get_bindings(self, model_name)
unlink(self)
write(self, vals)
context
Char
default='{}'
help='Context dictionary as Python expression, empty by default (Default: {})'
required=True
string='Context Value'
params
Binary
compute='_compute_params'
help='Arguments sent to the client along with the view tag'
inverse='_inverse_params'
string='Supplementary arguments'
params_store
Binary
attachment=False
readonly=True
string='Params storage'
res_model
Char
help='Optional model, mostly used for needactions.'
string='Destination Model'
tag
Char
help='An arbitrary string, interpreted by the client according to its own needs and wishes. There is no central tag repository across clients.'
required=True
string='Client action tag'
target
Selection
default='current'
string='Target Window'
args: [('current', 'Current Window'), ('new', 'New Window'), ('fullscreen', 'Full Screen'), ('main', 'Main action of Current Window')]
type
Char
default='ir.actions.client'
No public methods.
attachment
Char
help='This is the filename of the attachment used to store the printing result. Keep empty to not save the printed reports. You can use a python expression with the object and time variables.'
string='Save as Attachment Prefix'
attachment_use
Boolean
help='If enabled, then the second time the user prints with same attachment name, it returns the previous report.'
string='Reload from Attachment'
binding_type
Selection
default='report'
domain
Char
help='If set, the action will only appear on records that matches the domain.'
string='Filter domain'
groups_id
Many2many → res.groups
string='Groups'
args: 'res.groups', 'res_groups_report_rel', 'uid', 'gid'
model
Char
required=True
string='Model Name'
model_id
Many2one → ir.model
compute='_compute_model_id'
search='_search_model_id'
string='Model'
args: 'ir.model'
multi
Boolean
help='If set to true, the action will not be displayed on the right toolbar of a form view.'
string='On Multiple Doc.'
paperformat_id
Many2one → report.paperformat
print_report_name
Char
help="This is the filename of the report going to download. Keep empty to not change the report filename. You can use a python expression with the 'object' and 'time' variables."
translate=True
args: 'Printed Report Name'
report_file
Char
help='The path to the main report file (depending on Report Type) or empty if the content is in another field'
readonly=False
required=False
store=True
string='Report File'
report_name
Char
required=True
string='Template Name'
report_type
Selection
default='qweb-pdf'
help='The type of the report that will be rendered, each one having its own rendering method. HTML means the report will be opened directly in your browser PDF means the report will be rendered using Wkhtmltopdf and downloaded by the user.'
required=True
args: [('qweb-html', 'HTML'), ('qweb-pdf', 'PDF'), ('qweb-text', 'Text')]
type
Char
default='ir.actions.report'
associated_view(self)
barcode(self, barcode_type, value, **kwargs)
create_action(self)
get_available_barcode_masks(self)
get_paperformat(self)
get_paperformat_by_xmlid(self, xml_id)
get_valid_action_reports(self, model, record_ids)
get_wkhtmltopdf_state(self)
report_action(self, docids, data=None, config=True)
retrieve_attachment(self, record)
unlink_action(self)
available_model_ids
Many2many → ir.model
compute='_compute_available_model_ids'
store=False
string='Available Models'
args: 'ir.model'
child_ids
Many2many → ir.actions.server
help='Child server actions that will be executed. Note that the last return returned action value will be used as global return value.'
string='Child Actions'
args: 'ir.actions.server', 'rel_server_actions', 'server_id', 'action_id'
code
Text
default=DEFAULT_PYTHON_CODE
groups='base.group_system'
help='Write Python code that the action will execute. Some variables are available for use; help about python expression is given in the help tab.'
string='Python Code'
crud_model_id
Many2one → ir.model
compute='_compute_crud_relations'
help='Specify which kind of record should be created. Set this field only to specify a different model than the base model.'
readonly=False
store=True
string='Record to Create'
args: 'ir.model'
crud_model_name
Char
readonly=True
related='crud_model_id.model'
string='Target Model Name'
evaluation_type
Selection
change_default=True
default='value'
args: [('value', 'Update'), ('equation', 'Compute')], 'Value Type'
groups_id
Many2many → res.groups
help='Groups that can execute the server action. Leave empty to allow everybody.'
string='Allowed Groups'
args: 'res.groups', 'ir_act_server_group_rel', 'act_id', 'gid'
link_field_id
Many2one → ir.model.fields
compute='_compute_link_field_id'
help='Specify a field used to link the newly created record on the record used by the server action.'
readonly=False
store=True
string='Link Field'
args: 'ir.model.fields'
model_id
Many2one → ir.model
help='Model on which the server action runs.'
index=True
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
model_name
Char
readonly=True
related='model_id.model'
store=True
string='Model Name'
name
Char
required=True
resource_ref
Reference
inverse='_set_resource_ref'
selection='_selection_target_model'
string='Record'
selection_value
Many2one → ir.model.fields.selection
domain='[("field_id", "=", update_field_id)]'
inverse='_set_selection_value'
ondelete='cascade'
string='Custom Value'
args: 'ir.model.fields.selection'
sequence
Integer
default=5
help='When dealing with multiple actions, the execution order is based on the sequence. Low number means high priority.'
state
Selection
copy=True
default='object_write'
help="Type of server action. The following values are available:\n- 'Update a Record': update the values of a record\n- 'Create Activity': create an activity (Discuss)\n- 'Send Email': post a message, a note or send an email (Discuss)\n- 'Send SMS': send SMS, log them on documents (SMS)- 'Add/Remove Followers': add or remove followers to a record (Discuss)\n- 'Create Record': create a new record with new values\n- 'Execute Code': a block of Python code that will be executed\n- 'Send Webhook Notification': send a POST request to an external system, also known as a Webhook\n- 'Execute Existing Actions': define an action that triggers several other server actions\n"
required=True
string='Type'
args: [('object_write', 'Update Record'), ('object_create', 'Create Record'), ('code', 'Execute Code'), ('webhook', 'Send Webhook Notification'), ('multi', 'Execute Existing Actions')]
type
Char
default='ir.actions.server'
update_boolean_value
Selection
default='true'
string='Boolean Value'
args: [('true', 'Yes (True)'), ('false', 'No (False)')]
update_field_id
Many2one → ir.model.fields
compute='_compute_crud_relations'
ondelete='cascade'
readonly=False
store=True
string='Field to Update'
args: 'ir.model.fields'
update_field_type
Selection
readonly=True
related='update_field_id.ttype'
update_m2m_operation
Selection
default='add'
string='Many2many Operations'
args: [('add', 'Adding'), ('remove', 'Removing'), ('set', 'Setting it to'), ('clear', 'Clearing it')]
update_path
Char
default=_default_update_path
help="Path to the field to update, e.g. 'partner_id.name'"
string='Field to Update Path'
update_related_model_id
Many2one → ir.model
compute='_compute_crud_relations'
readonly=False
store=True
args: 'ir.model'
usage
Selection
default='ir_actions_server'
required=True
string='Usage'
args: [('ir_actions_server', 'Server Action'), ('ir_cron', 'Scheduled Action')]
value
Text
help="For Python expressions, this field may hold a Python expression that can use the same values as for the code field on the server action,e.g. `env.user.name` to set the current user's name as the value or `record.id` to set the ID of the record on which the action is run.\n\nFor Static values, the value will be used directly without evaluation, e.g.`42` or `My custom name` or the selected record."
value_field_to_show
Selection
compute='_compute_value_field_to_show'
args: [('value', 'value'), ('resource_ref', 'reference'), ('update_boolean_value', 'update_boolean_value'), ('selection_value', 'selection_value')]
webhook_field_ids
Many2many → ir.model.fields
help="Fields to send in the POST request. The id and model of the record are always sent as '_id' and '_model'. The name of the action that triggered the webhook is always sent as '_name'."
string='Webhook Fields'
args: 'ir.model.fields', 'ir_act_server_webhook_field_rel', 'server_id', 'field_id'
webhook_sample_payload
Text
compute='_compute_webhook_sample_payload'
string='Sample Payload'
webhook_url
Char
help='URL to send the POST request to.'
string='Webhook URL'
copy_data(self, default=None)
create_action(self)
run(self)
unlink_action(self)
action_id
Many2one → ir.actions.actions
index=True
required=True
string='Action'
args: 'ir.actions.actions'
name
Char
sequence
Integer
default=10
state
Selection
default='open'
required=True
string='Status'
args: [('open', 'To Do'), ('done', 'Done')]
action_launch(self)
action_open(self)
create(self, vals_list)
ensure_one_open_todo(self)
unlink(self)
write(self, vals)
active
Boolean
default=True
string='active'
bundle
Char
required=True
string='Bundle name'
directive
Selection
default=APPEND_DIRECTIVE
selection=[(APPEND_DIRECTIVE, 'Append'), (PREPEND_DIRECTIVE, 'Prepend'), (AFTER_DIRECTIVE, 'After'), (BEFORE_DIRECTIVE, 'Before'), (REMOVE_DIRECTIVE, 'Remove'), (REPLACE_DIRECTIVE, 'Replace'), (INCLUDE_DIRECTIVE, 'Include')]
string='Directive'
name
Char
required=True
string='Name'
path
Char
required=True
string='Path (or glob pattern)'
sequence
Integer
default=DEFAULT_SEQUENCE
required=True
string='Sequence'
target
Char
string='Target'
create(self, vals_list)
unlink(self)
write(self, values)
access_token
Char
groups='base.group_user'
args: 'Access Token'
checksum
Char
readonly=True
size=40
args: 'Checksum/SHA1'
company_id
Many2one → res.company
change_default=True
default=<expr>
string='Company'
args: 'res.company'
datas
Binary
compute='_compute_datas'
inverse='_inverse_datas'
string='File Content (base64)'
db_datas
Binary
attachment=False
args: 'Database Data'
description
Text
file_size
Integer
readonly=True
args: 'File Size'
index_content
Text
prefetch=False
readonly=True
args: 'Indexed Content'
mimetype
Char
readonly=True
args: 'Mime Type'
name
Char
required=True
args: 'Name'
public
Boolean
raw
Binary
compute='_compute_raw'
inverse='_inverse_raw'
string='File Content (raw)'
res_field
Char
res_id
Many2oneReference
model_field='res_model'
args: 'Resource ID'
res_model
Char
res_name
Char
compute='_compute_res_name'
args: 'Resource Name'
store_fname
Char
index=True
args: 'Stored Filename'
type
Selection
change_default=True
default='binary'
help='You can either upload a file from your computer or copy/paste an internet link to your file.'
required=True
string='Type'
args: [('url', 'URL'), ('binary', 'File')]
url
Char
index='btree_not_null'
size=1024
args: 'Url'
action_get(self)
check(self, mode, values=None)
copy_data(self, default=None)
create(self, vals_list)
create_unique(self, values_list)
force_storage(self)
generate_access_token(self)
get_serving_groups(self)
regenerate_assets_bundles(self)
unlink(self)
validate_access(self, access_token)
write(self, vals)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
key
Char
required=True
value
Text
required=True
create(self, vals_list)
get_param(self, key, default=False)
init(self, force=False)
set_param(self, key, value)
unlink(self)
unlink_default_parameters(self)
write(self, vals)
active
Boolean
default=True
cron_name
Char
compute='_compute_cron_name'
store=True
args: 'Name'
failure_count
Integer
default=0
help='The number of consecutive failures of this job. It is automatically reset on success.'
first_failure_date
Datetime
help='The first time the cron failed. It is automatically reset on success.'
string='First Failure Date'
interval_number
Integer
aggregator=None
default=1
help='Repeat every x.'
required=True
interval_type
Selection
default='months'
required=True
string='Interval Unit'
args: [('minutes', 'Minutes'), ('hours', 'Hours'), ('days', 'Days'), ('weeks', 'Weeks'), ('months', 'Months')]
ir_actions_server_id
Many2one → ir.actions.server
delegate=True
ondelete='restrict'
required=True
args: 'ir.actions.server', 'Server action'
lastcall
Datetime
help='Previous time the cron ran successfully, provided to the job through the context on the `lastcall` key'
string='Last Execution Date'
nextcall
Datetime
default=fields.Datetime.now
help='Next planned execution date for this job.'
required=True
string='Next Execution Date'
priority
Integer
aggregator=None
default=5
help='The priority of the job, as an integer: 0 means higher priority, 10 means lower priority.'
user_id
Many2one → res.users
default=<expr>
required=True
string='Scheduler User'
args: 'res.users'
create(self, vals_list)
default_get(self, fields_list)
method_direct_trigger(self)
toggle(self, model, domain)
try_write(self, values)
unlink(self)
write(self, vals)
cron_id
Many2one → ir.cron
index=True
ondelete='cascade'
required=True
args: 'ir.cron'
deactivate
Boolean
done
Integer
default=0
remaining
Integer
default=0
timed_out_counter
Integer
default=0
No public methods.
call_at
Datetime
index=True
cron_id
Many2one → ir.cron
index=True
args: 'ir.cron'
No public methods.
company_id
Many2one → res.company
help='If set, action binding only applies for this company'
index=True
ondelete='cascade'
string='Company'
args: 'res.company'
condition
Char
help='If set, applies the default upon condition.'
args: 'Condition'
field_id
Many2one → ir.model.fields
index=True
ondelete='cascade'
required=True
string='Field'
args: 'ir.model.fields'
json_value
Char
required=True
args: 'Default Value (JSON format)'
user_id
Many2one → res.users
help='If set, action binding only applies for this user.'
index=True
ondelete='cascade'
string='User'
args: 'res.users'
create(self, vals_list)
discard_records(self, records)
discard_values(self, model_name, field_name, values)
set(self, model_name, field_name, value, user_id=False, company_id=False, condition=False)
unlink(self)
write(self, vals)
No new fields.
Public methods (1)install_demo(self)
error
Char
string='Error'
module_id
Many2one → ir.module.module
required=True
string='Module'
args: 'ir.module.module'
wizard_id
Many2one → ir.demo_failure.wizard
No public methods.
failure_ids
One2many → ir.demo_failure
readonly=True
string='Demo Installation Failures'
args: 'ir.demo_failure', 'wizard_id'
failures_count
Integer
compute='_compute_failures_count'
done(self)
action_id
Many2one → ir.actions.actions
ondelete='cascade'
string='Action'
args: 'ir.actions.actions'
context
Char
default='{}'
help='Context dictionary as Python expression, empty by default (Default: {})'
default_view_mode
Char
help='Default view (if none, default view of the action is taken)'
string='Default View'
domain
Char
default='[]'
help='Domain applied to the active id of the parent model'
filter_ids
One2many → ir.filters
help='Default filter of the embedded action (if none, no filters)'
args: 'ir.filters', 'embedded_action_id'
groups_ids
Many2many → res.groups
help='Groups that can execute the embedded action. Leave empty to allow everybody.'
args: 'res.groups'
is_deletable
Boolean
compute='_compute_is_deletable'
is_visible
Boolean
compute='_compute_is_visible'
help='Computed field to check if the record should be visible according to the domain'
string='Embedded visibility'
name
Char
translate=True
parent_action_id
Many2one → ir.actions.act_window
ondelete='cascade'
required=True
string='Parent Action'
args: 'ir.actions.act_window'
parent_res_id
Integer
string='Active Parent Id'
parent_res_model
Char
required=True
string='Active Parent Model'
python_method
Char
help='Python method returning an action'
sequence
Integer
user_id
Many2one → res.users
help='User specific embedded action. If empty, shared embedded action'
ondelete='cascade'
string='User'
args: 'res.users'
create(self, vals_list)
export_fields
One2many → ir.exports.line
copy=True
string='Export ID'
args: 'ir.exports.line', 'export_id'
name
Char
string='Export Name'
resource
Char
index=True
No public methods.
export_id
Many2one → ir.exports
index=True
ondelete='cascade'
string='Export'
args: 'ir.exports'
name
Char
string='Field Name'
No public methods.
No new fields.
Public methods (3)db_id_for(self, model, field, subfield, value)
for_model(self, model, fromtype=str)
to_field(self, model, field, fromtype=str)
action_id
Many2one → ir.actions.actions
help='The menu action this filter applies to. When left empty the filter applies to all menus for this model.'
ondelete='cascade'
string='Action'
args: 'ir.actions.actions'
active
Boolean
default=True
context
Text
default='{}'
required=True
domain
Text
default='[]'
required=True
embedded_action_id
Many2one → ir.embedded.actions
help='The embedded action this filter is applied to'
ondelete='cascade'
args: 'ir.embedded.actions'
embedded_parent_res_id
Integer
help='id of the record the filter should be applied to. Only used in combination with embedded actions'
is_default
Boolean
string='Default Filter'
model_id
Selection
required=True
selection='_list_all_models'
string='Model'
name
Char
required=True
string='Filter Name'
sort
Char
default='[]'
required=True
user_id
Many2one → res.users
help='The user this filter is private to. When left empty the filter is public and available to all users.'
ondelete='cascade'
string='User'
args: 'res.users'
copy_data(self, default=None)
create_or_replace(self, vals)
get_filters(self, model, action_id=None, embedded_action_id=None, embedded_parent_res_id=None)
write(self, vals)
No new fields.
Public methods (3)get_translations_for_webclient(self, modules, lang)
get_web_translations_hash(self, modules, lang)
routing_map(self, key=None)
create_date
Datetime
readonly=True
string='Created on'
create_uid
Integer
readonly=True
string='Created by'
dbname
Char
index=True
string='Database Name'
func
Char
required=True
string='Function'
level
Char
index=True
line
Char
required=True
message
Text
required=True
name
Char
required=True
path
Char
required=True
type
Selection
index=True
required=True
args: [('client', 'Client'), ('server', 'Server')]
write_date
Datetime
readonly=True
string='Last Updated on'
write_uid
Integer
readonly=True
string='Last Updated by'
init(self)
active
Boolean
default=True
from_filter
Char
help='Comma-separated list of addresses or domains for which this server can be used.\ne.g.: "notification@odoo.com" or "odoo.com"'
args: 'FROM Filtering'
max_email_size
Float
string='Max Email Size'
name
Char
index=True
required=True
string='Name'
sequence
Integer
default=10
help='When no specific mail server is requested for a mail, the highest priority one is used. Default priority is 10 (smaller number = higher priority)'
string='Priority'
smtp_authentication
Selection
default='login'
required=True
string='Authenticate with'
args: [('login', 'Username'), ('certificate', 'SSL Certificate'), ('cli', 'Command Line Interface')]
smtp_authentication_info
Text
compute='_compute_smtp_authentication_info'
args: 'Authentication Info'
smtp_debug
Boolean
help='If enabled, the full output of SMTP sessions will be written to the server log at DEBUG level (this is very verbose and may include confidential info!)'
string='Debugging'
smtp_encryption
Selection
default='none'
help='Choose the connection encryption scheme:\n- None: SMTP sessions are done in cleartext.\n- TLS (STARTTLS): TLS encryption is requested at start of SMTP session (Recommended)\n- SSL/TLS: SMTP sessions are encrypted with SSL/TLS through a dedicated port (default: 465)'
required=True
string='Connection Encryption'
args: [('none', 'None'), ('starttls', 'TLS (STARTTLS)'), ('ssl', 'SSL/TLS')]
smtp_host
Char
help='Hostname or IP of SMTP server'
string='SMTP Server'
smtp_pass
Char
groups='base.group_system'
help='Optional password for SMTP authentication'
string='Password'
smtp_port
Integer
default=25
help='SMTP Port. Usually 465 for SSL, and 25 or 587 for other cases.'
string='SMTP Port'
smtp_ssl_certificate
Binary
attachment=False
groups='base.group_system'
help='SSL certificate used for authentication'
args: 'SSL Certificate'
smtp_ssl_private_key
Binary
attachment=False
groups='base.group_system'
help='SSL private key used for authentication'
args: 'SSL Private Key'
smtp_user
Char
groups='base.group_system'
help='Optional username for SMTP authentication'
string='Username'
action_retrieve_max_email_size(self)
build_email(self, email_from, email_to, subject, body, email_cc=None, email_bcc=None, reply_to=False, attachments=None, message_id=None, references=None, object_id=False, subtype='plain', headers=None, body_alternative=None, subtype_alternative='plain')
connect(self, host=None, port=None, user=None, password=None, encryption=None, smtp_from=None, ssl_certificate=None, ssl_private_key=None, smtp_debug=False, mail_server_id=None, allow_archived=False)
send_email(self, message, mail_server_id=None, smtp_server=None, smtp_port=None, smtp_user=None, smtp_password=None, smtp_encryption=None, smtp_ssl_certificate=None, smtp_ssl_private_key=None, smtp_debug=False, smtp_session=None)
test_smtp_connection(self, autodetect_max_email_size=False)
write(self, vals)
access_ids
One2many → ir.model.access
string='Access'
args: 'ir.model.access', 'model_id'
count
Integer
compute='_compute_count'
help='Total number of records in this model'
string='Count (Incl. Archived)'
field_id
One2many → ir.model.fields
copy=True
default=_default_field_id
required=True
string='Fields'
args: 'ir.model.fields', 'model_id'
info
Text
string='Information'
inherited_model_ids
Many2many → ir.model
compute='_inherited_models'
help='The list of models that extends the current model.'
string='Inherited models'
args: 'ir.model'
model
Char
default='x_'
required=True
modules
Char
compute='_in_modules'
help='List of modules in which the object is defined or inherited'
string='In Apps'
name
Char
required=True
string='Model Description'
translate=True
order
Char
default='id'
help='SQL expression for ordering records in the model; e.g. "x_sequence asc, id desc"'
required=True
string='Order'
rule_ids
One2many → ir.rule
string='Record Rules'
args: 'ir.rule', 'model_id'
state
Selection
default='manual'
readonly=True
string='Type'
args: [('manual', 'Custom Object'), ('base', 'Base Object')]
transient
Boolean
string='Transient Model'
view_ids
One2many → ir.ui.view
compute='_view_ids'
string='Views'
args: 'ir.ui.view'
create(self, vals_list)
name_create(self, name)
unlink(self)
write(self, vals)
active
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).'
group_id
Many2one → res.groups
index=True
ondelete='restrict'
string='Group'
args: 'res.groups'
model_id
Many2one → ir.model
index=True
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
name
Char
index=True
required=True
perm_create
Boolean
string='Create Access'
perm_read
Boolean
string='Read Access'
perm_unlink
Boolean
string='Delete Access'
perm_write
Boolean
string='Write Access'
call_cache_clearing_methods(self)
check(self, model, mode='read', raise_exception=True)
create(self, vals_list)
group_names_with_access(self, model_name, access_mode)
unlink(self)
write(self, values)
create_date
Datetime
definition
Char
help='PostgreSQL constraint definition'
message
Char
help='Error message returned when the constraint is violated.'
translate=True
model
Many2one → ir.model
index=True
ondelete='cascade'
required=True
args: 'ir.model'
module
Many2one → ir.module.module
index=True
ondelete='cascade'
required=True
args: 'ir.module.module'
name
Char
help='PostgreSQL constraint or foreign key name.'
index=True
required=True
string='Constraint'
type
Char
help='Type of the constraint: `f` for a foreign key, `u` for other constraints.'
index=True
required=True
size=1
string='Constraint Type'
write_date
Datetime
copy_data(self, default=None)
unlink(self)
complete_name
Char
compute='_compute_complete_name'
string='Complete ID'
model
Char
required=True
string='Model Name'
module
Char
default=''
required=True
name
Char
help='External Key/Identifier that can be used for data integration with third-party systems'
required=True
string='External Identifier'
noupdate
Boolean
default=False
string='Non Updatable'
reference
Char
compute='_compute_reference'
readonly=True
store=False
string='Reference'
res_id
Many2oneReference
help='ID of the target record in the database'
model_field='model'
string='Record ID'
check_object_reference(self, module, xml_id, raise_on_access_error=False)
copy_data(self, default=None)
create(self, vals_list)
toggle_noupdate(self, model, res_id)
unlink(self)
write(self, values)
column1
Char
help='Column referring to the record in the model table'
string='Column 1'
column2
Char
help='Column referring to the record in the comodel table'
string='Column 2'
company_dependent
Boolean
help='Whether values for this field is company dependent'
readonly=True
string='Company Dependent'
complete_name
Char
index=True
compute
Text
help="Code to compute the value of the field.\nIterate on the recordset 'self' and assign the field's value:\n\n for record in self:\n record['size'] = len(record.name)\n\nModules time, datetime, dateutil are available."
copied
Boolean
compute='_compute_copied'
help='Whether the value is copied when duplicating a record.'
readonly=False
store=True
string='Copied'
currency_field
Char
help='Name of the Many2one field holding the res.currency'
string='Currency field'
depends
Char
help='Dependencies of compute method; a list of comma-separated field names, like\n\n name, partner_id.name'
string='Dependencies'
domain
Char
default='[]'
help="The optional domain to restrict possible values for relationship fields, specified as a Python expression defining a list of triplets. For example: [('color','=','red')]"
field_description
Char
default=''
required=True
string='Field Label'
translate=True
group_expand
Boolean
help="If checked, all the records of the target model will be included\nin a grouped result (e.g. 'Group By' filters, Kanban columns, etc.).\nNote that it can significantly reduce performance if the target model\nof the field contains a lot of records; usually used on models with\nfew records (e.g. Stages, Job Positions, Event Types, etc.)."
string='Expand Groups'
groups
Many2many → res.groups
help
Text
string='Field Help'
translate=True
index
Boolean
string='Indexed'
model
Char
help='The technical name of the model this field belongs to'
index=True
required=True
string='Model Name'
model_id
Many2one → ir.model
help='The model this field belongs to'
index=True
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
modules
Char
compute='_in_modules'
help='List of modules in which the field is defined'
string='In Apps'
name
Char
default='x_'
index=True
required=True
string='Field Name'
on_delete
Selection
default='set null'
help='On delete property for many2one fields'
string='On Delete'
args: [('cascade', 'Cascade'), ('set null', 'Set NULL'), ('restrict', 'Restrict')]
readonly
Boolean
related
Char
help='The corresponding related field, if any. This must be a dot-separated list of field names.'
string='Related Field Definition'
related_field_id
Many2one → ir.model.fields
compute='_compute_related_field_id'
ondelete='cascade'
store=True
string='Related Field'
args: 'ir.model.fields'
relation
Char
help='For relationship fields, the technical name of the target model'
string='Related Model'
relation_field
Char
help='For one2many fields, the field on the target model that implement the opposite many2one relationship'
relation_field_id
Many2one → ir.model.fields
compute='_compute_relation_field_id'
ondelete='cascade'
store=True
string='Relation field'
args: 'ir.model.fields'
relation_table
Char
help='Used for custom many2many fields to define a custom relation table name'
required
Boolean
sanitize
Boolean
default=True
string='Sanitize HTML'
sanitize_attributes
Boolean
default=True
string='Sanitize HTML Attributes'
sanitize_form
Boolean
default=True
string='Sanitize HTML Form'
sanitize_overridable
Boolean
default=False
string='Sanitize HTML overridable'
sanitize_style
Boolean
default=False
string='Sanitize HTML Style'
sanitize_tags
Boolean
default=True
string='Sanitize HTML Tags'
selectable
Boolean
default=True
selection
Char
compute='_compute_selection'
inverse='_inverse_selection'
string='Selection Options (Deprecated)'
selection_ids
One2many → ir.model.fields.selection
copy=True
string='Selection Options'
args: 'ir.model.fields.selection', 'field_id'
size
Integer
state
Selection
default='manual'
index=True
readonly=True
required=True
string='Type'
args: [('manual', 'Custom Field'), ('base', 'Base Field')]
store
Boolean
default=True
help='Whether the value is stored in the database.'
string='Stored'
strip_classes
Boolean
default=False
string='Strip Class Attribute'
strip_style
Boolean
default=False
string='Strip Style Attribute'
translate
Boolean
help='Whether values for this field can be translated (enables the translation mechanism for that field)'
string='Translatable'
ttype
Selection
required=True
selection=FIELD_TYPES
string='Field Type'
create(self, vals_list)
get_field_help(self, model_name)
get_field_selection(self, model_name, field_name)
get_field_string(self, model_name)
unlink(self)
write(self, vals)
field_id
Many2one → ir.model.fields
domain=[('ttype', 'in', ['selection', 'reference'])]
index=True
ondelete='cascade'
required=True
args: 'ir.model.fields'
name
Char
required=True
translate=True
sequence
Integer
default=1000
value
Char
required=True
create(self, vals_list)
unlink(self)
write(self, vals)
model_id
Many2one → ir.model
ondelete='cascade'
required=True
args: 'ir.model'
parent_field_id
Many2one → ir.model.fields
ondelete='cascade'
args: 'ir.model.fields'
parent_id
Many2one → ir.model
ondelete='cascade'
required=True
args: 'ir.model'
No public methods.
create_date
Datetime
model
Many2one → ir.model
index=True
ondelete='cascade'
required=True
args: 'ir.model'
module
Many2one → ir.module.module
index=True
ondelete='cascade'
required=True
args: 'ir.module.module'
name
Char
help='PostgreSQL table name implementing a many2many relation.'
index=True
required=True
string='Relation Name'
write_date
Datetime
No public methods.
No new fields.
Public methods (2)unlink(self)
write(self, values)
child_ids
One2many → ir.module.category
string='Child Applications'
args: 'ir.module.category', 'parent_id'
description
Text
string='Description'
translate=True
exclusive
Boolean
string='Exclusive'
module_ids
One2many → ir.module.module
string='Modules'
args: 'ir.module.module', 'category_id'
name
Char
index=True
required=True
string='Name'
translate=True
parent_id
Many2one → ir.module.category
index=True
string='Parent Application'
args: 'ir.module.category'
sequence
Integer
string='Sequence'
visible
Boolean
default=True
string='Visible'
xml_id
Char
compute='_compute_xml_id'
string='External ID'
No public methods.
application
Boolean
readonly=True
args: 'Application'
author
Char
readonly=True
args: 'Author'
auto_install
Boolean
help='An auto-installable module is automatically installed by the system when all its dependencies are satisfied. If the module has no dependency, it is always installed.'
args: 'Automatic Installation'
category_id
Many2one → ir.module.category
index=True
readonly=True
string='Category'
args: 'ir.module.category'
contributors
Text
readonly=True
args: 'Contributors'
country_ids
Many2many → res.country
demo
Boolean
default=False
readonly=True
args: 'Demo Data'
dependencies_id
One2many → ir.module.module.dependency
readonly=True
string='Dependencies'
args: 'ir.module.module.dependency', 'module_id'
description
Text
readonly=True
translate=True
args: 'Description'
description_html
Html
compute='_get_desc'
args: 'Description HTML'
exclusion_ids
One2many → ir.module.module.exclusion
readonly=True
string='Exclusions'
args: 'ir.module.module.exclusion', 'module_id'
has_iap
Boolean
compute='_compute_has_iap'
icon
Char
icon_flag
Char
compute='_get_icon_image'
string='Flag'
icon_image
Binary
compute='_get_icon_image'
string='Icon'
installed_version
Char
compute='_get_latest_version'
args: 'Latest Version'
latest_version
Char
readonly=True
args: 'Installed Version'
license
Selection
default='LGPL-3'
readonly=True
string='License'
args: [('GPL-2', 'GPL Version 2'), ('GPL-2 or any later version', 'GPL-2 or later version'), ('GPL-3', 'GPL Version 3'), ('GPL-3 or any later version', 'GPL-3 or later version'), ('AGPL-3', 'Affero GPL-3'), ('LGPL-3', 'LGPL Version 3'), ('Other OSI approved licence', 'Other OSI Approved License'), ('OEEL-1', 'Odoo Enterprise Edition License v1.0'), ('OPL-1', 'Odoo Proprietary License v1.0'), ('Other proprietary', 'Other Proprietary')]
maintainer
Char
readonly=True
args: 'Maintainer'
menus_by_module
Text
compute='_get_views'
store=True
string='Menus'
name
Char
readonly=True
required=True
args: 'Technical Name'
published_version
Char
readonly=True
args: 'Published Version'
reports_by_module
Text
compute='_get_views'
store=True
string='Reports'
sequence
Integer
default=100
args: 'Sequence'
shortdesc
Char
readonly=True
translate=True
args: 'Module Name'
state
Selection
default='uninstallable'
index=True
readonly=True
string='Status'
args: STATES
summary
Char
readonly=True
translate=True
args: 'Summary'
to_buy
Boolean
default=False
args: 'Odoo Enterprise Module'
url
Char
readonly=True
args: 'URL'
views_by_module
Text
compute='_get_views'
store=True
string='Views'
website
Char
readonly=True
args: 'Website'
button_immediate_install(self)
button_immediate_uninstall(self)
button_immediate_upgrade(self)
button_install(self)
button_install_cancel(self)
button_uninstall(self)
button_uninstall_cancel(self)
button_uninstall_wizard(self)
button_upgrade(self)
button_upgrade_cancel(self)
check_external_dependencies(self, module_name, newstate='to install')
create(self, vals_list)
downstream_dependencies(self, known_deps=None, exclude_states=('uninstalled', 'uninstallable', 'to remove'))
get_module_info(cls, name)
get_values_from_terp(terp)
module_uninstall(self)
next(self)
search_panel_select_range(self, field_name, **kwargs)
unlink(self)
update_list(self)
upstream_dependencies(self, known_deps=None, exclude_states=('installed', 'uninstallable', 'to remove'))
auto_install_required
Boolean
default=True
help='Whether this dependency blocks automatic installation of the dependent'
depend_id
Many2one → ir.module.module
compute='_compute_depend'
search='_search_depend'
args: 'ir.module.module', 'Dependency'
module_id
Many2one → ir.module.module
ondelete='cascade'
args: 'ir.module.module', 'Module'
name
Char
index=True
state
Selection
compute='_compute_state'
string='Status'
args: DEP_STATES
all_dependencies(self, module_names)
exclusion_id
Many2one → ir.module.module
compute='_compute_exclusion'
search='_search_exclusion'
args: 'ir.module.module', 'Exclusion Module'
module_id
Many2one → ir.module.module
ondelete='cascade'
args: 'ir.module.module', 'Module'
name
Char
index=True
state
Selection
compute='_compute_state'
string='Status'
args: DEP_STATES
No public methods.
create_date
Datetime
duration
Float
entry_count
Integer
init_stack_trace
Text
prefetch=False
args: 'Initial stack trace'
name
Char
qweb
Text
prefetch=False
args: 'Qweb'
session
Char
index=True
args: 'Session'
speedscope
Binary
compute='_compute_speedscope'
args: 'Speedscope'
speedscope_url
Text
compute='_compute_speedscope_url'
args: 'Open'
sql
Text
prefetch=False
args: 'Sql'
sql_count
Integer
traces_async
Text
prefetch=False
args: 'Traces Async'
traces_sync
Text
prefetch=False
args: 'Traces Sync'
set_profiling(self, profile=None, collectors=None, params=None)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (5)attributes(self, record, field_name, options, values=None)
get_available_options(self)
record_to_html(self, record, field_name, options)
user_lang(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options=None)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)record_to_html(self, record, field_name, options)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
active
Boolean
default=True
help='If you uncheck the active field, it will disable the record rule without deleting it (if you delete a native record rule, it may be re-created when you reload the module).'
domain_force
Text
string='Domain'
groups
Many2many → res.groups
ondelete='restrict'
args: 'res.groups', 'rule_group_rel', 'rule_group_id', 'group_id'
model_id
Many2one → ir.model
index=True
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
name
Char
index=True
perm_create
Boolean
default=True
string='Create'
perm_read
Boolean
default=True
string='Read'
perm_unlink
Boolean
default=True
string='Delete'
perm_write
Boolean
default=True
string='Write'
create(self, vals_list)
unlink(self)
write(self, vals)
active
Boolean
default=True
code
Char
string='Sequence Code'
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
date_range_ids
One2many → ir.sequence.date_range
string='Subsequences'
args: 'ir.sequence.date_range', 'sequence_id'
implementation
Selection
default='standard'
help="While assigning a sequence number to a record, the 'no gap' sequence implementation ensures that each previous sequence number has been assigned already. While this sequence implementation will not skip any sequence number upon assignment, there can still be gaps in the sequence if records are deleted. The 'no gap' implementation is slower than the standard one."
required=True
string='Implementation'
args: [('standard', 'Standard'), ('no_gap', 'No gap')]
name
Char
required=True
number_increment
Integer
default=1
help='The next number of the sequence will be incremented by this number'
required=True
string='Step'
number_next
Integer
default=1
help='Next number of this sequence'
required=True
string='Next Number'
number_next_actual
Integer
compute='_get_number_next_actual'
help='Next number that will be used. This number can be incremented frequently so the displayed value might already be obsolete'
inverse='_set_number_next_actual'
string='Actual Next Number'
padding
Integer
default=0
help="Odoo will automatically adds some '0' on the left of the 'Next Number' to get the required padding size."
required=True
string='Sequence Size'
prefix
Char
help='Prefix value of the record for the sequence'
trim=False
suffix
Char
help='Suffix value of the record for the sequence'
trim=False
use_date_range
Boolean
string='Use subsequences per date_range'
create(self, vals_list)
get(self, code)
get_id(self, sequence_code_or_id, code_or_id='id')
get_next_char(self, number_next)
next_by_code(self, sequence_code, sequence_date=None)
next_by_id(self, sequence_date=None)
unlink(self)
write(self, values)
date_from
Date
required=True
string='From'
date_to
Date
required=True
string='To'
number_next
Integer
default=1
help='Next number of this sequence'
required=True
string='Next Number'
number_next_actual
Integer
compute='_get_number_next_actual'
help='Next number that will be used. This number can be incremented frequently so the displayed value might already be obsolete'
inverse='_set_number_next_actual'
string='Actual Next Number'
sequence_id
Many2one → ir.sequence
ondelete='cascade'
required=True
string='Main Sequence'
args: 'ir.sequence'
create(self, vals_list)
default_get(self, fields)
unlink(self)
write(self, values)
action
Reference
selection=[('ir.actions.report', 'ir.actions.report'), ('ir.actions.act_window', 'ir.actions.act_window'), ('ir.actions.act_url', 'ir.actions.act_url'), ('ir.actions.server', 'ir.actions.server'), ('ir.actions.client', 'ir.actions.client')]
active
Boolean
default=True
child_id
One2many → ir.ui.menu
string='Child IDs'
args: 'ir.ui.menu', 'parent_id'
complete_name
Char
compute='_compute_complete_name'
recursive=True
string='Full Path'
groups_id
Many2many → res.groups
help="If you have groups, the visibility of this menu will be based on these groups. If this field is empty, Odoo will compute visibility based on the related object's read access."
string='Groups'
args: 'res.groups', 'ir_ui_menu_group_rel', 'menu_id', 'gid'
name
Char
required=True
string='Menu'
translate=True
parent_id
Many2one → ir.ui.menu
index=True
ondelete='restrict'
string='Parent Menu'
args: 'ir.ui.menu'
parent_path
Char
index=True
sequence
Integer
default=10
web_icon
Char
string='Web Icon File'
web_icon_data
Binary
attachment=True
string='Web Icon Image'
copy(self, default=None)
create(self, vals_list)
get_user_roots(self)
load_menus(self, debug)
load_menus_root(self)
search_count(self, domain, limit=None)
search_fetch(self, domain, field_names, offset=0, limit=None, order=None)
unlink(self)
write(self, values)
active
Boolean
default=True
help='If this view is inherited,\n* if True, the view always extends its parent\n* if False, the view currently does not extend its parent but can be enabled\n '
arch
Text
compute='_compute_arch'
help='This field should be used when accessing view arch. It will use translation.\n Note that it will read `arch_db` or `arch_fs` if in dev-xml mode.'
inverse='_inverse_arch'
string='View Architecture'
arch_base
Text
compute='_compute_arch_base'
help='This field is the same as `arch` field without translations'
inverse='_inverse_arch_base'
string='Base View Architecture'
arch_db
Text
help='This field stores the view arch.'
string='Arch Blob'
translate=xml_translate
arch_fs
Char
help='File from where the view originates.\n Useful to (hard) reset broken views or to read arch from file in dev-xml mode.'
string='Arch Filename'
arch_prev
Text
help='This field will save the current `arch_db` before writing on it.\n Useful to (soft) reset a broken view.'
string='Previous View Architecture'
arch_updated
Boolean
string='Modified Architecture'
groups_id
Many2many → res.groups
help='If this field is empty, the view applies to all users. Otherwise, the view applies to the users of those groups only.'
string='Groups'
args: 'res.groups', 'ir_ui_view_group_rel', 'view_id', 'group_id'
inherit_children_ids
One2many → ir.ui.view
string='Views which inherit from this one'
args: 'ir.ui.view', 'inherit_id'
inherit_id
Many2one → ir.ui.view
index=True
ondelete='restrict'
string='Inherited View'
args: 'ir.ui.view'
key
Char
index='btree_not_null'
mode
Selection
default='primary'
help="Only applies if this view inherits from an other one (inherit_id is not False/Null).\n\n* if extension (default), if this view is requested the closest primary view\nis looked up (via inherit_id), then all views inheriting from it with this\nview's model are applied\n* if primary, the closest primary view is fully resolved (even if it uses a\ndifferent model than this one), then this view's inheritance specs\n(<xpath/>) are applied, and the result is used as if it were this view's\nactual arch.\n"
required=True
string='View inheritance mode'
args: [('primary', 'Base view'), ('extension', 'Extension View')]
model
Char
index=True
model_data_id
Many2one → ir.model.data
compute='_compute_model_data_id'
search='_search_model_data_id'
string='Model Data'
args: 'ir.model.data'
model_id
Many2one → ir.model
compute='_compute_model_id'
inverse='_inverse_compute_model_id'
string='Model of the view'
args: 'ir.model'
name
Char
required=True
string='View Name'
priority
Integer
default=16
required=True
string='Sequence'
type
Selection
string='View Type'
args: [('list', 'List'), ('form', 'Form'), ('graph', 'Graph'), ('pivot', 'Pivot'), ('calendar', 'Calendar'), ('kanban', 'Kanban'), ('search', 'Search'), ('qweb', 'QWeb')]
warning_info
Html
compute='_compute_warning_info'
string='Warning information'
xml_id
Char
compute='_compute_xml_id'
help='ID of the view defined in xml file'
string='External ID'
apply_inheritance_specs(self, source, specs_tree, pre_locate=<expr>)
copy_data(self, default=None)
create(self, vals_list)
default_view(self, model, view_type)
distribute_branding(self, e, branding=None, parent_xpath='', index_map=ConstantMapping(1))
get_combined_arch(self)
inherit_branding(self, specs_tree)
is_node_branded(self, node)
locate_node(self, arch, spec)
postprocess_and_fields(self, node, model=None, **options)
render_public_asset(self, template, values=None)
reset_arch(self, mode='soft')
unlink(self)
write(self, vals)
arch
Text
required=True
string='View Architecture'
ref_id
Many2one → ir.ui.view
index=True
ondelete='cascade'
required=True
string='Original View'
args: 'ir.ui.view'
user_id
Many2one → res.users
index=True
ondelete='cascade'
required=True
string='User'
args: 'res.users'
No public methods.
No new fields.
Public methods (0)No public methods.
image
Char
string='Preview image src'
name
Char
pdf
Char
string='Preview pdf src'
sequence
Integer
default=50
view_id
Many2one → ir.ui.view
required=True
args: 'ir.ui.view', 'Document Template'
No public methods.
css_margins
Boolean
default=False
args: 'Use css margins'
default
Boolean
disable_shrinking
Boolean
dpi
Integer
default=90
required=True
args: 'Output DPI'
format
Selection
default='A4'
help='Select Proper Paper size'
args: <expr>, 'Paper size'
header_line
Boolean
default=False
args: 'Display a header line'
header_spacing
Integer
default=35
args: 'Header spacing'
margin_bottom
Float
default=20
args: 'Bottom Margin (mm)'
margin_left
Float
default=7
args: 'Left Margin (mm)'
margin_right
Float
default=7
args: 'Right Margin (mm)'
margin_top
Float
default=40
args: 'Top Margin (mm)'
name
Char
required=True
args: 'Name'
orientation
Selection
default='Landscape'
args: [('Landscape', 'Landscape'), ('Portrait', 'Portrait')], 'Orientation'
page_height
Integer
default=False
args: 'Page height (mm)'
page_width
Integer
default=False
args: 'Page width (mm)'
print_page_height
Float
compute='_compute_print_page_size'
args: 'Print page height (mm)'
print_page_width
Float
compute='_compute_print_page_size'
args: 'Print page width (mm)'
report_ids
One2many → ir.actions.report
help='Explicitly associated reports'
args: 'ir.actions.report', 'paperformat_id', 'Associated reports'
No public methods.
active
Boolean
default=True
bic
Char
help='Sometimes called BIC or Swift.'
index=True
args: 'Bank Identifier Code'
city
Char
country
Many2one → res.country
country_code
Char
related='country.code'
string='Country Code'
email
Char
name
Char
required=True
phone
Char
state
Many2one → res.country.state
domain="[('country_id', '=?', country)]"
args: 'res.country.state', 'Fed. State'
street
Char
street2
Char
zip
Char
No public methods.
active
Boolean
default=True
all_child_ids
One2many → res.company
context={'active_test': False}
args: 'res.company', 'parent_id'
bank_ids
One2many
readonly=False
related='partner_id.bank_ids'
child_ids
One2many → res.company
string='Branches'
args: 'res.company', 'parent_id'
city
Char
compute='_compute_address'
inverse='_inverse_city'
color
Integer
compute='_compute_color'
inverse='_inverse_color'
company_details
Html
help='Header text displayed at the top of all reports.'
string='Company Details'
translate=True
company_registry
Char
readonly=False
related='partner_id.company_registry'
string='Company ID'
country_code
Char
depends=['country_id']
related='country_id.code'
country_id
Many2one → res.country
compute='_compute_address'
inverse='_inverse_country'
string='Country'
args: 'res.country'
currency_id
Many2one → res.currency
default=<expr>
required=True
string='Currency'
args: 'res.currency'
email
Char
readonly=False
related='partner_id.email'
store=True
external_report_layout_id
Many2one → ir.ui.view
font
Selection
default='Lato'
args: [('Lato', 'Lato'), ('Roboto', 'Roboto'), ('Open_Sans', 'Open Sans'), ('Montserrat', 'Montserrat'), ('Oswald', 'Oswald'), ('Raleway', 'Raleway'), ('Tajawal', 'Tajawal'), ('Fira_Mono', 'Fira Mono')]
is_company_details_empty
Boolean
compute='_compute_empty_company_details'
layout_background
Selection
default='Blank'
required=True
args: [('Blank', 'Blank'), ('Demo logo', 'Demo logo'), ('Custom', 'Custom')]
layout_background_image
Binary
logo
Binary
default=_get_logo
readonly=False
related='partner_id.image_1920'
string='Company Logo'
logo_web
Binary
attachment=False
compute='_compute_logo_web'
store=True
mobile
Char
readonly=False
related='partner_id.mobile'
store=True
name
Char
readonly=False
related='partner_id.name'
required=True
store=True
string='Company Name'
paperformat_id
Many2one → report.paperformat
default=<expr>
args: 'report.paperformat', 'Paper format'
parent_id
Many2one → res.company
index=True
ondelete='restrict'
string='Parent Company'
args: 'res.company'
parent_ids
Many2many → res.company
compute='_compute_parent_ids'
compute_sudo=True
args: 'res.company'
parent_path
Char
index=True
partner_id
Many2one → res.partner
required=True
string='Partner'
args: 'res.partner'
phone
Char
readonly=False
related='partner_id.phone'
store=True
primary_color
Char
report_footer
Html
help='Footer text displayed at the bottom of all reports.'
string='Report Footer'
translate=True
report_header
Html
help="Company tagline, which is included in a printed document's header or footer (depending on the selected layout)."
string='Company Tagline'
translate=True
root_id
Many2one → res.company
compute='_compute_parent_ids'
compute_sudo=True
args: 'res.company'
secondary_color
Char
sequence
Integer
default=10
help='Used to order Companies in the company switcher'
state_id
Many2one → res.country.state
compute='_compute_address'
domain="[('country_id', '=?', country_id)]"
inverse='_inverse_state'
string='Fed. State'
args: 'res.country.state'
street
Char
compute='_compute_address'
inverse='_inverse_street'
street2
Char
compute='_compute_address'
inverse='_inverse_street2'
uninstalled_l10n_module_ids
Many2many → ir.module.module
compute='_compute_uninstalled_l10n_module_ids'
args: 'ir.module.module'
user_ids
Many2many → res.users
string='Accepted Users'
args: 'res.users', 'res_company_users_rel', 'cid', 'user_id'
uses_default_logo
Boolean
compute='_compute_uses_default_logo'
store=True
vat
Char
readonly=False
related='partner_id.vat'
string='Tax ID'
website
Char
readonly=False
related='partner_id.website'
zip
Char
compute='_compute_address'
inverse='_inverse_zip'
action_all_company_branches(self)
cache_invalidation_fields(self)
copy(self, default=None)
create(self, vals_list)
init(self)
install_l10n_modules(self)
unlink(self)
write(self, values)
No new fields.
Public methods (7)action_cancel(self)
action_next(self)
action_skip(self)
cancel(self)
execute(self)
next(self)
start(self)
No new fields.
Public methods (12)action_open_template_user(self)
cancel(self)
copy(self, default=None)
create(self, vals_list)
default_get(self, fields)
execute(self)
get_config_warning(self, msg)
get_option_name(self, full_field_name)
get_option_path(self, menu_xml_id)
get_values(self)
onchange_module(self, field_value, module_name)
set_values(self)
address_format
Text
default='%(street)s\n%(street2)s\n%(city)s %(state_code)s %(zip)s\n%(country_name)s'
help="Display format to use for addresses belonging to this country.\n\nYou can use python-style string pattern with all the fields of the address (for example, use '%(street)s' to display the field 'street') plus\n%(state_name)s: the name of the state\n%(state_code)s: the code of the state\n%(country_name)s: the name of the country\n%(country_code)s: the code of the country"
string='Layout in Reports'
address_view_id
Many2one → ir.ui.view
comodel_name='ir.ui.view'
domain=[('model', '=', 'res.partner'), ('type', '=', 'form')]
help='Use this field if you want to replace the usual way to encode a complete address. Note that the address_format field is used to modify the way to display addresses (in reports for example), while this field is used to modify the input form for addresses.'
string='Input View'
code
Char
help='The ISO country code in two chars. \nYou can use this field for quick search.'
required=True
size=2
string='Country Code'
country_group_ids
Many2many → res.country.group
string='Country Groups'
args: 'res.country.group', 'res_country_res_country_group_rel', 'res_country_id', 'res_country_group_id'
currency_id
Many2one → res.currency
string='Currency'
args: 'res.currency'
image_url
Char
compute='_compute_image_url'
help='Url of static flag image'
string='Flag'
name
Char
required=True
string='Country Name'
translate=True
name_position
Selection
default='before'
help='Determines where the customer/company name should be placed, i.e. after or before the address.'
string='Customer Name Position'
args: [('before', 'Before Address'), ('after', 'After Address')]
phone_code
Integer
string='Country Calling Code'
state_ids
One2many → res.country.state
string='States'
args: 'res.country.state', 'country_id'
state_required
Boolean
default=False
vat_label
Char
help='Use this field if you want to change vat label.'
prefetch=True
string='Vat Label'
translate=True
zip_required
Boolean
default=True
create(self, vals_list)
get_address_fields(self)
name_search(self, name='', args=None, operator='ilike', limit=100)
write(self, vals)
country_ids
Many2many → res.country
string='Countries'
args: 'res.country', 'res_country_res_country_group_rel', 'res_country_group_id', 'res_country_id'
name
Char
required=True
translate=True
No public methods.
code
Char
help='The state code.'
required=True
string='State Code'
country_id
Many2one → res.country
required=True
string='Country'
args: 'res.country'
name
Char
help='Administrative divisions of a country. E.g. Fed. State, Department, Canton'
required=True
string='State Name'
name_search(self, name='', args=None, operator='ilike', limit=100)
active
Boolean
default=True
currency_subunit_label
Char
string='Currency Subunit'
translate=True
currency_unit_label
Char
string='Currency Unit'
translate=True
date
Date
compute='_compute_date'
decimal_places
Integer
compute='_compute_decimal_places'
help='Decimal places taken into account for operations on amounts in this currency. It is determined by the rounding factor.'
store=True
full_name
Char
string='Name'
inverse_rate
Float
compute='_compute_current_rate'
digits=0
help='The currency of rate 1 to the rate of the currency.'
readonly=True
is_current_company_currency
Boolean
compute='_compute_is_current_company_currency'
iso_numeric
Integer
help='Currency Numeric Code (ISO 4217).'
string='Currency numeric code.'
name
Char
help='Currency Code (ISO 4217)'
required=True
size=3
string='Currency'
position
Selection
default='after'
help='Determines where the currency symbol should be placed after or before the amount.'
string='Symbol Position'
args: [('after', 'After Amount'), ('before', 'Before Amount')]
rate
Float
compute='_compute_current_rate'
digits=0
help='The rate of the currency to the currency of rate 1.'
string='Current Rate'
rate_ids
One2many → res.currency.rate
string='Rates'
args: 'res.currency.rate', 'currency_id'
rate_string
Char
compute='_compute_current_rate'
rounding
Float
default=0.01
digits=(12, 6)
help='Amounts in this currency are rounded off to the nearest multiple of the rounding factor.'
string='Rounding Factor'
symbol
Char
help='Currency sign, to be used when printing amounts.'
required=True
amount_to_text(self, amount)
compare_amounts(self, amount1, amount2)
create(self, vals_list)
format(self, amount)
is_zero(self, amount)
round(self, amount)
unlink(self)
write(self, vals)
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
company_rate
Float
aggregator='avg'
compute='_compute_company_rate'
digits=0
help='The currency of rate 1 to the rate of the currency.'
inverse='_inverse_company_rate'
currency_id
Many2one → res.currency
ondelete='cascade'
readonly=True
required=True
string='Currency'
args: 'res.currency'
inverse_company_rate
Float
aggregator='avg'
compute='_compute_inverse_company_rate'
digits=0
help='The rate of the currency to the currency of rate 1 '
inverse='_inverse_inverse_company_rate'
name
Date
default=fields.Date.context_today
index=True
required=True
string='Date'
rate
Float
aggregator='avg'
digits=0
help='The rate of the currency to the currency of rate 1'
string='Technical Rate'
create(self, vals_list)
write(self, vals)
No new fields.
Public methods (2)init(self)
revoke(self)
browser
Char
city
Char
country
Char
device_type
Selection
first_activity
Datetime
ip_address
Char
is_current
Boolean
compute='_compute_is_current'
args: 'Current Device'
last_activity
Datetime
index='btree'
args: 'Last Activity'
linked_ip_addresses
Text
compute='_compute_linked_ip_addresses'
args: 'Linked IP address'
platform
Char
revoked
Boolean
help='If True, the session file corresponding to this device\n no longer exists on the filesystem.'
args: 'Revoked'
session_identifier
Char
index='btree'
required=True
args: 'Session Identifier'
user_id
Many2one → res.users
index='btree'
args: 'res.users'
init(self)
api_key_duration
Float
help='Determines the maximum duration of an api key created by a user belonging to this group.'
string='API Keys maximum duration days'
category_id
Many2one → ir.module.category
index=True
string='Application'
args: 'ir.module.category'
color
Integer
string='Color Index'
comment
Text
translate=True
full_name
Char
compute='_compute_full_name'
search='_search_full_name'
string='Group Name'
menu_access
Many2many → ir.ui.menu
string='Access Menu'
args: 'ir.ui.menu', 'ir_ui_menu_group_rel', 'gid', 'menu_id'
model_access
One2many → ir.model.access
copy=True
string='Access Controls'
args: 'ir.model.access', 'group_id'
name
Char
required=True
translate=True
rule_groups
Many2many → ir.rule
domain="[('global', '=', False)]"
string='Rules'
args: 'ir.rule', 'rule_group_rel', 'group_id', 'rule_group_id'
share
Boolean
help='Group created to set access rights for sharing data with some users.'
string='Share Group'
users
Many2many → res.users
view_access
Many2many → ir.ui.view
string='Views'
args: 'ir.ui.view', 'ir_ui_view_group_rel', 'group_id', 'view_id'
copy_data(self, default=None)
write(self, vals)
implied_ids
Many2many → res.groups
help='Users of this group automatically inherit those groups'
string='Inherits'
args: 'res.groups', 'res_groups_implied_rel', 'gid', 'hid'
trans_implied_ids
Many2many → res.groups
compute='_compute_trans_implied'
recursive=True
string='Transitively inherits'
args: 'res.groups'
create(self, vals_list)
unlink(self)
write(self, values)
No new fields.
Public methods (5)create(self, vals_list)
get_application_groups(self, domain)
get_groups_by_application(self)
unlink(self)
write(self, values)
active
Boolean
code
Char
help='This field is used to set/get locales for user'
required=True
string='Locale Code'
date_format
Char
default=DEFAULT_DATE_FORMAT
required=True
string='Date Format'
decimal_point
Char
default='.'
required=True
string='Decimal Separator'
trim=False
direction
Selection
default='ltr'
required=True
args: [('ltr', 'Left-to-Right'), ('rtl', 'Right-to-Left')]
flag_image
Image
flag_image_url
Char
compute=_compute_field_flag_image_url
grouping
Char
default='[]'
help="The Separator Format should be like [,n] where 0 < n :starting from Unit digit. -1 will end the separation. e.g. [3,2,-1] will represent 106500 to be 1,06,500; [1,2,-1] will represent it to be 106,50,0;[3] will represent it as 106,500. Provided ',' as the thousand separator in each case."
required=True
string='Separator Format'
iso_code
Char
help='This ISO code is the name of po files to use for translations'
string='ISO code'
name
Char
required=True
short_time_format
Char
default=DEFAULT_SHORT_TIME_FORMAT
help='Time Format without seconds'
required=True
string='Short Time Format'
thousands_sep
Char
default=','
string='Thousands Separator'
trim=False
time_format
Char
default=DEFAULT_TIME_FORMAT
required=True
string='Time Format'
url_code
Char
help='The Lang Code displayed in the URL'
required=True
args: 'URL Code'
week_start
Selection
default='7'
required=True
string='First Day of Week'
args: [('1', 'Monday'), ('2', 'Tuesday'), ('3', 'Wednesday'), ('4', 'Thursday'), ('5', 'Friday'), ('6', 'Saturday'), ('7', 'Sunday')]
CACHED_FIELDS(self) -> OrderedSet
action_activate_langs(self)
copy_data(self, default=None)
create(self, vals_list)
format(self, percent: str, value, grouping: bool=False) -> str
get_installed(self) -> <expr>
install_lang(self)
toggle_active(self)
unlink(self)
write(self, vals)
active
Boolean
default=True
active_lang_count
Integer
compute='_compute_active_lang_count'
barcode
Char
company_dependent=True
copy=False
help='Use a barcode to identify this contact.'
city
Char
color
Integer
default=0
string='Color Index'
comment
Html
string='Notes'
commercial_company_name
Char
compute='_compute_commercial_company_name'
store=True
args: 'Company Name Entity'
company_name
Char
company_registry
Char
compute='_compute_company_registry'
help='The registry number of the company. Use it if it is different from the Tax ID. It must be unique across all partners of a same country'
index='btree_not_null'
readonly=False
store=True
string='Company ID'
company_registry_label
Char
compute='_compute_company_registry_label'
string='Company ID Label'
company_type
Selection
compute='_compute_company_type'
inverse='_write_company_type'
selection=[('person', 'Individual'), ('company', 'Company')]
string='Company Type'
complete_name
Char
compute='_compute_complete_name'
index=True
store=True
contact_address
Char
compute='_compute_contact_address'
string='Complete Address'
country_code
Char
related='country_id.code'
string='Country Code'
email
Char
email_formatted
Char
compute='_compute_email_formatted'
help='Format email address "Name <email@domain>"'
args: 'Formatted Email'
employee
Boolean
help='Check this box if this contact is an Employee.'
function
Char
string='Job Position'
is_company
Boolean
default=False
help='Check if the contact is a company, otherwise it is a person'
string='Is a Company'
is_public
Boolean
compute='_compute_is_public'
lang
Selection
help='All the emails and documents sent to this contact will be translated in this language.'
string='Language'
args: _lang_get
mobile
Char
name
Char
default_export_compatible=True
index=True
parent_name
Char
readonly=True
related='parent_id.name'
string='Parent name'
partner_latitude
Float
digits=(10, 7)
string='Geo Latitude'
partner_longitude
Float
digits=(10, 7)
string='Geo Longitude'
partner_share
Boolean
compute='_compute_partner_share'
help='Either customer (not a user), either shared user. Indicated the current partner is a customer without access or with a limited access created for sharing data.'
store=True
args: 'Share Partner'
phone
Char
ref
Char
index=True
string='Reference'
street
Char
street2
Char
type
Selection
default='contact'
string='Address Type'
args: [('contact', 'Contact'), ('invoice', 'Invoice Address'), ('delivery', 'Delivery Address'), ('other', 'Other Address')]
tz
Selection
default=<expr>
help='When printing documents and exporting/importing data, time values are computed according to this timezone.\nIf the timezone is not set, UTC (Coordinated Universal Time) is used.\nAnywhere else, time values are computed according to the time offset of your web client.'
string='Timezone'
args: _tzs
tz_offset
Char
compute='_compute_tz_offset'
string='Timezone offset'
vat
Char
help="The Tax Identification Number. Values here will be validated based on the country format. You can use '/' to indicate that the partner is not subject to tax."
index=True
string='Tax ID'
vat_label
Char
compute='_compute_vat_label'
string='Tax ID Label'
website
Char
zip
Char
change_default=True
address_get(self, adr_pref=None)
copy_data(self, default=None)
create(self, vals_list)
create_company(self)
default_get(self, default_fields)
find_or_create(self, email, assert_valid_email=False)
get_import_templates(self)
name_create(self, name)
onchange_company_type(self)
onchange_email(self)
onchange_parent_id(self)
open_commercial_entity(self)
update_address(self, vals)
view_header_get(self, view_id, view_type)
write(self, vals)
acc_holder_name
Char
compute='_compute_account_holder_name'
help='Account holder name, in case it is different than the name of the Account Holder'
readonly=False
store=True
string='Account Holder Name'
acc_number
Char
required=True
args: 'Account Number'
acc_type
Selection
compute='_compute_acc_type'
help='Bank account type: Normal or IBAN. Inferred from the bank account number.'
selection=<expr>
string='Type'
active
Boolean
default=True
allow_out_payment
Boolean
copy=False
default=False
help='This account can be used for outgoing payments'
readonly=False
args: 'Send Money'
bank_bic
Char
readonly=False
related='bank_id.bic'
bank_id
Many2one → res.bank
string='Bank'
args: 'res.bank'
bank_name
Char
readonly=False
related='bank_id.name'
company_id
Many2one → res.company
readonly=True
related='partner_id.company_id'
store=True
args: 'res.company', 'Company'
country_code
Char
related='partner_id.country_code'
string='Country Code'
currency_id
Many2one → res.currency
string='Currency'
args: 'res.currency'
partner_id
Many2one → res.partner
domain=['|', ('is_company', '=', True), ('parent_id', '=', False)]
index=True
ondelete='cascade'
required=True
args: 'res.partner', 'Account Holder'
sanitized_acc_number
Char
compute='_compute_sanitized_acc_number'
readonly=True
store=True
string='Sanitized Account Number'
sequence
Integer
default=10
action_archive_bank(self)
create(self, vals_list)
get_supported_account_types(self)
retrieve_acc_type(self, acc_number)
unlink(self)
write(self, vals)
active
Boolean
default=True
help='The active field allows you to hide the category without removing it.'
color
Integer
aggregator=False
default=_get_default_color
string='Color'
name
Char
required=True
translate=True
args: 'Name'
parent_path
Char
index=True
No public methods.
active
Boolean
default=True
args: 'Active'
full_name
Char
translate=True
args: 'Full Name'
name
Char
translate=True
args: 'Name'
No public methods.
name
Char
required=True
string='Title'
translate=True
shortcut
Char
string='Abbreviation'
translate=True
No public methods.
accesses_count
Integer
compute='_compute_accesses_count'
compute_sudo=True
help='Number of access rights that apply to the current user'
args: '# Access Rights'
action_id
Many2one → ir.actions.actions
help='If specified, this action will be opened at log on for this user, in addition to the standard menu.'
string='Home Action'
args: 'ir.actions.actions'
active
Boolean
default=True
active_partner
Boolean
readonly=True
related='partner_id.active'
string='Partner is Active'
companies_count
Integer
compute='_compute_companies_count'
string='Number of Companies'
company_id
Many2one → res.company
context={'user_preference': True}
default=<expr>
help='The default company for this user.'
required=True
string='Company'
args: 'res.company'
company_ids
Many2many → res.company
default=<expr>
string='Companies'
args: 'res.company', 'res_company_users_rel', 'user_id', 'cid'
device_ids
One2many → res.device
string='User devices'
args: 'res.device', 'user_id'
email
Char
inherited=True
readonly=False
related='partner_id.email'
groups_count
Integer
compute='_compute_accesses_count'
compute_sudo=True
help='Number of groups that apply to the current user'
args: '# Groups'
groups_id
Many2many → res.groups
default=<expr>
string='Groups'
args: 'res.groups', 'res_groups_users_rel', 'uid', 'gid'
log_ids
One2many → res.users.log
string='User log entries'
args: 'res.users.log', 'create_uid'
login
Char
help='Used to log into the system'
required=True
login_date
Datetime
readonly=False
related='log_ids.create_date'
string='Latest authentication'
name
Char
inherited=True
readonly=False
related='partner_id.name'
new_password
Char
compute='_compute_password'
help="Specify a value only when creating a user or if you're changing the user's password, otherwise leave empty. After a change of password, the user has to login again."
inverse='_set_new_password'
string='Set Password'
partner_id
Many2one → res.partner
auto_join=True
help='Partner-related data of the user'
index=True
ondelete='restrict'
required=True
string='Related Partner'
args: 'res.partner'
password
Char
compute='_compute_password'
copy=False
help="Keep empty if you don't want the user to be able to connect on the system."
inverse='_set_password'
res_users_settings_id
Many2one → res.users.settings
compute='_compute_res_users_settings_id'
search='_search_res_users_settings_id'
string='Settings'
args: 'res.users.settings'
res_users_settings_ids
One2many → res.users.settings
rules_count
Integer
compute='_compute_accesses_count'
compute_sudo=True
help='Number of record rules that apply to the current user'
args: '# Record Rules'
share
Boolean
compute='_compute_share'
compute_sudo=True
help='External user with limited access, created only for the purpose of sharing data.'
store=True
string='Share User'
signature
Html
compute='_compute_signature'
readonly=False
store=True
string='Email Signature'
tz_offset
Char
compute='_compute_tz_offset'
string='Timezone offset'
SELF_READABLE_FIELDS(self)
SELF_WRITEABLE_FIELDS(self)
USER_PRIVATE_FIELDS(self)
action_get(self)
action_revoke_all_devices(self)
action_show_accesses(self)
action_show_groups(self)
action_show_rules(self)
authenticate(cls, db, credential, user_agent_env)
change_password(self, old_passwd, new_passwd)
check(cls, db, uid, passwd)
check_field_access_rights(self, operation, field_names)
context_get(self)
copy_data(self, default=None)
create(self, vals_list)
get_company_currency_id(self)
has_group(self, group_ext_id: str) -> bool
has_groups(self, group_spec: str) -> bool
init(self)
name_search(self, name='', args=None, operator='ilike', limit=100)
on_change_login(self)
onchange(self, values, field_names, fields_spec)
onchange_parent_id(self)
preference_change_password(self)
preference_save(self)
read(self, fields=None, load='_classic_read')
toggle_active(self)
write(self, values)
No new fields.
Public methods (2)create(self, vals_list)
write(self, values)
user_group_warning
Text
compute='_compute_user_group_warning'
string='User Group Warning'
create(self, vals_list)
default_get(self, fields)
fields_get(self, allfields=None, attributes=None)
new(self, values=None, origin=None, ref=None)
onchange(self, values, field_names, fields_spec)
read(self, fields=None, load='_classic_read')
write(self, values)
api_key_ids
One2many → res.users.apikeys
string='API Keys'
args: 'res.users.apikeys', 'user_id'
SELF_READABLE_FIELDS(self)
SELF_WRITEABLE_FIELDS(self)
api_key_wizard(self)
create_date
Datetime
readonly=True
args: 'Creation Date'
expiration_date
Datetime
readonly=True
args: 'Expiration Date'
name
Char
readonly=True
required=True
args: 'Description'
scope
Char
readonly=True
args: 'Scope'
user_id
Many2one → res.users
index=True
ondelete='cascade'
readonly=True
required=True
args: 'res.users'
init(self)
remove(self)
duration
Selection
default=<expr>
required=True
selection='_selection_duration'
string='Duration'
expiration_date
Datetime
compute='_compute_expiration_date'
readonly=False
store=True
args: 'Expiration Date'
name
Char
required=True
args: 'Description'
check_access_make_key(self)
create(self, vals_list)
make_key(self)
id
Id
key
Char
readonly=True
No public methods.
state
Selection
default='todo'
required=True
string='State'
args: [('todo', 'To Do'), ('done', 'Done'), ('fail', 'Failed')]
user_id
Many2one → res.users
ondelete='set null'
string='User'
args: 'res.users'
user_id_int
Integer
compute='_compute_user_id_int'
store=True
args: 'User Id'
No public methods.
auth_method
Selection
default=<expr>
args: [('password', 'Password')]
password
Char
request
Char
groups=fields.NO_ACCESS
readonly=True
run_check(self)
No new fields.
Public methods (0)No public methods.
user_id
Many2one → res.users
domain=[('res_users_settings_id', '=', False)]
ondelete='cascade'
required=True
string='User'
args: 'res.users'
set_res_users_settings(self, new_settings)
arch_diff
Html
compute='_compute_arch_diff'
readonly=True
sanitize_tags=False
string='Architecture Diff'
arch_to_compare
Text
compute='_compute_arch_diff'
args: 'Arch To Compare To'
compare_view_id
Many2one → ir.ui.view
string='Compare To View'
args: 'ir.ui.view'
has_diff
Boolean
compute='_compute_arch_diff'
reset_mode
Selection
default='soft'
required=True
string='Reset Mode'
args: [('soft', 'Restore previous version (soft reset).'), ('hard', 'Reset to file version (hard reset).'), ('other_view', 'Reset to another view.')]
view_id
Many2one → ir.ui.view
string='View'
args: 'ir.ui.view'
view_name
Char
related='view_id.name'
string='View Name'
default_get(self, fields)
reset_view_button(self)
menu_id
Many2one → ir.ui.menu
ondelete='cascade'
required=True
string='Parent Menu'
args: 'ir.ui.menu'
name
Char
required=True
string='Menu Name'
menu_create(self)
access_ir_model_access_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_model_access' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_model_fields_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_model_fields' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_model_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_model' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_rule_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_rule' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_res_groups_group_erp_manager — Access rule grants write/create/unlink on security model 'model_res_groups' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_res_users_group_erp_manager — Access rule grants write/create/unlink on security model 'model_res_users' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationFound by automated static analysis: these patterns are usually risky, but only a manual review of the module can confirm a real issue.
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
act_report_xml_search_view |
ir.actions.report.search | ir.actions.report | search | New |
act_report_xml_view |
ir.actions.report | ir.actions.report | form | New |
act_report_xml_view_tree |
ir.actions.report.tree | ir.actions.report | tree | New |
action_view |
ir.actions.actions | ir.actions.actions | form | New |
action_view_search |
ir.actions.actions.search | ir.actions.actions | search | New |
action_view_tree |
ir.actions.actions.tree | ir.actions.actions | tree | New |
asset_view_form |
ir.asset | form | New | |
asset_view_search |
ir.asset | search | New | |
asset_view_tree |
ir.asset | tree | New | |
base.language_install_view_form_lang_switch |
Switch to language | base.language.install | form | New |
base_partner_merge_automatic_wizard_form |
base.partner.merge.automatic.wizard.form | base.partner.merge.automatic.wizard | form | New |
change_password_own_form |
Change Own Password | change.password.own | form | New |
change_password_wizard_user_tree_view |
Change Password Users | change.password.user | tree | New |
change_password_wizard_view |
Change Password | change.password.wizard | form | New |
config_wizard_step_view_form |
Config Wizard Steps | ir.actions.todo | form | New |
config_wizard_step_view_search |
ir.actions.todo.select | ir.actions.todo | search | New |
contact |
contact | ir.ui.view | qweb | New |
contact_name |
contact_name | ir.ui.view | qweb | New |
demo_failures_dialog |
Demo Failure Dialog | ir.demo_failure.wizard | form | New |
demo_force_install_form |
ir.demo.form | ir.demo | form | New |
demo_wizard_form_view |
Demo Failure Form | ir.demo_failure | form | New |
edit_menu |
ir.ui.menu | tree | New | |
edit_menu_access |
ir.ui.menu | form | New | |
edit_menu_access_search |
ir.ui.menu.search | ir.ui.menu | search | New |
enable_profiling_wizard |
Enable profiling | base.enable.profiling.wizard | form | New |
form_res_users_key_description |
API Key: description input form | res.users.apikeys.description | form | New |
form_res_users_key_show |
API Key: show | res.users.apikeys.show | form | New |
ir_access_view_form |
ir.model.access | form | New | |
ir_access_view_search |
ir.model.access | search | New | |
ir_access_view_tree |
ir.model.access.view.tree | ir.model.access | tree | New |
ir_access_view_tree_edition |
ir.model.access.view.tree.edition | ir.model.access | tree | New |
ir_actions_todo_tree |
Config Wizard Steps | ir.actions.todo | tree | New |
ir_cron_trigger_view_form |
ir.cron.trigger.view.form | ir.cron.trigger | form | New |
ir_cron_trigger_view_search |
ir.cron.trigger.view.search | ir.cron.trigger | search | New |
ir_cron_trigger_view_tree |
ir.cron.trigger.view.tree | ir.cron.trigger | tree | New |
ir_cron_view_calendar |
ir.cron | calendar | New | |
ir_cron_view_form |
ir.cron.view.form | ir.cron | form | Inherits base.view_server_action_form |
ir_cron_view_search |
ir.cron | search | New | |
ir_cron_view_tree |
ir.cron | tree | New | |
ir_default_form_view |
ir.default form view | ir.default | form | New |
ir_default_search_view |
ir.default search view | ir.default | search | New |
ir_default_tree_view |
ir.default tree view | ir.default | tree | New |
ir_filters_view_form |
ir.filters | form | New | |
ir_filters_view_search |
ir.filters | search | New | |
ir_filters_view_tree |
ir.filters | tree | New | |
ir_logging_form_view |
ir.logging | form | New | |
ir_logging_search_view |
ir.logging | search | New | |
ir_logging_tree_view |
ir.logging | tree | New | |
ir_mail_server_form |
ir.mail_server | form | New | |
ir_mail_server_list |
ir.mail_server | tree | New | |
ir_profile_view_form |
IR Profile Form | ir.profile | form | New |
ir_profile_view_list |
IR Profile List | ir.profile | tree | New |
ir_profile_view_search |
IR Profile Search | ir.profile | search | New |
ir_property_view |
ir.property.form | ir.property | form | New |
ir_property_view_search |
ir.property.search | ir.property | search | New |
ir_property_view_tree |
ir.property.tree | ir.property | tree | New |
module_form |
ir.module.module.form | ir.module.module | form | New |
module_tree |
ir.module.module.tree | ir.module.module | tree | New |
module_view_kanban |
Apps Kanban | ir.module.module | kanban | New |
no_contact |
no_contact | ir.ui.view | qweb | New |
paperformat_view_form |
paper_format_view_form | report.paperformat | form | New |
paperformat_view_tree |
paper_format_view_tree | report.paperformat | tree | New |
report_irmodeloverview |
report_irmodeloverview | ir.ui.view | qweb | New |
report_irmodulereference |
report_irmodulereference | ir.ui.view | qweb | New |
res_bank_view_search |
res.bank.view.search | res.bank | search | New |
res_config_installer |
Inheritable view for installer objects | res.config.installer | form | New |
res_config_settings_view_form |
res.config.settings.view.form | res.config.settings | form | New |
res_config_view_base |
res.config.view.base | res.config | form | New |
res_lang_form |
res.lang.form | res.lang | form | New |
res_lang_search |
res.lang.search | res.lang | search | New |
res_lang_tree |
res.lang.tree | res.lang | tree | New |
res_partner_category_view_search |
res.partner.category.view.search | res.partner.category | search | New |
res_partner_industry_view_form |
Industry | res.partner.industry | form | New |
res_partner_industry_view_search |
res.partner.industry.view.search | res.partner.industry | search | New |
res_partner_industry_view_tree |
Industry | res.partner.industry | tree | New |
res_partner_kanban_view |
res.partner.kanban | res.partner | kanban | New |
res_partner_view_form_private |
res.partner.view.form.private | res.partner | form | New |
res_users_identitycheck_view_form |
res.users.identitycheck | form | New | |
res_users_identitycheck_view_form_revokedevices |
Revoke All Devices | res.users.identitycheck | form | New |
reset_view_arch_wizard_view |
Reset View Architecture | reset.view.arch.wizard | form | New |
sequence_view |
ir.sequence | form | New | |
sequence_view_tree |
ir.sequence | tree | New | |
user_groups_view |
res.users.groups | res.users | form | Inherits view_users_form |
view_apikeys |
API Keys Listing | res.users.apikeys | tree | New |
view_attachment_form |
ir.attachment | form | New | |
view_attachment_search |
ir.attachment | search | New | |
view_attachment_tree |
ir.attachment | tree | New | |
view_base_import_language |
Import Translation | base.language.import | form | New |
view_base_language_install |
Load a Translation | base.language.install | form | New |
view_base_module_uninstall |
Uninstall module | base.module.uninstall | form | New |
view_base_module_update |
Module Update | base.module.update | form | New |
view_base_module_upgrade |
Module Upgrade | base.module.upgrade | form | New |
view_base_module_upgrade_install |
Module Upgrade Install | base.module.upgrade | form | New |
view_client_action_form |
ir.actions.client.form | ir.actions.client | form | New |
view_client_action_tree |
Client Actions | ir.actions.client | tree | New |
view_company_form |
res.company.form | res.company | form | New |
view_company_tree |
res.company.tree | res.company | tree | New |
view_country_form |
res.country.form | res.country | form | New |
view_country_group_form |
res.country.group.form | res.country.group | form | New |
view_country_group_tree |
res.country.group.tree | res.country.group | tree | New |
view_country_search |
res.country.search | res.country | search | New |
view_country_state_form |
res.country.state.form | res.country.state | form | New |
view_country_state_search |
res.country.state.search | res.country.state | search | New |
view_country_state_tree |
res.country.state.tree | res.country.state | tree | New |
view_country_tree |
res.country.tree | res.country | tree | New |
view_currency_form |
res.currency.form | res.currency | form | New |
view_currency_kanban |
res.currency.kanban | res.currency | kanban | New |
view_currency_rate_form |
res.currency.rate.form | res.currency.rate | form | New |
view_currency_rate_search |
res.currency.rate.search | res.currency.rate | search | New |
view_currency_rate_tree |
res.currency.rate.tree | res.currency.rate | tree | New |
view_currency_search |
res.currency.search | res.currency | search | New |
view_currency_tree |
res.currency.tree | res.currency | tree | New |
view_decimal_precision_form |
Decimal Precision | decimal.precision | form | New |
view_decimal_precision_tree |
Decimal Precision List | decimal.precision | tree | New |
view_groups_form |
res.groups.form | res.groups | form | New |
view_groups_search |
res.groups.search | res.groups | search | New |
view_ir_config_form |
ir.config_parameter | form | New | |
view_ir_config_list |
ir.config_parameter | tree | New | |
view_ir_config_search |
ir.config_parameter | search | New | |
view_ir_mail_server_search |
ir.mail_server | search | New | |
view_model_constraint_form |
ir.model.constraint | form | New | |
view_model_constraint_list |
ir.model.constraint | tree | New | |
view_model_constraint_search |
ir.model.constraint | search | New | |
view_model_data_form |
ir.model.data | form | New | |
view_model_data_list |
ir.model.data | tree | New | |
view_model_data_search |
ir.model.data | search | New | |
view_model_fields_form |
ir.model.fields | form | New | |
view_model_fields_search |
ir.model.fields | search | New | |
view_model_fields_selection_form |
ir.model.fields.selection | form | New | |
view_model_fields_selection_search |
ir.model.fields.selection | search | New | |
view_model_fields_selection_tree |
ir.model.fields.selection | tree | New | |
view_model_fields_tree |
ir.model.fields | tree | New | |
view_model_form |
ir.model | form | New | |
view_model_menu_create |
Create Menu | wizard.ir.model.menu.create | form | New |
view_model_relation_form |
ir.model.relation | form | New | |
view_model_relation_list |
ir.model.relation | tree | New | |
view_model_search |
ir.model | search | New | |
view_model_tree |
ir.model | tree | New | |
view_module_category_form |
ir.module.category.form | ir.module.category | form | New |
view_module_filter |
ir.module.module.list.select | ir.module.module | search | New |
view_partner_address_form |
res.partner.form.address | res.partner | form | New |
view_partner_bank_form |
res.partner.bank.form | res.partner.bank | form | New |
view_partner_bank_search |
res.partner.bank.search | res.partner.bank | search | New |
view_partner_bank_tree |
res.partner.bank.tree | res.partner.bank | tree | New |
view_partner_category_form |
Contact Tags | res.partner.category | form | New |
view_partner_category_list |
Contact Tags | res.partner.category | tree | New |
view_partner_form |
res.partner.form | res.partner | form | New |
view_partner_simple_form |
res.partner.simplified.form | res.partner | form | New |
view_partner_title_form |
res.partner.title.form | res.partner.title | form | New |
view_partner_title_tree |
res.partner.title.tree | res.partner.title | tree | New |
view_partner_tree |
res.partner.tree | res.partner | tree | New |
view_res_bank_form |
res.bank.form | res.bank | form | New |
view_res_bank_tree |
res.bank.tree | res.bank | tree | New |
view_res_company_kanban |
res.company.kanban | res.company | kanban | New |
view_res_partner_filter |
res.partner.select | res.partner | search | New |
view_res_users_kanban |
res.users.kanban | res.users | kanban | New |
view_rule_form |
ir.rule | form | New | |
view_rule_search |
ir.rule | search | New | |
view_rule_tree |
ir.rule | tree | New | |
view_sequence_search |
ir.sequence | search | New | |
view_server_action_form |
Server Action | ir.actions.server | form | New |
view_server_action_search |
ir.actions.server.search | ir.actions.server | search | New |
view_server_action_tree |
Server Actions | ir.actions.server | tree | New |
view_users_form |
res.users.form | res.users | form | New |
view_users_form_simple_modif |
res.users.preferences.form | res.users | form | New |
view_users_search |
res.users.search | res.users | search | New |
view_users_simple_form |
res.users.simplified.form | res.users | form | New |
view_users_tree |
res.users.tree | res.users | tree | New |
view_view_custom_form |
ir.ui.view.custom | form | New | |
view_view_custom_search |
ir.ui.view.custom | search | New | |
view_view_custom_tree |
ir.ui.view.custom | tree | New | |
view_view_form |
ir.ui.view | form | New | |
view_view_search |
ir.ui.view | search | New | |
view_view_tree |
ir.ui.view | tree | New | |
view_window_action_form |
ir.actions.windows.form | ir.actions.act_window | form | New |
view_window_action_search |
ir.actions.windows.search | ir.actions.act_window | search | New |
view_window_action_tree |
ir.actions.windows.tree | ir.actions.act_window | tree | New |
wizard_lang_export |
Export Translations | base.language.export | form | New |
| Route(s) | Handler | Auth | Type | Methods | Flags |
|---|---|---|---|---|---|
/jsonrpc |
RPC.jsonrpc |
none | json | ALL | |
/xmlrpc/<service> |
RPC.xmlrpc_1 |
none | http | POST | csrf off |
/xmlrpc/2/<service> |
RPC.xmlrpc_2 |
none | http | POST | csrf off |
No new fields.
Public methods (0)No public methods.
avatar_1024
Image
compute='_compute_avatar_1024'
args: 'Avatar 1024'
avatar_128
Image
compute='_compute_avatar_128'
args: 'Avatar 128'
avatar_1920
Image
compute='_compute_avatar_1920'
args: 'Avatar'
avatar_256
Image
compute='_compute_avatar_256'
args: 'Avatar 256'
avatar_512
Image
compute='_compute_avatar_512'
args: 'Avatar 512'
No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (6)get_empty_list_help(self, help_message)
get_formview_action(self, access_uid=None)
get_formview_id(self, access_uid=None)
get_view(self, view_id=None, view_type='form', **options)
get_views(self, views, options=None)
view_header_get(self, view_id=None, view_type='form')
duration
Selection
string='Enable profiling for'
args: [('minutes_5', '5 Minutes'), ('hours_1', '1 Hour'), ('days_1', '1 Day'), ('months_1', '1 Month')]
expiration
Datetime
compute='_compute_expiration'
readonly=False
store=True
args: 'Enable profiling until'
submit(self)
data
Binary
attachment=False
readonly=True
args: 'File'
domain
Char
default='[]'
string='Model Domain'
export_type
Selection
default='module'
required=True
string='Export Type'
args: [('module', 'Module'), ('model', 'Model')]
format
Selection
default='po'
required=True
string='File Format'
args: [('csv', 'CSV File'), ('po', 'PO File'), ('tgz', 'TGZ Archive')]
lang
Selection
default=NEW_LANG_KEY
required=True
string='Language'
args: _get_languages
model_id
Many2one → ir.model
domain=[('transient', '=', False)]
string='Model to Export'
args: 'ir.model'
model_name
Char
related='model_id.model'
string='Model Name'
modules
Many2many → ir.module.module
domain=[('state', '=', 'installed')]
string='Apps To Export'
args: 'ir.module.module', 'rel_modules_langexport', 'wiz_id', 'module_id'
name
Char
readonly=True
args: 'File Name'
state
Selection
default='choose'
args: [('choose', 'choose'), ('get', 'get')]
act_getfile(self)
code
Char
help='ISO Language and Country code, e.g. en_US'
required=True
size=6
args: 'ISO Code'
data
Binary
attachment=False
required=True
args: 'File'
filename
Char
required=True
args: 'File Name'
name
Char
required=True
args: 'Language Name'
overwrite
Boolean
default=True
help='If you enable this option, existing translations (including custom ones) will be overwritten and replaced by those in this file'
args: 'Overwrite Existing Terms'
import_lang(self)
first_lang_id
Many2one → res.lang
compute='_compute_first_lang_id'
help='Used when the user only selects one language and is given the option to switch to it'
args: 'res.lang'
lang_ids
Many2many → res.lang
context={'active_test': False}
default=_default_lang_ids
required=True
args: 'res.lang', 'res_lang_install_rel', 'language_wizard_id', 'lang_id', 'Languages'
overwrite
Boolean
default=True
help='If you check this box, your customized translations will be overwritten and replaced by the official ones.'
args: 'Overwrite Existing Terms'
lang_install(self)
reload(self)
switch_lang(self)
model_ids
Many2many → ir.model
compute='_compute_model_ids'
string='Impacted data models'
args: 'ir.model'
module_id
Many2one → ir.module.module
domain=[('state', 'in', ['installed', 'to upgrade', 'to install'])]
ondelete='cascade'
readonly=True
required=True
string='Module'
args: 'ir.module.module'
module_ids
Many2many → ir.module.module
compute='_compute_module_ids'
string='Impacted modules'
args: 'ir.module.module'
show_all
Boolean
action_uninstall(self)
added
Integer
readonly=True
args: 'Number of modules added'
state
Selection
default='init'
readonly=True
args: [('init', 'init'), ('done', 'done')], 'Status'
updated
Integer
readonly=True
args: 'Number of modules updated'
action_module_open(self)
update_module(self)
module_info
Text
default=_default_module_info
readonly=True
args: 'Apps to Update'
config(self)
get_module_list(self)
get_view(self, view_id=None, view_type='form', **options)
upgrade_module(self)
upgrade_module_cancel(self)
current_line_id
Many2one → base.partner.merge.line
string='Current Line'
args: 'base.partner.merge.line'
dst_partner_id
Many2one → res.partner
string='Destination Contact'
args: 'res.partner'
exclude_contact
Boolean
exclude_journal_item
Boolean
group_by_email
Boolean
group_by_is_company
Boolean
group_by_name
Boolean
group_by_parent_id
Boolean
group_by_vat
Boolean
line_ids
One2many → base.partner.merge.line
string='Lines'
args: 'base.partner.merge.line', 'wizard_id'
maximum_group
Integer
number_group
Integer
readonly=True
args: 'Group of Contacts'
partner_ids
Many2many → res.partner
context={'active_test': False}
string='Contacts'
args: 'res.partner'
state
Selection
default='option'
readonly=True
required=True
string='State'
args: [('option', 'Option'), ('selection', 'Selection'), ('finished', 'Finished')]
action_merge(self)
action_skip(self)
action_start_automatic_process(self)
action_start_manual_process(self)
action_update_all_process(self)
default_get(self, fields)
parent_migration_process_cb(self)
aggr_ids
Char
required=True
args: 'Ids'
min_id
Integer
wizard_id
Many2one → base.partner.merge.automatic.wizard
No public methods.
confirm_password
Char
string='New Password (Confirmation)'
new_password
Char
string='New Password'
change_password(self)
new_passwd
Char
default=''
string='New Password'
user_id
Many2one → res.users
ondelete='cascade'
required=True
string='User'
args: 'res.users'
user_login
Char
readonly=True
string='User Login'
wizard_id
Many2one → change.password.wizard
ondelete='cascade'
required=True
string='Wizard'
args: 'change.password.wizard'
change_password_button(self)
user_ids
One2many → change.password.user
default=_default_user_ids
string='Users'
args: 'change.password.user', 'wizard_id'
change_password_button(self)
digits
Integer
default=2
required=True
args: 'Digits'
name
Char
required=True
args: 'Usage'
create(self, vals_list)
precision_get(self, application)
unlink(self)
write(self, data)
No new fields.
Public methods (0)No public methods.
image_1024
Image
max_height=1024
max_width=1024
related='image_1920'
store=True
args: 'Image 1024'
image_128
Image
max_height=128
max_width=128
related='image_1920'
store=True
args: 'Image 128'
image_1920
Image
max_height=1920
max_width=1920
args: 'Image'
image_256
Image
max_height=256
max_width=256
related='image_1920'
store=True
args: 'Image 256'
image_512
Image
max_height=512
max_width=512
related='image_1920'
store=True
args: 'Image 512'
No public methods.
target
Selection
default='new'
required=True
string='Action Target'
args: [('new', 'New Window'), ('self', 'This Window'), ('download', 'Download')]
type
Char
default='ir.actions.act_url'
url
Text
required=True
string='Action URL'
No public methods.
context
Char
default={}
help='Context dictionary as Python expression, empty by default (Default: {})'
required=True
string='Context Value'
domain
Char
help='Optional domain filtering of the destination data, as a Python expression'
string='Domain Value'
filter
Boolean
groups_id
Many2many → res.groups
string='Groups'
args: 'res.groups', 'ir_act_window_group_rel', 'act_id', 'gid'
limit
Integer
default=80
help='Default limit for the list view'
mobile_view_mode
Char
default='kanban'
help="First view mode in mobile and small screen environments (default='kanban'). If it can't be found among available view modes, the same mode as for wider screens is used)"
res_id
Integer
help="Database ID of record to open in form view, when ``view_mode`` is set to 'form' only"
string='Record ID'
res_model
Char
help='Model name of the object to open in the view window'
required=True
string='Destination Model'
search_view_id
Many2one → ir.ui.view
string='Search View Ref.'
args: 'ir.ui.view'
target
Selection
default='current'
string='Target Window'
args: [('current', 'Current Window'), ('new', 'New Window'), ('inline', 'Inline Edit'), ('fullscreen', 'Full Screen'), ('main', 'Main action of Current Window')]
type
Char
default='ir.actions.act_window'
usage
Char
help='Used to filter menu and home actions from the user form.'
string='Action Usage'
view_id
Many2one → ir.ui.view
ondelete='set null'
string='View Ref.'
args: 'ir.ui.view'
view_ids
One2many → ir.actions.act_window.view
string='No of Views'
args: 'ir.actions.act_window.view', 'act_window_id'
view_mode
Char
default='tree,form'
help="Comma-separated list of allowed view modes, such as 'form', 'tree', 'calendar', etc. (Default: tree,form)"
required=True
views
Binary
compute='_compute_views'
help='This function field computes the ordered list of views that should be enabled when displaying the result of an action, federating view mode, views and reference view. The result is returned as an ordered list of pairs (view_id,view_mode).'
create(self, vals_list)
exists(self)
read(self, fields=None, load='_classic_read')
unlink(self)
act_window_id
Many2one → ir.actions.act_window
ondelete='cascade'
string='Action'
args: 'ir.actions.act_window'
multi
Boolean
help='If set to true, the action will not be displayed on the right toolbar of a form view.'
string='On Multiple Doc.'
sequence
Integer
view_id
Many2one → ir.ui.view
string='View'
args: 'ir.ui.view'
view_mode
Selection
required=True
string='View Type'
args: VIEW_TYPES
No public methods.
type
Char
default='ir.actions.act_window_close'
No public methods.
binding_model_id
Many2one → ir.model
help='Setting a value makes this action available in the sidebar for the given model.'
ondelete='cascade'
args: 'ir.model'
binding_type
Selection
default='action'
required=True
args: [('action', 'Action'), ('report', 'Report')]
binding_view_types
Char
default='list,form'
help
Html
help='Optional help text for the users with a description of the target view, such as its usage and purpose.'
string='Action Description'
translate=True
name
Char
required=True
string='Action Name'
translate=True
type
Char
required=True
string='Action Type'
xml_id
Char
compute='_compute_xml_id'
string='External ID'
create(self, vals_list)
get_bindings(self, model_name)
unlink(self)
write(self, vals)
context
Char
default='{}'
help='Context dictionary as Python expression, empty by default (Default: {})'
required=True
string='Context Value'
params
Binary
compute='_compute_params'
help='Arguments sent to the client along with the view tag'
inverse='_inverse_params'
string='Supplementary arguments'
params_store
Binary
attachment=False
readonly=True
string='Params storage'
res_model
Char
help='Optional model, mostly used for needactions.'
string='Destination Model'
tag
Char
help='An arbitrary string, interpreted by the client according to its own needs and wishes. There is no central tag repository across clients.'
required=True
string='Client action tag'
target
Selection
default='current'
string='Target Window'
args: [('current', 'Current Window'), ('new', 'New Window'), ('fullscreen', 'Full Screen'), ('main', 'Main action of Current Window')]
type
Char
default='ir.actions.client'
No public methods.
attachment
Char
help='This is the filename of the attachment used to store the printing result. Keep empty to not save the printed reports. You can use a python expression with the object and time variables.'
string='Save as Attachment Prefix'
attachment_use
Boolean
help='If enabled, then the second time the user prints with same attachment name, it returns the previous report.'
string='Reload from Attachment'
binding_type
Selection
default='report'
groups_id
Many2many → res.groups
string='Groups'
args: 'res.groups', 'res_groups_report_rel', 'uid', 'gid'
model
Char
required=True
string='Model Name'
model_id
Many2one → ir.model
compute='_compute_model_id'
search='_search_model_id'
string='Model'
args: 'ir.model'
multi
Boolean
help='If set to true, the action will not be displayed on the right toolbar of a form view.'
string='On Multiple Doc.'
paperformat_id
Many2one → report.paperformat
print_report_name
Char
help="This is the filename of the report going to download. Keep empty to not change the report filename. You can use a python expression with the 'object' and 'time' variables."
translate=True
args: 'Printed Report Name'
report_file
Char
help='The path to the main report file (depending on Report Type) or empty if the content is in another field'
readonly=False
required=False
store=True
string='Report File'
report_name
Char
required=True
string='Template Name'
report_type
Selection
default='qweb-pdf'
help='The type of the report that will be rendered, each one having its own rendering method. HTML means the report will be opened directly in your browser PDF means the report will be rendered using Wkhtmltopdf and downloaded by the user.'
required=True
args: [('qweb-html', 'HTML'), ('qweb-pdf', 'PDF'), ('qweb-text', 'Text')]
type
Char
default='ir.actions.report'
associated_view(self)
barcode(self, barcode_type, value, **kwargs)
create_action(self)
get_available_barcode_masks(self)
get_paperformat(self)
get_wkhtmltopdf_state(self)
report_action(self, docids, data=None, config=True)
retrieve_attachment(self, record)
unlink_action(self)
available_model_ids
Many2many → ir.model
compute='_compute_available_model_ids'
store=False
string='Available Models'
args: 'ir.model'
child_ids
Many2many → ir.actions.server
help='Child server actions that will be executed. Note that the last return returned action value will be used as global return value.'
string='Child Actions'
args: 'ir.actions.server', 'rel_server_actions', 'server_id', 'action_id'
code
Text
default=DEFAULT_PYTHON_CODE
groups='base.group_system'
help='Write Python code that the action will execute. Some variables are available for use; help about python expression is given in the help tab.'
string='Python Code'
crud_model_id
Many2one → ir.model
compute='_compute_crud_relations'
help='Specify which kind of record should be created. Set this field only to specify a different model than the base model.'
readonly=False
store=True
string='Record to Create'
args: 'ir.model'
crud_model_name
Char
readonly=True
related='crud_model_id.model'
string='Target Model Name'
evaluation_type
Selection
change_default=True
default='value'
args: [('value', 'Update'), ('equation', 'Compute')], 'Value Type'
groups_id
Many2many → res.groups
help='Groups that can execute the server action. Leave empty to allow everybody.'
string='Allowed Groups'
args: 'res.groups', 'ir_act_server_group_rel', 'act_id', 'gid'
link_field_id
Many2one → ir.model.fields
compute='_compute_link_field_id'
help='Specify a field used to link the newly created record on the record used by the server action.'
readonly=False
store=True
string='Link Field'
args: 'ir.model.fields'
model_id
Many2one → ir.model
help='Model on which the server action runs.'
index=True
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
model_name
Char
readonly=True
related='model_id.model'
store=True
string='Model Name'
name
Char
required=True
resource_ref
Reference
inverse='_set_resource_ref'
selection='_selection_target_model'
string='Record'
selection_value
Many2one → ir.model.fields.selection
domain='[("field_id", "=", update_field_id)]'
inverse='_set_selection_value'
ondelete='cascade'
string='Custom Value'
args: 'ir.model.fields.selection'
sequence
Integer
default=5
help='When dealing with multiple actions, the execution order is based on the sequence. Low number means high priority.'
state
Selection
copy=True
default='object_write'
help="Type of server action. The following values are available:\n- 'Update a Record': update the values of a record\n- 'Create Activity': create an activity (Discuss)\n- 'Send Email': post a message, a note or send an email (Discuss)\n- 'Send SMS': send SMS, log them on documents (SMS)- 'Add/Remove Followers': add or remove followers to a record (Discuss)\n- 'Create Record': create a new record with new values\n- 'Execute Code': a block of Python code that will be executed\n- 'Send Webhook Notification': send a POST request to an external system, also known as a Webhook\n- 'Execute Existing Actions': define an action that triggers several other server actions\n"
required=True
string='Type'
args: [('object_write', 'Update Record'), ('object_create', 'Create Record'), ('code', 'Execute Code'), ('webhook', 'Send Webhook Notification'), ('multi', 'Execute Existing Actions')]
type
Char
default='ir.actions.server'
update_boolean_value
Selection
default='true'
string='Boolean Value'
args: [('true', 'Yes (True)'), ('false', 'No (False)')]
update_field_id
Many2one → ir.model.fields
compute='_compute_crud_relations'
ondelete='cascade'
readonly=False
store=True
string='Field to Update'
args: 'ir.model.fields'
update_field_type
Selection
readonly=True
related='update_field_id.ttype'
update_m2m_operation
Selection
default='add'
string='Many2many Operations'
args: [('add', 'Adding'), ('remove', 'Removing'), ('set', 'Setting it to'), ('clear', 'Clearing it')]
update_path
Char
default=_default_update_path
help="Path to the field to update, e.g. 'partner_id.name'"
string='Field to Update Path'
update_related_model_id
Many2one → ir.model
compute='_compute_crud_relations'
readonly=False
store=True
args: 'ir.model'
usage
Selection
default='ir_actions_server'
required=True
string='Usage'
args: [('ir_actions_server', 'Server Action'), ('ir_cron', 'Scheduled Action')]
value
Text
help="For Python expressions, this field may hold a Python expression that can use the same values as for the code field on the server action,e.g. `env.user.name` to set the current user's name as the value or `record.id` to set the ID of the record on which the action is run.\n\nFor Static values, the value will be used directly without evaluation, e.g.`42` or `My custom name` or the selected record."
value_field_to_show
Selection
compute='_compute_value_field_to_show'
args: [('value', 'value'), ('resource_ref', 'reference'), ('update_boolean_value', 'update_boolean_value'), ('selection_value', 'selection_value')]
webhook_field_ids
Many2many → ir.model.fields
help="Fields to send in the POST request. The id and model of the record are always sent as '_id' and '_model'. The name of the action that triggered the webhook is always sent as '_name'."
string='Webhook Fields'
args: 'ir.model.fields', 'ir_act_server_webhook_field_rel', 'server_id', 'field_id'
webhook_sample_payload
Text
compute='_compute_webhook_sample_payload'
string='Sample Payload'
webhook_url
Char
help='URL to send the POST request to.'
string='Webhook URL'
copy_data(self, default=None)
create_action(self)
run(self)
unlink_action(self)
action_id
Many2one → ir.actions.actions
index=True
required=True
string='Action'
args: 'ir.actions.actions'
name
Char
sequence
Integer
default=10
state
Selection
default='open'
required=True
string='Status'
args: [('open', 'To Do'), ('done', 'Done')]
action_launch(self)
action_open(self)
create(self, vals_list)
ensure_one_open_todo(self)
unlink(self)
write(self, vals)
active
Boolean
default=True
string='active'
bundle
Char
required=True
string='Bundle name'
directive
Selection
default=APPEND_DIRECTIVE
selection=[(APPEND_DIRECTIVE, 'Append'), (PREPEND_DIRECTIVE, 'Prepend'), (AFTER_DIRECTIVE, 'After'), (BEFORE_DIRECTIVE, 'Before'), (REMOVE_DIRECTIVE, 'Remove'), (REPLACE_DIRECTIVE, 'Replace'), (INCLUDE_DIRECTIVE, 'Include')]
string='Directive'
name
Char
required=True
string='Name'
path
Char
required=True
string='Path (or glob pattern)'
sequence
Integer
default=DEFAULT_SEQUENCE
required=True
string='Sequence'
target
Char
string='Target'
create(self, vals_list)
unlink(self)
write(self, values)
access_token
Char
groups='base.group_user'
args: 'Access Token'
checksum
Char
readonly=True
size=40
args: 'Checksum/SHA1'
company_id
Many2one → res.company
change_default=True
default=<expr>
string='Company'
args: 'res.company'
datas
Binary
compute='_compute_datas'
inverse='_inverse_datas'
string='File Content (base64)'
db_datas
Binary
attachment=False
args: 'Database Data'
description
Text
file_size
Integer
readonly=True
args: 'File Size'
index_content
Text
prefetch=False
readonly=True
args: 'Indexed Content'
mimetype
Char
readonly=True
args: 'Mime Type'
name
Char
required=True
args: 'Name'
public
Boolean
raw
Binary
compute='_compute_raw'
inverse='_inverse_raw'
string='File Content (raw)'
res_field
Char
readonly=True
args: 'Resource Field'
res_id
Many2oneReference
model_field='res_model'
readonly=True
args: 'Resource ID'
res_model
Char
readonly=True
args: 'Resource Model'
res_name
Char
compute='_compute_res_name'
args: 'Resource Name'
store_fname
Char
index=True
unaccent=False
args: 'Stored Filename'
type
Selection
change_default=True
default='binary'
help='You can either upload a file from your computer or copy/paste an internet link to your file.'
required=True
string='Type'
args: [('url', 'URL'), ('binary', 'File')]
url
Char
index='btree_not_null'
size=1024
args: 'Url'
action_get(self)
check(self, mode, values=None)
copy(self, default=None)
create(self, vals_list)
create_unique(self, values_list)
force_storage(self)
generate_access_token(self)
get_serving_groups(self)
regenerate_assets_bundles(self)
unlink(self)
validate_access(self, access_token)
write(self, vals)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
key
Char
required=True
value
Text
required=True
create(self, vals_list)
get_param(self, key, default=False)
init(self, force=False)
set_param(self, key, value)
unlink(self)
unlink_default_parameters(self)
write(self, vals)
active
Boolean
default=True
cron_name
Char
compute='_compute_cron_name'
store=True
args: 'Name'
doall
Boolean
help='Specify if missed occurrences should be executed when the server restarts.'
string='Repeat Missed'
interval_number
Integer
default=1
group_operator=None
help='Repeat every x.'
interval_type
Selection
default='months'
string='Interval Unit'
args: [('minutes', 'Minutes'), ('hours', 'Hours'), ('days', 'Days'), ('weeks', 'Weeks'), ('months', 'Months')]
ir_actions_server_id
Many2one → ir.actions.server
delegate=True
ondelete='restrict'
required=True
args: 'ir.actions.server', 'Server action'
lastcall
Datetime
help='Previous time the cron ran successfully, provided to the job through the context on the `lastcall` key'
string='Last Execution Date'
nextcall
Datetime
default=fields.Datetime.now
help='Next planned execution date for this job.'
required=True
string='Next Execution Date'
numbercall
Integer
default=1
help='How many times the method is called,\na negative number indicates no limit.'
string='Number of Calls'
priority
Integer
default=5
group_operator=None
help='The priority of the job, as an integer: 0 means higher priority, 10 means lower priority.'
user_id
Many2one → res.users
default=<expr>
required=True
string='Scheduler User'
args: 'res.users'
create(self, vals_list)
default_get(self, fields_list)
method_direct_trigger(self)
toggle(self, model, domain)
try_write(self, values)
unlink(self)
write(self, vals)
call_at
Datetime
index=True
cron_id
Many2one → ir.cron
index=True
args: 'ir.cron'
No public methods.
company_id
Many2one → res.company
help='If set, action binding only applies for this company'
index=True
ondelete='cascade'
string='Company'
args: 'res.company'
condition
Char
help='If set, applies the default upon condition.'
args: 'Condition'
field_id
Many2one → ir.model.fields
index=True
ondelete='cascade'
required=True
string='Field'
args: 'ir.model.fields'
json_value
Char
required=True
args: 'Default Value (JSON format)'
user_id
Many2one → res.users
help='If set, action binding only applies for this user.'
index=True
ondelete='cascade'
string='User'
args: 'res.users'
create(self, vals_list)
discard_records(self, records)
discard_values(self, model_name, field_name, values)
set(self, model_name, field_name, value, user_id=False, company_id=False, condition=False)
unlink(self)
write(self, vals)
No new fields.
Public methods (1)install_demo(self)
error
Char
string='Error'
module_id
Many2one → ir.module.module
required=True
string='Module'
args: 'ir.module.module'
wizard_id
Many2one → ir.demo_failure.wizard
No public methods.
failure_ids
One2many → ir.demo_failure
readonly=True
string='Demo Installation Failures'
args: 'ir.demo_failure', 'wizard_id'
failures_count
Integer
compute='_compute_failures_count'
done(self)
export_fields
One2many → ir.exports.line
copy=True
string='Export ID'
args: 'ir.exports.line', 'export_id'
name
Char
string='Export Name'
resource
Char
index=True
No public methods.
export_id
Many2one → ir.exports
index=True
ondelete='cascade'
string='Export'
args: 'ir.exports'
name
Char
string='Field Name'
No public methods.
No new fields.
Public methods (3)db_id_for(self, model, field, subfield, value)
for_model(self, model, fromtype=str)
to_field(self, model, field, fromtype=str)
No new fields.
Public methods (0)No public methods.
action_id
Many2one → ir.actions.actions
help='The menu action this filter applies to. When left empty the filter applies to all menus for this model.'
ondelete='cascade'
string='Action'
args: 'ir.actions.actions'
active
Boolean
default=True
context
Text
default='{}'
required=True
domain
Text
default='[]'
required=True
is_default
Boolean
string='Default Filter'
model_id
Selection
required=True
selection='_list_all_models'
string='Model'
name
Char
required=True
string='Filter Name'
sort
Text
default='[]'
required=True
user_id
Many2one → res.users
help='The user this filter is private to. When left empty the filter is public and available to all users.'
ondelete='cascade'
string='User'
args: 'res.users'
copy(self, default=None)
create_or_replace(self, vals)
get_filters(self, model, action_id=None)
write(self, vals)
No new fields.
Public methods (3)get_translations_for_webclient(self, modules, lang)
get_web_translations_hash(self, modules, lang)
routing_map(self, key=None)
create_date
Datetime
readonly=True
string='Created on'
create_uid
Integer
readonly=True
string='Created by'
dbname
Char
index=True
string='Database Name'
func
Char
required=True
string='Function'
level
Char
index=True
line
Char
required=True
message
Text
required=True
name
Char
required=True
path
Char
required=True
type
Selection
index=True
required=True
args: [('client', 'Client'), ('server', 'Server')]
write_date
Datetime
readonly=True
string='Last Updated on'
write_uid
Integer
readonly=True
string='Last Updated by'
init(self)
active
Boolean
default=True
from_filter
Char
help='Comma-separated list of addresses or domains for which this server can be used.\ne.g.: "notification@odoo.com" or "odoo.com"'
args: 'FROM Filtering'
name
Char
index=True
required=True
string='Name'
sequence
Integer
default=10
help='When no specific mail server is requested for a mail, the highest priority one is used. Default priority is 10 (smaller number = higher priority)'
string='Priority'
smtp_authentication
Selection
default='login'
required=True
string='Authenticate with'
args: [('login', 'Username'), ('certificate', 'SSL Certificate'), ('cli', 'Command Line Interface')]
smtp_authentication_info
Text
compute='_compute_smtp_authentication_info'
args: 'Authentication Info'
smtp_debug
Boolean
help='If enabled, the full output of SMTP sessions will be written to the server log at DEBUG level (this is very verbose and may include confidential info!)'
string='Debugging'
smtp_encryption
Selection
default='none'
help='Choose the connection encryption scheme:\n- None: SMTP sessions are done in cleartext.\n- TLS (STARTTLS): TLS encryption is requested at start of SMTP session (Recommended)\n- SSL/TLS: SMTP sessions are encrypted with SSL/TLS through a dedicated port (default: 465)'
required=True
string='Connection Encryption'
args: [('none', 'None'), ('starttls', 'TLS (STARTTLS)'), ('ssl', 'SSL/TLS')]
smtp_host
Char
help='Hostname or IP of SMTP server'
string='SMTP Server'
smtp_pass
Char
groups='base.group_system'
help='Optional password for SMTP authentication'
string='Password'
smtp_port
Integer
default=25
help='SMTP Port. Usually 465 for SSL, and 25 or 587 for other cases.'
string='SMTP Port'
smtp_ssl_certificate
Binary
attachment=False
groups='base.group_system'
help='SSL certificate used for authentication'
args: 'SSL Certificate'
smtp_ssl_private_key
Binary
attachment=False
groups='base.group_system'
help='SSL private key used for authentication'
args: 'SSL Private Key'
smtp_user
Char
groups='base.group_system'
help='Optional username for SMTP authentication'
string='Username'
build_email(self, email_from, email_to, subject, body, email_cc=None, email_bcc=None, reply_to=False, attachments=None, message_id=None, references=None, object_id=False, subtype='plain', headers=None, body_alternative=None, subtype_alternative='plain')
connect(self, host=None, port=None, user=None, password=None, encryption=None, smtp_from=None, ssl_certificate=None, ssl_private_key=None, smtp_debug=False, mail_server_id=None, allow_archived=False)
send_email(self, message, mail_server_id=None, smtp_server=None, smtp_port=None, smtp_user=None, smtp_password=None, smtp_encryption=None, smtp_ssl_certificate=None, smtp_ssl_private_key=None, smtp_debug=False, smtp_session=None)
test_smtp_connection(self)
write(self, vals)
access_ids
One2many → ir.model.access
string='Access'
args: 'ir.model.access', 'model_id'
count
Integer
compute='_compute_count'
help='Total number of records in this model'
string='Count (Incl. Archived)'
field_id
One2many → ir.model.fields
copy=True
default=_default_field_id
required=True
string='Fields'
args: 'ir.model.fields', 'model_id'
info
Text
string='Information'
inherited_model_ids
Many2many → ir.model
compute='_inherited_models'
help='The list of models that extends the current model.'
string='Inherited models'
args: 'ir.model'
model
Char
default='x_'
required=True
modules
Char
compute='_in_modules'
help='List of modules in which the object is defined or inherited'
string='In Apps'
name
Char
required=True
string='Model Description'
translate=True
order
Char
default='id'
help='SQL expression for ordering records in the model; e.g. "x_sequence asc, id desc"'
required=True
string='Order'
rule_ids
One2many → ir.rule
string='Record Rules'
args: 'ir.rule', 'model_id'
state
Selection
default='manual'
readonly=True
string='Type'
args: [('manual', 'Custom Object'), ('base', 'Base Object')]
transient
Boolean
string='Transient Model'
view_ids
One2many → ir.ui.view
compute='_view_ids'
string='Views'
args: 'ir.ui.view'
create(self, vals_list)
name_create(self, name)
unlink(self)
write(self, vals)
active
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).'
group_id
Many2one → res.groups
index=True
ondelete='restrict'
string='Group'
args: 'res.groups'
model_id
Many2one → ir.model
index=True
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
name
Char
index=True
required=True
perm_create
Boolean
string='Create Access'
perm_read
Boolean
string='Read Access'
perm_unlink
Boolean
string='Delete Access'
perm_write
Boolean
string='Write Access'
call_cache_clearing_methods(self)
check(self, model, mode='read', raise_exception=True)
create(self, vals_list)
group_names_with_access(self, model_name, access_mode)
unlink(self)
write(self, values)
create_date
Datetime
definition
Char
help='PostgreSQL constraint definition'
message
Char
help='Error message returned when the constraint is violated.'
translate=True
model
Many2one → ir.model
index=True
ondelete='cascade'
required=True
args: 'ir.model'
module
Many2one → ir.module.module
index=True
ondelete='cascade'
required=True
args: 'ir.module.module'
name
Char
help='PostgreSQL constraint or foreign key name.'
index=True
required=True
string='Constraint'
type
Char
help='Type of the constraint: `f` for a foreign key, `u` for other constraints.'
index=True
required=True
size=1
string='Constraint Type'
write_date
Datetime
copy(self, default=None)
unlink(self)
complete_name
Char
compute='_compute_complete_name'
string='Complete ID'
model
Char
required=True
string='Model Name'
module
Char
default=''
required=True
name
Char
help='External Key/Identifier that can be used for data integration with third-party systems'
required=True
string='External Identifier'
noupdate
Boolean
default=False
string='Non Updatable'
reference
Char
compute='_compute_reference'
readonly=True
store=False
string='Reference'
res_id
Many2oneReference
help='ID of the target record in the database'
model_field='model'
string='Record ID'
check_object_reference(self, module, xml_id, raise_on_access_error=False)
copy(self, default=None)
toggle_noupdate(self, model, res_id)
unlink(self)
write(self, values)
column1
Char
help='Column referring to the record in the model table'
string='Column 1'
column2
Char
help='Column referring to the record in the comodel table'
string='Column 2'
complete_name
Char
index=True
compute
Text
help="Code to compute the value of the field.\nIterate on the recordset 'self' and assign the field's value:\n\n for record in self:\n record['size'] = len(record.name)\n\nModules time, datetime, dateutil are available."
copied
Boolean
compute='_compute_copied'
help='Whether the value is copied when duplicating a record.'
readonly=False
store=True
string='Copied'
currency_field
Char
help='Name of the Many2one field holding the res.currency'
string='Currency field'
depends
Char
help='Dependencies of compute method; a list of comma-separated field names, like\n\n name, partner_id.name'
string='Dependencies'
domain
Char
default='[]'
help="The optional domain to restrict possible values for relationship fields, specified as a Python expression defining a list of triplets. For example: [('color','=','red')]"
field_description
Char
default=''
required=True
string='Field Label'
translate=True
group_expand
Boolean
help="If checked, all the records of the target model will be included\nin a grouped result (e.g. 'Group By' filters, Kanban columns, etc.).\nNote that it can significantly reduce performance if the target model\nof the field contains a lot of records; usually used on models with\nfew records (e.g. Stages, Job Positions, Event Types, etc.)."
string='Expand Groups'
groups
Many2many → res.groups
help
Text
string='Field Help'
translate=True
index
Boolean
string='Indexed'
model
Char
help='The technical name of the model this field belongs to'
index=True
required=True
string='Model Name'
model_id
Many2one → ir.model
help='The model this field belongs to'
index=True
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
modules
Char
compute='_in_modules'
help='List of modules in which the field is defined'
string='In Apps'
name
Char
default='x_'
index=True
required=True
string='Field Name'
on_delete
Selection
default='set null'
help='On delete property for many2one fields'
string='On Delete'
args: [('cascade', 'Cascade'), ('set null', 'Set NULL'), ('restrict', 'Restrict')]
readonly
Boolean
related
Char
help='The corresponding related field, if any. This must be a dot-separated list of field names.'
string='Related Field'
related_field_id
Many2one → ir.model.fields
compute='_compute_related_field_id'
ondelete='cascade'
store=True
string='Related field'
args: 'ir.model.fields'
relation
Char
help='For relationship fields, the technical name of the target model'
string='Related Model'
relation_field
Char
help='For one2many fields, the field on the target model that implement the opposite many2one relationship'
relation_field_id
Many2one → ir.model.fields
compute='_compute_relation_field_id'
ondelete='cascade'
store=True
string='Relation field'
args: 'ir.model.fields'
relation_table
Char
help='Used for custom many2many fields to define a custom relation table name'
required
Boolean
sanitize
Boolean
default=True
string='Sanitize HTML'
sanitize_attributes
Boolean
default=True
string='Sanitize HTML Attributes'
sanitize_form
Boolean
default=True
string='Sanitize HTML Form'
sanitize_overridable
Boolean
default=False
string='Sanitize HTML overridable'
sanitize_style
Boolean
default=False
string='Sanitize HTML Style'
sanitize_tags
Boolean
default=True
string='Sanitize HTML Tags'
selectable
Boolean
default=True
selection
Char
compute='_compute_selection'
inverse='_inverse_selection'
string='Selection Options (Deprecated)'
selection_ids
One2many → ir.model.fields.selection
copy=True
string='Selection Options'
args: 'ir.model.fields.selection', 'field_id'
size
Integer
state
Selection
default='manual'
index=True
readonly=True
required=True
string='Type'
args: [('manual', 'Custom Field'), ('base', 'Base Field')]
store
Boolean
default=True
help='Whether the value is stored in the database.'
string='Stored'
strip_classes
Boolean
default=False
string='Strip Class Attribute'
strip_style
Boolean
default=False
string='Strip Style Attribute'
translate
Boolean
help='Whether values for this field can be translated (enables the translation mechanism for that field)'
string='Translatable'
ttype
Selection
required=True
selection=FIELD_TYPES
string='Field Type'
create(self, vals_list)
get_field_help(self, model_name)
get_field_selection(self, model_name, field_name)
get_field_string(self, model_name)
unlink(self)
write(self, vals)
field_id
Many2one → ir.model.fields
domain=[('ttype', 'in', ['selection', 'reference'])]
index=True
ondelete='cascade'
required=True
args: 'ir.model.fields'
name
Char
required=True
translate=True
sequence
Integer
default=1000
value
Char
required=True
create(self, vals_list)
unlink(self)
write(self, vals)
model_id
Many2one → ir.model
ondelete='cascade'
required=True
args: 'ir.model'
parent_field_id
Many2one → ir.model.fields
ondelete='cascade'
args: 'ir.model.fields'
parent_id
Many2one → ir.model
ondelete='cascade'
required=True
args: 'ir.model'
No public methods.
create_date
Datetime
model
Many2one → ir.model
index=True
ondelete='cascade'
required=True
args: 'ir.model'
module
Many2one → ir.module.module
index=True
ondelete='cascade'
required=True
args: 'ir.module.module'
name
Char
help='PostgreSQL table name implementing a many2many relation.'
index=True
required=True
string='Relation Name'
write_date
Datetime
No public methods.
No new fields.
Public methods (2)unlink(self)
write(self, values)
child_ids
One2many → ir.module.category
string='Child Applications'
args: 'ir.module.category', 'parent_id'
description
Text
string='Description'
translate=True
exclusive
Boolean
string='Exclusive'
module_ids
One2many → ir.module.module
string='Modules'
args: 'ir.module.module', 'category_id'
name
Char
index=True
required=True
string='Name'
translate=True
parent_id
Many2one → ir.module.category
index=True
string='Parent Application'
args: 'ir.module.category'
sequence
Integer
string='Sequence'
visible
Boolean
default=True
string='Visible'
xml_id
Char
compute='_compute_xml_id'
string='External ID'
No public methods.
application
Boolean
readonly=True
args: 'Application'
author
Char
readonly=True
args: 'Author'
auto_install
Boolean
help='An auto-installable module is automatically installed by the system when all its dependencies are satisfied. If the module has no dependency, it is always installed.'
args: 'Automatic Installation'
category_id
Many2one → ir.module.category
index=True
readonly=True
string='Category'
args: 'ir.module.category'
contributors
Text
readonly=True
args: 'Contributors'
demo
Boolean
default=False
readonly=True
args: 'Demo Data'
dependencies_id
One2many → ir.module.module.dependency
readonly=True
string='Dependencies'
args: 'ir.module.module.dependency', 'module_id'
description
Text
readonly=True
translate=True
args: 'Description'
description_html
Html
compute='_get_desc'
args: 'Description HTML'
exclusion_ids
One2many → ir.module.module.exclusion
readonly=True
string='Exclusions'
args: 'ir.module.module.exclusion', 'module_id'
has_iap
Boolean
compute='_compute_has_iap'
icon
Char
icon_flag
Char
compute='_get_icon_image'
string='Flag'
icon_image
Binary
compute='_get_icon_image'
string='Icon'
installed_version
Char
compute='_get_latest_version'
args: 'Latest Version'
latest_version
Char
readonly=True
args: 'Installed Version'
license
Selection
default='LGPL-3'
readonly=True
string='License'
args: [('GPL-2', 'GPL Version 2'), ('GPL-2 or any later version', 'GPL-2 or later version'), ('GPL-3', 'GPL Version 3'), ('GPL-3 or any later version', 'GPL-3 or later version'), ('AGPL-3', 'Affero GPL-3'), ('LGPL-3', 'LGPL Version 3'), ('Other OSI approved licence', 'Other OSI Approved License'), ('OEEL-1', 'Odoo Enterprise Edition License v1.0'), ('OPL-1', 'Odoo Proprietary License v1.0'), ('Other proprietary', 'Other Proprietary')]
maintainer
Char
readonly=True
args: 'Maintainer'
menus_by_module
Text
compute='_get_views'
store=True
string='Menus'
name
Char
readonly=True
required=True
args: 'Technical Name'
published_version
Char
readonly=True
args: 'Published Version'
reports_by_module
Text
compute='_get_views'
store=True
string='Reports'
sequence
Integer
default=100
args: 'Sequence'
shortdesc
Char
readonly=True
translate=True
args: 'Module Name'
state
Selection
default='uninstallable'
index=True
readonly=True
string='Status'
args: STATES
summary
Char
readonly=True
translate=True
args: 'Summary'
to_buy
Boolean
default=False
args: 'Odoo Enterprise Module'
url
Char
readonly=True
args: 'URL'
views_by_module
Text
compute='_get_views'
store=True
string='Views'
website
Char
readonly=True
args: 'Website'
button_immediate_install(self)
button_immediate_uninstall(self)
button_immediate_upgrade(self)
button_install(self)
button_install_cancel(self)
button_uninstall(self)
button_uninstall_cancel(self)
button_uninstall_wizard(self)
button_upgrade(self)
button_upgrade_cancel(self)
check_external_dependencies(cls, module_name, newstate='to install')
create(self, vals_list)
downstream_dependencies(self, known_deps=None, exclude_states=('uninstalled', 'uninstallable', 'to remove'))
get_module_info(cls, name)
get_values_from_terp(terp)
module_uninstall(self)
next(self)
search_panel_select_range(self, field_name, **kwargs)
unlink(self)
update_list(self)
upstream_dependencies(self, known_deps=None, exclude_states=('installed', 'uninstallable', 'to remove'))
auto_install_required
Boolean
default=True
help='Whether this dependency blocks automatic installation of the dependent'
depend_id
Many2one → ir.module.module
compute='_compute_depend'
search='_search_depend'
args: 'ir.module.module', 'Dependency'
module_id
Many2one → ir.module.module
ondelete='cascade'
args: 'ir.module.module', 'Module'
name
Char
index=True
state
Selection
compute='_compute_state'
string='Status'
args: DEP_STATES
No public methods.
exclusion_id
Many2one → ir.module.module
compute='_compute_exclusion'
search='_search_exclusion'
args: 'ir.module.module', 'Exclusion Module'
module_id
Many2one → ir.module.module
ondelete='cascade'
args: 'ir.module.module', 'Module'
name
Char
index=True
state
Selection
compute='_compute_state'
string='Status'
args: DEP_STATES
No public methods.
create_date
Datetime
duration
Float
entry_count
Integer
init_stack_trace
Text
prefetch=False
args: 'Initial stack trace'
name
Char
qweb
Text
prefetch=False
args: 'Qweb'
session
Char
index=True
args: 'Session'
speedscope
Binary
compute='_compute_speedscope'
args: 'Speedscope'
speedscope_url
Text
compute='_compute_speedscope_url'
args: 'Open'
sql
Text
prefetch=False
args: 'Sql'
sql_count
Integer
traces_async
Text
prefetch=False
args: 'Traces Async'
traces_sync
Text
prefetch=False
args: 'Traces Sync'
set_profiling(self, profile=None, collectors=None, params=None)
company_id
Many2one → res.company
index=True
string='Company'
args: 'res.company'
fields_id
Many2one → ir.model.fields
ondelete='cascade'
required=True
string='Field'
args: 'ir.model.fields'
name
Char
index=True
res_id
Char
help='If not set, acts as a default value for new resources'
index=True
string='Resource'
type
Selection
default='many2one'
index=True
required=True
args: [('char', 'Char'), ('float', 'Float'), ('boolean', 'Boolean'), ('integer', 'Integer'), ('text', 'Text'), ('binary', 'Binary'), ('many2one', 'Many2One'), ('date', 'Date'), ('datetime', 'DateTime'), ('selection', 'Selection'), ('html', 'Html')]
value_binary
Binary
attachment=False
value_datetime
Datetime
value_float
Float
value_integer
Integer
value_reference
Char
value_text
Text
create(self, vals_list)
get_by_record(self)
init(self)
search_multi(self, name, model, operator, value)
unlink(self)
write(self, values)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (5)attributes(self, record, field_name, options, values=None)
get_available_options(self)
record_to_html(self, record, field_name, options)
user_lang(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options=None)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)record_to_html(self, record, field_name, options)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
active
Boolean
default=True
help='If you uncheck the active field, it will disable the record rule without deleting it (if you delete a native record rule, it may be re-created when you reload the module).'
domain_force
Text
string='Domain'
groups
Many2many → res.groups
ondelete='restrict'
args: 'res.groups', 'rule_group_rel', 'rule_group_id', 'group_id'
model_id
Many2one → ir.model
index=True
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
name
Char
index=True
perm_create
Boolean
default=True
string='Create'
perm_read
Boolean
default=True
string='Read'
perm_unlink
Boolean
default=True
string='Delete'
perm_write
Boolean
default=True
string='Write'
create(self, vals_list)
unlink(self)
write(self, vals)
active
Boolean
default=True
code
Char
string='Sequence Code'
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
date_range_ids
One2many → ir.sequence.date_range
string='Subsequences'
args: 'ir.sequence.date_range', 'sequence_id'
implementation
Selection
default='standard'
help="While assigning a sequence number to a record, the 'no gap' sequence implementation ensures that each previous sequence number has been assigned already. While this sequence implementation will not skip any sequence number upon assignment, there can still be gaps in the sequence if records are deleted. The 'no gap' implementation is slower than the standard one."
required=True
string='Implementation'
args: [('standard', 'Standard'), ('no_gap', 'No gap')]
name
Char
required=True
number_increment
Integer
default=1
help='The next number of the sequence will be incremented by this number'
required=True
string='Step'
number_next
Integer
default=1
help='Next number of this sequence'
required=True
string='Next Number'
number_next_actual
Integer
compute='_get_number_next_actual'
help='Next number that will be used. This number can be incremented frequently so the displayed value might already be obsolete'
inverse='_set_number_next_actual'
string='Actual Next Number'
padding
Integer
default=0
help="Odoo will automatically adds some '0' on the left of the 'Next Number' to get the required padding size."
required=True
string='Sequence Size'
prefix
Char
help='Prefix value of the record for the sequence'
trim=False
suffix
Char
help='Suffix value of the record for the sequence'
trim=False
use_date_range
Boolean
string='Use subsequences per date_range'
create(self, vals_list)
get(self, code)
get_id(self, sequence_code_or_id, code_or_id='id')
get_next_char(self, number_next)
next_by_code(self, sequence_code, sequence_date=None)
next_by_id(self, sequence_date=None)
unlink(self)
write(self, values)
date_from
Date
required=True
string='From'
date_to
Date
required=True
string='To'
number_next
Integer
default=1
help='Next number of this sequence'
required=True
string='Next Number'
number_next_actual
Integer
compute='_get_number_next_actual'
help='Next number that will be used. This number can be incremented frequently so the displayed value might already be obsolete'
inverse='_set_number_next_actual'
string='Actual Next Number'
sequence_id
Many2one → ir.sequence
ondelete='cascade'
required=True
string='Main Sequence'
args: 'ir.sequence'
create(self, vals_list)
default_get(self, fields)
unlink(self)
write(self, values)
action
Reference
selection=[('ir.actions.report', 'ir.actions.report'), ('ir.actions.act_window', 'ir.actions.act_window'), ('ir.actions.act_url', 'ir.actions.act_url'), ('ir.actions.server', 'ir.actions.server'), ('ir.actions.client', 'ir.actions.client')]
active
Boolean
default=True
child_id
One2many → ir.ui.menu
string='Child IDs'
args: 'ir.ui.menu', 'parent_id'
complete_name
Char
compute='_compute_complete_name'
recursive=True
string='Full Path'
groups_id
Many2many → res.groups
help="If you have groups, the visibility of this menu will be based on these groups. If this field is empty, Odoo will compute visibility based on the related object's read access."
string='Groups'
args: 'res.groups', 'ir_ui_menu_group_rel', 'menu_id', 'gid'
name
Char
required=True
string='Menu'
translate=True
parent_id
Many2one → ir.ui.menu
index=True
ondelete='restrict'
string='Parent Menu'
args: 'ir.ui.menu'
parent_path
Char
index=True
unaccent=False
sequence
Integer
default=10
web_icon
Char
string='Web Icon File'
web_icon_data
Binary
attachment=True
string='Web Icon Image'
copy(self, default=None)
create(self, vals_list)
get_user_roots(self)
load_menus(self, debug)
load_menus_root(self)
search_count(self, domain, limit=None)
search_fetch(self, domain, field_names, offset=0, limit=None, order=None)
unlink(self)
write(self, values)
active
Boolean
default=True
help='If this view is inherited,\n* if True, the view always extends its parent\n* if False, the view currently does not extend its parent but can be enabled\n '
arch
Text
compute='_compute_arch'
help='This field should be used when accessing view arch. It will use translation.\n Note that it will read `arch_db` or `arch_fs` if in dev-xml mode.'
inverse='_inverse_arch'
string='View Architecture'
arch_base
Text
compute='_compute_arch_base'
help='This field is the same as `arch` field without translations'
inverse='_inverse_arch_base'
string='Base View Architecture'
arch_db
Text
help='This field stores the view arch.'
string='Arch Blob'
translate=xml_translate
arch_fs
Char
help='File from where the view originates.\n Useful to (hard) reset broken views or to read arch from file in dev-xml mode.'
string='Arch Filename'
arch_prev
Text
help='This field will save the current `arch_db` before writing on it.\n Useful to (soft) reset a broken view.'
string='Previous View Architecture'
arch_updated
Boolean
string='Modified Architecture'
groups_id
Many2many → res.groups
help='If this field is empty, the view applies to all users. Otherwise, the view applies to the users of those groups only.'
string='Groups'
args: 'res.groups', 'ir_ui_view_group_rel', 'view_id', 'group_id'
inherit_children_ids
One2many → ir.ui.view
string='Views which inherit from this one'
args: 'ir.ui.view', 'inherit_id'
inherit_id
Many2one → ir.ui.view
index=True
ondelete='restrict'
string='Inherited View'
args: 'ir.ui.view'
key
Char
index='btree_not_null'
mode
Selection
default='primary'
help="Only applies if this view inherits from an other one (inherit_id is not False/Null).\n\n* if extension (default), if this view is requested the closest primary view\nis looked up (via inherit_id), then all views inheriting from it with this\nview's model are applied\n* if primary, the closest primary view is fully resolved (even if it uses a\ndifferent model than this one), then this view's inheritance specs\n(<xpath/>) are applied, and the result is used as if it were this view's\nactual arch.\n"
required=True
string='View inheritance mode'
args: [('primary', 'Base view'), ('extension', 'Extension View')]
model
Char
index=True
model_data_id
Many2one → ir.model.data
compute='_compute_model_data_id'
search='_search_model_data_id'
string='Model Data'
args: 'ir.model.data'
model_id
Many2one → ir.model
compute='_compute_model_id'
inverse='_inverse_compute_model_id'
string='Model of the view'
args: 'ir.model'
name
Char
required=True
string='View Name'
priority
Integer
default=16
required=True
string='Sequence'
type
Selection
string='View Type'
args: [('tree', 'Tree'), ('form', 'Form'), ('graph', 'Graph'), ('pivot', 'Pivot'), ('calendar', 'Calendar'), ('gantt', 'Gantt'), ('kanban', 'Kanban'), ('search', 'Search'), ('qweb', 'QWeb')]
xml_id
Char
compute='_compute_xml_id'
help='ID of the view defined in xml file'
string='External ID'
apply_inheritance_specs(self, source, specs_tree, pre_locate=<expr>)
copy(self, default=None)
create(self, vals_list)
default_view(self, model, view_type)
distribute_branding(self, e, branding=None, parent_xpath='', index_map=ConstantMapping(1))
get_combined_arch(self)
inherit_branding(self, specs_tree)
is_node_branded(self, node)
locate_node(self, arch, spec)
postprocess_and_fields(self, node, model=None, **options)
read_combined(self, fields=None)
render_public_asset(self, template, values=None)
reset_arch(self, mode='soft')
unlink(self)
write(self, vals)
arch
Text
required=True
string='View Architecture'
ref_id
Many2one → ir.ui.view
index=True
ondelete='cascade'
required=True
string='Original View'
args: 'ir.ui.view'
user_id
Many2one → res.users
index=True
ondelete='cascade'
required=True
string='User'
args: 'res.users'
No public methods.
No new fields.
Public methods (0)No public methods.
image
Char
string='Preview image src'
name
Char
pdf
Char
string='Preview pdf src'
sequence
Integer
default=50
view_id
Many2one → ir.ui.view
required=True
args: 'ir.ui.view', 'Document Template'
No public methods.
default
Boolean
disable_shrinking
Boolean
dpi
Integer
default=90
required=True
args: 'Output DPI'
format
Selection
default='A4'
help='Select Proper Paper size'
args: <expr>, 'Paper size'
header_line
Boolean
default=False
args: 'Display a header line'
header_spacing
Integer
default=35
args: 'Header spacing'
margin_bottom
Float
default=20
args: 'Bottom Margin (mm)'
margin_left
Float
default=7
args: 'Left Margin (mm)'
margin_right
Float
default=7
args: 'Right Margin (mm)'
margin_top
Float
default=40
args: 'Top Margin (mm)'
name
Char
required=True
args: 'Name'
orientation
Selection
default='Landscape'
args: [('Landscape', 'Landscape'), ('Portrait', 'Portrait')], 'Orientation'
page_height
Integer
default=False
args: 'Page height (mm)'
page_width
Integer
default=False
args: 'Page width (mm)'
print_page_height
Float
compute='_compute_print_page_size'
args: 'Print page height (mm)'
print_page_width
Float
compute='_compute_print_page_size'
args: 'Print page width (mm)'
report_ids
One2many → ir.actions.report
help='Explicitly associated reports'
args: 'ir.actions.report', 'paperformat_id', 'Associated reports'
No public methods.
active
Boolean
default=True
bic
Char
help='Sometimes called BIC or Swift.'
index=True
args: 'Bank Identifier Code'
city
Char
country
Many2one → res.country
email
Char
name
Char
required=True
phone
Char
state
Many2one → res.country.state
domain="[('country_id', '=?', country)]"
args: 'res.country.state', 'Fed. State'
street
Char
street2
Char
zip
Char
No public methods.
No new fields.
Public methods (0)No public methods.
active
Boolean
default=True
all_child_ids
One2many → res.company
context={'active_test': False}
args: 'res.company', 'parent_id'
bank_ids
One2many
readonly=False
related='partner_id.bank_ids'
child_ids
One2many → res.company
string='Branches'
args: 'res.company', 'parent_id'
city
Char
compute='_compute_address'
inverse='_inverse_city'
color
Integer
compute='_compute_color'
inverse='_inverse_color'
company_details
Html
help='Header text displayed at the top of all reports.'
string='Company Details'
translate=True
company_registry
Char
readonly=False
related='partner_id.company_registry'
string='Company ID'
country_id
Many2one → res.country
compute='_compute_address'
inverse='_inverse_country'
string='Country'
args: 'res.country'
currency_id
Many2one → res.currency
default=<expr>
required=True
string='Currency'
args: 'res.currency'
email
Char
readonly=False
related='partner_id.email'
store=True
external_report_layout_id
Many2one → ir.ui.view
font
Selection
default='Lato'
args: [('Lato', 'Lato'), ('Roboto', 'Roboto'), ('Open_Sans', 'Open Sans'), ('Montserrat', 'Montserrat'), ('Oswald', 'Oswald'), ('Raleway', 'Raleway'), ('Tajawal', 'Tajawal')]
is_company_details_empty
Boolean
compute='_compute_empty_company_details'
layout_background
Selection
default='Blank'
required=True
args: [('Blank', 'Blank'), ('Geometric', 'Geometric'), ('Custom', 'Custom')]
layout_background_image
Binary
logo
Binary
default=_get_logo
readonly=False
related='partner_id.image_1920'
string='Company Logo'
logo_web
Binary
attachment=False
compute='_compute_logo_web'
store=True
mobile
Char
readonly=False
related='partner_id.mobile'
store=True
name
Char
readonly=False
related='partner_id.name'
required=True
store=True
string='Company Name'
paperformat_id
Many2one → report.paperformat
default=<expr>
args: 'report.paperformat', 'Paper format'
parent_id
Many2one → res.company
index=True
string='Parent Company'
args: 'res.company'
parent_ids
Many2many → res.company
compute='_compute_parent_ids'
compute_sudo=True
args: 'res.company'
parent_path
Char
index=True
unaccent=False
partner_id
Many2one → res.partner
required=True
string='Partner'
args: 'res.partner'
phone
Char
readonly=False
related='partner_id.phone'
store=True
primary_color
Char
report_footer
Html
help='Footer text displayed at the bottom of all reports.'
string='Report Footer'
translate=True
report_header
Html
help="Company tagline, which is included in a printed document's header or footer (depending on the selected layout)."
string='Company Tagline'
translate=True
root_id
Many2one → res.company
compute='_compute_parent_ids'
compute_sudo=True
args: 'res.company'
secondary_color
Char
sequence
Integer
default=10
help='Used to order Companies in the company switcher'
state_id
Many2one → res.country.state
compute='_compute_address'
domain="[('country_id', '=?', country_id)]"
inverse='_inverse_state'
string='Fed. State'
args: 'res.country.state'
street
Char
compute='_compute_address'
inverse='_inverse_street'
street2
Char
compute='_compute_address'
inverse='_inverse_street2'
user_ids
Many2many → res.users
string='Accepted Users'
args: 'res.users', 'res_company_users_rel', 'cid', 'user_id'
uses_default_logo
Boolean
compute='_compute_uses_default_logo'
store=True
vat
Char
readonly=False
related='partner_id.vat'
string='Tax ID'
website
Char
readonly=False
related='partner_id.website'
zip
Char
compute='_compute_address'
inverse='_inverse_zip'
action_all_company_branches(self)
cache_invalidation_fields(self)
copy(self, default=None)
create(self, vals_list)
init(self)
open_company_edit_report(self)
unlink(self)
write(self, values)
write_company_and_print_report(self)
No new fields.
Public methods (7)action_cancel(self)
action_next(self)
action_skip(self)
cancel(self)
execute(self)
next(self)
start(self)
No new fields.
Public methods (5)already_installed(self)
default_get(self, fields_list)
execute(self)
fields_get(self, allfields=None, attributes=None)
modules_to_install(self)
No new fields.
Public methods (12)action_open_template_user(self)
cancel(self)
copy(self, default=None)
create(self, vals_list)
default_get(self, fields)
execute(self)
get_config_warning(self, msg)
get_option_name(self, full_field_name)
get_option_path(self, menu_xml_id)
get_values(self)
onchange_module(self, field_value, module_name)
set_values(self)
address_format
Text
default='%(street)s\n%(street2)s\n%(city)s %(state_code)s %(zip)s\n%(country_name)s'
help="Display format to use for addresses belonging to this country.\n\nYou can use python-style string pattern with all the fields of the address (for example, use '%(street)s' to display the field 'street') plus\n%(state_name)s: the name of the state\n%(state_code)s: the code of the state\n%(country_name)s: the name of the country\n%(country_code)s: the code of the country"
string='Layout in Reports'
address_view_id
Many2one → ir.ui.view
comodel_name='ir.ui.view'
domain=[('model', '=', 'res.partner'), ('type', '=', 'form')]
help='Use this field if you want to replace the usual way to encode a complete address. Note that the address_format field is used to modify the way to display addresses (in reports for example), while this field is used to modify the input form for addresses.'
string='Input View'
code
Char
help='The ISO country code in two chars. \nYou can use this field for quick search.'
required=True
size=2
string='Country Code'
country_group_ids
Many2many → res.country.group
string='Country Groups'
args: 'res.country.group', 'res_country_res_country_group_rel', 'res_country_id', 'res_country_group_id'
currency_id
Many2one → res.currency
string='Currency'
args: 'res.currency'
image_url
Char
compute='_compute_image_url'
help='Url of static flag image'
string='Flag'
name
Char
required=True
string='Country Name'
translate=True
name_position
Selection
default='before'
help='Determines where the customer/company name should be placed, i.e. after or before the address.'
string='Customer Name Position'
args: [('before', 'Before Address'), ('after', 'After Address')]
phone_code
Integer
string='Country Calling Code'
state_ids
One2many → res.country.state
string='States'
args: 'res.country.state', 'country_id'
state_required
Boolean
default=False
vat_label
Char
help='Use this field if you want to change vat label.'
prefetch=True
string='Vat Label'
translate=True
zip_required
Boolean
default=True
create(self, vals_list)
get_address_fields(self)
write(self, vals)
country_ids
Many2many → res.country
string='Countries'
args: 'res.country', 'res_country_res_country_group_rel', 'res_country_group_id', 'res_country_id'
name
Char
required=True
translate=True
No public methods.
code
Char
help='The state code.'
required=True
string='State Code'
country_id
Many2one → res.country
required=True
string='Country'
args: 'res.country'
name
Char
help='Administrative divisions of a country. E.g. Fed. State, Department, Canton'
required=True
string='State Name'
No public methods.
active
Boolean
default=True
currency_subunit_label
Char
string='Currency Subunit'
currency_unit_label
Char
string='Currency Unit'
date
Date
compute='_compute_date'
decimal_places
Integer
compute='_compute_decimal_places'
help='Decimal places taken into account for operations on amounts in this currency. It is determined by the rounding factor.'
store=True
full_name
Char
string='Name'
inverse_rate
Float
compute='_compute_current_rate'
digits=0
help='The currency of rate 1 to the rate of the currency.'
readonly=True
is_current_company_currency
Boolean
compute='_compute_is_current_company_currency'
name
Char
help='Currency Code (ISO 4217)'
required=True
size=3
string='Currency'
position
Selection
default='after'
help='Determines where the currency symbol should be placed after or before the amount.'
string='Symbol Position'
args: [('after', 'After Amount'), ('before', 'Before Amount')]
rate
Float
compute='_compute_current_rate'
digits=0
help='The rate of the currency to the currency of rate 1.'
string='Current Rate'
rate_ids
One2many → res.currency.rate
string='Rates'
args: 'res.currency.rate', 'currency_id'
rate_string
Char
compute='_compute_current_rate'
rounding
Float
default=0.01
digits=(12, 6)
help='Amounts in this currency are rounded off to the nearest multiple of the rounding factor.'
string='Rounding Factor'
symbol
Char
help='Currency sign, to be used when printing amounts.'
required=True
amount_to_text(self, amount)
compare_amounts(self, amount1, amount2)
create(self, vals_list)
format(self, amount)
is_zero(self, amount)
round(self, amount)
unlink(self)
write(self, vals)
No new fields.
Public methods (0)No public methods.
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
company_rate
Float
compute='_compute_company_rate'
digits=0
group_operator='avg'
help='The currency of rate 1 to the rate of the currency.'
inverse='_inverse_company_rate'
currency_id
Many2one → res.currency
ondelete='cascade'
readonly=True
required=True
string='Currency'
args: 'res.currency'
inverse_company_rate
Float
compute='_compute_inverse_company_rate'
digits=0
group_operator='avg'
help='The rate of the currency to the currency of rate 1 '
inverse='_inverse_inverse_company_rate'
name
Date
default=fields.Date.context_today
index=True
required=True
string='Date'
rate
Float
digits=0
group_operator='avg'
help='The rate of the currency to the currency of rate 1'
string='Technical Rate'
create(self, vals_list)
write(self, vals)
category_id
Many2one → ir.module.category
index=True
string='Application'
args: 'ir.module.category'
color
Integer
string='Color Index'
comment
Text
translate=True
full_name
Char
compute='_compute_full_name'
search='_search_full_name'
string='Group Name'
menu_access
Many2many → ir.ui.menu
string='Access Menu'
args: 'ir.ui.menu', 'ir_ui_menu_group_rel', 'gid', 'menu_id'
model_access
One2many → ir.model.access
copy=True
string='Access Controls'
args: 'ir.model.access', 'group_id'
name
Char
required=True
translate=True
rule_groups
Many2many → ir.rule
domain="[('global', '=', False)]"
string='Rules'
args: 'ir.rule', 'rule_group_rel', 'group_id', 'rule_group_id'
share
Boolean
help='Group created to set access rights for sharing data with some users.'
string='Share Group'
users
Many2many → res.users
view_access
Many2many → ir.ui.view
string='Views'
args: 'ir.ui.view', 'ir_ui_view_group_rel', 'group_id', 'view_id'
copy(self, default=None)
write(self, vals)
implied_ids
Many2many → res.groups
help='Users of this group automatically inherit those groups'
string='Inherits'
args: 'res.groups', 'res_groups_implied_rel', 'gid', 'hid'
trans_implied_ids
Many2many → res.groups
compute='_compute_trans_implied'
recursive=True
string='Transitively inherits'
args: 'res.groups'
create(self, vals_list)
write(self, values)
No new fields.
Public methods (5)create(self, vals_list)
get_application_groups(self, domain)
get_groups_by_application(self)
unlink(self)
write(self, values)
active
Boolean
code
Char
help='This field is used to set/get locales for user'
required=True
string='Locale Code'
date_format
Char
default=DEFAULT_DATE_FORMAT
required=True
string='Date Format'
decimal_point
Char
default='.'
required=True
string='Decimal Separator'
trim=False
direction
Selection
default='ltr'
required=True
args: [('ltr', 'Left-to-Right'), ('rtl', 'Right-to-Left')]
flag_image
Image
flag_image_url
Char
compute=_compute_field_flag_image_url
grouping
Char
default='[]'
help="The Separator Format should be like [,n] where 0 < n :starting from Unit digit. -1 will end the separation. e.g. [3,2,-1] will represent 106500 to be 1,06,500; [1,2,-1] will represent it to be 106,50,0;[3] will represent it as 106,500. Provided ',' as the thousand separator in each case."
required=True
string='Separator Format'
iso_code
Char
help='This ISO code is the name of po files to use for translations'
string='ISO code'
name
Char
required=True
thousands_sep
Char
default=','
string='Thousands Separator'
trim=False
time_format
Char
default=DEFAULT_TIME_FORMAT
required=True
string='Time Format'
url_code
Char
help='The Lang Code displayed in the URL'
required=True
args: 'URL Code'
week_start
Selection
default='7'
required=True
string='First Day of Week'
args: [('1', 'Monday'), ('2', 'Tuesday'), ('3', 'Wednesday'), ('4', 'Thursday'), ('5', 'Friday'), ('6', 'Saturday'), ('7', 'Sunday')]
action_activate_langs(self)
copy_data(self, default=None)
create(self, vals_list)
format(self, percent, value, grouping=False, monetary=False)
get_available(self)
get_installed(self)
get_sorted(self)
install_lang(self)
toggle_active(self)
unlink(self)
write(self, vals)
No new fields.
Public methods (0)No public methods.
active
Boolean
default=True
active_lang_count
Integer
compute='_compute_active_lang_count'
bank_ids
One2many → res.partner.bank
string='Banks'
args: 'res.partner.bank', 'partner_id'
barcode
Char
company_dependent=True
copy=False
help='Use a barcode to identify this contact.'
category_id
Many2many → res.partner.category
column1='partner_id'
column2='category_id'
default=_default_category
string='Tags'
args: 'res.partner.category'
child_ids
One2many → res.partner
domain=[('active', '=', True)]
string='Contact'
args: 'res.partner', 'parent_id'
city
Char
color
Integer
default=0
string='Color Index'
comment
Html
string='Notes'
commercial_company_name
Char
compute='_compute_commercial_company_name'
store=True
args: 'Company Name Entity'
commercial_partner_id
Many2one → res.partner
compute='_compute_commercial_partner'
index=True
recursive=True
store=True
string='Commercial Entity'
args: 'res.partner'
company_id
Many2one → res.company
index=True
args: 'res.company', 'Company'
company_name
Char
company_registry
Char
compute='_compute_company_registry'
help='The registry number of the company. Use it if it is different from the Tax ID. It must be unique across all partners of a same country'
readonly=False
store=True
string='Company ID'
company_type
Selection
compute='_compute_company_type'
inverse='_write_company_type'
selection=[('person', 'Individual'), ('company', 'Company')]
string='Company Type'
complete_name
Char
compute='_compute_complete_name'
index=True
store=True
contact_address
Char
compute='_compute_contact_address'
string='Complete Address'
country_code
Char
related='country_id.code'
string='Country Code'
country_id
Many2one → res.country
ondelete='restrict'
string='Country'
args: 'res.country'
date
Date
index=True
email
Char
email_formatted
Char
compute='_compute_email_formatted'
help='Format email address "Name <email@domain>"'
args: 'Formatted Email'
employee
Boolean
help='Check this box if this contact is an Employee.'
function
Char
string='Job Position'
industry_id
Many2one → res.partner.industry
is_company
Boolean
default=False
help='Check if the contact is a company, otherwise it is a person'
string='Is a Company'
is_public
Boolean
compute='_compute_is_public'
lang
Selection
help='All the emails and documents sent to this contact will be translated in this language.'
string='Language'
args: _lang_get
mobile
Char
unaccent=False
name
Char
default_export_compatible=True
index=True
parent_id
Many2one → res.partner
index=True
string='Related Company'
args: 'res.partner'
parent_name
Char
readonly=True
related='parent_id.name'
string='Parent name'
partner_latitude
Float
digits=(10, 7)
string='Geo Latitude'
partner_longitude
Float
digits=(10, 7)
string='Geo Longitude'
partner_share
Boolean
compute='_compute_partner_share'
help='Either customer (not a user), either shared user. Indicated the current partner is a customer without access or with a limited access created for sharing data.'
store=True
args: 'Share Partner'
phone
Char
unaccent=False
ref
Char
index=True
string='Reference'
same_company_registry_partner_id
Many2one → res.partner
compute='_compute_same_vat_partner_id'
store=False
string='Partner with same Company Registry'
args: 'res.partner'
same_vat_partner_id
Many2one → res.partner
compute='_compute_same_vat_partner_id'
store=False
string='Partner with same Tax ID'
args: 'res.partner'
self
Many2one
comodel_name=_name
compute='_compute_get_ids'
state_id
Many2one → res.country.state
domain="[('country_id', '=?', country_id)]"
ondelete='restrict'
string='State'
args: 'res.country.state'
street
Char
street2
Char
title
Many2one → res.partner.title
type
Selection
default='contact'
help='- Contact: Use this to organize the contact details of employees of a given company (e.g. CEO, CFO, ...).\n- Invoice Address: Preferred address for all invoices. Selected by default when you invoice an order that belongs to this company.\n- Delivery Address: Preferred address for all deliveries. Selected by default when you deliver an order that belongs to this company.\n- Other: Other address for the company (e.g. subsidiary, ...)'
string='Address Type'
args: [('contact', 'Contact'), ('invoice', 'Invoice Address'), ('delivery', 'Delivery Address'), ('other', 'Other Address')]
tz
Selection
default=<expr>
help='When printing documents and exporting/importing data, time values are computed according to this timezone.\nIf the timezone is not set, UTC (Coordinated Universal Time) is used.\nAnywhere else, time values are computed according to the time offset of your web client.'
string='Timezone'
args: _tz_get
tz_offset
Char
compute='_compute_tz_offset'
string='Timezone offset'
user_id
Many2one → res.users
compute='_compute_user_id'
help='The internal user in charge of this contact.'
precompute=True
readonly=False
store=True
string='Salesperson'
args: 'res.users'
user_ids
One2many → res.users
auto_join=True
string='Users'
args: 'res.users', 'partner_id'
vat
Char
help="The Tax Identification Number. Values here will be validated based on the country format. You can use '/' to indicate that the partner is not subject to tax."
index=True
string='Tax ID'
website
Char
zip
Char
change_default=True
address_get(self, adr_pref=None)
copy(self, default=None)
create(self, vals_list)
create_company(self)
default_get(self, default_fields)
find_or_create(self, email, assert_valid_email=False)
get_import_templates(self)
main_partner(self)
name_create(self, name)
onchange_company_type(self)
onchange_email(self)
onchange_parent_id(self)
open_commercial_entity(self)
open_parent(self)
update_address(self, vals)
view_header_get(self, view_id, view_type)
write(self, vals)
acc_holder_name
Char
compute='_compute_account_holder_name'
help='Account holder name, in case it is different than the name of the Account Holder'
readonly=False
store=True
string='Account Holder Name'
acc_number
Char
required=True
args: 'Account Number'
acc_type
Selection
compute='_compute_acc_type'
help='Bank account type: Normal or IBAN. Inferred from the bank account number.'
selection=<expr>
string='Type'
active
Boolean
default=True
allow_out_payment
Boolean
copy=False
default=False
help='This account can be used for outgoing payments'
readonly=False
args: 'Send Money'
bank_bic
Char
readonly=False
related='bank_id.bic'
bank_id
Many2one → res.bank
string='Bank'
args: 'res.bank'
bank_name
Char
readonly=False
related='bank_id.name'
company_id
Many2one → res.company
readonly=True
related='partner_id.company_id'
store=True
args: 'res.company', 'Company'
currency_id
Many2one → res.currency
string='Currency'
args: 'res.currency'
partner_id
Many2one → res.partner
domain=['|', ('is_company', '=', True), ('parent_id', '=', False)]
index=True
ondelete='cascade'
required=True
args: 'res.partner', 'Account Holder'
sanitized_acc_number
Char
compute='_compute_sanitized_acc_number'
readonly=True
store=True
string='Sanitized Account Number'
sequence
Integer
default=10
create(self, vals_list)
get_supported_account_types(self)
retrieve_acc_type(self, acc_number)
write(self, vals)
active
Boolean
default=True
help='The active field allows you to hide the category without removing it.'
child_ids
One2many → res.partner.category
string='Child Tags'
args: 'res.partner.category', 'parent_id'
color
Integer
default=_get_default_color
string='Color'
name
Char
required=True
string='Tag Name'
translate=True
parent_id
Many2one → res.partner.category
index=True
ondelete='cascade'
string='Parent Category'
args: 'res.partner.category'
parent_path
Char
index=True
unaccent=False
partner_ids
Many2many → res.partner
column1='category_id'
column2='partner_id'
copy=False
string='Partners'
args: 'res.partner'
No public methods.
No new fields.
Public methods (0)No public methods.
active
Boolean
default=True
args: 'Active'
full_name
Char
translate=True
args: 'Full Name'
name
Char
translate=True
args: 'Name'
No public methods.
name
Char
required=True
string='Title'
translate=True
shortcut
Char
string='Abbreviation'
translate=True
No public methods.
No new fields.
Public methods (0)No public methods.
accesses_count
Integer
compute='_compute_accesses_count'
compute_sudo=True
help='Number of access rights that apply to the current user'
args: '# Access Rights'
action_id
Many2one → ir.actions.actions
help='If specified, this action will be opened at log on for this user, in addition to the standard menu.'
string='Home Action'
args: 'ir.actions.actions'
active
Boolean
default=True
active_partner
Boolean
readonly=True
related='partner_id.active'
string='Partner is Active'
companies_count
Integer
compute='_compute_companies_count'
string='Number of Companies'
company_id
Many2one → res.company
context={'user_preference': True}
default=<expr>
help='The default company for this user.'
required=True
string='Company'
args: 'res.company'
company_ids
Many2many → res.company
default=<expr>
string='Companies'
args: 'res.company', 'res_company_users_rel', 'user_id', 'cid'
email
Char
inherited=True
readonly=False
related='partner_id.email'
groups_count
Integer
compute='_compute_accesses_count'
compute_sudo=True
help='Number of groups that apply to the current user'
args: '# Groups'
groups_id
Many2many → res.groups
default=<expr>
string='Groups'
args: 'res.groups', 'res_groups_users_rel', 'uid', 'gid'
log_ids
One2many → res.users.log
string='User log entries'
args: 'res.users.log', 'create_uid'
login
Char
help='Used to log into the system'
required=True
login_date
Datetime
readonly=False
related='log_ids.create_date'
string='Latest authentication'
name
Char
inherited=True
readonly=False
related='partner_id.name'
new_password
Char
compute='_compute_password'
help="Specify a value only when creating a user or if you're changing the user's password, otherwise leave empty. After a change of password, the user has to login again."
inverse='_set_new_password'
string='Set Password'
partner_id
Many2one → res.partner
auto_join=True
help='Partner-related data of the user'
index=True
ondelete='restrict'
required=True
string='Related Partner'
args: 'res.partner'
password
Char
compute='_compute_password'
copy=False
help="Keep empty if you don't want the user to be able to connect on the system."
inverse='_set_password'
res_users_settings_id
Many2one → res.users.settings
compute='_compute_res_users_settings_id'
search='_search_res_users_settings_id'
string='Settings'
args: 'res.users.settings'
res_users_settings_ids
One2many → res.users.settings
rules_count
Integer
compute='_compute_accesses_count'
compute_sudo=True
help='Number of record rules that apply to the current user'
args: '# Record Rules'
share
Boolean
compute='_compute_share'
compute_sudo=True
help='External user with limited access, created only for the purpose of sharing data.'
store=True
string='Share User'
signature
Html
compute='_compute_signature'
readonly=False
store=True
string='Email Signature'
tz_offset
Char
compute='_compute_tz_offset'
string='Timezone offset'
SELF_READABLE_FIELDS(self)
SELF_WRITEABLE_FIELDS(self)
USER_PRIVATE_FIELDS(self)
action_get(self)
action_revoke_all_devices(self)
action_show_accesses(self)
action_show_groups(self)
action_show_rules(self)
authenticate(cls, db, login, password, user_agent_env)
change_password(self, old_passwd, new_passwd)
check(cls, db, uid, passwd)
check_field_access_rights(self, operation, field_names)
check_super(self, passwd)
context_get(self)
copy(self, default=None)
create(self, vals_list)
get_company_currency_id(self)
has_group(self, group_ext_id)
init(self)
on_change_login(self)
onchange(self, values, field_names, fields_spec)
onchange_parent_id(self)
preference_change_password(self)
preference_save(self)
read(self, fields=None, load='_classic_read')
toggle_active(self)
write(self, values)
No new fields.
Public methods (2)create(self, vals_list)
write(self, values)
user_group_warning
Text
compute='_compute_user_group_warning'
string='User Group Warning'
create(self, vals_list)
default_get(self, fields)
fields_get(self, allfields=None, attributes=None)
new(self, values=None, origin=None, ref=None)
onchange(self, values, field_names, fields_spec)
read(self, fields=None, load='_classic_read')
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
write(self, values)
api_key_ids
One2many → res.users.apikeys
string='API Keys'
args: 'res.users.apikeys', 'user_id'
SELF_READABLE_FIELDS(self)
SELF_WRITEABLE_FIELDS(self)
api_key_wizard(self)
create_date
Datetime
readonly=True
args: 'Creation Date'
name
Char
readonly=True
required=True
args: 'Description'
scope
Char
readonly=True
args: 'Scope'
user_id
Many2one → res.users
index=True
ondelete='cascade'
readonly=True
required=True
args: 'res.users'
init(self)
remove(self)
name
Char
required=True
args: 'Description'
check_access_make_key(self)
make_key(self)
id
Id
key
Char
readonly=True
No public methods.
state
Selection
default='todo'
required=True
string='State'
args: [('todo', 'To Do'), ('done', 'Done'), ('fail', 'Failed')]
user_id
Many2one → res.users
ondelete='set null'
string='User'
args: 'res.users'
user_id_int
Integer
compute='_compute_user_id_int'
store=True
args: 'User Id'
No public methods.
password
Char
request
Char
groups=fields.NO_ACCESS
readonly=True
revoke_all_devices(self)
run_check(self)
No new fields.
Public methods (0)No public methods.
user_id
Many2one → res.users
domain=[('res_users_settings_id', '=', False)]
ondelete='cascade'
required=True
string='User'
args: 'res.users'
set_res_users_settings(self, new_settings)
arch_diff
Html
compute='_compute_arch_diff'
readonly=True
sanitize_tags=False
string='Architecture Diff'
arch_to_compare
Text
compute='_compute_arch_diff'
args: 'Arch To Compare To'
compare_view_id
Many2one → ir.ui.view
string='Compare To View'
args: 'ir.ui.view'
has_diff
Boolean
compute='_compute_arch_diff'
reset_mode
Selection
default='soft'
required=True
string='Reset Mode'
args: [('soft', 'Restore previous version (soft reset).'), ('hard', 'Reset to file version (hard reset).'), ('other_view', 'Reset to another view.')]
view_id
Many2one → ir.ui.view
string='View'
args: 'ir.ui.view'
view_name
Char
related='view_id.name'
string='View Name'
default_get(self, fields)
reset_view_button(self)
menu_id
Many2one → ir.ui.menu
ondelete='cascade'
required=True
string='Parent Menu'
args: 'ir.ui.menu'
name
Char
required=True
string='Menu Name'
menu_create(self)
access_ir_model_access_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_model_access' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_model_fields_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_model_fields' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_model_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_model' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_rule_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_rule' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_ui_view_custom_group_user — Access rule grants write/create/unlink on 'model_ir_ui_view_custom' to EVERY user (portal/public included): no group is set acl-global-writeaccess_report_layout — Access rule grants write/create/unlink on 'model_report_layout' to EVERY user (portal/public included): no group is set acl-global-writeaccess_res_groups_group_erp_manager — Access rule grants write/create/unlink on security model 'model_res_groups' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_res_users_group_erp_manager — Access rule grants write/create/unlink on security model 'model_res_users' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_res_users_log_all — Access rule grants create on 'model_res_users_log' to EVERY user (portal/public included): no group is set acl-global-writeFound by automated static analysis: these patterns are usually risky, but only a manual review of the module can confirm a real issue.
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
act_report_xml_search_view |
ir.actions.report.search | ir.actions.report | search | New |
act_report_xml_view |
ir.actions.report | ir.actions.report | form | New |
act_report_xml_view_tree |
ir.actions.report.tree | ir.actions.report | tree | New |
action_view |
ir.actions.actions | ir.actions.actions | form | New |
action_view_search |
ir.actions.actions.search | ir.actions.actions | search | New |
action_view_tree |
ir.actions.actions.tree | ir.actions.actions | tree | New |
asset_view_form |
ir.asset | form | New | |
asset_view_search |
ir.asset | search | New | |
asset_view_tree |
ir.asset | tree | New | |
base.language_install_view_form_lang_switch |
Switch to language | base.language.install | form | New |
base_onboarding_company_form |
base.company.onboarding.form | res.company | form | Inherits base.view_company_form |
base_partner_merge_automatic_wizard_form |
base.partner.merge.automatic.wizard.form | base.partner.merge.automatic.wizard | form | New |
change_password_own_form |
Change Own Password | change.password.own | form | New |
change_password_wizard_user_tree_view |
Change Password Users | change.password.user | tree | New |
change_password_wizard_view |
Change Password | change.password.wizard | form | New |
config_wizard_step_view_form |
Config Wizard Steps | ir.actions.todo | form | New |
config_wizard_step_view_search |
ir.actions.todo.select | ir.actions.todo | search | New |
contact |
contact | ir.ui.view | qweb | New |
contact_name |
contact_name | ir.ui.view | qweb | New |
demo_failures_dialog |
Demo Failure Dialog | ir.demo_failure.wizard | form | New |
demo_force_install_form |
ir.demo.form | ir.demo | form | New |
demo_wizard_form_view |
Demo Failure Form | ir.demo_failure | form | New |
edit_menu |
ir.ui.menu | tree | New | |
edit_menu_access |
ir.ui.menu | form | New | |
edit_menu_access_search |
ir.ui.menu.search | ir.ui.menu | search | New |
enable_profiling_wizard |
Enable profiling | base.enable.profiling.wizard | form | New |
form_res_users_key_description |
API Key: description input form | res.users.apikeys.description | form | New |
form_res_users_key_show |
API Key: show | res.users.apikeys.show | form | New |
identity_check_wizard |
res.users.identitycheck | form | New | |
ir_access_view_form |
ir.model.access | form | New | |
ir_access_view_search |
ir.model.access | search | New | |
ir_access_view_tree |
ir.model.access.view.tree | ir.model.access | tree | New |
ir_access_view_tree_edition |
ir.model.access.view.tree.edition | ir.model.access | tree | New |
ir_actions_todo_tree |
Config Wizard Steps | ir.actions.todo | tree | New |
ir_cron_trigger_view_form |
ir.cron.trigger.view.form | ir.cron.trigger | form | New |
ir_cron_trigger_view_search |
ir.cron.trigger.view.search | ir.cron.trigger | search | New |
ir_cron_trigger_view_tree |
ir.cron.trigger.view.tree | ir.cron.trigger | tree | New |
ir_cron_view_calendar |
ir.cron | calendar | New | |
ir_cron_view_form |
ir.cron.view.form | ir.cron | form | Inherits base.view_server_action_form |
ir_cron_view_search |
ir.cron | search | New | |
ir_cron_view_tree |
ir.cron | tree | New | |
ir_default_form_view |
ir.default form view | ir.default | form | New |
ir_default_search_view |
ir.default search view | ir.default | search | New |
ir_default_tree_view |
ir.default tree view | ir.default | tree | New |
ir_filters_view_form |
ir.filters | form | New | |
ir_filters_view_search |
ir.filters | search | New | |
ir_filters_view_tree |
ir.filters | tree | New | |
ir_logging_form_view |
ir.logging | form | New | |
ir_logging_search_view |
ir.logging | search | New | |
ir_logging_tree_view |
ir.logging | tree | New | |
ir_mail_server_form |
ir.mail_server | form | New | |
ir_mail_server_list |
ir.mail_server | tree | New | |
ir_profile_view_form |
IR Profile Form | ir.profile | form | New |
ir_profile_view_list |
IR Profile List | ir.profile | tree | New |
ir_profile_view_search |
IR Profile Search | ir.profile | search | New |
ir_property_view |
ir.property.form | ir.property | form | New |
ir_property_view_search |
ir.property.search | ir.property | search | New |
ir_property_view_tree |
ir.property.tree | ir.property | tree | New |
module_form |
ir.module.module.form | ir.module.module | form | New |
module_tree |
ir.module.module.tree | ir.module.module | tree | New |
module_view_kanban |
Apps Kanban | ir.module.module | kanban | New |
onboarding_company_step |
onboarding_company_step | ir.ui.view | qweb | New |
onboarding_container |
onboarding_container | ir.ui.view | qweb | New |
onboarding_step |
onboarding_step | ir.ui.view | qweb | New |
paperformat_view_form |
paper_format_view_form | report.paperformat | form | New |
paperformat_view_tree |
paper_format_view_tree | report.paperformat | tree | New |
report_irmodeloverview |
report_irmodeloverview | ir.ui.view | qweb | New |
report_irmodulereference |
report_irmodulereference | ir.ui.view | qweb | New |
res_bank_view_search |
res.bank.view.search | res.bank | search | New |
res_config_installer |
Inheritable view for installer objects | res.config.installer | form | New |
res_config_settings_view_form |
res.config.settings.view.form | res.config.settings | form | New |
res_config_view_base |
res.config.view.base | res.config | form | New |
res_lang_form |
res.lang.form | res.lang | form | New |
res_lang_search |
res.lang.search | res.lang | search | New |
res_lang_tree |
res.lang.tree | res.lang | tree | New |
res_partner_category_view_search |
res.partner.category.view.search | res.partner.category | search | New |
res_partner_industry_view_form |
Industry | res.partner.industry | form | New |
res_partner_industry_view_search |
res.partner.industry.view.search | res.partner.industry | search | New |
res_partner_industry_view_tree |
Industry | res.partner.industry | tree | New |
res_partner_kanban_view |
res.partner.kanban | res.partner | kanban | New |
res_partner_view_form_private |
res.partner.view.form.private | res.partner | form | New |
reset_view_arch_wizard_view |
Reset View Architecture | reset.view.arch.wizard | form | New |
sequence_view |
ir.sequence | form | New | |
sequence_view_tree |
ir.sequence | tree | New | |
user_groups_view |
res.users.groups | res.users | form | Inherits view_users_form |
view_apikeys |
API Keys Listing | res.users.apikeys | tree | New |
view_attachment_form |
ir.attachment | form | New | |
view_attachment_search |
ir.attachment | search | New | |
view_attachment_tree |
ir.attachment | tree | New | |
view_base_import_language |
Import Translation | base.language.import | form | New |
view_base_language_install |
Load a Translation | base.language.install | form | New |
view_base_module_uninstall |
Uninstall module | base.module.uninstall | form | New |
view_base_module_update |
Module Update | base.module.update | form | New |
view_base_module_upgrade |
Module Upgrade | base.module.upgrade | form | New |
view_base_module_upgrade_install |
Module Upgrade Install | base.module.upgrade | form | New |
view_company_form |
res.company.form | res.company | form | New |
view_company_tree |
res.company.tree | res.company | tree | New |
view_country_form |
res.country.form | res.country | form | New |
view_country_group_form |
res.country.group.form | res.country.group | form | New |
view_country_group_tree |
res.country.group.tree | res.country.group | tree | New |
view_country_state_form |
res.country.state.form | res.country.state | form | New |
view_country_state_search |
res.country.state.search | res.country.state | search | New |
view_country_state_tree |
res.country.state.tree | res.country.state | tree | New |
view_country_tree |
res.country.tree | res.country | tree | New |
view_currency_form |
res.currency.form | res.currency | form | New |
view_currency_kanban |
res.currency.kanban | res.currency | kanban | New |
view_currency_rate_form |
res.currency.rate.form | res.currency.rate | form | New |
view_currency_rate_search |
res.currency.rate.search | res.currency.rate | search | New |
view_currency_rate_tree |
res.currency.rate.tree | res.currency.rate | tree | New |
view_currency_search |
res.currency.search | res.currency | search | New |
view_currency_tree |
res.currency.tree | res.currency | tree | New |
view_decimal_precision_form |
Decimal Precision | decimal.precision | form | New |
view_decimal_precision_tree |
Decimal Precision List | decimal.precision | tree | New |
view_groups_form |
res.groups.form | res.groups | form | New |
view_groups_search |
res.groups.search | res.groups | search | New |
view_ir_config_form |
ir.config_parameter | form | New | |
view_ir_config_list |
ir.config_parameter | tree | New | |
view_ir_config_search |
ir.config_parameter | search | New | |
view_ir_mail_server_search |
ir.mail_server | search | New | |
view_model_constraint_form |
ir.model.constraint | form | New | |
view_model_constraint_list |
ir.model.constraint | tree | New | |
view_model_constraint_search |
ir.model.constraint | search | New | |
view_model_data_form |
ir.model.data | form | New | |
view_model_data_list |
ir.model.data | tree | New | |
view_model_data_search |
ir.model.data | search | New | |
view_model_fields_form |
ir.model.fields | form | New | |
view_model_fields_search |
ir.model.fields | search | New | |
view_model_fields_selection_form |
ir.model.fields.selection | form | New | |
view_model_fields_selection_search |
ir.model.fields.selection | search | New | |
view_model_fields_selection_tree |
ir.model.fields.selection | tree | New | |
view_model_fields_tree |
ir.model.fields | tree | New | |
view_model_form |
ir.model | form | New | |
view_model_menu_create |
Create Menu | wizard.ir.model.menu.create | form | New |
view_model_relation_form |
ir.model.relation | form | New | |
view_model_relation_list |
ir.model.relation | tree | New | |
view_model_search |
ir.model | search | New | |
view_model_tree |
ir.model | tree | New | |
view_module_category_form |
ir.module.category.form | ir.module.category | form | New |
view_module_category_tree |
ir.module.category.tree | ir.module.category | tree | New |
view_module_filter |
ir.module.module.list.select | ir.module.module | search | New |
view_partner_address_form |
res.partner.form.address | res.partner | form | New |
view_partner_bank_form |
res.partner.bank.form | res.partner.bank | form | New |
view_partner_bank_search |
res.partner.bank.search | res.partner.bank | search | New |
view_partner_bank_tree |
res.partner.bank.tree | res.partner.bank | tree | New |
view_partner_category_form |
Contact Tags | res.partner.category | form | New |
view_partner_category_list |
Contact Tags | res.partner.category | tree | New |
view_partner_form |
res.partner.form | res.partner | form | New |
view_partner_simple_form |
res.partner.simplified.form | res.partner | form | New |
view_partner_title_form |
res.partner.title.form | res.partner.title | form | New |
view_partner_title_tree |
res.partner.title.tree | res.partner.title | tree | New |
view_partner_tree |
res.partner.tree | res.partner | tree | New |
view_res_bank_form |
res.bank.form | res.bank | form | New |
view_res_bank_tree |
res.bank.tree | res.bank | tree | New |
view_res_company_kanban |
res.company.kanban | res.company | kanban | New |
view_res_partner_filter |
res.partner.select | res.partner | search | New |
view_res_users_kanban |
res.users.kanban | res.users | kanban | New |
view_rule_form |
ir.rule | form | New | |
view_rule_search |
ir.rule | search | New | |
view_rule_tree |
ir.rule | tree | New | |
view_sequence_search |
ir.sequence | search | New | |
view_server_action_form |
Server Action | ir.actions.server | form | New |
view_server_action_search |
ir.actions.server.search | ir.actions.server | search | New |
view_server_action_tree |
Server Actions | ir.actions.server | tree | New |
view_users_form |
res.users.form | res.users | form | New |
view_users_form_simple_modif |
res.users.preferences.form | res.users | form | New |
view_users_search |
res.users.search | res.users | search | New |
view_users_simple_form |
res.users.simplified.form | res.users | form | New |
view_users_tree |
res.users.tree | res.users | tree | New |
view_view_custom_form |
ir.ui.view.custom | form | New | |
view_view_custom_search |
ir.ui.view.custom | search | New | |
view_view_custom_tree |
ir.ui.view.custom | tree | New | |
view_view_form |
ir.ui.view | form | New | |
view_view_search |
ir.ui.view | search | New | |
view_view_tree |
ir.ui.view | tree | New | |
view_window_action_form |
ir.actions.windows.form | ir.actions.act_window | form | New |
view_window_action_search |
ir.actions.windows.search | ir.actions.act_window | search | New |
view_window_action_tree |
ir.actions.windows.tree | ir.actions.act_window | tree | New |
wizard_lang_export |
Export Translations | base.language.export | form | New |
| Route(s) | Handler | Auth | Type | Methods | Flags |
|---|---|---|---|---|---|
/jsonrpc |
RPC.jsonrpc |
none | json | ALL | |
/xmlrpc/<service> |
RPC.xmlrpc_1 |
none | http | POST | csrf off |
/xmlrpc/2/<service> |
RPC.xmlrpc_2 |
none | http | POST | csrf off |
No new fields.
Public methods (0)No public methods.
avatar_1024
Image
compute='_compute_avatar_1024'
args: 'Avatar 1024'
avatar_128
Image
compute='_compute_avatar_128'
args: 'Avatar 128'
avatar_1920
Image
compute='_compute_avatar_1920'
args: 'Avatar'
avatar_256
Image
compute='_compute_avatar_256'
args: 'Avatar 256'
avatar_512
Image
compute='_compute_avatar_512'
args: 'Avatar 512'
No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (8)fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
get_empty_list_help(self, help_message)
get_formview_action(self, access_uid=None)
get_formview_id(self, access_uid=None)
get_view(self, view_id=None, view_type='form', **options)
get_views(self, views, options=None)
load_views(self, views, options=None)
view_header_get(self, view_id=None, view_type='form')
No new fields.
Public methods (1)create(self, vals_list)
duration
Selection
string='Enable profiling for'
args: [('minutes_5', '5 Minutes'), ('hours_1', '1 Hour'), ('days_1', '1 Day'), ('months_1', '1 Month')]
expiration
Datetime
compute='_compute_expiration'
readonly=False
store=True
args: 'Enable profiling until'
submit(self)
data
Binary
attachment=False
readonly=True
args: 'File'
format
Selection
default='po'
required=True
string='File Format'
args: [('csv', 'CSV File'), ('po', 'PO File'), ('tgz', 'TGZ Archive')]
lang
Selection
default=NEW_LANG_KEY
required=True
string='Language'
args: _get_languages
modules
Many2many → ir.module.module
domain=[('state', '=', 'installed')]
string='Apps To Export'
args: 'ir.module.module', 'rel_modules_langexport', 'wiz_id', 'module_id'
name
Char
readonly=True
args: 'File Name'
state
Selection
default='choose'
args: [('choose', 'choose'), ('get', 'get')]
act_getfile(self)
code
Char
help='ISO Language and Country code, e.g. en_US'
required=True
size=6
args: 'ISO Code'
data
Binary
attachment=False
required=True
args: 'File'
filename
Char
required=True
args: 'File Name'
name
Char
required=True
args: 'Language Name'
overwrite
Boolean
default=True
help='If you enable this option, existing translations (including custom ones) will be overwritten and replaced by those in this file'
args: 'Overwrite Existing Terms'
import_lang(self)
first_lang_id
Many2one → res.lang
compute='_compute_first_lang_id'
help='Used when the user only selects one language and is given the option to switch to it'
args: 'res.lang'
lang_ids
Many2many → res.lang
context={'active_test': False}
default=_default_lang_ids
required=True
args: 'res.lang', 'res_lang_install_rel', 'language_wizard_id', 'lang_id', 'Languages'
overwrite
Boolean
default=True
help='If you check this box, your customized translations will be overwritten and replaced by the official ones.'
args: 'Overwrite Existing Terms'
lang_install(self)
reload(self)
switch_lang(self)
model_ids
Many2many → ir.model
compute='_compute_model_ids'
string='Impacted data models'
args: 'ir.model'
module_id
Many2one → ir.module.module
domain=[('state', 'in', ['installed', 'to upgrade', 'to install'])]
ondelete='cascade'
readonly=True
required=True
string='Module'
args: 'ir.module.module'
module_ids
Many2many → ir.module.module
compute='_compute_module_ids'
string='Impacted modules'
args: 'ir.module.module'
show_all
Boolean
action_uninstall(self)
added
Integer
readonly=True
args: 'Number of modules added'
state
Selection
default='init'
readonly=True
args: [('init', 'init'), ('done', 'done')], 'Status'
updated
Integer
readonly=True
args: 'Number of modules updated'
action_module_open(self)
update_module(self)
module_info
Text
default=_default_module_info
readonly=True
args: 'Apps to Update'
config(self)
get_module_list(self)
get_view(self, view_id=None, view_type='form', **options)
upgrade_module(self)
upgrade_module_cancel(self)
current_line_id
Many2one → base.partner.merge.line
string='Current Line'
args: 'base.partner.merge.line'
dst_partner_id
Many2one → res.partner
string='Destination Contact'
args: 'res.partner'
exclude_contact
Boolean
exclude_journal_item
Boolean
group_by_email
Boolean
group_by_is_company
Boolean
group_by_name
Boolean
group_by_parent_id
Boolean
group_by_vat
Boolean
line_ids
One2many → base.partner.merge.line
string='Lines'
args: 'base.partner.merge.line', 'wizard_id'
maximum_group
Integer
number_group
Integer
readonly=True
args: 'Group of Contacts'
partner_ids
Many2many → res.partner
context={'active_test': False}
string='Contacts'
args: 'res.partner'
state
Selection
default='option'
readonly=True
required=True
string='State'
args: [('option', 'Option'), ('selection', 'Selection'), ('finished', 'Finished')]
action_merge(self)
action_skip(self)
action_start_automatic_process(self)
action_start_manual_process(self)
action_update_all_process(self)
default_get(self, fields)
parent_migration_process_cb(self)
aggr_ids
Char
required=True
args: 'Ids'
min_id
Integer
wizard_id
Many2one → base.partner.merge.automatic.wizard
No public methods.
confirm_password
Char
string='New Password (Confirmation)'
new_password
Char
string='New Password'
change_password(self)
new_passwd
Char
default=''
string='New Password'
user_id
Many2one → res.users
ondelete='cascade'
required=True
string='User'
args: 'res.users'
user_login
Char
readonly=True
string='User Login'
wizard_id
Many2one → change.password.wizard
ondelete='cascade'
required=True
string='Wizard'
args: 'change.password.wizard'
change_password_button(self)
user_ids
One2many → change.password.user
default=_default_user_ids
string='Users'
args: 'change.password.user', 'wizard_id'
change_password_button(self)
digits
Integer
default=2
required=True
args: 'Digits'
name
Char
required=True
args: 'Usage'
create(self, vals_list)
precision_get(self, application)
unlink(self)
write(self, data)
No new fields.
Public methods (0)No public methods.
image_1024
Image
max_height=1024
max_width=1024
related='image_1920'
store=True
args: 'Image 1024'
image_128
Image
max_height=128
max_width=128
related='image_1920'
store=True
args: 'Image 128'
image_1920
Image
max_height=1920
max_width=1920
args: 'Image'
image_256
Image
max_height=256
max_width=256
related='image_1920'
store=True
args: 'Image 256'
image_512
Image
max_height=512
max_width=512
related='image_1920'
store=True
args: 'Image 512'
No public methods.
target
Selection
default='new'
required=True
string='Action Target'
args: [('new', 'New Window'), ('self', 'This Window')]
type
Char
default='ir.actions.act_url'
url
Text
required=True
string='Action URL'
No public methods.
context
Char
default={}
help='Context dictionary as Python expression, empty by default (Default: {})'
required=True
string='Context Value'
domain
Char
help='Optional domain filtering of the destination data, as a Python expression'
string='Domain Value'
filter
Boolean
groups_id
Many2many → res.groups
string='Groups'
args: 'res.groups', 'ir_act_window_group_rel', 'act_id', 'gid'
limit
Integer
default=80
help='Default limit for the list view'
res_id
Integer
help="Database ID of record to open in form view, when ``view_mode`` is set to 'form' only"
string='Record ID'
res_model
Char
help='Model name of the object to open in the view window'
required=True
string='Destination Model'
search_view
Text
compute='_compute_search_view'
search_view_id
Many2one → ir.ui.view
string='Search View Ref.'
args: 'ir.ui.view'
target
Selection
default='current'
string='Target Window'
args: [('current', 'Current Window'), ('new', 'New Window'), ('inline', 'Inline Edit'), ('fullscreen', 'Full Screen'), ('main', 'Main action of Current Window')]
type
Char
default='ir.actions.act_window'
usage
Char
help='Used to filter menu and home actions from the user form.'
string='Action Usage'
view_id
Many2one → ir.ui.view
ondelete='set null'
string='View Ref.'
args: 'ir.ui.view'
view_ids
One2many → ir.actions.act_window.view
string='No of Views'
args: 'ir.actions.act_window.view', 'act_window_id'
view_mode
Char
default='tree,form'
help="Comma-separated list of allowed view modes, such as 'form', 'tree', 'calendar', etc. (Default: tree,form)"
required=True
views
Binary
compute='_compute_views'
help='This function field computes the ordered list of views that should be enabled when displaying the result of an action, federating view mode, views and reference view. The result is returned as an ordered list of pairs (view_id,view_mode).'
create(self, vals_list)
exists(self)
read(self, fields=None, load='_classic_read')
unlink(self)
act_window_id
Many2one → ir.actions.act_window
ondelete='cascade'
string='Action'
args: 'ir.actions.act_window'
multi
Boolean
help='If set to true, the action will not be displayed on the right toolbar of a form view.'
string='On Multiple Doc.'
sequence
Integer
view_id
Many2one → ir.ui.view
string='View'
args: 'ir.ui.view'
view_mode
Selection
required=True
string='View Type'
args: VIEW_TYPES
No public methods.
type
Char
default='ir.actions.act_window_close'
No public methods.
binding_model_id
Many2one → ir.model
help='Setting a value makes this action available in the sidebar for the given model.'
ondelete='cascade'
args: 'ir.model'
binding_type
Selection
default='action'
required=True
args: [('action', 'Action'), ('report', 'Report')]
binding_view_types
Char
default='list,form'
help
Html
help='Optional help text for the users with a description of the target view, such as its usage and purpose.'
string='Action Description'
translate=True
name
Char
required=True
string='Action Name'
translate=True
type
Char
required=True
string='Action Type'
xml_id
Char
compute='_compute_xml_id'
string='External ID'
create(self, vals_list)
get_bindings(self, model_name)
unlink(self)
write(self, vals)
context
Char
default='{}'
help='Context dictionary as Python expression, empty by default (Default: {})'
required=True
string='Context Value'
params
Binary
compute='_compute_params'
help='Arguments sent to the client along with the view tag'
inverse='_inverse_params'
string='Supplementary arguments'
params_store
Binary
attachment=False
readonly=True
string='Params storage'
res_model
Char
help='Optional model, mostly used for needactions.'
string='Destination Model'
tag
Char
help='An arbitrary string, interpreted by the client according to its own needs and wishes. There is no central tag repository across clients.'
required=True
string='Client action tag'
target
Selection
default='current'
string='Target Window'
args: [('current', 'Current Window'), ('new', 'New Window'), ('fullscreen', 'Full Screen'), ('main', 'Main action of Current Window')]
type
Char
default='ir.actions.client'
No public methods.
attachment
Char
help='This is the filename of the attachment used to store the printing result. Keep empty to not save the printed reports. You can use a python expression with the object and time variables.'
string='Save as Attachment Prefix'
attachment_use
Boolean
help='If enabled, then the second time the user prints with same attachment name, it returns the previous report.'
string='Reload from Attachment'
binding_type
Selection
default='report'
groups_id
Many2many → res.groups
string='Groups'
args: 'res.groups', 'res_groups_report_rel', 'uid', 'gid'
model
Char
required=True
string='Model Name'
model_id
Many2one → ir.model
compute='_compute_model_id'
search='_search_model_id'
string='Model'
args: 'ir.model'
multi
Boolean
help='If set to true, the action will not be displayed on the right toolbar of a form view.'
string='On Multiple Doc.'
paperformat_id
Many2one → report.paperformat
print_report_name
Char
help="This is the filename of the report going to download. Keep empty to not change the report filename. You can use a python expression with the 'object' and 'time' variables."
translate=True
args: 'Printed Report Name'
report_file
Char
help='The path to the main report file (depending on Report Type) or empty if the content is in another field'
readonly=False
required=False
store=True
string='Report File'
report_name
Char
required=True
string='Template Name'
report_type
Selection
default='qweb-pdf'
help='The type of the report that will be rendered, each one having its own rendering method. HTML means the report will be opened directly in your browser PDF means the report will be rendered using Wkhtmltopdf and downloaded by the user.'
required=True
args: [('qweb-html', 'HTML'), ('qweb-pdf', 'PDF'), ('qweb-text', 'Text')]
type
Char
default='ir.actions.report'
associated_view(self)
barcode(self, barcode_type, value, **kwargs)
create_action(self)
datamatrix_available(self)
get_available_barcode_masks(self)
get_paperformat(self)
get_wkhtmltopdf_state(self)
report_action(self, docids, data=None, config=True)
retrieve_attachment(self, record)
unlink_action(self)
child_ids
Many2many → ir.actions.server
help='Child server actions that will be executed. Note that the last return returned action value will be used as global return value.'
string='Child Actions'
args: 'ir.actions.server', 'rel_server_actions', 'server_id', 'action_id'
code
Text
default=DEFAULT_PYTHON_CODE
groups='base.group_system'
help='Write Python code that the action will execute. Some variables are available for use; help about python expression is given in the help tab.'
string='Python Code'
crud_model_id
Many2one → ir.model
compute='_compute_crud_model_id'
help='Model for record creation / update. Set this field only to specify a different model than the base model.'
readonly=False
store=True
string='Target Model'
args: 'ir.model'
crud_model_name
Char
readonly=True
related='crud_model_id.model'
string='Target Model Name'
fields_lines
One2many → ir.server.object.lines
copy=True
string='Value Mapping'
args: 'ir.server.object.lines', 'server_id'
groups_id
Many2many → res.groups
string='Groups'
args: 'res.groups', 'ir_act_server_group_rel', 'act_id', 'gid'
link_field_id
Many2one → ir.model.fields
compute='_compute_link_field_id'
help='Provide the field used to link the newly created record on the record used by the server action.'
readonly=False
store=True
string='Link Field'
args: 'ir.model.fields'
model_id
Many2one → ir.model
help='Model on which the server action runs.'
index=True
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
model_name
Char
readonly=True
related='model_id.model'
store=True
string='Model Name'
sequence
Integer
default=5
help='When dealing with multiple actions, the execution order is based on the sequence. Low number means high priority.'
state
Selection
copy=True
default='object_write'
help="Type of server action. The following values are available:\n- 'Execute Python Code': a block of python code that will be executed\n- 'Create a new Record': create a new record with new values\n- 'Update a Record': update the values of a record\n- 'Execute several actions': define an action that triggers several other server actions\n- 'Send Email': post a message, a note or send an email (Discuss)\n- 'Add Followers': add followers to a record (Discuss)\n- 'Create Next Activity': create an activity (Discuss)\n- 'Send SMS Text Message': send SMS, log them on documents (SMS)"
required=True
string='Action To Do'
args: [('code', 'Execute Python Code'), ('object_create', 'Create a new Record'), ('object_write', 'Update the Record'), ('multi', 'Execute several actions')]
type
Char
default='ir.actions.server'
usage
Selection
default='ir_actions_server'
required=True
string='Usage'
args: [('ir_actions_server', 'Server Action'), ('ir_cron', 'Scheduled Action')]
create_action(self)
run(self)
unlink_action(self)
action_id
Many2one → ir.actions.actions
index=True
required=True
string='Action'
args: 'ir.actions.actions'
name
Char
sequence
Integer
default=10
state
Selection
default='open'
required=True
string='Status'
args: [('open', 'To Do'), ('done', 'Done')]
action_launch(self)
action_open(self)
create(self, vals_list)
ensure_one_open_todo(self)
unlink(self)
write(self, vals)
active
Boolean
default=True
string='active'
bundle
Char
required=True
string='Bundle name'
directive
Selection
default=APPEND_DIRECTIVE
selection=[(APPEND_DIRECTIVE, 'Append'), (PREPEND_DIRECTIVE, 'Prepend'), (AFTER_DIRECTIVE, 'After'), (BEFORE_DIRECTIVE, 'Before'), (REMOVE_DIRECTIVE, 'Remove'), (REPLACE_DIRECTIVE, 'Replace'), (INCLUDE_DIRECTIVE, 'Include')]
string='Directive'
name
Char
required=True
string='Name'
path
Char
required=True
string='Path (or glob pattern)'
sequence
Integer
default=DEFAULT_SEQUENCE
required=True
string='Sequence'
target
Char
string='Target'
create(self, vals_list)
unlink(self)
write(self, values)
access_token
Char
groups='base.group_user'
args: 'Access Token'
checksum
Char
index=True
readonly=True
size=40
args: 'Checksum/SHA1'
company_id
Many2one → res.company
change_default=True
default=<expr>
string='Company'
args: 'res.company'
datas
Binary
compute='_compute_datas'
inverse='_inverse_datas'
string='File Content (base64)'
db_datas
Binary
attachment=False
args: 'Database Data'
description
Text
file_size
Integer
readonly=True
args: 'File Size'
index_content
Text
prefetch=False
readonly=True
args: 'Indexed Content'
mimetype
Char
readonly=True
args: 'Mime Type'
name
Char
required=True
args: 'Name'
public
Boolean
raw
Binary
compute='_compute_raw'
inverse='_inverse_raw'
string='File Content (raw)'
res_field
Char
readonly=True
args: 'Resource Field'
res_id
Many2oneReference
model_field='res_model'
readonly=True
args: 'Resource ID'
res_model
Char
readonly=True
args: 'Resource Model'
res_name
Char
compute='_compute_res_name'
args: 'Resource Name'
store_fname
Char
index=True
unaccent=False
args: 'Stored Filename'
type
Selection
change_default=True
default='binary'
help='You can either upload a file from your computer or copy/paste an internet link to your file.'
required=True
string='Type'
args: [('url', 'URL'), ('binary', 'File')]
url
Char
index='btree_not_null'
size=1024
args: 'Url'
action_get(self)
check(self, mode, values=None)
copy(self, default=None)
create(self, vals_list)
force_storage(self)
generate_access_token(self)
get_serving_groups(self)
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
regenerate_assets_bundles(self)
unlink(self)
validate_access(self, access_token)
write(self, vals)
No new fields.
Public methods (1)power_on(self, *args, **kwargs)
No new fields.
Public methods (0)No public methods.
key
Char
required=True
value
Text
required=True
create(self, vals_list)
get_param(self, key, default=False)
init(self, force=False)
set_param(self, key, value)
unlink(self)
unlink_default_parameters(self)
write(self, vals)
active
Boolean
default=True
cron_name
Char
readonly=False
related='ir_actions_server_id.name'
store=True
args: 'Name'
doall
Boolean
help='Specify if missed occurrences should be executed when the server restarts.'
string='Repeat Missed'
interval_number
Integer
default=1
group_operator=None
help='Repeat every x.'
interval_type
Selection
default='months'
string='Interval Unit'
args: [('minutes', 'Minutes'), ('hours', 'Hours'), ('days', 'Days'), ('weeks', 'Weeks'), ('months', 'Months')]
ir_actions_server_id
Many2one → ir.actions.server
delegate=True
ondelete='restrict'
required=True
args: 'ir.actions.server', 'Server action'
lastcall
Datetime
help='Previous time the cron ran successfully, provided to the job through the context on the `lastcall` key'
string='Last Execution Date'
nextcall
Datetime
default=fields.Datetime.now
help='Next planned execution date for this job.'
required=True
string='Next Execution Date'
numbercall
Integer
default=1
help='How many times the method is called,\na negative number indicates no limit.'
string='Number of Calls'
priority
Integer
default=5
group_operator=None
help='The priority of the job, as an integer: 0 means higher priority, 10 means lower priority.'
user_id
Many2one → res.users
default=<expr>
required=True
string='Scheduler User'
args: 'res.users'
create(self, vals_list)
default_get(self, fields_list)
method_direct_trigger(self)
toggle(self, model, domain)
try_write(self, values)
unlink(self)
write(self, vals)
call_at
Datetime
cron_id
Many2one → ir.cron
index=True
args: 'ir.cron'
No public methods.
company_id
Many2one → res.company
help='If set, action binding only applies for this company'
index=True
ondelete='cascade'
string='Company'
args: 'res.company'
condition
Char
help='If set, applies the default upon condition.'
args: 'Condition'
field_id
Many2one → ir.model.fields
index=True
ondelete='cascade'
required=True
string='Field'
args: 'ir.model.fields'
json_value
Char
required=True
args: 'Default Value (JSON format)'
user_id
Many2one → res.users
help='If set, action binding only applies for this user.'
index=True
ondelete='cascade'
string='User'
args: 'res.users'
create(self, vals_list)
discard_records(self, records)
discard_values(self, model_name, field_name, values)
get(self, model_name, field_name, user_id=False, company_id=False, condition=False)
get_model_defaults(self, model_name, condition=False)
set(self, model_name, field_name, value, user_id=False, company_id=False, condition=False)
unlink(self)
write(self, vals)
No new fields.
Public methods (1)install_demo(self)
error
Char
string='Error'
module_id
Many2one → ir.module.module
required=True
string='Module'
args: 'ir.module.module'
wizard_id
Many2one → ir.demo_failure.wizard
No public methods.
failure_ids
One2many → ir.demo_failure
readonly=True
string='Demo Installation Failures'
args: 'ir.demo_failure', 'wizard_id'
failures_count
Integer
compute='_compute_failures_count'
done(self)
export_fields
One2many → ir.exports.line
copy=True
string='Export ID'
args: 'ir.exports.line', 'export_id'
name
Char
string='Export Name'
resource
Char
index=True
No public methods.
export_id
Many2one → ir.exports
index=True
ondelete='cascade'
string='Export'
args: 'ir.exports'
name
Char
string='Field Name'
No public methods.
No new fields.
Public methods (3)db_id_for(self, model, field, subfield, value)
for_model(self, model, fromtype=str)
to_field(self, model, field, fromtype=str)
No new fields.
Public methods (0)No public methods.
action_id
Many2one → ir.actions.actions
help='The menu action this filter applies to. When left empty the filter applies to all menus for this model.'
ondelete='cascade'
string='Action'
args: 'ir.actions.actions'
active
Boolean
default=True
context
Text
default='{}'
required=True
domain
Text
default='[]'
required=True
is_default
Boolean
string='Default Filter'
model_id
Selection
required=True
selection='_list_all_models'
string='Model'
name
Char
required=True
string='Filter Name'
sort
Text
default='[]'
required=True
user_id
Many2one → res.users
help='The user this filter is private to. When left empty the filter is public and available to all users.'
ondelete='cascade'
string='User'
args: 'res.users'
copy(self, default=None)
create_or_replace(self, vals)
get_filters(self, model, action_id=None)
write(self, vals)
No new fields.
Public methods (3)get_translations_for_webclient(self, modules, lang)
get_web_translations_hash(self, modules, lang)
routing_map(cls, key=None)
create_date
Datetime
readonly=True
string='Created on'
create_uid
Integer
readonly=True
string='Created by'
dbname
Char
index=True
string='Database Name'
func
Char
required=True
string='Function'
level
Char
index=True
line
Char
required=True
message
Text
required=True
name
Char
required=True
path
Char
required=True
type
Selection
index=True
required=True
args: [('client', 'Client'), ('server', 'Server')]
write_date
Datetime
readonly=True
string='Last Updated on'
write_uid
Integer
readonly=True
string='Last Updated by'
init(self)
active
Boolean
default=True
from_filter
Char
help='Define for which email address or domain this server can be used.\ne.g.: "notification@odoo.com" or "odoo.com"'
args: 'FROM Filtering'
name
Char
index=True
required=True
string='Name'
sequence
Integer
default=10
help='When no specific mail server is requested for a mail, the highest priority one is used. Default priority is 10 (smaller number = higher priority)'
string='Priority'
smtp_authentication
Selection
default='login'
required=True
string='Authenticate with'
args: [('login', 'Username'), ('certificate', 'SSL Certificate')]
smtp_authentication_info
Text
compute='_compute_smtp_authentication_info'
args: 'Authentication Info'
smtp_debug
Boolean
help='If enabled, the full output of SMTP sessions will be written to the server log at DEBUG level (this is very verbose and may include confidential info!)'
string='Debugging'
smtp_encryption
Selection
default='none'
help='Choose the connection encryption scheme:\n- None: SMTP sessions are done in cleartext.\n- TLS (STARTTLS): TLS encryption is requested at start of SMTP session (Recommended)\n- SSL/TLS: SMTP sessions are encrypted with SSL/TLS through a dedicated port (default: 465)'
required=True
string='Connection Encryption'
args: [('none', 'None'), ('starttls', 'TLS (STARTTLS)'), ('ssl', 'SSL/TLS')]
smtp_host
Char
help='Hostname or IP of SMTP server'
required=True
string='SMTP Server'
smtp_pass
Char
groups='base.group_system'
help='Optional password for SMTP authentication'
string='Password'
smtp_port
Integer
default=25
help='SMTP Port. Usually 465 for SSL, and 25 or 587 for other cases.'
required=True
string='SMTP Port'
smtp_ssl_certificate
Binary
attachment=False
groups='base.group_system'
help='SSL certificate used for authentication'
args: 'SSL Certificate'
smtp_ssl_private_key
Binary
attachment=False
groups='base.group_system'
help='SSL private key used for authentication'
args: 'SSL Private Key'
smtp_user
Char
groups='base.group_system'
help='Optional username for SMTP authentication'
string='Username'
build_email(self, email_from, email_to, subject, body, email_cc=None, email_bcc=None, reply_to=False, attachments=None, message_id=None, references=None, object_id=False, subtype='plain', headers=None, body_alternative=None, subtype_alternative='plain')
connect(self, host=None, port=None, user=None, password=None, encryption=None, smtp_from=None, ssl_certificate=None, ssl_private_key=None, smtp_debug=False, mail_server_id=None, allow_archived=False)
send_email(self, message, mail_server_id=None, smtp_server=None, smtp_port=None, smtp_user=None, smtp_password=None, smtp_encryption=None, smtp_ssl_certificate=None, smtp_ssl_private_key=None, smtp_debug=False, smtp_session=None)
test_smtp_connection(self)
write(self, vals)
access_ids
One2many → ir.model.access
string='Access'
args: 'ir.model.access', 'model_id'
count
Integer
compute='_compute_count'
help='Total number of records in this model'
string='Count (Incl. Archived)'
field_id
One2many → ir.model.fields
copy=True
default=_default_field_id
required=True
string='Fields'
args: 'ir.model.fields', 'model_id'
info
Text
string='Information'
inherited_model_ids
Many2many → ir.model
compute='_inherited_models'
help='The list of models that extends the current model.'
string='Inherited models'
args: 'ir.model'
model
Char
default='x_'
required=True
modules
Char
compute='_in_modules'
help='List of modules in which the object is defined or inherited'
string='In Apps'
name
Char
required=True
string='Model Description'
translate=True
order
Char
default='id'
help='SQL expression for ordering records in the model; e.g. "x_sequence asc, id desc"'
required=True
string='Order'
rule_ids
One2many → ir.rule
string='Record Rules'
args: 'ir.rule', 'model_id'
state
Selection
default='manual'
readonly=True
string='Type'
args: [('manual', 'Custom Object'), ('base', 'Base Object')]
transient
Boolean
string='Transient Model'
view_ids
One2many → ir.ui.view
compute='_view_ids'
string='Views'
args: 'ir.ui.view'
create(self, vals_list)
name_create(self, name)
unlink(self)
write(self, vals)
active
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).'
group_id
Many2one → res.groups
index=True
ondelete='restrict'
string='Group'
args: 'res.groups'
model_id
Many2one → ir.model
index=True
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
name
Char
index=True
required=True
perm_create
Boolean
string='Create Access'
perm_read
Boolean
string='Read Access'
perm_unlink
Boolean
string='Delete Access'
perm_write
Boolean
string='Write Access'
call_cache_clearing_methods(self)
check(self, model, mode='read', raise_exception=True)
check_group(self, model, mode, group_ids)
check_groups(self, group)
create(self, vals_list)
group_names_with_access(self, model_name, access_mode)
register_cache_clearing_method(cls, model, method)
unlink(self)
unregister_cache_clearing_method(cls, model, method)
write(self, values)
create_date
Datetime
definition
Char
help='PostgreSQL constraint definition'
message
Char
help='Error message returned when the constraint is violated.'
translate=True
model
Many2one → ir.model
index=True
ondelete='cascade'
required=True
args: 'ir.model'
module
Many2one → ir.module.module
index=True
ondelete='cascade'
required=True
args: 'ir.module.module'
name
Char
help='PostgreSQL constraint or foreign key name.'
index=True
required=True
string='Constraint'
type
Char
help='Type of the constraint: `f` for a foreign key, `u` for other constraints.'
index=True
required=True
size=1
string='Constraint Type'
write_date
Datetime
copy(self, default=None)
unlink(self)
complete_name
Char
compute='_compute_complete_name'
string='Complete ID'
model
Char
required=True
string='Model Name'
module
Char
default=''
required=True
name
Char
help='External Key/Identifier that can be used for data integration with third-party systems'
required=True
string='External Identifier'
noupdate
Boolean
default=False
string='Non Updatable'
reference
Char
compute='_compute_reference'
readonly=True
store=False
string='Reference'
res_id
Many2oneReference
help='ID of the target record in the database'
model_field='model'
string='Record ID'
check_object_reference(self, module, xml_id, raise_on_access_error=False)
copy(self, default=None)
name_get(self)
toggle_noupdate(self, model, res_id)
unlink(self)
column1
Char
help='Column referring to the record in the model table'
string='Column 1'
column2
Char
help='Column referring to the record in the comodel table'
string='Column 2'
complete_name
Char
index=True
compute
Text
help="Code to compute the value of the field.\nIterate on the recordset 'self' and assign the field's value:\n\n for record in self:\n record['size'] = len(record.name)\n\nModules time, datetime, dateutil are available."
copied
Boolean
compute='_compute_copied'
help='Whether the value is copied when duplicating a record.'
readonly=False
store=True
string='Copied'
depends
Char
help='Dependencies of compute method; a list of comma-separated field names, like\n\n name, partner_id.name'
string='Dependencies'
domain
Char
default='[]'
help="The optional domain to restrict possible values for relationship fields, specified as a Python expression defining a list of triplets. For example: [('color','=','red')]"
field_description
Char
default=''
required=True
string='Field Label'
translate=True
group_expand
Boolean
help="If checked, all the records of the target model will be included\nin a grouped result (e.g. 'Group By' filters, Kanban columns, etc.).\nNote that it can significantly reduce performance if the target model\nof the field contains a lot of records; usually used on models with\nfew records (e.g. Stages, Job Positions, Event Types, etc.)."
string='Expand Groups'
groups
Many2many → res.groups
help
Text
string='Field Help'
translate=True
index
Boolean
string='Indexed'
model
Char
help='The technical name of the model this field belongs to'
index=True
required=True
string='Model Name'
model_id
Many2one → ir.model
help='The model this field belongs to'
index=True
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
modules
Char
compute='_in_modules'
help='List of modules in which the field is defined'
string='In Apps'
name
Char
default='x_'
index=True
required=True
string='Field Name'
on_delete
Selection
default='set null'
help='On delete property for many2one fields'
string='On Delete'
args: [('cascade', 'Cascade'), ('set null', 'Set NULL'), ('restrict', 'Restrict')]
readonly
Boolean
related
Char
help='The corresponding related field, if any. This must be a dot-separated list of field names.'
string='Related Field'
related_field_id
Many2one → ir.model.fields
compute='_compute_related_field_id'
ondelete='cascade'
store=True
string='Related field'
args: 'ir.model.fields'
relation
Char
help='For relationship fields, the technical name of the target model'
string='Related Model'
relation_field
Char
help='For one2many fields, the field on the target model that implement the opposite many2one relationship'
relation_field_id
Many2one → ir.model.fields
compute='_compute_relation_field_id'
ondelete='cascade'
store=True
string='Relation field'
args: 'ir.model.fields'
relation_table
Char
help='Used for custom many2many fields to define a custom relation table name'
required
Boolean
selectable
Boolean
default=True
selection
Char
compute='_compute_selection'
inverse='_inverse_selection'
string='Selection Options (Deprecated)'
selection_ids
One2many → ir.model.fields.selection
copy=True
string='Selection Options'
args: 'ir.model.fields.selection', 'field_id'
size
Integer
state
Selection
default='manual'
index=True
readonly=True
required=True
string='Type'
args: [('manual', 'Custom Field'), ('base', 'Base Field')]
store
Boolean
default=True
help='Whether the value is stored in the database.'
string='Stored'
translate
Boolean
help='Whether values for this field can be translated (enables the translation mechanism for that field)'
string='Translatable'
ttype
Selection
required=True
selection=FIELD_TYPES
string='Field Type'
create(self, vals_list)
get_field_help(self, model_name)
get_field_selection(self, model_name, field_name)
get_field_string(self, model_name)
name_get(self)
unlink(self)
write(self, vals)
field_id
Many2one → ir.model.fields
domain=[('ttype', 'in', ['selection', 'reference'])]
index=True
ondelete='cascade'
required=True
args: 'ir.model.fields'
name
Char
required=True
translate=True
sequence
Integer
default=1000
value
Char
required=True
create(self, vals_list)
unlink(self)
write(self, vals)
create_date
Datetime
model
Many2one → ir.model
index=True
ondelete='cascade'
required=True
args: 'ir.model'
module
Many2one → ir.module.module
index=True
ondelete='cascade'
required=True
args: 'ir.module.module'
name
Char
help='PostgreSQL table name implementing a many2many relation.'
index=True
required=True
string='Relation Name'
write_date
Datetime
No public methods.
No new fields.
Public methods (2)unlink(self)
write(self, values)
child_ids
One2many → ir.module.category
string='Child Applications'
args: 'ir.module.category', 'parent_id'
description
Text
string='Description'
translate=True
exclusive
Boolean
string='Exclusive'
module_ids
One2many → ir.module.module
string='Modules'
args: 'ir.module.module', 'category_id'
module_nr
Integer
compute='_compute_module_nr'
string='Number of Apps'
name
Char
index=True
required=True
string='Name'
translate=True
parent_id
Many2one → ir.module.category
index=True
string='Parent Application'
args: 'ir.module.category'
sequence
Integer
string='Sequence'
visible
Boolean
default=True
string='Visible'
xml_id
Char
compute='_compute_xml_id'
string='External ID'
No public methods.
application
Boolean
readonly=True
args: 'Application'
author
Char
readonly=True
args: 'Author'
auto_install
Boolean
help='An auto-installable module is automatically installed by the system when all its dependencies are satisfied. If the module has no dependency, it is always installed.'
args: 'Automatic Installation'
category_id
Many2one → ir.module.category
index=True
readonly=True
string='Category'
args: 'ir.module.category'
contributors
Text
readonly=True
args: 'Contributors'
demo
Boolean
default=False
readonly=True
args: 'Demo Data'
dependencies_id
One2many → ir.module.module.dependency
readonly=True
string='Dependencies'
args: 'ir.module.module.dependency', 'module_id'
description
Text
readonly=True
translate=True
args: 'Description'
description_html
Html
compute='_get_desc'
args: 'Description HTML'
exclusion_ids
One2many → ir.module.module.exclusion
readonly=True
string='Exclusions'
args: 'ir.module.module.exclusion', 'module_id'
has_iap
Boolean
compute='_compute_has_iap'
icon
Char
icon_image
Binary
compute='_get_icon_image'
string='Icon'
installed_version
Char
compute='_get_latest_version'
args: 'Latest Version'
latest_version
Char
readonly=True
args: 'Installed Version'
license
Selection
default='LGPL-3'
readonly=True
string='License'
args: [('GPL-2', 'GPL Version 2'), ('GPL-2 or any later version', 'GPL-2 or later version'), ('GPL-3', 'GPL Version 3'), ('GPL-3 or any later version', 'GPL-3 or later version'), ('AGPL-3', 'Affero GPL-3'), ('LGPL-3', 'LGPL Version 3'), ('Other OSI approved licence', 'Other OSI Approved License'), ('OEEL-1', 'Odoo Enterprise Edition License v1.0'), ('OPL-1', 'Odoo Proprietary License v1.0'), ('Other proprietary', 'Other Proprietary')]
maintainer
Char
readonly=True
args: 'Maintainer'
menus_by_module
Text
compute='_get_views'
store=True
string='Menus'
name
Char
readonly=True
required=True
args: 'Technical Name'
published_version
Char
readonly=True
args: 'Published Version'
reports_by_module
Text
compute='_get_views'
store=True
string='Reports'
sequence
Integer
default=100
args: 'Sequence'
shortdesc
Char
readonly=True
translate=True
args: 'Module Name'
state
Selection
default='uninstallable'
index=True
readonly=True
string='Status'
args: STATES
summary
Char
readonly=True
translate=True
args: 'Summary'
to_buy
Boolean
default=False
args: 'Odoo Enterprise Module'
url
Char
readonly=True
args: 'URL'
views_by_module
Text
compute='_get_views'
store=True
string='Views'
website
Char
readonly=True
args: 'Website'
button_immediate_install(self)
button_immediate_uninstall(self)
button_immediate_upgrade(self)
button_install(self)
button_install_cancel(self)
button_uninstall(self)
button_uninstall_cancel(self)
button_uninstall_wizard(self)
button_upgrade(self)
button_upgrade_cancel(self)
check_external_dependencies(cls, module_name, newstate='to install')
create(self, vals_list)
download(self, download=True)
downstream_dependencies(self, known_deps=None, exclude_states=('uninstalled', 'uninstallable', 'to remove'))
get_apps_server(self)
get_module_info(cls, name)
get_values_from_terp(terp)
get_views(self, views, options=None)
install_from_urls(self, urls)
module_uninstall(self)
next(self)
search_panel_select_range(self, field_name, **kwargs)
unlink(self)
update_list(self)
upstream_dependencies(self, known_deps=None, exclude_states=('installed', 'uninstallable', 'to remove'))
auto_install_required
Boolean
default=True
help='Whether this dependency blocks automatic installation of the dependent'
depend_id
Many2one → ir.module.module
compute='_compute_depend'
search='_search_depend'
args: 'ir.module.module', 'Dependency'
module_id
Many2one → ir.module.module
ondelete='cascade'
args: 'ir.module.module', 'Module'
name
Char
index=True
state
Selection
compute='_compute_state'
string='Status'
args: DEP_STATES
No public methods.
exclusion_id
Many2one → ir.module.module
compute='_compute_exclusion'
search='_search_exclusion'
args: 'ir.module.module', 'Exclusion Module'
module_id
Many2one → ir.module.module
ondelete='cascade'
args: 'ir.module.module', 'Module'
name
Char
index=True
state
Selection
compute='_compute_state'
string='Status'
args: DEP_STATES
No public methods.
create_date
Datetime
duration
Float
entry_count
Integer
init_stack_trace
Text
prefetch=False
args: 'Initial stack trace'
name
Char
qweb
Text
prefetch=False
args: 'Qweb'
session
Char
index=True
args: 'Session'
speedscope
Binary
compute='_compute_speedscope'
args: 'Speedscope'
speedscope_url
Text
compute='_compute_speedscope_url'
args: 'Open'
sql
Text
prefetch=False
args: 'Sql'
sql_count
Integer
traces_async
Text
prefetch=False
args: 'Traces Async'
traces_sync
Text
prefetch=False
args: 'Traces Sync'
set_profiling(self, profile=None, collectors=None, params=None)
company_id
Many2one → res.company
index=True
string='Company'
args: 'res.company'
fields_id
Many2one → ir.model.fields
ondelete='cascade'
required=True
string='Field'
args: 'ir.model.fields'
name
Char
index=True
res_id
Char
help='If not set, acts as a default value for new resources'
index=True
string='Resource'
type
Selection
default='many2one'
index=True
required=True
args: [('char', 'Char'), ('float', 'Float'), ('boolean', 'Boolean'), ('integer', 'Integer'), ('text', 'Text'), ('binary', 'Binary'), ('many2one', 'Many2One'), ('date', 'Date'), ('datetime', 'DateTime'), ('selection', 'Selection')]
value_binary
Binary
attachment=False
value_datetime
Datetime
value_float
Float
value_integer
Integer
value_reference
Char
value_text
Text
create(self, vals_list)
get_by_record(self)
init(self)
search_multi(self, name, model, operator, value)
unlink(self)
write(self, values)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (5)attributes(self, record, field_name, options, values=None)
get_available_options(self)
record_to_html(self, record, field_name, options)
user_lang(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options=None)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (1)record_to_html(self, record, field_name, options)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
active
Boolean
default=True
help='If you uncheck the active field, it will disable the record rule without deleting it (if you delete a native record rule, it may be re-created when you reload the module).'
domain_force
Text
string='Domain'
groups
Many2many → res.groups
ondelete='restrict'
args: 'res.groups', 'rule_group_rel', 'rule_group_id', 'group_id'
model_id
Many2one → ir.model
index=True
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
name
Char
index=True
perm_create
Boolean
default=True
string='Apply for Create'
perm_read
Boolean
default=True
string='Apply for Read'
perm_unlink
Boolean
default=True
string='Apply for Delete'
perm_write
Boolean
default=True
string='Apply for Write'
clear_cache(self)
create(self, vals_list)
unlink(self)
write(self, vals)
active
Boolean
default=True
code
Char
string='Sequence Code'
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
date_range_ids
One2many → ir.sequence.date_range
string='Subsequences'
args: 'ir.sequence.date_range', 'sequence_id'
implementation
Selection
default='standard'
help="While assigning a sequence number to a record, the 'no gap' sequence implementation ensures that each previous sequence number has been assigned already. While this sequence implementation will not skip any sequence number upon assignment, there can still be gaps in the sequence if records are deleted. The 'no gap' implementation is slower than the standard one."
required=True
string='Implementation'
args: [('standard', 'Standard'), ('no_gap', 'No gap')]
name
Char
required=True
number_increment
Integer
default=1
help='The next number of the sequence will be incremented by this number'
required=True
string='Step'
number_next
Integer
default=1
help='Next number of this sequence'
required=True
string='Next Number'
number_next_actual
Integer
compute='_get_number_next_actual'
help='Next number that will be used. This number can be incremented frequently so the displayed value might already be obsolete'
inverse='_set_number_next_actual'
string='Actual Next Number'
padding
Integer
default=0
help="Odoo will automatically adds some '0' on the left of the 'Next Number' to get the required padding size."
required=True
string='Sequence Size'
prefix
Char
help='Prefix value of the record for the sequence'
trim=False
suffix
Char
help='Suffix value of the record for the sequence'
trim=False
use_date_range
Boolean
string='Use subsequences per date_range'
create(self, vals_list)
get(self, code)
get_id(self, sequence_code_or_id, code_or_id='id')
get_next_char(self, number_next)
next_by_code(self, sequence_code, sequence_date=None)
next_by_id(self, sequence_date=None)
unlink(self)
write(self, values)
date_from
Date
required=True
string='From'
date_to
Date
required=True
string='To'
number_next
Integer
default=1
help='Next number of this sequence'
required=True
string='Next Number'
number_next_actual
Integer
compute='_get_number_next_actual'
help='Next number that will be used. This number can be incremented frequently so the displayed value might already be obsolete'
inverse='_set_number_next_actual'
string='Actual Next Number'
sequence_id
Many2one → ir.sequence
ondelete='cascade'
required=True
string='Main Sequence'
args: 'ir.sequence'
create(self, vals_list)
default_get(self, fields)
unlink(self)
write(self, values)
col1
Many2one → ir.model.fields
ondelete='cascade'
required=True
string='Field'
args: 'ir.model.fields'
evaluation_type
Selection
change_default=True
default='value'
required=True
args: [('value', 'Value'), ('reference', 'Reference'), ('equation', 'Python expression')], 'Evaluation Type'
resource_ref
Reference
compute='_compute_resource_ref'
inverse='_set_resource_ref'
selection='_selection_target_model'
string='Record'
server_id
Many2one → ir.actions.server
ondelete='cascade'
string='Related Server Action'
args: 'ir.actions.server'
value
Text
help='Expression containing a value specification. \nWhen Formula type is selected, this field may be a Python expression that can use the same values as for the code field on the server action.\nIf Value type is selected, the value will be used directly without evaluation.'
required=True
eval_value(self, eval_context=None)
action
Reference
selection=[('ir.actions.report', 'ir.actions.report'), ('ir.actions.act_window', 'ir.actions.act_window'), ('ir.actions.act_url', 'ir.actions.act_url'), ('ir.actions.server', 'ir.actions.server'), ('ir.actions.client', 'ir.actions.client')]
active
Boolean
default=True
child_id
One2many → ir.ui.menu
string='Child IDs'
args: 'ir.ui.menu', 'parent_id'
complete_name
Char
compute='_compute_complete_name'
recursive=True
string='Full Path'
groups_id
Many2many → res.groups
help="If you have groups, the visibility of this menu will be based on these groups. If this field is empty, Odoo will compute visibility based on the related object's read access."
string='Groups'
args: 'res.groups', 'ir_ui_menu_group_rel', 'menu_id', 'gid'
name
Char
required=True
string='Menu'
translate=True
parent_id
Many2one → ir.ui.menu
index=True
ondelete='restrict'
string='Parent Menu'
args: 'ir.ui.menu'
parent_path
Char
index=True
unaccent=False
sequence
Integer
default=10
web_icon
Char
string='Web Icon File'
web_icon_data
Binary
attachment=True
string='Web Icon Image'
copy(self, default=None)
create(self, vals_list)
get_user_roots(self)
load_menus(self, debug)
load_menus_root(self)
name_get(self)
read_image(self, path)
unlink(self)
write(self, values)
active
Boolean
default=True
help='If this view is inherited,\n* if True, the view always extends its parent\n* if False, the view currently does not extend its parent but can be enabled\n '
arch
Text
compute='_compute_arch'
help='This field should be used when accessing view arch. It will use translation.\n Note that it will read `arch_db` or `arch_fs` if in dev-xml mode.'
inverse='_inverse_arch'
string='View Architecture'
arch_base
Text
compute='_compute_arch_base'
help='This field is the same as `arch` field without translations'
inverse='_inverse_arch_base'
string='Base View Architecture'
arch_db
Text
help='This field stores the view arch.'
string='Arch Blob'
translate=xml_translate
arch_fs
Char
help='File from where the view originates.\n Useful to (hard) reset broken views or to read arch from file in dev-xml mode.'
string='Arch Filename'
arch_prev
Text
help='This field will save the current `arch_db` before writing on it.\n Useful to (soft) reset a broken view.'
string='Previous View Architecture'
arch_updated
Boolean
string='Modified Architecture'
field_parent
Char
string='Child Field'
groups_id
Many2many → res.groups
help='If this field is empty, the view applies to all users. Otherwise, the view applies to the users of those groups only.'
string='Groups'
args: 'res.groups', 'ir_ui_view_group_rel', 'view_id', 'group_id'
inherit_children_ids
One2many → ir.ui.view
string='Views which inherit from this one'
args: 'ir.ui.view', 'inherit_id'
inherit_id
Many2one → ir.ui.view
index=True
ondelete='restrict'
string='Inherited View'
args: 'ir.ui.view'
key
Char
index='btree_not_null'
mode
Selection
default='primary'
help="Only applies if this view inherits from an other one (inherit_id is not False/Null).\n\n* if extension (default), if this view is requested the closest primary view\nis looked up (via inherit_id), then all views inheriting from it with this\nview's model are applied\n* if primary, the closest primary view is fully resolved (even if it uses a\ndifferent model than this one), then this view's inheritance specs\n(<xpath/>) are applied, and the result is used as if it were this view's\nactual arch.\n"
required=True
string='View inheritance mode'
args: [('primary', 'Base view'), ('extension', 'Extension View')]
model
Char
index=True
model_data_id
Many2one → ir.model.data
compute='_compute_model_data_id'
search='_search_model_data_id'
string='Model Data'
args: 'ir.model.data'
name
Char
required=True
string='View Name'
priority
Integer
default=16
required=True
string='Sequence'
type
Selection
string='View Type'
args: [('tree', 'Tree'), ('form', 'Form'), ('graph', 'Graph'), ('pivot', 'Pivot'), ('calendar', 'Calendar'), ('gantt', 'Gantt'), ('kanban', 'Kanban'), ('search', 'Search'), ('qweb', 'QWeb')]
xml_id
Char
compute='_compute_xml_id'
help='ID of the view defined in xml file'
string='External ID'
apply_inheritance_specs(self, source, specs_tree, pre_locate=<expr>)
clear_cache(self)
copy(self, default=None)
create(self, vals_list)
default_view(self, model, view_type)
distribute_branding(self, e, branding=None, parent_xpath='', index_map=ConstantMapping(1))
get_combined_arch(self)
inherit_branding(self, specs_tree)
is_node_branded(self, node)
locate_node(self, arch, spec)
postprocess_and_fields(self, node, model=None, **options)
read_combined(self, fields=None)
render_public_asset(self, template, values=None)
reset_arch(self, mode='soft')
unlink(self)
write(self, vals)
arch
Text
required=True
string='View Architecture'
ref_id
Many2one → ir.ui.view
index=True
ondelete='cascade'
required=True
string='Original View'
args: 'ir.ui.view'
user_id
Many2one → res.users
index=True
ondelete='cascade'
required=True
string='User'
args: 'res.users'
No public methods.
No new fields.
Public methods (0)No public methods.
image
Char
string='Preview image src'
name
Char
pdf
Char
string='Preview pdf src'
sequence
Integer
default=50
view_id
Many2one → ir.ui.view
required=True
args: 'ir.ui.view', 'Document Template'
No public methods.
default
Boolean
disable_shrinking
Boolean
dpi
Integer
default=90
required=True
args: 'Output DPI'
format
Selection
default='A4'
help='Select Proper Paper size'
args: <expr>, 'Paper size'
header_line
Boolean
default=False
args: 'Display a header line'
header_spacing
Integer
default=35
args: 'Header spacing'
margin_bottom
Float
default=20
args: 'Bottom Margin (mm)'
margin_left
Float
default=7
args: 'Left Margin (mm)'
margin_right
Float
default=7
args: 'Right Margin (mm)'
margin_top
Float
default=40
args: 'Top Margin (mm)'
name
Char
required=True
args: 'Name'
orientation
Selection
default='Landscape'
args: [('Landscape', 'Landscape'), ('Portrait', 'Portrait')], 'Orientation'
page_height
Integer
default=False
args: 'Page height (mm)'
page_width
Integer
default=False
args: 'Page width (mm)'
print_page_height
Float
compute='_compute_print_page_size'
args: 'Print page height (mm)'
print_page_width
Float
compute='_compute_print_page_size'
args: 'Print page width (mm)'
report_ids
One2many → ir.actions.report
help='Explicitly associated reports'
args: 'ir.actions.report', 'paperformat_id', 'Associated reports'
No public methods.
active
Boolean
default=True
bic
Char
help='Sometimes called BIC or Swift.'
index=True
args: 'Bank Identifier Code'
city
Char
country
Many2one → res.country
email
Char
name
Char
required=True
phone
Char
state
Many2one → res.country.state
domain="[('country_id', '=?', country)]"
args: 'res.country.state', 'Fed. State'
street
Char
street2
Char
zip
Char
name_get(self)
No new fields.
Public methods (0)No public methods.
active
Boolean
default=True
bank_ids
One2many
readonly=False
related='partner_id.bank_ids'
base_onboarding_company_state
Selection
default='not_done'
string='State of the onboarding company step'
args: [('not_done', 'Not done'), ('just_done', 'Just done'), ('done', 'Done')]
child_ids
One2many → res.company
string='Child Companies'
args: 'res.company', 'parent_id'
city
Char
compute='_compute_address'
inverse='_inverse_city'
company_details
Html
help='Header text displayed at the top of all reports.'
string='Company Details'
company_registry
Char
readonly=False
related='partner_id.company_registry'
string='Company ID'
country_id
Many2one → res.country
compute='_compute_address'
inverse='_inverse_country'
string='Country'
args: 'res.country'
currency_id
Many2one → res.currency
default=<expr>
required=True
string='Currency'
args: 'res.currency'
email
Char
readonly=False
related='partner_id.email'
store=True
external_report_layout_id
Many2one → ir.ui.view
favicon
Binary
default=_get_default_favicon
help='This field holds the image used to display a favicon for a given company.'
string='Company Favicon'
font
Selection
default='Lato'
args: [('Lato', 'Lato'), ('Roboto', 'Roboto'), ('Open_Sans', 'Open Sans'), ('Montserrat', 'Montserrat'), ('Oswald', 'Oswald'), ('Raleway', 'Raleway'), ('Tajawal', 'Tajawal')]
is_company_details_empty
Boolean
compute='_compute_empty_company_details'
layout_background
Selection
default='Blank'
required=True
args: [('Blank', 'Blank'), ('Geometric', 'Geometric'), ('Custom', 'Custom')]
layout_background_image
Binary
logo
Binary
default=_get_logo
readonly=False
related='partner_id.image_1920'
string='Company Logo'
logo_web
Binary
attachment=False
compute='_compute_logo_web'
store=True
mobile
Char
readonly=False
related='partner_id.mobile'
store=True
name
Char
readonly=False
related='partner_id.name'
required=True
store=True
string='Company Name'
paperformat_id
Many2one → report.paperformat
default=<expr>
args: 'report.paperformat', 'Paper format'
parent_id
Many2one → res.company
index=True
string='Parent Company'
args: 'res.company'
partner_id
Many2one → res.partner
required=True
string='Partner'
args: 'res.partner'
phone
Char
readonly=False
related='partner_id.phone'
store=True
primary_color
Char
report_footer
Html
help='Footer text displayed at the bottom of all reports.'
string='Report Footer'
translate=True
report_header
Html
help='Appears by default on the top right corner of your printed documents (report header).'
string='Company Tagline'
secondary_color
Char
sequence
Integer
default=10
help='Used to order Companies in the company switcher'
state_id
Many2one → res.country.state
compute='_compute_address'
domain="[('country_id', '=?', country_id)]"
inverse='_inverse_state'
string='Fed. State'
args: 'res.country.state'
street
Char
compute='_compute_address'
inverse='_inverse_street'
street2
Char
compute='_compute_address'
inverse='_inverse_street2'
user_ids
Many2many → res.users
string='Accepted Users'
args: 'res.users', 'res_company_users_rel', 'cid', 'user_id'
vat
Char
readonly=False
related='partner_id.vat'
string='Tax ID'
website
Char
readonly=False
related='partner_id.website'
zip
Char
compute='_compute_address'
inverse='_inverse_zip'
action_open_base_onboarding_company(self)
action_save_onboarding_company_step(self)
cache_restart(self)
copy(self, default=None)
create(self, vals_list)
init(self)
open_company_edit_report(self)
set_onboarding_step_done(self, step_name)
write(self, values)
write_company_and_print_report(self)
No new fields.
Public methods (7)action_cancel(self)
action_next(self)
action_skip(self)
cancel(self)
execute(self)
next(self)
start(self)
No new fields.
Public methods (5)already_installed(self)
default_get(self, fields_list)
execute(self)
fields_get(self, allfields=None, attributes=None)
modules_to_install(self)
No new fields.
Public methods (13)action_open_template_user(self)
cancel(self)
copy(self, default=None)
create(self, vals_list)
default_get(self, fields)
execute(self)
get_config_warning(self, msg)
get_option_name(self, full_field_name)
get_option_path(self, menu_xml_id)
get_values(self)
name_get(self)
onchange_module(self, field_value, module_name)
set_values(self)
address_format
Text
default='%(street)s\n%(street2)s\n%(city)s %(state_code)s %(zip)s\n%(country_name)s'
help="Display format to use for addresses belonging to this country.\n\nYou can use python-style string pattern with all the fields of the address (for example, use '%(street)s' to display the field 'street') plus\n%(state_name)s: the name of the state\n%(state_code)s: the code of the state\n%(country_name)s: the name of the country\n%(country_code)s: the code of the country"
string='Layout in Reports'
address_view_id
Many2one → ir.ui.view
comodel_name='ir.ui.view'
domain=[('model', '=', 'res.partner'), ('type', '=', 'form')]
help='Use this field if you want to replace the usual way to encode a complete address. Note that the address_format field is used to modify the way to display addresses (in reports for example), while this field is used to modify the input form for addresses.'
string='Input View'
code
Char
help='The ISO country code in two chars. \nYou can use this field for quick search.'
size=2
string='Country Code'
country_group_ids
Many2many → res.country.group
string='Country Groups'
args: 'res.country.group', 'res_country_res_country_group_rel', 'res_country_id', 'res_country_group_id'
currency_id
Many2one → res.currency
string='Currency'
args: 'res.currency'
image_url
Char
compute='_compute_image_url'
help='Url of static flag image'
string='Flag'
name
Char
required=True
string='Country Name'
translate=True
name_position
Selection
default='before'
help='Determines where the customer/company name should be placed, i.e. after or before the address.'
string='Customer Name Position'
args: [('before', 'Before Address'), ('after', 'After Address')]
phone_code
Integer
string='Country Calling Code'
state_ids
One2many → res.country.state
string='States'
args: 'res.country.state', 'country_id'
state_required
Boolean
default=False
vat_label
Char
help='Use this field if you want to change vat label.'
prefetch=True
string='Vat Label'
translate=True
zip_required
Boolean
default=True
create(self, vals_list)
get_address_fields(self)
write(self, vals)
country_ids
Many2many → res.country
string='Countries'
args: 'res.country', 'res_country_res_country_group_rel', 'res_country_group_id', 'res_country_id'
name
Char
required=True
translate=True
No public methods.
code
Char
help='The state code.'
required=True
string='State Code'
country_id
Many2one → res.country
required=True
string='Country'
args: 'res.country'
name
Char
help='Administrative divisions of a country. E.g. Fed. State, Departement, Canton'
required=True
string='State Name'
name_get(self)
active
Boolean
default=True
currency_subunit_label
Char
string='Currency Subunit'
currency_unit_label
Char
string='Currency Unit'
date
Date
compute='_compute_date'
decimal_places
Integer
compute='_compute_decimal_places'
help='Decimal places taken into account for operations on amounts in this currency. It is determined by the rounding factor.'
store=True
full_name
Char
string='Name'
inverse_rate
Float
compute='_compute_current_rate'
digits=0
help='The currency of rate 1 to the rate of the currency.'
readonly=True
is_current_company_currency
Boolean
compute='_compute_is_current_company_currency'
name
Char
help='Currency Code (ISO 4217)'
required=True
size=3
string='Currency'
position
Selection
default='after'
help='Determines where the currency symbol should be placed after or before the amount.'
string='Symbol Position'
args: [('after', 'After Amount'), ('before', 'Before Amount')]
rate
Float
compute='_compute_current_rate'
digits=0
help='The rate of the currency to the currency of rate 1.'
string='Current Rate'
rate_ids
One2many → res.currency.rate
string='Rates'
args: 'res.currency.rate', 'currency_id'
rate_string
Char
compute='_compute_current_rate'
rounding
Float
default=0.01
digits=(12, 6)
help='Amounts in this currency are rounded off to the nearest multiple of the rounding factor.'
string='Rounding Factor'
symbol
Char
help='Currency sign, to be used when printing amounts.'
required=True
amount_to_text(self, amount)
compare_amounts(self, amount1, amount2)
compute(self, from_amount, to_currency, round=True)
create(self, vals_list)
format(self, amount)
is_zero(self, amount)
name_get(self)
round(self, amount)
unlink(self)
write(self, vals)
No new fields.
Public methods (0)No public methods.
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
company_rate
Float
compute='_compute_company_rate'
digits=0
group_operator='avg'
help='The currency of rate 1 to the rate of the currency.'
inverse='_inverse_company_rate'
currency_id
Many2one → res.currency
ondelete='cascade'
readonly=True
required=True
string='Currency'
args: 'res.currency'
inverse_company_rate
Float
compute='_compute_inverse_company_rate'
digits=0
group_operator='avg'
help='The rate of the currency to the currency of rate 1 '
inverse='_inverse_inverse_company_rate'
name
Date
default=fields.Date.context_today
index=True
required=True
string='Date'
rate
Float
digits=0
group_operator='avg'
help='The rate of the currency to the currency of rate 1'
string='Technical Rate'
create(self, vals_list)
write(self, vals)
category_id
Many2one → ir.module.category
index=True
string='Application'
args: 'ir.module.category'
color
Integer
string='Color Index'
comment
Text
translate=True
full_name
Char
compute='_compute_full_name'
search='_search_full_name'
string='Group Name'
menu_access
Many2many → ir.ui.menu
string='Access Menu'
args: 'ir.ui.menu', 'ir_ui_menu_group_rel', 'gid', 'menu_id'
model_access
One2many → ir.model.access
copy=True
string='Access Controls'
args: 'ir.model.access', 'group_id'
name
Char
required=True
translate=True
rule_groups
Many2many → ir.rule
domain="[('global', '=', False)]"
string='Rules'
args: 'ir.rule', 'rule_group_rel', 'group_id', 'rule_group_id'
share
Boolean
help='Group created to set access rights for sharing data with some users.'
string='Share Group'
users
Many2many → res.users
view_access
Many2many → ir.ui.view
string='Views'
args: 'ir.ui.view', 'ir_ui_view_group_rel', 'group_id', 'view_id'
copy(self, default=None)
write(self, vals)
implied_ids
Many2many → res.groups
help='Users of this group automatically inherit those groups'
string='Inherits'
args: 'res.groups', 'res_groups_implied_rel', 'gid', 'hid'
trans_implied_ids
Many2many → res.groups
compute='_compute_trans_implied'
recursive=True
string='Transitively inherits'
args: 'res.groups'
create(self, vals_list)
write(self, values)
No new fields.
Public methods (5)create(self, vals_list)
get_application_groups(self, domain)
get_groups_by_application(self)
unlink(self)
write(self, values)
active
Boolean
code
Char
help='This field is used to set/get locales for user'
required=True
string='Locale Code'
date_format
Char
default=DEFAULT_DATE_FORMAT
required=True
string='Date Format'
decimal_point
Char
default='.'
required=True
string='Decimal Separator'
trim=False
direction
Selection
default='ltr'
required=True
args: [('ltr', 'Left-to-Right'), ('rtl', 'Right-to-Left')]
flag_image
Image
flag_image_url
Char
compute=_compute_field_flag_image_url
grouping
Char
default='[]'
help="The Separator Format should be like [,n] where 0 < n :starting from Unit digit. -1 will end the separation. e.g. [3,2,-1] will represent 106500 to be 1,06,500; [1,2,-1] will represent it to be 106,50,0;[3] will represent it as 106,500. Provided ',' as the thousand separator in each case."
required=True
string='Separator Format'
iso_code
Char
help='This ISO code is the name of po files to use for translations'
string='ISO code'
name
Char
required=True
thousands_sep
Char
default=','
string='Thousands Separator'
trim=False
time_format
Char
default=DEFAULT_TIME_FORMAT
required=True
string='Time Format'
url_code
Char
help='The Lang Code displayed in the URL'
required=True
args: 'URL Code'
week_start
Selection
default='7'
required=True
string='First Day of Week'
args: [('1', 'Monday'), ('2', 'Tuesday'), ('3', 'Wednesday'), ('4', 'Thursday'), ('5', 'Friday'), ('6', 'Saturday'), ('7', 'Sunday')]
action_activate_langs(self)
copy_data(self, default=None)
create(self, vals_list)
format(self, percent, value, grouping=False, monetary=False)
get_available(self)
get_installed(self)
get_sorted(self)
install_lang(self)
load_lang(self, lang, lang_name=None)
toggle_active(self)
unlink(self)
write(self, vals)
No new fields.
Public methods (0)No public methods.
active
Boolean
default=True
active_lang_count
Integer
compute='_compute_active_lang_count'
bank_ids
One2many → res.partner.bank
string='Banks'
args: 'res.partner.bank', 'partner_id'
barcode
Char
company_dependent=True
copy=False
help='Use a barcode to identify this contact.'
category_id
Many2many → res.partner.category
column1='partner_id'
column2='category_id'
default=_default_category
string='Tags'
args: 'res.partner.category'
child_ids
One2many → res.partner
domain=[('active', '=', True)]
string='Contact'
args: 'res.partner', 'parent_id'
city
Char
color
Integer
default=0
string='Color Index'
comment
Html
string='Notes'
commercial_company_name
Char
compute='_compute_commercial_company_name'
store=True
args: 'Company Name Entity'
commercial_partner_id
Many2one → res.partner
compute='_compute_commercial_partner'
index=True
recursive=True
store=True
string='Commercial Entity'
args: 'res.partner'
company_id
Many2one → res.company
index=True
args: 'res.company', 'Company'
company_name
Char
company_registry
Char
compute='_compute_company_registry'
help='The registry number of the company. Use it if it is different from the Tax ID. It must be unique across all partners of a same country'
readonly=False
store=True
string='Company ID'
company_type
Selection
compute='_compute_company_type'
inverse='_write_company_type'
selection=[('person', 'Individual'), ('company', 'Company')]
string='Company Type'
contact_address
Char
compute='_compute_contact_address'
string='Complete Address'
country_code
Char
related='country_id.code'
string='Country Code'
country_id
Many2one → res.country
ondelete='restrict'
string='Country'
args: 'res.country'
date
Date
index=True
display_name
Char
compute='_compute_display_name'
index=True
recursive=True
store=True
email
Char
email_formatted
Char
compute='_compute_email_formatted'
help='Format email address "Name <email@domain>"'
args: 'Formatted Email'
employee
Boolean
help='Check this box if this contact is an Employee.'
function
Char
string='Job Position'
industry_id
Many2one → res.partner.industry
is_company
Boolean
default=False
help='Check if the contact is a company, otherwise it is a person'
string='Is a Company'
is_public
Boolean
compute='_compute_is_public'
lang
Selection
help='All the emails and documents sent to this contact will be translated in this language.'
string='Language'
args: _lang_get
mobile
Char
unaccent=False
name
Char
default_export_compatible=True
index=True
parent_id
Many2one → res.partner
index=True
string='Related Company'
args: 'res.partner'
parent_name
Char
readonly=True
related='parent_id.name'
string='Parent name'
partner_latitude
Float
digits=(10, 7)
string='Geo Latitude'
partner_longitude
Float
digits=(10, 7)
string='Geo Longitude'
partner_share
Boolean
compute='_compute_partner_share'
help='Either customer (not a user), either shared user. Indicated the current partner is a customer without access or with a limited access created for sharing data.'
store=True
args: 'Share Partner'
phone
Char
unaccent=False
ref
Char
index=True
string='Reference'
same_company_registry_partner_id
Many2one → res.partner
compute='_compute_same_vat_partner_id'
store=False
string='Partner with same Company Registry'
args: 'res.partner'
same_vat_partner_id
Many2one → res.partner
compute='_compute_same_vat_partner_id'
store=False
string='Partner with same Tax ID'
args: 'res.partner'
self
Many2one
comodel_name=_name
compute='_compute_get_ids'
state_id
Many2one → res.country.state
domain="[('country_id', '=?', country_id)]"
ondelete='restrict'
string='State'
args: 'res.country.state'
street
Char
street2
Char
title
Many2one → res.partner.title
translated_display_name
Char
compute='_compute_translated_display_name'
type
Selection
default='contact'
help='- Contact: Use this to organize the contact details of employees of a given company (e.g. CEO, CFO, ...).\n- Invoice Address : Preferred address for all invoices. Selected by default when you invoice an order that belongs to this company.\n- Delivery Address : Preferred address for all deliveries. Selected by default when you deliver an order that belongs to this company.\n- Private: Private addresses are only visible by authorized users and contain sensitive data (employee home addresses, ...).\n- Other: Other address for the company (e.g. subsidiary, ...)'
string='Address Type'
args: [('contact', 'Contact'), ('invoice', 'Invoice Address'), ('delivery', 'Delivery Address'), ('private', 'Private Address'), ('other', 'Other Address')]
tz
Selection
default=<expr>
help='When printing documents and exporting/importing data, time values are computed according to this timezone.\nIf the timezone is not set, UTC (Coordinated Universal Time) is used.\nAnywhere else, time values are computed according to the time offset of your web client.'
string='Timezone'
args: _tz_get
tz_offset
Char
compute='_compute_tz_offset'
invisible=True
string='Timezone offset'
user_id
Many2one → res.users
compute='_compute_user_id'
help='The internal user in charge of this contact.'
precompute=True
readonly=False
store=True
string='Salesperson'
args: 'res.users'
user_ids
One2many → res.users
auto_join=True
string='Users'
args: 'res.users', 'partner_id'
vat
Char
help="The Tax Identification Number. Values here will be validated based on the country format. You can use '/' to indicate that the partner is not subject to tax."
index=True
string='Tax ID'
website
Char
zip
Char
change_default=True
address_get(self, adr_pref=None)
copy(self, default=None)
create(self, vals_list)
create_company(self)
default_get(self, default_fields)
find_or_create(self, email, assert_valid_email=False)
get_import_templates(self)
main_partner(self)
name_create(self, name)
name_get(self)
onchange_company_type(self)
onchange_email(self)
onchange_parent_id(self)
open_commercial_entity(self)
open_parent(self)
update_address(self, vals)
view_header_get(self, view_id, view_type)
write(self, vals)
acc_holder_name
Char
help='Account holder name, in case it is different than the name of the Account Holder'
string='Account Holder Name'
acc_number
Char
required=True
args: 'Account Number'
acc_type
Selection
compute='_compute_acc_type'
help='Bank account type: Normal or IBAN. Inferred from the bank account number.'
selection=<expr>
string='Type'
active
Boolean
default=True
allow_out_payment
Boolean
copy=False
default=False
help='This account can be used for outgoing payments'
readonly=False
args: 'Send Money'
bank_bic
Char
readonly=False
related='bank_id.bic'
bank_id
Many2one → res.bank
string='Bank'
args: 'res.bank'
bank_name
Char
readonly=False
related='bank_id.name'
company_id
Many2one → res.company
readonly=True
related='partner_id.company_id'
store=True
args: 'res.company', 'Company'
currency_id
Many2one → res.currency
string='Currency'
args: 'res.currency'
partner_id
Many2one → res.partner
domain=['|', ('is_company', '=', True), ('parent_id', '=', False)]
index=True
ondelete='cascade'
required=True
args: 'res.partner', 'Account Holder'
sanitized_acc_number
Char
compute='_compute_sanitized_acc_number'
readonly=True
store=True
string='Sanitized Account Number'
sequence
Integer
default=10
get_supported_account_types(self)
name_get(self)
retrieve_acc_type(self, acc_number)
active
Boolean
default=True
help='The active field allows you to hide the category without removing it.'
child_ids
One2many → res.partner.category
string='Child Tags'
args: 'res.partner.category', 'parent_id'
color
Integer
default=_get_default_color
string='Color'
name
Char
required=True
string='Tag Name'
translate=True
parent_id
Many2one → res.partner.category
index=True
ondelete='cascade'
string='Parent Category'
args: 'res.partner.category'
parent_path
Char
index=True
unaccent=False
partner_ids
Many2many → res.partner
column1='category_id'
column2='partner_id'
copy=False
string='Partners'
args: 'res.partner'
name_get(self)
No new fields.
Public methods (0)No public methods.
active
Boolean
default=True
args: 'Active'
full_name
Char
translate=True
args: 'Full Name'
name
Char
translate=True
args: 'Name'
No public methods.
name
Char
required=True
string='Title'
translate=True
shortcut
Char
string='Abbreviation'
translate=True
No public methods.
No new fields.
Public methods (0)No public methods.
accesses_count
Integer
compute='_compute_accesses_count'
compute_sudo=True
help='Number of access rights that apply to the current user'
args: '# Access Rights'
action_id
Many2one → ir.actions.actions
help='If specified, this action will be opened at log on for this user, in addition to the standard menu.'
string='Home Action'
args: 'ir.actions.actions'
active
Boolean
default=True
active_partner
Boolean
readonly=True
related='partner_id.active'
string='Partner is Active'
companies_count
Integer
compute='_compute_companies_count'
string='Number of Companies'
company_id
Many2one → res.company
context={'user_preference': True}
default=<expr>
help='The default company for this user.'
required=True
string='Company'
args: 'res.company'
company_ids
Many2many → res.company
default=<expr>
string='Companies'
args: 'res.company', 'res_company_users_rel', 'user_id', 'cid'
email
Char
inherited=True
readonly=False
related='partner_id.email'
groups_count
Integer
compute='_compute_accesses_count'
compute_sudo=True
help='Number of groups that apply to the current user'
args: '# Groups'
groups_id
Many2many → res.groups
default=<expr>
string='Groups'
args: 'res.groups', 'res_groups_users_rel', 'uid', 'gid'
log_ids
One2many → res.users.log
string='User log entries'
args: 'res.users.log', 'create_uid'
login
Char
help='Used to log into the system'
required=True
login_date
Datetime
readonly=False
related='log_ids.create_date'
string='Latest authentication'
name
Char
inherited=True
readonly=False
related='partner_id.name'
new_password
Char
compute='_compute_password'
help="Specify a value only when creating a user or if you're changing the user's password, otherwise leave empty. After a change of password, the user has to login again."
inverse='_set_new_password'
string='Set Password'
partner_id
Many2one → res.partner
auto_join=True
help='Partner-related data of the user'
index=True
ondelete='restrict'
required=True
string='Related Partner'
args: 'res.partner'
password
Char
compute='_compute_password'
copy=False
help="Keep empty if you don't want the user to be able to connect on the system."
inverse='_set_password'
invisible=True
rules_count
Integer
compute='_compute_accesses_count'
compute_sudo=True
help='Number of record rules that apply to the current user'
args: '# Record Rules'
share
Boolean
compute='_compute_share'
compute_sudo=True
help='External user with limited access, created only for the purpose of sharing data.'
store=True
string='Share User'
signature
Html
compute='_compute_signature'
readonly=False
store=True
string='Email Signature'
tz_offset
Char
compute='_compute_tz_offset'
invisible=True
string='Timezone offset'
SELF_READABLE_FIELDS(self)
SELF_WRITEABLE_FIELDS(self)
action_get(self)
action_show_accesses(self)
action_show_groups(self)
action_show_rules(self)
authenticate(cls, db, login, password, user_agent_env)
change_password(self, old_passwd, new_passwd)
check(cls, db, uid, passwd)
check_super(self, passwd)
context_get(self)
copy(self, default=None)
create(self, vals_list)
get_company_currency_id(self)
has_group(self, group_ext_id)
init(self)
on_change_login(self)
onchange_parent_id(self)
preference_change_password(self)
preference_save(self)
read(self, fields=None, load='_classic_read')
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
toggle_active(self)
write(self, values)
No new fields.
Public methods (2)create(self, vals_list)
write(self, values)
user_group_warning
Text
compute='_compute_user_group_warning'
string='User Group Warning'
create(self, vals_list)
default_get(self, fields)
fields_get(self, allfields=None, attributes=None)
new(self, values=None, origin=None, ref=None)
onchange(self, values, field_name, field_onchange)
read(self, fields=None, load='_classic_read')
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
write(self, values)
api_key_ids
One2many → res.users.apikeys
string='API Keys'
args: 'res.users.apikeys', 'user_id'
SELF_READABLE_FIELDS(self)
SELF_WRITEABLE_FIELDS(self)
api_key_wizard(self)
create_date
Datetime
readonly=True
args: 'Creation Date'
name
Char
readonly=True
required=True
args: 'Description'
scope
Char
readonly=True
args: 'Scope'
user_id
Many2one → res.users
index=True
ondelete='cascade'
readonly=True
required=True
args: 'res.users'
init(self)
remove(self)
name
Char
required=True
args: 'Description'
check_access_make_key(self)
make_key(self)
id
Id
key
Char
readonly=True
No public methods.
state
Selection
default='todo'
required=True
string='State'
args: [('todo', 'To Do'), ('done', 'Done'), ('fail', 'Failed')]
user_id
Many2one → res.users
ondelete='set null'
string='User'
args: 'res.users'
user_id_int
Integer
compute='_compute_user_id_int'
store=True
args: 'User Id'
No public methods.
password
Char
request
Char
groups=fields.NO_ACCESS
readonly=True
run_check(self)
No new fields.
Public methods (0)No public methods.
arch_diff
Html
compute='_compute_arch_diff'
readonly=True
sanitize_tags=False
string='Architecture Diff'
arch_to_compare
Text
compute='_compute_arch_diff'
args: 'Arch To Compare To'
compare_view_id
Many2one → ir.ui.view
string='Compare To View'
args: 'ir.ui.view'
has_diff
Boolean
compute='_compute_arch_diff'
reset_mode
Selection
default='soft'
required=True
string='Reset Mode'
args: [('soft', 'Restore previous version (soft reset).'), ('hard', 'Reset to file version (hard reset).'), ('other_view', 'Reset to another view.')]
view_id
Many2one → ir.ui.view
string='View'
args: 'ir.ui.view'
view_name
Char
related='view_id.name'
string='View Name'
default_get(self, fields)
reset_view_button(self)
menu_id
Many2one → ir.ui.menu
ondelete='cascade'
required=True
string='Parent Menu'
args: 'ir.ui.menu'
name
Char
required=True
string='Menu Name'
menu_create(self)
access_ir_model_access_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_model_access' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_model_fields_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_model_fields' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_model_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_model' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_rule_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_rule' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_ui_view_custom_group_user — Access rule grants write/create/unlink on 'model_ir_ui_view_custom' to EVERY user (portal/public included): no group is set acl-global-writeaccess_report_layout — Access rule grants write/create/unlink on 'model_report_layout' to EVERY user (portal/public included): no group is set acl-global-writeaccess_res_groups_group_erp_manager — Access rule grants write/create/unlink on security model 'model_res_groups' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_res_users_group_erp_manager — Access rule grants write/create/unlink on security model 'model_res_users' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_res_users_log_all — Access rule grants create on 'model_res_users_log' to EVERY user (portal/public included): no group is set acl-global-writeFound by automated static analysis: these patterns are usually risky, but only a manual review of the module can confirm a real issue.
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
act_report_xml_search_view |
ir.actions.report.search | ir.actions.report | search | New |
act_report_xml_view |
ir.actions.report | ir.actions.report | form | New |
act_report_xml_view_tree |
ir.actions.report.tree | ir.actions.report | tree | New |
action_view |
ir.actions.actions | ir.actions.actions | form | New |
action_view_search |
ir.actions.actions.search | ir.actions.actions | search | New |
action_view_tree |
ir.actions.actions.tree | ir.actions.actions | tree | New |
asset_view_form |
ir.asset | form | New | |
asset_view_search |
ir.asset | search | New | |
asset_view_tree |
ir.asset | tree | New | |
base_onboarding_company_form |
base.company.onboarding.form | res.company | form | Inherits base.view_company_form |
base_partner_merge_automatic_wizard_form |
base.partner.merge.automatic.wizard.form | base.partner.merge.automatic.wizard | form | New |
change_password_wizard_user_tree_view |
Change Password Users | change.password.user | tree | New |
change_password_wizard_view |
Change Password | change.password.wizard | form | New |
config_wizard_step_view_form |
Config Wizard Steps | ir.actions.todo | form | New |
config_wizard_step_view_search |
ir.actions.todo.select | ir.actions.todo | search | New |
contact |
contact | ir.ui.view | qweb | New |
contact_name |
contact_name | ir.ui.view | qweb | New |
demo_failures_dialog |
Demo Failure Dialog | ir.demo_failure.wizard | form | New |
demo_force_install_form |
ir.demo.form | ir.demo | form | New |
edit_menu |
ir.ui.menu | tree | New | |
edit_menu_access |
ir.ui.menu | form | New | |
edit_menu_access_search |
ir.ui.menu.search | ir.ui.menu | search | New |
enable_profiling_wizard |
Enable profiling | base.enable.profiling.wizard | form | New |
form_res_users_key_description |
API Key: description input form | res.users.apikeys.description | form | New |
form_res_users_key_show |
API Key: show | res.users.apikeys.show | form | New |
identity_check_wizard |
res.users.identitycheck | form | New | |
ir_access_view_form |
ir.model.access | form | New | |
ir_access_view_search |
ir.model.access | search | New | |
ir_access_view_tree |
ir.model.access.view.tree | ir.model.access | tree | New |
ir_access_view_tree_edition |
ir.model.access.view.tree.edition | ir.model.access | tree | New |
ir_actions_todo_tree |
Config Wizard Steps | ir.actions.todo | tree | New |
ir_cron_trigger_view_form |
ir.cron.trigger.view.form | ir.cron.trigger | form | New |
ir_cron_trigger_view_search |
ir.cron.trigger.view.search | ir.cron.trigger | search | New |
ir_cron_trigger_view_tree |
ir.cron.trigger.view.tree | ir.cron.trigger | tree | New |
ir_cron_view_calendar |
ir.cron | calendar | New | |
ir_cron_view_form |
ir.cron.view.form | ir.cron | form | Inherits base.view_server_action_form |
ir_cron_view_search |
ir.cron | search | New | |
ir_cron_view_tree |
ir.cron | tree | New | |
ir_default_form_view |
ir.default form view | ir.default | form | New |
ir_default_search_view |
ir.default search view | ir.default | search | New |
ir_default_tree_view |
ir.default tree view | ir.default | tree | New |
ir_filters_view_form |
ir.filters | form | New | |
ir_filters_view_search |
ir.filters | search | New | |
ir_filters_view_tree |
ir.filters | tree | New | |
ir_logging_form_view |
ir.logging | form | New | |
ir_logging_search_view |
ir.logging | search | New | |
ir_logging_tree_view |
ir.logging | tree | New | |
ir_mail_server_form |
ir.mail_server | form | New | |
ir_mail_server_list |
ir.mail_server | tree | New | |
ir_profile_view_form |
IR Profile Form | ir.profile | form | New |
ir_profile_view_list |
IR Profile List | ir.profile | tree | New |
ir_profile_view_search |
IR Profile Search | ir.profile | search | New |
ir_property_view |
ir.property.form | ir.property | form | New |
ir_property_view_search |
ir.property.search | ir.property | search | New |
ir_property_view_tree |
ir.property.tree | ir.property | tree | New |
module_form |
ir.module.module.form | ir.module.module | form | New |
module_tree |
ir.module.module.tree | ir.module.module | tree | New |
module_view_kanban |
Apps Kanban | ir.module.module | kanban | New |
onboarding_company_step |
onboarding_company_step | ir.ui.view | qweb | New |
onboarding_confetti |
onboarding_confetti | ir.ui.view | qweb | New |
onboarding_container |
onboarding_container | ir.ui.view | qweb | New |
onboarding_step |
onboarding_step | ir.ui.view | qweb | New |
paperformat_view_form |
paper_format_view_form | report.paperformat | form | New |
paperformat_view_tree |
paper_format_view_tree | report.paperformat | tree | New |
report_irmodeloverview |
report_irmodeloverview | ir.ui.view | qweb | New |
report_irmodulereference |
report_irmodulereference | ir.ui.view | qweb | New |
res_bank_view_search |
res.bank.view.search | res.bank | search | New |
res_config_installer |
Inheritable view for installer objects | res.config.installer | form | New |
res_config_settings_view_form |
res.config.settings.view.form | res.config.settings | form | New |
res_config_view_base |
res.config.view.base | res.config | form | New |
res_lang_form |
res.lang.form | res.lang | form | New |
res_lang_search |
res.lang.search | res.lang | search | New |
res_lang_tree |
res.lang.tree | res.lang | tree | New |
res_partner_category_view_search |
res.partner.category.view.search | res.partner.category | search | New |
res_partner_industry_view_form |
Industry | res.partner.industry | form | New |
res_partner_industry_view_search |
res.partner.industry.view.search | res.partner.industry | search | New |
res_partner_industry_view_tree |
Industry | res.partner.industry | tree | New |
res_partner_kanban_view |
res.partner.kanban | res.partner | kanban | New |
res_partner_view_form_private |
res.partner.view.form.private | res.partner | form | New |
reset_view_arch_wizard_view |
Reset View Architecture | reset.view.arch.wizard | form | New |
sequence_view |
ir.sequence | form | New | |
sequence_view_tree |
ir.sequence | tree | New | |
user_groups_view |
res.users.groups | res.users | form | Inherits view_users_form |
view_apikeys |
API Keys Listing | res.users.apikeys | tree | New |
view_attachment_form |
ir.attachment | form | New | |
view_attachment_search |
ir.attachment | search | New | |
view_attachment_tree |
ir.attachment | tree | New | |
view_base_import_language |
Import Translation | base.language.import | form | New |
view_base_language_install |
Load a Translation | base.language.install | form | New |
view_base_module_uninstall |
Uninstall module | base.module.uninstall | form | New |
view_base_module_update |
Module Update | base.module.update | form | New |
view_base_module_upgrade |
Module Upgrade | base.module.upgrade | form | New |
view_base_module_upgrade_install |
Module Upgrade Install | base.module.upgrade | form | New |
view_company_form |
res.company.form | res.company | form | New |
view_company_tree |
res.company.tree | res.company | tree | New |
view_country_form |
res.country.form | res.country | form | New |
view_country_group_form |
res.country.group.form | res.country.group | form | New |
view_country_group_tree |
res.country.group.tree | res.country.group | tree | New |
view_country_state_form |
res.country.state.form | res.country.state | form | New |
view_country_state_search |
res.country.state.search | res.country.state | search | New |
view_country_state_tree |
res.country.state.tree | res.country.state | tree | New |
view_country_tree |
res.country.tree | res.country | tree | New |
view_currency_form |
res.currency.form | res.currency | form | New |
view_currency_kanban |
res.currency.kanban | res.currency | kanban | New |
view_currency_rate_form |
res.currency.rate.form | res.currency.rate | form | New |
view_currency_rate_search |
res.currency.rate.search | res.currency.rate | search | New |
view_currency_rate_tree |
res.currency.rate.tree | res.currency.rate | tree | New |
view_currency_search |
res.currency.search | res.currency | search | New |
view_currency_tree |
res.currency.tree | res.currency | tree | New |
view_decimal_precision_form |
Decimal Precision | decimal.precision | form | New |
view_decimal_precision_tree |
Decimal Precision List | decimal.precision | tree | New |
view_groups_form |
res.groups.form | res.groups | form | New |
view_groups_search |
res.groups.search | res.groups | search | New |
view_ir_config_form |
ir.config_parameter | form | New | |
view_ir_config_list |
ir.config_parameter | tree | New | |
view_ir_config_search |
ir.config_parameter | search | New | |
view_ir_mail_server_search |
ir.mail_server | search | New | |
view_model_constraint_form |
ir.model.constraint | form | New | |
view_model_constraint_list |
ir.model.constraint | tree | New | |
view_model_constraint_search |
ir.model.constraint | search | New | |
view_model_data_form |
ir.model.data | form | New | |
view_model_data_list |
ir.model.data | tree | New | |
view_model_data_search |
ir.model.data | search | New | |
view_model_fields_form |
ir.model.fields | form | New | |
view_model_fields_search |
ir.model.fields | search | New | |
view_model_fields_selection_form |
ir.model.fields.selection | form | New | |
view_model_fields_selection_search |
ir.model.fields.selection | search | New | |
view_model_fields_selection_tree |
ir.model.fields.selection | tree | New | |
view_model_fields_tree |
ir.model.fields | tree | New | |
view_model_form |
ir.model | form | New | |
view_model_menu_create |
Create Menu | wizard.ir.model.menu.create | form | New |
view_model_relation_form |
ir.model.relation | form | New | |
view_model_relation_list |
ir.model.relation | tree | New | |
view_model_search |
ir.model | search | New | |
view_model_tree |
ir.model | tree | New | |
view_module_category_form |
ir.module.category.form | ir.module.category | form | New |
view_module_category_tree |
ir.module.category.tree | ir.module.category | tree | New |
view_module_filter |
ir.module.module.list.select | ir.module.module | search | New |
view_partner_address_form |
res.partner.form.address | res.partner | form | New |
view_partner_bank_form |
res.partner.bank.form | res.partner.bank | form | New |
view_partner_bank_search |
res.partner.bank.search | res.partner.bank | search | New |
view_partner_bank_tree |
res.partner.bank.tree | res.partner.bank | tree | New |
view_partner_category_form |
Contact Tags | res.partner.category | form | New |
view_partner_category_list |
Contact Tags | res.partner.category | tree | New |
view_partner_form |
res.partner.form | res.partner | form | New |
view_partner_simple_form |
res.partner.simplified.form | res.partner | form | New |
view_partner_title_form |
res.partner.title.form | res.partner.title | form | New |
view_partner_title_tree |
res.partner.title.tree | res.partner.title | tree | New |
view_partner_tree |
res.partner.tree | res.partner | tree | New |
view_res_bank_form |
res.bank.form | res.bank | form | New |
view_res_bank_tree |
res.bank.tree | res.bank | tree | New |
view_res_company_kanban |
res.company.kanban | res.company | kanban | New |
view_res_partner_filter |
res.partner.select | res.partner | search | New |
view_res_users_kanban |
res.users.kanban | res.users | kanban | New |
view_rule_form |
ir.rule | form | New | |
view_rule_search |
ir.rule | search | New | |
view_rule_tree |
ir.rule | tree | New | |
view_sequence_search |
ir.sequence | search | New | |
view_server_action_form |
Server Action | ir.actions.server | form | New |
view_server_action_search |
ir.actions.server.search | ir.actions.server | search | New |
view_server_action_tree |
Server Actions | ir.actions.server | tree | New |
view_translation_dialog_tree |
ir.translation | tree | New | |
view_translation_form |
ir.translation | form | New | |
view_translation_lang_src_value_tree |
ir.translation | tree | New | |
view_translation_lang_value_tree |
ir.translation | tree | New | |
view_translation_search |
ir.translation | search | New | |
view_translation_tree |
ir.translation | tree | New | |
view_users_form |
res.users.form | res.users | form | New |
view_users_form_simple_modif |
res.users.preferences.form | res.users | form | New |
view_users_search |
res.users.search | res.users | search | New |
view_users_simple_form |
res.users.simplified.form | res.users | form | New |
view_users_tree |
res.users.tree | res.users | tree | New |
view_view_custom_form |
ir.ui.view.custom | form | New | |
view_view_custom_search |
ir.ui.view.custom | search | New | |
view_view_custom_tree |
ir.ui.view.custom | tree | New | |
view_view_form |
ir.ui.view | form | New | |
view_view_search |
ir.ui.view | search | New | |
view_view_tree |
ir.ui.view | tree | New | |
view_window_action_form |
ir.actions.windows.form | ir.actions.act_window | form | New |
view_window_action_search |
ir.actions.windows.search | ir.actions.act_window | search | New |
view_window_action_tree |
ir.actions.windows.tree | ir.actions.act_window | tree | New |
wizard_lang_export |
Export Translations | base.language.export | form | New |
wizard_update_translations |
Generate Missing Terms | base.update.translations | form | New |
| Route(s) | Handler | Auth | Type | Methods | Flags |
|---|---|---|---|---|---|
/jsonrpc |
RPC.jsonrpc |
none | json | ALL | |
/xmlrpc/<service> |
RPC.xmlrpc_1 |
none | http | POST | csrf off |
/xmlrpc/2/<service> |
RPC.xmlrpc_2 |
none | http | POST | csrf off |
No new fields.
Public methods (0)No public methods.
avatar_1024
Image
compute='_compute_avatar_1024'
max_height=1024
max_width=1024
args: 'Avatar 1024'
avatar_128
Image
compute='_compute_avatar_128'
max_height=128
max_width=128
args: 'Avatar 128'
avatar_1920
Image
compute='_compute_avatar_1920'
max_height=1920
max_width=1920
args: 'Avatar'
avatar_256
Image
compute='_compute_avatar_256'
max_height=256
max_width=256
args: 'Avatar 256'
avatar_512
Image
compute='_compute_avatar_512'
max_height=512
max_width=512
args: 'Avatar 512'
No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (1)create(self, vals_list)
duration
Selection
string='Enable profiling for'
args: [('minutes_5', '5 Minutes'), ('hours_1', '1 Hour'), ('days_1', '1 Day'), ('months_1', '1 Month')]
expiration
Datetime
compute='_compute_expiration'
readonly=False
store=True
args: 'Enable profiling until'
submit(self)
data
Binary
attachment=False
readonly=True
args: 'File'
format
Selection
default='po'
required=True
string='File Format'
args: [('csv', 'CSV File'), ('po', 'PO File'), ('tgz', 'TGZ Archive')]
lang
Selection
default=NEW_LANG_KEY
required=True
string='Language'
args: _get_languages
modules
Many2many → ir.module.module
domain=[('state', '=', 'installed')]
string='Apps To Export'
args: 'ir.module.module', 'rel_modules_langexport', 'wiz_id', 'module_id'
name
Char
readonly=True
args: 'File Name'
state
Selection
default='choose'
args: [('choose', 'choose'), ('get', 'get')]
act_getfile(self)
code
Char
help='ISO Language and Country code, e.g. en_US'
required=True
size=6
args: 'ISO Code'
data
Binary
attachment=False
required=True
args: 'File'
filename
Char
required=True
args: 'File Name'
name
Char
required=True
args: 'Language Name'
overwrite
Boolean
default=True
help='If you enable this option, existing translations (including custom ones) will be overwritten and replaced by those in this file'
args: 'Overwrite Existing Terms'
import_lang(self)
lang
Selection
default=_default_language
required=True
string='Language'
args: _get_languages
overwrite
Boolean
default=True
help='If you check this box, your customized translations will be overwritten and replaced by the official ones.'
args: 'Overwrite Existing Terms'
state
Selection
default='init'
readonly=True
string='Status'
args: [('init', 'init'), ('done', 'done')]
lang_install(self)
reload(self)
switch_lang(self)
model_ids
Many2many → ir.model
compute='_compute_model_ids'
string='Impacted data models'
args: 'ir.model'
module_id
Many2one → ir.module.module
domain=[('state', 'in', ['installed', 'to upgrade', 'to install'])]
ondelete='cascade'
readonly=True
required=True
string='Module'
args: 'ir.module.module'
module_ids
Many2many → ir.module.module
compute='_compute_module_ids'
string='Impacted modules'
args: 'ir.module.module'
show_all
Boolean
action_uninstall(self)
added
Integer
readonly=True
args: 'Number of modules added'
state
Selection
default='init'
readonly=True
args: [('init', 'init'), ('done', 'done')], 'Status'
updated
Integer
readonly=True
args: 'Number of modules updated'
action_module_open(self)
update_module(self)
module_info
Text
default=_default_module_info
readonly=True
args: 'Apps to Update'
config(self)
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
get_module_list(self)
upgrade_module(self)
upgrade_module_cancel(self)
current_line_id
Many2one → base.partner.merge.line
string='Current Line'
args: 'base.partner.merge.line'
dst_partner_id
Many2one → res.partner
string='Destination Contact'
args: 'res.partner'
exclude_contact
Boolean
exclude_journal_item
Boolean
group_by_email
Boolean
group_by_is_company
Boolean
group_by_name
Boolean
group_by_parent_id
Boolean
group_by_vat
Boolean
line_ids
One2many → base.partner.merge.line
string='Lines'
args: 'base.partner.merge.line', 'wizard_id'
maximum_group
Integer
number_group
Integer
readonly=True
args: 'Group of Contacts'
partner_ids
Many2many → res.partner
context={'active_test': False}
string='Contacts'
args: 'res.partner'
state
Selection
default='option'
readonly=True
required=True
string='State'
args: [('option', 'Option'), ('selection', 'Selection'), ('finished', 'Finished')]
action_merge(self)
action_skip(self)
action_start_automatic_process(self)
action_start_manual_process(self)
action_update_all_process(self)
default_get(self, fields)
parent_migration_process_cb(self)
aggr_ids
Char
required=True
args: 'Ids'
min_id
Integer
wizard_id
Many2one → base.partner.merge.automatic.wizard
No public methods.
lang
Selection
required=True
args: _get_languages, 'Language'
act_update(self)
new_passwd
Char
default=''
string='New Password'
user_id
Many2one → res.users
ondelete='cascade'
required=True
string='User'
args: 'res.users'
user_login
Char
readonly=True
string='User Login'
wizard_id
Many2one → change.password.wizard
ondelete='cascade'
required=True
string='Wizard'
args: 'change.password.wizard'
change_password_button(self)
user_ids
One2many → change.password.user
default=_default_user_ids
string='Users'
args: 'change.password.user', 'wizard_id'
change_password_button(self)
digits
Integer
default=2
required=True
args: 'Digits'
name
Char
index=True
required=True
args: 'Usage'
create(self, vals_list)
precision_get(self, application)
unlink(self)
write(self, data)
No new fields.
Public methods (0)No public methods.
image_1024
Image
max_height=1024
max_width=1024
related='image_1920'
store=True
args: 'Image 1024'
image_128
Image
max_height=128
max_width=128
related='image_1920'
store=True
args: 'Image 128'
image_1920
Image
max_height=1920
max_width=1920
args: 'Image'
image_256
Image
max_height=256
max_width=256
related='image_1920'
store=True
args: 'Image 256'
image_512
Image
max_height=512
max_width=512
related='image_1920'
store=True
args: 'Image 512'
No public methods.
name
Char
string='Action Name'
translate=True
target
Selection
default='new'
required=True
string='Action Target'
args: [('new', 'New Window'), ('self', 'This Window')]
type
Char
default='ir.actions.act_url'
url
Text
required=True
string='Action URL'
No public methods.
context
Char
default={}
help='Context dictionary as Python expression, empty by default (Default: {})'
required=True
string='Context Value'
domain
Char
help='Optional domain filtering of the destination data, as a Python expression'
string='Domain Value'
filter
Boolean
groups_id
Many2many → res.groups
string='Groups'
args: 'res.groups', 'ir_act_window_group_rel', 'act_id', 'gid'
limit
Integer
default=80
help='Default limit for the list view'
name
Char
string='Action Name'
translate=True
res_id
Integer
help="Database ID of record to open in form view, when ``view_mode`` is set to 'form' only"
string='Record ID'
res_model
Char
help='Model name of the object to open in the view window'
required=True
string='Destination Model'
search_view
Text
compute='_compute_search_view'
search_view_id
Many2one → ir.ui.view
string='Search View Ref.'
args: 'ir.ui.view'
target
Selection
default='current'
string='Target Window'
args: [('current', 'Current Window'), ('new', 'New Window'), ('inline', 'Inline Edit'), ('fullscreen', 'Full Screen'), ('main', 'Main action of Current Window')]
type
Char
default='ir.actions.act_window'
usage
Char
help='Used to filter menu and home actions from the user form.'
string='Action Usage'
view_id
Many2one → ir.ui.view
ondelete='set null'
string='View Ref.'
args: 'ir.ui.view'
view_ids
One2many → ir.actions.act_window.view
string='No of Views'
args: 'ir.actions.act_window.view', 'act_window_id'
view_mode
Char
default='tree,form'
help="Comma-separated list of allowed view modes, such as 'form', 'tree', 'calendar', etc. (Default: tree,form)"
required=True
views
Binary
compute='_compute_views'
help='This function field computes the ordered list of views that should be enabled when displaying the result of an action, federating view mode, views and reference view. The result is returned as an ordered list of pairs (view_id,view_mode).'
create(self, vals_list)
exists(self)
read(self, fields=None, load='_classic_read')
unlink(self)
act_window_id
Many2one → ir.actions.act_window
ondelete='cascade'
string='Action'
args: 'ir.actions.act_window'
multi
Boolean
help='If set to true, the action will not be displayed on the right toolbar of a form view.'
string='On Multiple Doc.'
sequence
Integer
view_id
Many2one → ir.ui.view
string='View'
args: 'ir.ui.view'
view_mode
Selection
required=True
string='View Type'
args: VIEW_TYPES
No public methods.
type
Char
default='ir.actions.act_window_close'
No public methods.
binding_model_id
Many2one → ir.model
help='Setting a value makes this action available in the sidebar for the given model.'
ondelete='cascade'
args: 'ir.model'
binding_type
Selection
default='action'
required=True
args: [('action', 'Action'), ('report', 'Report')]
binding_view_types
Char
default='list,form'
help
Html
help='Optional help text for the users with a description of the target view, such as its usage and purpose.'
string='Action Description'
translate=True
name
Char
required=True
type
Char
required=True
string='Action Type'
xml_id
Char
compute='_compute_xml_id'
string='External ID'
create(self, vals_list)
get_bindings(self, model_name)
unlink(self)
write(self, vals)
context
Char
default='{}'
help='Context dictionary as Python expression, empty by default (Default: {})'
required=True
string='Context Value'
name
Char
string='Action Name'
translate=True
params
Binary
compute='_compute_params'
help='Arguments sent to the client along with the view tag'
inverse='_inverse_params'
string='Supplementary arguments'
params_store
Binary
attachment=False
readonly=True
string='Params storage'
res_model
Char
help='Optional model, mostly used for needactions.'
string='Destination Model'
tag
Char
help='An arbitrary string, interpreted by the client according to its own needs and wishes. There is no central tag repository across clients.'
required=True
string='Client action tag'
target
Selection
default='current'
string='Target Window'
args: [('current', 'Current Window'), ('new', 'New Window'), ('fullscreen', 'Full Screen'), ('main', 'Main action of Current Window')]
type
Char
default='ir.actions.client'
No public methods.
attachment
Char
help='This is the filename of the attachment used to store the printing result. Keep empty to not save the printed reports. You can use a python expression with the object and time variables.'
string='Save as Attachment Prefix'
attachment_use
Boolean
help='If enabled, then the second time the user prints with same attachment name, it returns the previous report.'
string='Reload from Attachment'
binding_type
Selection
default='report'
groups_id
Many2many → res.groups
string='Groups'
args: 'res.groups', 'res_groups_report_rel', 'uid', 'gid'
model
Char
required=True
string='Model Name'
model_id
Many2one → ir.model
compute='_compute_model_id'
search='_search_model_id'
string='Model'
args: 'ir.model'
multi
Boolean
help='If set to true, the action will not be displayed on the right toolbar of a form view.'
string='On Multiple Doc.'
name
Char
translate=True
paperformat_id
Many2one → report.paperformat
print_report_name
Char
help="This is the filename of the report going to download. Keep empty to not change the report filename. You can use a python expression with the 'object' and 'time' variables."
translate=True
args: 'Printed Report Name'
report_file
Char
help='The path to the main report file (depending on Report Type) or empty if the content is in another field'
readonly=False
required=False
store=True
string='Report File'
report_name
Char
required=True
string='Template Name'
report_type
Selection
default='qweb-pdf'
help='The type of the report that will be rendered, each one having its own rendering method. HTML means the report will be opened directly in your browser PDF means the report will be rendered using Wkhtmltopdf and downloaded by the user.'
required=True
args: [('qweb-html', 'HTML'), ('qweb-pdf', 'PDF'), ('qweb-text', 'Text')]
type
Char
default='ir.actions.report'
associated_view(self)
barcode(self, barcode_type, value, **kwargs)
check_barcode_encoding(self, barcode, encoding)
create_action(self)
get_available_barcode_masks(self)
get_barcode_check_digit(self, numeric_barcode)
get_paperformat(self)
get_wkhtmltopdf_state(self)
report_action(self, docids, data=None, config=True)
retrieve_attachment(self, record)
unlink_action(self)
child_ids
Many2many → ir.actions.server
help='Child server actions that will be executed. Note that the last return returned action value will be used as global return value.'
string='Child Actions'
args: 'ir.actions.server', 'rel_server_actions', 'server_id', 'action_id'
code
Text
default=DEFAULT_PYTHON_CODE
groups='base.group_system'
help='Write Python code that the action will execute. Some variables are available for use; help about python expression is given in the help tab.'
string='Python Code'
crud_model_id
Many2one → ir.model
help='Model for record creation / update. Set this field only to specify a different model than the base model.'
string='Target Model'
args: 'ir.model'
crud_model_name
Char
readonly=True
related='crud_model_id.model'
string='Target Model Name'
fields_lines
One2many → ir.server.object.lines
copy=True
string='Value Mapping'
args: 'ir.server.object.lines', 'server_id'
groups_id
Many2many → res.groups
string='Groups'
args: 'res.groups', 'ir_act_server_group_rel', 'act_id', 'gid'
link_field_id
Many2one → ir.model.fields
help='Provide the field used to link the newly created record on the record used by the server action.'
string='Link Field'
args: 'ir.model.fields'
model_id
Many2one → ir.model
help='Model on which the server action runs.'
index=True
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
model_name
Char
readonly=True
related='model_id.model'
store=True
string='Model Name'
name
Char
string='Action Name'
translate=True
sequence
Integer
default=5
help='When dealing with multiple actions, the execution order is based on the sequence. Low number means high priority.'
state
Selection
copy=True
default='object_write'
help="Type of server action. The following values are available:\n- 'Execute Python Code': a block of python code that will be executed\n- 'Create': create a new record with new values\n- 'Update a Record': update the values of a record\n- 'Execute several actions': define an action that triggers several other server actions\n- 'Send Email': automatically send an email (Discuss)\n- 'Add Followers': add followers to a record (Discuss)\n- 'Create Next Activity': create an activity (Discuss)"
required=True
string='Action To Do'
args: [('code', 'Execute Python Code'), ('object_create', 'Create a new Record'), ('object_write', 'Update the Record'), ('multi', 'Execute several actions')]
type
Char
default='ir.actions.server'
usage
Selection
default='ir_actions_server'
required=True
string='Usage'
args: [('ir_actions_server', 'Server Action'), ('ir_cron', 'Scheduled Action')]
create_action(self)
run(self)
unlink_action(self)
action_id
Many2one → ir.actions.actions
index=True
required=True
string='Action'
args: 'ir.actions.actions'
name
Char
sequence
Integer
default=10
state
Selection
default='open'
required=True
string='Status'
args: [('open', 'To Do'), ('done', 'Done')]
action_launch(self)
action_open(self)
create(self, vals_list)
ensure_one_open_todo(self)
name_get(self)
unlink(self)
write(self, vals)
active
Boolean
default=True
string='active'
bundle
Char
required=True
string='Bundle name'
directive
Selection
default=APPEND_DIRECTIVE
selection=[(APPEND_DIRECTIVE, 'Append'), (PREPEND_DIRECTIVE, 'Prepend'), (AFTER_DIRECTIVE, 'After'), (BEFORE_DIRECTIVE, 'Before'), (REMOVE_DIRECTIVE, 'Remove'), (REPLACE_DIRECTIVE, 'Replace'), (INCLUDE_DIRECTIVE, 'Include')]
string='Directive'
name
Char
required=True
string='Name'
path
Char
required=True
string='Path (or glob pattern)'
sequence
Integer
default=DEFAULT_SEQUENCE
required=True
string='Sequence'
target
Char
string='Target'
create(self, vals_list)
unlink(self)
write(self, values)
access_token
Char
groups='base.group_user'
args: 'Access Token'
checksum
Char
index=True
readonly=True
size=40
args: 'Checksum/SHA1'
company_id
Many2one → res.company
change_default=True
default=<expr>
string='Company'
args: 'res.company'
datas
Binary
compute='_compute_datas'
inverse='_inverse_datas'
string='File Content (base64)'
db_datas
Binary
attachment=False
args: 'Database Data'
description
Text
file_size
Integer
readonly=True
args: 'File Size'
index_content
Text
prefetch=False
readonly=True
args: 'Indexed Content'
mimetype
Char
readonly=True
args: 'Mime Type'
name
Char
required=True
args: 'Name'
public
Boolean
raw
Binary
compute='_compute_raw'
inverse='_inverse_raw'
string='File Content (raw)'
res_field
Char
readonly=True
args: 'Resource Field'
res_id
Many2oneReference
help='The record id this is attached to.'
model_field='res_model'
readonly=True
args: 'Resource ID'
res_model
Char
help='The database object this attachment will be attached to.'
readonly=True
args: 'Resource Model'
res_name
Char
compute='_compute_res_name'
args: 'Resource Name'
store_fname
Char
type
Selection
change_default=True
default='binary'
help='You can either upload a file from your computer or copy/paste an internet link to your file.'
required=True
string='Type'
args: [('url', 'URL'), ('binary', 'File')]
url
Char
index=True
size=1024
args: 'Url'
action_get(self)
check(self, mode, values=None)
copy(self, default=None)
create(self, vals_list)
force_storage(self)
generate_access_token(self)
get_serve_attachment(self, url, extra_domain=None, extra_fields=None, order=None)
get_serving_groups(self)
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
regenerate_assets_bundles(self)
unlink(self)
write(self, vals)
No new fields.
Public methods (1)power_on(self, *args, **kwargs)
key
Char
index=True
required=True
value
Text
required=True
create(self, vals_list)
get_param(self, key, default=False)
init(self, force=False)
set_param(self, key, value)
unlink(self)
unlink_default_parameters(self)
write(self, vals)
active
Boolean
default=True
cron_name
Char
readonly=False
related='ir_actions_server_id.name'
store=True
args: 'Name'
doall
Boolean
help='Specify if missed occurrences should be executed when the server restarts.'
string='Repeat Missed'
interval_number
Integer
default=1
help='Repeat every x.'
interval_type
Selection
default='months'
string='Interval Unit'
args: [('minutes', 'Minutes'), ('hours', 'Hours'), ('days', 'Days'), ('weeks', 'Weeks'), ('months', 'Months')]
ir_actions_server_id
Many2one → ir.actions.server
delegate=True
ondelete='restrict'
required=True
args: 'ir.actions.server', 'Server action'
lastcall
Datetime
help='Previous time the cron ran successfully, provided to the job through the context on the `lastcall` key'
string='Last Execution Date'
nextcall
Datetime
default=fields.Datetime.now
help='Next planned execution date for this job.'
required=True
string='Next Execution Date'
numbercall
Integer
default=1
help='How many times the method is called,\na negative number indicates no limit.'
string='Number of Calls'
priority
Integer
default=5
help='The priority of the job, as an integer: 0 means higher priority, 10 means lower priority.'
user_id
Many2one → res.users
default=<expr>
required=True
string='Scheduler User'
args: 'res.users'
create(self, values)
default_get(self, fields_list)
method_direct_trigger(self)
toggle(self, model, domain)
try_write(self, values)
unlink(self)
write(self, vals)
call_at
Datetime
cron_id
Many2one → ir.cron
index=True
args: 'ir.cron'
No public methods.
company_id
Many2one → res.company
help='If set, action binding only applies for this company'
index=True
ondelete='cascade'
string='Company'
args: 'res.company'
condition
Char
help='If set, applies the default upon condition.'
args: 'Condition'
field_id
Many2one → ir.model.fields
index=True
ondelete='cascade'
required=True
string='Field'
args: 'ir.model.fields'
json_value
Char
required=True
args: 'Default Value (JSON format)'
user_id
Many2one → res.users
help='If set, action binding only applies for this user.'
index=True
ondelete='cascade'
string='User'
args: 'res.users'
create(self, vals_list)
discard_records(self, records)
discard_values(self, model_name, field_name, values)
get(self, model_name, field_name, user_id=False, company_id=False, condition=False)
get_model_defaults(self, model_name, condition=False)
set(self, model_name, field_name, value, user_id=False, company_id=False, condition=False)
unlink(self)
write(self, vals)
No new fields.
Public methods (1)install_demo(self)
error
Char
string='Error'
module_id
Many2one → ir.module.module
required=True
string='Module'
args: 'ir.module.module'
wizard_id
Many2one → ir.demo_failure.wizard
No public methods.
failure_ids
One2many → ir.demo_failure
readonly=True
string='Demo Installation Failures'
args: 'ir.demo_failure', 'wizard_id'
failures_count
Integer
compute='_compute_failures_count'
done(self)
export_fields
One2many → ir.exports.line
copy=True
string='Export ID'
args: 'ir.exports.line', 'export_id'
name
Char
string='Export Name'
resource
Char
index=True
No public methods.
export_id
Many2one → ir.exports
index=True
ondelete='cascade'
string='Export'
args: 'ir.exports'
name
Char
string='Field Name'
No public methods.
No new fields.
Public methods (3)db_id_for(self, model, field, subfield, value)
for_model(self, model, fromtype=str)
to_field(self, model, field, fromtype=str)
action_id
Many2one → ir.actions.actions
help='The menu action this filter applies to. When left empty the filter applies to all menus for this model.'
ondelete='cascade'
string='Action'
args: 'ir.actions.actions'
active
Boolean
default=True
context
Text
default='{}'
required=True
domain
Text
default='[]'
required=True
is_default
Boolean
string='Default Filter'
model_id
Selection
required=True
selection='_list_all_models'
string='Model'
name
Char
required=True
string='Filter Name'
translate=True
sort
Text
default='[]'
required=True
user_id
Many2one → res.users
help='The user this filter is private to. When left empty the filter is public and available to all users.'
ondelete='cascade'
string='User'
args: 'res.users'
copy(self, default=None)
create_or_replace(self, vals)
get_filters(self, model, action_id=None)
write(self, vals)
No new fields.
Public methods (2)binary_content(self, xmlid=None, model='ir.attachment', id=None, field='datas', unique=False, filename=None, filename_field='name', download=False, mimetype=None, default_mimetype='application/octet-stream', access_token=None)
routing_map(cls, key=None)
create_date
Datetime
readonly=True
string='Created on'
create_uid
Integer
readonly=True
string='Created by'
dbname
Char
index=True
string='Database Name'
func
Char
required=True
string='Function'
level
Char
index=True
line
Char
required=True
message
Text
required=True
name
Char
required=True
path
Char
required=True
type
Selection
index=True
required=True
args: [('client', 'Client'), ('server', 'Server')]
write_date
Datetime
readonly=True
string='Last Updated on'
write_uid
Integer
readonly=True
string='Last Updated by'
init(self)
active
Boolean
default=True
from_filter
Char
help='Define for which email address or domain this server can be used.\ne.g.: "notification@odoo.com" or "odoo.com"'
args: 'From Filter'
name
Char
index=True
required=True
string='Description'
sequence
Integer
default=10
help='When no specific mail server is requested for a mail, the highest priority one is used. Default priority is 10 (smaller number = higher priority)'
string='Priority'
smtp_authentication
Selection
default='login'
required=True
string='Authenticate with'
args: [('login', 'Username'), ('certificate', 'SSL Certificate')]
smtp_debug
Boolean
help='If enabled, the full output of SMTP sessions will be written to the server log at DEBUG level (this is very verbose and may include confidential info!)'
string='Debugging'
smtp_encryption
Selection
default='none'
help='Choose the connection encryption scheme:\n- None: SMTP sessions are done in cleartext.\n- TLS (STARTTLS): TLS encryption is requested at start of SMTP session (Recommended)\n- SSL/TLS: SMTP sessions are encrypted with SSL/TLS through a dedicated port (default: 465)'
required=True
string='Connection Security'
args: [('none', 'None'), ('starttls', 'TLS (STARTTLS)'), ('ssl', 'SSL/TLS')]
smtp_host
Char
help='Hostname or IP of SMTP server'
required=True
string='SMTP Server'
smtp_pass
Char
groups='base.group_system'
help='Optional password for SMTP authentication'
string='Password'
smtp_port
Integer
default=25
help='SMTP Port. Usually 465 for SSL, and 25 or 587 for other cases.'
required=True
string='SMTP Port'
smtp_ssl_certificate
Binary
attachment=False
groups='base.group_system'
help='SSL certificate used for authentication'
args: 'SSL Certificate'
smtp_ssl_private_key
Binary
attachment=False
groups='base.group_system'
help='SSL private key used for authentication'
args: 'SSL Private Key'
smtp_user
Char
groups='base.group_system'
help='Optional username for SMTP authentication'
string='Username'
build_email(self, email_from, email_to, subject, body, email_cc=None, email_bcc=None, reply_to=False, attachments=None, message_id=None, references=None, object_id=False, subtype='plain', headers=None, body_alternative=None, subtype_alternative='plain')
connect(self, host=None, port=None, user=None, password=None, encryption=None, smtp_from=None, ssl_certificate=None, ssl_private_key=None, smtp_debug=False, mail_server_id=None)
send_email(self, message, mail_server_id=None, smtp_server=None, smtp_port=None, smtp_user=None, smtp_password=None, smtp_encryption=None, smtp_ssl_certificate=None, smtp_ssl_private_key=None, smtp_debug=False, smtp_session=None)
test_smtp_connection(self)
access_ids
One2many → ir.model.access
string='Access'
args: 'ir.model.access', 'model_id'
count
Integer
compute='_compute_count'
help='Total number of records in this model'
string='Count (Incl. Archived)'
field_id
One2many → ir.model.fields
copy=True
default=_default_field_id
required=True
string='Fields'
args: 'ir.model.fields', 'model_id'
info
Text
string='Information'
inherited_model_ids
Many2many → ir.model
compute='_inherited_models'
help='The list of models that extends the current model.'
string='Inherited models'
args: 'ir.model'
model
Char
default='x_'
index=True
required=True
modules
Char
compute='_in_modules'
help='List of modules in which the object is defined or inherited'
string='In Apps'
name
Char
required=True
string='Model Description'
translate=True
order
Char
default='id'
help='SQL expression for ordering records in the model; e.g. "x_sequence asc, id desc"'
required=True
string='Order'
rule_ids
One2many → ir.rule
string='Record Rules'
args: 'ir.rule', 'model_id'
state
Selection
default='manual'
readonly=True
string='Type'
args: [('manual', 'Custom Object'), ('base', 'Base Object')]
transient
Boolean
string='Transient Model'
view_ids
One2many → ir.ui.view
compute='_view_ids'
string='Views'
args: 'ir.ui.view'
create(self, vals)
name_create(self, name)
unlink(self)
write(self, vals)
active
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).'
group_id
Many2one → res.groups
index=True
ondelete='restrict'
string='Group'
args: 'res.groups'
model_id
Many2one → ir.model
index=True
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
name
Char
index=True
required=True
perm_create
Boolean
string='Create Access'
perm_read
Boolean
string='Read Access'
perm_unlink
Boolean
string='Delete Access'
perm_write
Boolean
string='Write Access'
call_cache_clearing_methods(self)
check(self, model, mode='read', raise_exception=True)
check_group(self, model, mode, group_ids)
check_groups(self, group)
create(self, vals_list)
group_names_with_access(self, model_name, access_mode)
register_cache_clearing_method(cls, model, method)
unlink(self)
unregister_cache_clearing_method(cls, model, method)
write(self, values)
create_date
Datetime
definition
Char
help='PostgreSQL constraint definition'
message
Char
help='Error message returned when the constraint is violated.'
translate=True
model
Many2one → ir.model
index=True
ondelete='cascade'
required=True
args: 'ir.model'
module
Many2one → ir.module.module
index=True
ondelete='cascade'
required=True
args: 'ir.module.module'
name
Char
help='PostgreSQL constraint or foreign key name.'
index=True
required=True
string='Constraint'
type
Char
help='Type of the constraint: `f` for a foreign key, `u` for other constraints.'
index=True
required=True
size=1
string='Constraint Type'
write_date
Datetime
copy(self, default=None)
unlink(self)
complete_name
Char
compute='_compute_complete_name'
string='Complete ID'
model
Char
required=True
string='Model Name'
module
Char
default=''
required=True
name
Char
help='External Key/Identifier that can be used for data integration with third-party systems'
required=True
string='External Identifier'
noupdate
Boolean
default=False
string='Non Updatable'
reference
Char
compute='_compute_reference'
readonly=True
store=False
string='Reference'
res_id
Many2oneReference
help='ID of the target record in the database'
model_field='model'
string='Record ID'
check_object_reference(self, module, xml_id, raise_on_access_error=False)
name_get(self)
toggle_noupdate(self, model, res_id)
unlink(self)
column1
Char
help='Column referring to the record in the model table'
string='Column 1'
column2
Char
help='Column referring to the record in the comodel table'
string='Column 2'
complete_name
Char
index=True
compute
Text
help="Code to compute the value of the field.\nIterate on the recordset 'self' and assign the field's value:\n\n for record in self:\n record['size'] = len(record.name)\n\nModules time, datetime, dateutil are available."
copied
Boolean
compute='_compute_copied'
help='Whether the value is copied when duplicating a record.'
readonly=False
store=True
string='Copied'
depends
Char
help='Dependencies of compute method; a list of comma-separated field names, like\n\n name, partner_id.name'
string='Dependencies'
domain
Char
default='[]'
help="The optional domain to restrict possible values for relationship fields, specified as a Python expression defining a list of triplets. For example: [('color','=','red')]"
field_description
Char
default=''
required=True
string='Field Label'
translate=True
group_expand
Boolean
help="If checked, all the records of the target model will be included\nin a grouped result (e.g. 'Group By' filters, Kanban columns, etc.).\nNote that it can significantly reduce performance if the target model\nof the field contains a lot of records; usually used on models with\nfew records (e.g. Stages, Job Positions, Event Types, etc.)."
string='Expand Groups'
groups
Many2many → res.groups
help
Text
string='Field Help'
translate=True
index
Boolean
string='Indexed'
model
Char
help='The technical name of the model this field belongs to'
index=True
required=True
string='Model Name'
model_id
Many2one → ir.model
help='The model this field belongs to'
index=True
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
modules
Char
compute='_in_modules'
help='List of modules in which the field is defined'
string='In Apps'
name
Char
default='x_'
index=True
required=True
string='Field Name'
on_delete
Selection
default='set null'
help='On delete property for many2one fields'
string='On Delete'
args: [('cascade', 'Cascade'), ('set null', 'Set NULL'), ('restrict', 'Restrict')]
readonly
Boolean
related
Char
help='The corresponding related field, if any. This must be a dot-separated list of field names.'
string='Related Field'
related_field_id
Many2one → ir.model.fields
compute='_compute_related_field_id'
ondelete='cascade'
store=True
string='Related field'
args: 'ir.model.fields'
relation
Char
help='For relationship fields, the technical name of the target model'
string='Related Model'
relation_field
Char
help='For one2many fields, the field on the target model that implement the opposite many2one relationship'
relation_field_id
Many2one → ir.model.fields
compute='_compute_relation_field_id'
ondelete='cascade'
store=True
string='Relation field'
args: 'ir.model.fields'
relation_table
Char
help='Used for custom many2many fields to define a custom relation table name'
required
Boolean
selectable
Boolean
default=True
selection
Char
compute='_compute_selection'
inverse='_inverse_selection'
string='Selection Options (Deprecated)'
selection_ids
One2many → ir.model.fields.selection
copy=True
string='Selection Options'
args: 'ir.model.fields.selection', 'field_id'
size
Integer
state
Selection
default='manual'
index=True
readonly=True
required=True
string='Type'
args: [('manual', 'Custom Field'), ('base', 'Base Field')]
store
Boolean
default=True
help='Whether the value is stored in the database.'
string='Stored'
translate
Boolean
help='Whether values for this field can be translated (enables the translation mechanism for that field)'
string='Translatable'
ttype
Selection
required=True
selection=FIELD_TYPES
string='Field Type'
create(self, vals)
name_get(self)
unlink(self)
write(self, vals)
field_id
Many2one → ir.model.fields
domain=[('ttype', 'in', ['selection', 'reference'])]
index=True
ondelete='cascade'
required=True
args: 'ir.model.fields'
name
Char
required=True
translate=True
sequence
Integer
default=1000
value
Char
required=True
create(self, vals_list)
unlink(self)
write(self, vals)
create_date
Datetime
model
Many2one → ir.model
index=True
ondelete='cascade'
required=True
args: 'ir.model'
module
Many2one → ir.module.module
index=True
ondelete='cascade'
required=True
args: 'ir.module.module'
name
Char
help='PostgreSQL table name implementing a many2many relation.'
index=True
required=True
string='Relation Name'
write_date
Datetime
No public methods.
No new fields.
Public methods (2)unlink(self)
write(self, values)
child_ids
One2many → ir.module.category
string='Child Applications'
args: 'ir.module.category', 'parent_id'
description
Text
string='Description'
translate=True
exclusive
Boolean
string='Exclusive'
module_ids
One2many → ir.module.module
string='Modules'
args: 'ir.module.module', 'category_id'
module_nr
Integer
compute='_compute_module_nr'
string='Number of Apps'
name
Char
index=True
required=True
string='Name'
translate=True
parent_id
Many2one → ir.module.category
index=True
string='Parent Application'
args: 'ir.module.category'
sequence
Integer
string='Sequence'
visible
Boolean
default=True
string='Visible'
xml_id
Char
compute='_compute_xml_id'
string='External ID'
No public methods.
application
Boolean
readonly=True
args: 'Application'
author
Char
readonly=True
args: 'Author'
auto_install
Boolean
help='An auto-installable module is automatically installed by the system when all its dependencies are satisfied. If the module has no dependency, it is always installed.'
args: 'Automatic Installation'
category_id
Many2one → ir.module.category
index=True
readonly=True
string='Category'
args: 'ir.module.category'
contributors
Text
readonly=True
args: 'Contributors'
demo
Boolean
default=False
readonly=True
args: 'Demo Data'
dependencies_id
One2many → ir.module.module.dependency
readonly=True
string='Dependencies'
args: 'ir.module.module.dependency', 'module_id'
description
Text
readonly=True
translate=True
args: 'Description'
description_html
Html
compute='_get_desc'
args: 'Description HTML'
exclusion_ids
One2many → ir.module.module.exclusion
readonly=True
string='Exclusions'
args: 'ir.module.module.exclusion', 'module_id'
has_iap
Boolean
compute='_compute_has_iap'
icon
Char
icon_image
Binary
compute='_get_icon_image'
string='Icon'
installed_version
Char
compute='_get_latest_version'
args: 'Latest Version'
latest_version
Char
readonly=True
args: 'Installed Version'
license
Selection
default='LGPL-3'
readonly=True
string='License'
args: [('GPL-2', 'GPL Version 2'), ('GPL-2 or any later version', 'GPL-2 or later version'), ('GPL-3', 'GPL Version 3'), ('GPL-3 or any later version', 'GPL-3 or later version'), ('AGPL-3', 'Affero GPL-3'), ('LGPL-3', 'LGPL Version 3'), ('Other OSI approved licence', 'Other OSI Approved License'), ('OEEL-1', 'Odoo Enterprise Edition License v1.0'), ('OPL-1', 'Odoo Proprietary License v1.0'), ('Other proprietary', 'Other Proprietary')]
maintainer
Char
readonly=True
args: 'Maintainer'
menus_by_module
Text
compute='_get_views'
store=True
string='Menus'
name
Char
index=True
readonly=True
required=True
args: 'Technical Name'
published_version
Char
readonly=True
args: 'Published Version'
reports_by_module
Text
compute='_get_views'
store=True
string='Reports'
sequence
Integer
default=100
args: 'Sequence'
shortdesc
Char
readonly=True
translate=True
args: 'Module Name'
state
Selection
default='uninstallable'
index=True
readonly=True
string='Status'
args: STATES
summary
Char
readonly=True
translate=True
args: 'Summary'
to_buy
Boolean
default=False
args: 'Odoo Enterprise Module'
url
Char
readonly=True
args: 'URL'
views_by_module
Text
compute='_get_views'
store=True
string='Views'
website
Char
readonly=True
args: 'Website'
button_immediate_install(self)
button_immediate_uninstall(self)
button_immediate_upgrade(self)
button_install(self)
button_install_cancel(self)
button_uninstall(self)
button_uninstall_cancel(self)
button_uninstall_wizard(self)
button_upgrade(self)
button_upgrade_cancel(self)
check_external_dependencies(cls, module_name, newstate='to install')
create(self, vals)
download(self, download=True)
downstream_dependencies(self, known_deps=None, exclude_states=('uninstalled', 'uninstallable', 'to remove'))
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
get_apps_server(self)
get_module_info(cls, name)
get_values_from_terp(terp)
install_from_urls(self, urls)
module_uninstall(self)
next(self)
search_panel_select_range(self, field_name, **kwargs)
unlink(self)
update_list(self)
upstream_dependencies(self, known_deps=None, exclude_states=('installed', 'uninstallable', 'to remove'))
auto_install_required
Boolean
default=True
help='Whether this dependency blocks automatic installation of the dependent'
depend_id
Many2one → ir.module.module
compute='_compute_depend'
search='_search_depend'
args: 'ir.module.module', 'Dependency'
module_id
Many2one → ir.module.module
ondelete='cascade'
args: 'ir.module.module', 'Module'
name
Char
index=True
state
Selection
compute='_compute_state'
string='Status'
args: DEP_STATES
No public methods.
exclusion_id
Many2one → ir.module.module
compute='_compute_exclusion'
search='_search_exclusion'
args: 'ir.module.module', 'Exclusion Module'
module_id
Many2one → ir.module.module
ondelete='cascade'
args: 'ir.module.module', 'Module'
name
Char
index=True
state
Selection
compute='_compute_state'
string='Status'
args: DEP_STATES
No public methods.
create_date
Datetime
duration
Float
entry_count
Integer
init_stack_trace
Text
prefetch=False
args: 'Initial stack trace'
name
Char
qweb
Text
prefetch=False
args: 'Qweb'
session
Char
index=True
args: 'Session'
speedscope
Binary
compute='_compute_speedscope'
args: 'Speedscope'
speedscope_url
Text
compute='_compute_speedscope_url'
args: 'Open'
sql
Text
prefetch=False
args: 'Sql'
traces_async
Text
prefetch=False
args: 'Traces Async'
traces_sync
Text
prefetch=False
args: 'Traces Sync'
set_profiling(self, profile=None, collectors=None, params=None)
company_id
Many2one → res.company
index=True
string='Company'
args: 'res.company'
fields_id
Many2one → ir.model.fields
ondelete='cascade'
required=True
string='Field'
args: 'ir.model.fields'
name
Char
index=True
res_id
Char
help='If not set, acts as a default value for new resources'
index=True
string='Resource'
type
Selection
default='many2one'
index=True
required=True
args: [('char', 'Char'), ('float', 'Float'), ('boolean', 'Boolean'), ('integer', 'Integer'), ('text', 'Text'), ('binary', 'Binary'), ('many2one', 'Many2One'), ('date', 'Date'), ('datetime', 'DateTime'), ('selection', 'Selection')]
value_binary
Binary
attachment=False
value_datetime
Datetime
value_float
Float
value_integer
Integer
value_reference
Char
value_text
Text
create(self, vals_list)
get_by_record(self)
init(self)
search_multi(self, name, model, operator, value)
unlink(self)
write(self, values)
No new fields.
Public methods (1)get_asset_bundle(self, bundle_name, files, env=None, css=True, js=True)
No new fields.
Public methods (5)attributes(self, record, field_name, options, values=None)
get_available_options(self)
record_to_html(self, record, field_name, options)
user_lang(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options=None)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (1)record_to_html(self, record, field_name, options)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
active
Boolean
default=True
help='If you uncheck the active field, it will disable the record rule without deleting it (if you delete a native record rule, it may be re-created when you reload the module).'
domain_force
Text
string='Domain'
groups
Many2many → res.groups
ondelete='restrict'
args: 'res.groups', 'rule_group_rel', 'rule_group_id', 'group_id'
model_id
Many2one → ir.model
index=True
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
name
Char
index=True
perm_create
Boolean
default=True
string='Apply for Create'
perm_read
Boolean
default=True
string='Apply for Read'
perm_unlink
Boolean
default=True
string='Apply for Delete'
perm_write
Boolean
default=True
string='Apply for Write'
clear_cache(self)
create(self, vals_list)
domain_get(self, model_name, mode='read')
unlink(self)
write(self, vals)
active
Boolean
default=True
code
Char
string='Sequence Code'
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
date_range_ids
One2many → ir.sequence.date_range
string='Subsequences'
args: 'ir.sequence.date_range', 'sequence_id'
implementation
Selection
default='standard'
help="While assigning a sequence number to a record, the 'no gap' sequence implementation ensures that each previous sequence number has been assigned already. While this sequence implementation will not skip any sequence number upon assignment, there can still be gaps in the sequence if records are deleted. The 'no gap' implementation is slower than the standard one."
required=True
string='Implementation'
args: [('standard', 'Standard'), ('no_gap', 'No gap')]
name
Char
required=True
number_increment
Integer
default=1
help='The next number of the sequence will be incremented by this number'
required=True
string='Step'
number_next
Integer
default=1
help='Next number of this sequence'
required=True
string='Next Number'
number_next_actual
Integer
compute='_get_number_next_actual'
help='Next number that will be used. This number can be incremented frequently so the displayed value might already be obsolete'
inverse='_set_number_next_actual'
string='Actual Next Number'
padding
Integer
default=0
help="Odoo will automatically adds some '0' on the left of the 'Next Number' to get the required padding size."
required=True
string='Sequence Size'
prefix
Char
help='Prefix value of the record for the sequence'
trim=False
suffix
Char
help='Suffix value of the record for the sequence'
trim=False
use_date_range
Boolean
string='Use subsequences per date_range'
create(self, values)
get(self, code)
get_id(self, sequence_code_or_id, code_or_id='id')
get_next_char(self, number_next)
next_by_code(self, sequence_code, sequence_date=None)
next_by_id(self, sequence_date=None)
unlink(self)
write(self, values)
date_from
Date
required=True
string='From'
date_to
Date
required=True
string='To'
number_next
Integer
default=1
help='Next number of this sequence'
required=True
string='Next Number'
number_next_actual
Integer
compute='_get_number_next_actual'
help='Next number that will be used. This number can be incremented frequently so the displayed value might already be obsolete'
inverse='_set_number_next_actual'
string='Actual Next Number'
sequence_id
Many2one → ir.sequence
ondelete='cascade'
required=True
string='Main Sequence'
args: 'ir.sequence'
create(self, values)
default_get(self, fields)
unlink(self)
write(self, values)
col1
Many2one → ir.model.fields
ondelete='cascade'
required=True
string='Field'
args: 'ir.model.fields'
evaluation_type
Selection
change_default=True
default='value'
required=True
args: [('value', 'Value'), ('reference', 'Reference'), ('equation', 'Python expression')], 'Evaluation Type'
resource_ref
Reference
compute='_compute_resource_ref'
inverse='_set_resource_ref'
selection='_selection_target_model'
string='Record'
server_id
Many2one → ir.actions.server
ondelete='cascade'
string='Related Server Action'
args: 'ir.actions.server'
value
Text
help='Expression containing a value specification. \nWhen Formula type is selected, this field may be a Python expression that can use the same values as for the code field on the server action.\nIf Value type is selected, the value will be used directly without evaluation.'
required=True
eval_value(self, eval_context=None)
comments
Text
index=True
string='Translation comments'
lang
Selection
selection='_get_languages'
string='Language'
validate=False
module
Char
help='Module this term belongs to'
index=True
name
Char
required=True
string='Translated field'
res_id
Integer
index=True
string='Record ID'
src
Text
string='Internal Source'
state
Selection
default='to_translate'
help='Automatically set to let administators find new terms that might need to be translated'
string='Status'
args: [('to_translate', 'To Translate'), ('inprogress', 'Translation in Progress'), ('translated', 'Translated')]
type
Selection
index=True
string='Type'
args: TRANSLATION_TYPE
value
Text
string='Translation Value'
check(self, mode)
create(self, vals_list)
get_field_help(self, model_name)
get_field_selection(self, model_name, field_name)
get_field_string(self, model_name)
get_technical_translations(self, model_name)
get_translations_for_webclient(self, mods, lang)
get_web_translations_hash(self, mods, lang)
insert_missing(self, field, records)
translate_fields(self, model, id, field=None)
unlink(self)
write(self, vals)
action
Reference
selection=[('ir.actions.report', 'ir.actions.report'), ('ir.actions.act_window', 'ir.actions.act_window'), ('ir.actions.act_url', 'ir.actions.act_url'), ('ir.actions.server', 'ir.actions.server'), ('ir.actions.client', 'ir.actions.client')]
active
Boolean
default=True
child_id
One2many → ir.ui.menu
string='Child IDs'
args: 'ir.ui.menu', 'parent_id'
complete_name
Char
compute='_compute_complete_name'
recursive=True
string='Full Path'
groups_id
Many2many → res.groups
help="If you have groups, the visibility of this menu will be based on these groups. If this field is empty, Odoo will compute visibility based on the related object's read access."
string='Groups'
args: 'res.groups', 'ir_ui_menu_group_rel', 'menu_id', 'gid'
name
Char
required=True
string='Menu'
translate=True
parent_id
Many2one → ir.ui.menu
index=True
ondelete='restrict'
string='Parent Menu'
args: 'ir.ui.menu'
parent_path
Char
index=True
sequence
Integer
default=10
web_icon
Char
string='Web Icon File'
web_icon_data
Binary
attachment=True
string='Web Icon Image'
copy(self, default=None)
create(self, vals_list)
get_user_roots(self)
load_menus(self, debug)
load_menus_root(self)
name_get(self)
read_image(self, path)
unlink(self)
write(self, values)
active
Boolean
default=True
help='If this view is inherited,\n* if True, the view always extends its parent\n* if False, the view currently does not extend its parent but can be enabled\n '
arch
Text
compute='_compute_arch'
help='This field should be used when accessing view arch. It will use translation.\n Note that it will read `arch_db` or `arch_fs` if in dev-xml mode.'
inverse='_inverse_arch'
string='View Architecture'
arch_base
Text
compute='_compute_arch_base'
help='This field is the same as `arch` field without translations'
inverse='_inverse_arch_base'
string='Base View Architecture'
arch_db
Text
help='This field stores the view arch.'
string='Arch Blob'
translate=xml_translate
arch_fs
Char
help='File from where the view originates.\n Useful to (hard) reset broken views or to read arch from file in dev-xml mode.'
string='Arch Filename'
arch_prev
Text
help='This field will save the current `arch_db` before writing on it.\n Useful to (soft) reset a broken view.'
string='Previous View Architecture'
arch_updated
Boolean
string='Modified Architecture'
field_parent
Char
string='Child Field'
groups_id
Many2many → res.groups
help='If this field is empty, the view applies to all users. Otherwise, the view applies to the users of those groups only.'
string='Groups'
args: 'res.groups', 'ir_ui_view_group_rel', 'view_id', 'group_id'
inherit_children_ids
One2many → ir.ui.view
string='Views which inherit from this one'
args: 'ir.ui.view', 'inherit_id'
inherit_id
Many2one → ir.ui.view
index=True
ondelete='restrict'
string='Inherited View'
args: 'ir.ui.view'
key
Char
mode
Selection
default='primary'
help="Only applies if this view inherits from an other one (inherit_id is not False/Null).\n\n* if extension (default), if this view is requested the closest primary view\nis looked up (via inherit_id), then all views inheriting from it with this\nview's model are applied\n* if primary, the closest primary view is fully resolved (even if it uses a\ndifferent model than this one), then this view's inheritance specs\n(<xpath/>) are applied, and the result is used as if it were this view's\nactual arch.\n"
required=True
string='View inheritance mode'
args: [('primary', 'Base view'), ('extension', 'Extension View')]
model
Char
index=True
model_data_id
Many2one → ir.model.data
compute='_compute_model_data_id'
search='_search_model_data_id'
string='Model Data'
args: 'ir.model.data'
name
Char
required=True
string='View Name'
priority
Integer
default=16
required=True
string='Sequence'
type
Selection
string='View Type'
args: [('tree', 'Tree'), ('form', 'Form'), ('graph', 'Graph'), ('pivot', 'Pivot'), ('calendar', 'Calendar'), ('gantt', 'Gantt'), ('kanban', 'Kanban'), ('search', 'Search'), ('qweb', 'QWeb')]
xml_id
Char
compute='_compute_xml_id'
help='ID of the view defined in xml file'
string='External ID'
apply_inheritance_specs(self, source, specs_tree, pre_locate=<expr>)
clear_cache(self)
copy(self, default=None)
create(self, vals_list)
default_view(self, model, view_type)
distribute_branding(self, e, branding=None, parent_xpath='', index_map=ConstantMapping(1))
get_combined_arch(self)
get_view_id(self, template)
get_view_xmlid(self)
inherit_branding(self, specs_tree)
is_node_branded(self, node)
locate_node(self, arch, spec)
open_translations(self)
postprocess_and_fields(self, node, model=None)
read_combined(self, fields=None)
render_public_asset(self, template, values=None)
reset_arch(self, mode='soft')
unlink(self)
write(self, vals)
arch
Text
required=True
string='View Architecture'
ref_id
Many2one → ir.ui.view
index=True
ondelete='cascade'
required=True
string='Original View'
args: 'ir.ui.view'
user_id
Many2one → res.users
index=True
ondelete='cascade'
required=True
string='User'
args: 'res.users'
name_get(self)
No new fields.
Public methods (0)No public methods.
image
Char
string='Preview image src'
name
Char
pdf
Char
string='Preview pdf src'
sequence
Integer
default=50
view_id
Many2one → ir.ui.view
required=True
args: 'ir.ui.view', 'Document Template'
No public methods.
default
Boolean
disable_shrinking
Boolean
dpi
Integer
default=90
required=True
args: 'Output DPI'
format
Selection
default='A4'
help='Select Proper Paper size'
args: <expr>, 'Paper size'
header_line
Boolean
default=False
args: 'Display a header line'
header_spacing
Integer
default=35
args: 'Header spacing'
margin_bottom
Float
default=20
args: 'Bottom Margin (mm)'
margin_left
Float
default=7
args: 'Left Margin (mm)'
margin_right
Float
default=7
args: 'Right Margin (mm)'
margin_top
Float
default=40
args: 'Top Margin (mm)'
name
Char
required=True
args: 'Name'
orientation
Selection
default='Landscape'
args: [('Landscape', 'Landscape'), ('Portrait', 'Portrait')], 'Orientation'
page_height
Integer
default=False
args: 'Page height (mm)'
page_width
Integer
default=False
args: 'Page width (mm)'
print_page_height
Float
compute='_compute_print_page_size'
args: 'Print page height (mm)'
print_page_width
Float
compute='_compute_print_page_size'
args: 'Print page width (mm)'
report_ids
One2many → ir.actions.report
help='Explicitly associated reports'
args: 'ir.actions.report', 'paperformat_id', 'Associated reports'
No public methods.
active
Boolean
default=True
bic
Char
help='Sometimes called BIC or Swift.'
index=True
args: 'Bank Identifier Code'
city
Char
country
Many2one → res.country
email
Char
name
Char
required=True
phone
Char
state
Many2one → res.country.state
domain="[('country_id', '=?', country)]"
args: 'res.country.state', 'Fed. State'
street
Char
street2
Char
zip
Char
name_get(self)
No new fields.
Public methods (0)No public methods.
bank_ids
One2many
readonly=False
related='partner_id.bank_ids'
base_onboarding_company_state
Selection
default='not_done'
string='State of the onboarding company step'
args: [('not_done', 'Not done'), ('just_done', 'Just done'), ('done', 'Done')]
child_ids
One2many → res.company
string='Child Companies'
args: 'res.company', 'parent_id'
city
Char
compute='_compute_address'
inverse='_inverse_city'
company_details
Html
help='Header text displayed at the top of all reports.'
string='Company Details'
company_registry
Char
compute='_compute_company_registry'
readonly=False
store=True
country_id
Many2one → res.country
compute='_compute_address'
inverse='_inverse_country'
string='Country'
args: 'res.country'
currency_id
Many2one → res.currency
default=<expr>
required=True
string='Currency'
args: 'res.currency'
email
Char
readonly=False
related='partner_id.email'
store=True
external_report_layout_id
Many2one → ir.ui.view
favicon
Binary
default=_get_default_favicon
help='This field holds the image used to display a favicon for a given company.'
string='Company Favicon'
font
Selection
default='Lato'
args: [('Lato', 'Lato'), ('Roboto', 'Roboto'), ('Open_Sans', 'Open Sans'), ('Montserrat', 'Montserrat'), ('Oswald', 'Oswald'), ('Raleway', 'Raleway')]
layout_background
Selection
default='Blank'
required=True
args: [('Blank', 'Blank'), ('Geometric', 'Geometric'), ('Custom', 'Custom')]
layout_background_image
Binary
logo
Binary
default=_get_logo
readonly=False
related='partner_id.image_1920'
string='Company Logo'
logo_web
Binary
attachment=False
compute='_compute_logo_web'
store=True
mobile
Char
readonly=False
related='partner_id.mobile'
store=True
name
Char
readonly=False
related='partner_id.name'
required=True
store=True
string='Company Name'
paperformat_id
Many2one → report.paperformat
default=<expr>
args: 'report.paperformat', 'Paper format'
parent_id
Many2one → res.company
index=True
string='Parent Company'
args: 'res.company'
partner_id
Many2one → res.partner
required=True
string='Partner'
args: 'res.partner'
phone
Char
readonly=False
related='partner_id.phone'
store=True
primary_color
Char
report_footer
Html
help='Footer text displayed at the bottom of all reports.'
string='Report Footer'
translate=True
report_header
Html
help='Appears by default on the top right corner of your printed documents (report header).'
string='Company Tagline'
secondary_color
Char
sequence
Integer
default=10
help='Used to order Companies in the company switcher'
state_id
Many2one → res.country.state
compute='_compute_address'
domain="[('country_id', '=?', country_id)]"
inverse='_inverse_state'
string='Fed. State'
args: 'res.country.state'
street
Char
compute='_compute_address'
inverse='_inverse_street'
street2
Char
compute='_compute_address'
inverse='_inverse_street2'
user_ids
Many2many → res.users
string='Accepted Users'
args: 'res.users', 'res_company_users_rel', 'cid', 'user_id'
vat
Char
readonly=False
related='partner_id.vat'
string='Tax ID'
website
Char
readonly=False
related='partner_id.website'
zip
Char
compute='_compute_address'
inverse='_inverse_zip'
action_open_base_onboarding_company(self)
action_save_onboarding_company_step(self)
cache_restart(self)
copy(self, default=None)
create(self, vals)
get_and_update_onbarding_state(self, onboarding_state, steps_states)
init(self)
open_company_edit_report(self)
set_onboarding_step_done(self, step_name)
write(self, values)
write_company_and_print_report(self)
No new fields.
Public methods (7)action_cancel(self)
action_next(self)
action_skip(self)
cancel(self)
execute(self)
next(self)
start(self)
No new fields.
Public methods (5)already_installed(self)
default_get(self, fields_list)
execute(self)
fields_get(self, fields=None, attributes=None)
modules_to_install(self)
No new fields.
Public methods (13)cancel(self)
copy(self, values)
create(self, values)
default_get(self, fields)
execute(self)
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
get_config_warning(self, msg)
get_option_name(self, full_field_name)
get_option_path(self, menu_xml_id)
get_values(self)
name_get(self)
onchange_module(self, field_value, module_name)
set_values(self)
address_format
Text
default='%(street)s\n%(street2)s\n%(city)s %(state_code)s %(zip)s\n%(country_name)s'
help="Display format to use for addresses belonging to this country.\n\nYou can use python-style string pattern with all the fields of the address (for example, use '%(street)s' to display the field 'street') plus\n%(state_name)s: the name of the state\n%(state_code)s: the code of the state\n%(country_name)s: the name of the country\n%(country_code)s: the code of the country"
string='Layout in Reports'
address_view_id
Many2one → ir.ui.view
comodel_name='ir.ui.view'
domain=[('model', '=', 'res.partner'), ('type', '=', 'form')]
help='Use this field if you want to replace the usual way to encode a complete address. Note that the address_format field is used to modify the way to display addresses (in reports for example), while this field is used to modify the input form for addresses.'
string='Input View'
code
Char
help='The ISO country code in two chars. \nYou can use this field for quick search.'
size=2
string='Country Code'
country_group_ids
Many2many → res.country.group
string='Country Groups'
args: 'res.country.group', 'res_country_res_country_group_rel', 'res_country_id', 'res_country_group_id'
currency_id
Many2one → res.currency
string='Currency'
args: 'res.currency'
image_url
Char
compute='_compute_image_url'
help='Url of static flag image'
string='Flag'
name
Char
help='The full name of the country.'
required=True
string='Country Name'
translate=True
name_position
Selection
default='before'
help='Determines where the customer/company name should be placed, i.e. after or before the address.'
string='Customer Name Position'
args: [('before', 'Before Address'), ('after', 'After Address')]
phone_code
Integer
string='Country Calling Code'
state_ids
One2many → res.country.state
string='States'
args: 'res.country.state', 'country_id'
state_required
Boolean
default=False
vat_label
Char
help='Use this field if you want to change vat label.'
string='Vat Label'
translate=True
zip_required
Boolean
default=True
create(self, vals_list)
get_address_fields(self)
write(self, vals)
country_ids
Many2many → res.country
string='Countries'
args: 'res.country', 'res_country_res_country_group_rel', 'res_country_group_id', 'res_country_id'
name
Char
required=True
translate=True
No public methods.
code
Char
help='The state code.'
required=True
string='State Code'
country_id
Many2one → res.country
required=True
string='Country'
args: 'res.country'
name
Char
help='Administrative divisions of a country. E.g. Fed. State, Departement, Canton'
required=True
string='State Name'
name_get(self)
active
Boolean
default=True
currency_subunit_label
Char
help='Currency Subunit Name'
string='Currency Subunit'
currency_unit_label
Char
help='Currency Unit Name'
string='Currency Unit'
date
Date
compute='_compute_date'
decimal_places
Integer
compute='_compute_decimal_places'
help='Decimal places taken into account for operations on amounts in this currency. It is determined by the rounding factor.'
store=True
full_name
Char
string='Name'
inverse_rate
Float
compute='_compute_current_rate'
digits=0
help='The currency of rate 1 to the rate of the currency.'
readonly=True
is_current_company_currency
Boolean
compute='_compute_is_current_company_currency'
name
Char
help='Currency Code (ISO 4217)'
required=True
size=3
string='Currency'
position
Selection
default='after'
help='Determines where the currency symbol should be placed after or before the amount.'
string='Symbol Position'
args: [('after', 'After Amount'), ('before', 'Before Amount')]
rate
Float
compute='_compute_current_rate'
digits=0
help='The rate of the currency to the currency of rate 1.'
string='Current Rate'
rate_ids
One2many → res.currency.rate
string='Rates'
args: 'res.currency.rate', 'currency_id'
rate_string
Char
compute='_compute_current_rate'
rounding
Float
default=0.01
digits=(12, 6)
help='Amounts in this currency are rounded off to the nearest multiple of the rounding factor.'
string='Rounding Factor'
symbol
Char
help='Currency sign, to be used when printing amounts.'
required=True
amount_to_text(self, amount)
compare_amounts(self, amount1, amount2)
compute(self, from_amount, to_currency, round=True)
create(self, vals_list)
is_zero(self, amount)
name_get(self)
round(self, amount)
unlink(self)
write(self, vals)
No new fields.
Public methods (0)No public methods.
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
company_rate
Float
compute='_compute_company_rate'
digits=0
group_operator='avg'
help='The currency of rate 1 to the rate of the currency.'
inverse='_inverse_company_rate'
currency_id
Many2one → res.currency
ondelete='cascade'
readonly=True
required=True
string='Currency'
args: 'res.currency'
inverse_company_rate
Float
compute='_compute_inverse_company_rate'
digits=0
group_operator='avg'
help='The rate of the currency to the currency of rate 1 '
inverse='_inverse_inverse_company_rate'
name
Date
default=fields.Date.context_today
index=True
required=True
string='Date'
rate
Float
digits=0
group_operator='avg'
help='The rate of the currency to the currency of rate 1'
string='Technical Rate'
create(self, vals_list)
write(self, vals)
category_id
Many2one → ir.module.category
index=True
string='Application'
args: 'ir.module.category'
color
Integer
string='Color Index'
comment
Text
translate=True
full_name
Char
compute='_compute_full_name'
search='_search_full_name'
string='Group Name'
menu_access
Many2many → ir.ui.menu
string='Access Menu'
args: 'ir.ui.menu', 'ir_ui_menu_group_rel', 'gid', 'menu_id'
model_access
One2many → ir.model.access
copy=True
string='Access Controls'
args: 'ir.model.access', 'group_id'
name
Char
required=True
translate=True
rule_groups
Many2many → ir.rule
domain=[('global', '=', False)]
string='Rules'
args: 'ir.rule', 'rule_group_rel', 'group_id', 'rule_group_id'
share
Boolean
help='Group created to set access rights for sharing data with some users.'
string='Share Group'
users
Many2many → res.users
view_access
Many2many → ir.ui.view
string='Views'
args: 'ir.ui.view', 'ir_ui_view_group_rel', 'group_id', 'view_id'
copy(self, default=None)
write(self, vals)
implied_ids
Many2many → res.groups
help='Users of this group automatically inherit those groups'
string='Inherits'
args: 'res.groups', 'res_groups_implied_rel', 'gid', 'hid'
trans_implied_ids
Many2many → res.groups
compute='_compute_trans_implied'
recursive=True
string='Transitively inherits'
args: 'res.groups'
create(self, vals_list)
write(self, values)
No new fields.
Public methods (5)create(self, values)
get_application_groups(self, domain)
get_groups_by_application(self)
unlink(self)
write(self, values)
active
Boolean
code
Char
help='This field is used to set/get locales for user'
required=True
string='Locale Code'
date_format
Char
default=DEFAULT_DATE_FORMAT
required=True
string='Date Format'
decimal_point
Char
default='.'
required=True
string='Decimal Separator'
trim=False
direction
Selection
default='ltr'
required=True
args: [('ltr', 'Left-to-Right'), ('rtl', 'Right-to-Left')]
flag_image
Image
flag_image_url
Char
compute=_compute_field_flag_image_url
grouping
Char
default='[]'
help="The Separator Format should be like [,n] where 0 < n :starting from Unit digit. -1 will end the separation. e.g. [3,2,-1] will represent 106500 to be 1,06,500; [1,2,-1] will represent it to be 106,50,0;[3] will represent it as 106,500. Provided ',' as the thousand separator in each case."
required=True
string='Separator Format'
iso_code
Char
help='This ISO code is the name of po files to use for translations'
string='ISO code'
name
Char
required=True
thousands_sep
Char
default=','
string='Thousands Separator'
trim=False
time_format
Char
default=DEFAULT_TIME_FORMAT
required=True
string='Time Format'
url_code
Char
help='The Lang Code displayed in the URL'
required=True
args: 'URL Code'
week_start
Selection
default='7'
required=True
string='First Day of Week'
args: [('1', 'Monday'), ('2', 'Tuesday'), ('3', 'Wednesday'), ('4', 'Thursday'), ('5', 'Friday'), ('6', 'Saturday'), ('7', 'Sunday')]
copy_data(self, default=None)
create(self, vals_list)
format(self, percent, value, grouping=False, monetary=False)
get_available(self)
get_installed(self)
get_sorted(self)
install_lang(self)
load_lang(self, lang, lang_name=None)
toggle_active(self)
unlink(self)
write(self, vals)
No new fields.
Public methods (0)No public methods.
active
Boolean
default=True
active_lang_count
Integer
compute='_compute_active_lang_count'
bank_ids
One2many → res.partner.bank
string='Banks'
args: 'res.partner.bank', 'partner_id'
barcode
Char
company_dependent=True
copy=False
help='Use a barcode to identify this contact.'
category_id
Many2many → res.partner.category
column1='partner_id'
column2='category_id'
default=_default_category
string='Tags'
args: 'res.partner.category'
child_ids
One2many → res.partner
domain=[('active', '=', True)]
string='Contact'
args: 'res.partner', 'parent_id'
city
Char
color
Integer
default=0
string='Color Index'
comment
Html
string='Notes'
commercial_company_name
Char
compute='_compute_commercial_company_name'
store=True
args: 'Company Name Entity'
commercial_partner_id
Many2one → res.partner
compute='_compute_commercial_partner'
index=True
recursive=True
store=True
string='Commercial Entity'
args: 'res.partner'
company_id
Many2one → res.company
index=True
args: 'res.company', 'Company'
company_name
Char
company_type
Selection
compute='_compute_company_type'
inverse='_write_company_type'
selection=[('person', 'Individual'), ('company', 'Company')]
string='Company Type'
contact_address
Char
compute='_compute_contact_address'
string='Complete Address'
country_code
Char
related='country_id.code'
string='Country Code'
country_id
Many2one → res.country
ondelete='restrict'
string='Country'
args: 'res.country'
credit_limit
Float
string='Credit Limit'
date
Date
index=True
display_name
Char
compute='_compute_display_name'
index=True
recursive=True
store=True
email
Char
email_formatted
Char
compute='_compute_email_formatted'
help='Format email address "Name <email@domain>"'
args: 'Formatted Email'
employee
Boolean
help='Check this box if this contact is an Employee.'
function
Char
string='Job Position'
industry_id
Many2one → res.partner.industry
is_company
Boolean
default=False
help='Check if the contact is a company, otherwise it is a person'
string='Is a Company'
lang
Selection
help='All the emails and documents sent to this contact will be translated in this language.'
string='Language'
args: _lang_get
mobile
Char
name
Char
index=True
parent_id
Many2one → res.partner
index=True
string='Related Company'
args: 'res.partner'
parent_name
Char
readonly=True
related='parent_id.name'
string='Parent name'
partner_latitude
Float
digits=(10, 7)
string='Geo Latitude'
partner_longitude
Float
digits=(10, 7)
string='Geo Longitude'
partner_share
Boolean
compute='_compute_partner_share'
help='Either customer (not a user), either shared user. Indicated the current partner is a customer without access or with a limited access created for sharing data.'
store=True
args: 'Share Partner'
phone
Char
ref
Char
index=True
string='Reference'
same_vat_partner_id
Many2one → res.partner
compute='_compute_same_vat_partner_id'
store=False
string='Partner with same Tax ID'
args: 'res.partner'
self
Many2one
comodel_name=_name
compute='_compute_get_ids'
state_id
Many2one → res.country.state
domain="[('country_id', '=?', country_id)]"
ondelete='restrict'
string='State'
args: 'res.country.state'
street
Char
street2
Char
title
Many2one → res.partner.title
type
Selection
default='contact'
help='Invoice & Delivery addresses are used in sales orders. Private addresses are only visible by authorized users.'
string='Address Type'
args: [('contact', 'Contact'), ('invoice', 'Invoice Address'), ('delivery', 'Delivery Address'), ('other', 'Other Address'), ('private', 'Private Address')]
tz
Selection
default=<expr>
help='When printing documents and exporting/importing data, time values are computed according to this timezone.\nIf the timezone is not set, UTC (Coordinated Universal Time) is used.\nAnywhere else, time values are computed according to the time offset of your web client.'
string='Timezone'
args: _tz_get
tz_offset
Char
compute='_compute_tz_offset'
invisible=True
string='Timezone offset'
user_id
Many2one → res.users
help='The internal user in charge of this contact.'
string='Salesperson'
args: 'res.users'
user_ids
One2many → res.users
auto_join=True
string='Users'
args: 'res.users', 'partner_id'
vat
Char
help='The Tax Identification Number. Complete it if the contact is subjected to government taxes. Used in some legal statements.'
index=True
string='Tax ID'
website
Char
zip
Char
change_default=True
address_get(self, adr_pref=None)
copy(self, default=None)
create(self, vals_list)
create_company(self)
default_get(self, default_fields)
find_or_create(self, email, assert_valid_email=False)
get_import_templates(self)
main_partner(self)
name_create(self, name)
name_get(self)
onchange_company_type(self)
onchange_email(self)
onchange_parent_id(self)
open_commercial_entity(self)
open_parent(self)
update_address(self, vals)
view_header_get(self, view_id, view_type)
write(self, vals)
acc_holder_name
Char
help='Account holder name, in case it is different than the name of the Account Holder'
string='Account Holder Name'
acc_number
Char
required=True
args: 'Account Number'
acc_type
Selection
compute='_compute_acc_type'
help='Bank account type: Normal or IBAN. Inferred from the bank account number.'
selection=<expr>
string='Type'
active
Boolean
default=True
bank_bic
Char
readonly=False
related='bank_id.bic'
bank_id
Many2one → res.bank
string='Bank'
args: 'res.bank'
bank_name
Char
readonly=False
related='bank_id.name'
company_id
Many2one → res.company
default=<expr>
ondelete='cascade'
readonly=True
args: 'res.company', 'Company'
currency_id
Many2one → res.currency
string='Currency'
args: 'res.currency'
partner_id
Many2one → res.partner
domain=['|', ('is_company', '=', True), ('parent_id', '=', False)]
index=True
ondelete='cascade'
required=True
args: 'res.partner', 'Account Holder'
sanitized_acc_number
Char
compute='_compute_sanitized_acc_number'
readonly=True
store=True
string='Sanitized Account Number'
sequence
Integer
default=10
get_supported_account_types(self)
name_get(self)
retrieve_acc_type(self, acc_number)
active
Boolean
default=True
help='The active field allows you to hide the category without removing it.'
child_ids
One2many → res.partner.category
string='Child Tags'
args: 'res.partner.category', 'parent_id'
color
Integer
default=_get_default_color
string='Color'
name
Char
required=True
string='Tag Name'
translate=True
parent_id
Many2one → res.partner.category
index=True
ondelete='cascade'
string='Parent Category'
args: 'res.partner.category'
parent_path
Char
index=True
partner_ids
Many2many → res.partner
column1='category_id'
column2='partner_id'
copy=False
string='Partners'
args: 'res.partner'
name_get(self)
No new fields.
Public methods (0)No public methods.
active
Boolean
default=True
args: 'Active'
full_name
Char
translate=True
args: 'Full Name'
name
Char
translate=True
args: 'Name'
No public methods.
name
Char
required=True
string='Title'
translate=True
shortcut
Char
string='Abbreviation'
translate=True
No public methods.
No new fields.
Public methods (0)No public methods.
accesses_count
Integer
compute='_compute_accesses_count'
compute_sudo=True
help='Number of access rights that apply to the current user'
args: '# Access Rights'
action_id
Many2one → ir.actions.actions
help='If specified, this action will be opened at log on for this user, in addition to the standard menu.'
string='Home Action'
args: 'ir.actions.actions'
active
Boolean
default=True
active_partner
Boolean
readonly=True
related='partner_id.active'
string='Partner is Active'
companies_count
Integer
compute='_compute_companies_count'
string='Number of Companies'
company_id
Many2one → res.company
context={'user_preference': True}
default=<expr>
help='The default company for this user.'
required=True
string='Company'
args: 'res.company'
company_ids
Many2many → res.company
default=<expr>
string='Companies'
args: 'res.company', 'res_company_users_rel', 'user_id', 'cid'
email
Char
inherited=True
readonly=False
related='partner_id.email'
groups_count
Integer
compute='_compute_accesses_count'
compute_sudo=True
help='Number of groups that apply to the current user'
args: '# Groups'
groups_id
Many2many → res.groups
default=_default_groups
string='Groups'
args: 'res.groups', 'res_groups_users_rel', 'uid', 'gid'
log_ids
One2many → res.users.log
string='User log entries'
args: 'res.users.log', 'create_uid'
login
Char
help='Used to log into the system'
required=True
login_date
Datetime
readonly=False
related='log_ids.create_date'
string='Latest authentication'
name
Char
inherited=True
readonly=False
related='partner_id.name'
new_password
Char
compute='_compute_password'
help="Specify a value only when creating a user or if you're changing the user's password, otherwise leave empty. After a change of password, the user has to login again."
inverse='_set_new_password'
string='Set Password'
partner_id
Many2one → res.partner
auto_join=True
help='Partner-related data of the user'
index=True
ondelete='restrict'
required=True
string='Related Partner'
args: 'res.partner'
password
Char
compute='_compute_password'
copy=False
help="Keep empty if you don't want the user to be able to connect on the system."
inverse='_set_password'
invisible=True
rules_count
Integer
compute='_compute_accesses_count'
compute_sudo=True
help='Number of record rules that apply to the current user'
args: '# Record Rules'
share
Boolean
compute='_compute_share'
compute_sudo=True
help='External user with limited access, created only for the purpose of sharing data.'
store=True
string='Share User'
signature
Html
default=''
string='Email Signature'
tz_offset
Char
compute='_compute_tz_offset'
invisible=True
string='Timezone offset'
SELF_READABLE_FIELDS(self)
SELF_WRITEABLE_FIELDS(self)
action_get(self)
action_show_accesses(self)
action_show_groups(self)
action_show_rules(self)
authenticate(cls, db, login, password, user_agent_env)
change_password(self, old_passwd, new_passwd)
check(cls, db, uid, passwd)
check_super(self, passwd)
context_get(self)
copy(self, default=None)
create(self, vals_list)
get_company_currency_id(self)
has_group(self, group_ext_id)
init(self)
on_change_login(self)
onchange_parent_id(self)
preference_change_password(self)
preference_save(self)
read(self, fields=None, load='_classic_read')
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
toggle_active(self)
write(self, values)
No new fields.
Public methods (2)create(self, vals_list)
write(self, values)
No new fields.
Public methods (8)create(self, vals_list)
default_get(self, fields)
fields_get(self, allfields=None, attributes=None)
new(self, values={}, origin=None, ref=None)
onchange(self, values, field_name, field_onchange)
read(self, fields=None, load='_classic_read')
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
write(self, values)
api_key_ids
One2many → res.users.apikeys
string='API Keys'
args: 'res.users.apikeys', 'user_id'
SELF_READABLE_FIELDS(self)
SELF_WRITEABLE_FIELDS(self)
api_key_wizard(self)
password
Char
request
Char
groups=fields.NO_ACCESS
readonly=True
run_check(self)
No new fields.
Public methods (0)No public methods.
arch_diff
Html
compute='_compute_arch_diff'
readonly=True
sanitize_tags=False
string='Architecture Diff'
arch_to_compare
Text
compute='_compute_arch_diff'
args: 'Arch To Compare To'
compare_view_id
Many2one → ir.ui.view
string='Compare To View'
args: 'ir.ui.view'
has_diff
Boolean
compute='_compute_arch_diff'
reset_mode
Selection
default='soft'
required=True
string='Reset Mode'
args: [('soft', 'Restore previous version (soft reset).'), ('hard', 'Reset to file version (hard reset).'), ('other_view', 'Reset to another view.')]
view_id
Many2one → ir.ui.view
string='View'
args: 'ir.ui.view'
view_name
Char
related='view_id.name'
string='View Name'
default_get(self, fields)
reset_view_button(self)
menu_id
Many2one → ir.ui.menu
ondelete='cascade'
required=True
string='Parent Menu'
args: 'ir.ui.menu'
name
Char
required=True
string='Menu Name'
menu_create(self)
access_ir_model_access_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_model_access' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_model_fields_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_model_fields' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_model_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_model' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_rule_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_rule' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_ui_view_custom_group_user — Access rule grants write/create/unlink on 'model_ir_ui_view_custom' to EVERY user (portal/public included): no group is set acl-global-writeaccess_report_layout — Access rule grants write/create/unlink on 'model_report_layout' to EVERY user (portal/public included): no group is set acl-global-writeaccess_res_groups_group_erp_manager — Access rule grants write/create/unlink on security model 'model_res_groups' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_res_users_group_erp_manager — Access rule grants write/create/unlink on security model 'model_res_users' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_res_users_log_all — Access rule grants create on 'model_res_users_log' to EVERY user (portal/public included): no group is set acl-global-writeFound by automated static analysis: these patterns are usually risky, but only a manual review of the module can confirm a real issue.
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
act_report_xml_search_view |
ir.actions.report.search | ir.actions.report | search | New |
act_report_xml_view |
ir.actions.report | ir.actions.report | form | New |
act_report_xml_view_tree |
ir.actions.report.tree | ir.actions.report | tree | New |
action_view |
ir.actions.actions | ir.actions.actions | form | New |
action_view_search |
ir.actions.actions.search | ir.actions.actions | search | New |
action_view_tree |
ir.actions.actions.tree | ir.actions.actions | tree | New |
base_onboarding_company_form |
base.company.onboarding.form | res.company | form | Inherits base.view_company_form |
base_partner_merge_automatic_wizard_form |
base.partner.merge.automatic.wizard.form | base.partner.merge.automatic.wizard | form | New |
change_password_wizard_user_tree_view |
Change Password Users | change.password.user | tree | New |
change_password_wizard_view |
Change Password | change.password.wizard | form | New |
config_wizard_step_view_form |
Config Wizard Steps | ir.actions.todo | form | New |
config_wizard_step_view_search |
ir.actions.todo.select | ir.actions.todo | search | New |
contact |
contact | ir.ui.view | qweb | New |
contact_name |
contact_name | ir.ui.view | qweb | New |
demo_failures_dialog |
Demo Failure Dialog | ir.demo_failure.wizard | form | New |
demo_force_install_form |
ir.demo.form | ir.demo | form | New |
edit_menu |
ir.ui.menu | tree | New | |
edit_menu_access |
ir.ui.menu | form | New | |
edit_menu_access_search |
ir.ui.menu.search | ir.ui.menu | search | New |
form_res_users_key_description |
API Key: description input form | res.users.apikeys.description | form | New |
form_res_users_key_show |
API Key: show | res.users.apikeys.show | form | New |
identity_check_wizard |
res.users.identitycheck | form | New | |
ir_access_view_form |
ir.model.access | form | New | |
ir_access_view_search |
ir.model.access | search | New | |
ir_access_view_tree |
ir.model.access.view.tree | ir.model.access | tree | New |
ir_access_view_tree_edition |
ir.model.access.view.tree.edition | ir.model.access | tree | New |
ir_actions_todo_tree |
Config Wizard Steps | ir.actions.todo | tree | New |
ir_cron_view_calendar |
ir.cron | calendar | New | |
ir_cron_view_form |
ir.cron.view.form | ir.cron | form | Inherits base.view_server_action_form |
ir_cron_view_search |
ir.cron | search | New | |
ir_cron_view_tree |
ir.cron | tree | New | |
ir_default_form_view |
ir.default form view | ir.default | form | New |
ir_default_search_view |
ir.default search view | ir.default | search | New |
ir_default_tree_view |
ir.default tree view | ir.default | tree | New |
ir_filters_view_form |
ir.filters | form | New | |
ir_filters_view_search |
ir.filters | search | New | |
ir_filters_view_tree |
ir.filters | tree | New | |
ir_logging_form_view |
ir.logging | form | New | |
ir_logging_search_view |
ir.logging | search | New | |
ir_logging_tree_view |
ir.logging | tree | New | |
ir_mail_server_form |
ir.mail_server | form | New | |
ir_mail_server_list |
ir.mail_server | tree | New | |
ir_property_view |
ir.property.form | ir.property | form | New |
ir_property_view_search |
ir.property.search | ir.property | search | New |
ir_property_view_tree |
ir.property.tree | ir.property | tree | New |
module_form |
ir.module.module.form | ir.module.module | form | New |
module_tree |
ir.module.module.tree | ir.module.module | tree | New |
module_view_kanban |
Apps Kanban | ir.module.module | kanban | New |
onboarding_company_step |
onboarding_company_step | ir.ui.view | qweb | New |
onboarding_confetti |
onboarding_confetti | ir.ui.view | qweb | New |
onboarding_container |
onboarding_container | ir.ui.view | qweb | New |
onboarding_step |
onboarding_step | ir.ui.view | qweb | New |
paperformat_view_form |
paper_format_view_form | report.paperformat | form | New |
paperformat_view_tree |
paper_format_view_tree | report.paperformat | tree | New |
report_irmodeloverview |
report_irmodeloverview | ir.ui.view | qweb | New |
report_irmodulereference |
report_irmodulereference | ir.ui.view | qweb | New |
res_bank_view_search |
res.bank.view.search | res.bank | search | New |
res_config_installer |
Inheritable view for installer objects | res.config.installer | form | New |
res_config_settings_view_form |
res.config.settings.view.form | res.config.settings | form | New |
res_config_view_base |
res.config.view.base | res.config | form | New |
res_lang_form |
res.lang.form | res.lang | form | New |
res_lang_search |
res.lang.search | res.lang | search | New |
res_lang_tree |
res.lang.tree | res.lang | tree | New |
res_partner_category_view_search |
res.partner.category.view.search | res.partner.category | search | New |
res_partner_industry_view_form |
Industry | res.partner.industry | form | New |
res_partner_industry_view_search |
res.partner.industry.view.search | res.partner.industry | search | New |
res_partner_industry_view_tree |
Industry | res.partner.industry | tree | New |
res_partner_kanban_view |
res.partner.kanban | res.partner | kanban | New |
res_partner_view_form_private |
res.partner.view.form.private | res.partner | form | New |
reset_view_arch_wizard_view |
Reset View Architecture | reset.view.arch.wizard | form | New |
sequence_view |
ir.sequence | form | New | |
sequence_view_tree |
ir.sequence | tree | New | |
user_groups_view |
res.users.groups | res.users | form | Inherits view_users_form |
view_apikeys |
API Keys Listing | res.users.apikeys | tree | New |
view_attachment_form |
ir.attachment | form | New | |
view_attachment_search |
ir.attachment | search | New | |
view_attachment_tree |
ir.attachment | tree | New | |
view_base_import_language |
Import Translation | base.language.import | form | New |
view_base_language_install |
Load a Translation | base.language.install | form | New |
view_base_module_uninstall |
Uninstall module | base.module.uninstall | form | New |
view_base_module_update |
Module Update | base.module.update | form | New |
view_base_module_upgrade |
Module Upgrade | base.module.upgrade | form | New |
view_base_module_upgrade_install |
Module Upgrade Install | base.module.upgrade | form | New |
view_company_form |
res.company.form | res.company | form | New |
view_company_tree |
res.company.tree | res.company | tree | New |
view_country_form |
res.country.form | res.country | form | New |
view_country_group_form |
res.country.group.form | res.country.group | form | New |
view_country_group_tree |
res.country.group.tree | res.country.group | tree | New |
view_country_state_form |
res.country.state.form | res.country.state | form | New |
view_country_state_search |
res.country.state.search | res.country.state | search | New |
view_country_state_tree |
res.country.state.tree | res.country.state | tree | New |
view_country_tree |
res.country.tree | res.country | tree | New |
view_currency_form |
res.currency.form | res.currency | form | New |
view_currency_kanban |
res.currency.kanban | res.currency | kanban | New |
view_currency_rate_form |
res.currency.rate.form | res.currency.rate | form | New |
view_currency_rate_search |
res.currency.rate.search | res.currency.rate | search | New |
view_currency_rate_tree |
res.currency.rate.tree | res.currency.rate | tree | New |
view_currency_search |
res.currency.search | res.currency | search | New |
view_currency_tree |
res.currency.tree | res.currency | tree | New |
view_decimal_precision_form |
Decimal Precision | decimal.precision | form | New |
view_decimal_precision_tree |
Decimal Precision List | decimal.precision | tree | New |
view_groups_form |
res.groups.form | res.groups | form | New |
view_groups_search |
res.groups.search | res.groups | search | New |
view_ir_config_form |
ir.config_parameter | form | New | |
view_ir_config_list |
ir.config_parameter | tree | New | |
view_ir_config_search |
ir.config_parameter | search | New | |
view_ir_mail_server_search |
ir.mail_server | search | New | |
view_model_constraint_form |
ir.model.constraint | form | New | |
view_model_constraint_list |
ir.model.constraint | tree | New | |
view_model_constraint_search |
ir.model.constraint | search | New | |
view_model_data_form |
ir.model.data | form | New | |
view_model_data_list |
ir.model.data | tree | New | |
view_model_data_search |
ir.model.data | search | New | |
view_model_fields_form |
ir.model.fields | form | New | |
view_model_fields_search |
ir.model.fields | search | New | |
view_model_fields_selection_form |
ir.model.fields.selection | form | New | |
view_model_fields_selection_search |
ir.model.fields.selection | search | New | |
view_model_fields_selection_tree |
ir.model.fields.selection | tree | New | |
view_model_fields_tree |
ir.model.fields | tree | New | |
view_model_form |
ir.model | form | New | |
view_model_menu_create |
Create Menu | wizard.ir.model.menu.create | form | New |
view_model_relation_form |
ir.model.relation | form | New | |
view_model_relation_list |
ir.model.relation | tree | New | |
view_model_search |
ir.model | search | New | |
view_model_tree |
ir.model | tree | New | |
view_module_category_form |
ir.module.category.form | ir.module.category | form | New |
view_module_category_tree |
ir.module.category.tree | ir.module.category | tree | New |
view_module_filter |
ir.module.module.list.select | ir.module.module | search | New |
view_partner_address_form |
res.partner.form.address | res.partner | form | New |
view_partner_bank_form |
res.partner.bank.form | res.partner.bank | form | New |
view_partner_bank_search |
res.partner.bank.search | res.partner.bank | search | New |
view_partner_bank_tree |
res.partner.bank.tree | res.partner.bank | tree | New |
view_partner_category_form |
Contact Tags | res.partner.category | form | New |
view_partner_category_list |
Contact Tags | res.partner.category | tree | New |
view_partner_form |
res.partner.form | res.partner | form | New |
view_partner_simple_form |
res.partner.simplified.form | res.partner | form | New |
view_partner_title_form |
res.partner.title.form | res.partner.title | form | New |
view_partner_title_tree |
res.partner.title.tree | res.partner.title | tree | New |
view_partner_tree |
res.partner.tree | res.partner | tree | New |
view_res_bank_form |
res.bank.form | res.bank | form | New |
view_res_bank_tree |
res.bank.tree | res.bank | tree | New |
view_res_company_kanban |
res.company.kanban | res.company | kanban | New |
view_res_partner_filter |
res.partner.select | res.partner | search | New |
view_res_users_kanban |
res.users.kanban | res.users | kanban | New |
view_rule_form |
ir.rule | form | New | |
view_rule_search |
ir.rule | search | New | |
view_rule_tree |
ir.rule | tree | New | |
view_sequence_search |
ir.sequence | search | New | |
view_server_action_form |
Server Action | ir.actions.server | form | New |
view_server_action_search |
ir.actions.server.search | ir.actions.server | search | New |
view_server_action_tree |
Server Actions | ir.actions.server | tree | New |
view_translation_dialog_tree |
ir.translation | tree | New | |
view_translation_form |
ir.translation | form | New | |
view_translation_lang_src_value_tree |
ir.translation | tree | New | |
view_translation_lang_value_tree |
ir.translation | tree | New | |
view_translation_search |
ir.translation | search | New | |
view_translation_tree |
ir.translation | tree | New | |
view_users_form |
res.users.form | res.users | form | New |
view_users_form_simple_modif |
res.users.preferences.form | res.users | form | New |
view_users_search |
res.users.search | res.users | search | New |
view_users_simple_form |
res.users.simplified.form | res.users | form | New |
view_users_tree |
res.users.tree | res.users | tree | New |
view_view_custom_form |
ir.ui.view.custom | form | New | |
view_view_custom_search |
ir.ui.view.custom | search | New | |
view_view_custom_tree |
ir.ui.view.custom | tree | New | |
view_view_form |
ir.ui.view | form | New | |
view_view_search |
ir.ui.view | search | New | |
view_view_tree |
ir.ui.view | tree | New | |
view_window_action_form |
ir.actions.windows.form | ir.actions.act_window | form | New |
view_window_action_search |
ir.actions.windows.search | ir.actions.act_window | search | New |
view_window_action_tree |
ir.actions.windows.tree | ir.actions.act_window | tree | New |
wizard_lang_export |
Export Translations | base.language.export | form | New |
wizard_update_translations |
Generate Missing Terms | base.update.translations | form | New |
| Route(s) | Handler | Auth | Type | Methods | Flags |
|---|---|---|---|---|---|
/jsonrpc |
RPC.jsonrpc |
none | json | ALL | |
/xmlrpc/<service> |
RPC.xmlrpc_1 |
none | http | POST | csrf off |
/xmlrpc/2/<service> |
RPC.xmlrpc_2 |
none | http | POST | csrf off |
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (1)create(self, vals_list)
data
Binary
attachment=False
readonly=True
args: 'File'
format
Selection
default='csv'
required=True
string='File Format'
args: [('csv', 'CSV File'), ('po', 'PO File'), ('tgz', 'TGZ Archive')]
lang
Selection
default=NEW_LANG_KEY
required=True
string='Language'
args: _get_languages
modules
Many2many → ir.module.module
domain=[('state', '=', 'installed')]
string='Apps To Export'
args: 'ir.module.module', 'rel_modules_langexport', 'wiz_id', 'module_id'
name
Char
readonly=True
args: 'File Name'
state
Selection
default='choose'
args: [('choose', 'choose'), ('get', 'get')]
act_getfile(self)
code
Char
help='ISO Language and Country code, e.g. en_US'
required=True
size=6
args: 'ISO Code'
data
Binary
attachment=False
required=True
args: 'File'
filename
Char
required=True
args: 'File Name'
name
Char
required=True
args: 'Language Name'
overwrite
Boolean
default=True
help='If you enable this option, existing translations (including custom ones) will be overwritten and replaced by those in this file'
args: 'Overwrite Existing Terms'
import_lang(self)
lang
Selection
default=_default_language
required=True
string='Language'
args: _get_languages
overwrite
Boolean
default=True
help='If you check this box, your customized translations will be overwritten and replaced by the official ones.'
args: 'Overwrite Existing Terms'
state
Selection
default='init'
readonly=True
string='Status'
args: [('init', 'init'), ('done', 'done')]
lang_install(self)
reload(self)
switch_lang(self)
model_ids
Many2many → ir.model
compute='_compute_model_ids'
string='Impacted data models'
args: 'ir.model'
module_id
Many2one → ir.module.module
domain=[('state', 'in', ['installed', 'to upgrade', 'to install'])]
ondelete='cascade'
readonly=True
required=True
string='Module'
args: 'ir.module.module'
module_ids
Many2many → ir.module.module
compute='_compute_module_ids'
string='Impacted modules'
args: 'ir.module.module'
show_all
Boolean
action_uninstall(self)
added
Integer
readonly=True
args: 'Number of modules added'
state
Selection
default='init'
readonly=True
args: [('init', 'init'), ('done', 'done')], 'Status'
updated
Integer
readonly=True
args: 'Number of modules updated'
action_module_open(self)
update_module(self)
module_info
Text
default=_default_module_info
readonly=True
args: 'Apps to Update'
config(self)
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
get_module_list(self)
upgrade_module(self)
upgrade_module_cancel(self)
current_line_id
Many2one → base.partner.merge.line
string='Current Line'
args: 'base.partner.merge.line'
dst_partner_id
Many2one → res.partner
string='Destination Contact'
args: 'res.partner'
exclude_contact
Boolean
exclude_journal_item
Boolean
group_by_email
Boolean
group_by_is_company
Boolean
group_by_name
Boolean
group_by_parent_id
Boolean
group_by_vat
Boolean
line_ids
One2many → base.partner.merge.line
string='Lines'
args: 'base.partner.merge.line', 'wizard_id'
maximum_group
Integer
number_group
Integer
readonly=True
args: 'Group of Contacts'
partner_ids
Many2many → res.partner
context={'active_test': False}
string='Contacts'
args: 'res.partner'
state
Selection
default='option'
readonly=True
required=True
string='State'
args: [('option', 'Option'), ('selection', 'Selection'), ('finished', 'Finished')]
action_merge(self)
action_skip(self)
action_start_automatic_process(self)
action_start_manual_process(self)
action_update_all_process(self)
default_get(self, fields)
parent_migration_process_cb(self)
aggr_ids
Char
required=True
args: 'Ids'
min_id
Integer
wizard_id
Many2one → base.partner.merge.automatic.wizard
No public methods.
lang
Selection
required=True
args: _get_languages, 'Language'
act_update(self)
new_passwd
Char
default=''
string='New Password'
user_id
Many2one → res.users
ondelete='cascade'
required=True
string='User'
args: 'res.users'
user_login
Char
readonly=True
string='User Login'
wizard_id
Many2one → change.password.wizard
ondelete='cascade'
required=True
string='Wizard'
args: 'change.password.wizard'
change_password_button(self)
user_ids
One2many → change.password.user
default=_default_user_ids
string='Users'
args: 'change.password.user', 'wizard_id'
change_password_button(self)
digits
Integer
default=2
required=True
args: 'Digits'
name
Char
index=True
required=True
args: 'Usage'
create(self, vals_list)
precision_get(self, application)
unlink(self)
write(self, data)
No new fields.
Public methods (0)No public methods.
image_1024
Image
max_height=1024
max_width=1024
related='image_1920'
store=True
args: 'Image 1024'
image_128
Image
max_height=128
max_width=128
related='image_1920'
store=True
args: 'Image 128'
image_1920
Image
max_height=1920
max_width=1920
args: 'Image'
image_256
Image
max_height=256
max_width=256
related='image_1920'
store=True
args: 'Image 256'
image_512
Image
max_height=512
max_width=512
related='image_1920'
store=True
args: 'Image 512'
No public methods.
name
Char
string='Action Name'
translate=True
target
Selection
default='new'
required=True
string='Action Target'
args: [('new', 'New Window'), ('self', 'This Window')]
type
Char
default='ir.actions.act_url'
url
Text
required=True
string='Action URL'
No public methods.
context
Char
default={}
help='Context dictionary as Python expression, empty by default (Default: {})'
required=True
string='Context Value'
domain
Char
help='Optional domain filtering of the destination data, as a Python expression'
string='Domain Value'
filter
Boolean
groups_id
Many2many → res.groups
string='Groups'
args: 'res.groups', 'ir_act_window_group_rel', 'act_id', 'gid'
limit
Integer
default=80
help='Default limit for the list view'
name
Char
string='Action Name'
translate=True
res_id
Integer
help="Database ID of record to open in form view, when ``view_mode`` is set to 'form' only"
string='Record ID'
res_model
Char
help='Model name of the object to open in the view window'
required=True
string='Destination Model'
search_view
Text
compute='_compute_search_view'
search_view_id
Many2one → ir.ui.view
string='Search View Ref.'
args: 'ir.ui.view'
target
Selection
default='current'
string='Target Window'
args: [('current', 'Current Window'), ('new', 'New Window'), ('inline', 'Inline Edit'), ('fullscreen', 'Full Screen'), ('main', 'Main action of Current Window')]
type
Char
default='ir.actions.act_window'
usage
Char
help='Used to filter menu and home actions from the user form.'
string='Action Usage'
view_id
Many2one → ir.ui.view
ondelete='set null'
string='View Ref.'
args: 'ir.ui.view'
view_ids
One2many → ir.actions.act_window.view
string='No of Views'
args: 'ir.actions.act_window.view', 'act_window_id'
view_mode
Char
default='tree,form'
help="Comma-separated list of allowed view modes, such as 'form', 'tree', 'calendar', etc. (Default: tree,form)"
required=True
views
Binary
compute='_compute_views'
help='This function field computes the ordered list of views that should be enabled when displaying the result of an action, federating view mode, views and reference view. The result is returned as an ordered list of pairs (view_id,view_mode).'
create(self, vals_list)
exists(self)
read(self, fields=None, load='_classic_read')
unlink(self)
act_window_id
Many2one → ir.actions.act_window
ondelete='cascade'
string='Action'
args: 'ir.actions.act_window'
multi
Boolean
help='If set to true, the action will not be displayed on the right toolbar of a form view.'
string='On Multiple Doc.'
sequence
Integer
view_id
Many2one → ir.ui.view
string='View'
args: 'ir.ui.view'
view_mode
Selection
required=True
string='View Type'
args: VIEW_TYPES
No public methods.
type
Char
default='ir.actions.act_window_close'
No public methods.
binding_model_id
Many2one → ir.model
help='Setting a value makes this action available in the sidebar for the given model.'
ondelete='cascade'
args: 'ir.model'
binding_type
Selection
default='action'
required=True
args: [('action', 'Action'), ('report', 'Report')]
binding_view_types
Char
default='list,form'
help
Html
help='Optional help text for the users with a description of the target view, such as its usage and purpose.'
string='Action Description'
translate=True
name
Char
required=True
type
Char
required=True
string='Action Type'
xml_id
Char
compute='_compute_xml_id'
string='External ID'
create(self, vals_list)
get_bindings(self, model_name)
unlink(self)
write(self, vals)
context
Char
default='{}'
help='Context dictionary as Python expression, empty by default (Default: {})'
required=True
string='Context Value'
name
Char
string='Action Name'
translate=True
params
Binary
compute='_compute_params'
help='Arguments sent to the client along with the view tag'
inverse='_inverse_params'
string='Supplementary arguments'
params_store
Binary
attachment=False
readonly=True
string='Params storage'
res_model
Char
help='Optional model, mostly used for needactions.'
string='Destination Model'
tag
Char
help='An arbitrary string, interpreted by the client according to its own needs and wishes. There is no central tag repository across clients.'
required=True
string='Client action tag'
target
Selection
default='current'
string='Target Window'
args: [('current', 'Current Window'), ('new', 'New Window'), ('fullscreen', 'Full Screen'), ('main', 'Main action of Current Window')]
type
Char
default='ir.actions.client'
No public methods.
attachment
Char
help='This is the filename of the attachment used to store the printing result. Keep empty to not save the printed reports. You can use a python expression with the object and time variables.'
string='Save as Attachment Prefix'
attachment_use
Boolean
help='If enabled, then the second time the user prints with same attachment name, it returns the previous report.'
string='Reload from Attachment'
binding_type
Selection
default='report'
groups_id
Many2many → res.groups
string='Groups'
args: 'res.groups', 'res_groups_report_rel', 'uid', 'gid'
model
Char
required=True
string='Model Name'
model_id
Many2one → ir.model
compute='_compute_model_id'
search='_search_model_id'
string='Model'
args: 'ir.model'
multi
Boolean
help='If set to true, the action will not be displayed on the right toolbar of a form view.'
string='On Multiple Doc.'
name
Char
translate=True
paperformat_id
Many2one → report.paperformat
print_report_name
Char
help="This is the filename of the report going to download. Keep empty to not change the report filename. You can use a python expression with the 'object' and 'time' variables."
translate=True
args: 'Printed Report Name'
report_file
Char
help='The path to the main report file (depending on Report Type) or empty if the content is in another field'
readonly=False
required=False
store=True
string='Report File'
report_name
Char
required=True
string='Template Name'
report_type
Selection
default='qweb-pdf'
help='The type of the report that will be rendered, each one having its own rendering method. HTML means the report will be opened directly in your browser PDF means the report will be rendered using Wkhtmltopdf and downloaded by the user.'
required=True
args: [('qweb-html', 'HTML'), ('qweb-pdf', 'PDF'), ('qweb-text', 'Text')]
type
Char
default='ir.actions.report'
associated_view(self)
barcode(self, barcode_type, value, **kwargs)
check_barcode_encoding(self, barcode, encoding)
create_action(self)
get_available_barcode_masks(self)
get_barcode_check_digit(self, numeric_barcode)
get_paperformat(self)
get_wkhtmltopdf_state(self)
report_action(self, docids, data=None, config=True)
retrieve_attachment(self, record)
unlink_action(self)
child_ids
Many2many → ir.actions.server
help='Child server actions that will be executed. Note that the last return returned action value will be used as global return value.'
string='Child Actions'
args: 'ir.actions.server', 'rel_server_actions', 'server_id', 'action_id'
code
Text
default=DEFAULT_PYTHON_CODE
groups='base.group_system'
help='Write Python code that the action will execute. Some variables are available for use; help about python expression is given in the help tab.'
string='Python Code'
crud_model_id
Many2one → ir.model
help='Model for record creation / update. Set this field only to specify a different model than the base model.'
string='Target Model'
args: 'ir.model'
crud_model_name
Char
readonly=True
related='crud_model_id.model'
string='Target Model Name'
fields_lines
One2many → ir.server.object.lines
copy=True
string='Value Mapping'
args: 'ir.server.object.lines', 'server_id'
groups_id
Many2many → res.groups
string='Groups'
args: 'res.groups', 'ir_act_server_group_rel', 'act_id', 'gid'
link_field_id
Many2one → ir.model.fields
help='Provide the field used to link the newly created record on the record used by the server action.'
string='Link Field'
args: 'ir.model.fields'
model_id
Many2one → ir.model
help='Model on which the server action runs.'
index=True
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
model_name
Char
readonly=True
related='model_id.model'
store=True
string='Model Name'
name
Char
string='Action Name'
translate=True
sequence
Integer
default=5
help='When dealing with multiple actions, the execution order is based on the sequence. Low number means high priority.'
state
Selection
copy=True
default='object_write'
help="Type of server action. The following values are available:\n- 'Execute Python Code': a block of python code that will be executed\n- 'Create': create a new record with new values\n- 'Update a Record': update the values of a record\n- 'Execute several actions': define an action that triggers several other server actions\n- 'Send Email': automatically send an email (Discuss)\n- 'Add Followers': add followers to a record (Discuss)\n- 'Create Next Activity': create an activity (Discuss)"
required=True
string='Action To Do'
args: [('code', 'Execute Python Code'), ('object_create', 'Create a new Record'), ('object_write', 'Update the Record'), ('multi', 'Execute several actions')]
type
Char
default='ir.actions.server'
usage
Selection
default='ir_actions_server'
required=True
string='Usage'
args: [('ir_actions_server', 'Server Action'), ('ir_cron', 'Scheduled Action')]
create_action(self)
run(self)
unlink_action(self)
action_id
Many2one → ir.actions.actions
index=True
required=True
string='Action'
args: 'ir.actions.actions'
name
Char
sequence
Integer
default=10
state
Selection
default='open'
required=True
string='Status'
args: [('open', 'To Do'), ('done', 'Done')]
action_launch(self)
action_open(self)
create(self, vals_list)
ensure_one_open_todo(self)
name_get(self)
unlink(self)
write(self, vals)
access_token
Char
groups='base.group_user'
args: 'Access Token'
checksum
Char
index=True
readonly=True
size=40
args: 'Checksum/SHA1'
company_id
Many2one → res.company
change_default=True
default=<expr>
string='Company'
args: 'res.company'
datas
Binary
compute='_compute_datas'
inverse='_inverse_datas'
string='File Content (base64)'
db_datas
Binary
attachment=False
args: 'Database Data'
description
Text
file_size
Integer
readonly=True
args: 'File Size'
index_content
Text
prefetch=False
readonly=True
args: 'Indexed Content'
mimetype
Char
readonly=True
args: 'Mime Type'
name
Char
required=True
args: 'Name'
public
Boolean
raw
Binary
compute='_compute_raw'
inverse='_inverse_raw'
string='File Content (raw)'
res_field
Char
readonly=True
args: 'Resource Field'
res_id
Many2oneReference
help='The record id this is attached to.'
model_field='res_model'
readonly=True
args: 'Resource ID'
res_model
Char
help='The database object this attachment will be attached to.'
readonly=True
args: 'Resource Model'
res_name
Char
compute='_compute_res_name'
args: 'Resource Name'
store_fname
Char
type
Selection
change_default=True
default='binary'
help='You can either upload a file from your computer or copy/paste an internet link to your file.'
required=True
string='Type'
args: [('url', 'URL'), ('binary', 'File')]
url
Char
index=True
size=1024
args: 'Url'
action_get(self)
check(self, mode, values=None)
copy(self, default=None)
create(self, vals_list)
force_storage(self)
generate_access_token(self)
get_serve_attachment(self, url, extra_domain=None, extra_fields=None, order=None)
get_serving_groups(self)
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
unlink(self)
write(self, vals)
No new fields.
Public methods (1)power_on(self, *args, **kwargs)
key
Char
index=True
required=True
value
Text
required=True
create(self, vals_list)
get_param(self, key, default=False)
init(self, force=False)
set_param(self, key, value)
unlink(self)
write(self, vals)
active
Boolean
default=True
cron_name
Char
readonly=False
related='ir_actions_server_id.name'
store=True
args: 'Name'
doall
Boolean
help='Specify if missed occurrences should be executed when the server restarts.'
string='Repeat Missed'
interval_number
Integer
default=1
help='Repeat every x.'
interval_type
Selection
default='months'
string='Interval Unit'
args: [('minutes', 'Minutes'), ('hours', 'Hours'), ('days', 'Days'), ('weeks', 'Weeks'), ('months', 'Months')]
ir_actions_server_id
Many2one → ir.actions.server
delegate=True
ondelete='restrict'
required=True
args: 'ir.actions.server', 'Server action'
lastcall
Datetime
help='Previous time the cron ran successfully, provided to the job through the context on the `lastcall` key'
string='Last Execution Date'
nextcall
Datetime
default=fields.Datetime.now
help='Next planned execution date for this job.'
required=True
string='Next Execution Date'
numbercall
Integer
default=1
help='How many times the method is called,\na negative number indicates no limit.'
string='Number of Calls'
priority
Integer
default=5
help='The priority of the job, as an integer: 0 means higher priority, 10 means lower priority.'
user_id
Many2one → res.users
default=<expr>
required=True
string='Scheduler User'
args: 'res.users'
create(self, values)
default_get(self, fields_list)
method_direct_trigger(self)
toggle(self, model, domain)
try_write(self, values)
unlink(self)
write(self, vals)
company_id
Many2one → res.company
help='If set, action binding only applies for this company'
index=True
ondelete='cascade'
string='Company'
args: 'res.company'
condition
Char
help='If set, applies the default upon condition.'
args: 'Condition'
field_id
Many2one → ir.model.fields
index=True
ondelete='cascade'
required=True
string='Field'
args: 'ir.model.fields'
json_value
Char
required=True
args: 'Default Value (JSON format)'
user_id
Many2one → res.users
help='If set, action binding only applies for this user.'
index=True
ondelete='cascade'
string='User'
args: 'res.users'
create(self, vals_list)
discard_records(self, records)
discard_values(self, model_name, field_name, values)
get(self, model_name, field_name, user_id=False, company_id=False, condition=False)
get_model_defaults(self, model_name, condition=False)
set(self, model_name, field_name, value, user_id=False, company_id=False, condition=False)
unlink(self)
write(self, vals)
No new fields.
Public methods (1)install_demo(self)
error
Char
string='Error'
module_id
Many2one → ir.module.module
required=True
string='Module'
args: 'ir.module.module'
wizard_id
Many2one → ir.demo_failure.wizard
No public methods.
failure_ids
One2many → ir.demo_failure
readonly=True
string='Demo Installation Failures'
args: 'ir.demo_failure', 'wizard_id'
failures_count
Integer
compute='_compute_failures_count'
done(self)
export_fields
One2many → ir.exports.line
copy=True
string='Export ID'
args: 'ir.exports.line', 'export_id'
name
Char
string='Export Name'
resource
Char
index=True
No public methods.
export_id
Many2one → ir.exports
index=True
ondelete='cascade'
string='Export'
args: 'ir.exports'
name
Char
string='Field Name'
No public methods.
No new fields.
Public methods (3)db_id_for(self, model, field, subfield, value)
for_model(self, model, fromtype=str)
to_field(self, model, field, fromtype=str)
action_id
Many2one → ir.actions.actions
help='The menu action this filter applies to. When left empty the filter applies to all menus for this model.'
ondelete='cascade'
string='Action'
args: 'ir.actions.actions'
active
Boolean
default=True
context
Text
default='{}'
required=True
domain
Text
default='[]'
required=True
is_default
Boolean
string='Default Filter'
model_id
Selection
required=True
selection='_list_all_models'
string='Model'
name
Char
required=True
string='Filter Name'
translate=True
sort
Text
default='[]'
required=True
user_id
Many2one → res.users
help='The user this filter is private to. When left empty the filter is public and available to all users.'
ondelete='cascade'
string='User'
args: 'res.users'
copy(self, default=None)
create_or_replace(self, vals)
get_filters(self, model, action_id=None)
No new fields.
Public methods (2)binary_content(self, xmlid=None, model='ir.attachment', id=None, field='datas', unique=False, filename=None, filename_field='name', download=False, mimetype=None, default_mimetype='application/octet-stream', access_token=None)
routing_map(cls, key=None)
create_date
Datetime
readonly=True
string='Created on'
create_uid
Integer
readonly=True
string='Created by'
dbname
Char
index=True
string='Database Name'
func
Char
required=True
string='Function'
level
Char
index=True
line
Char
required=True
message
Text
required=True
name
Char
required=True
path
Char
required=True
type
Selection
index=True
required=True
args: [('client', 'Client'), ('server', 'Server')]
write_date
Datetime
readonly=True
string='Last Updated on'
write_uid
Integer
readonly=True
string='Last Updated by'
init(self)
active
Boolean
default=True
name
Char
index=True
required=True
string='Description'
sequence
Integer
default=10
help='When no specific mail server is requested for a mail, the highest priority one is used. Default priority is 10 (smaller number = higher priority)'
string='Priority'
smtp_debug
Boolean
help='If enabled, the full output of SMTP sessions will be written to the server log at DEBUG level (this is very verbose and may include confidential info!)'
string='Debugging'
smtp_encryption
Selection
default='none'
help='Choose the connection encryption scheme:\n- None: SMTP sessions are done in cleartext.\n- TLS (STARTTLS): TLS encryption is requested at start of SMTP session (Recommended)\n- SSL/TLS: SMTP sessions are encrypted with SSL/TLS through a dedicated port (default: 465)'
required=True
string='Connection Security'
args: [('none', 'None'), ('starttls', 'TLS (STARTTLS)'), ('ssl', 'SSL/TLS')]
smtp_host
Char
help='Hostname or IP of SMTP server'
required=True
string='SMTP Server'
smtp_pass
Char
groups='base.group_system'
help='Optional password for SMTP authentication'
string='Password'
smtp_port
Integer
default=25
help='SMTP Port. Usually 465 for SSL, and 25 or 587 for other cases.'
required=True
string='SMTP Port'
smtp_user
Char
groups='base.group_system'
help='Optional username for SMTP authentication'
string='Username'
build_email(self, email_from, email_to, subject, body, email_cc=None, email_bcc=None, reply_to=False, attachments=None, message_id=None, references=None, object_id=False, subtype='plain', headers=None, body_alternative=None, subtype_alternative='plain')
connect(self, host=None, port=None, user=None, password=None, encryption=None, smtp_debug=False, mail_server_id=None)
send_email(self, message, mail_server_id=None, smtp_server=None, smtp_port=None, smtp_user=None, smtp_password=None, smtp_encryption=None, smtp_debug=False, smtp_session=None)
test_smtp_connection(self)
access_ids
One2many → ir.model.access
string='Access'
args: 'ir.model.access', 'model_id'
count
Integer
compute='_compute_count'
help='Total number of records in this model'
string='Count (Incl. Archived)'
field_id
One2many → ir.model.fields
copy=True
default=_default_field_id
required=True
string='Fields'
args: 'ir.model.fields', 'model_id'
info
Text
string='Information'
inherited_model_ids
Many2many → ir.model
compute='_inherited_models'
help='The list of models that extends the current model.'
string='Inherited models'
args: 'ir.model'
model
Char
default='x_'
index=True
required=True
modules
Char
compute='_in_modules'
help='List of modules in which the object is defined or inherited'
string='In Apps'
name
Char
required=True
string='Model Description'
translate=True
order
Char
default='id'
help='SQL expression for ordering records in the model; e.g. "x_sequence asc, id desc"'
required=True
string='Order'
rule_ids
One2many → ir.rule
string='Record Rules'
args: 'ir.rule', 'model_id'
state
Selection
default='manual'
readonly=True
string='Type'
args: [('manual', 'Custom Object'), ('base', 'Base Object')]
transient
Boolean
string='Transient Model'
view_ids
One2many → ir.ui.view
compute='_view_ids'
string='Views'
args: 'ir.ui.view'
create(self, vals)
name_create(self, name)
unlink(self)
write(self, vals)
active
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).'
group_id
Many2one → res.groups
index=True
ondelete='restrict'
string='Group'
args: 'res.groups'
model_id
Many2one → ir.model
index=True
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
name
Char
index=True
required=True
perm_create
Boolean
string='Create Access'
perm_read
Boolean
string='Read Access'
perm_unlink
Boolean
string='Delete Access'
perm_write
Boolean
string='Write Access'
call_cache_clearing_methods(self)
check(self, model, mode='read', raise_exception=True)
check_group(self, model, mode, group_ids)
check_groups(self, group)
create(self, vals_list)
group_names_with_access(self, model_name, access_mode)
register_cache_clearing_method(cls, model, method)
unlink(self)
unregister_cache_clearing_method(cls, model, method)
write(self, values)
create_date
Datetime
definition
Char
help='PostgreSQL constraint definition'
message
Char
help='Error message returned when the constraint is violated.'
translate=True
model
Many2one → ir.model
index=True
ondelete='cascade'
required=True
args: 'ir.model'
module
Many2one → ir.module.module
index=True
ondelete='cascade'
required=True
args: 'ir.module.module'
name
Char
help='PostgreSQL constraint or foreign key name.'
index=True
required=True
string='Constraint'
type
Char
help='Type of the constraint: `f` for a foreign key, `u` for other constraints.'
index=True
required=True
size=1
string='Constraint Type'
write_date
Datetime
copy(self, default=None)
complete_name
Char
compute='_compute_complete_name'
string='Complete ID'
model
Char
required=True
string='Model Name'
module
Char
default=''
required=True
name
Char
help='External Key/Identifier that can be used for data integration with third-party systems'
required=True
string='External Identifier'
noupdate
Boolean
default=False
string='Non Updatable'
reference
Char
compute='_compute_reference'
readonly=True
store=False
string='Reference'
res_id
Many2oneReference
help='ID of the target record in the database'
model_field='model'
string='Record ID'
check_object_reference(self, module, xml_id, raise_on_access_error=False)
get_object(self, module, xml_id)
get_object_reference(self, module, xml_id)
name_get(self)
toggle_noupdate(self, model, res_id)
unlink(self)
xmlid_lookup(self, xmlid)
xmlid_to_object(self, xmlid, raise_if_not_found=False)
xmlid_to_res_id(self, xmlid, raise_if_not_found=False)
xmlid_to_res_model_res_id(self, xmlid, raise_if_not_found=False)
column1
Char
help='Column referring to the record in the model table'
string='Column 1'
column2
Char
help='Column referring to the record in the comodel table'
string='Column 2'
complete_name
Char
index=True
compute
Text
help="Code to compute the value of the field.\nIterate on the recordset 'self' and assign the field's value:\n\n for record in self:\n record['size'] = len(record.name)\n\nModules time, datetime, dateutil are available."
copied
Boolean
compute='_compute_copied'
help='Whether the value is copied when duplicating a record.'
readonly=False
store=True
string='Copied'
depends
Char
help='Dependencies of compute method; a list of comma-separated field names, like\n\n name, partner_id.name'
string='Dependencies'
domain
Char
default='[]'
help="The optional domain to restrict possible values for relationship fields, specified as a Python expression defining a list of triplets. For example: [('color','=','red')]"
field_description
Char
default=''
required=True
string='Field Label'
translate=True
group_expand
Boolean
help="If checked, all the records of the target model will be included\nin a grouped result (e.g. 'Group By' filters, Kanban columns, etc.).\nNote that it can significantly reduce performance if the target model\nof the field contains a lot of records; usually used on models with\nfew records (e.g. Stages, Job Positions, Event Types, etc.)."
string='Expand Groups'
groups
Many2many → res.groups
help
Text
string='Field Help'
translate=True
index
Boolean
string='Indexed'
model
Char
help='The technical name of the model this field belongs to'
index=True
required=True
string='Model Name'
model_id
Many2one → ir.model
help='The model this field belongs to'
index=True
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
modules
Char
compute='_in_modules'
help='List of modules in which the field is defined'
string='In Apps'
name
Char
default='x_'
index=True
required=True
string='Field Name'
on_delete
Selection
default='set null'
help='On delete property for many2one fields'
string='On Delete'
args: [('cascade', 'Cascade'), ('set null', 'Set NULL'), ('restrict', 'Restrict')]
readonly
Boolean
related
Char
help='The corresponding related field, if any. This must be a dot-separated list of field names.'
string='Related Field'
related_field_id
Many2one → ir.model.fields
compute='_compute_related_field_id'
ondelete='cascade'
store=True
string='Related field'
args: 'ir.model.fields'
relation
Char
help='For relationship fields, the technical name of the target model'
string='Related Model'
relation_field
Char
help='For one2many fields, the field on the target model that implement the opposite many2one relationship'
relation_field_id
Many2one → ir.model.fields
compute='_compute_relation_field_id'
ondelete='cascade'
store=True
string='Relation field'
args: 'ir.model.fields'
relation_table
Char
help='Used for custom many2many fields to define a custom relation table name'
required
Boolean
selectable
Boolean
default=True
selection
Char
compute='_compute_selection'
inverse='_inverse_selection'
string='Selection Options (Deprecated)'
selection_ids
One2many → ir.model.fields.selection
copy=True
string='Selection Options'
args: 'ir.model.fields.selection', 'field_id'
size
Integer
state
Selection
default='manual'
index=True
readonly=True
required=True
string='Type'
args: [('manual', 'Custom Field'), ('base', 'Base Field')]
store
Boolean
default=True
help='Whether the value is stored in the database.'
string='Stored'
translate
Boolean
help='Whether values for this field can be translated (enables the translation mechanism for that field)'
string='Translatable'
ttype
Selection
required=True
selection=FIELD_TYPES
string='Field Type'
create(self, vals)
name_get(self)
unlink(self)
write(self, vals)
field_id
Many2one → ir.model.fields
domain=[('ttype', 'in', ['selection', 'reference'])]
index=True
ondelete='cascade'
required=True
args: 'ir.model.fields'
name
Char
required=True
translate=True
sequence
Integer
default=1000
value
Char
required=True
create(self, vals_list)
unlink(self)
write(self, vals)
create_date
Datetime
model
Many2one → ir.model
index=True
ondelete='cascade'
required=True
args: 'ir.model'
module
Many2one → ir.module.module
index=True
ondelete='cascade'
required=True
args: 'ir.module.module'
name
Char
help='PostgreSQL table name implementing a many2many relation.'
index=True
required=True
string='Relation Name'
write_date
Datetime
No public methods.
No new fields.
Public methods (2)unlink(self)
write(self, values)
child_ids
One2many → ir.module.category
string='Child Applications'
args: 'ir.module.category', 'parent_id'
description
Text
string='Description'
translate=True
exclusive
Boolean
string='Exclusive'
module_ids
One2many → ir.module.module
string='Modules'
args: 'ir.module.module', 'category_id'
module_nr
Integer
compute='_compute_module_nr'
string='Number of Apps'
name
Char
index=True
required=True
string='Name'
translate=True
parent_id
Many2one → ir.module.category
index=True
string='Parent Application'
args: 'ir.module.category'
sequence
Integer
string='Sequence'
visible
Boolean
default=True
string='Visible'
xml_id
Char
compute='_compute_xml_id'
string='External ID'
No public methods.
application
Boolean
readonly=True
args: 'Application'
author
Char
readonly=True
args: 'Author'
auto_install
Boolean
help='An auto-installable module is automatically installed by the system when all its dependencies are satisfied. If the module has no dependency, it is always installed.'
args: 'Automatic Installation'
category_id
Many2one → ir.module.category
index=True
readonly=True
string='Category'
args: 'ir.module.category'
contributors
Text
readonly=True
args: 'Contributors'
demo
Boolean
default=False
readonly=True
args: 'Demo Data'
dependencies_id
One2many → ir.module.module.dependency
readonly=True
string='Dependencies'
args: 'ir.module.module.dependency', 'module_id'
description
Text
readonly=True
translate=True
args: 'Description'
description_html
Html
compute='_get_desc'
args: 'Description HTML'
exclusion_ids
One2many → ir.module.module.exclusion
readonly=True
string='Exclusions'
args: 'ir.module.module.exclusion', 'module_id'
has_iap
Boolean
compute='_compute_has_iap'
icon
Char
icon_image
Binary
compute='_get_icon_image'
string='Icon'
installed_version
Char
compute='_get_latest_version'
args: 'Latest Version'
latest_version
Char
readonly=True
args: 'Installed Version'
license
Selection
default='LGPL-3'
readonly=True
string='License'
args: [('GPL-2', 'GPL Version 2'), ('GPL-2 or any later version', 'GPL-2 or later version'), ('GPL-3', 'GPL Version 3'), ('GPL-3 or any later version', 'GPL-3 or later version'), ('AGPL-3', 'Affero GPL-3'), ('LGPL-3', 'LGPL Version 3'), ('Other OSI approved licence', 'Other OSI Approved License'), ('OEEL-1', 'Odoo Enterprise Edition License v1.0'), ('OPL-1', 'Odoo Proprietary License v1.0'), ('Other proprietary', 'Other Proprietary')]
maintainer
Char
readonly=True
args: 'Maintainer'
menus_by_module
Text
compute='_get_views'
store=True
string='Menus'
name
Char
index=True
readonly=True
required=True
args: 'Technical Name'
published_version
Char
readonly=True
args: 'Published Version'
reports_by_module
Text
compute='_get_views'
store=True
string='Reports'
sequence
Integer
default=100
args: 'Sequence'
shortdesc
Char
readonly=True
translate=True
args: 'Module Name'
state
Selection
default='uninstallable'
index=True
readonly=True
string='Status'
args: STATES
summary
Char
readonly=True
translate=True
args: 'Summary'
to_buy
Boolean
default=False
args: 'Odoo Enterprise Module'
url
Char
readonly=True
args: 'URL'
views_by_module
Text
compute='_get_views'
store=True
string='Views'
website
Char
readonly=True
args: 'Website'
button_immediate_install(self)
button_immediate_uninstall(self)
button_immediate_upgrade(self)
button_install(self)
button_install_cancel(self)
button_uninstall(self)
button_uninstall_cancel(self)
button_uninstall_wizard(self)
button_upgrade(self)
button_upgrade_cancel(self)
check_external_dependencies(cls, module_name, newstate='to install')
create(self, vals)
download(self, download=True)
downstream_dependencies(self, known_deps=None, exclude_states=('uninstalled', 'uninstallable', 'to remove'))
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
get_apps_server(self)
get_module_info(cls, name)
get_values_from_terp(terp)
install_from_urls(self, urls)
module_uninstall(self)
next(self)
search_panel_select_range(self, field_name, **kwargs)
unlink(self)
update_list(self)
upstream_dependencies(self, known_deps=None, exclude_states=('installed', 'uninstallable', 'to remove'))
auto_install_required
Boolean
default=True
help='Whether this dependency blocks automatic installation of the dependent'
depend_id
Many2one → ir.module.module
compute='_compute_depend'
search='_search_depend'
args: 'ir.module.module', 'Dependency'
module_id
Many2one → ir.module.module
ondelete='cascade'
args: 'ir.module.module', 'Module'
name
Char
index=True
state
Selection
compute='_compute_state'
string='Status'
args: DEP_STATES
No public methods.
exclusion_id
Many2one → ir.module.module
compute='_compute_exclusion'
search='_search_exclusion'
args: 'ir.module.module', 'Exclusion Module'
module_id
Many2one → ir.module.module
ondelete='cascade'
args: 'ir.module.module', 'Module'
name
Char
index=True
state
Selection
compute='_compute_state'
string='Status'
args: DEP_STATES
No public methods.
company_id
Many2one → res.company
index=True
string='Company'
args: 'res.company'
fields_id
Many2one → ir.model.fields
ondelete='cascade'
required=True
string='Field'
args: 'ir.model.fields'
name
Char
index=True
res_id
Char
help='If not set, acts as a default value for new resources'
index=True
string='Resource'
type
Selection
default='many2one'
index=True
required=True
args: [('char', 'Char'), ('float', 'Float'), ('boolean', 'Boolean'), ('integer', 'Integer'), ('text', 'Text'), ('binary', 'Binary'), ('many2one', 'Many2One'), ('date', 'Date'), ('datetime', 'DateTime'), ('selection', 'Selection')]
value_binary
Binary
attachment=False
value_datetime
Datetime
value_float
Float
value_integer
Integer
value_reference
Char
value_text
Text
create(self, vals_list)
get_by_record(self)
init(self)
search_multi(self, name, model, operator, value)
unlink(self)
write(self, values)
No new fields.
Public methods (3)compile(self, id_or_xml_id, options)
default_values(self)
get_asset_bundle(self, xmlid, files, env=None)
No new fields.
Public methods (5)attributes(self, record, field_name, options, values=None)
get_available_options(self)
record_to_html(self, record, field_name, options)
user_lang(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options=None)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (1)record_to_html(self, record, field_name, options)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
active
Boolean
default=True
help='If you uncheck the active field, it will disable the record rule without deleting it (if you delete a native record rule, it may be re-created when you reload the module).'
domain_force
Text
string='Domain'
groups
Many2many → res.groups
ondelete='restrict'
args: 'res.groups', 'rule_group_rel', 'rule_group_id', 'group_id'
model_id
Many2one → ir.model
index=True
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
name
Char
index=True
perm_create
Boolean
default=True
string='Apply for Create'
perm_read
Boolean
default=True
string='Apply for Read'
perm_unlink
Boolean
default=True
string='Apply for Delete'
perm_write
Boolean
default=True
string='Apply for Write'
clear_cache(self)
create(self, vals_list)
domain_get(self, model_name, mode='read')
unlink(self)
write(self, vals)
active
Boolean
default=True
code
Char
string='Sequence Code'
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
date_range_ids
One2many → ir.sequence.date_range
string='Subsequences'
args: 'ir.sequence.date_range', 'sequence_id'
implementation
Selection
default='standard'
help="While assigning a sequence number to a record, the 'no gap' sequence implementation ensures that each previous sequence number has been assigned already. While this sequence implementation will not skip any sequence number upon assignment, there can still be gaps in the sequence if records are deleted. The 'no gap' implementation is slower than the standard one."
required=True
string='Implementation'
args: [('standard', 'Standard'), ('no_gap', 'No gap')]
name
Char
required=True
number_increment
Integer
default=1
help='The next number of the sequence will be incremented by this number'
required=True
string='Step'
number_next
Integer
default=1
help='Next number of this sequence'
required=True
string='Next Number'
number_next_actual
Integer
compute='_get_number_next_actual'
help='Next number that will be used. This number can be incremented frequently so the displayed value might already be obsolete'
inverse='_set_number_next_actual'
string='Actual Next Number'
padding
Integer
default=0
help="Odoo will automatically adds some '0' on the left of the 'Next Number' to get the required padding size."
required=True
string='Sequence Size'
prefix
Char
help='Prefix value of the record for the sequence'
trim=False
suffix
Char
help='Suffix value of the record for the sequence'
trim=False
use_date_range
Boolean
string='Use subsequences per date_range'
create(self, values)
get(self, code)
get_id(self, sequence_code_or_id, code_or_id='id')
get_next_char(self, number_next)
next_by_code(self, sequence_code, sequence_date=None)
next_by_id(self, sequence_date=None)
unlink(self)
write(self, values)
date_from
Date
required=True
string='From'
date_to
Date
required=True
string='To'
number_next
Integer
default=1
help='Next number of this sequence'
required=True
string='Next Number'
number_next_actual
Integer
compute='_get_number_next_actual'
help='Next number that will be used. This number can be incremented frequently so the displayed value might already be obsolete'
inverse='_set_number_next_actual'
string='Actual Next Number'
sequence_id
Many2one → ir.sequence
ondelete='cascade'
required=True
string='Main Sequence'
args: 'ir.sequence'
create(self, values)
default_get(self, fields)
unlink(self)
write(self, values)
col1
Many2one → ir.model.fields
ondelete='cascade'
required=True
string='Field'
args: 'ir.model.fields'
evaluation_type
Selection
change_default=True
default='value'
required=True
args: [('value', 'Value'), ('reference', 'Reference'), ('equation', 'Python expression')], 'Evaluation Type'
resource_ref
Reference
compute='_compute_resource_ref'
inverse='_set_resource_ref'
selection='_selection_target_model'
string='Record'
server_id
Many2one → ir.actions.server
ondelete='cascade'
string='Related Server Action'
args: 'ir.actions.server'
value
Text
help='Expression containing a value specification. \nWhen Formula type is selected, this field may be a Python expression that can use the same values as for the code field on the server action.\nIf Value type is selected, the value will be used directly without evaluation.'
required=True
eval_value(self, eval_context=None)
comments
Text
index=True
string='Translation comments'
lang
Selection
selection='_get_languages'
string='Language'
validate=False
module
Char
help='Module this term belongs to'
index=True
name
Char
required=True
string='Translated field'
res_id
Integer
index=True
string='Record ID'
src
Text
string='Internal Source'
state
Selection
default='to_translate'
help='Automatically set to let administators find new terms that might need to be translated'
string='Status'
args: [('to_translate', 'To Translate'), ('inprogress', 'Translation in Progress'), ('translated', 'Translated')]
type
Selection
index=True
string='Type'
args: TRANSLATION_TYPE
value
Text
string='Translation Value'
check(self, mode)
create(self, vals_list)
get_field_help(self, model_name)
get_field_selection(self, model_name, field_name)
get_field_string(self, model_name)
get_technical_translations(self, model_name)
get_translations_for_webclient(self, mods, lang)
get_web_translations_hash(self, mods, lang)
insert_missing(self, field, records)
translate_fields(self, model, id, field=None)
unlink(self)
write(self, vals)
action
Reference
selection=[('ir.actions.report', 'ir.actions.report'), ('ir.actions.act_window', 'ir.actions.act_window'), ('ir.actions.act_url', 'ir.actions.act_url'), ('ir.actions.server', 'ir.actions.server'), ('ir.actions.client', 'ir.actions.client')]
active
Boolean
default=True
child_id
One2many → ir.ui.menu
string='Child IDs'
args: 'ir.ui.menu', 'parent_id'
complete_name
Char
compute='_compute_complete_name'
string='Full Path'
groups_id
Many2many → res.groups
help="If you have groups, the visibility of this menu will be based on these groups. If this field is empty, Odoo will compute visibility based on the related object's read access."
string='Groups'
args: 'res.groups', 'ir_ui_menu_group_rel', 'menu_id', 'gid'
name
Char
required=True
string='Menu'
translate=True
parent_id
Many2one → ir.ui.menu
index=True
ondelete='restrict'
string='Parent Menu'
args: 'ir.ui.menu'
parent_path
Char
index=True
sequence
Integer
default=10
web_icon
Char
string='Web Icon File'
web_icon_data
Binary
attachment=True
string='Web Icon Image'
copy(self, default=None)
create(self, vals_list)
get_user_roots(self)
load_menus(self, debug)
load_menus_root(self)
name_get(self)
read_image(self, path)
unlink(self)
write(self, values)
active
Boolean
default=True
help='If this view is inherited,\n* if True, the view always extends its parent\n* if False, the view currently does not extend its parent but can be enabled\n '
arch
Text
compute='_compute_arch'
help='This field should be used when accessing view arch. It will use translation.\n Note that it will read `arch_db` or `arch_fs` if in dev-xml mode.'
inverse='_inverse_arch'
string='View Architecture'
arch_base
Text
compute='_compute_arch_base'
help='This field is the same as `arch` field without translations'
inverse='_inverse_arch_base'
string='Base View Architecture'
arch_db
Text
help='This field stores the view arch.'
string='Arch Blob'
translate=xml_translate
arch_fs
Char
help='File from where the view originates.\n Useful to (hard) reset broken views or to read arch from file in dev-xml mode.'
string='Arch Filename'
arch_prev
Text
help='This field will save the current `arch_db` before writing on it.\n Useful to (soft) reset a broken view.'
string='Previous View Architecture'
arch_updated
Boolean
string='Modified Architecture'
field_parent
Char
string='Child Field'
groups_id
Many2many → res.groups
help='If this field is empty, the view applies to all users. Otherwise, the view applies to the users of those groups only.'
string='Groups'
args: 'res.groups', 'ir_ui_view_group_rel', 'view_id', 'group_id'
inherit_children_ids
One2many → ir.ui.view
string='Views which inherit from this one'
args: 'ir.ui.view', 'inherit_id'
inherit_id
Many2one → ir.ui.view
index=True
ondelete='restrict'
string='Inherited View'
args: 'ir.ui.view'
key
Char
mode
Selection
default='primary'
help="Only applies if this view inherits from an other one (inherit_id is not False/Null).\n\n* if extension (default), if this view is requested the closest primary view\nis looked up (via inherit_id), then all views inheriting from it with this\nview's model are applied\n* if primary, the closest primary view is fully resolved (even if it uses a\ndifferent model than this one), then this view's inheritance specs\n(<xpath/>) are applied, and the result is used as if it were this view's\nactual arch.\n"
required=True
string='View inheritance mode'
args: [('primary', 'Base view'), ('extension', 'Extension View')]
model
Char
index=True
model_data_id
Many2one → ir.model.data
compute='_compute_model_data_id'
search='_search_model_data_id'
string='Model Data'
args: 'ir.model.data'
name
Char
required=True
string='View Name'
priority
Integer
default=16
required=True
string='Sequence'
type
Selection
string='View Type'
args: [('tree', 'Tree'), ('form', 'Form'), ('graph', 'Graph'), ('pivot', 'Pivot'), ('calendar', 'Calendar'), ('gantt', 'Gantt'), ('kanban', 'Kanban'), ('search', 'Search'), ('qweb', 'QWeb')]
xml_id
Char
compute='_compute_xml_id'
help='ID of the view defined in xml file'
string='External ID'
apply_inheritance_specs(self, source, specs_tree, pre_locate=<expr>)
apply_view_inheritance(self, source, model)
clear_cache(self)
copy(self, default=None)
create(self, vals_list)
default_view(self, model, view_type)
distribute_branding(self, e, branding=None, parent_xpath='', index_map=ConstantMapping(1))
get_inheriting_views_arch(self, model)
get_view_id(self, template)
get_view_xmlid(self)
handle_view_error(self, message, *, raise_exception=True, from_exception=None, from_traceback=None)
inherit_branding(self, specs_tree)
is_node_branded(self, node)
locate_node(self, arch, spec)
open_translations(self)
postprocess(self, node, current_node_path, editable, name_manager)
postprocess_and_fields(self, node, model=None, validate=False)
read_combined(self, fields=None)
read_template(self, xml_id)
render_public_asset(self, template, values=None)
reset_arch(self, mode='soft')
unlink(self)
write(self, vals)
arch
Text
required=True
string='View Architecture'
ref_id
Many2one → ir.ui.view
index=True
ondelete='cascade'
required=True
string='Original View'
args: 'ir.ui.view'
user_id
Many2one → res.users
index=True
ondelete='cascade'
required=True
string='User'
args: 'res.users'
name_get(self)
No new fields.
Public methods (0)No public methods.
image
Char
string='Preview image src'
name
Char
pdf
Char
string='Preview pdf src'
sequence
Integer
default=50
view_id
Many2one → ir.ui.view
required=True
args: 'ir.ui.view', 'Document Template'
No public methods.
default
Boolean
dpi
Integer
default=90
required=True
args: 'Output DPI'
format
Selection
default='A4'
help='Select Proper Paper size'
args: <expr>, 'Paper size'
header_line
Boolean
default=False
args: 'Display a header line'
header_spacing
Integer
default=35
args: 'Header spacing'
margin_bottom
Float
default=20
args: 'Bottom Margin (mm)'
margin_left
Float
default=7
args: 'Left Margin (mm)'
margin_right
Float
default=7
args: 'Right Margin (mm)'
margin_top
Float
default=40
args: 'Top Margin (mm)'
name
Char
required=True
args: 'Name'
orientation
Selection
default='Landscape'
args: [('Landscape', 'Landscape'), ('Portrait', 'Portrait')], 'Orientation'
page_height
Integer
default=False
args: 'Page height (mm)'
page_width
Integer
default=False
args: 'Page width (mm)'
print_page_height
Float
compute='_compute_print_page_size'
args: 'Print page height (mm)'
print_page_width
Float
compute='_compute_print_page_size'
args: 'Print page width (mm)'
report_ids
One2many → ir.actions.report
help='Explicitly associated reports'
args: 'ir.actions.report', 'paperformat_id', 'Associated reports'
No public methods.
active
Boolean
default=True
bic
Char
help='Sometimes called BIC or Swift.'
index=True
args: 'Bank Identifier Code'
city
Char
country
Many2one → res.country
email
Char
name
Char
required=True
phone
Char
state
Many2one → res.country.state
domain="[('country_id', '=?', country)]"
args: 'res.country.state', 'Fed. State'
street
Char
street2
Char
zip
Char
name_get(self)
No new fields.
Public methods (0)No public methods.
bank_ids
One2many → res.partner.bank
help='Bank accounts related to this company'
string='Bank Accounts'
args: 'res.partner.bank', 'company_id'
base_onboarding_company_state
Selection
default='not_done'
string='State of the onboarding company step'
args: [('not_done', 'Not done'), ('just_done', 'Just done'), ('done', 'Done')]
child_ids
One2many → res.company
string='Child Companies'
args: 'res.company', 'parent_id'
city
Char
compute='_compute_address'
inverse='_inverse_city'
company_registry
Char
country_id
Many2one → res.country
compute='_compute_address'
inverse='_inverse_country'
string='Country'
args: 'res.country'
currency_id
Many2one → res.currency
default=<expr>
required=True
string='Currency'
args: 'res.currency'
email
Char
readonly=False
related='partner_id.email'
store=True
external_report_layout_id
Many2one → ir.ui.view
favicon
Binary
default=_get_default_favicon
help='This field holds the image used to display a favicon for a given company.'
string='Company Favicon'
font
Selection
default='Lato'
args: [('Lato', 'Lato'), ('Roboto', 'Roboto'), ('Open_Sans', 'Open Sans'), ('Montserrat', 'Montserrat'), ('Oswald', 'Oswald'), ('Raleway', 'Raleway')]
logo
Binary
default=_get_logo
readonly=False
related='partner_id.image_1920'
string='Company Logo'
logo_web
Binary
attachment=False
compute='_compute_logo_web'
store=True
name
Char
readonly=False
related='partner_id.name'
required=True
store=True
string='Company Name'
paperformat_id
Many2one → report.paperformat
default=<expr>
args: 'report.paperformat', 'Paper format'
parent_id
Many2one → res.company
index=True
string='Parent Company'
args: 'res.company'
partner_id
Many2one → res.partner
required=True
string='Partner'
args: 'res.partner'
phone
Char
readonly=False
related='partner_id.phone'
store=True
primary_color
Char
report_footer
Text
help='Footer text displayed at the bottom of all reports.'
string='Report Footer'
translate=True
report_header
Text
help='Appears by default on the top right corner of your printed documents (report header).'
string='Company Tagline'
secondary_color
Char
sequence
Integer
default=10
help='Used to order Companies in the company switcher'
state_id
Many2one → res.country.state
compute='_compute_address'
domain="[('country_id', '=?', country_id)]"
inverse='_inverse_state'
string='Fed. State'
args: 'res.country.state'
street
Char
compute='_compute_address'
inverse='_inverse_street'
street2
Char
compute='_compute_address'
inverse='_inverse_street2'
user_ids
Many2many → res.users
string='Accepted Users'
args: 'res.users', 'res_company_users_rel', 'cid', 'user_id'
vat
Char
readonly=False
related='partner_id.vat'
string='Tax ID'
website
Char
readonly=False
related='partner_id.website'
zip
Char
compute='_compute_address'
inverse='_inverse_zip'
action_open_base_onboarding_company(self)
action_save_onboarding_company_step(self)
cache_restart(self)
copy(self, default=None)
create(self, vals)
get_and_update_onbarding_state(self, onboarding_state, steps_states)
init(self)
open_company_edit_report(self)
set_onboarding_step_done(self, step_name)
write(self, values)
write_company_and_print_report(self)
No new fields.
Public methods (7)action_cancel(self)
action_next(self)
action_skip(self)
cancel(self)
execute(self)
next(self)
start(self)
No new fields.
Public methods (5)already_installed(self)
default_get(self, fields_list)
execute(self)
fields_get(self, fields=None, attributes=None)
modules_to_install(self)
No new fields.
Public methods (13)cancel(self)
copy(self, values)
create(self, values)
default_get(self, fields)
execute(self)
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
get_config_warning(self, msg)
get_option_name(self, full_field_name)
get_option_path(self, menu_xml_id)
get_values(self)
name_get(self)
onchange_module(self, field_value, module_name)
set_values(self)
address_format
Text
default='%(street)s\n%(street2)s\n%(city)s %(state_code)s %(zip)s\n%(country_name)s'
help="Display format to use for addresses belonging to this country.\n\nYou can use python-style string pattern with all the fields of the address (for example, use '%(street)s' to display the field 'street') plus\n%(state_name)s: the name of the state\n%(state_code)s: the code of the state\n%(country_name)s: the name of the country\n%(country_code)s: the code of the country"
string='Layout in Reports'
address_view_id
Many2one → ir.ui.view
comodel_name='ir.ui.view'
domain=[('model', '=', 'res.partner'), ('type', '=', 'form')]
help='Use this field if you want to replace the usual way to encode a complete address. Note that the address_format field is used to modify the way to display addresses (in reports for example), while this field is used to modify the input form for addresses.'
string='Input View'
code
Char
help='The ISO country code in two chars. \nYou can use this field for quick search.'
size=2
string='Country Code'
country_group_ids
Many2many → res.country.group
string='Country Groups'
args: 'res.country.group', 'res_country_res_country_group_rel', 'res_country_id', 'res_country_group_id'
currency_id
Many2one → res.currency
string='Currency'
args: 'res.currency'
image_url
Char
compute='_compute_image_url'
help='Url of static flag image'
string='Flag'
name
Char
help='The full name of the country.'
required=True
string='Country Name'
translate=True
name_position
Selection
default='before'
help='Determines where the customer/company name should be placed, i.e. after or before the address.'
string='Customer Name Position'
args: [('before', 'Before Address'), ('after', 'After Address')]
phone_code
Integer
string='Country Calling Code'
state_ids
One2many → res.country.state
string='States'
args: 'res.country.state', 'country_id'
state_required
Boolean
default=False
vat_label
Char
help='Use this field if you want to change vat label.'
string='Vat Label'
translate=True
zip_required
Boolean
default=True
create(self, vals_list)
get_address_fields(self)
write(self, vals)
country_ids
Many2many → res.country
string='Countries'
args: 'res.country', 'res_country_res_country_group_rel', 'res_country_group_id', 'res_country_id'
name
Char
required=True
translate=True
No public methods.
code
Char
help='The state code.'
required=True
string='State Code'
country_id
Many2one → res.country
required=True
string='Country'
args: 'res.country'
name
Char
help='Administrative divisions of a country. E.g. Fed. State, Departement, Canton'
required=True
string='State Name'
name_get(self)
active
Boolean
default=True
currency_subunit_label
Char
help='Currency Subunit Name'
string='Currency Subunit'
currency_unit_label
Char
help='Currency Unit Name'
string='Currency Unit'
date
Date
compute='_compute_date'
decimal_places
Integer
compute='_compute_decimal_places'
store=True
name
Char
help='Currency Code (ISO 4217)'
required=True
size=3
string='Currency'
position
Selection
default='after'
help='Determines where the currency symbol should be placed after or before the amount.'
string='Symbol Position'
args: [('after', 'After Amount'), ('before', 'Before Amount')]
rate
Float
compute='_compute_current_rate'
digits=0
help='The rate of the currency to the currency of rate 1.'
string='Current Rate'
rate_ids
One2many → res.currency.rate
string='Rates'
args: 'res.currency.rate', 'currency_id'
rounding
Float
default=0.01
digits=(12, 6)
string='Rounding Factor'
symbol
Char
help='Currency sign, to be used when printing amounts.'
required=True
amount_to_text(self, amount)
compare_amounts(self, amount1, amount2)
compute(self, from_amount, to_currency, round=True)
is_zero(self, amount)
name_get(self)
round(self, amount)
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
ondelete='cascade'
readonly=True
required=True
string='Currency'
args: 'res.currency'
name
Date
default=fields.Date.context_today
index=True
required=True
string='Date'
rate
Float
default=1.0
digits=0
help='The rate of the currency to the currency of rate 1'
No public methods.
category_id
Many2one → ir.module.category
index=True
string='Application'
args: 'ir.module.category'
color
Integer
string='Color Index'
comment
Text
translate=True
full_name
Char
compute='_compute_full_name'
search='_search_full_name'
string='Group Name'
menu_access
Many2many → ir.ui.menu
string='Access Menu'
args: 'ir.ui.menu', 'ir_ui_menu_group_rel', 'gid', 'menu_id'
model_access
One2many → ir.model.access
copy=True
string='Access Controls'
args: 'ir.model.access', 'group_id'
name
Char
required=True
translate=True
rule_groups
Many2many → ir.rule
domain=[('global', '=', False)]
string='Rules'
args: 'ir.rule', 'rule_group_rel', 'group_id', 'rule_group_id'
share
Boolean
help='Group created to set access rights for sharing data with some users.'
string='Share Group'
users
Many2many → res.users
view_access
Many2many → ir.ui.view
string='Views'
args: 'ir.ui.view', 'ir_ui_view_group_rel', 'group_id', 'view_id'
copy(self, default=None)
write(self, vals)
implied_ids
Many2many → res.groups
help='Users of this group automatically inherit those groups'
string='Inherits'
args: 'res.groups', 'res_groups_implied_rel', 'gid', 'hid'
trans_implied_ids
Many2many → res.groups
compute='_compute_trans_implied'
string='Transitively inherits'
args: 'res.groups'
create(self, vals_list)
write(self, values)
No new fields.
Public methods (5)create(self, values)
get_application_groups(self, domain)
get_groups_by_application(self)
unlink(self)
write(self, values)
active
Boolean
code
Char
help='This field is used to set/get locales for user'
required=True
string='Locale Code'
date_format
Char
default=DEFAULT_DATE_FORMAT
required=True
string='Date Format'
decimal_point
Char
default='.'
required=True
string='Decimal Separator'
trim=False
direction
Selection
default='ltr'
required=True
args: [('ltr', 'Left-to-Right'), ('rtl', 'Right-to-Left')]
flag_image
Image
flag_image_url
Char
compute=_compute_field_flag_image_url
grouping
Char
default='[]'
help="The Separator Format should be like [,n] where 0 < n :starting from Unit digit. -1 will end the separation. e.g. [3,2,-1] will represent 106500 to be 1,06,500; [1,2,-1] will represent it to be 106,50,0;[3] will represent it as 106,500. Provided ',' as the thousand separator in each case."
required=True
string='Separator Format'
iso_code
Char
help='This ISO code is the name of po files to use for translations'
string='ISO code'
name
Char
required=True
thousands_sep
Char
default=','
string='Thousands Separator'
trim=False
time_format
Char
default=DEFAULT_TIME_FORMAT
required=True
string='Time Format'
url_code
Char
help='The Lang Code displayed in the URL'
required=True
args: 'URL Code'
week_start
Selection
default='7'
required=True
string='First Day of Week'
args: [('1', 'Monday'), ('2', 'Tuesday'), ('3', 'Wednesday'), ('4', 'Thursday'), ('5', 'Friday'), ('6', 'Saturday'), ('7', 'Sunday')]
create(self, vals_list)
format(self, percent, value, grouping=False, monetary=False)
get_available(self)
get_installed(self)
get_sorted(self)
install_lang(self)
load_lang(self, lang, lang_name=None)
toggle_active(self)
unlink(self)
write(self, vals)
No new fields.
Public methods (0)No public methods.
active
Boolean
default=True
active_lang_count
Integer
compute='_compute_active_lang_count'
bank_ids
One2many → res.partner.bank
string='Banks'
args: 'res.partner.bank', 'partner_id'
barcode
Char
company_dependent=True
copy=False
help='Use a barcode to identify this contact.'
category_id
Many2many → res.partner.category
column1='partner_id'
column2='category_id'
default=_default_category
string='Tags'
args: 'res.partner.category'
child_ids
One2many → res.partner
domain=[('active', '=', True)]
string='Contact'
args: 'res.partner', 'parent_id'
city
Char
color
Integer
default=0
string='Color Index'
comment
Text
string='Notes'
commercial_company_name
Char
compute='_compute_commercial_company_name'
store=True
args: 'Company Name Entity'
commercial_partner_id
Many2one → res.partner
compute='_compute_commercial_partner'
index=True
store=True
string='Commercial Entity'
args: 'res.partner'
company_id
Many2one → res.company
index=True
args: 'res.company', 'Company'
company_name
Char
company_type
Selection
compute='_compute_company_type'
inverse='_write_company_type'
selection=[('person', 'Individual'), ('company', 'Company')]
string='Company Type'
contact_address
Char
compute='_compute_contact_address'
string='Complete Address'
country_id
Many2one → res.country
ondelete='restrict'
string='Country'
args: 'res.country'
credit_limit
Float
string='Credit Limit'
date
Date
index=True
display_name
Char
compute='_compute_display_name'
index=True
store=True
email
Char
email_formatted
Char
compute='_compute_email_formatted'
help='Format email address "Name <email@domain>"'
args: 'Formatted Email'
employee
Boolean
help='Check this box if this contact is an Employee.'
function
Char
string='Job Position'
industry_id
Many2one → res.partner.industry
is_company
Boolean
default=False
help='Check if the contact is a company, otherwise it is a person'
string='Is a Company'
lang
Selection
help='All the emails and documents sent to this contact will be translated in this language.'
string='Language'
args: _lang_get
mobile
Char
name
Char
index=True
parent_id
Many2one → res.partner
index=True
string='Related Company'
args: 'res.partner'
parent_name
Char
readonly=True
related='parent_id.name'
string='Parent name'
partner_latitude
Float
digits=(16, 5)
string='Geo Latitude'
partner_longitude
Float
digits=(16, 5)
string='Geo Longitude'
partner_share
Boolean
compute='_compute_partner_share'
help='Either customer (not a user), either shared user. Indicated the current partner is a customer without access or with a limited access created for sharing data.'
store=True
args: 'Share Partner'
phone
Char
ref
Char
index=True
string='Reference'
same_vat_partner_id
Many2one → res.partner
compute='_compute_same_vat_partner_id'
store=False
string='Partner with same Tax ID'
args: 'res.partner'
self
Many2one
comodel_name=_name
compute='_compute_get_ids'
state_id
Many2one → res.country.state
domain="[('country_id', '=?', country_id)]"
ondelete='restrict'
string='State'
args: 'res.country.state'
street
Char
street2
Char
title
Many2one → res.partner.title
type
Selection
default='contact'
help='Invoice & Delivery addresses are used in sales orders. Private addresses are only visible by authorized users.'
string='Address Type'
args: [('contact', 'Contact'), ('invoice', 'Invoice Address'), ('delivery', 'Delivery Address'), ('other', 'Other Address'), ('private', 'Private Address')]
tz
Selection
default=<expr>
help='When printing documents and exporting/importing data, time values are computed according to this timezone.\nIf the timezone is not set, UTC (Coordinated Universal Time) is used.\nAnywhere else, time values are computed according to the time offset of your web client.'
string='Timezone'
args: _tz_get
tz_offset
Char
compute='_compute_tz_offset'
invisible=True
string='Timezone offset'
user_id
Many2one → res.users
help='The internal user in charge of this contact.'
string='Salesperson'
args: 'res.users'
user_ids
One2many → res.users
auto_join=True
string='Users'
args: 'res.users', 'partner_id'
vat
Char
help='The Tax Identification Number. Complete it if the contact is subjected to government taxes. Used in some legal statements.'
index=True
string='Tax ID'
website
Char
zip
Char
change_default=True
address_get(self, adr_pref=None)
copy(self, default=None)
create(self, vals_list)
create_company(self)
default_get(self, default_fields)
find_or_create(self, email, assert_valid_email=False)
get_import_templates(self)
main_partner(self)
name_create(self, name)
name_get(self)
onchange_company_type(self)
onchange_email(self)
onchange_parent_id(self)
open_commercial_entity(self)
open_parent(self)
update_address(self, vals)
view_header_get(self, view_id, view_type)
write(self, vals)
acc_holder_name
Char
help='Account holder name, in case it is different than the name of the Account Holder'
string='Account Holder Name'
acc_number
Char
required=True
args: 'Account Number'
acc_type
Selection
compute='_compute_acc_type'
help='Bank account type: Normal or IBAN. Inferred from the bank account number.'
selection=<expr>
string='Type'
active
Boolean
default=True
bank_bic
Char
readonly=False
related='bank_id.bic'
bank_id
Many2one → res.bank
string='Bank'
args: 'res.bank'
bank_name
Char
readonly=False
related='bank_id.name'
company_id
Many2one → res.company
default=<expr>
ondelete='cascade'
readonly=True
args: 'res.company', 'Company'
currency_id
Many2one → res.currency
string='Currency'
args: 'res.currency'
partner_id
Many2one → res.partner
domain=['|', ('is_company', '=', True), ('parent_id', '=', False)]
index=True
ondelete='cascade'
required=True
args: 'res.partner', 'Account Holder'
sanitized_acc_number
Char
compute='_compute_sanitized_acc_number'
readonly=True
store=True
string='Sanitized Account Number'
sequence
Integer
default=10
get_supported_account_types(self)
retrieve_acc_type(self, acc_number)
active
Boolean
default=True
help='The active field allows you to hide the category without removing it.'
child_ids
One2many → res.partner.category
string='Child Tags'
args: 'res.partner.category', 'parent_id'
color
Integer
default=_get_default_color
string='Color Index'
name
Char
required=True
string='Tag Name'
translate=True
parent_id
Many2one → res.partner.category
index=True
ondelete='cascade'
string='Parent Category'
args: 'res.partner.category'
parent_path
Char
index=True
partner_ids
Many2many → res.partner
column1='category_id'
column2='partner_id'
copy=False
string='Partners'
args: 'res.partner'
name_get(self)
No new fields.
Public methods (0)No public methods.
active
Boolean
default=True
args: 'Active'
full_name
Char
translate=True
args: 'Full Name'
name
Char
translate=True
args: 'Name'
No public methods.
name
Char
required=True
string='Title'
translate=True
shortcut
Char
string='Abbreviation'
translate=True
No public methods.
No new fields.
Public methods (0)No public methods.
accesses_count
Integer
compute='_compute_accesses_count'
compute_sudo=True
help='Number of access rights that apply to the current user'
args: '# Access Rights'
action_id
Many2one → ir.actions.actions
help='If specified, this action will be opened at log on for this user, in addition to the standard menu.'
string='Home Action'
args: 'ir.actions.actions'
active
Boolean
default=True
active_partner
Boolean
readonly=True
related='partner_id.active'
string='Partner is Active'
companies_count
Integer
compute='_compute_companies_count'
string='Number of Companies'
company_id
Many2one → res.company
context={'user_preference': True}
default=<expr>
help='The default company for this user.'
required=True
string='Company'
args: 'res.company'
company_ids
Many2many → res.company
default=<expr>
string='Companies'
args: 'res.company', 'res_company_users_rel', 'user_id', 'cid'
email
Char
inherited=True
readonly=False
related='partner_id.email'
groups_count
Integer
compute='_compute_accesses_count'
compute_sudo=True
help='Number of groups that apply to the current user'
args: '# Groups'
groups_id
Many2many → res.groups
default=_default_groups
string='Groups'
args: 'res.groups', 'res_groups_users_rel', 'uid', 'gid'
image_1920
Image
default=_get_default_image
inherited=True
readonly=False
related='partner_id.image_1920'
log_ids
One2many → res.users.log
string='User log entries'
args: 'res.users.log', 'create_uid'
login
Char
help='Used to log into the system'
required=True
login_date
Datetime
readonly=False
related='log_ids.create_date'
string='Latest authentication'
name
Char
inherited=True
readonly=False
related='partner_id.name'
new_password
Char
compute='_compute_password'
help="Specify a value only when creating a user or if you're changing the user's password, otherwise leave empty. After a change of password, the user has to login again."
inverse='_set_new_password'
string='Set Password'
partner_id
Many2one → res.partner
auto_join=True
help='Partner-related data of the user'
index=True
ondelete='restrict'
required=True
string='Related Partner'
args: 'res.partner'
password
Char
compute='_compute_password'
copy=False
help="Keep empty if you don't want the user to be able to connect on the system."
inverse='_set_password'
invisible=True
rules_count
Integer
compute='_compute_accesses_count'
compute_sudo=True
help='Number of record rules that apply to the current user'
args: '# Record Rules'
share
Boolean
compute='_compute_share'
compute_sudo=True
help='External user with limited access, created only for the purpose of sharing data.'
store=True
string='Share User'
signature
Html
default=''
string='Email Signature'
tz_offset
Char
compute='_compute_tz_offset'
invisible=True
string='Timezone offset'
action_get(self)
action_show_accesses(self)
action_show_groups(self)
action_show_rules(self)
authenticate(cls, db, login, password, user_agent_env)
change_password(self, old_passwd, new_passwd)
check(cls, db, uid, passwd)
check_super(self, passwd)
context_get(self)
copy(self, default=None)
create(self, vals_list)
get_company_currency_id(self)
has_group(self, group_ext_id)
init(self)
on_change_login(self)
onchange_parent_id(self)
preference_change_password(self)
preference_save(self)
read(self, fields=None, load='_classic_read')
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
toggle_active(self)
unlink(self)
write(self, values)
No new fields.
Public methods (2)create(self, vals_list)
write(self, values)
No new fields.
Public methods (8)create(self, vals_list)
default_get(self, fields)
fields_get(self, allfields=None, attributes=None)
new(self, values={}, origin=None, ref=None)
onchange(self, values, field_name, field_onchange)
read(self, fields=None, load='_classic_read')
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
write(self, values)
api_key_ids
One2many → res.users.apikeys
string='API Keys'
args: 'res.users.apikeys', 'user_id'
api_key_wizard(self)
password
Char
request
Char
groups=fields.NO_ACCESS
readonly=True
run_check(self)
No new fields.
Public methods (0)No public methods.
arch_diff
Html
compute='_compute_arch_diff'
readonly=True
sanitize_tags=False
string='Architecture Diff'
arch_to_compare
Text
compute='_compute_arch_diff'
args: 'Arch To Compare To'
compare_view_id
Many2one → ir.ui.view
string='Compare To View'
args: 'ir.ui.view'
has_diff
Boolean
compute='_compute_arch_diff'
reset_mode
Selection
default='soft'
required=True
string='Reset Mode'
args: [('soft', 'Restore previous version (soft reset).'), ('hard', 'Reset to file version (hard reset).'), ('other_view', 'Reset to another view.')]
view_id
Many2one → ir.ui.view
string='View'
args: 'ir.ui.view'
view_name
Char
related='view_id.name'
string='View Name'
default_get(self, fields)
reset_view_button(self)
menu_id
Many2one → ir.ui.menu
ondelete='cascade'
required=True
string='Parent Menu'
args: 'ir.ui.menu'
name
Char
required=True
string='Menu Name'
menu_create(self)
access_ir_model_access_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_model_access' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_model_fields_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_model_fields' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_model_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_model' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_rule_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_rule' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_ui_view_custom_group_user — Access rule grants write/create/unlink on 'model_ir_ui_view_custom' to EVERY user (portal/public included): no group is set acl-global-writeaccess_report_layout — Access rule grants write/create/unlink on 'model_report_layout' to EVERY user (portal/public included): no group is set acl-global-writeaccess_res_groups_group_erp_manager — Access rule grants write/create/unlink on security model 'model_res_groups' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_res_users_group_erp_manager — Access rule grants write/create/unlink on security model 'model_res_users' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_res_users_log_all — Access rule grants create on 'model_res_users_log' to EVERY user (portal/public included): no group is set acl-global-writeFound by automated static analysis: these patterns are usually risky, but only a manual review of the module can confirm a real issue.
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
act_report_xml_search_view |
ir.actions.report.search | ir.actions.report | search | New |
act_report_xml_view |
ir.actions.report | ir.actions.report | form | New |
act_report_xml_view_tree |
ir.actions.report.tree | ir.actions.report | tree | New |
action_view |
ir.actions.actions | ir.actions.actions | form | New |
action_view_search |
ir.actions.actions.search | ir.actions.actions | search | New |
action_view_tree |
ir.actions.actions.tree | ir.actions.actions | tree | New |
base_onboarding_company_form |
base.company.onboarding.form | res.company | form | Inherits base.view_company_form |
base_partner_merge_automatic_wizard_form |
base.partner.merge.automatic.wizard.form | base.partner.merge.automatic.wizard | form | New |
change_password_wizard_user_tree_view |
Change Password Users | change.password.user | tree | New |
change_password_wizard_view |
Change Password | change.password.wizard | form | New |
config_wizard_step_view_form |
Config Wizard Steps | ir.actions.todo | form | New |
config_wizard_step_view_search |
ir.actions.todo.select | ir.actions.todo | search | New |
contact |
contact | ir.ui.view | qweb | New |
contact_name |
contact_name | ir.ui.view | qweb | New |
demo_failures_dialog |
Demo Failure Dialog | ir.demo_failure.wizard | form | New |
demo_force_install_form |
ir.demo.form | ir.demo | form | New |
edit_menu |
ir.ui.menu | tree | New | |
edit_menu_access |
ir.ui.menu | form | New | |
edit_menu_access_search |
ir.ui.menu.search | ir.ui.menu | search | New |
ir_access_view_form |
ir.model.access | form | New | |
ir_access_view_search |
ir.model.access | search | New | |
ir_access_view_tree |
ir.model.access.view.tree | ir.model.access | tree | New |
ir_access_view_tree_edition |
ir.model.access.view.tree.edition | ir.model.access | tree | New |
ir_actions_todo_tree |
Config Wizard Steps | ir.actions.todo | tree | New |
ir_cron_view_calendar |
ir.cron | calendar | New | |
ir_cron_view_form |
ir.cron.view.form | ir.cron | form | Inherits base.view_server_action_form |
ir_cron_view_search |
ir.cron | search | New | |
ir_cron_view_tree |
ir.cron | tree | New | |
ir_default_form_view |
ir.default form view | ir.default | form | New |
ir_default_search_view |
ir.default search view | ir.default | search | New |
ir_default_tree_view |
ir.default tree view | ir.default | tree | New |
ir_filters_view_form |
ir.filters | form | New | |
ir_filters_view_search |
ir.filters | search | New | |
ir_filters_view_tree |
ir.filters | tree | New | |
ir_logging_form_view |
ir.logging | form | New | |
ir_logging_search_view |
ir.logging | search | New | |
ir_logging_tree_view |
ir.logging | tree | New | |
ir_mail_server_form |
ir.mail_server | form | New | |
ir_mail_server_list |
ir.mail_server | tree | New | |
ir_property_view |
ir.property.form | ir.property | form | New |
ir_property_view_search |
ir.property.search | ir.property | search | New |
ir_property_view_tree |
ir.property.tree | ir.property | tree | New |
layout_preview |
layout preview | ir.ui.view | qweb | New |
module_form |
ir.module.module.form | ir.module.module | form | New |
module_tree |
ir.module.module.tree | ir.module.module | tree | New |
module_view_kanban |
Apps Kanban | ir.module.module | kanban | New |
onboarding_company_step |
onboarding_company_step | ir.ui.view | qweb | New |
onboarding_confetti |
onboarding_confetti | ir.ui.view | qweb | New |
onboarding_container |
onboarding_container | ir.ui.view | qweb | New |
onboarding_step |
onboarding_step | ir.ui.view | qweb | New |
paperformat_view_form |
paper_format_view_form | report.paperformat | form | New |
paperformat_view_tree |
paper_format_view_tree | report.paperformat | tree | New |
report_irmodeloverview |
report_irmodeloverview | ir.ui.view | qweb | New |
report_irmodulereference |
report_irmodulereference | ir.ui.view | qweb | New |
res_bank_view_search |
res.bank.view.search | res.bank | search | New |
res_config_installer |
Inheritable view for installer objects | res.config.installer | form | New |
res_config_settings_view_form |
res.config.settings.view.form | res.config.settings | form | New |
res_config_view_base |
res.config.view.base | res.config | form | New |
res_lang_form |
res.lang.form | res.lang | form | New |
res_lang_search |
res.lang.search | res.lang | search | New |
res_lang_tree |
res.lang.tree | res.lang | tree | New |
res_partner_category_view_search |
res.partner.category.view.search | res.partner.category | search | New |
res_partner_industry_view_form |
Industry | res.partner.industry | form | New |
res_partner_industry_view_search |
res.partner.industry.view.search | res.partner.industry | search | New |
res_partner_industry_view_tree |
Industry | res.partner.industry | tree | New |
res_partner_kanban_view |
res.partner.kanban | res.partner | kanban | New |
res_partner_view_form_private |
res.partner.view.form.private | res.partner | form | New |
reset_view_arch_wizard_view |
Reset View Architecture | reset.view.arch.wizard | form | New |
sequence_view |
ir.sequence | form | New | |
sequence_view_tree |
ir.sequence | tree | New | |
user_groups_view |
res.users.groups | res.users | form | Inherits view_users_form |
view_attachment_form |
ir.attachment | form | New | |
view_attachment_search |
ir.attachment | search | New | |
view_attachment_tree |
ir.attachment | tree | New | |
view_base_document_layout |
Document Layout | base.document.layout | form | New |
view_base_import_language |
Import Translation | base.language.import | form | New |
view_base_language_install |
Load a Translation | base.language.install | form | New |
view_base_module_uninstall |
Uninstall module | base.module.uninstall | form | New |
view_base_module_update |
Module Update | base.module.update | form | New |
view_base_module_upgrade |
Module Upgrade | base.module.upgrade | form | New |
view_base_module_upgrade_install |
Module Upgrade Install | base.module.upgrade | form | New |
view_company_form |
res.company.form | res.company | form | New |
view_company_tree |
res.company.tree | res.company | tree | New |
view_country_form |
res.country.form | res.country | form | New |
view_country_group_form |
res.country.group.form | res.country.group | form | New |
view_country_group_tree |
res.country.group.tree | res.country.group | tree | New |
view_country_state_form |
res.country.state.form | res.country.state | form | New |
view_country_state_search |
res.country.state.search | res.country.state | search | New |
view_country_state_tree |
res.country.state.tree | res.country.state | tree | New |
view_country_tree |
res.country.tree | res.country | tree | New |
view_currency_form |
res.currency.form | res.currency | form | New |
view_currency_kanban |
res.currency.kanban | res.currency | kanban | New |
view_currency_rate_form |
res.currency.rate.form | res.currency.rate | form | New |
view_currency_rate_search |
res.currency.rate.search | res.currency.rate | search | New |
view_currency_rate_tree |
res.currency.rate.tree | res.currency.rate | tree | New |
view_currency_search |
res.currency.search | res.currency | search | New |
view_currency_tree |
res.currency.tree | res.currency | tree | New |
view_decimal_precision_form |
Decimal Precision | decimal.precision | form | New |
view_decimal_precision_tree |
Decimal Precision List | decimal.precision | tree | New |
view_groups_form |
res.groups.form | res.groups | form | New |
view_groups_search |
res.groups.search | res.groups | search | New |
view_ir_config_form |
ir.config_parameter | form | New | |
view_ir_config_list |
ir.config_parameter | tree | New | |
view_ir_config_search |
ir.config_parameter | search | New | |
view_ir_mail_server_search |
ir.mail_server | search | New | |
view_menu |
ir.ui.menu.tree | ir.ui.menu | tree | New |
view_model_constraint_form |
ir.model.constraint | form | New | |
view_model_constraint_list |
ir.model.constraint | tree | New | |
view_model_data_form |
ir.model.data | form | New | |
view_model_data_list |
ir.model.data | tree | New | |
view_model_data_search |
ir.model.data | search | New | |
view_model_fields_form |
ir.model.fields | form | New | |
view_model_fields_search |
ir.model.fields | search | New | |
view_model_fields_selection_form |
ir.model.fields.selection | form | New | |
view_model_fields_selection_search |
ir.model.fields.selection | search | New | |
view_model_fields_selection_tree |
ir.model.fields.selection | tree | New | |
view_model_fields_tree |
ir.model.fields | tree | New | |
view_model_form |
ir.model | form | New | |
view_model_menu_create |
Create Menu | wizard.ir.model.menu.create | form | New |
view_model_relation_form |
ir.model.relation | form | New | |
view_model_relation_list |
ir.model.relation | tree | New | |
view_model_search |
ir.model | search | New | |
view_model_tree |
ir.model | tree | New | |
view_module_category_form |
ir.module.category.form | ir.module.category | form | New |
view_module_category_tree |
ir.module.category.tree | ir.module.category | tree | New |
view_module_filter |
ir.module.module.list.select | ir.module.module | search | New |
view_partner_address_form |
res.partner.form.address | res.partner | form | New |
view_partner_bank_form |
res.partner.bank.form | res.partner.bank | form | New |
view_partner_bank_search |
res.partner.bank.search | res.partner.bank | search | New |
view_partner_bank_tree |
res.partner.bank.tree | res.partner.bank | tree | New |
view_partner_category_form |
Contact Tags | res.partner.category | form | New |
view_partner_category_list |
Contact Tags | res.partner.category | tree | New |
view_partner_form |
res.partner.form | res.partner | form | New |
view_partner_short_form |
res.partner.form | res.partner | form | New |
view_partner_simple_form |
res.partner.simplified.form | res.partner | form | New |
view_partner_title_form |
res.partner.title.form | res.partner.title | form | New |
view_partner_title_tree |
res.partner.title.tree | res.partner.title | tree | New |
view_partner_tree |
res.partner.tree | res.partner | tree | New |
view_res_bank_form |
res.bank.form | res.bank | form | New |
view_res_bank_tree |
res.bank.tree | res.bank | tree | New |
view_res_company_kanban |
res.company.kanban | res.company | kanban | New |
view_res_partner_filter |
res.partner.select | res.partner | search | New |
view_res_users_kanban |
res.users.kanban | res.users | kanban | New |
view_rule_form |
ir.rule | form | New | |
view_rule_search |
ir.rule | search | New | |
view_rule_tree |
ir.rule | tree | New | |
view_sequence_search |
ir.sequence | search | New | |
view_server_action_form |
Server Action | ir.actions.server | form | New |
view_server_action_search |
ir.actions.server.search | ir.actions.server | search | New |
view_server_action_tree |
Server Actions | ir.actions.server | tree | New |
view_translation_dialog_tree |
ir.translation | tree | New | |
view_translation_form |
ir.translation | form | New | |
view_translation_lang_src_value_tree |
ir.translation | tree | New | |
view_translation_lang_value_tree |
ir.translation | tree | New | |
view_translation_search |
ir.translation | search | New | |
view_translation_tree |
ir.translation | tree | New | |
view_users_form |
res.users.form | res.users | form | New |
view_users_form_simple_modif |
res.users.preferences.form | res.users | form | New |
view_users_search |
res.users.search | res.users | search | New |
view_users_simple_form |
res.users.simplified.form | res.users | form | New |
view_users_tree |
res.users.tree | res.users | tree | New |
view_view_custom_form |
ir.ui.view.custom | form | New | |
view_view_custom_search |
ir.ui.view.custom | search | New | |
view_view_custom_tree |
ir.ui.view.custom | tree | New | |
view_view_form |
ir.ui.view | form | New | |
view_view_search |
ir.ui.view | search | New | |
view_view_tree |
ir.ui.view | tree | New | |
view_window_action_form |
ir.actions.windows.form | ir.actions.act_window | form | New |
view_window_action_search |
ir.actions.windows.search | ir.actions.act_window | search | New |
view_window_action_tree |
ir.actions.windows.tree | ir.actions.act_window | tree | New |
wizard_lang_export |
Export Translations | base.language.export | form | New |
wizard_update_translations |
Generate Missing Terms | base.update.translations | form | New |
| Route(s) | Handler | Auth | Type | Methods | Flags |
|---|---|---|---|---|---|
/jsonrpc |
RPC.jsonrpc |
none | json | ALL | |
/xmlrpc/<service> |
RPC.xmlrpc_1 |
none | http | POST | csrf off |
/xmlrpc/2/<service> |
RPC.xmlrpc_2 |
none | http | POST | csrf off |
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
company_id
Many2one → res.company
default=<expr>
required=True
args: 'res.company'
custom_colors
Boolean
compute='_compute_custom_colors'
readonly=False
external_report_layout_id
Many2one
readonly=False
related='company_id.external_report_layout_id'
font
Selection
readonly=False
related='company_id.font'
logo
Binary
readonly=False
related='company_id.logo'
logo_primary_color
Char
compute='_compute_logo_colors'
logo_secondary_color
Char
compute='_compute_logo_colors'
paperformat_id
Many2one
readonly=False
related='company_id.paperformat_id'
preview
Html
compute='_compute_preview'
preview_logo
Binary
related='logo'
string='Preview logo'
primary_color
Char
readonly=False
related='company_id.primary_color'
report_footer
Text
readonly=False
related='company_id.report_footer'
report_header
Text
readonly=False
related='company_id.report_header'
report_layout_id
Many2one → report.layout
secondary_color
Char
readonly=False
related='company_id.secondary_color'
action_open_base_document_layout(self, action_ref=None)
document_layout_save(self)
data
Binary
attachment=False
readonly=True
args: 'File'
format
Selection
default='csv'
required=True
string='File Format'
args: [('csv', 'CSV File'), ('po', 'PO File'), ('tgz', 'TGZ Archive')]
lang
Selection
default=NEW_LANG_KEY
required=True
string='Language'
args: _get_languages
modules
Many2many → ir.module.module
domain=[('state', '=', 'installed')]
string='Apps To Export'
args: 'ir.module.module', 'rel_modules_langexport', 'wiz_id', 'module_id'
name
Char
readonly=True
args: 'File Name'
state
Selection
default='choose'
args: [('choose', 'choose'), ('get', 'get')]
act_getfile(self)
code
Char
help='ISO Language and Country code, e.g. en_US'
required=True
size=6
args: 'ISO Code'
data
Binary
attachment=False
required=True
args: 'File'
filename
Char
required=True
args: 'File Name'
name
Char
required=True
args: 'Language Name'
overwrite
Boolean
default=True
help='If you enable this option, existing translations (including custom ones) will be overwritten and replaced by those in this file'
args: 'Overwrite Existing Terms'
import_lang(self)
lang
Selection
default=_default_language
required=True
string='Language'
args: _get_languages
overwrite
Boolean
default=True
help='If you check this box, your customized translations will be overwritten and replaced by the official ones.'
args: 'Overwrite Existing Terms'
state
Selection
default='init'
readonly=True
string='Status'
args: [('init', 'init'), ('done', 'done')]
lang_install(self)
reload(self)
model_ids
Many2many → ir.model
compute='_compute_model_ids'
string='Impacted data models'
args: 'ir.model'
module_id
Many2one → ir.module.module
domain=[('state', 'in', ['installed', 'to upgrade', 'to install'])]
ondelete='cascade'
readonly=True
required=True
string='Module'
args: 'ir.module.module'
module_ids
Many2many → ir.module.module
compute='_compute_module_ids'
string='Impacted modules'
args: 'ir.module.module'
show_all
Boolean
action_uninstall(self)
added
Integer
readonly=True
args: 'Number of modules added'
state
Selection
default='init'
readonly=True
args: [('init', 'init'), ('done', 'done')], 'Status'
updated
Integer
readonly=True
args: 'Number of modules updated'
action_module_open(self)
update_module(self)
module_info
Text
default=_default_module_info
readonly=True
args: 'Apps to Update'
config(self)
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
get_module_list(self)
upgrade_module(self)
upgrade_module_cancel(self)
current_line_id
Many2one → base.partner.merge.line
string='Current Line'
args: 'base.partner.merge.line'
dst_partner_id
Many2one → res.partner
string='Destination Contact'
args: 'res.partner'
exclude_contact
Boolean
exclude_journal_item
Boolean
group_by_email
Boolean
group_by_is_company
Boolean
group_by_name
Boolean
group_by_parent_id
Boolean
group_by_vat
Boolean
line_ids
One2many → base.partner.merge.line
string='Lines'
args: 'base.partner.merge.line', 'wizard_id'
maximum_group
Integer
number_group
Integer
readonly=True
args: 'Group of Contacts'
partner_ids
Many2many → res.partner
string='Contacts'
args: 'res.partner'
state
Selection
default='option'
readonly=True
required=True
string='State'
args: [('option', 'Option'), ('selection', 'Selection'), ('finished', 'Finished')]
action_merge(self)
action_skip(self)
action_start_automatic_process(self)
action_start_manual_process(self)
action_update_all_process(self)
default_get(self, fields)
parent_migration_process_cb(self)
aggr_ids
Char
required=True
args: 'Ids'
min_id
Integer
wizard_id
Many2one → base.partner.merge.automatic.wizard
No public methods.
lang
Selection
required=True
args: _get_languages, 'Language'
act_update(self)
new_passwd
Char
default=''
string='New Password'
user_id
Many2one → res.users
ondelete='cascade'
required=True
string='User'
args: 'res.users'
user_login
Char
readonly=True
string='User Login'
wizard_id
Many2one → change.password.wizard
ondelete='cascade'
required=True
string='Wizard'
args: 'change.password.wizard'
change_password_button(self)
user_ids
One2many → change.password.user
default=_default_user_ids
string='Users'
args: 'change.password.user', 'wizard_id'
change_password_button(self)
digits
Integer
default=2
required=True
args: 'Digits'
name
Char
index=True
required=True
args: 'Usage'
create(self, vals_list)
precision_get(self, application)
unlink(self)
write(self, data)
No new fields.
Public methods (0)No public methods.
image_1024
Image
max_height=1024
max_width=1024
related='image_1920'
store=True
args: 'Image 1024'
image_128
Image
max_height=128
max_width=128
related='image_1920'
store=True
args: 'Image 128'
image_1920
Image
max_height=1920
max_width=1920
args: 'Image'
image_256
Image
max_height=256
max_width=256
related='image_1920'
store=True
args: 'Image 256'
image_512
Image
max_height=512
max_width=512
related='image_1920'
store=True
args: 'Image 512'
No public methods.
name
Char
string='Action Name'
translate=True
target
Selection
default='new'
required=True
string='Action Target'
args: [('new', 'New Window'), ('self', 'This Window')]
type
Char
default='ir.actions.act_url'
url
Text
required=True
string='Action URL'
No public methods.
context
Char
default={}
help='Context dictionary as Python expression, empty by default (Default: {})'
required=True
string='Context Value'
domain
Char
help='Optional domain filtering of the destination data, as a Python expression'
string='Domain Value'
filter
Boolean
groups_id
Many2many → res.groups
string='Groups'
args: 'res.groups', 'ir_act_window_group_rel', 'act_id', 'gid'
limit
Integer
default=80
help='Default limit for the list view'
name
Char
string='Action Name'
translate=True
res_id
Integer
help="Database ID of record to open in form view, when ``view_mode`` is set to 'form' only"
string='Record ID'
res_model
Char
help='Model name of the object to open in the view window'
required=True
string='Destination Model'
search_view
Text
compute='_compute_search_view'
search_view_id
Many2one → ir.ui.view
string='Search View Ref.'
args: 'ir.ui.view'
target
Selection
default='current'
string='Target Window'
args: [('current', 'Current Window'), ('new', 'New Window'), ('inline', 'Inline Edit'), ('fullscreen', 'Full Screen'), ('main', 'Main action of Current Window')]
type
Char
default='ir.actions.act_window'
usage
Char
help='Used to filter menu and home actions from the user form.'
string='Action Usage'
view_id
Many2one → ir.ui.view
ondelete='set null'
string='View Ref.'
args: 'ir.ui.view'
view_ids
One2many → ir.actions.act_window.view
string='No of Views'
args: 'ir.actions.act_window.view', 'act_window_id'
view_mode
Char
default='tree,form'
help="Comma-separated list of allowed view modes, such as 'form', 'tree', 'calendar', etc. (Default: tree,form)"
required=True
views
Binary
compute='_compute_views'
help='This function field computes the ordered list of views that should be enabled when displaying the result of an action, federating view mode, views and reference view. The result is returned as an ordered list of pairs (view_id,view_mode).'
create(self, vals_list)
exists(self)
for_xml_id(self, module, xml_id)
read(self, fields=None, load='_classic_read')
unlink(self)
act_window_id
Many2one → ir.actions.act_window
ondelete='cascade'
string='Action'
args: 'ir.actions.act_window'
multi
Boolean
help='If set to true, the action will not be displayed on the right toolbar of a form view.'
string='On Multiple Doc.'
sequence
Integer
view_id
Many2one → ir.ui.view
string='View'
args: 'ir.ui.view'
view_mode
Selection
required=True
string='View Type'
args: VIEW_TYPES
No public methods.
type
Char
default='ir.actions.act_window_close'
No public methods.
binding_model_id
Many2one → ir.model
help='Setting a value makes this action available in the sidebar for the given model.'
ondelete='cascade'
args: 'ir.model'
binding_type
Selection
default='action'
required=True
args: [('action', 'Action'), ('report', 'Report')]
binding_view_types
Char
default='list,form'
help
Html
help='Optional help text for the users with a description of the target view, such as its usage and purpose.'
string='Action Description'
translate=True
name
Char
required=True
type
Char
required=True
string='Action Type'
xml_id
Char
compute='_compute_xml_id'
string='External ID'
create(self, vals_list)
get_bindings(self, model_name)
unlink(self)
write(self, vals)
context
Char
default='{}'
help='Context dictionary as Python expression, empty by default (Default: {})'
required=True
string='Context Value'
name
Char
string='Action Name'
translate=True
params
Binary
compute='_compute_params'
help='Arguments sent to the client along with the view tag'
inverse='_inverse_params'
string='Supplementary arguments'
params_store
Binary
attachment=False
readonly=True
string='Params storage'
res_model
Char
help='Optional model, mostly used for needactions.'
string='Destination Model'
tag
Char
help='An arbitrary string, interpreted by the client according to its own needs and wishes. There is no central tag repository across clients.'
required=True
string='Client action tag'
target
Selection
default='current'
string='Target Window'
args: [('current', 'Current Window'), ('new', 'New Window'), ('fullscreen', 'Full Screen'), ('main', 'Main action of Current Window')]
type
Char
default='ir.actions.client'
No public methods.
attachment
Char
help='This is the filename of the attachment used to store the printing result. Keep empty to not save the printed reports. You can use a python expression with the object and time variables.'
string='Save as Attachment Prefix'
attachment_use
Boolean
help='If you check this, then the second time the user prints with same attachment name, it returns the previous report.'
string='Reload from Attachment'
binding_type
Selection
default='report'
groups_id
Many2many → res.groups
string='Groups'
args: 'res.groups', 'res_groups_report_rel', 'uid', 'gid'
model
Char
required=True
string='Model Name'
model_id
Many2one → ir.model
compute='_compute_model_id'
search='_search_model_id'
string='Model'
args: 'ir.model'
multi
Boolean
help='If set to true, the action will not be displayed on the right toolbar of a form view.'
string='On Multiple Doc.'
name
Char
translate=True
paperformat_id
Many2one → report.paperformat
print_report_name
Char
help="This is the filename of the report going to download. Keep empty to not change the report filename. You can use a python expression with the 'object' and 'time' variables."
translate=True
args: 'Printed Report Name'
report_file
Char
help='The path to the main report file (depending on Report Type) or empty if the content is in another field'
readonly=False
required=False
store=True
string='Report File'
report_name
Char
help="For QWeb reports, name of the template used in the rendering. The method 'render_html' of the model 'report.template_name' will be called (if any) to give the html. For RML reports, this is the LocalService name."
required=True
string='Template Name'
report_type
Selection
default='qweb-pdf'
help='The type of the report that will be rendered, each one having its own rendering method. HTML means the report will be opened directly in your browser PDF means the report will be rendered using Wkhtmltopdf and downloaded by the user.'
required=True
args: [('qweb-html', 'HTML'), ('qweb-pdf', 'PDF'), ('qweb-text', 'Text')]
type
Char
default='ir.actions.report'
associated_view(self)
barcode(self, barcode_type, value, **kwargs)
create_action(self)
get_paperformat(self)
get_wkhtmltopdf_state(self)
postprocess_pdf_report(self, record, buffer)
render(self, res_ids, data=None)
render_qweb_html(self, docids, data=None)
render_qweb_pdf(self, res_ids=None, data=None)
render_qweb_text(self, docids, data=None)
render_template(self, template, values=None)
report_action(self, docids, data=None, config=True)
retrieve_attachment(self, record)
unlink_action(self)
child_ids
Many2many → ir.actions.server
help='Child server actions that will be executed. Note that the last return returned action value will be used as global return value.'
string='Child Actions'
args: 'ir.actions.server', 'rel_server_actions', 'server_id', 'action_id'
code
Text
default=DEFAULT_PYTHON_CODE
groups='base.group_system'
help='Write Python code that the action will execute. Some variables are available for use; help about python expression is given in the help tab.'
string='Python Code'
crud_model_id
Many2one → ir.model
help='Model for record creation / update. Set this field only to specify a different model than the base model.'
string='Create/Write Target Model'
args: 'ir.model'
crud_model_name
Char
readonly=True
related='crud_model_id.model'
string='Target Model'
fields_lines
One2many → ir.server.object.lines
copy=True
string='Value Mapping'
args: 'ir.server.object.lines', 'server_id'
groups_id
Many2many → res.groups
string='Groups'
args: 'res.groups', 'ir_act_server_group_rel', 'act_id', 'gid'
link_field_id
Many2one → ir.model.fields
help='Provide the field used to link the newly created record on the record on used by the server action.'
string='Link using field'
args: 'ir.model.fields'
model_id
Many2one → ir.model
help='Model on which the server action runs.'
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
model_name
Char
readonly=True
related='model_id.model'
store=True
string='Model Name'
name
Char
string='Action Name'
translate=True
sequence
Integer
default=5
help='When dealing with multiple actions, the execution order is based on the sequence. Low number means high priority.'
state
Selection
default='object_write'
help="Type of server action. The following values are available:\n- 'Execute Python Code': a block of python code that will be executed\n- 'Create': create a new record with new values\n- 'Update a Record': update the values of a record\n- 'Execute several actions': define an action that triggers several other server actions\n- 'Send Email': automatically send an email (Discuss)\n- 'Add Followers': add followers to a record (Discuss)\n- 'Create Next Activity': create an activity (Discuss)"
required=True
string='Action To Do'
args: [('code', 'Execute Python Code'), ('object_create', 'Create a new Record'), ('object_write', 'Update the Record'), ('multi', 'Execute several actions')]
type
Char
default='ir.actions.server'
usage
Selection
default='ir_actions_server'
required=True
string='Usage'
args: [('ir_actions_server', 'Server Action'), ('ir_cron', 'Scheduled Action')]
create_action(self)
run(self)
run_action_code_multi(self, action, eval_context=None)
run_action_multi(self, action, eval_context=None)
run_action_object_create(self, action, eval_context=None)
run_action_object_write(self, action, eval_context=None)
unlink_action(self)
action_id
Many2one → ir.actions.actions
index=True
required=True
string='Action'
args: 'ir.actions.actions'
name
Char
sequence
Integer
default=10
state
Selection
default='open'
required=True
string='Status'
args: [('open', 'To Do'), ('done', 'Done')]
action_launch(self)
action_open(self)
create(self, vals_list)
ensure_one_open_todo(self)
name_get(self)
unlink(self)
write(self, vals)
access_token
Char
groups='base.group_user'
args: 'Access Token'
checksum
Char
index=True
readonly=True
size=40
args: 'Checksum/SHA1'
company_id
Many2one → res.company
change_default=True
default=<expr>
string='Company'
args: 'res.company'
datas
Binary
compute='_compute_datas'
inverse='_inverse_datas'
string='File Content'
db_datas
Binary
attachment=False
args: 'Database Data'
description
Text
file_size
Integer
readonly=True
args: 'File Size'
index_content
Text
prefetch=False
readonly=True
args: 'Indexed Content'
mimetype
Char
readonly=True
args: 'Mime Type'
name
Char
required=True
args: 'Name'
public
Boolean
res_field
Char
readonly=True
args: 'Resource Field'
res_id
Many2oneReference
help='The record id this is attached to.'
model_field='res_model'
readonly=True
args: 'Resource ID'
res_model
Char
help='The database object this attachment will be attached to.'
readonly=True
args: 'Resource Model'
res_name
Char
compute='_compute_res_name'
args: 'Resource Name'
store_fname
Char
type
Selection
change_default=True
default='binary'
help='You can either upload a file from your computer or copy/paste an internet link to your file.'
required=True
string='Type'
args: [('url', 'URL'), ('binary', 'File')]
url
Char
index=True
size=1024
args: 'Url'
action_get(self)
check(self, mode, values=None)
copy(self, default=None)
create(self, vals_list)
force_storage(self)
generate_access_token(self)
get_attachment_by_key(self, key, extra_domain=None, order=None)
get_serve_attachment(self, url, extra_domain=None, extra_fields=None, order=None)
get_serving_groups(self)
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
unlink(self)
write(self, vals)
No new fields.
Public methods (1)power_on(self, *args, **kwargs)
key
Char
index=True
required=True
value
Text
required=True
create(self, vals_list)
get_param(self, key, default=False)
init(self, force=False)
set_param(self, key, value)
unlink(self)
write(self, vals)
active
Boolean
default=True
cron_name
Char
readonly=False
related='ir_actions_server_id.name'
store=True
args: 'Name'
doall
Boolean
help='Specify if missed occurrences should be executed when the server restarts.'
string='Repeat Missed'
interval_number
Integer
default=1
help='Repeat every x.'
interval_type
Selection
default='months'
string='Interval Unit'
args: [('minutes', 'Minutes'), ('hours', 'Hours'), ('days', 'Days'), ('weeks', 'Weeks'), ('months', 'Months')]
ir_actions_server_id
Many2one → ir.actions.server
delegate=True
ondelete='restrict'
required=True
args: 'ir.actions.server', 'Server action'
lastcall
Datetime
help='Previous time the cron ran successfully, provided to the job through the context on the `lastcall` key'
string='Last Execution Date'
nextcall
Datetime
default=fields.Datetime.now
help='Next planned execution date for this job.'
required=True
string='Next Execution Date'
numbercall
Integer
default=1
help='How many times the method is called,\na negative number indicates no limit.'
string='Number of Calls'
priority
Integer
default=5
help='The priority of the job, as an integer: 0 means higher priority, 10 means lower priority.'
user_id
Many2one → res.users
default=<expr>
required=True
string='Scheduler User'
args: 'res.users'
create(self, values)
default_get(self, fields_list)
method_direct_trigger(self)
toggle(self, model, domain)
try_write(self, values)
unlink(self)
write(self, vals)
company_id
Many2one → res.company
help='If set, action binding only applies for this company'
index=True
ondelete='cascade'
string='Company'
args: 'res.company'
condition
Char
help='If set, applies the default upon condition.'
args: 'Condition'
field_id
Many2one → ir.model.fields
index=True
ondelete='cascade'
required=True
string='Field'
args: 'ir.model.fields'
json_value
Char
required=True
args: 'Default Value (JSON format)'
user_id
Many2one → res.users
help='If set, action binding only applies for this user.'
index=True
ondelete='cascade'
string='User'
args: 'res.users'
create(self, vals_list)
discard_records(self, records)
discard_values(self, model_name, field_name, values)
get(self, model_name, field_name, user_id=False, company_id=False, condition=False)
get_model_defaults(self, model_name, condition=False)
set(self, model_name, field_name, value, user_id=False, company_id=False, condition=False)
unlink(self)
write(self, vals)
No new fields.
Public methods (1)install_demo(self)
error
Char
string='Error'
module_id
Many2one → ir.module.module
required=True
string='Module'
args: 'ir.module.module'
wizard_id
Many2one → ir.demo_failure.wizard
No public methods.
failure_ids
One2many → ir.demo_failure
readonly=True
string='Demo Installation Failures'
args: 'ir.demo_failure', 'wizard_id'
failures_count
Integer
compute='_compute_failures_count'
done(self)
export_fields
One2many → ir.exports.line
copy=True
string='Export ID'
args: 'ir.exports.line', 'export_id'
name
Char
string='Export Name'
resource
Char
index=True
No public methods.
export_id
Many2one → ir.exports
index=True
ondelete='cascade'
string='Export'
args: 'ir.exports'
name
Char
string='Field Name'
No public methods.
No new fields.
Public methods (3)db_id_for(self, model, field, subfield, value)
for_model(self, model, fromtype=str)
to_field(self, model, field, fromtype=str)
action_id
Many2one → ir.actions.actions
help='The menu action this filter applies to. When left empty the filter applies to all menus for this model.'
ondelete='cascade'
string='Action'
args: 'ir.actions.actions'
active
Boolean
default=True
context
Text
default='{}'
required=True
domain
Text
default='[]'
required=True
is_default
Boolean
string='Default Filter'
model_id
Selection
required=True
selection='_list_all_models'
string='Model'
name
Char
required=True
string='Filter Name'
translate=True
sort
Text
default='[]'
required=True
user_id
Many2one → res.users
help='The user this filter is private to. When left empty the filter is public and available to all users.'
ondelete='cascade'
string='User'
args: 'res.users'
copy(self, default=None)
create_or_replace(self, vals)
get_filters(self, model, action_id=None)
No new fields.
Public methods (2)binary_content(self, xmlid=None, model='ir.attachment', id=None, field='datas', unique=False, filename=None, filename_field='name', download=False, mimetype=None, default_mimetype='application/octet-stream', access_token=None)
routing_map(cls, key=None)
create_date
Datetime
readonly=True
string='Created on'
create_uid
Integer
readonly=True
string='Created by'
dbname
Char
index=True
string='Database Name'
func
Char
required=True
string='Function'
level
Char
index=True
line
Char
required=True
message
Text
required=True
name
Char
required=True
path
Char
required=True
type
Selection
index=True
required=True
args: [('client', 'Client'), ('server', 'Server')]
write_date
Datetime
readonly=True
string='Last Updated on'
write_uid
Integer
readonly=True
string='Last Updated by'
init(self)
active
Boolean
default=True
name
Char
index=True
required=True
string='Description'
sequence
Integer
default=10
help='When no specific mail server is requested for a mail, the highest priority one is used. Default priority is 10 (smaller number = higher priority)'
string='Priority'
smtp_debug
Boolean
help='If enabled, the full output of SMTP sessions will be written to the server log at DEBUG level (this is very verbose and may include confidential info!)'
string='Debugging'
smtp_encryption
Selection
default='none'
help='Choose the connection encryption scheme:\n- None: SMTP sessions are done in cleartext.\n- TLS (STARTTLS): TLS encryption is requested at start of SMTP session (Recommended)\n- SSL/TLS: SMTP sessions are encrypted with SSL/TLS through a dedicated port (default: 465)'
required=True
string='Connection Security'
args: [('none', 'None'), ('starttls', 'TLS (STARTTLS)'), ('ssl', 'SSL/TLS')]
smtp_host
Char
help='Hostname or IP of SMTP server'
required=True
string='SMTP Server'
smtp_pass
Char
groups='base.group_system'
help='Optional password for SMTP authentication'
string='Password'
smtp_port
Integer
default=25
help='SMTP Port. Usually 465 for SSL, and 25 or 587 for other cases.'
required=True
string='SMTP Port'
smtp_user
Char
groups='base.group_system'
help='Optional username for SMTP authentication'
string='Username'
build_email(self, email_from, email_to, subject, body, email_cc=None, email_bcc=None, reply_to=False, attachments=None, message_id=None, references=None, object_id=False, subtype='plain', headers=None, body_alternative=None, subtype_alternative='plain')
connect(self, host=None, port=None, user=None, password=None, encryption=None, smtp_debug=False, mail_server_id=None)
send_email(self, message, mail_server_id=None, smtp_server=None, smtp_port=None, smtp_user=None, smtp_password=None, smtp_encryption=None, smtp_debug=False, smtp_session=None)
test_smtp_connection(self)
access_ids
One2many → ir.model.access
string='Access'
args: 'ir.model.access', 'model_id'
count
Integer
compute='_compute_count'
help='Total number of records in this model'
string='Count (Incl. Archived)'
field_id
One2many → ir.model.fields
copy=True
default=_default_field_id
required=True
string='Fields'
args: 'ir.model.fields', 'model_id'
info
Text
string='Information'
inherited_model_ids
Many2many → ir.model
compute='_inherited_models'
help='The list of models that extends the current model.'
string='Inherited models'
args: 'ir.model'
model
Char
default='x_'
index=True
required=True
modules
Char
compute='_in_modules'
help='List of modules in which the object is defined or inherited'
string='In Apps'
name
Char
required=True
string='Model Description'
translate=True
rule_ids
One2many → ir.rule
string='Record Rules'
args: 'ir.rule', 'model_id'
state
Selection
default='manual'
readonly=True
string='Type'
args: [('manual', 'Custom Object'), ('base', 'Base Object')]
transient
Boolean
string='Transient Model'
view_ids
One2many → ir.ui.view
compute='_view_ids'
string='Views'
args: 'ir.ui.view'
create(self, vals)
name_create(self, name)
unlink(self)
write(self, vals)
active
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).'
group_id
Many2one → res.groups
index=True
ondelete='cascade'
string='Group'
args: 'res.groups'
model_id
Many2one → ir.model
domain=[('transient', '=', False)]
index=True
ondelete='cascade'
required=True
string='Object'
args: 'ir.model'
name
Char
index=True
required=True
perm_create
Boolean
string='Create Access'
perm_read
Boolean
string='Read Access'
perm_unlink
Boolean
string='Delete Access'
perm_write
Boolean
string='Write Access'
call_cache_clearing_methods(self)
check(self, model, mode='read', raise_exception=True)
check_group(self, model, mode, group_ids)
check_groups(self, group)
create(self, vals_list)
group_names_with_access(self, model_name, access_mode)
register_cache_clearing_method(cls, model, method)
unlink(self)
unregister_cache_clearing_method(cls, model, method)
write(self, values)
create_date
Datetime
definition
Char
help='PostgreSQL constraint definition'
message
Char
help='Error message returned when the constraint is violated.'
translate=True
model
Many2one → ir.model
index=True
ondelete='cascade'
required=True
args: 'ir.model'
module
Many2one → ir.module.module
index=True
required=True
args: 'ir.module.module'
name
Char
help='PostgreSQL constraint or foreign key name.'
index=True
required=True
string='Constraint'
type
Char
help='Type of the constraint: `f` for a foreign key, `u` for other constraints.'
index=True
required=True
size=1
string='Constraint Type'
write_date
Datetime
copy(self, default=None)
complete_name
Char
compute='_compute_complete_name'
string='Complete ID'
date_init
Datetime
default=fields.Datetime.now
string='Init Date'
date_update
Datetime
default=fields.Datetime.now
string='Update Date'
model
Char
required=True
string='Model Name'
module
Char
default=''
required=True
name
Char
help='External Key/Identifier that can be used for data integration with third-party systems'
required=True
string='External Identifier'
noupdate
Boolean
default=False
string='Non Updatable'
reference
Char
compute='_compute_reference'
readonly=True
store=False
string='Reference'
res_id
Integer
help='ID of the target record in the database'
string='Record ID'
check_object_reference(self, module, xml_id, raise_on_access_error=False)
get_object(self, module, xml_id)
get_object_reference(self, module, xml_id)
name_get(self)
toggle_noupdate(self, model, res_id)
unlink(self)
xmlid_lookup(self, xmlid)
xmlid_to_object(self, xmlid, raise_if_not_found=False)
xmlid_to_res_id(self, xmlid, raise_if_not_found=False)
xmlid_to_res_model_res_id(self, xmlid, raise_if_not_found=False)
column1
Char
help='Column referring to the record in the model table'
string='Column 1'
column2
Char
help='Column referring to the record in the comodel table'
string='Column 2'
complete_name
Char
index=True
compute
Text
help="Code to compute the value of the field.\nIterate on the recordset 'self' and assign the field's value:\n\n for record in self:\n record['size'] = len(record.name)\n\nModules time, datetime, dateutil are available."
copied
Boolean
help='Whether the value is copied when duplicating a record.'
string='Copied'
depends
Char
help='Dependencies of compute method; a list of comma-separated field names, like\n\n name, partner_id.name'
string='Dependencies'
domain
Char
default='[]'
help="The optional domain to restrict possible values for relationship fields, specified as a Python expression defining a list of triplets. For example: [('color','=','red')]"
field_description
Char
default=''
required=True
string='Field Label'
translate=True
groups
Many2many → res.groups
help
Text
string='Field Help'
translate=True
index
Boolean
string='Indexed'
model
Char
help='The technical name of the model this field belongs to'
index=True
required=True
string='Object Name'
model_id
Many2one → ir.model
help='The model this field belongs to'
index=True
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
modules
Char
compute='_in_modules'
help='List of modules in which the field is defined'
string='In Apps'
name
Char
default='x_'
index=True
required=True
string='Field Name'
on_delete
Selection
default='set null'
help='On delete property for many2one fields'
string='On Delete'
args: [('cascade', 'Cascade'), ('set null', 'Set NULL'), ('restrict', 'Restrict')]
readonly
Boolean
related
Char
help='The corresponding related field, if any. This must be a dot-separated list of field names.'
string='Related Field'
related_field_id
Many2one → ir.model.fields
compute='_compute_related_field_id'
ondelete='cascade'
store=True
string='Related field'
args: 'ir.model.fields'
relation
Char
help='For relationship fields, the technical name of the target model'
string='Object Relation'
relation_field
Char
help='For one2many fields, the field on the target model that implement the opposite many2one relationship'
relation_field_id
Many2one → ir.model.fields
compute='_compute_relation_field_id'
ondelete='cascade'
store=True
string='Relation field'
args: 'ir.model.fields'
relation_table
Char
help='Used for custom many2many fields to define a custom relation table name'
required
Boolean
selectable
Boolean
default=True
selection
Char
compute='_compute_selection'
inverse='_inverse_selection'
string='Selection Options (Deprecated)'
selection_ids
One2many → ir.model.fields.selection
copy=True
string='Selection Options'
args: 'ir.model.fields.selection', 'field_id'
size
Integer
state
Selection
default='manual'
index=True
readonly=True
required=True
string='Type'
args: [('manual', 'Custom Field'), ('base', 'Base Field')]
store
Boolean
default=True
help='Whether the value is stored in the database.'
string='Stored'
translate
Boolean
help='Whether values for this field can be translated (enables the translation mechanism for that field)'
string='Translatable'
ttype
Selection
required=True
selection=FIELD_TYPES
string='Field Type'
create(self, vals)
name_get(self)
unlink(self)
write(self, vals)
field_id
Many2one → ir.model.fields
domain=[('ttype', 'in', ['selection', 'reference'])]
index=True
ondelete='cascade'
required=True
args: 'ir.model.fields'
name
Char
required=True
translate=True
sequence
Integer
default=1000
value
Char
required=True
create(self, vals_list)
unlink(self)
write(self, vals)
create_date
Datetime
model
Many2one → ir.model
index=True
required=True
args: 'ir.model'
module
Many2one → ir.module.module
index=True
required=True
args: 'ir.module.module'
name
Char
help='PostgreSQL table name implementing a many2many relation.'
index=True
required=True
string='Relation Name'
write_date
Datetime
No public methods.
No new fields.
Public methods (2)unlink(self)
write(self, values)
child_ids
One2many → ir.module.category
string='Child Applications'
args: 'ir.module.category', 'parent_id'
description
Text
string='Description'
translate=True
exclusive
Boolean
string='Exclusive'
module_ids
One2many → ir.module.module
string='Modules'
args: 'ir.module.module', 'category_id'
module_nr
Integer
compute='_compute_module_nr'
string='Number of Apps'
name
Char
index=True
required=True
string='Name'
translate=True
parent_id
Many2one → ir.module.category
index=True
string='Parent Application'
args: 'ir.module.category'
sequence
Integer
string='Sequence'
visible
Boolean
default=True
string='Visible'
xml_id
Char
compute='_compute_xml_id'
string='External ID'
No public methods.
application
Boolean
readonly=True
args: 'Application'
author
Char
readonly=True
args: 'Author'
auto_install
Boolean
help='An auto-installable module is automatically installed by the system when all its dependencies are satisfied. If the module has no dependency, it is always installed.'
args: 'Automatic Installation'
category_id
Many2one → ir.module.category
index=True
readonly=True
string='Category'
args: 'ir.module.category'
contributors
Text
readonly=True
args: 'Contributors'
demo
Boolean
default=False
readonly=True
args: 'Demo Data'
dependencies_id
One2many → ir.module.module.dependency
readonly=True
string='Dependencies'
args: 'ir.module.module.dependency', 'module_id'
description
Text
readonly=True
translate=True
args: 'Description'
description_html
Html
compute='_get_desc'
args: 'Description HTML'
exclusion_ids
One2many → ir.module.module.exclusion
readonly=True
string='Exclusions'
args: 'ir.module.module.exclusion', 'module_id'
icon
Char
icon_image
Binary
compute='_get_icon_image'
string='Icon'
installed_version
Char
compute='_get_latest_version'
args: 'Latest Version'
latest_version
Char
readonly=True
args: 'Installed Version'
license
Selection
default='LGPL-3'
readonly=True
string='License'
args: [('GPL-2', 'GPL Version 2'), ('GPL-2 or any later version', 'GPL-2 or later version'), ('GPL-3', 'GPL Version 3'), ('GPL-3 or any later version', 'GPL-3 or later version'), ('AGPL-3', 'Affero GPL-3'), ('LGPL-3', 'LGPL Version 3'), ('Other OSI approved licence', 'Other OSI Approved License'), ('OEEL-1', 'Odoo Enterprise Edition License v1.0'), ('OPL-1', 'Odoo Proprietary License v1.0'), ('Other proprietary', 'Other Proprietary')]
maintainer
Char
readonly=True
args: 'Maintainer'
menus_by_module
Text
compute='_get_views'
store=True
string='Menus'
name
Char
index=True
readonly=True
required=True
args: 'Technical Name'
published_version
Char
readonly=True
args: 'Published Version'
reports_by_module
Text
compute='_get_views'
store=True
string='Reports'
sequence
Integer
default=100
args: 'Sequence'
shortdesc
Char
readonly=True
translate=True
args: 'Module Name'
state
Selection
default='uninstallable'
index=True
readonly=True
string='Status'
args: STATES
summary
Char
readonly=True
translate=True
args: 'Summary'
to_buy
Boolean
default=False
args: 'Odoo Enterprise Module'
url
Char
readonly=True
args: 'URL'
views_by_module
Text
compute='_get_views'
store=True
string='Views'
website
Char
readonly=True
args: 'Website'
button_immediate_install(self)
button_immediate_uninstall(self)
button_immediate_upgrade(self)
button_install(self)
button_install_cancel(self)
button_uninstall(self)
button_uninstall_cancel(self)
button_uninstall_wizard(self)
button_upgrade(self)
button_upgrade_cancel(self)
check_external_dependencies(cls, module_name, newstate='to install')
create(self, vals)
download(self, download=True)
downstream_dependencies(self, known_deps=None, exclude_states=('uninstalled', 'uninstallable', 'to remove'))
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
get_apps_server(self)
get_module_info(cls, name)
get_values_from_terp(terp)
install_from_urls(self, urls)
module_uninstall(self)
next(self)
unlink(self)
update_list(self)
upstream_dependencies(self, known_deps=None, exclude_states=('installed', 'uninstallable', 'to remove'))
auto_install_required
Boolean
default=True
help='Whether this dependency blocks automatic installation of the dependent'
depend_id
Many2one → ir.module.module
compute='_compute_depend'
search='_search_depend'
args: 'ir.module.module', 'Dependency'
module_id
Many2one → ir.module.module
ondelete='cascade'
args: 'ir.module.module', 'Module'
name
Char
index=True
state
Selection
compute='_compute_state'
string='Status'
args: DEP_STATES
No public methods.
exclusion_id
Many2one → ir.module.module
compute='_compute_exclusion'
search='_search_exclusion'
args: 'ir.module.module', 'Exclusion Module'
module_id
Many2one → ir.module.module
ondelete='cascade'
args: 'ir.module.module', 'Module'
name
Char
index=True
state
Selection
compute='_compute_state'
string='Status'
args: DEP_STATES
No public methods.
company_id
Many2one → res.company
index=True
string='Company'
args: 'res.company'
fields_id
Many2one → ir.model.fields
index=True
ondelete='cascade'
required=True
string='Field'
args: 'ir.model.fields'
name
Char
index=True
res_id
Char
help='If not set, acts as a default value for new resources'
index=True
string='Resource'
type
Selection
default='many2one'
index=True
required=True
args: [('char', 'Char'), ('float', 'Float'), ('boolean', 'Boolean'), ('integer', 'Integer'), ('text', 'Text'), ('binary', 'Binary'), ('many2one', 'Many2One'), ('date', 'Date'), ('datetime', 'DateTime'), ('selection', 'Selection')]
value_binary
Binary
attachment=False
value_datetime
Datetime
value_float
Float
value_integer
Integer
value_reference
Char
value_text
Text
create(self, vals_list)
get(self, name, model, res_id=False)
get_by_record(self)
get_multi(self, name, model, ids)
search_multi(self, name, model, operator, value)
set_multi(self, name, model, values, default_value=None)
unlink(self)
write(self, values)
No new fields.
Public methods (5)compile(self, id_or_xml_id, options)
default_values(self)
get_asset_bundle(self, xmlid, files, env=None)
load(self, name, options)
render(self, id_or_xml_id, values=None, **options)
No new fields.
Public methods (5)attributes(self, record, field_name, options, values=None)
get_available_options(self)
record_to_html(self, record, field_name, options)
user_lang(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options=None)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (1)precision(self, field, options=None)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (1)record_to_html(self, record, field_name, options)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
active
Boolean
default=True
help='If you uncheck the active field, it will disable the record rule without deleting it (if you delete a native record rule, it may be re-created when you reload the module).'
domain_force
Text
string='Domain'
groups
Many2many → res.groups
model_id
Many2one → ir.model
index=True
ondelete='cascade'
required=True
string='Object'
args: 'ir.model'
name
Char
index=True
perm_create
Boolean
default=True
string='Apply for Create'
perm_read
Boolean
default=True
string='Apply for Read'
perm_unlink
Boolean
default=True
string='Apply for Delete'
perm_write
Boolean
default=True
string='Apply for Write'
clear_cache(self)
create(self, vals_list)
domain_get(self, model_name, mode='read')
unlink(self)
write(self, vals)
active
Boolean
default=True
code
Char
string='Sequence Code'
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
date_range_ids
One2many → ir.sequence.date_range
string='Subsequences'
args: 'ir.sequence.date_range', 'sequence_id'
implementation
Selection
default='standard'
help="While assigning a sequence number to a record, the 'no gap' sequence implementation ensures that each previous sequence number has been assigned already. While this sequence implementation will not skip any sequence number upon assignation, there can still be gaps in the sequence if records are deleted. The 'no gap' implementation is slower than the standard one."
required=True
string='Implementation'
args: [('standard', 'Standard'), ('no_gap', 'No gap')]
name
Char
required=True
number_increment
Integer
default=1
help='The next number of the sequence will be incremented by this number'
required=True
string='Step'
number_next
Integer
default=1
help='Next number of this sequence'
required=True
string='Next Number'
number_next_actual
Integer
compute='_get_number_next_actual'
help='Next number that will be used. This number can be incremented frequently so the displayed value might already be obsolete'
inverse='_set_number_next_actual'
string='Actual Next Number'
padding
Integer
default=0
help="Odoo will automatically adds some '0' on the left of the 'Next Number' to get the required padding size."
required=True
string='Sequence Size'
prefix
Char
help='Prefix value of the record for the sequence'
trim=False
suffix
Char
help='Suffix value of the record for the sequence'
trim=False
use_date_range
Boolean
string='Use subsequences per date_range'
create(self, values)
get(self, code)
get_id(self, sequence_code_or_id, code_or_id='id')
get_next_char(self, number_next)
next_by_code(self, sequence_code, sequence_date=None)
next_by_id(self, sequence_date=None)
unlink(self)
write(self, values)
date_from
Date
required=True
string='From'
date_to
Date
required=True
string='To'
number_next
Integer
default=1
help='Next number of this sequence'
required=True
string='Next Number'
number_next_actual
Integer
compute='_get_number_next_actual'
help='Next number that will be used. This number can be incremented frequently so the displayed value might already be obsolete'
inverse='_set_number_next_actual'
string='Actual Next Number'
sequence_id
Many2one → ir.sequence
ondelete='cascade'
required=True
string='Main Sequence'
args: 'ir.sequence'
create(self, values)
default_get(self, fields)
unlink(self)
write(self, values)
col1
Many2one → ir.model.fields
required=True
string='Field'
args: 'ir.model.fields'
evaluation_type
Selection
change_default=True
default='value'
required=True
args: [('value', 'Value'), ('reference', 'Reference'), ('equation', 'Python expression')], 'Evaluation Type'
resource_ref
Reference
compute='_compute_resource_ref'
inverse='_set_resource_ref'
selection='_selection_target_model'
string='Record'
server_id
Many2one → ir.actions.server
ondelete='cascade'
string='Related Server Action'
args: 'ir.actions.server'
value
Text
help='Expression containing a value specification. \nWhen Formula type is selected, this field may be a Python expression that can use the same values as for the code field on the server action.\nIf Value type is selected, the value will be used directly without evaluation.'
required=True
eval_value(self, eval_context=None)
comments
Text
index=True
string='Translation comments'
lang
Selection
selection='_get_languages'
string='Language'
validate=False
module
Char
help='Module this term belongs to'
index=True
name
Char
required=True
string='Translated field'
res_id
Integer
index=True
string='Record ID'
src
Text
string='Internal Source'
state
Selection
default='to_translate'
help='Automatically set to let administators find new terms that might need to be translated'
string='Status'
args: [('to_translate', 'To Translate'), ('inprogress', 'Translation in Progress'), ('translated', 'Translated')]
type
Selection
index=True
string='Type'
args: TRANSLATION_TYPE
value
Text
string='Translation Value'
check(self, mode)
create(self, vals_list)
get_field_help(self, model_name)
get_field_selection(self, model_name, field_name)
get_field_string(self, model_name)
get_technical_translations(self, model_name)
get_translations_for_webclient(self, mods, lang)
get_web_translations_hash(self, mods, lang)
insert_missing(self, field, records)
translate_fields(self, model, id, field=None)
unlink(self)
write(self, vals)
action
Reference
selection=[('ir.actions.report', 'ir.actions.report'), ('ir.actions.act_window', 'ir.actions.act_window'), ('ir.actions.act_url', 'ir.actions.act_url'), ('ir.actions.server', 'ir.actions.server'), ('ir.actions.client', 'ir.actions.client')]
active
Boolean
default=True
child_id
One2many → ir.ui.menu
string='Child IDs'
args: 'ir.ui.menu', 'parent_id'
complete_name
Char
compute='_compute_complete_name'
string='Full Path'
groups_id
Many2many → res.groups
help="If you have groups, the visibility of this menu will be based on these groups. If this field is empty, Odoo will compute visibility based on the related object's read access."
string='Groups'
args: 'res.groups', 'ir_ui_menu_group_rel', 'menu_id', 'gid'
name
Char
required=True
string='Menu'
translate=True
parent_id
Many2one → ir.ui.menu
index=True
ondelete='restrict'
string='Parent Menu'
args: 'ir.ui.menu'
parent_path
Char
index=True
sequence
Integer
default=10
web_icon
Char
string='Web Icon File'
web_icon_data
Binary
attachment=True
string='Web Icon Image'
copy(self, default=None)
create(self, vals_list)
get_user_roots(self)
load_menus(self, debug)
load_menus_root(self)
name_get(self)
read_image(self, path)
unlink(self)
write(self, values)
active
Boolean
default=True
help='If this view is inherited,\n* if True, the view always extends its parent\n* if False, the view currently does not extend its parent but can be enabled\n '
arch
Text
compute='_compute_arch'
help='This field should be used when accessing view arch. It will use translation.\n Note that it will read `arch_db` or `arch_fs` if in dev-xml mode.'
inverse='_inverse_arch'
string='View Architecture'
arch_base
Text
compute='_compute_arch_base'
help='This field is the same as `arch` field without translations'
inverse='_inverse_arch_base'
string='Base View Architecture'
arch_db
Text
help='This field stores the view arch.'
string='Arch Blob'
translate=xml_translate
arch_fs
Char
help='File from where the view originates.\n Useful to (hard) reset broken views or to read arch from file in dev-xml mode.'
string='Arch Filename'
arch_prev
Text
help='This field will save the current `arch_db` before writing on it.\n Useful to (soft) reset a broken view.'
string='Previous View Architecture'
arch_updated
Boolean
string='Modified Architecture'
field_parent
Char
string='Child Field'
groups_id
Many2many → res.groups
help='If this field is empty, the view applies to all users. Otherwise, the view applies to the users of those groups only.'
string='Groups'
args: 'res.groups', 'ir_ui_view_group_rel', 'view_id', 'group_id'
inherit_children_ids
One2many → ir.ui.view
string='Views which inherit from this one'
args: 'ir.ui.view', 'inherit_id'
inherit_id
Many2one → ir.ui.view
index=True
ondelete='restrict'
string='Inherited View'
args: 'ir.ui.view'
key
Char
mode
Selection
default='primary'
help="Only applies if this view inherits from an other one (inherit_id is not False/Null).\n\n* if extension (default), if this view is requested the closest primary view\nis looked up (via inherit_id), then all views inheriting from it with this\nview's model are applied\n* if primary, the closest primary view is fully resolved (even if it uses a\ndifferent model than this one), then this view's inheritance specs\n(<xpath/>) are applied, and the result is used as if it were this view's\nactual arch.\n"
required=True
string='View inheritance mode'
args: [('primary', 'Base view'), ('extension', 'Extension View')]
model
Char
index=True
model_data_id
Many2one → ir.model.data
compute='_compute_model_data_id'
search='_search_model_data_id'
string='Model Data'
args: 'ir.model.data'
model_ids
One2many → ir.model.data
auto_join=True
domain=[('model', '=', 'ir.ui.view')]
string='Models'
args: 'ir.model.data', 'res_id'
name
Char
required=True
string='View Name'
priority
Integer
default=16
required=True
string='Sequence'
type
Selection
string='View Type'
args: [('tree', 'Tree'), ('form', 'Form'), ('graph', 'Graph'), ('pivot', 'Pivot'), ('calendar', 'Calendar'), ('diagram', 'Diagram'), ('gantt', 'Gantt'), ('kanban', 'Kanban'), ('search', 'Search'), ('qweb', 'QWeb')]
xml_id
Char
compute='_compute_xml_id'
help='ID of the view defined in xml file'
string='External ID'
add_on_change(self, model_name, arch)
apply_inheritance_specs(self, source, specs_tree, inherit_id, pre_locate=<expr>)
apply_view_inheritance(self, source, source_id, model, root_id=None)
clear_cache(self)
copy(self, default=None)
create(self, vals_list)
default_view(self, model, view_type)
distribute_branding(self, e, branding=None, parent_xpath='', index_map=ConstantMapping(1))
get_inheriting_views_arch(self, view_id, model)
get_view_id(self, template)
get_view_xmlid(self)
graph_get(self, id, model, node_obj, conn_obj, src_node, des_node, label, scale)
inherit_branding(self, specs_tree, view_id, root_id)
is_node_branded(self, node)
locate_node(self, arch, spec)
open_translations(self)
postprocess(self, model, node, view_id, in_tree_view, model_fields)
postprocess_and_fields(self, model, node, view_id)
raise_view_error(self, message, view_id)
read_combined(self, fields=None)
read_template(self, xml_id)
render(self, values=None, engine='ir.qweb', minimal_qcontext=False)
render_template(self, template, values=None, engine='ir.qweb')
reset_arch(self, mode='soft')
toggle(self)
translate_qweb(self, arch, lang)
unlink(self)
write(self, vals)
arch
Text
required=True
string='View Architecture'
ref_id
Many2one → ir.ui.view
index=True
ondelete='cascade'
required=True
string='Original View'
args: 'ir.ui.view'
user_id
Many2one → res.users
index=True
ondelete='cascade'
required=True
string='User'
args: 'res.users'
name_get(self)
No new fields.
Public methods (0)No public methods.
image
Char
string='Preview image src'
name
Char
pdf
Char
string='Preview pdf src'
view_id
Many2one → ir.ui.view
required=True
args: 'ir.ui.view', 'Document Template'
No public methods.
default
Boolean
dpi
Integer
default=90
required=True
args: 'Output DPI'
format
Selection
default='A4'
help='Select Proper Paper size'
args: <expr>, 'Paper size'
header_line
Boolean
default=False
args: 'Display a header line'
header_spacing
Integer
default=35
args: 'Header spacing'
margin_bottom
Float
default=20
args: 'Bottom Margin (mm)'
margin_left
Float
default=7
args: 'Left Margin (mm)'
margin_right
Float
default=7
args: 'Right Margin (mm)'
margin_top
Float
default=40
args: 'Top Margin (mm)'
name
Char
required=True
args: 'Name'
orientation
Selection
default='Landscape'
args: [('Landscape', 'Landscape'), ('Portrait', 'Portrait')], 'Orientation'
page_height
Integer
default=False
args: 'Page height (mm)'
page_width
Integer
default=False
args: 'Page width (mm)'
print_page_height
Float
compute='_compute_print_page_size'
args: 'Print page height (mm)'
print_page_width
Float
compute='_compute_print_page_size'
args: 'Print page width (mm)'
report_ids
One2many → ir.actions.report
help='Explicitly associated reports'
args: 'ir.actions.report', 'paperformat_id', 'Associated reports'
No public methods.
active
Boolean
default=True
bic
Char
help='Sometimes called BIC or Swift.'
index=True
args: 'Bank Identifier Code'
city
Char
country
Many2one → res.country
email
Char
name
Char
required=True
phone
Char
state
Many2one → res.country.state
domain="[('country_id', '=?', country)]"
args: 'res.country.state', 'Fed. State'
street
Char
street2
Char
zip
Char
name_get(self)
account_no
Char
string='Account No.'
bank_ids
One2many → res.partner.bank
help='Bank accounts related to this company'
string='Bank Accounts'
args: 'res.partner.bank', 'company_id'
base_onboarding_company_state
Selection
default='not_done'
string='State of the onboarding company step'
args: [('not_done', 'Not done'), ('just_done', 'Just done'), ('done', 'Done')]
child_ids
One2many → res.company
string='Child Companies'
args: 'res.company', 'parent_id'
city
Char
compute='_compute_address'
inverse='_inverse_city'
company_registry
Char
country_id
Many2one → res.country
compute='_compute_address'
inverse='_inverse_country'
string='Country'
args: 'res.country'
currency_id
Many2one → res.currency
default=<expr>
required=True
string='Currency'
args: 'res.currency'
email
Char
readonly=False
related='partner_id.email'
store=True
external_report_layout_id
Many2one → ir.ui.view
favicon
Binary
default=_get_default_favicon
help='This field holds the image used to display a favicon for a given company.'
string='Company Favicon'
font
Selection
default='Lato'
args: [('Lato', 'Lato'), ('Roboto', 'Roboto'), ('Open_Sans', 'Open Sans'), ('Montserrat', 'Montserrat'), ('Oswald', 'Oswald'), ('Raleway', 'Raleway')]
logo
Binary
default=_get_logo
readonly=False
related='partner_id.image_1920'
string='Company Logo'
logo_web
Binary
attachment=False
compute='_compute_logo_web'
store=True
name
Char
readonly=False
related='partner_id.name'
required=True
store=True
string='Company Name'
paperformat_id
Many2one → report.paperformat
default=<expr>
args: 'report.paperformat', 'Paper format'
parent_id
Many2one → res.company
index=True
string='Parent Company'
args: 'res.company'
partner_id
Many2one → res.partner
required=True
string='Partner'
args: 'res.partner'
phone
Char
readonly=False
related='partner_id.phone'
store=True
primary_color
Char
report_footer
Text
help='Footer text displayed at the bottom of all reports.'
string='Report Footer'
translate=True
report_header
Text
help='Appears by default on the top right corner of your printed documents (report header).'
string='Company Tagline'
secondary_color
Char
sequence
Integer
default=10
help='Used to order Companies in the company switcher'
state_id
Many2one → res.country.state
compute='_compute_address'
inverse='_inverse_state'
string='Fed. State'
args: 'res.country.state'
street
Char
compute='_compute_address'
inverse='_inverse_street'
street2
Char
compute='_compute_address'
inverse='_inverse_street2'
user_ids
Many2many → res.users
string='Accepted Users'
args: 'res.users', 'res_company_users_rel', 'cid', 'user_id'
vat
Char
readonly=False
related='partner_id.vat'
string='Tax ID'
website
Char
readonly=False
related='partner_id.website'
zip
Char
compute='_compute_address'
inverse='_inverse_zip'
action_open_base_onboarding_company(self)
action_save_onboarding_company_step(self)
cache_restart(self)
copy(self, default=None)
create(self, vals)
get_and_update_onbarding_state(self, onboarding_state, steps_states)
init(self)
on_change_country(self, country_id)
open_company_edit_report(self)
set_onboarding_step_done(self, step_name)
update_scss(self)
write(self, values)
write_company_and_print_report(self)
No new fields.
Public methods (7)action_cancel(self)
action_next(self)
action_skip(self)
cancel(self)
execute(self)
next(self)
start(self)
No new fields.
Public methods (5)already_installed(self)
default_get(self, fields_list)
execute(self)
fields_get(self, fields=None, attributes=None)
modules_to_install(self)
No new fields.
Public methods (12)cancel(self)
copy(self, values)
default_get(self, fields)
execute(self)
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
get_config_warning(self, msg)
get_option_name(self, full_field_name)
get_option_path(self, menu_xml_id)
get_values(self)
name_get(self)
onchange_module(self, field_value, module_name)
set_values(self)
address_format
Text
default='%(street)s\n%(street2)s\n%(city)s %(state_code)s %(zip)s\n%(country_name)s'
help="Display format to use for addresses belonging to this country.\n\nYou can use python-style string pattern with all the fields of the address (for example, use '%(street)s' to display the field 'street') plus\n%(state_name)s: the name of the state\n%(state_code)s: the code of the state\n%(country_name)s: the name of the country\n%(country_code)s: the code of the country"
string='Layout in Reports'
address_view_id
Many2one → ir.ui.view
comodel_name='ir.ui.view'
domain=[('model', '=', 'res.partner'), ('type', '=', 'form')]
help='Use this field if you want to replace the usual way to encode a complete address. Note that the address_format field is used to modify the way to display addresses (in reports for example), while this field is used to modify the input form for addresses.'
string='Input View'
code
Char
help='The ISO country code in two chars. \nYou can use this field for quick search.'
size=2
string='Country Code'
country_group_ids
Many2many → res.country.group
string='Country Groups'
args: 'res.country.group', 'res_country_res_country_group_rel', 'res_country_id', 'res_country_group_id'
currency_id
Many2one → res.currency
string='Currency'
args: 'res.currency'
image
Binary
attachment=True
name
Char
help='The full name of the country.'
required=True
string='Country Name'
translate=True
name_position
Selection
default='before'
help='Determines where the customer/company name should be placed, i.e. after or before the address.'
string='Customer Name Position'
args: [('before', 'Before Address'), ('after', 'After Address')]
phone_code
Integer
string='Country Calling Code'
state_ids
One2many → res.country.state
string='States'
args: 'res.country.state', 'country_id'
vat_label
Char
help='Use this field if you want to change vat label.'
string='Vat Label'
translate=True
create(self, vals_list)
get_address_fields(self)
write(self, vals)
country_ids
Many2many → res.country
string='Countries'
args: 'res.country', 'res_country_res_country_group_rel', 'res_country_group_id', 'res_country_id'
name
Char
required=True
translate=True
No public methods.
code
Char
help='The state code.'
required=True
string='State Code'
country_id
Many2one → res.country
required=True
string='Country'
args: 'res.country'
name
Char
help='Administrative divisions of a country. E.g. Fed. State, Departement, Canton'
required=True
string='State Name'
name_get(self)
active
Boolean
default=True
currency_subunit_label
Char
help='Currency Subunit Name'
string='Currency Subunit'
currency_unit_label
Char
help='Currency Unit Name'
string='Currency Unit'
date
Date
compute='_compute_date'
decimal_places
Integer
compute='_compute_decimal_places'
store=True
name
Char
help='Currency Code (ISO 4217)'
required=True
size=3
string='Currency'
position
Selection
default='after'
help='Determines where the currency symbol should be placed after or before the amount.'
string='Symbol Position'
args: [('after', 'After Amount'), ('before', 'Before Amount')]
rate
Float
compute='_compute_current_rate'
digits=0
help='The rate of the currency to the currency of rate 1.'
string='Current Rate'
rate_ids
One2many → res.currency.rate
string='Rates'
args: 'res.currency.rate', 'currency_id'
rounding
Float
default=0.01
digits=(12, 6)
string='Rounding Factor'
symbol
Char
help='Currency sign, to be used when printing amounts.'
required=True
amount_to_text(self, amount)
compare_amounts(self, amount1, amount2)
compute(self, from_amount, to_currency, round=True)
is_zero(self, amount)
name_get(self)
round(self, amount)
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
readonly=True
string='Currency'
args: 'res.currency'
name
Date
default=fields.Date.context_today
index=True
required=True
string='Date'
rate
Float
default=1.0
digits=0
help='The rate of the currency to the currency of rate 1'
No public methods.
category_id
Many2one → ir.module.category
index=True
string='Application'
args: 'ir.module.category'
color
Integer
string='Color Index'
comment
Text
translate=True
full_name
Char
compute='_compute_full_name'
search='_search_full_name'
string='Group Name'
menu_access
Many2many → ir.ui.menu
string='Access Menu'
args: 'ir.ui.menu', 'ir_ui_menu_group_rel', 'gid', 'menu_id'
model_access
One2many → ir.model.access
copy=True
string='Access Controls'
args: 'ir.model.access', 'group_id'
name
Char
required=True
translate=True
rule_groups
Many2many → ir.rule
domain=[('global', '=', False)]
string='Rules'
args: 'ir.rule', 'rule_group_rel', 'group_id', 'rule_group_id'
share
Boolean
help='Group created to set access rights for sharing data with some users.'
string='Share Group'
users
Many2many → res.users
view_access
Many2many → ir.ui.view
string='Views'
args: 'ir.ui.view', 'ir_ui_view_group_rel', 'group_id', 'view_id'
copy(self, default=None)
write(self, vals)
implied_ids
Many2many → res.groups
help='Users of this group automatically inherit those groups'
string='Inherits'
args: 'res.groups', 'res_groups_implied_rel', 'gid', 'hid'
trans_implied_ids
Many2many → res.groups
compute='_compute_trans_implied'
string='Transitively inherits'
args: 'res.groups'
create(self, vals_list)
write(self, values)
No new fields.
Public methods (5)create(self, values)
get_application_groups(self, domain)
get_groups_by_application(self)
unlink(self)
write(self, values)
active
Boolean
code
Char
help='This field is used to set/get locales for user'
required=True
string='Locale Code'
date_format
Char
default=DEFAULT_DATE_FORMAT
required=True
string='Date Format'
decimal_point
Char
default='.'
required=True
string='Decimal Separator'
trim=False
direction
Selection
default='ltr'
required=True
args: [('ltr', 'Left-to-Right'), ('rtl', 'Right-to-Left')]
grouping
Char
default='[]'
help="The Separator Format should be like [,n] where 0 < n :starting from Unit digit. -1 will end the separation. e.g. [3,2,-1] will represent 106500 to be 1,06,500; [1,2,-1] will represent it to be 106,50,0;[3] will represent it as 106,500. Provided ',' as the thousand separator in each case."
required=True
string='Separator Format'
iso_code
Char
help='This ISO code is the name of po files to use for translations'
string='ISO code'
name
Char
required=True
thousands_sep
Char
default=','
string='Thousands Separator'
trim=False
time_format
Char
default=DEFAULT_TIME_FORMAT
required=True
string='Time Format'
url_code
Char
help='The Lang Code displayed in the URL'
required=True
args: 'URL Code'
week_start
Selection
default='7'
required=True
string='First Day of Week'
args: [('1', 'Monday'), ('2', 'Tuesday'), ('3', 'Wednesday'), ('4', 'Thursday'), ('5', 'Friday'), ('6', 'Saturday'), ('7', 'Sunday')]
create(self, vals_list)
format(self, percent, value, grouping=False, monetary=False)
get_available(self)
get_installed(self)
install_lang(self)
load_lang(self, lang, lang_name=None)
toggle_active(self)
unlink(self)
write(self, vals)
active
Boolean
default=True
active_lang_count
Integer
compute='_compute_active_lang_count'
bank_ids
One2many → res.partner.bank
string='Banks'
args: 'res.partner.bank', 'partner_id'
category_id
Many2many → res.partner.category
column1='partner_id'
column2='category_id'
default=_default_category
string='Tags'
args: 'res.partner.category'
child_ids
One2many → res.partner
domain=[('active', '=', True)]
string='Contact'
args: 'res.partner', 'parent_id'
city
Char
color
Integer
default=0
string='Color Index'
comment
Text
string='Notes'
commercial_company_name
Char
compute='_compute_commercial_company_name'
store=True
args: 'Company Name Entity'
commercial_partner_id
Many2one → res.partner
compute='_compute_commercial_partner'
index=True
store=True
string='Commercial Entity'
args: 'res.partner'
company_id
Many2one → res.company
index=True
args: 'res.company', 'Company'
company_name
Char
company_type
Selection
compute='_compute_company_type'
inverse='_write_company_type'
selection=[('person', 'Individual'), ('company', 'Company')]
string='Company Type'
contact_address
Char
compute='_compute_contact_address'
string='Complete Address'
country_id
Many2one → res.country
ondelete='restrict'
string='Country'
args: 'res.country'
credit_limit
Float
string='Credit Limit'
date
Date
index=True
display_name
Char
compute='_compute_display_name'
index=True
store=True
email
Char
email_formatted
Char
compute='_compute_email_formatted'
help='Format email address "Name <email@domain>"'
args: 'Formatted Email'
employee
Boolean
help='Check this box if this contact is an Employee.'
function
Char
string='Job Position'
industry_id
Many2one → res.partner.industry
is_company
Boolean
default=False
help='Check if the contact is a company, otherwise it is a person'
string='Is a Company'
lang
Selection
default=<expr>
help='All the emails and documents sent to this contact will be translated in this language.'
string='Language'
args: _lang_get
mobile
Char
name
Char
index=True
parent_id
Many2one → res.partner
index=True
string='Related Company'
args: 'res.partner'
parent_name
Char
readonly=True
related='parent_id.name'
string='Parent name'
partner_latitude
Float
digits=(16, 5)
string='Geo Latitude'
partner_longitude
Float
digits=(16, 5)
string='Geo Longitude'
partner_share
Boolean
compute='_compute_partner_share'
help='Either customer (not a user), either shared user. Indicated the current partner is a customer without access or with a limited access created for sharing data.'
store=True
args: 'Share Partner'
phone
Char
ref
Char
index=True
string='Reference'
same_vat_partner_id
Many2one → res.partner
compute='_compute_same_vat_partner_id'
store=False
string='Partner with same Tax ID'
args: 'res.partner'
self
Many2one
comodel_name=_name
compute='_compute_get_ids'
state_id
Many2one → res.country.state
domain="[('country_id', '=?', country_id)]"
ondelete='restrict'
string='State'
args: 'res.country.state'
street
Char
street2
Char
title
Many2one → res.partner.title
type
Selection
default='contact'
help='Invoice & Delivery addresses are used in sales orders. Private addresses are only visible by authorized users.'
string='Address Type'
args: [('contact', 'Contact'), ('invoice', 'Invoice Address'), ('delivery', 'Delivery Address'), ('other', 'Other Address'), ('private', 'Private Address')]
tz
Selection
default=<expr>
help='When printing documents and exporting/importing data, time values are computed according to this timezone.\nIf the timezone is not set, UTC (Coordinated Universal Time) is used.\nAnywhere else, time values are computed according to the time offset of your web client.'
string='Timezone'
args: _tz_get
tz_offset
Char
compute='_compute_tz_offset'
invisible=True
string='Timezone offset'
user_id
Many2one → res.users
help='The internal user in charge of this contact.'
string='Salesperson'
args: 'res.users'
user_ids
One2many → res.users
auto_join=True
string='Users'
args: 'res.users', 'partner_id'
vat
Char
help='The Tax Identification Number. Complete it if the contact is subjected to government taxes. Used in some legal statements.'
index=True
string='Tax ID'
website
Char
zip
Char
change_default=True
address_get(self, adr_pref=None)
copy(self, default=None)
create(self, vals_list)
create_company(self)
default_get(self, default_fields)
find_or_create(self, email)
get_import_templates(self)
main_partner(self)
name_create(self, name)
name_get(self)
onchange_company_type(self)
onchange_email(self)
onchange_parent_id(self)
open_commercial_entity(self)
open_parent(self)
update_address(self, vals)
view_header_get(self, view_id, view_type)
write(self, vals)
acc_holder_name
Char
help='Account holder name, in case it is different than the name of the Account Holder'
string='Account Holder Name'
acc_number
Char
required=True
args: 'Account Number'
acc_type
Selection
compute='_compute_acc_type'
help='Bank account type: Normal or IBAN. Inferred from the bank account number.'
selection=<expr>
string='Type'
bank_bic
Char
readonly=False
related='bank_id.bic'
bank_id
Many2one → res.bank
string='Bank'
args: 'res.bank'
bank_name
Char
readonly=False
related='bank_id.name'
company_id
Many2one → res.company
default=<expr>
ondelete='cascade'
args: 'res.company', 'Company'
currency_id
Many2one → res.currency
string='Currency'
args: 'res.currency'
partner_id
Many2one → res.partner
domain=['|', ('is_company', '=', True), ('parent_id', '=', False)]
index=True
ondelete='cascade'
required=True
args: 'res.partner', 'Account Holder'
qr_code_valid
Boolean
compute='_validate_qr_code_arguments'
string='Has all required arguments'
sanitized_acc_number
Char
compute='_compute_sanitized_acc_number'
readonly=True
store=True
string='Sanitized Account Number'
sequence
Integer
default=10
build_qr_code_base64(self, amount, comment)
build_qr_code_url(self, amount, comment)
build_qr_code_vals(self, amount, comment)
get_supported_account_types(self)
retrieve_acc_type(self, acc_number)
active
Boolean
default=True
help='The active field allows you to hide the category without removing it.'
child_ids
One2many → res.partner.category
string='Child Tags'
args: 'res.partner.category', 'parent_id'
color
Integer
string='Color Index'
name
Char
required=True
string='Tag Name'
translate=True
parent_id
Many2one → res.partner.category
index=True
ondelete='cascade'
string='Parent Category'
args: 'res.partner.category'
parent_path
Char
index=True
partner_ids
Many2many → res.partner
column1='category_id'
column2='partner_id'
string='Partners'
args: 'res.partner'
name_get(self)
active
Boolean
default=True
args: 'Active'
full_name
Char
translate=True
args: 'Full Name'
name
Char
translate=True
args: 'Name'
No public methods.
name
Char
required=True
string='Title'
translate=True
shortcut
Char
string='Abbreviation'
translate=True
No public methods.
accesses_count
Integer
compute='_compute_accesses_count'
compute_sudo=True
help='Number of access rights that apply to the current user'
args: '# Access Rights'
action_id
Many2one → ir.actions.actions
help='If specified, this action will be opened at log on for this user, in addition to the standard menu.'
string='Home Action'
args: 'ir.actions.actions'
active
Boolean
default=True
active_partner
Boolean
readonly=True
related='partner_id.active'
string='Partner is Active'
companies_count
Integer
compute='_compute_companies_count'
default=_companies_count
string='Number of Companies'
company_id
Many2one → res.company
context={'user_preference': True}
default=<expr>
help='The default company for this user.'
required=True
string='Company'
args: 'res.company'
company_ids
Many2many → res.company
default=<expr>
string='Companies'
args: 'res.company', 'res_company_users_rel', 'user_id', 'cid'
email
Char
inherited=True
readonly=False
related='partner_id.email'
groups_count
Integer
compute='_compute_accesses_count'
compute_sudo=True
help='Number of groups that apply to the current user'
args: '# Groups'
groups_id
Many2many → res.groups
default=_default_groups
string='Groups'
args: 'res.groups', 'res_groups_users_rel', 'uid', 'gid'
log_ids
One2many → res.users.log
string='User log entries'
args: 'res.users.log', 'create_uid'
login
Char
help='Used to log into the system'
required=True
login_date
Datetime
readonly=False
related='log_ids.create_date'
string='Latest authentication'
name
Char
inherited=True
readonly=False
related='partner_id.name'
new_password
Char
compute='_compute_password'
help="Specify a value only when creating a user or if you're changing the user's password, otherwise leave empty. After a change of password, the user has to login again."
inverse='_set_new_password'
string='Set Password'
partner_id
Many2one → res.partner
auto_join=True
help='Partner-related data of the user'
ondelete='restrict'
required=True
string='Related Partner'
args: 'res.partner'
password
Char
compute='_compute_password'
copy=False
help="Keep empty if you don't want the user to be able to connect on the system."
inverse='_set_password'
invisible=True
rules_count
Integer
compute='_compute_accesses_count'
compute_sudo=True
help='Number of record rules that apply to the current user'
args: '# Record Rules'
share
Boolean
compute='_compute_share'
compute_sudo=True
help='External user with limited access, created only for the purpose of sharing data.'
store=True
string='Share User'
signature
Html
default=''
string='Email Signature'
tz_offset
Char
compute='_compute_tz_offset'
invisible=True
string='Timezone offset'
action_get(self)
action_show_accesses(self)
action_show_groups(self)
action_show_rules(self)
authenticate(cls, db, login, password, user_agent_env)
change_password(self, old_passwd, new_passwd)
check(cls, db, uid, passwd)
check_super(self, passwd)
context_get(self)
copy(self, default=None)
create(self, vals_list)
get_company_currency_id(self)
has_group(self, group_ext_id)
init(self)
on_change_login(self)
onchange_parent_id(self)
preference_change_password(self)
preference_save(self)
read(self, fields=None, load='_classic_read')
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
toggle_active(self)
unlink(self)
write(self, values)
No new fields.
Public methods (2)create(self, vals_list)
write(self, values)
No new fields.
Public methods (7)create(self, values)
default_get(self, fields)
fields_get(self, allfields=None, attributes=None)
new(self, values={}, origin=None, ref=None)
read(self, fields=None, load='_classic_read')
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
write(self, values)
No new fields.
Public methods (0)No public methods.
arch_diff
Html
compute='_compute_arch_diff'
readonly=True
sanitize_tags=False
string='Architecture Diff'
reset_mode
Selection
default='soft'
help='You might want to try a soft reset first.'
required=True
string='Reset Mode'
args: [('soft', 'Restore previous version (soft reset).'), ('hard', 'Reset to file version (hard reset).')]
view_id
Many2one → ir.ui.view
default=_default_view_id
string='View'
args: 'ir.ui.view'
view_name
Char
related='view_id.name'
string='View Name'
reset_view_button(self)
menu_id
Many2one → ir.ui.menu
ondelete='cascade'
required=True
string='Parent Menu'
args: 'ir.ui.menu'
name
Char
required=True
string='Menu Name'
menu_create(self)
access_ir_model_access_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_model_access' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_model_fields_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_model_fields' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_model_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_model' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_rule_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_rule' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_ui_view_custom_group_user — Access rule grants write/create/unlink on 'model_ir_ui_view_custom' to EVERY user (portal/public included): no group is set acl-global-writeaccess_res_groups_group_erp_manager — Access rule grants write/create/unlink on security model 'model_res_groups' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_res_users_group_erp_manager — Access rule grants write/create/unlink on security model 'model_res_users' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_res_users_log_all — Access rule grants create on 'model_res_users_log' to EVERY user (portal/public included): no group is set acl-global-writeFound by automated static analysis: these patterns are usually risky, but only a manual review of the module can confirm a real issue.
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
act_report_xml_search_view |
ir.actions.report.search | ir.actions.report | search | New |
act_report_xml_view |
ir.actions.report | ir.actions.report | form | New |
act_report_xml_view_tree |
ir.actions.report.tree | ir.actions.report | tree | New |
action_view |
ir.actions.actions | ir.actions.actions | form | New |
action_view_search |
ir.actions.actions.search | ir.actions.actions | search | New |
action_view_tree |
ir.actions.actions.tree | ir.actions.actions | tree | New |
base_onboarding_company_form |
base.company.onboarding.form | res.company | form | Inherits base.view_company_form |
base_partner_merge_automatic_wizard_form |
base.partner.merge.automatic.wizard.form | base.partner.merge.automatic.wizard | form | New |
change_password_wizard_user_tree_view |
Change Password Users | change.password.user | tree | New |
change_password_wizard_view |
Change Password | change.password.wizard | form | New |
config_wizard_step_view_form |
Config Wizard Steps | ir.actions.todo | form | New |
config_wizard_step_view_search |
ir.actions.todo.select | ir.actions.todo | search | New |
contact |
contact | ir.ui.view | qweb | New |
contact_name |
contact_name | ir.ui.view | qweb | New |
demo_failures_dialog |
Demo Failure Dialog | ir.demo_failure.wizard | form | New |
demo_force_install_form |
ir.demo.form | ir.demo | form | New |
edit_menu |
ir.ui.menu | tree | New | |
edit_menu_access |
ir.ui.menu | form | New | |
edit_menu_access_search |
ir.ui.menu.search | ir.ui.menu | search | New |
ir_access_view_form |
ir.model.access | form | New | |
ir_access_view_search |
ir.model.access | search | New | |
ir_access_view_tree |
ir.model.access | tree | New | |
ir_actions_todo_tree |
Config Wizard Steps | ir.actions.todo | tree | New |
ir_cron_view_calendar |
ir.cron | calendar | New | |
ir_cron_view_form |
ir.cron.view.form | ir.cron | div | Inherits base.view_server_action_form |
ir_cron_view_search |
ir.cron | search | New | |
ir_cron_view_tree |
ir.cron | tree | New | |
ir_default_form_view |
ir.default form view | ir.default | form | New |
ir_default_search_view |
ir.default search view | ir.default | search | New |
ir_default_tree_view |
ir.default tree view | ir.default | tree | New |
ir_filters_view_form |
ir.filters | form | New | |
ir_filters_view_search |
ir.filters | search | New | |
ir_filters_view_tree |
ir.filters | tree | New | |
ir_logging_form_view |
ir.logging | form | New | |
ir_logging_search_view |
ir.logging | search | New | |
ir_logging_tree_view |
ir.logging | tree | New | |
ir_mail_server_form |
ir.mail_server | form | New | |
ir_mail_server_list |
ir.mail_server | tree | New | |
ir_property_view |
ir.property.form | ir.property | form | New |
ir_property_view_search |
ir.property.search | ir.property | search | New |
ir_property_view_tree |
ir.property.tree | ir.property | tree | New |
module_form |
ir.module.module.form | ir.module.module | form | New |
module_tree |
ir.module.module.tree | ir.module.module | tree | New |
module_view_kanban |
Apps Kanban | ir.module.module | kanban | New |
onboarding_company_step |
onboarding_company_step | ir.ui.view | qweb | New |
onboarding_confetti |
onboarding_confetti | ir.ui.view | qweb | New |
onboarding_container |
onboarding_container | ir.ui.view | qweb | New |
onboarding_step |
onboarding_step | ir.ui.view | qweb | New |
paperformat_view_form |
paper_format_view_form | report.paperformat | form | New |
paperformat_view_tree |
paper_format_view_tree | report.paperformat | tree | New |
report_irmodeloverview |
report_irmodeloverview | ir.ui.view | qweb | New |
report_irmodulereference |
report_irmodulereference | ir.ui.view | qweb | New |
res_config_installer |
Inheritable view for installer objects | res.config.installer | form | New |
res_config_settings_view_form |
res.config.settings.view.form | res.config.settings | form | New |
res_config_view_base |
res.config.view.base | res.config | form | New |
res_lang_form |
res.lang.form | res.lang | form | New |
res_lang_search |
res.lang.search | res.lang | search | New |
res_lang_tree |
res.lang.tree | res.lang | tree | New |
res_partner_industry_view_form |
Industry | res.partner.industry | form | New |
res_partner_industry_view_tree |
Industry | res.partner.industry | tree | New |
res_partner_kanban_view |
res.partner.kanban | res.partner | kanban | New |
res_partner_view_form_private |
res.partner.view.form.private | res.partner | form | New |
sequence_view |
ir.sequence | form | New | |
sequence_view_tree |
ir.sequence | tree | New | |
user_groups_view |
res.users.groups | res.users | form | Inherits view_users_form |
view_attachment_form |
ir.attachment | form | New | |
view_attachment_search |
ir.attachment | search | New | |
view_attachment_tree |
ir.attachment | tree | New | |
view_base_import_language |
Import Translation | base.language.import | form | New |
view_base_language_install |
Load a Translation | base.language.install | form | New |
view_base_module_uninstall |
Uninstall module | base.module.uninstall | form | New |
view_base_module_update |
Module Update | base.module.update | form | New |
view_base_module_upgrade |
Module Upgrade | base.module.upgrade | form | New |
view_base_module_upgrade_install |
Module Upgrade Install | base.module.upgrade | form | New |
view_company_document_template_form |
res.company.document.template.form | res.company | form | New |
view_company_form |
res.company.form | res.company | form | New |
view_company_report_form |
res.company.report.form | res.company | form | Inherits base.view_company_form |
view_company_report_form_with_print |
res.company.report.form.with.print | res.company | form | Inherits base.view_company_report_form |
view_company_tree |
res.company.tree | res.company | tree | New |
view_country_form |
res.country.form | res.country | form | New |
view_country_group_form |
res.country.group.form | res.country.group | form | New |
view_country_group_tree |
res.country.group.tree | res.country.group | tree | New |
view_country_state_form |
res.country.state.form | res.country.state | form | New |
view_country_state_tree |
res.country.state.tree | res.country.state | tree | New |
view_country_tree |
res.country.tree | res.country | tree | New |
view_currency_form |
res.currency.form | res.currency | form | New |
view_currency_kanban |
res.currency.kanban | res.currency | kanban | New |
view_currency_rate_form |
res.currency.rate.form | res.currency.rate | form | New |
view_currency_rate_search |
res.currency.rate.search | res.currency.rate | search | New |
view_currency_rate_tree |
res.currency.rate.tree | res.currency.rate | tree | New |
view_currency_search |
res.currency.search | res.currency | search | New |
view_currency_tree |
res.currency.tree | res.currency | tree | New |
view_groups_form |
res.groups.form | res.groups | form | New |
view_groups_search |
res.groups.search | res.groups | search | New |
view_ir_config_form |
ir.config_parameter | form | New | |
view_ir_config_list |
ir.config_parameter | tree | New | |
view_ir_config_search |
ir.config_parameter | search | New | |
view_ir_mail_server_search |
ir.mail_server | search | New | |
view_menu |
ir.ui.menu.tree | ir.ui.menu | tree | New |
view_model_constraint_form |
ir.model.constraint | form | New | |
view_model_constraint_list |
ir.model.constraint | tree | New | |
view_model_data_form |
ir.model.data | form | New | |
view_model_data_list |
ir.model.data | tree | New | |
view_model_data_search |
ir.model.data | search | New | |
view_model_fields_form |
ir.model.fields | form | New | |
view_model_fields_search |
ir.model.fields | search | New | |
view_model_fields_tree |
ir.model.fields | tree | New | |
view_model_form |
ir.model | form | New | |
view_model_menu_create |
Create Menu | wizard.ir.model.menu.create | form | New |
view_model_relation_form |
ir.model.relation | form | New | |
view_model_relation_list |
ir.model.relation | tree | New | |
view_model_search |
ir.model | search | New | |
view_model_tree |
ir.model | tree | New | |
view_module_category_form |
ir.module.category.form | ir.module.category | form | New |
view_module_category_tree |
ir.module.category.tree | ir.module.category | tree | New |
view_module_filter |
ir.module.module.list.select | ir.module.module | search | New |
view_partner_address_form |
res.partner.form.address | res.partner | form | New |
view_partner_bank_form |
res.partner.bank.form | res.partner.bank | form | New |
view_partner_bank_search |
res.partner.bank.search | res.partner.bank | search | New |
view_partner_bank_tree |
res.partner.bank.tree | res.partner.bank | tree | New |
view_partner_category_form |
Contact Tags | res.partner.category | form | New |
view_partner_category_list |
Contact Tags | res.partner.category | tree | New |
view_partner_form |
res.partner.form | res.partner | form | New |
view_partner_short_form |
res.partner.form | res.partner | form | New |
view_partner_simple_form |
res.partner.simplified.form | res.partner | form | New |
view_partner_title_form |
res.partner.title.form | res.partner.title | form | New |
view_partner_title_tree |
res.partner.title.tree | res.partner.title | tree | New |
view_partner_tree |
res.partner.tree | res.partner | tree | New |
view_res_bank_form |
res.bank.form | res.bank | form | New |
view_res_bank_tree |
res.bank.tree | res.bank | tree | New |
view_res_company_kanban |
res.company.kanban | res.company | kanban | New |
view_res_partner_filter |
res.partner.select | res.partner | search | New |
view_res_users_kanban |
res.users.kanban | res.users | kanban | New |
view_rule_form |
ir.rule | form | New | |
view_rule_search |
ir.rule | search | New | |
view_rule_tree |
ir.rule | tree | New | |
view_sequence_search |
ir.sequence | search | New | |
view_server_action_form |
Server Action | ir.actions.server | form | New |
view_server_action_search |
ir.actions.server.search | ir.actions.server | search | New |
view_server_action_tree |
Server Actions | ir.actions.server | tree | New |
view_translation_dialog_tree |
ir.translation | tree | New | |
view_translation_form |
ir.translation | form | New | |
view_translation_search |
ir.translation | search | New | |
view_translation_tree |
ir.translation | tree | New | |
view_users_form |
res.users.form | res.users | form | New |
view_users_form_simple_modif |
res.users.preferences.form | res.users | form | New |
view_users_search |
res.users.search | res.users | search | New |
view_users_simple_form |
res.users.simplified.form | res.users | form | New |
view_users_tree |
res.users.tree | res.users | tree | New |
view_view_custom_form |
ir.ui.view.custom | form | New | |
view_view_custom_search |
ir.ui.view.custom | search | New | |
view_view_custom_tree |
ir.ui.view.custom | tree | New | |
view_view_form |
ir.ui.view | form | New | |
view_view_search |
ir.ui.view | search | New | |
view_view_tree |
ir.ui.view | tree | New | |
view_window_action_form |
ir.actions.windows.form | ir.actions.act_window | form | New |
view_window_action_search |
ir.actions.windows.search | ir.actions.act_window | search | New |
view_window_action_tree |
ir.actions.windows.tree | ir.actions.act_window | tree | New |
wizard_lang_export |
Export Translations | base.language.export | form | New |
wizard_update_translations |
Generate Missing Terms | base.update.translations | form | New |
| Route(s) | Handler | Auth | Type | Methods | Flags |
|---|---|---|---|---|---|
/jsonrpc |
RPC.jsonrpc |
none | json | ALL | |
/xmlrpc/<service> |
RPC.xmlrpc_1 |
none | http | POST | csrf off |
/xmlrpc/2/<service> |
RPC.xmlrpc_2 |
none | http | POST | csrf off |
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
data
Binary
readonly=True
args: 'File'
format
Selection
default='csv'
required=True
string='File Format'
args: [('csv', 'CSV File'), ('po', 'PO File'), ('tgz', 'TGZ Archive')]
lang
Selection
default=NEW_LANG_KEY
required=True
string='Language'
args: _get_languages
modules
Many2many → ir.module.module
domain=[('state', '=', 'installed')]
string='Apps To Export'
args: 'ir.module.module', 'rel_modules_langexport', 'wiz_id', 'module_id'
name
Char
readonly=True
args: 'File Name'
state
Selection
default='choose'
args: [('choose', 'choose'), ('get', 'get')]
act_getfile(self)
code
Char
help='ISO Language and Country code, e.g. en_US'
required=True
size=6
args: 'ISO Code'
data
Binary
required=True
args: 'File'
filename
Char
required=True
args: 'File Name'
name
Char
required=True
args: 'Language Name'
overwrite
Boolean
help='If you enable this option, existing translations (including custom ones) will be overwritten and replaced by those in this file'
args: 'Overwrite Existing Terms'
import_lang(self)
lang
Selection
default=_default_language
required=True
string='Language'
args: _get_languages
overwrite
Boolean
help='If you check this box, your customized translations will be overwritten and replaced by the official ones.'
args: 'Overwrite Existing Terms'
state
Selection
default='init'
readonly=True
string='Status'
args: [('init', 'init'), ('done', 'done')]
lang_install(self)
reload(self)
model_ids
Many2many → ir.model
compute='_compute_model_ids'
string='Impacted data models'
args: 'ir.model'
module_id
Many2one → ir.module.module
domain=[('state', 'in', ['installed', 'to upgrade', 'to install'])]
ondelete='cascade'
readonly=True
required=True
string='Module'
args: 'ir.module.module'
module_ids
Many2many → ir.module.module
compute='_compute_module_ids'
string='Impacted modules'
args: 'ir.module.module'
show_all
Boolean
action_uninstall(self)
added
Integer
readonly=True
args: 'Number of modules added'
state
Selection
default='init'
readonly=True
args: [('init', 'init'), ('done', 'done')], 'Status'
updated
Integer
readonly=True
args: 'Number of modules updated'
action_module_open(self)
update_module(self)
module_info
Text
default=_default_module_info
readonly=True
args: 'Apps to Update'
config(self)
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
get_module_list(self)
upgrade_module(self)
upgrade_module_cancel(self)
current_line_id
Many2one → base.partner.merge.line
string='Current Line'
args: 'base.partner.merge.line'
dst_partner_id
Many2one → res.partner
string='Destination Contact'
args: 'res.partner'
exclude_contact
Boolean
exclude_journal_item
Boolean
group_by_email
Boolean
group_by_is_company
Boolean
group_by_name
Boolean
group_by_parent_id
Boolean
group_by_vat
Boolean
line_ids
One2many → base.partner.merge.line
string='Lines'
args: 'base.partner.merge.line', 'wizard_id'
maximum_group
Integer
number_group
Integer
readonly=True
args: 'Group of Contacts'
partner_ids
Many2many → res.partner
string='Contacts'
args: 'res.partner'
state
Selection
default='option'
readonly=True
required=True
string='State'
args: [('option', 'Option'), ('selection', 'Selection'), ('finished', 'Finished')]
action_merge(self)
action_skip(self)
action_start_automatic_process(self)
action_start_manual_process(self)
action_update_all_process(self)
default_get(self, fields)
parent_migration_process_cb(self)
aggr_ids
Char
required=True
args: 'Ids'
min_id
Integer
wizard_id
Many2one → base.partner.merge.automatic.wizard
No public methods.
lang
Selection
required=True
args: _get_languages, 'Language'
act_update(self)
new_passwd
Char
default=''
string='New Password'
user_id
Many2one → res.users
ondelete='cascade'
required=True
string='User'
args: 'res.users'
user_login
Char
readonly=True
string='User Login'
wizard_id
Many2one → change.password.wizard
ondelete='cascade'
required=True
string='Wizard'
args: 'change.password.wizard'
change_password_button(self)
user_ids
One2many → change.password.user
default=_default_user_ids
string='Users'
args: 'change.password.user', 'wizard_id'
change_password_button(self)
No new fields.
Public methods (0)No public methods.
name
Char
string='Action Name'
translate=True
target
Selection
default='new'
required=True
string='Action Target'
args: [('new', 'New Window'), ('self', 'This Window')]
type
Char
default='ir.actions.act_url'
url
Text
required=True
string='Action URL'
No public methods.
auto_search
Boolean
default=True
context
Char
default={}
help='Context dictionary as Python expression, empty by default (Default: {})'
required=True
string='Context Value'
domain
Char
help='Optional domain filtering of the destination data, as a Python expression'
string='Domain Value'
filter
Boolean
groups_id
Many2many → res.groups
string='Groups'
args: 'res.groups', 'ir_act_window_group_rel', 'act_id', 'gid'
limit
Integer
default=80
help='Default limit for the list view'
multi
Boolean
help='If checked and the action is bound to a model, it will only appear in the More menu on list views'
string='Restrict to lists'
name
Char
string='Action Name'
translate=True
res_id
Integer
help="Database ID of record to open in form view, when ``view_mode`` is set to 'form' only"
string='Record ID'
res_model
Char
help='Model name of the object to open in the view window'
required=True
string='Destination Model'
search_view
Text
compute='_compute_search_view'
search_view_id
Many2one → ir.ui.view
string='Search View Ref.'
args: 'ir.ui.view'
src_model
Char
help='Optional model name of the objects on which this action should be visible'
string='Source Model'
target
Selection
default='current'
string='Target Window'
args: [('current', 'Current Window'), ('new', 'New Window'), ('inline', 'Inline Edit'), ('fullscreen', 'Full Screen'), ('main', 'Main action of Current Window')]
type
Char
default='ir.actions.act_window'
usage
Char
help='Used to filter menu and home actions from the user form.'
string='Action Usage'
view_id
Many2one → ir.ui.view
ondelete='set null'
string='View Ref.'
args: 'ir.ui.view'
view_ids
One2many → ir.actions.act_window.view
string='No of Views'
args: 'ir.actions.act_window.view', 'act_window_id'
view_mode
Char
default='tree,form'
help="Comma-separated list of allowed view modes, such as 'form', 'tree', 'calendar', etc. (Default: tree,form)"
required=True
view_type
Selection
default='form'
help="View type: Tree type to use for the tree view, set to 'tree' for a hierarchical tree view, or 'form' for a regular list view"
required=True
string='View Type'
args: [('tree', 'Tree'), ('form', 'Form')]
views
Binary
compute='_compute_views'
help='This function field computes the ordered list of views that should be enabled when displaying the result of an action, federating view mode, views and reference view. The result is returned as an ordered list of pairs (view_id,view_mode).'
create(self, vals_list)
exists(self)
for_xml_id(self, module, xml_id)
read(self, fields=None, load='_classic_read')
unlink(self)
act_window_id
Many2one → ir.actions.act_window
ondelete='cascade'
string='Action'
args: 'ir.actions.act_window'
multi
Boolean
help='If set to true, the action will not be displayed on the right toolbar of a form view.'
string='On Multiple Doc.'
sequence
Integer
view_id
Many2one → ir.ui.view
string='View'
args: 'ir.ui.view'
view_mode
Selection
required=True
string='View Type'
args: VIEW_TYPES
No public methods.
type
Char
default='ir.actions.act_window_close'
No public methods.
binding_model_id
Many2one → ir.model
help='Setting a value makes this action available in the sidebar for the given model.'
ondelete='cascade'
args: 'ir.model'
binding_type
Selection
default='action'
required=True
args: [('action', 'Action'), ('action_form_only', 'Form-only'), ('report', 'Report')]
help
Html
help='Optional help text for the users with a description of the target view, such as its usage and purpose.'
string='Action Description'
translate=True
name
Char
required=True
type
Char
required=True
string='Action Type'
xml_id
Char
compute='_compute_xml_id'
string='External ID'
create(self, vals_list)
get_bindings(self, model_name)
unlink(self)
write(self, vals)
context
Char
default='{}'
help='Context dictionary as Python expression, empty by default (Default: {})'
required=True
string='Context Value'
name
Char
string='Action Name'
translate=True
params
Binary
compute='_compute_params'
help='Arguments sent to the client along with the view tag'
inverse='_inverse_params'
string='Supplementary arguments'
params_store
Binary
readonly=True
string='Params storage'
res_model
Char
help='Optional model, mostly used for needactions.'
string='Destination Model'
tag
Char
help='An arbitrary string, interpreted by the client according to its own needs and wishes. There is no central tag repository across clients.'
required=True
string='Client action tag'
target
Selection
default='current'
string='Target Window'
args: [('current', 'Current Window'), ('new', 'New Window'), ('fullscreen', 'Full Screen'), ('main', 'Main action of Current Window')]
type
Char
default='ir.actions.client'
No public methods.
attachment
Char
help='This is the filename of the attachment used to store the printing result. Keep empty to not save the printed reports. You can use a python expression with the object and time variables.'
string='Save as Attachment Prefix'
attachment_use
Boolean
help='If you check this, then the second time the user prints with same attachment name, it returns the previous report.'
string='Reload from Attachment'
binding_type
Selection
default='report'
groups_id
Many2many → res.groups
string='Groups'
args: 'res.groups', 'res_groups_report_rel', 'uid', 'gid'
model
Char
required=True
string='Model Name'
model_id
Many2one → ir.model
compute='_compute_model_id'
search='_search_model_id'
string='Model'
args: 'ir.model'
multi
Boolean
help='If set to true, the action will not be displayed on the right toolbar of a form view.'
string='On Multiple Doc.'
name
Char
translate=True
paperformat_id
Many2one → report.paperformat
print_report_name
Char
help="This is the filename of the report going to download. Keep empty to not change the report filename. You can use a python expression with the 'object' and 'time' variables."
args: 'Printed Report Name'
report_file
Char
help='The path to the main report file (depending on Report Type) or empty if the content is in another field'
readonly=False
required=False
store=True
string='Report File'
report_name
Char
help="For QWeb reports, name of the template used in the rendering. The method 'render_html' of the model 'report.template_name' will be called (if any) to give the html. For RML reports, this is the LocalService name."
required=True
string='Template Name'
report_type
Selection
default='qweb-pdf'
help='The type of the report that will be rendered, each one having its own rendering method. HTML means the report will be opened directly in your browser PDF means the report will be rendered using Wkhtmltopdf and downloaded by the user.'
required=True
args: [('qweb-html', 'HTML'), ('qweb-pdf', 'PDF'), ('qweb-text', 'Text')]
type
Char
default='ir.actions.report'
associated_view(self)
barcode(self, barcode_type, value, width=600, height=100, humanreadable=0)
create_action(self)
get_paperformat(self)
get_wkhtmltopdf_state(self)
postprocess_pdf_report(self, record, buffer)
render(self, res_ids, data=None)
render_qweb_html(self, docids, data=None)
render_qweb_pdf(self, res_ids=None, data=None)
render_qweb_text(self, docids, data=None)
render_template(self, template, values=None)
report_action(self, docids, data=None, config=True)
retrieve_attachment(self, record)
unlink_action(self)
child_ids
Many2many → ir.actions.server
help='Child server actions that will be executed. Note that the last return returned action value will be used as global return value.'
string='Child Actions'
args: 'ir.actions.server', 'rel_server_actions', 'server_id', 'action_id'
code
Text
default=DEFAULT_PYTHON_CODE
groups='base.group_system'
help='Write Python code that the action will execute. Some variables are available for use; help about python expression is given in the help tab.'
string='Python Code'
crud_model_id
Many2one → ir.model
help='Model for record creation / update. Set this field only to specify a different model than the base model.'
oldname='srcmodel_id'
string='Create/Write Target Model'
args: 'ir.model'
crud_model_name
Char
readonly=True
related='crud_model_id.model'
string='Target Model'
fields_lines
One2many → ir.server.object.lines
copy=True
string='Value Mapping'
args: 'ir.server.object.lines', 'server_id'
link_field_id
Many2one → ir.model.fields
help='Provide the field used to link the newly created record on the record on used by the server action.'
string='Link using field'
args: 'ir.model.fields'
model_id
Many2one → ir.model
help='Model on which the server action runs.'
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
model_name
Char
readonly=True
related='model_id.model'
store=True
string='Model Name'
name
Char
string='Action Name'
translate=True
sequence
Integer
default=5
help='When dealing with multiple actions, the execution order is based on the sequence. Low number means high priority.'
state
Selection
default='object_write'
help="Type of server action. The following values are available:\n- 'Execute Python Code': a block of python code that will be executed\n- 'Create': create a new record with new values\n- 'Update a Record': update the values of a record\n- 'Execute several actions': define an action that triggers several other server actions\n- 'Send Email': automatically send an email (Discuss)\n- 'Add Followers': add followers to a record (Discuss)\n- 'Create Next Activity': create an activity (Discuss)"
required=True
string='Action To Do'
args: [('code', 'Execute Python Code'), ('object_create', 'Create a new Record'), ('object_write', 'Update the Record'), ('multi', 'Execute several actions')]
type
Char
default='ir.actions.server'
usage
Selection
default='ir_actions_server'
required=True
string='Usage'
args: [('ir_actions_server', 'Server Action'), ('ir_cron', 'Scheduled Action')]
create_action(self)
run(self)
run_action_code_multi(self, action, eval_context=None)
run_action_multi(self, action, eval_context=None)
run_action_object_create(self, action, eval_context=None)
run_action_object_write(self, action, eval_context=None)
unlink_action(self)
action_id
Many2one → ir.actions.actions
index=True
required=True
string='Action'
args: 'ir.actions.actions'
name
Char
sequence
Integer
default=10
state
Selection
default='open'
required=True
string='Status'
args: [('open', 'To Do'), ('done', 'Done')]
action_launch(self)
action_open(self)
create(self, vals_list)
ensure_one_open_todo(self)
name_get(self)
unlink(self)
write(self, vals)
access_token
Char
groups='base.group_user'
args: 'Access Token'
active
Boolean
default=True
oldname='archived'
string='Active'
checksum
Char
index=True
readonly=True
size=40
args: 'Checksum/SHA1'
company_id
Many2one → res.company
change_default=True
default=<expr>
string='Company'
args: 'res.company'
datas
Binary
compute='_compute_datas'
inverse='_inverse_datas'
string='File Content'
datas_fname
Char
db_datas
Binary
description
Text
file_size
Integer
readonly=True
args: 'File Size'
index_content
Text
prefetch=False
readonly=True
args: 'Indexed Content'
mimetype
Char
readonly=True
args: 'Mime Type'
name
Char
required=True
args: 'Name'
public
Boolean
res_field
Char
readonly=True
args: 'Resource Field'
res_id
Integer
help='The record id this is attached to.'
readonly=True
args: 'Resource ID'
res_model
Char
help='The database object this attachment will be attached to.'
readonly=True
args: 'Resource Model'
res_model_name
Char
compute='_compute_res_model_name'
index=True
store=True
res_name
Char
compute='_compute_res_name'
store=True
args: 'Resource Name'
store_fname
Char
thumbnail
Binary
attachment=True
readonly=1
type
Selection
change_default=True
default='binary'
help='You can either upload a file from your computer or copy/paste an internet link to your file.'
required=True
string='Type'
args: [('url', 'URL'), ('binary', 'File')]
url
Char
index=True
size=1024
args: 'Url'
action_get(self)
check(self, mode, values=None)
copy(self, default=None)
create(self, vals_list)
force_storage(self)
generate_access_token(self)
get_attachment_by_key(self, key, extra_domain=None, order=None)
get_serve_attachment(self, url, extra_domain=None, extra_fields=None, order=None)
get_serving_groups(self)
read(self, fields=None, load='_classic_read')
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
split_pdf(self, indices=None, remainder=False)
unlink(self)
write(self, vals)
No new fields.
Public methods (1)power_on(self, *args, **kwargs)
key
Char
index=True
required=True
value
Text
required=True
create(self, vals_list)
get_param(self, key, default=False)
init(self, force=False)
set_param(self, key, value)
unlink(self)
write(self, vals)
active
Boolean
default=True
cron_name
Char
readonly=False
related='ir_actions_server_id.name'
store=True
args: 'Name'
doall
Boolean
help='Specify if missed occurrences should be executed when the server restarts.'
string='Repeat Missed'
interval_number
Integer
default=1
help='Repeat every x.'
interval_type
Selection
default='months'
string='Interval Unit'
args: [('minutes', 'Minutes'), ('hours', 'Hours'), ('days', 'Days'), ('weeks', 'Weeks'), ('months', 'Months')]
ir_actions_server_id
Many2one → ir.actions.server
delegate=True
ondelete='restrict'
required=True
args: 'ir.actions.server', 'Server action'
nextcall
Datetime
default=fields.Datetime.now
help='Next planned execution date for this job.'
required=True
string='Next Execution Date'
numbercall
Integer
default=1
help='How many times the method is called,\na negative number indicates no limit.'
string='Number of Calls'
priority
Integer
default=5
help='The priority of the job, as an integer: 0 means higher priority, 10 means lower priority.'
user_id
Many2one → res.users
default=<expr>
required=True
string='Scheduler User'
args: 'res.users'
create(self, values)
default_get(self, fields_list)
method_direct_trigger(self)
toggle(self, model, domain)
try_write(self, values)
unlink(self)
write(self, vals)
company_id
Many2one → res.company
help='If set, action binding only applies for this company'
index=True
ondelete='cascade'
string='Company'
args: 'res.company'
condition
Char
help='If set, applies the default upon condition.'
args: 'Condition'
field_id
Many2one → ir.model.fields
index=True
ondelete='cascade'
required=True
string='Field'
args: 'ir.model.fields'
json_value
Char
required=True
args: 'Default Value (JSON format)'
user_id
Many2one → res.users
help='If set, action binding only applies for this user.'
index=True
ondelete='cascade'
string='User'
args: 'res.users'
create(self, vals_list)
discard_records(self, records)
discard_values(self, model_name, field_name, values)
get(self, model_name, field_name, user_id=False, company_id=False, condition=False)
get_model_defaults(self, model_name, condition=False)
set(self, model_name, field_name, value, user_id=False, company_id=False, condition=False)
unlink(self)
write(self, vals)
No new fields.
Public methods (1)install_demo(self)
error
Char
string='Error'
module_id
Many2one → ir.module.module
required=True
string='Module'
args: 'ir.module.module'
wizard_id
Many2one → ir.demo_failure.wizard
No public methods.
failure_ids
One2many → ir.demo_failure
readonly=True
string='Demo Installation Failures'
args: 'ir.demo_failure', 'wizard_id'
failures_count
Integer
compute='_compute_failures_count'
done(self)
export_fields
One2many → ir.exports.line
copy=True
string='Export ID'
args: 'ir.exports.line', 'export_id'
name
Char
string='Export Name'
resource
Char
index=True
No public methods.
export_id
Many2one → ir.exports
index=True
ondelete='cascade'
string='Export'
args: 'ir.exports'
name
Char
string='Field Name'
No public methods.
No new fields.
Public methods (3)db_id_for(self, model, field, subfield, value)
for_model(self, model, fromtype=str)
to_field(self, model, field, fromtype=str)
action_id
Many2one → ir.actions.actions
help='The menu action this filter applies to. When left empty the filter applies to all menus for this model.'
ondelete='cascade'
string='Action'
args: 'ir.actions.actions'
active
Boolean
default=True
context
Text
default='{}'
required=True
domain
Text
default='[]'
required=True
is_default
Boolean
string='Default Filter'
model_id
Selection
required=True
selection='_list_all_models'
string='Model'
name
Char
required=True
string='Filter Name'
translate=True
sort
Text
default='[]'
required=True
user_id
Many2one → res.users
help='The user this filter is private to. When left empty the filter is public and available to all users.'
ondelete='cascade'
string='User'
args: 'res.users'
copy(self, default=None)
create_or_replace(self, vals)
get_filters(self, model, action_id=None)
No new fields.
Public methods (3)binary_content(cls, xmlid=None, model='ir.attachment', id=None, field='datas', unique=False, filename=None, filename_field='datas_fname', download=False, mimetype=None, default_mimetype='application/octet-stream', access_token=None, related_id=None, access_mode=None, env=None)
content_disposition(cls, filename)
routing_map(cls)
create_date
Datetime
readonly=True
string='Created on'
create_uid
Integer
readonly=True
string='Created by'
dbname
Char
index=True
string='Database Name'
func
Char
required=True
string='Function'
level
Char
index=True
line
Char
required=True
message
Text
required=True
name
Char
required=True
path
Char
required=True
type
Selection
index=True
required=True
args: [('client', 'Client'), ('server', 'Server')]
write_date
Datetime
readonly=True
string='Last Updated on'
write_uid
Integer
readonly=True
string='Last Updated by'
init(self)
active
Boolean
default=True
name
Char
index=True
required=True
string='Description'
sequence
Integer
default=10
help='When no specific mail server is requested for a mail, the highest priority one is used. Default priority is 10 (smaller number = higher priority)'
string='Priority'
smtp_debug
Boolean
help='If enabled, the full output of SMTP sessions will be written to the server log at DEBUG level (this is very verbose and may include confidential info!)'
string='Debugging'
smtp_encryption
Selection
default='none'
help='Choose the connection encryption scheme:\n- None: SMTP sessions are done in cleartext.\n- TLS (STARTTLS): TLS encryption is requested at start of SMTP session (Recommended)\n- SSL/TLS: SMTP sessions are encrypted with SSL/TLS through a dedicated port (default: 465)'
required=True
string='Connection Security'
args: [('none', 'None'), ('starttls', 'TLS (STARTTLS)'), ('ssl', 'SSL/TLS')]
smtp_host
Char
help='Hostname or IP of SMTP server'
required=True
string='SMTP Server'
smtp_pass
Char
groups='base.group_system'
help='Optional password for SMTP authentication'
string='Password'
smtp_port
Integer
default=25
help='SMTP Port. Usually 465 for SSL, and 25 or 587 for other cases.'
required=True
size=5
string='SMTP Port'
smtp_user
Char
groups='base.group_system'
help='Optional username for SMTP authentication'
string='Username'
build_email(self, email_from, email_to, subject, body, email_cc=None, email_bcc=None, reply_to=False, attachments=None, message_id=None, references=None, object_id=False, subtype='plain', headers=None, body_alternative=None, subtype_alternative='plain')
connect(self, host=None, port=None, user=None, password=None, encryption=None, smtp_debug=False, mail_server_id=None)
send_email(self, message, mail_server_id=None, smtp_server=None, smtp_port=None, smtp_user=None, smtp_password=None, smtp_encryption=None, smtp_debug=False, smtp_session=None)
test_smtp_connection(self)
access_ids
One2many → ir.model.access
string='Access'
args: 'ir.model.access', 'model_id'
count
Integer
compute='_compute_count'
help='Total number of records in this model'
string='Count (incl. archived)'
field_id
One2many → ir.model.fields
copy=True
default=_default_field_id
required=True
string='Fields'
args: 'ir.model.fields', 'model_id'
info
Text
string='Information'
inherited_model_ids
Many2many → ir.model
compute='_inherited_models'
help='The list of models that extends the current model.'
string='Inherited models'
args: 'ir.model'
model
Char
default='x_'
index=True
required=True
modules
Char
compute='_in_modules'
help='List of modules in which the object is defined or inherited'
string='In Apps'
name
Char
required=True
string='Model Description'
translate=True
rule_ids
One2many → ir.rule
string='Record Rules'
args: 'ir.rule', 'model_id'
state
Selection
default='manual'
readonly=True
string='Type'
args: [('manual', 'Custom Object'), ('base', 'Base Object')]
transient
Boolean
string='Transient Model'
view_ids
One2many → ir.ui.view
compute='_view_ids'
string='Views'
args: 'ir.ui.view'
create(self, vals)
name_create(self, name)
unlink(self)
write(self, vals)
active
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).'
group_id
Many2one → res.groups
index=True
ondelete='cascade'
string='Group'
args: 'res.groups'
model_id
Many2one → ir.model
domain=[('transient', '=', False)]
index=True
ondelete='cascade'
required=True
string='Object'
args: 'ir.model'
name
Char
index=True
required=True
perm_create
Boolean
string='Create Access'
perm_read
Boolean
string='Read Access'
perm_unlink
Boolean
string='Delete Access'
perm_write
Boolean
string='Write Access'
call_cache_clearing_methods(self)
check(self, model, mode='read', raise_exception=True)
check_group(self, model, mode, group_ids)
check_groups(self, group)
create(self, vals_list)
group_names_with_access(self, model_name, access_mode)
register_cache_clearing_method(cls, model, method)
unlink(self)
unregister_cache_clearing_method(cls, model, method)
write(self, values)
date_init
Datetime
string='Initialization Date'
date_update
Datetime
string='Update Date'
definition
Char
help='PostgreSQL constraint definition'
model
Many2one → ir.model
index=True
ondelete='cascade'
required=True
args: 'ir.model'
module
Many2one → ir.module.module
index=True
required=True
args: 'ir.module.module'
name
Char
help='PostgreSQL constraint or foreign key name.'
index=True
required=True
string='Constraint'
type
Char
help='Type of the constraint: `f` for a foreign key, `u` for other constraints.'
index=True
required=True
size=1
string='Constraint Type'
copy(self, default=None)
complete_name
Char
compute='_compute_complete_name'
string='Complete ID'
date_init
Datetime
default=fields.Datetime.now
string='Init Date'
date_update
Datetime
default=fields.Datetime.now
string='Update Date'
model
Char
required=True
string='Model Name'
module
Char
default=''
required=True
name
Char
help='External Key/Identifier that can be used for data integration with third-party systems'
required=True
string='External Identifier'
noupdate
Boolean
default=False
string='Non Updatable'
reference
Char
compute='_compute_reference'
readonly=True
store=False
string='Reference'
res_id
Integer
help='ID of the target record in the database'
string='Record ID'
check_object_reference(self, module, xml_id, raise_on_access_error=False)
get_object(self, module, xml_id)
get_object_reference(self, module, xml_id)
name_get(self)
toggle_noupdate(self, model, res_id)
unlink(self)
xmlid_lookup(self, xmlid)
xmlid_to_object(self, xmlid, raise_if_not_found=False)
xmlid_to_res_id(self, xmlid, raise_if_not_found=False)
xmlid_to_res_model_res_id(self, xmlid, raise_if_not_found=False)
column1
Char
help='Column referring to the record in the model table'
string='Column 1'
column2
Char
help='Column referring to the record in the comodel table'
string='Column 2'
complete_name
Char
index=True
compute
Text
help="Code to compute the value of the field.\nIterate on the recordset 'self' and assign the field's value:\n\n for record in self:\n record['size'] = len(record.name)\n\nModules time, datetime, dateutil are available."
copied
Boolean
help='Whether the value is copied when duplicating a record.'
oldname='copy'
string='Copied'
depends
Char
help='Dependencies of compute method; a list of comma-separated field names, like\n\n name, partner_id.name'
string='Dependencies'
domain
Char
default='[]'
help="The optional domain to restrict possible values for relationship fields, specified as a Python expression defining a list of triplets. For example: [('color','=','red')]"
field_description
Char
default=''
required=True
string='Field Label'
translate=True
groups
Many2many → res.groups
help
Text
string='Field Help'
translate=True
index
Boolean
string='Indexed'
model
Char
help='The technical name of the model this field belongs to'
index=True
required=True
string='Object Name'
model_id
Many2one → ir.model
help='The model this field belongs to'
index=True
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
modules
Char
compute='_in_modules'
help='List of modules in which the field is defined'
string='In Apps'
name
Char
default='x_'
index=True
required=True
string='Field Name'
on_delete
Selection
default='set null'
help='On delete property for many2one fields'
string='On Delete'
args: [('cascade', 'Cascade'), ('set null', 'Set NULL'), ('restrict', 'Restrict')]
readonly
Boolean
related
Char
help='The corresponding related field, if any. This must be a dot-separated list of field names.'
string='Related Field'
related_field_id
Many2one → ir.model.fields
compute='_compute_related_field_id'
ondelete='cascade'
store=True
string='Related field'
args: 'ir.model.fields'
relation
Char
help='For relationship fields, the technical name of the target model'
string='Object Relation'
relation_field
Char
help='For one2many fields, the field on the target model that implement the opposite many2one relationship'
relation_field_id
Many2one → ir.model.fields
compute='_compute_relation_field_id'
ondelete='cascade'
store=True
string='Relation field'
args: 'ir.model.fields'
relation_table
Char
help='Used for custom many2many fields to define a custom relation table name'
required
Boolean
selectable
Boolean
default=True
selection
Char
default=''
help="List of options for a selection field, specified as a Python expression defining a list of (key, label) pairs. For example: [('blue','Blue'),('yellow','Yellow')]"
string='Selection Options'
size
Integer
state
Selection
default='manual'
index=True
readonly=True
required=True
string='Type'
args: [('manual', 'Custom Field'), ('base', 'Base Field')]
store
Boolean
default=True
help='Whether the value is stored in the database.'
string='Stored'
translate
Boolean
help='Whether values for this field can be translated (enables the translation mechanism for that field)'
string='Translatable'
ttype
Selection
required=True
selection=FIELD_TYPES
string='Field Type'
create(self, vals)
name_get(self)
unlink(self)
write(self, vals)
date_init
Datetime
string='Initialization Date'
date_update
Datetime
string='Update Date'
model
Many2one → ir.model
index=True
required=True
args: 'ir.model'
module
Many2one → ir.module.module
index=True
required=True
args: 'ir.module.module'
name
Char
help='PostgreSQL table name implementing a many2many relation.'
index=True
required=True
string='Relation Name'
No public methods.
No new fields.
Public methods (2)unlink(self)
write(self, values)
child_ids
One2many → ir.module.category
string='Child Applications'
args: 'ir.module.category', 'parent_id'
description
Text
string='Description'
translate=True
exclusive
Boolean
string='Exclusive'
module_ids
One2many → ir.module.module
string='Modules'
args: 'ir.module.module', 'category_id'
module_nr
Integer
compute='_compute_module_nr'
string='Number of Apps'
name
Char
index=True
required=True
string='Name'
translate=True
parent_id
Many2one → ir.module.category
index=True
string='Parent Application'
args: 'ir.module.category'
sequence
Integer
string='Sequence'
visible
Boolean
default=True
string='Visible'
xml_id
Char
compute='_compute_xml_id'
string='External ID'
No public methods.
application
Boolean
readonly=True
args: 'Application'
author
Char
readonly=True
args: 'Author'
auto_install
Boolean
help='An auto-installable module is automatically installed by the system when all its dependencies are satisfied. If the module has no dependency, it is always installed.'
args: 'Automatic Installation'
category_id
Many2one → ir.module.category
index=True
readonly=True
string='Category'
args: 'ir.module.category'
contributors
Text
readonly=True
args: 'Contributors'
demo
Boolean
default=False
readonly=True
args: 'Demo Data'
dependencies_id
One2many → ir.module.module.dependency
readonly=True
string='Dependencies'
args: 'ir.module.module.dependency', 'module_id'
description
Text
readonly=True
translate=True
args: 'Description'
description_html
Html
compute='_get_desc'
args: 'Description HTML'
exclusion_ids
One2many → ir.module.module.exclusion
readonly=True
string='Exclusions'
args: 'ir.module.module.exclusion', 'module_id'
icon
Char
icon_image
Binary
compute='_get_icon_image'
string='Icon'
installed_version
Char
compute='_get_latest_version'
args: 'Latest Version'
latest_version
Char
readonly=True
args: 'Installed Version'
license
Selection
default='LGPL-3'
readonly=True
string='License'
args: [('GPL-2', 'GPL Version 2'), ('GPL-2 or any later version', 'GPL-2 or later version'), ('GPL-3', 'GPL Version 3'), ('GPL-3 or any later version', 'GPL-3 or later version'), ('AGPL-3', 'Affero GPL-3'), ('LGPL-3', 'LGPL Version 3'), ('Other OSI approved licence', 'Other OSI Approved Licence'), ('OEEL-1', 'Odoo Enterprise Edition License v1.0'), ('OPL-1', 'Odoo Proprietary License v1.0'), ('Other proprietary', 'Other Proprietary')]
maintainer
Char
readonly=True
args: 'Maintainer'
menus_by_module
Text
compute='_get_views'
store=True
string='Menus'
name
Char
index=True
readonly=True
required=True
args: 'Technical Name'
published_version
Char
readonly=True
args: 'Published Version'
reports_by_module
Text
compute='_get_views'
store=True
string='Reports'
sequence
Integer
default=100
args: 'Sequence'
shortdesc
Char
readonly=True
translate=True
args: 'Module Name'
state
Selection
default='uninstallable'
index=True
readonly=True
string='Status'
args: STATES
summary
Char
readonly=True
translate=True
args: 'Summary'
to_buy
Boolean
default=False
args: 'Odoo Enterprise Module'
url
Char
readonly=True
args: 'URL'
views_by_module
Text
compute='_get_views'
store=True
string='Views'
website
Char
readonly=True
args: 'Website'
button_immediate_install(self)
button_immediate_uninstall(self)
button_immediate_upgrade(self)
button_install(self)
button_install_cancel(self)
button_uninstall(self)
button_uninstall_cancel(self)
button_uninstall_wizard(self)
button_upgrade(self)
button_upgrade_cancel(self)
check_external_dependencies(cls, module_name, newstate='to install')
create(self, vals)
download(self, download=True)
downstream_dependencies(self, known_deps=None, exclude_states=('uninstalled', 'uninstallable', 'to remove'))
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
get_apps_server(self)
get_module_info(cls, name)
get_values_from_terp(terp)
install_from_urls(self, urls)
module_uninstall(self)
next(self)
unlink(self)
update_list(self)
upstream_dependencies(self, known_deps=None, exclude_states=('installed', 'uninstallable', 'to remove'))
depend_id
Many2one → ir.module.module
compute='_compute_depend'
args: 'ir.module.module', 'Dependency'
module_id
Many2one → ir.module.module
ondelete='cascade'
args: 'ir.module.module', 'Module'
name
Char
index=True
state
Selection
compute='_compute_state'
string='Status'
args: DEP_STATES
No public methods.
exclusion_id
Many2one → ir.module.module
compute='_compute_exclusion'
args: 'ir.module.module', 'Exclusion Module'
module_id
Many2one → ir.module.module
ondelete='cascade'
args: 'ir.module.module', 'Module'
name
Char
index=True
state
Selection
compute='_compute_state'
string='Status'
args: DEP_STATES
No public methods.
company_id
Many2one → res.company
index=True
string='Company'
args: 'res.company'
fields_id
Many2one → ir.model.fields
index=True
ondelete='cascade'
required=True
string='Field'
args: 'ir.model.fields'
name
Char
index=True
res_id
Char
help='If not set, acts as a default value for new resources'
index=True
string='Resource'
type
Selection
default='many2one'
index=True
required=True
args: [('char', 'Char'), ('float', 'Float'), ('boolean', 'Boolean'), ('integer', 'Integer'), ('text', 'Text'), ('binary', 'Binary'), ('many2one', 'Many2One'), ('date', 'Date'), ('datetime', 'DateTime'), ('selection', 'Selection')]
value_binary
Binary
value_datetime
Datetime
value_float
Float
value_integer
Integer
value_reference
Char
value_text
Text
create(self, vals_list)
get(self, name, model, res_id=False)
get_by_record(self)
get_multi(self, name, model, ids)
search_multi(self, name, model, operator, value)
set_multi(self, name, model, values, default_value=None)
unlink(self)
write(self, values)
No new fields.
Public methods (5)compile(self, id_or_xml_id, options)
default_values(self)
get_asset_bundle(self, xmlid, files, remains=None, env=None)
load(self, name, options)
render(self, id_or_xml_id, values=None, **options)
No new fields.
Public methods (5)attributes(self, record, field_name, options, values=None)
get_available_options(self)
record_to_html(self, record, field_name, options)
user_lang(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options=None)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)get_available_options(self)
value_to_html(self, value, options)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (1)record_to_html(self, record, field_name, options)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (3)get_available_options(self)
record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
active
Boolean
default=True
help='If you uncheck the active field, it will disable the record rule without deleting it (if you delete a native record rule, it may be re-created when you reload the module).'
domain_force
Text
string='Domain'
groups
Many2many → res.groups
model_id
Many2one → ir.model
index=True
ondelete='cascade'
required=True
string='Object'
args: 'ir.model'
name
Char
index=True
perm_create
Boolean
default=True
string='Apply for Create'
perm_read
Boolean
default=True
string='Apply for Read'
perm_unlink
Boolean
default=True
string='Apply for Delete'
perm_write
Boolean
default=True
string='Apply for Write'
clear_cache(self)
create(self, vals_list)
domain_get(self, model_name, mode='read')
unlink(self)
write(self, vals)
active
Boolean
default=True
code
Char
string='Sequence Code'
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
date_range_ids
One2many → ir.sequence.date_range
string='Subsequences'
args: 'ir.sequence.date_range', 'sequence_id'
implementation
Selection
default='standard'
help="Two sequence object implementations are offered: Standard and 'No gap'. The later is slower than the former but forbids any gap in the sequence (while they are possible in the former)."
required=True
string='Implementation'
args: [('standard', 'Standard'), ('no_gap', 'No gap')]
name
Char
required=True
number_increment
Integer
default=1
help='The next number of the sequence will be incremented by this number'
required=True
string='Step'
number_next
Integer
default=1
help='Next number of this sequence'
required=True
string='Next Number'
number_next_actual
Integer
compute='_get_number_next_actual'
help='Next number that will be used. This number can be incremented frequently so the displayed value might already be obsolete'
inverse='_set_number_next_actual'
string='Actual Next Number'
padding
Integer
default=0
help="Odoo will automatically adds some '0' on the left of the 'Next Number' to get the required padding size."
required=True
string='Sequence Size'
prefix
Char
help='Prefix value of the record for the sequence'
trim=False
suffix
Char
help='Suffix value of the record for the sequence'
trim=False
use_date_range
Boolean
string='Use subsequences per date_range'
create(self, values)
get(self, code)
get_id(self, sequence_code_or_id, code_or_id='id')
get_next_char(self, number_next)
next_by_code(self, sequence_code)
next_by_id(self)
unlink(self)
write(self, values)
date_from
Date
required=True
string='From'
date_to
Date
required=True
string='To'
number_next
Integer
default=1
help='Next number of this sequence'
required=True
string='Next Number'
number_next_actual
Integer
compute='_get_number_next_actual'
help='Next number that will be used. This number can be incremented frequently so the displayed value might already be obsolete'
inverse='_set_number_next_actual'
string='Actual Next Number'
sequence_id
Many2one → ir.sequence
ondelete='cascade'
required=True
string='Main Sequence'
args: 'ir.sequence'
create(self, values)
default_get(self, fields)
unlink(self)
write(self, values)
col1
Many2one → ir.model.fields
required=True
string='Field'
args: 'ir.model.fields'
resource_ref
Reference
compute='_compute_resource_ref'
inverse='_set_resource_ref'
selection='_selection_target_model'
string='Record'
server_id
Many2one → ir.actions.server
ondelete='cascade'
string='Related Server Action'
args: 'ir.actions.server'
type
Selection
change_default=True
default='value'
required=True
args: [('value', 'Value'), ('reference', 'Reference'), ('equation', 'Python expression')], 'Evaluation Type'
value
Text
help='Expression containing a value specification. \nWhen Formula type is selected, this field may be a Python expression that can use the same values as for the code field on the server action.\nIf Value type is selected, the value will be used directly without evaluation.'
required=True
eval_value(self, eval_context=None)
comments
Text
index=True
string='Translation comments'
lang
Selection
selection='_get_languages'
string='Language'
validate=False
module
Char
help='Module this term belongs to'
index=True
name
Char
required=True
string='Translated field'
res_id
Integer
index=True
string='Record ID'
source
Text
compute='_compute_source'
inverse='_inverse_source'
search='_search_source'
string='Source term'
src
Text
string='Internal Source'
state
Selection
default='to_translate'
help='Automatically set to let administators find new terms that might need to be translated'
string='Status'
args: [('to_translate', 'To Translate'), ('inprogress', 'Translation in Progress'), ('translated', 'Translated')]
type
Selection
index=True
string='Type'
args: TRANSLATION_TYPE
value
Text
string='Translation Value'
check(self, mode)
create(self, vals_list)
get_field_help(self, model_name)
get_field_string(self, model_name)
get_technical_translations(self, model_name)
insert_missing(self, field, records)
load_module_terms(self, modules, langs)
translate_fields(self, model, id, field=None)
unlink(self)
write(self, vals)
action
Reference
selection=[('ir.actions.report', 'ir.actions.report'), ('ir.actions.act_window', 'ir.actions.act_window'), ('ir.actions.act_url', 'ir.actions.act_url'), ('ir.actions.server', 'ir.actions.server'), ('ir.actions.client', 'ir.actions.client')]
active
Boolean
default=True
child_id
One2many → ir.ui.menu
string='Child IDs'
args: 'ir.ui.menu', 'parent_id'
complete_name
Char
compute='_compute_complete_name'
string='Full Path'
groups_id
Many2many → res.groups
help="If you have groups, the visibility of this menu will be based on these groups. If this field is empty, Odoo will compute visibility based on the related object's read access."
string='Groups'
args: 'res.groups', 'ir_ui_menu_group_rel', 'menu_id', 'gid'
name
Char
required=True
string='Menu'
translate=True
parent_id
Many2one → ir.ui.menu
index=True
ondelete='restrict'
string='Parent Menu'
args: 'ir.ui.menu'
parent_path
Char
index=True
sequence
Integer
default=10
web_icon
Char
string='Web Icon File'
web_icon_data
Binary
attachment=True
string='Web Icon Image'
copy(self, default=None)
create(self, vals_list)
get_user_roots(self)
load_menus(self, debug)
load_menus_root(self)
name_get(self)
read_image(self, path)
unlink(self)
write(self, values)
active
Boolean
default=True
help='If this view is inherited,\n* if True, the view always extends its parent\n* if False, the view currently does not extend its parent but can be enabled\n '
arch
Text
compute='_compute_arch'
inverse='_inverse_arch'
nodrop=True
string='View Architecture'
arch_base
Text
compute='_compute_arch_base'
inverse='_inverse_arch_base'
string='Base View Architecture'
arch_db
Text
oldname='arch'
string='Arch Blob'
translate=xml_translate
arch_fs
Char
string='Arch Filename'
field_parent
Char
string='Child Field'
groups_id
Many2many → res.groups
help='If this field is empty, the view applies to all users. Otherwise, the view applies to the users of those groups only.'
string='Groups'
args: 'res.groups', 'ir_ui_view_group_rel', 'view_id', 'group_id'
inherit_children_ids
One2many → ir.ui.view
string='Views which inherit from this one'
args: 'ir.ui.view', 'inherit_id'
inherit_id
Many2one → ir.ui.view
index=True
ondelete='restrict'
string='Inherited View'
args: 'ir.ui.view'
key
Char
mode
Selection
default='primary'
help="Only applies if this view inherits from an other one (inherit_id is not False/Null).\n\n* if extension (default), if this view is requested the closest primary view\nis looked up (via inherit_id), then all views inheriting from it with this\nview's model are applied\n* if primary, the closest primary view is fully resolved (even if it uses a\ndifferent model than this one), then this view's inheritance specs\n(<xpath/>) are applied, and the result is used as if it were this view's\nactual arch.\n"
required=True
string='View inheritance mode'
args: [('primary', 'Base view'), ('extension', 'Extension View')]
model
Char
index=True
model_data_id
Many2one → ir.model.data
compute='_compute_model_data_id'
search='_search_model_data_id'
string='Model Data'
args: 'ir.model.data'
model_ids
One2many → ir.model.data
auto_join=True
domain=[('model', '=', 'ir.ui.view')]
string='Models'
args: 'ir.model.data', 'res_id'
name
Char
required=True
string='View Name'
priority
Integer
default=16
required=True
string='Sequence'
type
Selection
string='View Type'
args: [('tree', 'Tree'), ('form', 'Form'), ('graph', 'Graph'), ('pivot', 'Pivot'), ('calendar', 'Calendar'), ('diagram', 'Diagram'), ('gantt', 'Gantt'), ('kanban', 'Kanban'), ('search', 'Search'), ('qweb', 'QWeb')]
xml_id
Char
compute='_compute_xml_id'
help='ID of the view defined in xml file'
string='External ID'
add_on_change(self, model_name, arch)
apply_inheritance_specs(self, source, specs_tree, inherit_id)
apply_view_inheritance(self, source, source_id, model, root_id=None)
clear_cache(self)
copy(self, default=None)
create(self, vals_list)
default_view(self, model, view_type)
distribute_branding(self, e, branding=None, parent_xpath='', index_map=ConstantMapping(1))
get_attrs_field_names(self, arch, model, editable)
get_attrs_symbols(self)
get_inheriting_views_arch(self, view_id, model)
get_view_id(self, template)
get_view_xmlid(self)
graph_get(self, id, model, node_obj, conn_obj, src_node, des_node, label, scale)
inherit_branding(self, specs_tree, view_id, root_id)
is_node_branded(self, node)
locate_node(self, arch, spec)
open_translations(self)
postprocess(self, model, node, view_id, in_tree_view, model_fields)
postprocess_and_fields(self, model, node, view_id)
raise_view_error(self, message, view_id)
read_combined(self, fields=None)
read_template(self, xml_id)
render(self, values=None, engine='ir.qweb', minimal_qcontext=False)
render_template(self, template, values=None, engine='ir.qweb')
toggle(self)
translate_qweb(self, arch, lang)
unlink(self)
write(self, vals)
arch
Text
required=True
string='View Architecture'
ref_id
Many2one → ir.ui.view
index=True
ondelete='cascade'
required=True
string='Original View'
args: 'ir.ui.view'
user_id
Many2one → res.users
index=True
ondelete='cascade'
required=True
string='User'
args: 'res.users'
name_get(self)
No new fields.
Public methods (0)No public methods.
default
Boolean
dpi
Integer
default=90
required=True
args: 'Output DPI'
format
Selection
default='A4'
help='Select Proper Paper size'
args: <expr>, 'Paper size'
header_line
Boolean
default=False
args: 'Display a header line'
header_spacing
Integer
default=35
args: 'Header spacing'
margin_bottom
Float
default=20
args: 'Bottom Margin (mm)'
margin_left
Float
default=7
args: 'Left Margin (mm)'
margin_right
Float
default=7
args: 'Right Margin (mm)'
margin_top
Float
default=40
args: 'Top Margin (mm)'
name
Char
required=True
args: 'Name'
orientation
Selection
default='Landscape'
args: [('Landscape', 'Landscape'), ('Portrait', 'Portrait')], 'Orientation'
page_height
Integer
default=False
args: 'Page height (mm)'
page_width
Integer
default=False
args: 'Page width (mm)'
print_page_height
Float
compute='_compute_print_page_size'
args: 'Print page height (mm)'
print_page_width
Float
compute='_compute_print_page_size'
args: 'Print page width (mm)'
report_ids
One2many → ir.actions.report
help='Explicitly associated reports'
args: 'ir.actions.report', 'paperformat_id', 'Associated reports'
No public methods.
active
Boolean
default=True
bic
Char
help='Sometimes called BIC or Swift.'
index=True
args: 'Bank Identifier Code'
city
Char
country
Many2one → res.country
email
Char
name
Char
required=True
phone
Char
state
Many2one → res.country.state
domain="[('country_id', '=?', country)]"
args: 'res.country.state', 'Fed. State'
street
Char
street2
Char
zip
Char
name_get(self)
account_no
Char
string='Account No.'
bank_ids
One2many → res.partner.bank
help='Bank accounts related to this company'
string='Bank Accounts'
args: 'res.partner.bank', 'company_id'
base_onboarding_company_state
Selection
default='not_done'
string='State of the onboarding company step'
args: [('not_done', 'Not done'), ('just_done', 'Just done'), ('done', 'Done')]
child_ids
One2many → res.company
string='Child Companies'
args: 'res.company', 'parent_id'
city
Char
compute='_compute_address'
inverse='_inverse_city'
company_registry
Char
country_id
Many2one → res.country
compute='_compute_address'
inverse='_inverse_country'
string='Country'
args: 'res.country'
currency_id
Many2one → res.currency
default=<expr>
required=True
string='Currency'
args: 'res.currency'
email
Char
readonly=False
related='partner_id.email'
store=True
external_report_layout_id
Many2one → ir.ui.view
logo
Binary
default=_get_logo
readonly=False
related='partner_id.image'
string='Company Logo'
logo_web
Binary
compute='_compute_logo_web'
store=True
name
Char
readonly=False
related='partner_id.name'
required=True
store=True
string='Company Name'
paperformat_id
Many2one → report.paperformat
default=<expr>
args: 'report.paperformat', 'Paper format'
parent_id
Many2one → res.company
index=True
string='Parent Company'
args: 'res.company'
partner_id
Many2one → res.partner
required=True
string='Partner'
args: 'res.partner'
phone
Char
readonly=False
related='partner_id.phone'
store=True
report_footer
Text
help='Footer text displayed at the bottom of all reports.'
string='Report Footer'
translate=True
report_header
Text
help='Appears by default on the top right corner of your printed documents (report header).'
string='Company Tagline'
sequence
Integer
default=10
help='Used to order Companies in the company switcher'
state_id
Many2one → res.country.state
compute='_compute_address'
inverse='_inverse_state'
string='Fed. State'
args: 'res.country.state'
street
Char
compute='_compute_address'
inverse='_inverse_street'
street2
Char
compute='_compute_address'
inverse='_inverse_street2'
user_ids
Many2many → res.users
string='Accepted Users'
args: 'res.users', 'res_company_users_rel', 'cid', 'user_id'
vat
Char
readonly=False
related='partner_id.vat'
string='Tax ID'
website
Char
readonly=False
related='partner_id.website'
zip
Char
compute='_compute_address'
inverse='_inverse_zip'
action_open_base_onboarding_company(self)
action_save_onboarding_company_step(self)
cache_restart(self)
copy(self, default=None)
create(self, vals)
get_and_update_onbarding_state(self, onboarding_state, steps_states)
init(self)
on_change_country(self, country_id)
open_company_edit_report(self)
set_onboarding_step_done(self, step_name)
write(self, values)
write_company_and_print_report(self, values)
No new fields.
Public methods (7)action_cancel(self)
action_next(self)
action_skip(self)
cancel(self)
execute(self)
next(self)
start(self)
No new fields.
Public methods (5)already_installed(self)
default_get(self, fields_list)
execute(self)
fields_get(self, fields=None, attributes=None)
modules_to_install(self)
No new fields.
Public methods (12)cancel(self)
copy(self, values)
default_get(self, fields)
execute(self)
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
get_config_warning(self, msg)
get_option_name(self, full_field_name)
get_option_path(self, menu_xml_id)
get_values(self)
name_get(self)
onchange_module(self, field_value, module_name)
set_values(self)
address_format
Text
default='%(street)s\n%(street2)s\n%(city)s %(state_code)s %(zip)s\n%(country_name)s'
help="Display format to use for addresses belonging to this country.\n\nYou can use python-style string pattern with all the fields of the address (for example, use '%(street)s' to display the field 'street') plus\n%(state_name)s: the name of the state\n%(state_code)s: the code of the state\n%(country_name)s: the name of the country\n%(country_code)s: the code of the country"
string='Layout in Reports'
address_view_id
Many2one → ir.ui.view
comodel_name='ir.ui.view'
domain=[('model', '=', 'res.partner'), ('type', '=', 'form')]
help='Use this field if you want to replace the usual way to encode a complete address. Note that the address_format field is used to modify the way to display addresses (in reports for example), while this field is used to modify the input form for addresses.'
string='Input View'
code
Char
help='The ISO country code in two chars. \nYou can use this field for quick search.'
size=2
string='Country Code'
country_group_ids
Many2many → res.country.group
string='Country Groups'
args: 'res.country.group', 'res_country_res_country_group_rel', 'res_country_id', 'res_country_group_id'
currency_id
Many2one → res.currency
string='Currency'
args: 'res.currency'
image
Binary
attachment=True
name
Char
help='The full name of the country.'
required=True
string='Country Name'
translate=True
name_position
Selection
default='before'
help='Determines where the customer/company name should be placed, i.e. after or before the address.'
string='Customer Name Position'
args: [('before', 'Before Address'), ('after', 'After Address')]
phone_code
Integer
string='Country Calling Code'
state_ids
One2many → res.country.state
string='States'
args: 'res.country.state', 'country_id'
vat_label
Char
help='Use this field if you want to change vat label.'
string='Vat Label'
translate=True
create(self, vals_list)
get_address_fields(self)
write(self, vals)
country_ids
Many2many → res.country
string='Countries'
args: 'res.country', 'res_country_res_country_group_rel', 'res_country_group_id', 'res_country_id'
name
Char
required=True
translate=True
No public methods.
code
Char
help='The state code.'
required=True
string='State Code'
country_id
Many2one → res.country
required=True
string='Country'
args: 'res.country'
name
Char
help='Administrative divisions of a country. E.g. Fed. State, Departement, Canton'
required=True
string='State Name'
name_get(self)
active
Boolean
default=True
currency_subunit_label
Char
help='Currency Subunit Name'
string='Currency Subunit'
currency_unit_label
Char
help='Currency Unit Name'
string='Currency Unit'
date
Date
compute='_compute_date'
decimal_places
Integer
compute='_compute_decimal_places'
store=True
name
Char
help='Currency Code (ISO 4217)'
required=True
size=3
string='Currency'
position
Selection
default='after'
help='Determines where the currency symbol should be placed after or before the amount.'
string='Symbol Position'
args: [('after', 'After Amount'), ('before', 'Before Amount')]
rate
Float
compute='_compute_current_rate'
digits=(12, 6)
help='The rate of the currency to the currency of rate 1.'
string='Current Rate'
rate_ids
One2many → res.currency.rate
string='Rates'
args: 'res.currency.rate', 'currency_id'
rounding
Float
default=0.01
digits=(12, 6)
string='Rounding Factor'
symbol
Char
help='Currency sign, to be used when printing amounts.'
required=True
amount_to_text(self, amount)
compare_amounts(self, amount1, amount2)
compute(self, from_amount, to_currency, round=True)
is_zero(self, amount)
name_get(self)
round(self, amount)
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
readonly=True
string='Currency'
args: 'res.currency'
name
Date
default=fields.Date.context_today
index=True
required=True
string='Date'
rate
Float
default=1.0
digits=(12, 6)
help='The rate of the currency to the currency of rate 1'
No public methods.
category_id
Many2one → ir.module.category
index=True
string='Application'
args: 'ir.module.category'
color
Integer
string='Color Index'
comment
Text
translate=True
full_name
Char
compute='_compute_full_name'
search='_search_full_name'
string='Group Name'
menu_access
Many2many → ir.ui.menu
string='Access Menu'
args: 'ir.ui.menu', 'ir_ui_menu_group_rel', 'gid', 'menu_id'
model_access
One2many → ir.model.access
copy=True
string='Access Controls'
args: 'ir.model.access', 'group_id'
name
Char
required=True
translate=True
rule_groups
Many2many → ir.rule
domain=[('global', '=', False)]
string='Rules'
args: 'ir.rule', 'rule_group_rel', 'group_id', 'rule_group_id'
share
Boolean
help='Group created to set access rights for sharing data with some users.'
string='Share Group'
users
Many2many → res.users
view_access
Many2many → ir.ui.view
string='Views'
args: 'ir.ui.view', 'ir_ui_view_group_rel', 'group_id', 'view_id'
copy(self, default=None)
write(self, vals)
implied_ids
Many2many → res.groups
help='Users of this group automatically inherit those groups'
string='Inherits'
args: 'res.groups', 'res_groups_implied_rel', 'gid', 'hid'
trans_implied_ids
Many2many → res.groups
compute='_compute_trans_implied'
string='Transitively inherits'
args: 'res.groups'
create(self, vals_list)
write(self, values)
No new fields.
Public methods (5)create(self, values)
get_application_groups(self, domain)
get_groups_by_application(self)
unlink(self)
write(self, values)
active
Boolean
code
Char
help='This field is used to set/get locales for user'
required=True
string='Locale Code'
date_format
Char
default=DEFAULT_DATE_FORMAT
required=True
string='Date Format'
decimal_point
Char
default='.'
required=True
string='Decimal Separator'
trim=False
direction
Selection
default='ltr'
required=True
args: [('ltr', 'Left-to-Right'), ('rtl', 'Right-to-Left')]
grouping
Char
default='[]'
help="The Separator Format should be like [,n] where 0 < n :starting from Unit digit. -1 will end the separation. e.g. [3,2,-1] will represent 106500 to be 1,06,500; [1,2,-1] will represent it to be 106,50,0;[3] will represent it as 106,500. Provided ',' as the thousand separator in each case."
required=True
string='Separator Format'
iso_code
Char
help='This ISO code is the name of po files to use for translations'
string='ISO code'
name
Char
required=True
thousands_sep
Char
default=','
string='Thousands Separator'
trim=False
time_format
Char
default=DEFAULT_TIME_FORMAT
required=True
string='Time Format'
translatable
Boolean
week_start
Selection
default=7
required=True
string='First Day of Week'
args: [(1, 'Monday'), (2, 'Tuesday'), (3, 'Wednesday'), (4, 'Thursday'), (5, 'Friday'), (6, 'Saturday'), (7, 'Sunday')]
create(self, vals_list)
format(self, percent, value, grouping=False, monetary=False)
get_available(self)
get_installed(self)
install_lang(self)
load_lang(self, lang, lang_name=None)
unlink(self)
write(self, vals)
active
Boolean
default=True
bank_ids
One2many → res.partner.bank
string='Banks'
args: 'res.partner.bank', 'partner_id'
barcode
Char
help='Use a barcode to identify this contact from the Point of Sale.'
oldname='ean13'
category_id
Many2many → res.partner.category
column1='partner_id'
column2='category_id'
default=_default_category
string='Tags'
args: 'res.partner.category'
child_ids
One2many → res.partner
domain=[('active', '=', True)]
string='Contacts'
args: 'res.partner', 'parent_id'
city
Char
color
Integer
default=0
string='Color Index'
comment
Text
string='Notes'
commercial_company_name
Char
compute='_compute_commercial_company_name'
store=True
args: 'Company Name Entity'
commercial_partner_id
Many2one → res.partner
compute='_compute_commercial_partner'
index=True
store=True
string='Commercial Entity'
args: 'res.partner'
company_id
Many2one → res.company
default=_default_company
index=True
args: 'res.company', 'Company'
company_name
Char
company_type
Selection
compute='_compute_company_type'
inverse='_write_company_type'
selection=[('person', 'Individual'), ('company', 'Company')]
string='Company Type'
contact_address
Char
compute='_compute_contact_address'
string='Complete Address'
country_id
Many2one → res.country
ondelete='restrict'
string='Country'
args: 'res.country'
credit_limit
Float
string='Credit Limit'
customer
Boolean
default=True
help='Check this box if this contact is a customer. It can be selected in sales orders.'
string='Is a Customer'
date
Date
index=True
display_name
Char
compute='_compute_display_name'
index=True
store=True
email
Char
email_formatted
Char
compute='_compute_email_formatted'
help='Format email address "Name <email@domain>"'
args: 'Formatted Email'
employee
Boolean
help='Check this box if this contact is an Employee.'
function
Char
string='Job Position'
image
Binary
attachment=True
help='This field holds the image used as avatar for this contact, limited to 1024x1024px'
args: 'Image'
image_medium
Binary
attachment=True
help='Medium-sized image of this contact. It is automatically resized as a 128x128px image, with aspect ratio preserved. Use this field in form views or some kanban views.'
args: 'Medium-sized image'
image_small
Binary
attachment=True
help='Small-sized image of this contact. It is automatically resized as a 64x64px image, with aspect ratio preserved. Use this field anywhere a small image is required.'
args: 'Small-sized image'
industry_id
Many2one → res.partner.industry
is_company
Boolean
default=False
help='Check if the contact is a company, otherwise it is a person'
string='Is a Company'
lang
Selection
default=<expr>
help='All the emails and documents sent to this contact will be translated in this language.'
string='Language'
args: _lang_get
mobile
Char
name
Char
index=True
parent_id
Many2one → res.partner
index=True
string='Related Company'
args: 'res.partner'
parent_name
Char
readonly=True
related='parent_id.name'
string='Parent name'
partner_share
Boolean
compute='_compute_partner_share'
help='Either customer (not a user), either shared user. Indicated the current partner is a customer without access or with a limited access created for sharing data.'
store=True
args: 'Share Partner'
phone
Char
ref
Char
index=True
string='Internal Reference'
self
Many2one
comodel_name=_name
compute='_compute_get_ids'
state_id
Many2one → res.country.state
domain="[('country_id', '=?', country_id)]"
ondelete='restrict'
string='State'
args: 'res.country.state'
street
Char
street2
Char
supplier
Boolean
help='Check this box if this contact is a vendor. It can be selected in purchase orders.'
string='Is a Vendor'
title
Many2one → res.partner.title
type
Selection
default='contact'
help='Used by Sales and Purchase Apps to select the relevant address depending on the context.'
string='Address Type'
args: [('contact', 'Contact'), ('invoice', 'Invoice address'), ('delivery', 'Shipping address'), ('other', 'Other address'), ('private', 'Private Address')]
tz
Selection
default=<expr>
help="The partner's timezone, used to output proper date and time values inside printed reports. It is important to set a value for this field. You should use the same timezone that is otherwise used to pick and render date and time values: your computer's timezone."
string='Timezone'
args: _tz_get
tz_offset
Char
compute='_compute_tz_offset'
invisible=True
string='Timezone offset'
user_id
Many2one → res.users
help='The internal user in charge of this contact.'
string='Salesperson'
args: 'res.users'
user_ids
One2many → res.users
auto_join=True
string='Users'
args: 'res.users', 'partner_id'
vat
Char
help='The Tax Identification Number. Complete it if the contact is subjected to government taxes. Used in some legal statements.'
index=True
string='Tax ID'
website
Char
zip
Char
change_default=True
address_get(self, adr_pref=None)
copy(self, default=None)
create(self, vals_list)
create_company(self)
find_or_create(self, email)
get_base_url(self)
get_import_templates(self)
main_partner(self)
name_create(self, name)
name_get(self)
onchange_company_type(self)
onchange_email(self)
onchange_parent_id(self)
open_commercial_entity(self)
open_parent(self)
update_address(self, vals)
view_header_get(self, view_id, view_type)
write(self, vals)
acc_holder_name
Char
help='Account holder name, in case it is different than the name of the Account Holder'
string='Account Holder Name'
acc_number
Char
required=True
args: 'Account Number'
acc_type
Selection
compute='_compute_acc_type'
help='Bank account type: Normal or IBAN. Inferred from the bank account number.'
selection=<expr>
string='Type'
bank_bic
Char
readonly=False
related='bank_id.bic'
bank_id
Many2one → res.bank
string='Bank'
args: 'res.bank'
bank_name
Char
readonly=False
related='bank_id.name'
company_id
Many2one → res.company
default=<expr>
ondelete='cascade'
args: 'res.company', 'Company'
currency_id
Many2one → res.currency
string='Currency'
args: 'res.currency'
partner_id
Many2one → res.partner
domain=['|', ('is_company', '=', True), ('parent_id', '=', False)]
index=True
ondelete='cascade'
required=True
args: 'res.partner', 'Account Holder'
qr_code_valid
Boolean
compute='_validate_qr_code_arguments'
string='Has all required arguments'
sanitized_acc_number
Char
compute='_compute_sanitized_acc_number'
readonly=True
store=True
string='Sanitized Account Number'
sequence
Integer
default=10
build_qr_code_base64(self, amount, comment)
build_qr_code_url(self, amount, comment)
build_qr_code_vals(self, amount, comment)
get_supported_account_types(self)
retrieve_acc_type(self, acc_number)
active
Boolean
default=True
help='The active field allows you to hide the category without removing it.'
child_ids
One2many → res.partner.category
string='Child Tags'
args: 'res.partner.category', 'parent_id'
color
Integer
string='Color Index'
name
Char
required=True
string='Tag Name'
translate=True
parent_id
Many2one → res.partner.category
index=True
ondelete='cascade'
string='Parent Category'
args: 'res.partner.category'
parent_path
Char
index=True
partner_ids
Many2many → res.partner
column1='category_id'
column2='partner_id'
string='Partners'
args: 'res.partner'
name_get(self)
active
Boolean
default=True
args: 'Active'
full_name
Char
translate=True
args: 'Full Name'
name
Char
translate=True
args: 'Name'
No public methods.
name
Char
required=True
string='Title'
translate=True
shortcut
Char
string='Abbreviation'
translate=True
No public methods.
action_id
Many2one → ir.actions.actions
help='If specified, this action will be opened at log on for this user, in addition to the standard menu.'
string='Home Action'
args: 'ir.actions.actions'
active
Boolean
default=True
active_partner
Boolean
readonly=True
related='partner_id.active'
string='Partner is Active'
companies_count
Integer
compute='_compute_companies_count'
default=_companies_count
string='Number of Companies'
company_id
Many2one → res.company
context={'user_preference': True}
default=_get_company
help='The company this user is currently working for.'
required=True
string='Company'
args: 'res.company'
company_ids
Many2many → res.company
default=_get_company
string='Companies'
args: 'res.company', 'res_company_users_rel', 'user_id', 'cid'
email
Char
inherited=True
readonly=False
related='partner_id.email'
groups_id
Many2many → res.groups
default=_default_groups
string='Groups'
args: 'res.groups', 'res_groups_users_rel', 'uid', 'gid'
log_ids
One2many → res.users.log
string='User log entries'
args: 'res.users.log', 'create_uid'
login
Char
help='Used to log into the system'
required=True
login_date
Datetime
readonly=False
related='log_ids.create_date'
string='Latest connection'
name
Char
inherited=True
readonly=False
related='partner_id.name'
new_password
Char
compute='_compute_password'
help="Specify a value only when creating a user or if you're changing the user's password, otherwise leave empty. After a change of password, the user has to login again."
inverse='_set_new_password'
string='Set Password'
partner_id
Many2one → res.partner
auto_join=True
help='Partner-related data of the user'
ondelete='restrict'
required=True
string='Related Partner'
args: 'res.partner'
password
Char
compute='_compute_password'
copy=False
help="Keep empty if you don't want the user to be able to connect on the system."
inverse='_set_password'
invisible=True
share
Boolean
compute='_compute_share'
compute_sudo=True
help='External user with limited access, created only for the purpose of sharing data.'
store=True
string='Share User'
signature
Html
tz_offset
Char
compute='_compute_tz_offset'
invisible=True
string='Timezone offset'
action_get(self)
authenticate(cls, db, login, password, user_agent_env)
change_password(self, old_passwd, new_passwd)
check(cls, db, uid, passwd)
check_super(self, passwd)
context_get(self)
copy(self, default=None)
create(self, vals_list)
get_company_currency_id(self)
has_group(self, group_ext_id)
init(self)
on_change_login(self)
onchange_parent_id(self)
preference_change_password(self)
preference_save(self)
read(self, fields=None, load='_classic_read')
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
toggle_active(self)
unlink(self)
write(self, values)
No new fields.
Public methods (2)create(self, vals_list)
write(self, values)
No new fields.
Public methods (5)create(self, values)
default_get(self, fields)
fields_get(self, allfields=None, attributes=None)
read(self, fields=None, load='_classic_read')
write(self, values)
No new fields.
Public methods (0)No public methods.
menu_id
Many2one → ir.ui.menu
ondelete='cascade'
required=True
string='Parent Menu'
args: 'ir.ui.menu'
name
Char
required=True
string='Menu Name'
menu_create(self)
access_ir_model_access_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_model_access' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_model_fields_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_model_fields' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_model_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_model' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_rule_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_rule' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_ui_view_custom_group_user — Access rule grants write/create/unlink on 'model_ir_ui_view_custom' to EVERY user (portal/public included): no group is set acl-global-writeaccess_res_groups_group_erp_manager — Access rule grants write/create/unlink on security model 'model_res_groups' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_res_users_group_erp_manager — Access rule grants write/create/unlink on security model 'model_res_users' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_res_users_log_all — Access rule grants create on 'model_res_users_log' to EVERY user (portal/public included): no group is set acl-global-writeFound by automated static analysis: these patterns are usually risky, but only a manual review of the module can confirm a real issue.
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
act_report_xml_search_view |
ir.actions.report.search | ir.actions.report | search | New |
act_report_xml_view |
ir.actions.report | ir.actions.report | form | New |
act_report_xml_view_tree |
ir.actions.report.tree | ir.actions.report | tree | New |
action_view |
ir.actions.actions | ir.actions.actions | form | New |
action_view_company_form_link_2_currencies |
res.company.form | res.company | form | Inherits base.view_company_form |
action_view_search |
ir.actions.actions.search | ir.actions.actions | search | New |
action_view_tree |
ir.actions.actions.tree | ir.actions.actions | tree | New |
change_password_wizard_user_tree_view |
Change Password Users | change.password.user | tree | New |
change_password_wizard_view |
Change Password | change.password.wizard | form | New |
config_wizard_step_view_form |
Config Wizard Steps | ir.actions.todo | form | New |
config_wizard_step_view_search |
ir.actions.todo.select | ir.actions.todo | search | New |
contact |
contact | ir.ui.view | qweb | New |
contact_name |
contact_name | ir.ui.view | qweb | New |
edit_menu |
ir.ui.menu | tree | New | |
edit_menu_access |
ir.ui.menu | form | New | |
edit_menu_access_search |
ir.ui.menu.search | ir.ui.menu | search | New |
ir_access_view_form |
ir.model.access | form | New | |
ir_access_view_search |
ir.model.access | search | New | |
ir_access_view_tree |
ir.model.access | tree | New | |
ir_actions_todo_tree |
Config Wizard Steps | ir.actions.todo | tree | New |
ir_cron_view_calendar |
ir.cron | calendar | New | |
ir_cron_view_form |
ir.cron.view.form | ir.cron | div | Inherits base.view_server_action_form |
ir_cron_view_search |
ir.cron | search | New | |
ir_cron_view_tree |
ir.cron | tree | New | |
ir_default_form_view |
ir.default form view | ir.default | form | New |
ir_default_search_view |
ir.default search view | ir.default | search | New |
ir_default_tree_view |
ir.default tree view | ir.default | tree | New |
ir_filters_view_form |
ir.filters | form | New | |
ir_filters_view_search |
ir.filters | search | New | |
ir_filters_view_tree |
ir.filters | tree | New | |
ir_logging_form_view |
ir.logging | form | New | |
ir_logging_search_view |
ir.logging | search | New | |
ir_logging_tree_view |
ir.logging | tree | New | |
ir_mail_server_form |
ir.mail_server | form | New | |
ir_mail_server_list |
ir.mail_server | tree | New | |
ir_property_view |
ir.property.form | ir.property | form | New |
ir_property_view_search |
ir.property.search | ir.property | search | New |
ir_property_view_tree |
ir.property.tree | ir.property | tree | New |
module_form |
ir.module.module.form | ir.module.module | form | New |
module_tree |
ir.module.module.tree | ir.module.module | tree | New |
module_view_kanban |
Apps Kanban | ir.module.module | kanban | New |
paperformat_view_form |
paper_format_view_form | report.paperformat | form | New |
paperformat_view_tree |
paper_format_view_tree | report.paperformat | tree | New |
report_irmodeloverview |
report_irmodeloverview | ir.ui.view | qweb | New |
report_irmodulereference |
report_irmodulereference | ir.ui.view | qweb | New |
res_config_installer |
Inheritable view for installer objects | res.config.installer | form | New |
res_config_settings_view_form |
res.config.settings.view.form | res.config.settings | form | New |
res_config_view_base |
res.config.view.base | res.config | form | New |
res_lang_form |
res.lang.form | res.lang | form | New |
res_lang_search |
res.lang.search | res.lang | search | New |
res_lang_tree |
res.lang.tree | res.lang | tree | New |
res_partner_industry_view_form |
Industry | res.partner.industry | form | New |
res_partner_industry_view_tree |
Industry | res.partner.industry | tree | New |
res_partner_kanban_view |
res.partner.kanban | res.partner | kanban | New |
res_partner_view_form_private |
res.partner.view.form.private | res.partner | form | New |
res_request_link-view |
res.request.link.form | res.request.link | form | New |
res_request_link_search_view |
res.request.link.search | res.request.link | search | New |
res_request_link_tree-view |
res.request.link.form | res.request.link | tree | New |
sequence_view |
ir.sequence | form | New | |
sequence_view_tree |
ir.sequence | tree | New | |
user_groups_view |
res.users.groups | res.users | form | Inherits view_users_form |
view_attachment_form |
ir.attachment | form | New | |
view_attachment_search |
ir.attachment | search | New | |
view_attachment_tree |
ir.attachment | tree | New | |
view_base_import_language |
Import Translation | base.language.import | form | New |
view_base_language_install |
Load a Translation | base.language.install | form | New |
view_base_module_uninstall |
Uninstall module | base.module.uninstall | form | New |
view_base_module_update |
Module Update | base.module.update | form | New |
view_base_module_upgrade |
Module Upgrade | base.module.upgrade | form | New |
view_base_module_upgrade_install |
Module Upgrade Install | base.module.upgrade | form | New |
view_company_form |
res.company.form | res.company | form | New |
view_company_report_form |
res.company.report.form | res.company | form | Inherits base.view_company_form |
view_company_report_form_with_print |
res.company.report.form.with.print | res.company | form | Inherits base.view_company_report_form |
view_company_tree |
res.company.tree | res.company | tree | New |
view_country_form |
res.country.form | res.country | form | New |
view_country_group_form |
res.country.group.form | res.country.group | form | New |
view_country_group_tree |
res.country.group.tree | res.country.group | tree | New |
view_country_state_form |
res.country.state.form | res.country.state | form | New |
view_country_state_tree |
res.country.state.tree | res.country.state | tree | New |
view_country_tree |
res.country.tree | res.country | tree | New |
view_currency_form |
res.currency.form | res.currency | form | New |
view_currency_kanban |
res.currency.kanban | res.currency | kanban | New |
view_currency_rate_form |
res.currency.rate.form | res.currency.rate | form | New |
view_currency_rate_form |
res.currency.rate.form | res.currency.rate | form | New |
view_currency_rate_search |
res.currency.rate.search | res.currency.rate | search | New |
view_currency_rate_tree |
res.currency.rate.tree | res.currency.rate | tree | New |
view_currency_search |
res.currency.search | res.currency | search | New |
view_currency_tree |
res.currency.tree | res.currency | tree | New |
view_groups_form |
res.groups.form | res.groups | form | New |
view_groups_search |
res.groups.search | res.groups | search | New |
view_ir_config_form |
ir.config_parameter | form | New | |
view_ir_config_list |
ir.config_parameter | tree | New | |
view_ir_config_search |
ir.config_parameter | search | New | |
view_ir_mail_server_search |
ir.mail_server | search | New | |
view_menu |
ir.ui.menu.tree | ir.ui.menu | tree | New |
view_model_constraint_form |
ir.model.constraint | form | New | |
view_model_constraint_list |
ir.model.constraint | tree | New | |
view_model_data_form |
ir.model.data | form | New | |
view_model_data_list |
ir.model.data | tree | New | |
view_model_data_search |
ir.model.data | search | New | |
view_model_fields_form |
ir.model.fields | form | New | |
view_model_fields_search |
ir.model.fields | search | New | |
view_model_fields_tree |
ir.model.fields | tree | New | |
view_model_form |
ir.model | form | New | |
view_model_menu_create |
Create Menu | wizard.ir.model.menu.create | form | New |
view_model_relation_form |
ir.model.relation | form | New | |
view_model_relation_list |
ir.model.relation | tree | New | |
view_model_search |
ir.model | search | New | |
view_model_tree |
ir.model | tree | New | |
view_module_category_form |
ir.module.category.form | ir.module.category | form | New |
view_module_category_tree |
ir.module.category.tree | ir.module.category | tree | New |
view_module_filter |
ir.module.module.list.select | ir.module.module | search | New |
view_partner_address_form |
res.partner.form.address | res.partner | form | New |
view_partner_bank_form |
res.partner.bank.form | res.partner.bank | form | New |
view_partner_bank_search |
res.partner.bank.search | res.partner.bank | search | New |
view_partner_bank_tree |
res.partner.bank.tree | res.partner.bank | tree | New |
view_partner_category_form |
Contact Tags | res.partner.category | form | New |
view_partner_category_list |
Contact Tags | res.partner.category | tree | New |
view_partner_form |
res.partner.form | res.partner | form | New |
view_partner_short_form |
res.partner.form | res.partner | form | New |
view_partner_simple_form |
res.partner.simplified.form | res.partner | form | New |
view_partner_title_form |
res.partner.title.form | res.partner.title | form | New |
view_partner_title_tree |
res.partner.title.tree | res.partner.title | tree | New |
view_partner_tree |
res.partner.tree | res.partner | tree | New |
view_res_bank_form |
res.bank.form | res.bank | form | New |
view_res_bank_tree |
res.bank.tree | res.bank | tree | New |
view_res_company_kanban |
res.company.kanban | res.company | kanban | New |
view_res_partner_filter |
res.partner.select | res.partner | search | New |
view_res_users_kanban |
res.users.kanban | res.users | kanban | New |
view_rule_form |
ir.rule | form | New | |
view_rule_search |
ir.rule | search | New | |
view_rule_tree |
ir.rule | tree | New | |
view_sequence_search |
ir.sequence | search | New | |
view_server_action_form |
Server Action | ir.actions.server | form | New |
view_server_action_search |
ir.actions.server.search | ir.actions.server | search | New |
view_server_action_tree |
Server Actions | ir.actions.server | tree | New |
view_translation_dialog_tree |
ir.translation | tree | New | |
view_translation_form |
ir.translation | form | New | |
view_translation_search |
ir.translation | search | New | |
view_translation_tree |
ir.translation | tree | New | |
view_users_form |
res.users.form | res.users | form | New |
view_users_form_simple_modif |
res.users.preferences.form | res.users | form | New |
view_users_search |
res.users.search | res.users | search | New |
view_users_simple_form |
res.users.simplified.form | res.users | form | New |
view_users_tree |
res.users.tree | res.users | tree | New |
view_view_custom_form |
ir.ui.view.custom | form | New | |
view_view_custom_search |
ir.ui.view.custom | search | New | |
view_view_custom_tree |
ir.ui.view.custom | tree | New | |
view_view_form |
ir.ui.view | form | New | |
view_view_search |
ir.ui.view | search | New | |
view_view_tree |
ir.ui.view | tree | New | |
view_window_action_form |
ir.actions.windows.form | ir.actions.act_window | form | New |
view_window_action_search |
ir.actions.windows.search | ir.actions.act_window | search | New |
view_window_action_tree |
ir.actions.windows.tree | ir.actions.act_window | tree | New |
wizard_lang_export |
Export Translations | base.language.export | form | New |
wizard_update_translations |
Generate Missing Terms | base.update.translations | form | New |
No HTTP endpoints found for this module.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
data
Binary
readonly=True
args: 'File'
format
Selection
default='csv'
required=True
string='File Format'
args: [('csv', 'CSV File'), ('po', 'PO File'), ('tgz', 'TGZ Archive')]
lang
Selection
default=NEW_LANG_KEY
required=True
string='Language'
args: _get_languages
modules
Many2many → ir.module.module
domain=[('state', '=', 'installed')]
string='Apps To Export'
args: 'ir.module.module', 'rel_modules_langexport', 'wiz_id', 'module_id'
name
Char
readonly=True
args: 'File Name'
state
Selection
default='choose'
args: [('choose', 'choose'), ('get', 'get')]
act_getfile(self)
code
Char
help='ISO Language and Country code, e.g. en_US'
required=True
size=5
args: 'ISO Code'
data
Binary
required=True
args: 'File'
filename
Char
required=True
args: 'File Name'
name
Char
required=True
args: 'Language Name'
overwrite
Boolean
help='If you enable this option, existing translations (including custom ones) will be overwritten and replaced by those in this file'
args: 'Overwrite Existing Terms'
import_lang(self)
lang
Selection
default=_default_language
required=True
string='Language'
args: _get_languages
overwrite
Boolean
help='If you check this box, your customized translations will be overwritten and replaced by the official ones.'
args: 'Overwrite Existing Terms'
state
Selection
default='init'
readonly=True
string='Status'
args: [('init', 'init'), ('done', 'done')]
lang_install(self)
reload(self)
model_ids
Many2many → ir.model
compute='_compute_model_ids'
string='Impacted data models'
args: 'ir.model'
module_id
Many2one → ir.module.module
domain=[('state', 'in', ['installed', 'to upgrade', 'to install'])]
required=True
string='Module'
args: 'ir.module.module'
module_ids
Many2many → ir.module.module
compute='_compute_module_ids'
string='Impacted modules'
args: 'ir.module.module'
show_all
Boolean
action_uninstall(self)
added
Integer
readonly=True
args: 'Number of modules added'
state
Selection
default='init'
readonly=True
args: [('init', 'init'), ('done', 'done')], 'Status'
updated
Integer
readonly=True
args: 'Number of modules updated'
action_module_open(self)
update_module(self)
module_info
Text
default=_default_module_info
readonly=True
args: 'Apps to Update'
config(self)
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
get_module_list(self)
upgrade_module(self)
upgrade_module_cancel(self)
lang
Selection
required=True
args: _get_languages, 'Language'
act_update(self)
new_passwd
Char
default=''
string='New Password'
user_id
Many2one → res.users
ondelete='cascade'
required=True
string='User'
args: 'res.users'
user_login
Char
readonly=True
string='User Login'
wizard_id
Many2one → change.password.wizard
required=True
string='Wizard'
args: 'change.password.wizard'
change_password_button(self)
user_ids
One2many → change.password.user
default=_default_user_ids
string='Users'
args: 'change.password.user', 'wizard_id'
change_password_button(self)
No new fields.
Public methods (0)No public methods.
name
Char
string='Action Name'
translate=True
target
Selection
default='new'
required=True
string='Action Target'
args: [('new', 'New Window'), ('self', 'This Window')]
type
Char
default='ir.actions.act_url'
url
Text
required=True
string='Action URL'
No public methods.
auto_search
Boolean
default=True
context
Char
default={}
help='Context dictionary as Python expression, empty by default (Default: {})'
required=True
string='Context Value'
domain
Char
help='Optional domain filtering of the destination data, as a Python expression'
string='Domain Value'
filter
Boolean
groups_id
Many2many → res.groups
string='Groups'
args: 'res.groups', 'ir_act_window_group_rel', 'act_id', 'gid'
limit
Integer
default=80
help='Default limit for the list view'
multi
Boolean
help='If checked and the action is bound to a model, it will only appear in the More menu on list views'
string='Restrict to lists'
name
Char
string='Action Name'
translate=True
res_id
Integer
help="Database ID of record to open in form view, when ``view_mode`` is set to 'form' only"
string='Record ID'
res_model
Char
help='Model name of the object to open in the view window'
required=True
string='Destination Model'
search_view
Text
compute='_compute_search_view'
search_view_id
Many2one → ir.ui.view
string='Search View Ref.'
args: 'ir.ui.view'
src_model
Char
help='Optional model name of the objects on which this action should be visible'
string='Source Model'
target
Selection
default='current'
string='Target Window'
args: [('current', 'Current Window'), ('new', 'New Window'), ('inline', 'Inline Edit'), ('fullscreen', 'Full Screen'), ('main', 'Main action of Current Window')]
type
Char
default='ir.actions.act_window'
usage
Char
help='Used to filter menu and home actions from the user form.'
string='Action Usage'
view_id
Many2one → ir.ui.view
ondelete='set null'
string='View Ref.'
args: 'ir.ui.view'
view_ids
One2many → ir.actions.act_window.view
string='Views'
args: 'ir.actions.act_window.view', 'act_window_id'
view_mode
Char
default='tree,form'
help="Comma-separated list of allowed view modes, such as 'form', 'tree', 'calendar', etc. (Default: tree,form)"
required=True
view_type
Selection
default='form'
help="View type: Tree type to use for the tree view, set to 'tree' for a hierarchical tree view, or 'form' for a regular list view"
required=True
string='View Type'
args: [('tree', 'Tree'), ('form', 'Form')]
views
Binary
compute='_compute_views'
help='This function field computes the ordered list of views that should be enabled when displaying the result of an action, federating view mode, views and reference view. The result is returned as an ordered list of pairs (view_id,view_mode).'
create(self, vals)
exists(self)
for_xml_id(self, module, xml_id)
read(self, fields=None, load='_classic_read')
unlink(self)
act_window_id
Many2one → ir.actions.act_window
ondelete='cascade'
string='Action'
args: 'ir.actions.act_window'
multi
Boolean
help='If set to true, the action will not be displayed on the right toolbar of a form view.'
string='On Multiple Doc.'
sequence
Integer
view_id
Many2one → ir.ui.view
string='View'
args: 'ir.ui.view'
view_mode
Selection
required=True
string='View Type'
args: VIEW_TYPES
No public methods.
type
Char
default='ir.actions.act_window_close'
No public methods.
binding_model_id
Many2one → ir.model
help='Setting a value makes this action available in the sidebar for the given model.'
ondelete='cascade'
args: 'ir.model'
binding_type
Selection
default='action'
required=True
args: [('action', 'Action'), ('action_form_only', 'Form-only'), ('report', 'Report')]
help
Html
help='Optional help text for the users with a description of the target view, such as its usage and purpose.'
string='Action Description'
translate=True
name
Char
required=True
type
Char
required=True
string='Action Type'
xml_id
Char
compute='_compute_xml_id'
string='External ID'
create(self, vals)
get_bindings(self, model_name)
unlink(self)
write(self, vals)
context
Char
default='{}'
help='Context dictionary as Python expression, empty by default (Default: {})'
required=True
string='Context Value'
name
Char
string='Action Name'
translate=True
params
Binary
compute='_compute_params'
help='Arguments sent to the client along with the view tag'
inverse='_inverse_params'
string='Supplementary arguments'
params_store
Binary
readonly=True
string='Params storage'
res_model
Char
help='Optional model, mostly used for needactions.'
string='Destination Model'
tag
Char
help='An arbitrary string, interpreted by the client according to its own needs and wishes. There is no central tag repository across clients.'
required=True
string='Client action tag'
target
Selection
default='current'
string='Target Window'
args: [('current', 'Current Window'), ('new', 'New Window'), ('fullscreen', 'Full Screen'), ('main', 'Main action of Current Window')]
type
Char
default='ir.actions.client'
No public methods.
attachment
Char
help='This is the filename of the attachment used to store the printing result. Keep empty to not save the printed reports. You can use a python expression with the object and time variables.'
string='Save as Attachment Prefix'
attachment_use
Boolean
help='If you check this, then the second time the user prints with same attachment name, it returns the previous report.'
string='Reload from Attachment'
binding_type
Selection
default='report'
groups_id
Many2many → res.groups
string='Groups'
args: 'res.groups', 'res_groups_report_rel', 'uid', 'gid'
model
Char
required=True
multi
Boolean
help='If set to true, the action will not be displayed on the right toolbar of a form view.'
string='On Multiple Doc.'
name
Char
translate=True
paperformat_id
Many2one → report.paperformat
print_report_name
Char
help='This is the filename of the report going to download. Keep empty to not change the report filename. You can use a python expression with the object and time variables.'
args: 'Printed Report Name'
report_file
Char
help='The path to the main report file (depending on Report Type) or empty if the content is in another field'
readonly=False
required=False
store=True
string='Report File'
report_name
Char
help="For QWeb reports, name of the template used in the rendering. The method 'render_html' of the model 'report.template_name' will be called (if any) to give the html. For RML reports, this is the LocalService name."
required=True
string='Template Name'
report_type
Selection
default='qweb-pdf'
help='The type of the report that will be rendered, each one having its own rendering method.HTML means the report will be opened directly in your browserPDF means the report will be rendered using Wkhtmltopdf and downloaded by the user.'
required=True
args: [('qweb-html', 'HTML'), ('qweb-pdf', 'PDF')]
type
Char
default='ir.actions.report'
associated_view(self)
barcode(self, barcode_type, value, width=600, height=100, humanreadable=0)
create_action(self)
get_wkhtmltopdf_state(self)
postprocess_pdf_report(self, record, buffer)
render(self, res_ids, data=None)
render_qweb_html(self, docids, data=None)
render_qweb_pdf(self, res_ids=None, data=None)
render_template(self, template, values=None)
report_action(self, docids, data=None, config=True)
retrieve_attachment(self, record)
unlink_action(self)
child_ids
Many2many → ir.actions.server
help='Child server actions that will be executed. Note that the last return returned action value will be used as global return value.'
string='Child Actions'
args: 'ir.actions.server', 'rel_server_actions', 'server_id', 'action_id'
code
Text
default=DEFAULT_PYTHON_CODE
groups='base.group_system'
help='Write Python code that the action will execute. Some variables are available for use; help about pyhon expression is given in the help tab.'
string='Python Code'
crud_model_id
Many2one → ir.model
help='Model for record creation / update. Set this field only to specify a different model than the base model.'
oldname='srcmodel_id'
string='Create/Write Target Model'
args: 'ir.model'
crud_model_name
Char
readonly=True
related='crud_model_id.model'
fields_lines
One2many → ir.server.object.lines
copy=True
string='Value Mapping'
args: 'ir.server.object.lines', 'server_id'
link_field_id
Many2one → ir.model.fields
help='Provide the field used to link the newly created record on the record on used by the server action.'
string='Link using field'
args: 'ir.model.fields'
model_id
Many2one → ir.model
help='Model on which the server action runs.'
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
model_name
Char
readonly=True
related='model_id.model'
store=True
name
Char
string='Action Name'
translate=True
sequence
Integer
default=5
help='When dealing with multiple actions, the execution order is based on the sequence. Low number means high priority.'
state
Selection
default='object_write'
help="Type of server action. The following values are available:\n- 'Execute Python Code': a block of python code that will be executed\n- 'Create or Copy a new Record': create a new record with new values, or copy an existing record in your database\n- 'Write on a Record': update the values of a record\n- 'Execute several actions': define an action that triggers several other server actions\n- 'Add Followers': add followers to a record (available in Discuss)\n- 'Send Email': automatically send an email (available in email_template)"
required=True
string='Action To Do'
args: [('code', 'Execute Python Code'), ('object_create', 'Create a new Record'), ('object_write', 'Update the Record'), ('multi', 'Execute several actions')]
type
Char
default='ir.actions.server'
usage
Selection
default='ir_actions_server'
required=True
string='Usage'
args: [('ir_actions_server', 'Server Action'), ('ir_cron', 'Scheduled Action')]
create_action(self)
run(self)
run_action_code_multi(self, action, eval_context=None)
run_action_multi(self, action, eval_context=None)
run_action_object_create(self, action, eval_context=None)
run_action_object_write(self, action, eval_context=None)
unlink_action(self)
action_id
Many2one → ir.actions.actions
index=True
required=True
string='Action'
args: 'ir.actions.actions'
name
Char
sequence
Integer
default=10
state
Selection
default='open'
required=True
string='Status'
args: [('open', 'To Do'), ('done', 'Done')]
action_launch(self, context=None)
action_open(self)
create(self, vals)
ensure_one_open_todo(self)
name_get(self)
name_search(self, name, args=None, operator='ilike', limit=100)
unlink(self)
write(self, vals)
access_token
Char
groups='base.group_user'
args: 'Access Token'
checksum
Char
index=True
readonly=True
size=40
args: 'Checksum/SHA1'
company_id
Many2one → res.company
change_default=True
default=<expr>
string='Company'
args: 'res.company'
create_date
Datetime
readonly=True
args: 'Date Created'
create_uid
Many2one → res.users
readonly=True
string='Owner'
args: 'res.users'
datas
Binary
compute='_compute_datas'
inverse='_inverse_datas'
string='File Content'
datas_fname
Char
db_datas
Binary
description
Text
file_size
Integer
readonly=True
args: 'File Size'
index_content
Text
prefetch=False
readonly=True
args: 'Indexed Content'
mimetype
Char
readonly=True
args: 'Mime Type'
name
Char
required=True
args: 'Attachment Name'
public
Boolean
res_field
Char
readonly=True
args: 'Resource Field'
res_id
Integer
help='The record id this is attached to.'
readonly=True
args: 'Resource ID'
res_model
Char
help='The database object this attachment will be attached to.'
readonly=True
args: 'Resource Model'
res_name
Char
compute='_compute_res_name'
store=True
args: 'Resource Name'
store_fname
Char
type
Selection
change_default=True
default='binary'
help='You can either upload a file from your computer or copy/paste an internet link to your file.'
required=True
string='Type'
args: [('url', 'URL'), ('binary', 'File')]
url
Char
index=True
size=1024
args: 'Url'
action_get(self)
check(self, mode, values=None)
copy(self, default=None)
create(self, values)
force_storage(self)
generate_access_token(self)
get_serving_groups(self)
read(self, fields=None, load='_classic_read')
unlink(self)
write(self, vals)
No new fields.
Public methods (1)power_on(self, *args, **kwargs)
key
Char
index=True
required=True
value
Text
required=True
create(self, vals)
get_param(self, key, default=False)
init(self, force=False)
set_param(self, key, value)
unlink(self)
write(self, vals)
active
Boolean
default=True
cron_name
Char
related='ir_actions_server_id.name'
store=True
args: 'Name'
doall
Boolean
help='Specify if missed occurrences should be executed when the server restarts.'
string='Repeat Missed'
interval_number
Integer
default=1
help='Repeat every x.'
interval_type
Selection
default='months'
string='Interval Unit'
args: [('minutes', 'Minutes'), ('hours', 'Hours'), ('days', 'Days'), ('weeks', 'Weeks'), ('months', 'Months')]
ir_actions_server_id
Many2one → ir.actions.server
delegate=True
ondelete='restrict'
required=True
args: 'ir.actions.server', 'Server action'
nextcall
Datetime
default=fields.Datetime.now
help='Next planned execution date for this job.'
required=True
string='Next Execution Date'
numbercall
Integer
default=1
help='How many times the method is called,\na negative number indicates no limit.'
string='Number of Calls'
priority
Integer
default=5
help='The priority of the job, as an integer: 0 means higher priority, 10 means lower priority.'
user_id
Many2one → res.users
default=<expr>
required=True
string='Scheduler User'
args: 'res.users'
create(self, values)
default_get(self, fields_list)
method_direct_trigger(self)
toggle(self, model, domain)
try_write(self, values)
unlink(self)
write(self, vals)
company_id
Many2one → res.company
help='If set, action binding only applies for this company'
index=True
ondelete='cascade'
string='Company'
args: 'res.company'
condition
Char
help='If set, applies the default upon condition.'
args: 'Condition'
field_id
Many2one → ir.model.fields
index=True
ondelete='cascade'
required=True
string='Field'
args: 'ir.model.fields'
json_value
Char
required=True
args: 'Default Value (JSON format)'
user_id
Many2one → res.users
help='If set, action binding only applies for this user.'
index=True
ondelete='cascade'
string='User'
args: 'res.users'
create(self, vals)
discard_records(self, records)
discard_values(self, model_name, field_name, values)
get(self, model_name, field_name, user_id=False, company_id=False, condition=False)
get_model_defaults(self, model_name, condition=False)
set(self, model_name, field_name, value, user_id=False, company_id=False, condition=False)
unlink(self)
write(self, vals)
export_fields
One2many → ir.exports.line
copy=True
string='Export ID'
args: 'ir.exports.line', 'export_id'
name
Char
string='Export Name'
resource
Char
index=True
No public methods.
export_id
Many2one → ir.exports
index=True
ondelete='cascade'
string='Export'
args: 'ir.exports'
name
Char
string='Field Name'
No public methods.
No new fields.
Public methods (3)db_id_for(self, model, field, subfield, value)
for_model(self, model, fromtype=str)
to_field(self, model, field, fromtype=str)
action_id
Many2one → ir.actions.actions
help='The menu action this filter applies to. When left empty the filter applies to all menus for this model.'
ondelete='cascade'
string='Action'
args: 'ir.actions.actions'
active
Boolean
default=True
context
Text
default='{}'
required=True
domain
Text
default='[]'
required=True
is_default
Boolean
string='Default Filter'
model_id
Selection
required=True
selection='_list_all_models'
string='Model'
name
Char
required=True
string='Filter Name'
translate=True
sort
Text
default='[]'
required=True
user_id
Many2one → res.users
default=<expr>
help='The user this filter is private to. When left empty the filter is public and available to all users.'
ondelete='cascade'
string='User'
args: 'res.users'
copy(self, default=None)
create_or_replace(self, vals)
get_filters(self, model, action_id=None)
No new fields.
Public methods (3)binary_content(cls, xmlid=None, model='ir.attachment', id=None, field='datas', unique=False, filename=None, filename_field='datas_fname', download=False, mimetype=None, default_mimetype='application/octet-stream', access_token=None, env=None)
content_disposition(cls, filename)
routing_map(cls)
create_date
Datetime
readonly=True
string='Created on'
create_uid
Integer
readonly=True
string='Created by'
dbname
Char
index=True
string='Database Name'
func
Char
required=True
string='Function'
level
Char
index=True
line
Char
required=True
message
Text
required=True
name
Char
required=True
path
Char
required=True
type
Selection
index=True
required=True
args: [('client', 'Client'), ('server', 'Server')]
write_date
Datetime
readonly=True
string='Last Updated on'
write_uid
Integer
readonly=True
string='Last Updated by'
init(self)
active
Boolean
default=True
name
Char
index=True
required=True
string='Description'
sequence
Integer
default=10
help='When no specific mail server is requested for a mail, the highest priority one is used. Default priority is 10 (smaller number = higher priority)'
string='Priority'
smtp_debug
Boolean
help='If enabled, the full output of SMTP sessions will be written to the server log at DEBUG level (this is very verbose and may include confidential info!)'
string='Debugging'
smtp_encryption
Selection
default='none'
help='Choose the connection encryption scheme:\n- None: SMTP sessions are done in cleartext.\n- TLS (STARTTLS): TLS encryption is requested at start of SMTP session (Recommended)\n- SSL/TLS: SMTP sessions are encrypted with SSL/TLS through a dedicated port (default: 465)'
required=True
string='Connection Security'
args: [('none', 'None'), ('starttls', 'TLS (STARTTLS)'), ('ssl', 'SSL/TLS')]
smtp_host
Char
help='Hostname or IP of SMTP server'
required=True
string='SMTP Server'
smtp_pass
Char
help='Optional password for SMTP authentication'
string='Password'
smtp_port
Integer
default=25
help='SMTP Port. Usually 465 for SSL, and 25 or 587 for other cases.'
required=True
size=5
string='SMTP Port'
smtp_user
Char
help='Optional username for SMTP authentication'
string='Username'
build_email(self, email_from, email_to, subject, body, email_cc=None, email_bcc=None, reply_to=False, attachments=None, message_id=None, references=None, object_id=False, subtype='plain', headers=None, body_alternative=None, subtype_alternative='plain')
connect(self, host=None, port=None, user=None, password=None, encryption=None, smtp_debug=False, mail_server_id=None)
name_get(self)
send_email(self, message, mail_server_id=None, smtp_server=None, smtp_port=None, smtp_user=None, smtp_password=None, smtp_encryption=None, smtp_debug=False, smtp_session=None)
test_smtp_connection(self)
access_ids
One2many → ir.model.access
string='Access'
args: 'ir.model.access', 'model_id'
count
Integer
compute='_compute_count'
help='Total number of records in this model'
string='Count (incl. archived)'
field_id
One2many → ir.model.fields
copy=True
default=_default_field_id
required=True
string='Fields'
args: 'ir.model.fields', 'model_id'
info
Text
string='Information'
inherited_model_ids
Many2many → ir.model
compute='_inherited_models'
help='The list of models that extends the current model.'
string='Inherited models'
args: 'ir.model'
model
Char
default='x_'
index=True
required=True
modules
Char
compute='_in_modules'
help='List of modules in which the object is defined or inherited'
string='In Apps'
name
Char
required=True
string='Model Description'
translate=True
state
Selection
default='manual'
readonly=True
string='Type'
args: [('manual', 'Custom Object'), ('base', 'Base Object')]
transient
Boolean
string='Transient Model'
view_ids
One2many → ir.ui.view
compute='_view_ids'
string='Views'
args: 'ir.ui.view'
create(self, vals)
name_create(self, name)
unlink(self)
write(self, vals)
active
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).'
group_id
Many2one → res.groups
index=True
ondelete='cascade'
string='Group'
args: 'res.groups'
model_id
Many2one → ir.model
domain=[('transient', '=', False)]
index=True
ondelete='cascade'
required=True
string='Object'
args: 'ir.model'
name
Char
index=True
required=True
perm_create
Boolean
string='Create Access'
perm_read
Boolean
string='Read Access'
perm_unlink
Boolean
string='Delete Access'
perm_write
Boolean
string='Write Access'
call_cache_clearing_methods(self)
check(self, model, mode='read', raise_exception=True)
check_group(self, model, mode, group_ids)
check_groups(self, group)
create(self, values)
group_names_with_access(self, model_name, access_mode)
register_cache_clearing_method(cls, model, method)
unlink(self)
unregister_cache_clearing_method(cls, model, method)
write(self, values)
date_init
Datetime
string='Initialization Date'
date_update
Datetime
string='Update Date'
definition
Char
help='PostgreSQL constraint definition'
model
Many2one → ir.model
index=True
ondelete='cascade'
required=True
args: 'ir.model'
module
Many2one → ir.module.module
index=True
required=True
args: 'ir.module.module'
name
Char
help='PostgreSQL constraint or foreign key name.'
index=True
required=True
string='Constraint'
type
Char
help='Type of the constraint: `f` for a foreign key, `u` for other constraints.'
index=True
required=True
size=1
string='Constraint Type'
copy(self, default=None)
complete_name
Char
compute='_compute_complete_name'
string='Complete ID'
date_init
Datetime
default=fields.Datetime.now
string='Init Date'
date_update
Datetime
default=fields.Datetime.now
string='Update Date'
model
Char
required=True
string='Model Name'
module
Char
default=''
required=True
name
Char
help='External Key/Identifier that can be used for data integration with third-party systems'
required=True
string='External Identifier'
noupdate
Boolean
default=False
string='Non Updatable'
reference
Char
compute='_compute_reference'
readonly=True
store=False
string='Reference'
res_id
Integer
help='ID of the target record in the database'
string='Record ID'
check_object_reference(self, module, xml_id, raise_on_access_error=False)
get_object(self, module, xml_id)
get_object_reference(self, module, xml_id)
name_get(self)
unlink(self)
xmlid_lookup(self, xmlid)
xmlid_to_object(self, xmlid, raise_if_not_found=False)
xmlid_to_res_id(self, xmlid, raise_if_not_found=False)
xmlid_to_res_model_res_id(self, xmlid, raise_if_not_found=False)
column1
Char
help='Column referring to the record in the model table'
string='Column 1'
column2
Char
help='Column referring to the record in the comodel table'
string='Column 2'
complete_name
Char
index=True
compute
Text
help="Code to compute the value of the field.\nIterate on the recordset 'self' and assign the field's value:\n\n for record in self:\n record['size'] = len(record.name)\n\nModules time, datetime, dateutil are available."
copy
Boolean
help='Whether the value is copied when duplicating a record.'
string='Copied'
depends
Char
help='Dependencies of compute method; a list of comma-separated field names, like\n\n name, partner_id.name'
string='Dependencies'
domain
Char
default='[]'
help="The optional domain to restrict possible values for relationship fields, specified as a Python expression defining a list of triplets. For example: [('color','=','red')]"
field_description
Char
default=''
required=True
string='Field Label'
translate=True
groups
Many2many → res.groups
help
Text
string='Field Help'
translate=True
index
Boolean
string='Indexed'
model
Char
help='The technical name of the model this field belongs to'
index=True
required=True
string='Object Name'
model_id
Many2one → ir.model
help='The model this field belongs to'
index=True
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
modules
Char
compute='_in_modules'
help='List of modules in which the field is defined'
string='In Apps'
name
Char
default='x_'
index=True
required=True
string='Field Name'
on_delete
Selection
default='set null'
help='On delete property for many2one fields'
string='On Delete'
args: [('cascade', 'Cascade'), ('set null', 'Set NULL'), ('restrict', 'Restrict')]
readonly
Boolean
related
Char
help='The corresponding related field, if any. This must be a dot-separated list of field names.'
string='Related Field'
relation
Char
help='For relationship fields, the technical name of the target model'
string='Object Relation'
relation_field
Char
help='For one2many fields, the field on the target model that implement the opposite many2one relationship'
relation_table
Char
help='Used for custom many2many fields to define a custom relation table name'
required
Boolean
selectable
Boolean
default=True
selection
Char
default=''
help="List of options for a selection field, specified as a Python expression defining a list of (key, label) pairs. For example: [('blue','Blue'),('yellow','Yellow')]"
string='Selection Options'
size
Integer
state
Selection
default='manual'
index=True
readonly=True
required=True
string='Type'
args: [('manual', 'Custom Field'), ('base', 'Base Field')]
store
Boolean
default=True
help='Whether the value is stored in the database.'
string='Stored'
translate
Boolean
help='Whether values for this field can be translated (enables the translation mechanism for that field)'
string='Translatable'
ttype
Selection
required=True
selection=FIELD_TYPES
string='Field Type'
create(self, vals)
name_get(self)
unlink(self)
write(self, vals)
date_init
Datetime
string='Initialization Date'
date_update
Datetime
string='Update Date'
model
Many2one → ir.model
index=True
required=True
args: 'ir.model'
module
Many2one → ir.module.module
index=True
required=True
args: 'ir.module.module'
name
Char
help='PostgreSQL table name implementing a many2many relation.'
index=True
required=True
string='Relation Name'
No public methods.
child_ids
One2many → ir.module.category
string='Child Applications'
args: 'ir.module.category', 'parent_id'
description
Text
string='Description'
translate=True
exclusive
Boolean
string='Exclusive'
module_ids
One2many → ir.module.module
string='Modules'
args: 'ir.module.module', 'category_id'
module_nr
Integer
compute='_compute_module_nr'
string='Number of Apps'
name
Char
index=True
required=True
string='Name'
translate=True
parent_id
Many2one → ir.module.category
index=True
string='Parent Application'
args: 'ir.module.category'
sequence
Integer
string='Sequence'
visible
Boolean
default=True
string='Visible'
xml_id
Char
compute='_compute_xml_id'
string='External ID'
No public methods.
application
Boolean
readonly=True
args: 'Application'
author
Char
readonly=True
args: 'Author'
auto_install
Boolean
help='An auto-installable module is automatically installed by the system when all its dependencies are satisfied. If the module has no dependency, it is always installed.'
args: 'Automatic Installation'
category_id
Many2one → ir.module.category
index=True
readonly=True
string='Category'
args: 'ir.module.category'
contributors
Text
readonly=True
args: 'Contributors'
demo
Boolean
default=False
readonly=True
args: 'Demo Data'
dependencies_id
One2many → ir.module.module.dependency
readonly=True
string='Dependencies'
args: 'ir.module.module.dependency', 'module_id'
description
Text
readonly=True
translate=True
args: 'Description'
description_html
Html
compute='_get_desc'
args: 'Description HTML'
exclusion_ids
One2many → ir.module.module.exclusion
readonly=True
string='Exclusions'
args: 'ir.module.module.exclusion', 'module_id'
icon
Char
icon_image
Binary
compute='_get_icon_image'
string='Icon'
installed_version
Char
compute='_get_latest_version'
args: 'Latest Version'
latest_version
Char
readonly=True
args: 'Installed Version'
license
Selection
default='LGPL-3'
readonly=True
string='License'
args: [('GPL-2', 'GPL Version 2'), ('GPL-2 or any later version', 'GPL-2 or later version'), ('GPL-3', 'GPL Version 3'), ('GPL-3 or any later version', 'GPL-3 or later version'), ('AGPL-3', 'Affero GPL-3'), ('LGPL-3', 'LGPL Version 3'), ('Other OSI approved licence', 'Other OSI Approved Licence'), ('OEEL-1', 'Odoo Enterprise Edition License v1.0'), ('OPL-1', 'Odoo Proprietary License v1.0'), ('Other proprietary', 'Other Proprietary')]
maintainer
Char
readonly=True
args: 'Maintainer'
menus_by_module
Text
compute='_get_views'
store=True
string='Menus'
name
Char
index=True
readonly=True
required=True
args: 'Technical Name'
published_version
Char
readonly=True
args: 'Published Version'
reports_by_module
Text
compute='_get_views'
store=True
string='Reports'
sequence
Integer
default=100
args: 'Sequence'
shortdesc
Char
readonly=True
translate=True
args: 'Module Name'
state
Selection
default='uninstalled'
index=True
readonly=True
string='Status'
args: STATES
summary
Char
readonly=True
translate=True
args: 'Summary'
url
Char
readonly=True
args: 'URL'
views_by_module
Text
compute='_get_views'
store=True
string='Views'
website
Char
readonly=True
args: 'Website'
button_immediate_install(self)
button_immediate_uninstall(self)
button_immediate_upgrade(self)
button_install(self)
button_install_cancel(self)
button_uninstall(self)
button_uninstall_cancel(self)
button_uninstall_wizard(self)
button_upgrade(self)
button_upgrade_cancel(self)
check_external_dependencies(cls, module_name, newstate='to install')
create(self, vals)
download(self, download=True)
downstream_dependencies(self, known_deps=None, exclude_states=('uninstalled', 'uninstallable', 'to remove'))
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
get_apps_server(self)
get_module_info(cls, name)
get_values_from_terp(terp)
install_from_urls(self, urls)
module_uninstall(self)
next(self)
unlink(self)
update_list(self)
upstream_dependencies(self, known_deps=None, exclude_states=('installed', 'uninstallable', 'to remove'))
depend_id
Many2one → ir.module.module
compute='_compute_depend'
args: 'ir.module.module', 'Dependency'
module_id
Many2one → ir.module.module
ondelete='cascade'
args: 'ir.module.module', 'Module'
name
Char
index=True
state
Selection
compute='_compute_state'
string='Status'
args: DEP_STATES
No public methods.
exclusion_id
Many2one → ir.module.module
compute='_compute_exclusion'
args: 'ir.module.module', 'Exclusion Module'
module_id
Many2one → ir.module.module
ondelete='cascade'
args: 'ir.module.module', 'Module'
name
Char
index=True
state
Selection
compute='_compute_state'
string='Status'
args: DEP_STATES
No public methods.
company_id
Many2one → res.company
index=True
string='Company'
args: 'res.company'
fields_id
Many2one → ir.model.fields
index=True
ondelete='cascade'
required=True
string='Field'
args: 'ir.model.fields'
name
Char
index=True
res_id
Char
help='If not set, acts as a default value for new resources'
index=True
string='Resource'
type
Selection
default='many2one'
index=True
required=True
args: [('char', 'Char'), ('float', 'Float'), ('boolean', 'Boolean'), ('integer', 'Integer'), ('text', 'Text'), ('binary', 'Binary'), ('many2one', 'Many2One'), ('date', 'Date'), ('datetime', 'DateTime'), ('selection', 'Selection')]
value_binary
Binary
value_datetime
Datetime
value_float
Float
value_integer
Integer
value_reference
Char
value_text
Text
create(self, values)
get(self, name, model, res_id=False)
get_by_record(self)
get_multi(self, name, model, ids)
search_multi(self, name, model, operator, value)
set_multi(self, name, model, values, default_value=None)
write(self, values)
No new fields.
Public methods (5)compile(self, id_or_xml_id, options)
default_values(self)
get_asset_bundle(self, xmlid, files, remains=None, env=None)
load(self, name, options)
render(self, id_or_xml_id, values=None, **options)
No new fields.
Public methods (4)attributes(self, record, field_name, options, values=None)
record_to_html(self, record, field_name, options)
user_lang(self)
value_to_html(self, value, options)
No new fields.
Public methods (2)from_html(self, model, field, element)
value_to_html(self, value, options=None)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (2)record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (2)record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (1)record_to_html(self, record, field_name, options)
No new fields.
Public methods (2)record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (2)record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
active
Boolean
default=True
help='If you uncheck the active field, it will disable the record rule without deleting it (if you delete a native record rule, it may be re-created when you reload the module).'
domain_force
Text
string='Domain'
groups
Many2many → res.groups
model_id
Many2one → ir.model
index=True
ondelete='cascade'
required=True
string='Object'
args: 'ir.model'
name
Char
index=True
perm_create
Boolean
default=True
string='Apply for Create'
perm_read
Boolean
default=True
string='Apply for Read'
perm_unlink
Boolean
default=True
string='Apply for Delete'
perm_write
Boolean
default=True
string='Apply for Write'
clear_cache(self)
create(self, vals)
domain_get(self, model_name, mode='read')
unlink(self)
write(self, vals)
active
Boolean
default=True
code
Char
string='Sequence Code'
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
date_range_ids
One2many → ir.sequence.date_range
string='Subsequences'
args: 'ir.sequence.date_range', 'sequence_id'
implementation
Selection
default='standard'
help="Two sequence object implementations are offered: Standard and 'No gap'. The later is slower than the former but forbids any gap in the sequence (while they are possible in the former)."
required=True
string='Implementation'
args: [('standard', 'Standard'), ('no_gap', 'No gap')]
name
Char
required=True
number_increment
Integer
default=1
help='The next number of the sequence will be incremented by this number'
required=True
string='Step'
number_next
Integer
default=1
help='Next number of this sequence'
required=True
string='Next Number'
number_next_actual
Integer
compute='_get_number_next_actual'
help='Next number that will be used. This number can be incremented frequently so the displayed value might already be obsolete'
inverse='_set_number_next_actual'
string='Next Number'
padding
Integer
default=0
help="Odoo will automatically adds some '0' on the left of the 'Next Number' to get the required padding size."
required=True
string='Sequence Size'
prefix
Char
help='Prefix value of the record for the sequence'
suffix
Char
help='Suffix value of the record for the sequence'
use_date_range
Boolean
string='Use subsequences per date_range'
create(self, values)
get(self, code)
get_id(self, sequence_code_or_id, code_or_id='id')
get_next_char(self, number_next)
next_by_code(self, sequence_code)
next_by_id(self)
unlink(self)
write(self, values)
date_from
Date
required=True
string='From'
date_to
Date
required=True
string='To'
number_next
Integer
default=1
help='Next number of this sequence'
required=True
string='Next Number'
number_next_actual
Integer
compute='_get_number_next_actual'
help='Next number that will be used. This number can be incremented frequently so the displayed value might already be obsolete'
inverse='_set_number_next_actual'
string='Next Number'
sequence_id
Many2one → ir.sequence
ondelete='cascade'
required=True
string='Main Sequence'
args: 'ir.sequence'
create(self, values)
default_get(self, fields)
unlink(self)
write(self, values)
col1
Many2one → ir.model.fields
required=True
string='Field'
args: 'ir.model.fields'
server_id
Many2one → ir.actions.server
ondelete='cascade'
string='Related Server Action'
args: 'ir.actions.server'
type
Selection
change_default=True
default='value'
required=True
args: [('value', 'Value'), ('equation', 'Python expression')], 'Evaluation Type'
value
Text
help='Expression containing a value specification. \nWhen Formula type is selected, this field may be a Python expression that can use the same values as for the code field on the server action.\nIf Value type is selected, the value will be used directly without evaluation.'
required=True
eval_value(self, eval_context=None)
comments
Text
index=True
string='Translation comments'
lang
Selection
selection='_get_languages'
string='Language'
module
Char
help='Module this term belongs to'
index=True
name
Char
required=True
string='Translated field'
res_id
Integer
index=True
string='Record ID'
source
Text
compute='_compute_source'
inverse='_inverse_source'
search='_search_source'
string='Source term'
src
Text
string='Internal Source'
state
Selection
default='to_translate'
help='Automatically set to let administators find new terms that might need to be translated'
string='Status'
args: [('to_translate', 'To Translate'), ('inprogress', 'Translation in Progress'), ('translated', 'Translated')]
type
Selection
index=True
string='Type'
args: TRANSLATION_TYPE
value
Text
string='Translation Value'
check(self, mode)
create(self, vals)
get_field_help(self, model_name)
get_field_string(self, model_name)
get_technical_translations(self, model_name)
insert_missing(self, field, records)
load_module_terms(self, modules, langs)
translate_fields(self, model, id, field=None)
unlink(self)
write(self, vals)
action
Reference
selection=[('ir.actions.report', 'ir.actions.report'), ('ir.actions.act_window', 'ir.actions.act_window'), ('ir.actions.act_url', 'ir.actions.act_url'), ('ir.actions.server', 'ir.actions.server'), ('ir.actions.client', 'ir.actions.client')]
active
Boolean
default=True
child_id
One2many → ir.ui.menu
string='Child IDs'
args: 'ir.ui.menu', 'parent_id'
complete_name
Char
compute='_compute_complete_name'
string='Full Path'
groups_id
Many2many → res.groups
help="If you have groups, the visibility of this menu will be based on these groups. If this field is empty, Odoo will compute visibility based on the related object's read access."
string='Groups'
args: 'res.groups', 'ir_ui_menu_group_rel', 'menu_id', 'gid'
name
Char
required=True
string='Menu'
translate=True
parent_id
Many2one → ir.ui.menu
index=True
ondelete='restrict'
string='Parent Menu'
args: 'ir.ui.menu'
parent_left
Integer
index=True
parent_right
Integer
index=True
sequence
Integer
default=10
web_icon
Char
string='Web Icon File'
web_icon_data
Binary
attachment=True
string='Web Icon Image'
copy(self, default=None)
create(self, values)
get_user_roots(self)
load_menus(self, debug)
load_menus_root(self)
name_get(self)
read_image(self, path)
search(self, args, offset=0, limit=None, order=None, count=False)
unlink(self)
write(self, values)
active
Boolean
default=True
help='If this view is inherited,\n* if True, the view always extends its parent\n* if False, the view currently does not extend its parent but can be enabled\n '
arch
Text
compute='_compute_arch'
inverse='_inverse_arch'
nodrop=True
string='View Architecture'
arch_base
Text
compute='_compute_arch_base'
inverse='_inverse_arch_base'
string='View Architecture'
arch_db
Text
oldname='arch'
string='Arch Blob'
translate=xml_translate
arch_fs
Char
string='Arch Filename'
create_date
Datetime
readonly=True
field_parent
Char
string='Child Field'
groups_id
Many2many → res.groups
help='If this field is empty, the view applies to all users. Otherwise, the view applies to the users of those groups only.'
string='Groups'
args: 'res.groups', 'ir_ui_view_group_rel', 'view_id', 'group_id'
inherit_children_ids
One2many → ir.ui.view
string='Views which inherit from this one'
args: 'ir.ui.view', 'inherit_id'
inherit_id
Many2one → ir.ui.view
index=True
ondelete='restrict'
string='Inherited View'
args: 'ir.ui.view'
key
Char
mode
Selection
default='primary'
help="Only applies if this view inherits from an other one (inherit_id is not False/Null).\n\n* if extension (default), if this view is requested the closest primary view\nis looked up (via inherit_id), then all views inheriting from it with this\nview's model are applied\n* if primary, the closest primary view is fully resolved (even if it uses a\ndifferent model than this one), then this view's inheritance specs\n(<xpath/>) are applied, and the result is used as if it were this view's\nactual arch.\n"
required=True
string='View inheritance mode'
args: [('primary', 'Base view'), ('extension', 'Extension View')]
model
Char
index=True
model_data_id
Many2one → ir.model.data
compute='_compute_model_data_id'
search='_search_model_data_id'
string='Model Data'
args: 'ir.model.data'
model_ids
One2many → ir.model.data
auto_join=True
domain=[('model', '=', 'ir.ui.view')]
args: 'ir.model.data', 'res_id'
name
Char
required=True
string='View Name'
priority
Integer
default=16
required=True
string='Sequence'
type
Selection
string='View Type'
args: [('tree', 'Tree'), ('form', 'Form'), ('graph', 'Graph'), ('pivot', 'Pivot'), ('calendar', 'Calendar'), ('diagram', 'Diagram'), ('gantt', 'Gantt'), ('kanban', 'Kanban'), ('search', 'Search'), ('qweb', 'QWeb')]
write_date
Datetime
readonly=True
string='Last Modification Date'
xml_id
Char
compute='_compute_xml_id'
help='ID of the view defined in xml file'
string='External ID'
add_on_change(self, model_name, arch)
apply_inheritance_specs(self, source, specs_tree, inherit_id)
apply_view_inheritance(self, source, source_id, model, root_id=None)
clear_cache(self)
create(self, values)
default_view(self, model, view_type)
distribute_branding(self, e, branding=None, parent_xpath='', index_map=ConstantMapping(1))
get_attrs_field_names(self, arch, model, editable)
get_attrs_symbols(self)
get_inheriting_views_arch(self, view_id, model)
get_view_id(self, template)
get_view_xmlid(self)
graph_get(self, id, model, node_obj, conn_obj, src_node, des_node, label, scale)
inherit_branding(self, specs_tree, view_id, root_id)
is_node_branded(self, node)
locate_node(self, arch, spec)
open_translations(self)
postprocess(self, model, node, view_id, in_tree_view, model_fields)
postprocess_and_fields(self, model, node, view_id)
raise_view_error(self, message, view_id)
read_combined(self, fields=None)
read_template(self, xml_id)
render(self, values=None, engine='ir.qweb')
render_template(self, template, values=None, engine='ir.qweb')
toggle(self)
translate_qweb(self, arch, lang)
unlink(self)
write(self, vals)
arch
Text
required=True
string='View Architecture'
ref_id
Many2one → ir.ui.view
index=True
ondelete='cascade'
required=True
string='Original View'
args: 'ir.ui.view'
user_id
Many2one → res.users
index=True
ondelete='cascade'
required=True
string='User'
args: 'res.users'
name_get(self)
name_search(self, name, args=None, operator='ilike', limit=100)
No new fields.
Public methods (1)get_report_values(self, docids, data=None)
default
Boolean
dpi
Integer
default=90
required=True
args: 'Output DPI'
format
Selection
default='A4'
help='Select Proper Paper size'
args: [('A0', 'A0 5 841 x 1189 mm'), ('A1', 'A1 6 594 x 841 mm'), ('A2', 'A2 7 420 x 594 mm'), ('A3', 'A3 8 297 x 420 mm'), ('A4', 'A4 0 210 x 297 mm, 8.26 x 11.69 inches'), ('A5', 'A5 9 148 x 210 mm'), ('A6', 'A6 10 105 x 148 mm'), ('A7', 'A7 11 74 x 105 mm'), ('A8', 'A8 12 52 x 74 mm'), ('A9', 'A9 13 37 x 52 mm'), ('B0', 'B0 14 1000 x 1414 mm'), ('B1', 'B1 15 707 x 1000 mm'), ('B2', 'B2 17 500 x 707 mm'), ('B3', 'B3 18 353 x 500 mm'), ('B4', 'B4 19 250 x 353 mm'), ('B5', 'B5 1 176 x 250 mm, 6.93 x 9.84 inches'), ('B6', 'B6 20 125 x 176 mm'), ('B7', 'B7 21 88 x 125 mm'), ('B8', 'B8 22 62 x 88 mm'), ('B9', 'B9 23 33 x 62 mm'), ('B10', ':B10 16 31 x 44 mm'), ('C5E', 'C5E 24 163 x 229 mm'), ('Comm10E', 'Comm10E 25 105 x 241 mm, U.S. Common 10 Envelope'), ('DLE', 'DLE 26 110 x 220 mm'), ('Executive', 'Executive 4 7.5 x 10 inches, 190.5 x 254 mm'), ('Folio', 'Folio 27 210 x 330 mm'), ('Ledger', 'Ledger 28 431.8 x 279.4 mm'), ('Legal', 'Legal 3 8.5 x 14 inches, 215.9 x 355.6 mm'), ('Letter', 'Letter 2 8.5 x 11 inches, 215.9 x 279.4 mm'), ('Tabloid', 'Tabloid 29 279.4 x 431.8 mm'), ('custom', 'Custom')], 'Paper size'
header_line
Boolean
default=False
args: 'Display a header line'
header_spacing
Integer
default=35
args: 'Header spacing'
margin_bottom
Float
default=20
args: 'Bottom Margin (mm)'
margin_left
Float
default=7
args: 'Left Margin (mm)'
margin_right
Float
default=7
args: 'Right Margin (mm)'
margin_top
Float
default=40
args: 'Top Margin (mm)'
name
Char
required=True
args: 'Name'
orientation
Selection
default='Landscape'
args: [('Landscape', 'Landscape'), ('Portrait', 'Portrait')], 'Orientation'
page_height
Integer
default=False
args: 'Page height (mm)'
page_width
Integer
default=False
args: 'Page width (mm)'
report_ids
One2many → ir.actions.report
help='Explicitly associated reports'
args: 'ir.actions.report', 'paperformat_id', 'Associated reports'
No public methods.
active
Boolean
default=True
bic
Char
help='Sometimes called BIC or Swift.'
index=True
args: 'Bank Identifier Code'
city
Char
country
Many2one → res.country
email
Char
name
Char
required=True
phone
Char
state
Many2one → res.country.state
domain="[('country_id', '=', country)]"
args: 'res.country.state', 'Fed. State'
street
Char
street2
Char
zip
Char
name_get(self)
name_search(self, name, args=None, operator='ilike', limit=100)
account_no
Char
string='Account No.'
bank_ids
One2many → res.partner.bank
help='Bank accounts related to this company'
string='Bank Accounts'
args: 'res.partner.bank', 'company_id'
child_ids
One2many → res.company
string='Child Companies'
args: 'res.company', 'parent_id'
city
Char
compute='_compute_address'
inverse='_inverse_city'
company_registry
Char
country_id
Many2one → res.country
compute='_compute_address'
inverse='_inverse_country'
string='Country'
args: 'res.country'
currency_id
Many2one → res.currency
default=<expr>
required=True
string='Currency'
args: 'res.currency'
email
Char
related='partner_id.email'
store=True
external_report_layout
Selection
string='Document Template'
args: [('background', 'Background'), ('boxed', 'Boxed'), ('clean', 'Clean'), ('standard', 'Standard')]
logo
Binary
default=_get_logo
related='partner_id.image'
string='Company Logo'
logo_web
Binary
compute='_compute_logo_web'
store=True
name
Char
related='partner_id.name'
required=True
store=True
string='Company Name'
paperformat_id
Many2one → report.paperformat
default=<expr>
args: 'report.paperformat', 'Paper format'
parent_id
Many2one → res.company
index=True
string='Parent Company'
args: 'res.company'
partner_id
Many2one → res.partner
required=True
string='Partner'
args: 'res.partner'
phone
Char
related='partner_id.phone'
store=True
report_footer
Text
help='Footer text displayed at the bottom of all reports.'
string='Report Footer'
translate=True
report_header
Text
help='Appears by default on the top right corner of your printed documents (report header).'
string='Company Tagline'
sequence
Integer
default=10
help='Used to order Companies in the company switcher'
state_id
Many2one → res.country.state
compute='_compute_address'
inverse='_inverse_state'
string='Fed. State'
args: 'res.country.state'
street
Char
compute='_compute_address'
inverse='_inverse_street'
street2
Char
compute='_compute_address'
inverse='_inverse_street2'
user_ids
Many2many → res.users
string='Accepted Users'
args: 'res.users', 'res_company_users_rel', 'cid', 'user_id'
vat
Char
related='partner_id.vat'
string='TIN'
website
Char
related='partner_id.website'
zip
Char
compute='_compute_address'
inverse='_inverse_zip'
cache_restart(self)
copy(self, default=None)
create(self, vals)
init(self)
name_search(self, name='', args=None, operator='ilike', limit=100)
on_change_country(self, country_id)
open_company_edit_report(self)
write(self, values)
write_company_and_print_report(self, values)
No new fields.
Public methods (7)action_cancel(self)
action_next(self)
action_skip(self)
cancel(self)
execute(self)
next(self)
start(self)
No new fields.
Public methods (5)already_installed(self)
default_get(self, fields_list)
execute(self)
fields_get(self, fields=None, attributes=None)
modules_to_install(self)
No new fields.
Public methods (12)cancel(self)
copy(self, values)
default_get(self, fields)
execute(self)
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
get_config_warning(self, msg)
get_option_name(self, full_field_name)
get_option_path(self, menu_xml_id)
get_values(self)
name_get(self)
onchange_module(self, field_value, module_name)
set_values(self)
address_format
Text
default='%(street)s\n%(street2)s\n%(city)s %(state_code)s %(zip)s\n%(country_name)s'
help="Display format to use for addresses belonging to this country.\n\nYou can use python-style string pattern with all the fields of the address (for example, use '%(street)s' to display the field 'street') plus\n%(state_name)s: the name of the state\n%(state_code)s: the code of the state\n%(country_name)s: the name of the country\n%(country_code)s: the code of the country"
string='Layout in Reports'
address_view_id
Many2one → ir.ui.view
comodel_name='ir.ui.view'
domain=[('model', '=', 'res.partner'), ('type', '=', 'form')]
help='Use this field if you want to replace the usual way to encode a complete address. Note that the address_format field is used to modify the way to display addresses (in reports for example), while this field is used to modify the input form for addresses.'
string='Input View'
code
Char
help='The ISO country code in two chars. \nYou can use this field for quick search.'
size=2
string='Country Code'
country_group_ids
Many2many → res.country.group
string='Country Groups'
args: 'res.country.group', 'res_country_res_country_group_rel', 'res_country_id', 'res_country_group_id'
currency_id
Many2one → res.currency
string='Currency'
args: 'res.currency'
image
Binary
attachment=True
name
Char
help='The full name of the country.'
required=True
string='Country Name'
translate=True
name_position
Selection
default='before'
help='Determines where the customer/company name should be placed, i.e. after or before the address.'
string='Customer Name Position'
args: [('before', 'Before Address'), ('after', 'After Address')]
phone_code
Integer
string='Country Calling Code'
state_ids
One2many → res.country.state
string='States'
args: 'res.country.state', 'country_id'
vat_label
Char
help='Use this field if you want to change vat label.'
string='Vat Label'
translate=True
create(self, vals)
get_address_fields(self)
write(self, vals)
country_ids
Many2many → res.country
string='Countries'
args: 'res.country', 'res_country_res_country_group_rel', 'res_country_group_id', 'res_country_id'
name
Char
required=True
translate=True
No public methods.
code
Char
help='The state code.'
required=True
string='State Code'
country_id
Many2one → res.country
required=True
string='Country'
args: 'res.country'
name
Char
help='Administrative divisions of a country. E.g. Fed. State, Departement, Canton'
required=True
string='State Name'
name_search(self, name='', args=None, operator='ilike', limit=100)
active
Boolean
default=True
currency_subunit_label
Char
help='Currency Subunit Name'
string='Currency Subunit'
currency_unit_label
Char
help='Currency Unit Name'
string='Currency Unit'
date
Date
compute='_compute_date'
decimal_places
Integer
compute='_compute_decimal_places'
name
Char
help='Currency Code (ISO 4217)'
required=True
size=3
string='Currency'
position
Selection
default='after'
help='Determines where the currency symbol should be placed after or before the amount.'
string='Symbol Position'
args: [('after', 'After Amount'), ('before', 'Before Amount')]
rate
Float
compute='_compute_current_rate'
digits=(12, 6)
help='The rate of the currency to the currency of rate 1.'
string='Current Rate'
rate_ids
One2many → res.currency.rate
string='Rates'
args: 'res.currency.rate', 'currency_id'
rounding
Float
default=0.01
digits=(12, 6)
string='Rounding Factor'
symbol
Char
help='Currency sign, to be used when printing amounts.'
required=True
amount_to_text(self, amount)
compare_amounts(self, amount1, amount2)
compute(self, from_amount, to_currency, round=True)
is_zero(self, amount)
name_get(self)
name_search(self, name='', args=None, operator='ilike', limit=100)
round(self, amount)
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
readonly=True
string='Currency'
args: 'res.currency'
name
Date
default=<expr>
index=True
required=True
string='Date'
rate
Float
default=1.0
digits=(12, 6)
help='The rate of the currency to the currency of rate 1'
name_search(self, name, args=None, operator='ilike', limit=80)
category_id
Many2one → ir.module.category
index=True
string='Application'
args: 'ir.module.category'
color
Integer
string='Color Index'
comment
Text
translate=True
full_name
Char
compute='_compute_full_name'
search='_search_full_name'
string='Group Name'
is_portal
Boolean
help='If checked, this group is usable as a portal.'
args: 'Portal'
menu_access
Many2many → ir.ui.menu
string='Access Menu'
args: 'ir.ui.menu', 'ir_ui_menu_group_rel', 'gid', 'menu_id'
model_access
One2many → ir.model.access
copy=True
string='Access Controls'
args: 'ir.model.access', 'group_id'
name
Char
required=True
translate=True
rule_groups
Many2many → ir.rule
domain=[('global', '=', False)]
string='Rules'
args: 'ir.rule', 'rule_group_rel', 'group_id', 'rule_group_id'
share
Boolean
help='Group created to set access rights for sharing data with some users.'
string='Share Group'
users
Many2many → res.users
view_access
Many2many → ir.ui.view
string='Views'
args: 'ir.ui.view', 'ir_ui_view_group_rel', 'group_id', 'view_id'
copy(self, default=None)
search(self, args, offset=0, limit=None, order=None, count=False)
write(self, vals)
implied_ids
Many2many → res.groups
help='Users of this group automatically inherit those groups'
string='Inherits'
args: 'res.groups', 'res_groups_implied_rel', 'gid', 'hid'
trans_implied_ids
Many2many → res.groups
compute='_compute_trans_implied'
string='Transitively inherits'
args: 'res.groups'
create(self, values)
write(self, values)
No new fields.
Public methods (5)create(self, values)
get_application_groups(self, domain)
get_groups_by_application(self)
unlink(self)
write(self, values)
active
Boolean
code
Char
help='This field is used to set/get locales for user'
required=True
string='Locale Code'
date_format
Char
default=DEFAULT_DATE_FORMAT
required=True
string='Date Format'
decimal_point
Char
default='.'
required=True
string='Decimal Separator'
direction
Selection
default='ltr'
required=True
args: [('ltr', 'Left-to-Right'), ('rtl', 'Right-to-Left')]
grouping
Char
default='[]'
help="The Separator Format should be like [,n] where 0 < n :starting from Unit digit. -1 will end the separation. e.g. [3,2,-1] will represent 106500 to be 1,06,500; [1,2,-1] will represent it to be 106,50,0;[3] will represent it as 106,500. Provided ',' as the thousand separator in each case."
required=True
string='Separator Format'
iso_code
Char
help='This ISO code is the name of po files to use for translations'
string='ISO code'
name
Char
required=True
thousands_sep
Char
default=','
string='Thousands Separator'
time_format
Char
default=DEFAULT_TIME_FORMAT
required=True
string='Time Format'
translatable
Boolean
create(self, vals)
format(self, percent, value, grouping=False, monetary=False)
get_available(self)
get_installed(self)
install_lang(self)
load_lang(self, lang, lang_name=None)
unlink(self)
write(self, vals)
active
Boolean
default=True
bank_ids
One2many → res.partner.bank
string='Banks'
args: 'res.partner.bank', 'partner_id'
barcode
Char
oldname='ean13'
category_id
Many2many → res.partner.category
column1='partner_id'
column2='category_id'
default=_default_category
string='Tags'
args: 'res.partner.category'
child_ids
One2many → res.partner
domain=[('active', '=', True)]
string='Contacts'
args: 'res.partner', 'parent_id'
city
Char
color
Integer
default=0
string='Color Index'
comment
Text
string='Notes'
commercial_company_name
Char
compute='_compute_commercial_company_name'
store=True
args: 'Company Name Entity'
commercial_partner_country_id
Many2one → res.country
related='commercial_partner_id.country_id'
store=True
string="Commercial Entity's Country"
args: 'res.country'
commercial_partner_id
Many2one → res.partner
compute='_compute_commercial_partner'
index=True
store=True
string='Commercial Entity'
args: 'res.partner'
company_id
Many2one → res.company
default=_default_company
index=True
args: 'res.company', 'Company'
company_name
Char
company_type
Selection
compute='_compute_company_type'
inverse='_write_company_type'
selection=[('person', 'Individual'), ('company', 'Company')]
string='Company Type'
contact_address
Char
compute='_compute_contact_address'
string='Complete Address'
country_id
Many2one → res.country
ondelete='restrict'
string='Country'
args: 'res.country'
credit_limit
Float
string='Credit Limit'
customer
Boolean
default=True
help='Check this box if this contact is a customer.'
string='Is a Customer'
date
Date
index=True
display_name
Char
compute='_compute_display_name'
index=True
store=True
email
Char
email_formatted
Char
compute='_compute_email_formatted'
help='Format email address "Name <email@domain>"'
args: 'Formatted Email'
employee
Boolean
help='Check this box if this contact is an Employee.'
function
Char
string='Job Position'
image
Binary
attachment=True
help='This field holds the image used as avatar for this contact, limited to 1024x1024px'
args: 'Image'
image_medium
Binary
attachment=True
help='Medium-sized image of this contact. It is automatically resized as a 128x128px image, with aspect ratio preserved. Use this field in form views or some kanban views.'
args: 'Medium-sized image'
image_small
Binary
attachment=True
help='Small-sized image of this contact. It is automatically resized as a 64x64px image, with aspect ratio preserved. Use this field anywhere a small image is required.'
args: 'Small-sized image'
industry_id
Many2one → res.partner.industry
is_company
Boolean
default=False
help='Check if the contact is a company, otherwise it is a person'
string='Is a Company'
lang
Selection
default=<expr>
help='If the selected language is loaded in the system, all documents related to this contact will be printed in this language. If not, it will be English.'
string='Language'
args: _lang_get
mobile
Char
name
Char
index=True
parent_id
Many2one → res.partner
index=True
string='Related Company'
args: 'res.partner'
parent_name
Char
readonly=True
related='parent_id.name'
string='Parent name'
partner_share
Boolean
compute='_compute_partner_share'
help='Either customer (no user), either shared user. Indicated the current partner is a customer without access or with a limited access created for sharing data.'
store=True
args: 'Share Partner'
phone
Char
ref
Char
index=True
string='Internal Reference'
self
Many2one
comodel_name=_name
compute='_compute_get_ids'
state_id
Many2one → res.country.state
ondelete='restrict'
string='State'
args: 'res.country.state'
street
Char
street2
Char
supplier
Boolean
help="Check this box if this contact is a vendor. If it's not checked, purchase people will not see it when encoding a purchase order."
string='Is a Vendor'
title
Many2one → res.partner.title
type
Selection
default='contact'
help='Used to select automatically the right address according to the context in sales and purchases documents.'
string='Address Type'
args: [('contact', 'Contact'), ('invoice', 'Invoice address'), ('delivery', 'Shipping address'), ('other', 'Other address'), ('private', 'Private Address')]
tz
Selection
default=<expr>
help="The partner's timezone, used to output proper date and time values inside printed reports. It is important to set a value for this field. You should use the same timezone that is otherwise used to pick and render date and time values: your computer's timezone."
string='Timezone'
args: _tz_get
tz_offset
Char
compute='_compute_tz_offset'
invisible=True
string='Timezone offset'
user_id
Many2one → res.users
help='The internal user that is in charge of communicating with this contact if any.'
string='Salesperson'
args: 'res.users'
user_ids
One2many → res.users
auto_join=True
string='Users'
args: 'res.users', 'partner_id'
vat
Char
help='Tax Identification Number. Fill it if the company is subjected to taxes. Used by the some of the legal statements.'
string='TIN'
website
Char
help='Website of Partner or Company'
zip
Char
change_default=True
address_get(self, adr_pref=None)
copy(self, default=None)
create(self, vals)
create_company(self)
find_or_create(self, email)
main_partner(self)
name_create(self, name)
name_get(self)
name_search(self, name, args=None, operator='ilike', limit=100)
onchange_company_type(self)
onchange_email(self)
onchange_parent_id(self)
open_commercial_entity(self)
open_parent(self)
update_address(self, vals)
view_header_get(self, view_id, view_type)
write(self, vals)
acc_number
Char
required=True
args: 'Account Number'
acc_type
Char
compute='_compute_acc_type'
help='Bank account type, inferred from account number'
bank_bic
Char
related='bank_id.bic'
bank_id
Many2one → res.bank
string='Bank'
args: 'res.bank'
bank_name
Char
related='bank_id.name'
company_id
Many2one → res.company
default=<expr>
ondelete='cascade'
args: 'res.company', 'Company'
currency_id
Many2one → res.currency
string='Currency'
args: 'res.currency'
partner_id
Many2one → res.partner
default=<expr>
domain=['|', ('is_company', '=', True), ('parent_id', '=', False)]
index=True
ondelete='cascade'
args: 'res.partner', 'Account Holder'
sanitized_acc_number
Char
compute='_compute_sanitized_acc_number'
readonly=True
store=True
string='Sanitized Account Number'
sequence
Integer
default=10
search(self, args, offset=0, limit=None, order=None, count=False)
active
Boolean
default=True
help='The active field allows you to hide the category without removing it.'
child_ids
One2many → res.partner.category
string='Child Tags'
args: 'res.partner.category', 'parent_id'
color
Integer
string='Color Index'
name
Char
required=True
string='Tag Name'
translate=True
parent_id
Many2one → res.partner.category
index=True
ondelete='cascade'
string='Parent Category'
args: 'res.partner.category'
parent_left
Integer
index=True
string='Left parent'
parent_right
Integer
index=True
string='Right parent'
partner_ids
Many2many → res.partner
column1='category_id'
column2='partner_id'
string='Partners'
args: 'res.partner'
name_get(self)
name_search(self, name, args=None, operator='ilike', limit=100)
active
Boolean
default=True
args: 'Active'
full_name
Char
translate=True
args: 'Full Name'
name
Char
translate=True
args: 'Name'
No public methods.
name
Char
required=True
string='Title'
translate=True
shortcut
Char
string='Abbreviation'
translate=True
No public methods.
name
Char
required=True
translate=True
object
Char
required=True
priority
Integer
default=5
No public methods.
action_id
Many2one → ir.actions.actions
help='If specified, this action will be opened at log on for this user, in addition to the standard menu.'
string='Home Action'
args: 'ir.actions.actions'
active
Boolean
default=True
companies_count
Integer
compute='_compute_companies_count'
default=_companies_count
string='Number of Companies'
company_id
Many2one → res.company
context={'user_preference': True}
default=_get_company
help='The company this user is currently working for.'
required=True
string='Company'
args: 'res.company'
company_ids
Many2many → res.company
default=_get_company
string='Companies'
args: 'res.company', 'res_company_users_rel', 'user_id', 'cid'
email
Char
inherited=True
related='partner_id.email'
groups_id
Many2many → res.groups
default=_default_groups
string='Groups'
args: 'res.groups', 'res_groups_users_rel', 'uid', 'gid'
log_ids
One2many → res.users.log
string='User log entries'
args: 'res.users.log', 'create_uid'
login
Char
help='Used to log into the system'
required=True
login_date
Datetime
related='log_ids.create_date'
string='Latest connection'
name
Char
inherited=True
related='partner_id.name'
new_password
Char
compute='_compute_password'
help="Specify a value only when creating a user or if you're changing the user's password, otherwise leave empty. After a change of password, the user has to login again."
inverse='_inverse_password'
string='Set Password'
partner_id
Many2one → res.partner
auto_join=True
help='Partner-related data of the user'
ondelete='restrict'
required=True
string='Related Partner'
args: 'res.partner'
password
Char
copy=False
default=''
help="Keep empty if you don't want the user to be able to connect on the system."
invisible=True
share
Boolean
compute='_compute_share'
compute_sudo=True
help='External user with limited access, created only for the purpose of sharing data.'
store=True
string='Share User'
signature
Html
tz_offset
Char
compute='_compute_tz_offset'
invisible=True
string='Timezone offset'
action_get(self)
authenticate(cls, db, login, password, user_agent_env)
change_password(self, old_passwd, new_passwd)
check(cls, db, uid, passwd)
check_credentials(self, password)
check_super(self, passwd)
context_get(self)
copy(self, default=None)
create(self, vals)
get_company_currency_id(self)
has_group(self, group_ext_id)
name_search(self, name='', args=None, operator='ilike', limit=100)
on_change_login(self)
onchange_parent_id(self)
preference_change_password(self)
preference_save(self)
read(self, fields=None, load='_classic_read')
read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True)
unlink(self)
write(self, values)
No new fields.
Public methods (2)create(self, values)
write(self, values)
No new fields.
Public methods (5)create(self, values)
default_get(self, fields)
fields_get(self, allfields=None, attributes=None)
read(self, fields=None, load='_classic_read')
write(self, values)
No new fields.
Public methods (0)No public methods.
menu_id
Many2one → ir.ui.menu
ondelete='cascade'
required=True
string='Parent Menu'
args: 'ir.ui.menu'
name
Char
required=True
string='Menu Name'
menu_create(self)
access_ir_filter all — Access rule grants write/create/unlink on 'model_ir_filters' to EVERY user (portal/public included): no group is set acl-global-writeaccess_ir_model_access_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_model_access' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_model_fields_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_model_fields' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_model_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_model' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_needaction_mixin — Access rule grants write/create/unlink on 'model_ir_needaction_mixin' to EVERY user (portal/public included): no group is set acl-global-writeaccess_ir_rule_group_erp_manager — Access rule grants write/create/unlink on security model 'model_ir_rule' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_ir_ui_view_custom_group_user — Access rule grants write/create/unlink on 'model_ir_ui_view_custom' to EVERY user (portal/public included): no group is set acl-global-writeaccess_ir_values_group_all — Access rule grants write/create/unlink on 'model_ir_values' to EVERY user (portal/public included): no group is set acl-global-writeaccess_res_groups_group_erp_manager — Access rule grants write/create/unlink on security model 'model_res_groups' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_res_users_group_erp_manager — Access rule grants write/create/unlink on security model 'model_res_users' to group 'group_erp_manager': members can escalate their own permissions acl-privilege-escalationaccess_res_users_log_all — Access rule grants create on 'model_res_users_log' to EVERY user (portal/public included): no group is set acl-global-writeaccess_workflow_workitem_all — Access rule grants write/create/unlink on 'model_workflow_workitem' to EVERY user (portal/public included): no group is set acl-global-writeFound by automated static analysis: these patterns are usually risky, but only a manual review of the module can confirm a real issue.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/10.0/base |
| VERSION | |
| VERSION | 1.3 |
| CATEGORY | |
| CATEGORY | Hidden |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | Yes |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Christophe Matthieu, Martin Trigaux, Olivier Dony, Thibault Delavallée, Denis Ledoux, Fabien Meghazi, Christophe Simonis, David Monjoie, Xavier Morel, Goffin Simon, Cedric Snauwaert, Simon Lejeune, Nicolas Martinelli, Nicolas Lempereur, Julien Legros, xmo-odoo, Richard Mathot, qdp-odoo, Géry Debongnie, Aaron Bohy, Jeremy Kersten, GitHub, Lucas Perais (lpe), Olivier Colson, Yannick Tivisse, Nicolas Seinlet, Pierre Masereel, Toufik Benjaa, tbe-odoo, Christophe Monniez, Denis Vermylen, Adrian Torres, Moens Alexandre, David Tran, Rishabh Jadia, Denis Roussel |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:50:49 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES | |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | The kernel of Odoo, needed for all installation. =================================================== |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
act_report_xml_search_view |
ir.actions.report.xml.search | ir.actions.report.xml | search | New |
act_report_xml_view |
ir.actions.report.xml | ir.actions.report.xml | form | New |
act_report_xml_view_tree |
ir.actions.report.xml.tree | ir.actions.report.xml | tree | New |
action_view |
ir.actions.actions | ir.actions.actions | form | New |
action_view_company_form_link_2_currencies |
res.company.form | res.company | form | Inherits base.view_company_form |
action_view_search |
ir.actions.actions.search | ir.actions.actions | search | New |
action_view_tree |
ir.actions.actions.tree | ir.actions.actions | tree | New |
change_password_wizard_user_tree_view |
Change Password Users | change.password.user | tree | New |
change_password_wizard_view |
Change Password | change.password.wizard | form | New |
config_wizard_step_view_form |
Config Wizard Steps | ir.actions.todo | form | New |
config_wizard_step_view_search |
ir.actions.todo.select | ir.actions.todo | search | New |
contact |
contact | ir.ui.view | qweb | New |
edit_menu |
ir.ui.menu | tree | New | |
edit_menu_access |
ir.ui.menu | form | New | |
edit_menu_access_search |
ir.ui.menu.search | ir.ui.menu | search | New |
ir_access_view_form |
ir.model.access | form | New | |
ir_access_view_search |
ir.model.access | search | New | |
ir_access_view_tree |
ir.model.access | tree | New | |
ir_actions_todo_tree |
Config Wizard Steps | ir.actions.todo | tree | New |
ir_cron_view |
ir.cron | form | New | |
ir_cron_view_calendar |
ir.cron | calendar | New | |
ir_cron_view_search |
ir.cron | search | New | |
ir_cron_view_tree |
ir.cron | tree | New | |
ir_filters_view_form |
ir.filters | form | New | |
ir_filters_view_search |
ir.filters | search | New | |
ir_filters_view_tree |
ir.filters | tree | New | |
ir_logging_form_view |
ir.logging | form | New | |
ir_logging_search_view |
ir.logging | search | New | |
ir_logging_tree_view |
ir.logging | tree | New | |
ir_mail_server_form |
ir.mail_server | form | New | |
ir_mail_server_list |
ir.mail_server | tree | New | |
ir_property_view |
ir.property.form | ir.property | form | New |
ir_property_view_search |
ir.property.search | ir.property | search | New |
ir_property_view_tree |
ir.property.tree | ir.property | tree | New |
module_form |
ir.module.module.form | ir.module.module | form | New |
module_tree |
ir.module.module.tree | ir.module.module | tree | New |
module_view_kanban |
Apps Kanban | ir.module.module | kanban | New |
report_irmodeloverview |
report_irmodeloverview | ir.ui.view | qweb | New |
report_irmodulereference |
report_irmodulereference | ir.ui.view | qweb | New |
res_config_installer |
Inheritable view for installer objects | res.config.installer | form | New |
res_config_view_base |
res.config.view.base | res.config | form | New |
res_lang_form |
res.lang.form | res.lang | form | New |
res_lang_search |
res.lang.search | res.lang | search | New |
res_lang_tree |
res.lang.tree | res.lang | tree | New |
res_partner_kanban_view |
res.partner.kanban | res.partner | kanban | New |
res_partner_view_form_private |
res.partner.view.form.private | res.partner | form | New |
res_request_link-view |
res.request.link.form | res.request.link | form | New |
res_request_link_search_view |
res.request.link.search | res.request.link | search | New |
res_request_link_tree-view |
res.request.link.form | res.request.link | tree | New |
sequence_view |
ir.sequence | form | New | |
sequence_view_tree |
ir.sequence | tree | New | |
user_groups_view |
res.users.groups | res.users | form | Inherits view_users_form |
values_view_form_action |
ir.values.form.action | ir.values | form | New |
values_view_form_defaults |
ir.values.form.defaults | ir.values | form | New |
values_view_search_action |
ir.values.search.action | ir.values | search | New |
values_view_tree_action |
ir.values.tree.action | ir.values | tree | New |
view_attachment_form |
ir.attachment | form | New | |
view_attachment_search |
ir.attachment | search | New | |
view_attachment_tree |
ir.attachment | tree | New | |
view_base_import_language |
Import Translation | base.language.import | form | New |
view_base_language_install |
Load a Translation | base.language.install | form | New |
view_base_module_configuration_form |
Module Configuration | base.module.configuration | form | New |
view_base_module_update |
Module Update | base.module.update | form | New |
view_base_module_upgrade |
Module Upgrade | base.module.upgrade | form | New |
view_base_module_upgrade_install |
Module Upgrade Install | base.module.upgrade | form | New |
view_company_form |
res.company.form | res.company | form | New |
view_company_tree |
res.company.tree | res.company | tree | New |
view_country_form |
res.country.form | res.country | form | New |
view_country_group_form |
res.country.group.form | res.country.group | form | New |
view_country_group_tree |
res.country.group.tree | res.country.group | tree | New |
view_country_state_form |
res.country.state.form | res.country.state | form | New |
view_country_state_tree |
res.country.state.tree | res.country.state | tree | New |
view_country_tree |
res.country.tree | res.country | tree | New |
view_currency_form |
res.currency.form | res.currency | form | New |
view_currency_rate_form |
res.currency.rate.form | res.currency.rate | form | New |
view_currency_rate_form |
res.currency.rate.form | res.currency.rate | form | New |
view_currency_rate_search |
res.currency.rate.search | res.currency.rate | search | New |
view_currency_rate_tree |
res.currency.rate.tree | res.currency.rate | tree | New |
view_currency_search |
res.currency.search | res.currency | search | New |
view_currency_tree |
res.currency.tree | res.currency | tree | New |
view_groups_form |
res.groups.form | res.groups | form | New |
view_groups_search |
res.groups.search | res.groups | search | New |
view_ir_config_form |
ir.config_parameter | form | New | |
view_ir_config_list |
ir.config_parameter | tree | New | |
view_ir_config_search |
ir.config_parameter | search | New | |
view_ir_mail_server_search |
ir.mail_server | search | New | |
view_menu |
ir.ui.menu.tree | ir.ui.menu | tree | New |
view_model_constraint_form |
ir.model.constraint | form | New | |
view_model_constraint_list |
ir.model.constraint | tree | New | |
view_model_data_form |
ir.model.data | form | New | |
view_model_data_list |
ir.model.data | tree | New | |
view_model_data_search |
ir.model.data | search | New | |
view_model_fields_form |
ir.model.fields | form | New | |
view_model_fields_search |
ir.model.fields | search | New | |
view_model_fields_tree |
ir.model.fields | tree | New | |
view_model_form |
ir.model | form | New | |
view_model_menu_create |
Create Menu | wizard.ir.model.menu.create | form | New |
view_model_relation_form |
ir.model.relation | form | New | |
view_model_relation_list |
ir.model.relation | tree | New | |
view_model_search |
ir.model | search | New | |
view_model_tree |
ir.model | tree | New | |
view_module_category_form |
ir.module.category.form | ir.module.category | form | New |
view_module_category_tree |
ir.module.category.tree | ir.module.category | tree | New |
view_module_filter |
ir.module.module.list.select | ir.module.module | search | New |
view_partner_address_form |
res.partner.form.address | res.partner | form | New |
view_partner_bank_form |
res.partner.bank.form | res.partner.bank | form | New |
view_partner_bank_search |
res.partner.bank.search | res.partner.bank | search | New |
view_partner_bank_tree |
res.partner.bank.tree | res.partner.bank | tree | New |
view_partner_category_form |
Contact Tags | res.partner.category | form | New |
view_partner_category_list |
Contact Tags | res.partner.category | tree | New |
view_partner_form |
res.partner.form | res.partner | form | New |
view_partner_simple_form |
res.partner.simplified.form | res.partner | form | New |
view_partner_title_form |
res.partner.title.form | res.partner.title | form | New |
view_partner_title_tree |
res.partner.title.tree | res.partner.title | tree | New |
view_partner_tree |
res.partner.tree | res.partner | tree | New |
view_res_bank_form |
res.bank.form | res.bank | form | New |
view_res_bank_tree |
res.bank.tree | res.bank | tree | New |
view_res_partner_filter |
res.partner.select | res.partner | search | New |
view_rule_form |
ir.rule | form | New | |
view_rule_search |
ir.rule | search | New | |
view_rule_tree |
ir.rule | tree | New | |
view_sequence_search |
ir.sequence | search | New | |
view_server_action_form |
Server Action | ir.actions.server | form | New |
view_server_action_search |
ir.actions.server.search | ir.actions.server | search | New |
view_server_action_tree |
Server Actions | ir.actions.server | tree | New |
view_translation_dialog_tree |
ir.translation | tree | New | |
view_translation_form |
ir.translation | form | New | |
view_translation_search |
ir.translation | search | New | |
view_translation_tree |
ir.translation | tree | New | |
view_users_form |
res.users.form | res.users | form | New |
view_users_form_simple_modif |
res.users.preferences.form | res.users | form | New |
view_users_search |
res.users.search | res.users | search | New |
view_users_simple_form |
res.users.simplified.form | res.users | form | New |
view_users_tree |
res.users.tree | res.users | tree | New |
view_view_custom_form |
ir.ui.view.custom | form | New | |
view_view_custom_search |
ir.ui.view.custom | search | New | |
view_view_custom_tree |
ir.ui.view.custom | tree | New | |
view_view_form |
ir.ui.view | form | New | |
view_view_search |
ir.ui.view | search | New | |
view_view_tree |
ir.ui.view | tree | New | |
view_window_action_form |
ir.actions.windows.form | ir.actions.act_window | form | New |
view_window_action_search |
ir.actions.windows.search | ir.actions.act_window | search | New |
view_window_action_tree |
ir.actions.windows.tree | ir.actions.act_window | tree | New |
view_workflow_activity_form |
workflow.activity.form | workflow.activity | form | New |
view_workflow_activity_search |
workflow.activity.search | workflow.activity | search | New |
view_workflow_activity_tree |
workflow.activity.tree | workflow.activity | tree | New |
view_workflow_diagram |
workflow.diagram | workflow | diagram | New |
view_workflow_form |
workflow.form | workflow | form | New |
view_workflow_instance_form |
workflow.instance.form | workflow.instance | form | New |
view_workflow_instance_search |
workflow.instance.search | workflow.instance | search | New |
view_workflow_instance_tree |
workflow.instance.tree | workflow.instance | tree | New |
view_workflow_search |
workflow.search | workflow | search | New |
view_workflow_transition_form |
workflow.transition.form | workflow.transition | form | New |
view_workflow_transition_search |
workflow.transition.search | workflow.transition | search | New |
view_workflow_transition_tree |
workflow.transition.tree | workflow.transition | tree | New |
view_workflow_tree |
workflow.tree | workflow | tree | New |
view_workflow_workitem_form |
workflow.workitem.form | workflow.workitem | form | New |
view_workflow_workitem_search |
workflow.workitem.search | workflow.workitem | search | New |
view_workflow_workitem_tree |
workflow.workitem.tree | workflow.workitem | tree | New |
wizard_lang_export |
Export Translations | base.language.export | form | New |
wizard_update_translations |
Synchronize Terms | base.update.translations | form | New |
No HTTP endpoints found for this module.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
data
Binary
readonly=True
args: 'File'
format
Selection
default='csv'
required=True
string='File Format'
args: [('csv', 'CSV File'), ('po', 'PO File'), ('tgz', 'TGZ Archive')]
lang
Selection
default=NEW_LANG_KEY
required=True
string='Language'
args: _get_languages
modules
Many2many → ir.module.module
domain=[('state', '=', 'installed')]
string='Apps To Export'
args: 'ir.module.module', 'rel_modules_langexport', 'wiz_id', 'module_id'
name
Char
readonly=True
args: 'File Name'
state
Selection
default='choose'
args: [('choose', 'choose'), ('get', 'get')]
act_getfile(self)
code
Char
help='ISO Language and Country code, e.g. en_US'
required=True
size=5
args: 'ISO Code'
data
Binary
required=True
args: 'File'
filename
Char
required=True
args: 'File Name'
name
Char
required=True
args: 'Language Name'
overwrite
Boolean
help='If you enable this option, existing translations (including custom ones) will be overwritten and replaced by those in this file'
args: 'Overwrite Existing Terms'
import_lang(self)
lang
Selection
required=True
string='Language'
args: _get_languages
overwrite
Boolean
help='If you check this box, your customized translations will be overwritten and replaced by the official ones.'
args: 'Overwrite Existing Terms'
state
Selection
default='init'
readonly=True
string='Status'
args: [('init', 'init'), ('done', 'done')]
lang_install(self)
No new fields.
Public methods (1)start(self)
added
Integer
readonly=True
args: 'Number of modules added'
state
Selection
default='init'
readonly=True
args: [('init', 'init'), ('done', 'done')], 'Status'
updated
Integer
readonly=True
args: 'Number of modules updated'
action_module_open(self)
update_module(self)
module_info
Text
default=_default_module_info
readonly=True
args: 'Apps to Update'
config(self)
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
get_module_list(self)
upgrade_module(self)
upgrade_module_cancel(self)
lang
Selection
default=_default_language
required=True
args: _get_languages, 'Language'
act_update(self)
name
Char
string='Action Name'
translate=True
target
Selection
default='new'
required=True
string='Action Target'
args: [('new', 'New Window'), ('self', 'This Window')]
type
Char
default='ir.actions.act_url'
url
Text
required=True
string='Action URL'
No public methods.
auto_search
Boolean
default=True
context
Char
default={}
help='Context dictionary as Python expression, empty by default (Default: {})'
required=True
string='Context Value'
domain
Char
help='Optional domain filtering of the destination data, as a Python expression'
string='Domain Value'
filter
Boolean
groups_id
Many2many → res.groups
string='Groups'
args: 'res.groups', 'ir_act_window_group_rel', 'act_id', 'gid'
limit
Integer
default=80
help='Default limit for the list view'
multi
Boolean
help='If checked and the action is bound to a model, it will only appear in the More menu on list views'
string='Restrict to lists'
name
Char
string='Action Name'
translate=True
res_id
Integer
help="Database ID of record to open in form view, when ``view_mode`` is set to 'form' only"
string='Record ID'
res_model
Char
help='Model name of the object to open in the view window'
required=True
string='Destination Model'
search_view
Text
compute='_compute_search_view'
search_view_id
Many2one → ir.ui.view
string='Search View Ref.'
args: 'ir.ui.view'
src_model
Char
help='Optional model name of the objects on which this action should be visible'
string='Source Model'
target
Selection
default='current'
string='Target Window'
args: [('current', 'Current Window'), ('new', 'New Window'), ('inline', 'Inline Edit'), ('fullscreen', 'Full Screen'), ('main', 'Main action of Current Window')]
type
Char
default='ir.actions.act_window'
usage
Char
help='Used to filter menu and home actions from the user form.'
string='Action Usage'
view_id
Many2one → ir.ui.view
ondelete='set null'
string='View Ref.'
args: 'ir.ui.view'
view_ids
One2many → ir.actions.act_window.view
string='Views'
args: 'ir.actions.act_window.view', 'act_window_id'
view_mode
Char
default='tree,form'
help="Comma-separated list of allowed view modes, such as 'form', 'tree', 'calendar', etc. (Default: tree,form)"
required=True
view_type
Selection
default='form'
help="View type: Tree type to use for the tree view, set to 'tree' for a hierarchical tree view, or 'form' for a regular list view"
required=True
string='View Type'
args: [('tree', 'Tree'), ('form', 'Form')]
views
Binary
compute='_compute_views'
help='This function field computes the ordered list of views that should be enabled when displaying the result of an action, federating view mode, views and reference view. The result is returned as an ordered list of pairs (view_id,view_mode).'
create(self, vals)
exists(self)
for_xml_id(self, module, xml_id)
read(self, fields=None, load='_classic_read')
unlink(self)
act_window_id
Many2one → ir.actions.act_window
ondelete='cascade'
string='Action'
args: 'ir.actions.act_window'
multi
Boolean
help='If set to true, the action will not be displayed on the right toolbar of a form view.'
string='On Multiple Doc.'
sequence
Integer
view_id
Many2one → ir.ui.view
string='View'
args: 'ir.ui.view'
view_mode
Selection
required=True
string='View Type'
args: VIEW_TYPES
No public methods.
type
Char
default='ir.actions.act_window_close'
No public methods.
help
Html
help='Optional help text for the users with a description of the target view, such as its usage and purpose.'
string='Action Description'
translate=True
name
Char
required=True
type
Char
required=True
string='Action Type'
usage
Char
string='Action Usage'
xml_id
Char
compute='_compute_xml_id'
string='External ID'
create(self, vals)
unlink(self)
write(self, vals)
context
Char
default='{}'
help='Context dictionary as Python expression, empty by default (Default: {})'
required=True
string='Context Value'
name
Char
string='Action Name'
translate=True
params
Binary
compute='_compute_params'
help='Arguments sent to the client along withthe view tag'
inverse='_inverse_params'
string='Supplementary arguments'
params_store
Binary
readonly=True
string='Params storage'
res_model
Char
help='Optional model, mostly used for needactions.'
string='Destination Model'
tag
Char
help='An arbitrary string, interpreted by the client according to its own needs and wishes. There is no central tag repository across clients.'
required=True
string='Client action tag'
target
Selection
default='current'
string='Target Window'
args: [('current', 'Current Window'), ('new', 'New Window'), ('fullscreen', 'Full Screen'), ('main', 'Main action of Current Window')]
type
Char
default='ir.actions.client'
No public methods.
attachment
Char
help='This is the filename of the attachment used to store the printing result. Keep empty to not save the printed reports. You can use a python expression with the object and time variables.'
string='Save as Attachment Prefix'
attachment_use
Boolean
help='If you check this, then the second time the user prints with same attachment name, it returns the previous report.'
string='Reload from Attachment'
auto
Boolean
default=True
string='Custom Python Parser'
groups_id
Many2many → res.groups
string='Groups'
args: 'res.groups', 'res_groups_report_rel', 'uid', 'gid'
header
Boolean
default=True
help='Add or not the corporate RML header'
string='Add RML Header'
ir_values_id
Many2one → ir.values
copy=False
help='More menu entry.'
readonly=True
string='More Menu entry'
args: 'ir.values'
model
Char
required=True
multi
Boolean
help='If set to true, the action will not be displayed on the right toolbar of a form view.'
string='On Multiple Doc.'
name
Char
translate=True
parser
Char
string='Parser Class'
report_file
Char
help='The path to the main report file (depending on Report Type) or empty if the content is in another field'
readonly=False
related='report_rml'
required=False
store=True
string='Report File'
report_name
Char
help="For QWeb reports, name of the template used in the rendering. The method 'render_html' of the model 'report.template_name' will be called (if any) to give the html. For RML reports, this is the LocalService name."
required=True
string='Template Name'
report_rml
Char
help='The path to the main report file/controller (depending on Report Type) or empty if the content is in another data field'
string='Main Report File Path/controller'
report_rml_content
Binary
compute='_compute_report_rml_content'
inverse='_inverse_report_rml_content'
string='RML Content'
report_rml_content_data
Binary
string='RML Content'
report_sxw
Char
compute='_compute_report_sxw'
string='SXW Path'
report_sxw_content
Binary
compute='_compute_report_sxw_content'
inverse='_inverse_report_sxw_content'
string='SXW Content'
report_sxw_content_data
Binary
string='SXW Content'
report_type
Selection
default='pdf'
help='HTML will open the report directly in your browser, PDF will use wkhtmltopdf to render the HTML into a PDF file and let you download it, Controller allows you to define the url of a custom controller outputting any kind of report.'
required=True
args: [('qweb-pdf', 'PDF'), ('qweb-html', 'HTML'), ('controller', 'Controller'), ('pdf', 'RML pdf (deprecated)'), ('sxw', 'RML sxw (deprecated)'), ('webkit', 'Webkit (deprecated)')]
report_xml
Char
string='XML Path'
report_xsl
Char
string='XSL Path'
type
Char
default='ir.actions.report.xml'
create_action(self)
render_report(self, res_ids, name, data)
unlink_action(self)
action_id
Many2one → ir.actions.actions
help='Select the client action that has to be executed.'
string='Client Action'
args: 'ir.actions.actions'
child_ids
Many2many → ir.actions.server
help='Child server actions that will be executed. Note that the last return returned action value will be used as global return value.'
string='Child Actions'
args: 'ir.actions.server', 'rel_server_actions', 'server_id', 'action_id'
code
Text
default=DEFAULT_PYTHON_CODE
help='Write Python code that the action will execute. Some variables are available for use; help about pyhon expression is given in the help tab.'
string='Python Code'
condition
Char
default='True'
help="Condition verified before executing the server action. If it is not verified, the action will not be executed. The condition is a Python expression, like 'record.list_price > 5000'. A void condition is considered as always True. Help about python expression is given in the help tab."
copyvalue
Char
help='Final placeholder expression, to be copy-pasted in the desired template field.'
string='Placeholder Expression'
crud_model_id
Many2one → ir.model
help='Model for record creation / update. Set this field only to specify a different model than the base model.'
oldname='srcmodel_id'
string='Create/Write Target Model'
args: 'ir.model'
crud_model_name
Char
readonly=True
related='crud_model_id.model'
store=True
string='Create/Write Target Model Name'
fields_lines
One2many → ir.server.object.lines
copy=True
string='Value Mapping'
args: 'ir.server.object.lines', 'server_id'
id_object
Reference
selection='_select_objects'
string='Record'
id_value
Char
string='Record ID'
link_field_id
Many2one → ir.model.fields
help='Provide the field where the record id is stored after the operations.'
oldname='record_id'
string='Link using field'
args: 'ir.model.fields'
link_new_record
Boolean
help='Check this if you want to link the newly-created record to the current record on which the server action runs.'
string='Attach the new record'
menu_ir_values_id
Many2one → ir.values
copy=False
help='More menu entry.'
readonly=True
string='More Menu entry'
args: 'ir.values'
model_id
Many2one → ir.model
help='Base model on which the server action runs.'
ondelete='cascade'
required=True
string='Base Model'
args: 'ir.model'
model_name
Char
readonly=True
related='model_id.model'
model_object_field
Many2one → ir.model.fields
help='Select target field from the related document model.\nIf it is a relationship field you will be able to select a target field at the destination of the relationship.'
string='Field'
args: 'ir.model.fields'
name
Char
string='Action Name'
translate=True
ref_object
Reference
oldname='copy_object'
selection='_select_objects'
string='Reference record'
sequence
Integer
default=5
help='When dealing with multiple actions, the execution order is based on the sequence. Low number means high priority.'
state
Selection
default='code'
help="Type of server action. The following values are available:\n- 'Execute Python Code': a block of python code that will be executed\n- 'Trigger a Workflow Signal': send a signal to a workflow\n- 'Run a Client Action': choose a client action to launch\n- 'Create or Copy a new Record': create a new record with new values, or copy an existing record in your database\n- 'Write on a Record': update the values of a record\n- 'Execute several actions': define an action that triggers several other server actions\n- 'Send Email': automatically send an email (available in email_template)"
required=True
selection=<expr>
string='Action To Do'
sub_model_object_field
Many2one → ir.model.fields
help='When a relationship field is selected as first field, this field lets you select the target field within the destination document model (sub-model).'
string='Sub-field'
args: 'ir.model.fields'
sub_object
Many2one → ir.model
help='When a relationship field is selected as first field, this field shows the document model the relationship goes to.'
readonly=True
string='Sub-model'
args: 'ir.model'
type
Char
default='ir.actions.server'
use_create
Selection
default='new'
required=True
string='Creation Policy'
args: [('new', 'Create a new record in the Base Model'), ('new_other', 'Create a new record in another model'), ('copy_current', 'Copy the current record'), ('copy_other', 'Choose and copy a record in the database')]
use_relational_model
Selection
default='base'
required=True
string='Relational Target Model'
args: [('base', 'Use the base model of the action'), ('relational', 'Use a relation field on the base model')]
use_write
Selection
default='current'
required=True
string='Update Policy'
args: [('current', 'Update the current record'), ('expression', 'Update a record linked to the current record using python'), ('other', 'Choose and Update a record in the database')]
wkf_field_id
Many2one → ir.model.fields
help='The field on the current object that links to the target object record (must be a many2one, or an integer field with the record ID)'
oldname='trigger_obj_id'
string='Relation Field'
args: 'ir.model.fields'
wkf_model_id
Many2one → ir.model
help='The model that will receive the workflow signal. Note that it should have a workflow associated with it.'
string='Target Model'
args: 'ir.model'
wkf_model_name
Char
readonly=True
related='wkf_model_id.model'
store=True
string='Target Model Name'
wkf_transition_id
Many2one → workflow.transition
help='Select the workflow signal to trigger.'
string='Signal to Trigger'
args: 'workflow.transition'
write_expression
Char
help='Provide an expression that, applied on the current record, gives the field to update.'
oldname='write_id'
string='Expression'
create_action(self)
run(self)
run_action_client_action(self, action, eval_context=None)
run_action_code_multi(self, action, eval_context=None)
run_action_multi(self, action, eval_context=None)
run_action_object_create(self, action, eval_context=None)
run_action_object_write(self, action, eval_context=None)
run_action_trigger(self, action, eval_context=None)
unlink_action(self)
action_id
Many2one → ir.actions.actions
index=True
required=True
string='Action'
args: 'ir.actions.actions'
groups_id
Many2many → res.groups
string='Groups'
args: 'res.groups', 'res_groups_action_rel', 'uid', 'gid'
name
Char
note
Text
string='Text'
translate=True
sequence
Integer
default=10
state
Selection
default='open'
required=True
string='Status'
args: [('open', 'To Do'), ('done', 'Done')]
type
Selection
default='manual'
help='Manual: Launched manually.\n Automatic: Runs whenever the system is reconfigured.\n Launch Manually Once: after having been launched manually, it sets automatically to Done.'
required=True
args: [('manual', 'Launch Manually'), ('once', 'Launch Manually Once'), ('automatic', 'Launch Automatically')]
action_launch(self, context=None)
action_open(self)
name_get(self)
name_search(self, name, args=None, operator='ilike', limit=100)
progress(self)
unlink(self)
checksum
Char
index=True
readonly=True
size=40
args: 'Checksum/SHA1'
company_id
Many2one → res.company
change_default=True
default=<expr>
string='Company'
args: 'res.company'
create_date
Datetime
readonly=True
args: 'Date Created'
create_uid
Many2one → res.users
readonly=True
string='Owner'
args: 'res.users'
datas
Binary
compute='_compute_datas'
inverse='_inverse_datas'
string='File Content'
datas_fname
Char
db_datas
Binary
description
Text
file_size
Integer
readonly=True
args: 'File Size'
index_content
Text
prefetch=False
readonly=True
args: 'Indexed Content'
mimetype
Char
readonly=True
args: 'Mime Type'
name
Char
required=True
args: 'Attachment Name'
public
Boolean
res_field
Char
readonly=True
args: 'Resource Field'
res_id
Integer
help='The record id this is attached to.'
readonly=True
args: 'Resource ID'
res_model
Char
help='The database object this attachment will be attached to.'
readonly=True
args: 'Resource Model'
res_name
Char
compute='_compute_res_name'
store=True
args: 'Resource Name'
store_fname
Char
type
Selection
change_default=True
default='binary'
help='You can either upload a file from your computer or copy/paste an internet link to your file.'
required=True
string='Type'
args: [('url', 'URL'), ('binary', 'File')]
url
Char
index=True
size=1024
args: 'Url'
action_get(self)
check(self, mode, values=None)
copy(self, default=None)
create(self, values)
force_storage(self)
get_serving_groups(self)
read(self, fields=None, load='_classic_read')
unlink(self)
write(self, vals)
No new fields.
Public methods (1)power_on(self)
group_ids
Many2many → res.groups
string='Groups'
args: 'res.groups', 'ir_config_parameter_groups_rel', 'icp_id', 'group_id'
key
Char
index=True
required=True
value
Text
required=True
get_param(self, key, default=False)
init(self, force=False)
set_param(self, key, value, groups=())
unlink(self)
write(self, vals)
export_fields
One2many → ir.exports.line
copy=True
string='Export ID'
args: 'ir.exports.line', 'export_id'
name
Char
string='Export Name'
resource
Char
index=True
No public methods.
export_id
Many2one → ir.exports
index=True
ondelete='cascade'
string='Export'
args: 'ir.exports'
name
Char
string='Field Name'
No public methods.
action_id
Many2one → ir.actions.actions
help='The menu action this filter applies to. When left empty the filter applies to all menus for this model.'
ondelete='cascade'
string='Action'
args: 'ir.actions.actions'
active
Boolean
default=True
context
Text
default='{}'
required=True
domain
Text
default='[]'
required=True
is_default
Boolean
string='Default filter'
model_id
Selection
required=True
selection='_list_all_models'
string='Model'
name
Char
required=True
string='Filter Name'
translate=True
sort
Text
default='[]'
required=True
user_id
Many2one → res.users
default=<expr>
help='The user this filter is private to. When left empty the filter is public and available to all users.'
ondelete='cascade'
string='User'
args: 'res.users'
copy(self, default=None)
create_or_replace(self, vals)
get_filters(self, model, action_id=None)
create_date
Datetime
readonly=True
string='Created on'
create_uid
Integer
readonly=True
string='Created by'
dbname
Char
index=True
string='Database Name'
func
Char
required=True
string='Function'
level
Char
index=True
line
Char
required=True
message
Text
required=True
name
Char
required=True
path
Char
required=True
type
Selection
index=True
required=True
args: [('client', 'Client'), ('server', 'Server')]
write_date
Datetime
readonly=True
string='Last Updated on'
write_uid
Integer
readonly=True
string='Last Updated by'
init(self)
active
Boolean
default=True
name
Char
index=True
required=True
string='Description'
sequence
Integer
default=10
help='When no specific mail server is requested for a mail, the highest priority one is used. Default priority is 10 (smaller number = higher priority)'
string='Priority'
smtp_debug
Boolean
help='If enabled, the full output of SMTP sessions will be written to the server log at DEBUG level(this is very verbose and may include confidential info!)'
string='Debugging'
smtp_encryption
Selection
default='none'
help='Choose the connection encryption scheme:\n- None: SMTP sessions are done in cleartext.\n- TLS (STARTTLS): TLS encryption is requested at start of SMTP session (Recommended)\n- SSL/TLS: SMTP sessions are encrypted with SSL/TLS through a dedicated port (default: 465)'
required=True
string='Connection Security'
args: [('none', 'None'), ('starttls', 'TLS (STARTTLS)'), ('ssl', 'SSL/TLS')]
smtp_host
Char
help='Hostname or IP of SMTP server'
required=True
string='SMTP Server'
smtp_pass
Char
help='Optional password for SMTP authentication'
size=64
string='Password'
smtp_port
Integer
default=25
help='SMTP Port. Usually 465 for SSL, and 25 or 587 for other cases.'
required=True
size=5
string='SMTP Port'
smtp_user
Char
help='Optional username for SMTP authentication'
size=64
string='Username'
build_email(self, email_from, email_to, subject, body, email_cc=None, email_bcc=None, reply_to=False, attachments=None, message_id=None, references=None, object_id=False, subtype='plain', headers=None, body_alternative=None, subtype_alternative='plain')
connect(self, host, port, user=None, password=None, encryption=False, smtp_debug=False)
name_get(self)
send_email(self, message, mail_server_id=None, smtp_server=None, smtp_port=None, smtp_user=None, smtp_password=None, smtp_encryption=None, smtp_debug=False)
test_smtp_connection(self)
access_ids
One2many → ir.model.access
string='Access'
args: 'ir.model.access', 'model_id'
field_id
One2many → ir.model.fields
copy=True
default=_default_field_id
required=True
string='Fields'
args: 'ir.model.fields', 'model_id'
info
Text
string='Information'
inherited_model_ids
Many2many → ir.model
compute='_inherited_models'
help='The list of models that extends the current model.'
string='Inherited models'
args: 'ir.model'
model
Char
default='x_'
index=True
required=True
modules
Char
compute='_in_modules'
help='List of modules in which the object is defined or inherited'
string='In Apps'
name
Char
required=True
string='Model Description'
translate=True
state
Selection
default='manual'
readonly=True
string='Type'
args: [('manual', 'Custom Object'), ('base', 'Base Object')]
transient
Boolean
string='Transient Model'
view_ids
One2many → ir.ui.view
compute='_view_ids'
string='Views'
args: 'ir.ui.view'
create(self, vals)
name_create(self, name)
unlink(self)
write(self, vals)
active
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).'
group_id
Many2one → res.groups
index=True
ondelete='cascade'
string='Group'
args: 'res.groups'
model_id
Many2one → ir.model
domain=[('transient', '=', False)]
index=True
ondelete='cascade'
required=True
string='Object'
args: 'ir.model'
name
Char
index=True
required=True
perm_create
Boolean
string='Create Access'
perm_read
Boolean
string='Read Access'
perm_unlink
Boolean
string='Delete Access'
perm_write
Boolean
string='Write Access'
call_cache_clearing_methods(self)
check(self, model, mode='read', raise_exception=True)
check_group(self, model, mode, group_ids)
check_groups(self, group)
create(self, values)
group_names_with_access(self, model_name, access_mode)
register_cache_clearing_method(cls, model, method)
unlink(self)
unregister_cache_clearing_method(cls, model, method)
write(self, values)
date_init
Datetime
string='Initialization Date'
date_update
Datetime
string='Update Date'
definition
Char
help='PostgreSQL constraint definition'
model
Many2one → ir.model
index=True
required=True
args: 'ir.model'
module
Many2one → ir.module.module
index=True
required=True
args: 'ir.module.module'
name
Char
help='PostgreSQL constraint or foreign key name.'
index=True
required=True
string='Constraint'
type
Char
help='Type of the constraint: `f` for a foreign key, `u` for other constraints.'
index=True
required=True
size=1
string='Constraint Type'
copy(self, default=None)
complete_name
Char
compute='_compute_complete_name'
string='Complete ID'
date_init
Datetime
default=fields.Datetime.now
string='Init Date'
date_update
Datetime
default=fields.Datetime.now
string='Update Date'
model
Char
required=True
string='Model Name'
module
Char
default=''
required=True
name
Char
help='External Key/Identifier that can be used for data integration with third-party systems'
required=True
string='External Identifier'
noupdate
Boolean
default=False
string='Non Updatable'
reference
Char
compute='_compute_reference'
readonly=True
store=False
string='Reference'
res_id
Integer
help='ID of the target record in the database'
string='Record ID'
check_object_reference(self, module, xml_id, raise_on_access_error=False)
get_object(self, module, xml_id)
get_object_reference(self, module, xml_id)
name_get(self)
unlink(self)
xmlid_lookup(self, xmlid)
xmlid_to_object(self, xmlid, raise_if_not_found=False)
xmlid_to_res_id(self, xmlid, raise_if_not_found=False)
xmlid_to_res_model_res_id(self, xmlid, raise_if_not_found=False)
column1
Char
help='Column referring to the record in the model table'
string='Column 1'
column2
Char
help='Column referring to the record in the comodel table'
string='Column 2'
complete_name
Char
index=True
compute
Text
help="Code to compute the value of the field.\nIterate on the recordset 'self' and assign the field's value:\n\n for record in self:\n record['size'] = len(record.name)\n\nModules time, datetime, dateutil are available."
copy
Boolean
help='Whether the value is copied when duplicating a record.'
string='Copied'
depends
Char
help='Dependencies of compute method; a list of comma-separated field names, like\n\n name, partner_id.name'
string='Dependencies'
domain
Char
default='[]'
help="The optional domain to restrict possible values for relationship fields, specified as a Python expression defining a list of triplets. For example: [('color','=','red')]"
field_description
Char
default=''
required=True
string='Field Label'
translate=True
groups
Many2many → res.groups
help
Text
string='Field Help'
translate=True
index
Boolean
string='Indexed'
model
Char
help='The technical name of the model this field belongs to'
index=True
required=True
string='Object Name'
model_id
Many2one → ir.model
help='The model this field belongs to'
index=True
ondelete='cascade'
required=True
string='Model'
args: 'ir.model'
modules
Char
compute='_in_modules'
help='List of modules in which the field is defined'
string='In Apps'
name
Char
default='x_'
index=True
required=True
string='Field Name'
on_delete
Selection
default='set null'
help='On delete property for many2one fields'
string='On Delete'
args: [('cascade', 'Cascade'), ('set null', 'Set NULL'), ('restrict', 'Restrict')]
readonly
Boolean
related
Char
help='The corresponding related field, if any. This must be a dot-separated list of field names.'
string='Related Field'
relation
Char
help='For relationship fields, the technical name of the target model'
string='Object Relation'
relation_field
Char
help='For one2many fields, the field on the target model that implement the opposite many2one relationship'
relation_table
Char
help='Used for custom many2many fields to define a custom relation table name'
required
Boolean
selectable
Boolean
default=True
selection
Char
default=''
help="List of options for a selection field, specified as a Python expression defining a list of (key, label) pairs. For example: [('blue','Blue'),('yellow','Yellow')]"
string='Selection Options'
serialization_field_id
Many2one → ir.model.fields
domain="[('ttype','=','serialized')]"
help='If set, this field will be stored in the sparse structure of the serialization field, instead of having its own database column. This cannot be changed after creation.'
ondelete='cascade'
args: 'ir.model.fields', 'Serialization Field'
size
Integer
state
Selection
default='manual'
index=True
readonly=True
required=True
string='Type'
args: [('manual', 'Custom Field'), ('base', 'Base Field')]
store
Boolean
default=True
help='Whether the value is stored in the database.'
string='Stored'
translate
Boolean
help='Whether values for this field can be translated (enables the translation mechanism for that field)'
string='Translatable'
ttype
Selection
required=True
selection='_get_field_types'
string='Field Type'
create(self, vals)
name_get(self)
unlink(self)
write(self, vals)
date_init
Datetime
string='Initialization Date'
date_update
Datetime
string='Update Date'
model
Many2one → ir.model
index=True
required=True
args: 'ir.model'
module
Many2one → ir.module.module
index=True
required=True
args: 'ir.module.module'
name
Char
help='PostgreSQL table name implementing a many2many relation.'
index=True
required=True
string='Relation Name'
No public methods.
No new fields.
Public methods (0)No public methods.
company_id
Many2one → res.company
index=True
string='Company'
args: 'res.company'
fields_id
Many2one → ir.model.fields
index=True
ondelete='cascade'
required=True
string='Field'
args: 'ir.model.fields'
name
Char
index=True
res_id
Char
help='If not set, acts as a default value for new resources'
index=True
string='Resource'
type
Selection
default='many2one'
index=True
required=True
args: [('char', 'Char'), ('float', 'Float'), ('boolean', 'Boolean'), ('integer', 'Integer'), ('text', 'Text'), ('binary', 'Binary'), ('many2one', 'Many2One'), ('date', 'Date'), ('datetime', 'DateTime'), ('selection', 'Selection')]
value_binary
Binary
value_datetime
Datetime
value_float
Float
value_integer
Integer
value_reference
Char
value_text
Text
create(self, values)
get(self, name, model, res_id=False)
get_by_record(self)
get_multi(self, name, model, ids)
search_multi(self, name, model, operator, value)
set_multi(self, name, model, values, default_value=None)
write(self, values)
No new fields.
Public methods (4)attributes(self, record, field_name, options, values=None)
record_to_html(self, record, field_name, options)
user_lang(self)
value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (2)record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
No new fields.
Public methods (2)record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (1)record_to_html(self, record, field_name, options)
No new fields.
Public methods (2)record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (2)record_to_html(self, record, field_name, options)
value_to_html(self, value, options)
No new fields.
Public methods (1)value_to_html(self, value, options)
active
Boolean
default=True
help='If you uncheck the active field, it will disable the record rule without deleting it (if you delete a native record rule, it may be re-created when you reload the module).'
domain
Binary
compute='_force_domain'
string='Domain'
domain_force
Text
string='Domain'
groups
Many2many → res.groups
model_id
Many2one → ir.model
index=True
ondelete='cascade'
required=True
string='Object'
args: 'ir.model'
name
Char
index=True
perm_create
Boolean
default=True
string='Apply for Create'
perm_read
Boolean
default=True
string='Apply for Read'
perm_unlink
Boolean
default=True
string='Apply for Delete'
perm_write
Boolean
default=True
string='Apply for Write'
clear_cache(self)
create(self, vals)
domain_get(self, model_name, mode='read')
unlink(self)
write(self, vals)
active
Boolean
default=True
code
Char
string='Sequence Code'
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
date_range_ids
One2many → ir.sequence.date_range
string='Subsequences'
args: 'ir.sequence.date_range', 'sequence_id'
implementation
Selection
default='standard'
help="Two sequence object implementations are offered: Standard and 'No gap'. The later is slower than the former but forbids anygap in the sequence (while they are possible in the former)."
required=True
string='Implementation'
args: [('standard', 'Standard'), ('no_gap', 'No gap')]
name
Char
required=True
number_increment
Integer
default=1
help='The next number of the sequence will be incremented by this number'
required=True
string='Step'
number_next
Integer
default=1
help='Next number of this sequence'
required=True
string='Next Number'
number_next_actual
Integer
compute='_get_number_next_actual'
help='Next number that will be used. This number can be incremented frequently so the displayed value might already be obsolete'
inverse='_set_number_next_actual'
string='Next Number'
padding
Integer
default=0
help="Odoo will automatically adds some '0' on the left of the 'Next Number' to get the required padding size."
required=True
string='Sequence Size'
prefix
Char
help='Prefix value of the record for the sequence'
suffix
Char
help='Suffix value of the record for the sequence'
use_date_range
Boolean
string='Use subsequences per date_range'
create(self, values)
get(self, code)
get_id(self, sequence_code_or_id, code_or_id='id')
get_next_char(self, number_next)
next_by_code(self, sequence_code)
next_by_id(self)
unlink(self)
write(self, values)
date_from
Date
required=True
string='From'
date_to
Date
required=True
string='To'
number_next
Integer
default=1
help='Next number of this sequence'
required=True
string='Next Number'
number_next_actual
Integer
compute='_get_number_next_actual'
help='Next number that will be used. This number can be incremented frequently so the displayed value might already be obsolete'
inverse='_set_number_next_actual'
string='Next Number'
sequence_id
Many2one → ir.sequence
ondelete='cascade'
required=True
string='Main Sequence'
args: 'ir.sequence'
create(self, values)
unlink(self)
write(self, values)
col1
Many2one → ir.model.fields
required=True
string='Field'
args: 'ir.model.fields'
server_id
Many2one → ir.actions.server
ondelete='cascade'
string='Related Server Action'
args: 'ir.actions.server'
type
Selection
change_default=True
default='value'
required=True
args: [('value', 'Value'), ('equation', 'Python expression')], 'Evaluation Type'
value
Text
help='Expression containing a value specification. \nWhen Formula type is selected, this field may be a Python expression that can use the same values as for the condition field on the server action.\nIf Value type is selected, the value will be used directly without evaluation.'
required=True
eval_value(self, eval_context=None)
comments
Text
index=True
string='Translation comments'
lang
Selection
selection='_get_languages'
string='Language'
module
Char
help='Module this term belongs to'
index=True
name
Char
required=True
string='Translated field'
res_id
Integer
index=True
string='Record ID'
source
Text
compute='_compute_source'
inverse='_inverse_source'
search='_search_source'
string='Source term'
src
Text
string='Internal Source'
state
Selection
default='to_translate'
help='Automatically set to let administators find new terms that might need to be translated'
string='Status'
args: [('to_translate', 'To Translate'), ('inprogress', 'Translation in Progress'), ('translated', 'Translated')]
type
Selection
index=True
string='Type'
args: TRANSLATION_TYPE
value
Text
string='Translation Value'
check(self, mode)
create(self, vals)
get_field_help(self, model_name)
get_field_string(self, model_name)
get_technical_translations(self, model_name)
insert_missing(self, field, records)
load_module_terms(self, modules, langs)
translate_fields(self, model, id, field=None)
unlink(self)
write(self, vals)
action
Reference
selection=[('ir.actions.report.xml', 'ir.actions.report.xml'), ('ir.actions.act_window', 'ir.actions.act_window'), ('ir.actions.act_url', 'ir.actions.act_url'), ('ir.actions.server', 'ir.actions.server'), ('ir.actions.client', 'ir.actions.client')]
active
Boolean
default=True
child_id
One2many → ir.ui.menu
string='Child IDs'
args: 'ir.ui.menu', 'parent_id'
complete_name
Char
compute='_compute_complete_name'
string='Full Path'
groups_id
Many2many → res.groups
help="If you have groups, the visibility of this menu will be based on these groups. If this field is empty, Odoo will compute visibility based on the related object's read access."
string='Groups'
args: 'res.groups', 'ir_ui_menu_group_rel', 'menu_id', 'gid'
name
Char
required=True
string='Menu'
translate=True
parent_id
Many2one → ir.ui.menu
index=True
ondelete='restrict'
string='Parent Menu'
args: 'ir.ui.menu'
parent_left
Integer
index=True
parent_right
Integer
index=True
sequence
Integer
default=10
web_icon
Char
string='Web Icon File'
web_icon_data
Binary
attachment=True
compute='_compute_web_icon'
store=True
string='Web Icon Image'
copy(self, default=None)
create(self, values)
get_needaction_data(self)
get_user_roots(self)
load_menus(self, debug)
load_menus_root(self)
name_get(self)
read_image(self, path)
search(self, args, offset=0, limit=None, order=None, count=False)
unlink(self)
write(self, values)
active
Boolean
default=True
help='If this view is inherited,\n* if True, the view always extends its parent\n* if False, the view currently does not extend its parent but can be enabled\n '
arch
Text
compute='_compute_arch'
inverse='_inverse_arch'
nodrop=True
string='View Architecture'
arch_base
Text
compute='_compute_arch_base'
inverse='_inverse_arch_base'
string='View Architecture'
arch_db
Text
oldname='arch'
string='Arch Blob'
translate=xml_translate
arch_fs
Char
string='Arch Filename'
create_date
Datetime
readonly=True
field_parent
Char
string='Child Field'
groups_id
Many2many → res.groups
help='If this field is empty, the view applies to all users. Otherwise, the view applies to the users of those groups only.'
string='Groups'
args: 'res.groups', 'ir_ui_view_group_rel', 'view_id', 'group_id'
inherit_children_ids
One2many → ir.ui.view
string='Views which inherit from this one'
args: 'ir.ui.view', 'inherit_id'
inherit_id
Many2one → ir.ui.view
index=True
ondelete='restrict'
string='Inherited View'
args: 'ir.ui.view'
key
Char
mode
Selection
default='primary'
help="Only applies if this view inherits from an other one (inherit_id is not False/Null).\n\n* if extension (default), if this view is requested the closest primary view\nis looked up (via inherit_id), then all views inheriting from it with this\nview's model are applied\n* if primary, the closest primary view is fully resolved (even if it uses a\ndifferent model than this one), then this view's inheritance specs\n(<xpath/>) are applied, and the result is used as if it were this view's\nactual arch.\n"
required=True
string='View inheritance mode'
args: [('primary', 'Base view'), ('extension', 'Extension View')]
model
Char
index=True
model_data_id
Many2one → ir.model.data
compute='_compute_model_data_id'
store=True
string='Model Data'
args: 'ir.model.data'
model_ids
One2many → ir.model.data
auto_join=True
domain=[('model', '=', 'ir.ui.view')]
args: 'ir.model.data', 'res_id'
name
Char
required=True
string='View Name'
priority
Integer
default=16
required=True
string='Sequence'
type
Selection
string='View Type'
args: [('tree', 'Tree'), ('form', 'Form'), ('graph', 'Graph'), ('pivot', 'Pivot'), ('calendar', 'Calendar'), ('diagram', 'Diagram'), ('gantt', 'Gantt'), ('kanban', 'Kanban'), ('search', 'Search'), ('qweb', 'QWeb')]
write_date
Datetime
readonly=True
string='Last Modification Date'
xml_id
Char
compute='_compute_xml_id'
help='ID of the view defined in xml file'
string='External ID'
add_on_change(self, model_name, arch)
apply_inheritance_specs(self, source, specs_tree, inherit_id)
apply_view_inheritance(self, source, source_id, model, root_id=None)
clear_cache(self)
create(self, values)
default_view(self, model, view_type)
distribute_branding(self, e, branding=None, parent_xpath='', index_map=ConstantMapping(1))
get_inheriting_views_arch(self, view_id, model)
get_view_id(self, template)
get_view_xmlid(self)
graph_get(self, id, model, node_obj, conn_obj, src_node, des_node, label, scale)
inherit_branding(self, specs_tree, view_id, root_id)
is_node_branded(self, node)
locate_node(self, arch, spec)
open_translations(self)
postprocess(self, model, node, view_id, in_tree_view, model_fields)
postprocess_and_fields(self, model, node, view_id)
raise_view_error(self, message, view_id)
read_combined(self, fields=None)
read_template(self, xml_id)
render(self, values=None, engine='ir.qweb')
render_template(self, template, values=None, engine='ir.qweb')
toggle(self)
translate_qweb(self, arch, lang)
unlink(self)
write(self, vals)
arch
Text
required=True
string='View Architecture'
ref_id
Many2one → ir.ui.view
index=True
ondelete='cascade'
required=True
string='Original View'
args: 'ir.ui.view'
user_id
Many2one → res.users
index=True
ondelete='cascade'
required=True
string='User'
args: 'res.users'
name_get(self)
name_search(self, name, args=None, operator='ilike', limit=100)
action_id
Many2one → ir.actions.actions
help='Action bound to this entry - helper field for binding an action, will automatically set the correct reference'
string='Action (change only)'
args: 'ir.actions.actions'
company_id
Many2one → res.company
help='If set, action binding only applies for this company'
index=True
ondelete='cascade'
string='Company'
args: 'res.company'
key
Selection
default='action'
help='- Action: an action attached to one slot of the given model\n- Default: a default value for a model field'
index=True
required=True
string='Type'
args: [('action', 'Action'), ('default', 'Default')]
key2
Char
default='tree_but_open'
help='For actions, one of the possible action slots: \n - client_action_multi\n - client_print_multi\n - client_action_relate\n - tree_but_open\nFor defaults, an optional condition'
index=True
string='Qualifier'
model
Char
help='Model to which this entry applies'
index=True
required=True
string='Model Name'
model_id
Many2one → ir.model
help='Model to which this entry applies - helper field for setting a model, will automatically set the correct model name'
string='Model (change only)'
args: 'ir.model'
name
Char
required=True
res_id
Integer
help='Database identifier of the record to which this applies. 0 = for all records'
index=True
string='Record ID'
user_id
Many2one → res.users
help='If set, action binding only applies for this user.'
index=True
ondelete='cascade'
string='User'
args: 'res.users'
value
Text
help='Default value (pickled) or reference to an action'
value_unpickle
Text
compute='_value_unpickle'
inverse='_value_pickle'
string='Default value or action reference'
create(self, vals)
get_actions(self, action_slot, model, res_id=False)
get_default(self, model, field_name, for_all_users=True, company_id=False, condition=False)
get_defaults(self, model, condition=False)
get_defaults_dict(self, model, condition=False)
onchange_action_id(self)
onchange_object_id(self)
set_action(self, name, action_slot, model, action, res_id=False)
set_default(self, model, field_name, value, for_all_users=True, company_id=False, condition=False)
unlink(self)
write(self, vals)
No new fields.
Public methods (1)render_html(self, docids, data=None)
active
Boolean
default=True
bic
Char
help='Sometimes called BIC or Swift.'
index=True
args: 'Bank Identifier Code'
city
Char
country
Many2one → res.country
email
Char
fax
Char
name
Char
required=True
phone
Char
state
Many2one → res.country.state
domain="[('country_id', '=', country)]"
args: 'res.country.state', 'Fed. State'
street
Char
street2
Char
zip
Char
name_get(self)
name_search(self, name, args=None, operator='ilike', limit=100)
account_no
Char
string='Account No.'
bank_ids
One2many → res.partner.bank
help='Bank accounts related to this company'
string='Bank Accounts'
args: 'res.partner.bank', 'company_id'
child_ids
One2many → res.company
string='Child Companies'
args: 'res.company', 'parent_id'
city
Char
compute='_compute_address'
inverse='_inverse_city'
company_registry
Char
country_id
Many2one → res.country
compute='_compute_address'
inverse='_inverse_country'
string='Country'
args: 'res.country'
currency_id
Many2one → res.currency
default=<expr>
required=True
string='Currency'
args: 'res.currency'
custom_footer
Boolean
help='Check this to define the report footer manually. Otherwise it will be filled in automatically.'
email
Char
related='partner_id.email'
store=True
fax
Char
compute='_compute_address'
inverse='_inverse_fax'
font
Many2one → res.font
default=<expr>
domain=[('mode', 'in', ('Normal', 'Regular', 'all', 'Book'))]
help='Set the font into the report header, it will be used as default font in the RML reports of the user company'
string='Font'
args: 'res.font'
logo
Binary
default=_get_logo
related='partner_id.image'
logo_web
Binary
compute='_compute_logo_web'
store=True
name
Char
related='partner_id.name'
required=True
store=True
string='Company Name'
parent_id
Many2one → res.company
index=True
string='Parent Company'
args: 'res.company'
partner_id
Many2one → res.partner
required=True
string='Partner'
args: 'res.partner'
phone
Char
related='partner_id.phone'
store=True
rml_footer
Text
help='Footer text displayed at the bottom of all reports.'
string='Custom Report Footer'
translate=True
rml_footer_readonly
Text
readonly=True
related='rml_footer'
string='Report Footer'
rml_header
Text
default=_get_header
required=True
rml_header1
Char
help='Appears by default on the top right corner of your printed documents (report header).'
string='Company Tagline'
rml_header2
Text
default=_header2
required=True
string='RML Internal Header'
rml_header3
Text
default=_header3
required=True
string='RML Internal Header for Landscape Reports'
rml_paper_format
Selection
default='a4'
oldname='paper_format'
required=True
string='Paper Format'
args: [('a4', 'A4'), ('us_letter', 'US Letter')]
sequence
Integer
default=10
help='Used to order Companies in the company switcher'
state_id
Many2one → res.country.state
compute='_compute_address'
inverse='_inverse_state'
string='Fed. State'
args: 'res.country.state'
street
Char
compute='_compute_address'
inverse='_inverse_street'
street2
Char
compute='_compute_address'
inverse='_inverse_street2'
user_ids
Many2many → res.users
string='Accepted Users'
args: 'res.users', 'res_company_users_rel', 'cid', 'user_id'
vat
Char
related='partner_id.vat'
string='Tax ID'
website
Char
related='partner_id.website'
zip
Char
compute='_compute_address'
inverse='_inverse_zip'
act_discover_fonts(self)
cache_restart(self)
copy(self, default=None)
create(self, vals)
name_search(self, name='', args=None, operator='ilike', limit=100)
on_change_country(self, country_id)
onchange_footer(self)
write(self, values)
No new fields.
Public methods (7)action_cancel(self)
action_next(self)
action_skip(self)
cancel(self)
execute(self)
next(self)
start(self)
No new fields.
Public methods (5)already_installed(self)
default_get(self, fields_list)
execute(self)
fields_get(self, fields=None, attributes=None)
modules_to_install(self)
No new fields.
Public methods (10)cancel(self)
copy(self, values)
default_get(self, fields)
execute(self)
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
get_config_warning(self, msg)
get_option_name(self, full_field_name)
get_option_path(self, menu_xml_id)
name_get(self)
onchange_module(self, field_value, module_name)
address_format
Text
default='%(street)s\n%(street2)s\n%(city)s %(state_code)s %(zip)s\n%(country_name)s'
help="You can state here the usual format to use for the addresses belonging to this country.\n\nYou can use the python-style string patern with all the field of the address (for example, use '%(street)s' to display the field 'street') plus\n \n%(state_name)s: the name of the state\n \n%(state_code)s: the code of the state\n \n%(country_name)s: the name of the country\n \n%(country_code)s: the code of the country"
code
Char
help='The ISO country code in two chars. \nYou can use this field for quick search.'
size=2
string='Country Code'
country_group_ids
Many2many → res.country.group
string='Country Groups'
args: 'res.country.group', 'res_country_res_country_group_rel', 'res_country_id', 'res_country_group_id'
currency_id
Many2one → res.currency
string='Currency'
args: 'res.currency'
image
Binary
attachment=True
name
Char
help='The full name of the country.'
required=True
string='Country Name'
translate=True
phone_code
Integer
string='Country Calling Code'
state_ids
One2many → res.country.state
string='States'
args: 'res.country.state', 'country_id'
create(self, vals)
get_address_fields(self)
write(self, vals)
country_ids
Many2many → res.country
string='Countries'
args: 'res.country', 'res_country_res_country_group_rel', 'res_country_group_id', 'res_country_id'
name
Char
required=True
No public methods.
code
Char
help='The state code.'
required=True
string='State Code'
country_id
Many2one → res.country
required=True
string='Country'
args: 'res.country'
name
Char
help='Administrative divisions of a country. E.g. Fed. State, Departement, Canton'
required=True
string='State Name'
No public methods.
active
Boolean
default=True
date
Date
compute='_compute_date'
decimal_places
Integer
compute='_compute_decimal_places'
name
Char
help='Currency Code (ISO 4217)'
required=True
size=3
string='Currency'
position
Selection
default='after'
help='Determines where the currency symbol should be placed after or before the amount.'
string='Symbol Position'
args: [('after', 'After Amount'), ('before', 'Before Amount')]
rate
Float
compute='_compute_current_rate'
digits=(12, 6)
help='The rate of the currency to the currency of rate 1.'
string='Current Rate'
rate_ids
One2many → res.currency.rate
string='Rates'
args: 'res.currency.rate', 'currency_id'
rounding
Float
default=0.01
digits=(12, 6)
string='Rounding Factor'
symbol
Char
help='Currency sign, to be used when printing amounts.'
required=True
compare_amounts(self, amount1, amount2)
compute(self, from_amount, to_currency, round=True)
get_format_currencies_js_function(self)
is_zero(self, amount)
name_get(self)
name_search(self, name='', args=None, operator='ilike', limit=100)
round(self, amount)
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
currency_id
Many2one → res.currency
readonly=True
string='Currency'
args: 'res.currency'
name
Datetime
default=<expr>
index=True
required=True
string='Date'
rate
Float
default=1.0
digits=(12, 6)
help='The rate of the currency to the currency of rate 1'
name_search(self, name, args=None, operator='ilike', limit=80)
active
Boolean
code
Char
help='This field is used to set/get locales for user'
required=True
string='Locale Code'
date_format
Char
default=DEFAULT_DATE_FORMAT
required=True
string='Date Format'
decimal_point
Char
default='.'
required=True
string='Decimal Separator'
direction
Selection
default='ltr'
required=True
args: [('ltr', 'Left-to-Right'), ('rtl', 'Right-to-Left')]
grouping
Char
default='[]'
help="The Separator Format should be like [,n] where 0 < n :starting from Unit digit. -1 will end the separation. e.g. [3,2,-1] will represent 106500 to be 1,06,500; [1,2,-1] will represent it to be 106,50,0;[3] will represent it as 106,500. Provided ',' as the thousand separator in each case."
required=True
string='Separator Format'
iso_code
Char
help='This ISO code is the name of po files to use for translations'
string='ISO code'
name
Char
required=True
thousands_sep
Char
default=','
string='Thousands Separator'
time_format
Char
default=DEFAULT_TIME_FORMAT
required=True
string='Time Format'
translatable
Boolean
create(self, vals)
format(self, percent, value, grouping=False, monetary=False)
get_available(self)
get_installed(self)
install_lang(self)
load_lang(self, lang, lang_name=None)
unlink(self)
write(self, vals)
active
Boolean
default=True
bank_ids
One2many → res.partner.bank
string='Banks'
args: 'res.partner.bank', 'partner_id'
barcode
Char
oldname='ean13'
category_id
Many2many → res.partner.category
column1='partner_id'
column2='category_id'
default=_default_category
string='Tags'
args: 'res.partner.category'
child_ids
One2many → res.partner
domain=[('active', '=', True)]
string='Contacts'
args: 'res.partner', 'parent_id'
city
Char
color
Integer
default=0
string='Color Index'
comment
Text
string='Notes'
commercial_company_name
Char
compute='_compute_commercial_company_name'
store=True
args: 'Company Name Entity'
commercial_partner_id
Many2one → res.partner
compute='_compute_commercial_partner'
index=True
store=True
string='Commercial Entity'
args: 'res.partner'
company_id
Many2one → res.company
default=_default_company
index=True
args: 'res.company', 'Company'
company_name
Char
company_type
Selection
compute='_compute_company_type'
inverse='_write_company_type'
selection=[('person', 'Individual'), ('company', 'Company')]
string='Company Type'
contact_address
Char
compute='_compute_contact_address'
string='Complete Address'
country_id
Many2one → res.country
ondelete='restrict'
string='Country'
args: 'res.country'
credit_limit
Float
string='Credit Limit'
customer
Boolean
default=True
help='Check this box if this contact is a customer.'
string='Is a Customer'
date
Date
index=True
display_name
Char
compute='_compute_display_name'
index=True
store=True
email
Char
email_formatted
Char
compute='_compute_email_formatted'
help='Format email address "Name <email@domain>"'
args: 'Formatted Email'
employee
Boolean
help='Check this box if this contact is an Employee.'
fax
Char
function
Char
string='Job Position'
image
Binary
attachment=True
help='This field holds the image used as avatar for this contact, limited to 1024x1024px'
args: 'Image'
image_medium
Binary
attachment=True
help='Medium-sized image of this contact. It is automatically resized as a 128x128px image, with aspect ratio preserved. Use this field in form views or some kanban views.'
args: 'Medium-sized image'
image_small
Binary
attachment=True
help='Small-sized image of this contact. It is automatically resized as a 64x64px image, with aspect ratio preserved. Use this field anywhere a small image is required.'
args: 'Small-sized image'
is_company
Boolean
default=False
help='Check if the contact is a company, otherwise it is a person'
string='Is a Company'
lang
Selection
default=<expr>
help='If the selected language is loaded in the system, all documents related to this contact will be printed in this language. If not, it will be English.'
string='Language'
args: _lang_get
mobile
Char
name
Char
index=True
parent_id
Many2one → res.partner
index=True
string='Related Company'
args: 'res.partner'
parent_name
Char
readonly=True
related='parent_id.name'
string='Parent name'
partner_share
Boolean
compute='_compute_partner_share'
help='Either customer (no user), either shared user. Indicated the current partner is a customer without access or with a limited access created for sharing data.'
store=True
args: 'Share Partner'
phone
Char
ref
Char
index=True
string='Internal Reference'
self
Many2one
comodel_name=_name
compute='_compute_get_ids'
state_id
Many2one → res.country.state
ondelete='restrict'
string='State'
args: 'res.country.state'
street
Char
street2
Char
supplier
Boolean
help="Check this box if this contact is a vendor. If it's not checked, purchase people will not see it when encoding a purchase order."
string='Is a Vendor'
title
Many2one → res.partner.title
type
Selection
default='contact'
help='Used to select automatically the right address according to the context in sales and purchases documents.'
string='Address Type'
args: [('contact', 'Contact'), ('invoice', 'Invoice address'), ('delivery', 'Shipping address'), ('other', 'Other address'), ('private', 'Private Address')]
tz
Selection
default=<expr>
help="The partner's timezone, used to output proper date and time values inside printed reports. It is important to set a value for this field. You should use the same timezone that is otherwise used to pick and render date and time values: your computer's timezone."
string='Timezone'
args: _tz_get
tz_offset
Char
compute='_compute_tz_offset'
invisible=True
string='Timezone offset'
user_id
Many2one → res.users
help='The internal user that is in charge of communicating with this contact if any.'
string='Salesperson'
args: 'res.users'
user_ids
One2many → res.users
auto_join=True
string='Users'
args: 'res.users', 'partner_id'
vat
Char
help='Tax Identification Number. Fill it if the company is subjected to taxes. Used by the some of the legal statements.'
string='TIN'
website
Char
help='Website of Partner or Company'
zip
Char
change_default=True
address_get(self, adr_pref=None)
copy(self, default=None)
create(self, vals)
create_company(self)
fields_view_get(self, view_id=None, view_type='form', toolbar=False, submenu=False)
find_or_create(self, email)
main_partner(self)
name_create(self, name)
name_get(self)
name_search(self, name, args=None, operator='ilike', limit=100)
onchange_company_type(self)
onchange_email(self)
onchange_parent_id(self)
open_commercial_entity(self)
open_parent(self)
update_address(self, vals)
view_header_get(self, view_id, view_type)
write(self, vals)
acc_number
Char
required=True
args: 'Account Number'
acc_type
Char
compute='_compute_acc_type'
help='Bank account type, inferred from account number'
bank_bic
Char
related='bank_id.bic'
bank_id
Many2one → res.bank
string='Bank'
args: 'res.bank'
bank_name
Char
related='bank_id.name'
company_id
Many2one → res.company
default=<expr>
ondelete='cascade'
args: 'res.company', 'Company'
currency_id
Many2one → res.currency
string='Currency'
args: 'res.currency'
partner_id
Many2one → res.partner
domain=['|', ('is_company', '=', True), ('parent_id', '=', False)]
index=True
ondelete='cascade'
args: 'res.partner', 'Account Holder'
sanitized_acc_number
Char
compute='_compute_sanitized_acc_number'
readonly=True
store=True
string='Sanitized Account Number'
sequence
Integer
search(self, args, offset=0, limit=None, order=None, count=False)
active
Boolean
default=True
help='The active field allows you to hide the category without removing it.'
child_ids
One2many → res.partner.category
string='Child Tags'
args: 'res.partner.category', 'parent_id'
color
Integer
string='Color Index'
name
Char
required=True
string='Tag Name'
translate=True
parent_id
Many2one → res.partner.category
index=True
ondelete='cascade'
string='Parent Category'
args: 'res.partner.category'
parent_left
Integer
index=True
string='Left parent'
parent_right
Integer
index=True
string='Right parent'
partner_ids
Many2many → res.partner
column1='category_id'
column2='partner_id'
string='Partners'
args: 'res.partner'
name_get(self)
name_search(self, name, args=None, operator='ilike', limit=100)
name
Char
required=True
string='Title'
translate=True
shortcut
Char
string='Abbreviation'
translate=True
No public methods.
name
Char
required=True
translate=True
object
Char
required=True
priority
Integer
default=5
No public methods.
menu_id
Many2one → ir.ui.menu
ondelete='cascade'
required=True
string='Parent Menu'
args: 'ir.ui.menu'
name
Char
required=True
string='Menu Name'
menu_create(self)
activities
One2many → workflow.activity
string='Activities'
args: 'workflow.activity', 'wkf_id'
name
Char
required=True
args: 'Name'
on_create
Boolean
default=True
index=True
args: 'On Create'
osv
Char
index=True
required=True
args: 'Resource Object'
copy(self, values)
create(self, vals)
get_active_workitems(self, res_model, res_id)
write(self, vals)
action
Text
action_id
Many2one → ir.actions.server
ondelete='set null'
string='Server Action'
args: 'ir.actions.server'
flow_start
Boolean
flow_stop
Boolean
in_transitions
One2many → workflow.transition
string='Incoming Transitions'
args: 'workflow.transition', 'act_to'
join_mode
Selection
default='XOR'
required=True
size=3
string='Join Mode'
args: [('XOR', 'Xor'), ('AND', 'And')]
kind
Selection
default='dummy'
required=True
string='Kind'
args: [('dummy', 'Dummy'), ('function', 'Function'), ('subflow', 'Subflow'), ('stopall', 'Stop All')]
name
Char
required=True
args: 'Name'
out_transitions
One2many → workflow.transition
string='Outgoing Transitions'
args: 'workflow.transition', 'act_from'
signal_send
Char
split_mode
Selection
default='XOR'
required=True
size=3
string='Split Mode'
args: [('XOR', 'Xor'), ('OR', 'Or'), ('AND', 'And')]
subflow_id
Many2one → workflow
string='Subflow'
args: 'workflow'
wkf_id
Many2one → workflow
index=True
ondelete='cascade'
required=True
string='Workflow'
args: 'workflow'
unlink(self)
res_id
Integer
res_type
Char
state
Char
transition_ids
Many2many → workflow.transition
uid
Integer
wkf_id
Many2one → workflow
index=True
ondelete='cascade'
string='Workflow'
args: 'workflow'
No public methods.
act_from
Many2one → workflow.activity
help='Source activity. When this activity is over, the condition is tested to determine if we can start the ACT_TO activity.'
index=True
ondelete='cascade'
required=True
string='Source Activity'
args: 'workflow.activity'
act_to
Many2one → workflow.activity
help='The destination activity.'
index=True
ondelete='cascade'
required=True
string='Destination Activity'
args: 'workflow.activity'
condition
Char
default='True'
help='Expression to be satisfied if we want the transition done.'
required=True
args: 'Condition'
group_id
Many2one → res.groups
help='The group that a user must have to be authorized to validate this transition.'
string='Group Required'
args: 'res.groups'
sequence
Integer
default=10
args: 'Sequence'
signal
Char
help='When the operation of transition comes from a button pressed in the client form, signal tests the name of the pressed button. If signal is NULL, no button is necessary to validate this transition.'
args: 'Signal (Button Name)'
trigger_expr_id
Char
trigger_model
Char
wkf_id
Many2one → workflow
related='act_from.wkf_id'
string='Workflow'
args: 'workflow'
name_get(self)
name_search(self, name, args=None, operator='ilike', limit=100)
instance_id
Many2one → workflow.instance
ondelete='cascade'
string='Destination Instance'
args: 'workflow.instance'
model
Char
res_id
Integer
size=128
args: 'Resource ID'
workitem_id
Many2one → workflow.workitem
ondelete='cascade'
required=True
string='Workitem'
args: 'workflow.workitem'
No public methods.
act_id
Many2one → workflow.activity
index=True
ondelete='cascade'
required=True
string='Activity'
args: 'workflow.activity'
inst_id
Many2one → workflow.instance
index=True
ondelete='cascade'
required=True
string='Instance'
args: 'workflow.instance'
state
Char
index=True
args: 'Status'
subflow_id
Many2one → workflow.instance
index=True
ondelete='set null'
string='Subflow'
args: 'workflow.instance'
wkf_id
Many2one → workflow
related='act_id.wkf_id'
string='Workflow'
args: 'workflow'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/9.0/base |
| VERSION | |
| VERSION | 1.3 |
| CATEGORY | |
| CATEGORY | Hidden |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | Yes |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Christophe Matthieu, Martin Trigaux, Fabien Pinckaers, Antony Lesuisse, Olivier Dony, Thibault Delavallée, Josse Colpaert, Denis Ledoux, Fabien Meghazi, Christophe Simonis, David Monjoie, Xavier Morel, Goffin Simon, Cedric Snauwaert, Simon Lejeune, Frédéric van der Essen, Nicolas Martinelli, Nicolas Lempereur, Jérome Maes, xmo-odoo, Samus CTO, Richard Mathot, qdp-odoo, Géry Debongnie, Aaron Bohy, Jeremy Kersten, GitHub, Damien Bouvy, pvy, Arthur Maniet, Yannick Tivisse, qsm-odoo, Martin Geubelle, Nicolas Seinlet, Pierre Masereel, odoo-tac, Toufik Benjaa, Quentin De Paoli, Olivier Laurent, Tanguy Charlier, DVE, fwi-odoo, app |
| WEBSITE | |
| WEBSITE | http://www.openerp.com |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:48:31 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES | |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | The kernel of OpenERP, needed for all installation. =================================================== |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
act_report_xml_search_view |
ir.actions.report.xml.search | ir.actions.report.xml | search | New |
act_report_xml_view |
ir.actions.report.xml | ir.actions.report.xml | form | New |
act_report_xml_view_tree |
ir.actions.report.xml.tree | ir.actions.report.xml | tree | New |
action_view |
ir.actions.actions | ir.actions.actions | form | New |
action_view_search |
ir.actions.actions.search | ir.actions.actions | search | New |
action_view_tree |
ir.actions.actions.tree | ir.actions.actions | tree | New |
change_password_wizard_user_tree_view |
Change Password Users | change.password.user | tree | New |
change_password_wizard_view |
Change Password | change.password.wizard | form | New |
config_wizard_step_view_form |
Config Wizard Steps | ir.actions.todo | form | New |
config_wizard_step_view_search |
ir.actions.todo.select | ir.actions.todo | search | New |
contact |
contact | ir.ui.view | qweb | New |
edit_menu |
ir.ui.menu | tree | New | |
edit_menu_access |
ir.ui.menu | form | New | |
edit_menu_access_search |
ir.ui.menu.search | ir.ui.menu | search | New |
ir_access_view_form |
ir.model.access | form | New | |
ir_access_view_search |
ir.model.access | search | New | |
ir_access_view_tree |
ir.model.access | tree | New | |
ir_actions_todo_tree |
Config Wizard Steps | ir.actions.todo | tree | New |
ir_cron_view |
ir.cron | form | New | |
ir_cron_view_calendar |
ir.cron | calendar | New | |
ir_cron_view_search |
ir.cron | search | New | |
ir_cron_view_tree |
ir.cron | tree | New | |
ir_filters_view_form |
ir.filters | form | New | |
ir_filters_view_search |
ir.filters | search | New | |
ir_filters_view_tree |
ir.filters | tree | New | |
ir_logging_form_view |
ir.logging | form | New | |
ir_logging_search_view |
ir.logging | search | New | |
ir_logging_tree_view |
ir.logging | tree | New | |
ir_mail_server_form |
ir.mail_server | form | New | |
ir_mail_server_list |
ir.mail_server | tree | New | |
ir_property_view |
ir.property.form | ir.property | form | New |
ir_property_view_search |
ir.property.search | ir.property | search | New |
ir_property_view_tree |
ir.property.tree | ir.property | tree | New |
module_form |
ir.module.module.form | ir.module.module | form | New |
module_tree |
ir.module.module.tree | ir.module.module | tree | New |
module_view_kanban |
Apps Kanban | ir.module.module | kanban | New |
report_irmodeloverview |
report_irmodeloverview | ir.ui.view | qweb | New |
report_irmodulereference |
report_irmodulereference | ir.ui.view | qweb | New |
res_config_installer |
Inheritable view for installer objects | res.config.installer | form | New |
res_config_view_base |
res.config.view.base | res.config | form | New |
res_lang_form |
res.lang.form | res.lang | form | New |
res_lang_search |
res.lang.search | res.lang | search | New |
res_lang_tree |
res.lang.tree | res.lang | tree | New |
res_partner_kanban_view |
res.partner.kanban | res.partner | kanban | New |
res_partner_view_form_private |
res.partner.view.form.private | res.partner | form | New |
res_request_link-view |
res.request.link.form | res.request.link | form | New |
res_request_link_search_view |
res.request.link.search | res.request.link | search | New |
res_request_link_tree-view |
res.request.link.form | res.request.link | tree | New |
sequence_view |
ir.sequence | form | New | |
sequence_view_tree |
ir.sequence | tree | New | |
user_groups_view |
res.users.groups | res.users | field | Inherits view_users_form |
values_view_form_action |
ir.values.form.action | ir.values | form | New |
values_view_form_defaults |
ir.values.form.defaults | ir.values | form | New |
values_view_search_action |
ir.values.search.action | ir.values | search | New |
values_view_tree_action |
ir.values.tree.action | ir.values | tree | New |
view_attachment_form |
ir.attachment | form | New | |
view_attachment_search |
ir.attachment | search | New | |
view_attachment_tree |
ir.attachment | tree | New | |
view_base_import_language |
Import Translation | base.language.import | form | New |
view_base_language_install |
Load a Translation | base.language.install | form | New |
view_base_module_configuration_form |
Module Configuration | base.module.configuration | form | New |
view_base_module_update |
Module Update | base.module.update | form | New |
view_base_module_upgrade |
Module Upgrade | base.module.upgrade | form | New |
view_base_module_upgrade_install |
Module Upgrade Install | base.module.upgrade | form | New |
view_company_form |
res.company.form | res.company | form | New |
view_company_tree |
res.company.tree | res.company | tree | New |
view_country_form |
res.country.form | res.country | form | New |
view_country_group_form |
res.country.group.form | res.country.group | form | New |
view_country_group_tree |
res.country.group.tree | res.country.group | tree | New |
view_country_state_form |
res.country.state.form | res.country.state | form | New |
view_country_state_tree |
res.country.state.tree | res.country.state | tree | New |
view_country_tree |
res.country.tree | res.country | tree | New |
view_currency_form |
res.currency.form | res.currency | form | New |
view_currency_rate_form |
res.currency.rate.form | res.currency.rate | form | New |
view_currency_rate_search |
res.currency.rate.search | res.currency.rate | search | New |
view_currency_rate_tree |
res.currency.rate.tree | res.currency.rate | tree | New |
view_currency_search |
res.currency.search | res.currency | search | New |
view_currency_tree |
res.currency.tree | res.currency | tree | New |
view_groups_form |
res.groups.form | res.groups | form | New |
view_groups_search |
res.groups.search | res.groups | search | New |
view_ir_config_form |
ir.config_parameter | form | New | |
view_ir_config_list |
ir.config_parameter | tree | New | |
view_ir_config_search |
ir.config_parameter | search | New | |
view_ir_mail_server_search |
ir.mail_server | search | New | |
view_menu |
ir.ui.menu.tree | ir.ui.menu | tree | New |
view_model_constraint_form |
ir.model.constraint | form | New | |
view_model_constraint_list |
ir.model.constraint | tree | New | |
view_model_data_form |
ir.model.data | form | New | |
view_model_data_list |
ir.model.data | tree | New | |
view_model_data_search |
ir.model.data | search | New | |
view_model_fields_form |
ir.model.fields | form | New | |
view_model_fields_search |
ir.model.fields | search | New | |
view_model_fields_tree |
ir.model.fields | tree | New | |
view_model_form |
ir.model | form | New | |
view_model_menu_create |
Create Menu | wizard.ir.model.menu.create | form | New |
view_model_relation_form |
ir.model.relation | form | New | |
view_model_relation_list |
ir.model.relation | tree | New | |
view_model_search |
ir.model | search | New | |
view_model_tree |
ir.model | tree | New | |
view_module_category_form |
ir.module.category.form | ir.module.category | form | New |
view_module_category_tree |
ir.module.category.tree | ir.module.category | tree | New |
view_module_filter |
ir.module.module.list.select | ir.module.module | search | New |
view_partner_address_form |
res.partner.form.address | res.partner | form | New |
view_partner_bank_form |
res.partner.bank.form | res.partner.bank | form | New |
view_partner_bank_search |
res.partner.bank.search | res.partner.bank | search | New |
view_partner_bank_tree |
res.partner.bank.tree | res.partner.bank | tree | New |
view_partner_category_form |
Contact Tags | res.partner.category | form | New |
view_partner_category_list |
Contact Tags | res.partner.category | tree | New |
view_partner_form |
res.partner.form | res.partner | form | New |
view_partner_simple_form |
res.partner.simplified.form | res.partner | form | New |
view_partner_title_form |
res.partner.title.form | res.partner.title | form | New |
view_partner_title_tree |
res.partner.title.tree | res.partner.title | tree | New |
view_partner_tree |
res.partner.tree | res.partner | tree | New |
view_res_bank_form |
res.bank.form | res.bank | form | New |
view_res_bank_tree |
res.bank.tree | res.bank | tree | New |
view_res_partner_filter |
res.partner.select | res.partner | search | New |
view_rule_form |
ir.rule | form | New | |
view_rule_search |
ir.rule | search | New | |
view_rule_tree |
ir.rule | tree | New | |
view_sequence_search |
ir.sequence | search | New | |
view_server_action_form |
Server Action | ir.actions.server | form | New |
view_server_action_search |
ir.actions.server.search | ir.actions.server | search | New |
view_server_action_tree |
Server Actions | ir.actions.server | tree | New |
view_translation_form |
ir.translation | form | New | |
view_translation_search |
ir.translation | search | New | |
view_translation_tree |
ir.translation | tree | New | |
view_users_form |
res.users.form | res.users | form | New |
view_users_form_simple_modif |
res.users.preferences.form | res.users | form | New |
view_users_search |
res.users.search | res.users | search | New |
view_users_simple_form |
res.users.simplified.form | res.users | form | New |
view_users_tree |
res.users.tree | res.users | tree | New |
view_view_custom_form |
ir.ui.view.custom | form | New | |
view_view_custom_search |
ir.ui.view.custom | search | New | |
view_view_custom_tree |
ir.ui.view.custom | tree | New | |
view_view_form |
ir.ui.view | form | New | |
view_view_search |
ir.ui.view | search | New | |
view_view_tree |
ir.ui.view | tree | New | |
view_window_action_form |
ir.actions.windows.form | ir.actions.act_window | form | New |
view_window_action_search |
ir.actions.windows.search | ir.actions.act_window | search | New |
view_window_action_tree |
ir.actions.windows.tree | ir.actions.act_window | tree | New |
view_workflow_activity_form |
workflow.activity.form | workflow.activity | form | New |
view_workflow_activity_search |
workflow.activity.search | workflow.activity | search | New |
view_workflow_activity_tree |
workflow.activity.tree | workflow.activity | tree | New |
view_workflow_diagram |
workflow.diagram | workflow | diagram | New |
view_workflow_form |
workflow.form | workflow | form | New |
view_workflow_instance_form |
workflow.instance.form | workflow.instance | form | New |
view_workflow_instance_search |
workflow.instance.search | workflow.instance | search | New |
view_workflow_instance_tree |
workflow.instance.tree | workflow.instance | tree | New |
view_workflow_search |
workflow.search | workflow | search | New |
view_workflow_transition_form |
workflow.transition.form | workflow.transition | form | New |
view_workflow_transition_search |
workflow.transition.search | workflow.transition | search | New |
view_workflow_transition_tree |
workflow.transition.tree | workflow.transition | tree | New |
view_workflow_tree |
workflow.tree | workflow | tree | New |
view_workflow_workitem_form |
workflow.workitem.form | workflow.workitem | form | New |
view_workflow_workitem_search |
workflow.workitem.search | workflow.workitem | search | New |
view_workflow_workitem_tree |
workflow.workitem.tree | workflow.workitem | tree | New |
wizard_lang_export |
Export Translations | base.language.export | form | New |
wizard_update_translations |
Synchronize Terms | base.update.translations | form | New |
No HTTP endpoints found for this module.
No new fields.
Public methods (0)No public methods.
added
Integer
readonly=True
args: 'Number of modules added'
state
Selection
default='init'
readonly=True
args: [('init', 'init'), ('done', 'done')], 'Status'
updated
Integer
readonly=True
args: 'Number of modules updated'
action_module_open(self)
update_module(self)
No new fields.
Public methods (1)change_password_button(self, cr, uid, ids, context=None)
No new fields.
Public methods (1)change_password_button(self, cr, uid, ids, context=None)
No new fields.
Public methods (1)power_on(self, cr, uid, *args, **kwargs)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
active
Boolean
default=True
code
Char
company_id
Many2one → res.company
default=<expr>
args: 'res.company', 'Company'
date_range_ids
One2many → ir.sequence.date_range
implementation
Selection
default='standard'
help="Two sequence object implementations are offered: Standard and 'No gap'. The later is slower than the former but forbids any gap in the sequence (while they are possible in the former)."
required=True
args: [('standard', 'Standard'), ('no_gap', 'No gap')], 'Implementation'
name
Char
required=True
number_increment
Integer
default=1
help='The next number of the sequence will be incremented by this number'
required=True
args: 'Step'
number_next
Integer
default=1
help='Next number of this sequence'
required=True
args: 'Next Number'
number_next_actual
Integer
compute='_get_number_next_actual'
default=1
help='Next number that will be used. This number can be incremented frequently so the displayed value might already be obsolete'
inverse='_set_number_next_actual'
required=True
string='Next Number'
padding
Integer
default=0
help="Odoo will automatically adds some '0' on the left of the 'Next Number' to get the required padding size."
required=True
args: 'Sequence Size'
prefix
Char
help='Prefix value of the record for the sequence'
suffix
Char
help='Suffix value of the record for the sequence'
use_date_range
Boolean
create(self, values)
get(self, code)
get_id(self, sequence_code_or_id, code_or_id='id')
get_next_char(self, number_next)
init(self, cr)
next_by_code(self, sequence_code)
next_by_id(self)
unlink(self)
write(self, values)
date_from
Date
required=True
args: 'From'
date_to
Date
required=True
args: 'To'
number_next
Integer
default=1
help='Next number of this sequence'
required=True
args: 'Next Number'
number_next_actual
Integer
compute='_get_number_next_actual'
default=1
help='Next number that will be used. This number can be incremented frequently so the displayed value might already be obsolete'
inverse='_set_number_next_actual'
required=True
string='Next Number'
sequence_id
Many2one → ir.sequence
ondelete='cascade'
required=True
args: 'ir.sequence', 'Main Sequence'
create(self, values)
unlink(self)
write(self, values)
No new fields.
Public methods (1)render_html(self, data=None)
active
Boolean
default=True
bic
Char
help='Sometimes called BIC or Swift.'
index=True
args: 'Bank Identifier Code'
city
Char
country
Many2one → res.country
email
Char
fax
Char
name
Char
required=True
phone
Char
state
Many2one → res.country.state
domain="[('country_id', '=', country)]"
args: 'res.country.state', 'Fed. State'
street
Char
street2
Char
zip
Char
name_get(self)
name_search(self, name, args=None, operator='ilike', limit=100)
No new fields.
Public methods (18)address_get(self, cr, uid, ids, adr_pref=None, context=None)
copy(self, default=None)
create(self, vals)
email_send(self, cr, uid, ids, email_from, subject, body, on_error='')
fields_view_get(self, cr, user, view_id=None, view_type='form', context=None, toolbar=False, submenu=False)
find_or_create(self, cr, uid, email, context=None)
main_partner(self)
name_create(self, cr, uid, name, context=None)
name_get(self, cr, uid, ids, context=None)
name_search(self, cr, uid, name, args=None, operator='ilike', context=None, limit=100)
on_change_company_type(self, company_type)
onchange_parent_id(self, cr, uid, ids, parent_id, context=None)
onchange_state(self, state_id)
open_commercial_entity(self, cr, uid, ids, context=None)
open_parent(self, cr, uid, ids, context=None)
update_address(self, cr, uid, ids, vals, context=None)
view_header_get(self, cr, uid, view_id, view_type, context)
write(self, vals)
acc_number
Char
required=True
args: 'Account Number'
acc_type
Char
compute='_compute_acc_type'
help='Bank account type, inferred from account number'
bank_bic
Char
related='bank_id.bic'
bank_id
Many2one → res.bank
string='Bank'
args: 'res.bank'
bank_name
Char
related='bank_id.name'
company_id
Many2one → res.company
default=<expr>
ondelete='cascade'
args: 'res.company', 'Company'
currency_id
Many2one → res.currency
string='Currency'
args: 'res.currency'
partner_id
Many2one → res.partner
domain=['|', ('is_company', '=', True), ('parent_id', '=', False)]
index=True
ondelete='cascade'
args: 'res.partner', 'Account Holder'
sanitized_acc_number
Char
compute='_compute_sanitized_acc_number'
readonly=True
store=True
string='Sanitized Account Number'
sequence
Integer
search(self, args, offset=0, limit=None, order=None, count=False)
No new fields.
Public methods (2)name_get(self, cr, uid, ids, context=None)
name_search(self, name, args=None, operator='ilike', limit=100)
No new fields.
Public methods (0)No public methods.
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
act_report_xml_search_view |
ir.actions.report.xml.search | ir.actions.report.xml | search | New |
act_report_xml_view |
ir.actions.report.xml | ir.actions.report.xml | form | New |
act_report_xml_view_tree |
ir.actions.report.xml.tree | ir.actions.report.xml | tree | New |
action_view |
ir.actions.actions | ir.actions.actions | form | New |
action_view_search |
ir.actions.actions.search | ir.actions.actions | search | New |
action_view_tree |
ir.actions.actions.tree | ir.actions.actions | tree | New |
change_password_wizard_user_tree_view |
Change Password Users | change.password.user | tree | New |
change_password_wizard_view |
Change Password | change.password.wizard | form | New |
config_wizard_step_view_form |
Config Wizard Steps | ir.actions.todo | form | New |
config_wizard_step_view_search |
ir.actions.todo.select | ir.actions.todo | search | New |
contact |
contact | ir.ui.view | qweb | New |
edit_menu |
ir.ui.menu | tree | New | |
edit_menu_access |
ir.ui.menu | form | New | |
edit_menu_access_search |
ir.ui.menu.search | ir.ui.menu | search | New |
ir_access_view_form |
ir.model.access | form | New | |
ir_access_view_search |
ir.model.access | search | New | |
ir_access_view_tree |
ir.model.access | tree | New | |
ir_actions_todo_tree |
Config Wizard Steps | ir.actions.todo | tree | New |
ir_cron_view |
ir.cron | form | New | |
ir_cron_view_calendar |
ir.cron | calendar | New | |
ir_cron_view_search |
ir.cron | search | New | |
ir_cron_view_tree |
ir.cron | tree | New | |
ir_filters_view_form |
ir.filters | form | New | |
ir_filters_view_search |
ir.filters | search | New | |
ir_filters_view_tree |
ir.filters | tree | New | |
ir_logging_form_view |
ir.logging | form | New | |
ir_logging_search_view |
ir.logging | search | New | |
ir_logging_tree_view |
ir.logging | tree | New | |
ir_mail_server_form |
ir.mail_server | form | New | |
ir_mail_server_list |
ir.mail_server | tree | New | |
ir_property_view |
ir.property.form | ir.property | form | New |
ir_property_view_search |
ir.property.search | ir.property | search | New |
ir_property_view_tree |
ir.property.tree | ir.property | tree | New |
module_form |
ir.module.module.form | ir.module.module | form | New |
module_tree |
ir.module.module.tree | ir.module.module | tree | New |
module_view_kanban |
Modules Kanban | ir.module.module | kanban | New |
res_config_installer |
Inheritable view for installer objects | res.config.installer | form | New |
res_config_view_base |
res.config.view.base | res.config | form | New |
res_lang_form |
res.lang.form | res.lang | form | New |
res_lang_search |
res.lang.search | res.lang | search | New |
res_lang_tree |
res.lang.tree | res.lang | tree | New |
res_partner_kanban_view |
res.partner.kanban | res.partner | kanban | New |
res_request_link-view |
res.request.link.form | res.request.link | form | New |
res_request_link_search_view |
res.request.link.search | res.request.link | search | New |
res_request_link_tree-view |
res.request.link.form | res.request.link | tree | New |
sequence_type_form_view |
ir.sequence.type | form | New | |
sequence_type_tree_view |
ir.sequence.type | tree | New | |
sequence_view |
ir.sequence | form | New | |
sequence_view_tree |
ir.sequence | tree | New | |
user_groups_view |
res.users.groups | res.users | field | Inherits view_users_form |
values_view_form_action |
ir.values.form.action | ir.values | form | New |
values_view_form_defaults |
ir.values.form.defaults | ir.values | form | New |
values_view_search_action |
ir.values.search.action | ir.values | search | New |
values_view_tree_action |
ir.values.tree.action | ir.values | tree | New |
view_attachment_form |
ir.attachment | form | New | |
view_attachment_search |
ir.attachment | search | New | |
view_attachment_tree |
ir.attachment | tree | New | |
view_base_import_language |
Import Translation | base.language.import | form | New |
view_base_language_install |
Load a Translation | base.language.install | form | New |
view_base_module_configuration_form |
Module Configuration | base.module.configuration | form | New |
view_base_module_update |
Module Update | base.module.update | form | New |
view_base_module_upgrade |
Module Upgrade | base.module.upgrade | form | New |
view_base_module_upgrade_install |
Module Upgrade Install | base.module.upgrade | form | New |
view_company_form |
res.company.form | res.company | form | New |
view_company_tree |
res.company.tree | res.company | tree | New |
view_country_form |
res.country.form | res.country | form | New |
view_country_group_form |
res.country.group.form | res.country.group | form | New |
view_country_group_tree |
res.country.group.tree | res.country.group | tree | New |
view_country_state_form |
res.country.state.form | res.country.state | form | New |
view_country_state_tree |
res.country.state.tree | res.country.state | tree | New |
view_country_tree |
res.country.tree | res.country | tree | New |
view_currency_form |
res.currency.form | res.currency | form | New |
view_currency_search |
res.currency.search | res.currency | search | New |
view_currency_tree |
res.currency.tree | res.currency | tree | New |
view_groups_form |
res.groups.form | res.groups | form | New |
view_groups_search |
res.groups.search | res.groups | search | New |
view_inventory_form |
multi_company.default.form | multi_company.default | form | New |
view_inventory_search |
multi_company.default.search | multi_company.default | search | New |
view_inventory_tree |
multi_company.default.tree | multi_company.default | tree | New |
view_ir_config_form |
ir.config_parameter | form | New | |
view_ir_config_list |
ir.config_parameter | tree | New | |
view_ir_config_search |
ir.config_parameter | search | New | |
view_ir_mail_server_search |
ir.mail_server | search | New | |
view_menu |
ir.ui.menu.tree | ir.ui.menu | tree | New |
view_model_constraint_form |
ir.model.constraint | form | New | |
view_model_constraint_list |
ir.model.constraint | tree | New | |
view_model_data_form |
ir.model.data | form | New | |
view_model_data_list |
ir.model.data | tree | New | |
view_model_data_search |
ir.model.data | search | New | |
view_model_fields_form |
ir.model.fields | form | New | |
view_model_fields_search |
ir.model.fields | search | New | |
view_model_fields_tree |
ir.model.fields | tree | New | |
view_model_form |
ir.model | form | New | |
view_model_menu_create |
Create Menu | wizard.ir.model.menu.create | form | New |
view_model_relation_form |
ir.model.relation | form | New | |
view_model_relation_list |
ir.model.relation | tree | New | |
view_model_search |
ir.model | search | New | |
view_model_tree |
ir.model | tree | New | |
view_module_category_form |
ir.module.category.form | ir.module.category | form | New |
view_module_category_tree |
ir.module.category.tree | ir.module.category | tree | New |
view_module_filter |
ir.module.module.list.select | ir.module.module | search | New |
view_partner_bank_form |
res.partner.bank.form | res.partner.bank | form | New |
view_partner_bank_search |
res.partner.bank.search | res.partner.bank | search | New |
view_partner_bank_tree |
res.partner.bank.tree | res.partner.bank | tree | New |
view_partner_bank_type_form |
res.partner.bank.type.form | res.partner.bank.type | form | New |
view_partner_bank_type_tree |
res.partner.bank.type.tree | res.partner.bank.type | tree | New |
view_partner_category_form |
Partner Tags | res.partner.category | form | New |
view_partner_category_list |
Partner Tags | res.partner.category | tree | New |
view_partner_category_tree |
res.partner.category.tree | res.partner.category | tree | New |
view_partner_form |
res.partner.form | res.partner | form | New |
view_partner_simple_form |
res.partner.simplified.form | res.partner | form | New |
view_partner_title_form |
res.partner.title.form | res.partner.title | form | New |
view_partner_title_tree |
res.partner.title.tree | res.partner.title | tree | New |
view_partner_tree |
res.partner.tree | res.partner | tree | New |
view_res_bank_form |
res.bank.form | res.bank | form | New |
view_res_bank_tree |
res.bank.tree | res.bank | tree | New |
view_res_partner_filter |
res.partner.select | res.partner | search | New |
view_rule_form |
ir.rule | form | New | |
view_rule_search |
ir.rule | search | New | |
view_rule_tree |
ir.rule | tree | New | |
view_sequence_search |
ir.sequence | search | New | |
view_sequence_type_search |
ir.sequence.type | search | New | |
view_server_action_form |
Server Action | ir.actions.server | form | New |
view_server_action_search |
ir.actions.server.search | ir.actions.server | search | New |
view_server_action_tree |
Server Actions | ir.actions.server | tree | New |
view_translation_form |
ir.translation | form | New | |
view_translation_search |
ir.translation | search | New | |
view_translation_tree |
ir.translation | tree | New | |
view_users_form |
res.users.form | res.users | form | New |
view_users_form_simple_modif |
res.users.preferences.form | res.users | form | New |
view_users_search |
res.users.search | res.users | search | New |
view_users_simple_form |
res.users.simplified.form | res.users | form | New |
view_users_tree |
res.users.tree | res.users | tree | New |
view_view_custom_form |
ir.ui.view.custom | form | New | |
view_view_custom_search |
ir.ui.view.custom | search | New | |
view_view_custom_tree |
ir.ui.view.custom | tree | New | |
view_view_form |
ir.ui.view | form | New | |
view_view_search |
ir.ui.view | search | New | |
view_view_tree |
ir.ui.view | tree | New | |
view_window_action_form |
ir.actions.windows.form | ir.actions.act_window | form | New |
view_window_action_search |
ir.actions.windows.search | ir.actions.act_window | search | New |
view_window_action_tree |
ir.actions.windows.tree | ir.actions.act_window | tree | New |
view_workflow_activity_form |
workflow.activity.form | workflow.activity | form | New |
view_workflow_activity_search |
workflow.activity.search | workflow.activity | search | New |
view_workflow_activity_tree |
workflow.activity.tree | workflow.activity | tree | New |
view_workflow_diagram |
workflow.diagram | workflow | diagram | New |
view_workflow_form |
workflow.form | workflow | form | New |
view_workflow_instance_form |
workflow.instance.form | workflow.instance | form | New |
view_workflow_instance_search |
workflow.instance.search | workflow.instance | search | New |
view_workflow_instance_tree |
workflow.instance.tree | workflow.instance | tree | New |
view_workflow_search |
workflow.search | workflow | search | New |
view_workflow_transition_form |
workflow.transition.form | workflow.transition | form | New |
view_workflow_transition_search |
workflow.transition.search | workflow.transition | search | New |
view_workflow_transition_tree |
workflow.transition.tree | workflow.transition | tree | New |
view_workflow_tree |
workflow.tree | workflow | tree | New |
view_workflow_workitem_form |
workflow.workitem.form | workflow.workitem | form | New |
view_workflow_workitem_search |
workflow.workitem.search | workflow.workitem | search | New |
view_workflow_workitem_tree |
workflow.workitem.tree | workflow.workitem | tree | New |
wizard_lang_export |
Export Translations | base.language.export | form | New |
wizard_update_translations |
Synchronize Terms | base.update.translations | form | New |
No HTTP endpoints found for this module.
No new fields.
Public methods (0)No public methods.
added
Integer
readonly=True
args: 'Number of modules added'
state
Selection
default='init'
readonly=True
args: [('init', 'init'), ('done', 'done')], 'Status'
updated
Integer
readonly=True
args: 'Number of modules updated'
action_module_open(self)
update_module(self)
No new fields.
Public methods (1)change_password_button(self, cr, uid, ids, context=None)
No new fields.
Public methods (1)change_password_button(self, cr, uid, ids, context=None)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (19)address_get(self, cr, uid, ids, adr_pref=None, context=None)
copy(self, default=None)
create(self, vals)
email_send(self, cr, uid, ids, email_from, subject, body, on_error='')
fields_view_get(self, cr, user, view_id=None, view_type='form', context=None, toolbar=False, submenu=False)
find_or_create(self, cr, uid, email, context=None)
main_partner(self)
name_create(self, cr, uid, name, context=None)
name_get(self, cr, uid, ids, context=None)
name_search(self, cr, uid, name, args=None, operator='ilike', context=None, limit=100)
onchange_address(self, cr, uid, ids, use_parent_address, parent_id, context=None)
onchange_state(self, state_id)
onchange_type(self, is_company)
open_commercial_entity(self, cr, uid, ids, context=None)
open_parent(self, cr, uid, ids, context=None)
unlink(self, cr, uid, ids, context=None)
update_address(self, cr, uid, ids, vals, context=None)
view_header_get(self, cr, uid, view_id, view_type, context)
write(self, vals)
No new fields.
Public methods (2)name_get(self, cr, uid, ids, context=None)
name_search(self, name, args=None, operator='ilike', limit=100)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
act_report_xml_search_view |
ir.actions.report.xml.search | ir.actions.report.xml | search | New |
act_report_xml_view |
ir.actions.report.xml | ir.actions.report.xml | form | New |
act_report_xml_view_tree |
ir.actions.report.xml.tree | ir.actions.report.xml | tree | New |
act_wizard_search_view |
ir.actions.wizard.search | ir.actions.wizard | search | New |
act_wizard_view |
ir.actions.wizard | ir.actions.wizard | form | New |
act_wizard_view_tree |
ir.actions.wizard.tree | ir.actions.wizard | tree | New |
action_view |
ir.actions.actions | ir.actions.actions | form | New |
action_view_search |
ir.actions.actions.search | ir.actions.actions | search | New |
action_view_tree |
ir.actions.actions.tree | ir.actions.actions | tree | New |
change_password_wizard_user_tree_view |
Change Password Users | change.password.user | tree | New |
change_password_wizard_view |
Change Password | change.password.wizard | form | New |
config_wizard_step_view_form |
Config Wizard Steps | ir.actions.todo | form | New |
config_wizard_step_view_search |
ir.actions.todo.select | ir.actions.todo | search | New |
edit_menu |
ir.ui.menu | tree | New | |
edit_menu_access |
ir.ui.menu | form | New | |
edit_menu_access_search |
ir.ui.menu.search | ir.ui.menu | search | New |
ir_access_view_form |
ir.model.access | form | New | |
ir_access_view_search |
ir.model.access | search | New | |
ir_access_view_tree |
ir.model.access | tree | New | |
ir_actions_todo_tree |
Config Wizard Steps | ir.actions.todo | tree | New |
ir_cron_view |
ir.cron | form | New | |
ir_cron_view_calendar |
ir.cron | calendar | New | |
ir_cron_view_search |
ir.cron | search | New | |
ir_cron_view_tree |
ir.cron | tree | New | |
ir_filters_view_form |
ir.filters | form | New | |
ir_filters_view_search |
ir.filters | search | New | |
ir_filters_view_tree |
ir.filters | tree | New | |
ir_mail_server_form |
ir.mail_server | form | New | |
ir_mail_server_list |
ir.mail_server | tree | New | |
ir_property_view |
ir.property.form | ir.property | form | New |
ir_property_view_search |
ir.property.search | ir.property | search | New |
ir_property_view_tree |
ir.property.tree | ir.property | tree | New |
module_form |
ir.module.module.form | ir.module.module | form | New |
module_tree |
ir.module.module.tree | ir.module.module | tree | New |
module_view_kanban |
Modules Kanban | ir.module.module | kanban | New |
res_config_installer |
Inheritable view for installer objects | res.config.installer | form | New |
res_config_view_base |
res.config.view.base | res.config | form | New |
res_lang_form |
res.lang.form | res.lang | form | New |
res_lang_search |
res.lang.search | res.lang | search | New |
res_lang_tree |
res.lang.tree | res.lang | tree | New |
res_partner_kanban_view |
res.partner.kanban | res.partner | kanban | New |
res_request_link-view |
res.request.link.form | res.request.link | form | New |
res_request_link_search_view |
res.request.link.search | res.request.link | search | New |
res_request_link_tree-view |
res.request.link.form | res.request.link | tree | New |
sequence_type_form_view |
ir.sequence.type | form | New | |
sequence_type_tree_view |
ir.sequence.type | tree | New | |
sequence_view |
ir.sequence | form | New | |
sequence_view_tree |
ir.sequence | tree | New | |
shortcut_form |
ir.ui.view_sc | form | New | |
shortcut_tree |
ir.ui.view_sc | tree | New | |
user_groups_view |
res.users.groups | res.users | field | Inherits view_users_form |
values_view_form_action |
ir.values.form.action | ir.values | form | New |
values_view_form_defaults |
ir.values.form.defaults | ir.values | form | New |
values_view_search_action |
ir.values.search.action | ir.values | search | New |
values_view_tree_action |
ir.values.tree.action | ir.values | tree | New |
view_attachment_form |
ir.attachment | form | New | |
view_attachment_search |
ir.attachment | search | New | |
view_attachment_tree |
ir.attachment | tree | New | |
view_base_import_language |
Import Translation | base.language.import | form | New |
view_base_language_install |
Load a Translation | base.language.install | form | New |
view_base_module_configuration_form |
Module Configuration | base.module.configuration | form | New |
view_base_module_import |
Module Import | base.module.import | form | New |
view_base_module_update |
Module Update | base.module.update | form | New |
view_base_module_upgrade |
Module Upgrade | base.module.upgrade | form | New |
view_base_module_upgrade_install |
Module Upgrade Install | base.module.upgrade | form | New |
view_company_form |
res.company.form | res.company | form | New |
view_company_tree |
res.company.tree | res.company | tree | New |
view_config_wizard_form |
Compabitiliby configuration wizard | ir.actions.configuration.wizard | form | New |
view_country_form |
res.country.form | res.country | form | New |
view_country_state_form |
res.country.state.form | res.country.state | form | New |
view_country_state_tree |
res.country.state.tree | res.country.state | tree | New |
view_country_tree |
res.country.tree | res.country | tree | New |
view_currency_form |
res.currency.form | res.currency | form | New |
view_currency_rate_type_form |
res.currency.rate.type.form | res.currency.rate.type | form | New |
view_currency_rate_type_search |
res.currency.rate.type.search | res.currency.rate.type | search | New |
view_currency_search |
res.currency.search | res.currency | search | New |
view_currency_tree |
res.currency.tree | res.currency | tree | New |
view_groups_form |
res.groups.form | res.groups | form | New |
view_groups_search |
res.groups.search | res.groups | search | New |
view_inventory_form |
multi_company.default.form | multi_company.default | form | New |
view_inventory_search |
multi_company.default.search | multi_company.default | search | New |
view_inventory_tree |
multi_company.default.tree | multi_company.default | tree | New |
view_ir_config_form |
ir.config_parameter | form | New | |
view_ir_config_list |
ir.config_parameter | tree | New | |
view_ir_config_search |
ir.config_parameter | search | New | |
view_ir_mail_server_search |
ir.mail_server | search | New | |
view_menu |
ir.ui.menu.tree | ir.ui.menu | tree | New |
view_model_constraint_form |
ir.model.constraint | form | New | |
view_model_constraint_list |
ir.model.constraint | tree | New | |
view_model_data_form |
ir.model.data | form | New | |
view_model_data_list |
ir.model.data | tree | New | |
view_model_data_search |
ir.model.data | search | New | |
view_model_fields_form |
ir.model.fields | form | New | |
view_model_fields_search |
ir.model.fields | search | New | |
view_model_fields_tree |
ir.model.fields | tree | New | |
view_model_form |
ir.model | form | New | |
view_model_menu_create |
Create Menu | wizard.ir.model.menu.create | form | New |
view_model_relation_form |
ir.model.relation | form | New | |
view_model_relation_list |
ir.model.relation | tree | New | |
view_model_search |
ir.model | search | New | |
view_model_tree |
ir.model | tree | New | |
view_module_category_form |
ir.module.category.form | ir.module.category | form | New |
view_module_category_tree |
ir.module.category.tree | ir.module.category | tree | New |
view_module_filter |
ir.module.module.list.select | ir.module.module | search | New |
view_partner_bank_form |
res.partner.bank.form | res.partner.bank | form | New |
view_partner_bank_search |
res.partner.bank.search | res.partner.bank | search | New |
view_partner_bank_tree |
res.partner.bank.tree | res.partner.bank | tree | New |
view_partner_bank_type_form |
res.partner.bank.type.form | res.partner.bank.type | form | New |
view_partner_bank_type_tree |
res.partner.bank.type.tree | res.partner.bank.type | tree | New |
view_partner_category_form |
Partner Categories | res.partner.category | form | New |
view_partner_category_list |
Partner Categories | res.partner.category | tree | New |
view_partner_category_tree |
res.partner.category.tree | res.partner.category | tree | New |
view_partner_form |
res.partner.form | res.partner | form | New |
view_partner_simple_form |
res.partner.simplified.form | res.partner | form | New |
view_partner_title_form |
res.partner.title.form | res.partner.title | form | New |
view_partner_title_tree |
res.partner.title.tree | res.partner.title | tree | New |
view_partner_tree |
res.partner.tree | res.partner | tree | New |
view_res_bank_form |
res.bank.form | res.bank | form | New |
view_res_bank_tree |
res.bank.tree | res.bank | tree | New |
view_res_partner_filter |
res.partner.select | res.partner | search | New |
view_rule_form |
ir.rule | form | New | |
view_rule_search |
ir.rule | search | New | |
view_rule_tree |
ir.rule | tree | New | |
view_sequence_search |
ir.sequence | search | New | |
view_sequence_type_search |
ir.sequence.type | search | New | |
view_server_action_form |
Server Action | ir.actions.server | form | New |
view_server_action_search |
ir.actions.server.search | ir.actions.server | search | New |
view_server_action_tree |
Server Actions | ir.actions.server | tree | New |
view_translation_form |
ir.translation | form | New | |
view_translation_search |
ir.translation | search | New | |
view_translation_tree |
ir.translation | tree | New | |
view_users_form |
res.users.form | res.users | form | New |
view_users_form_simple_modif |
res.users.preferences.form | res.users | form | New |
view_users_search |
res.users.search | res.users | search | New |
view_users_simple_form |
res.users.simplified.form | res.users | form | New |
view_users_tree |
res.users.tree | res.users | tree | New |
view_view_custom_form |
ir.ui.view.custom | form | New | |
view_view_custom_search |
ir.ui.view.custom | search | New | |
view_view_custom_tree |
ir.ui.view.custom | tree | New | |
view_view_form |
ir.ui.view | form | New | |
view_view_search |
ir.ui.view | search | New | |
view_view_tree |
ir.ui.view | tree | New | |
view_window_action_form |
ir.actions.windows.form | ir.actions.act_window | form | New |
view_window_action_search |
ir.actions.windows.search | ir.actions.act_window | search | New |
view_window_action_tree |
ir.actions.windows.tree | ir.actions.act_window | tree | New |
view_workflow_activity_form |
workflow.activity.form | workflow.activity | form | New |
view_workflow_activity_search |
workflow.activity.search | workflow.activity | search | New |
view_workflow_activity_tree |
workflow.activity.tree | workflow.activity | tree | New |
view_workflow_diagram |
workflow.diagram | workflow | diagram | New |
view_workflow_form |
workflow.form | workflow | form | New |
view_workflow_instance_form |
workflow.instance.form | workflow.instance | form | New |
view_workflow_instance_search |
workflow.instance.search | workflow.instance | search | New |
view_workflow_instance_tree |
workflow.instance.tree | workflow.instance | tree | New |
view_workflow_search |
workflow.search | workflow | search | New |
view_workflow_transition_form |
workflow.transition.form | workflow.transition | form | New |
view_workflow_transition_search |
workflow.transition.search | workflow.transition | search | New |
view_workflow_transition_tree |
workflow.transition.tree | workflow.transition | tree | New |
view_workflow_tree |
workflow.tree | workflow | tree | New |
view_workflow_workitem_form |
workflow.workitem.form | workflow.workitem | form | New |
view_workflow_workitem_search |
workflow.workitem.search | workflow.workitem | search | New |
view_workflow_workitem_tree |
workflow.workitem.tree | workflow.workitem | tree | New |
wizard_lang_export |
Export Translations | base.language.export | form | New |
wizard_update_translations |
Synchronize Terms | base.update.translations | form | New |
No HTTP endpoints found for this module.
No new fields.
Public methods (1)change_password_button(self, cr, uid, ids, context=None)
No new fields.
Public methods (2)change_password_button(self, cr, uid, id, context=None)
default_get(self, cr, uid, fields, context=None)
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
act_report_xml_search_view |
ir.actions.report.xml.search | ir.actions.report.xml | search | New |
act_report_xml_view |
ir.actions.report.xml | ir.actions.report.xml | form | New |
act_report_xml_view_tree |
ir.actions.report.xml.tree | ir.actions.report.xml | tree | New |
act_wizard_search_view |
ir.actions.wizard.search | ir.actions.wizard | search | New |
act_wizard_view |
ir.actions.wizard | ir.actions.wizard | form | New |
act_wizard_view_tree |
ir.actions.wizard.tree | ir.actions.wizard | tree | New |
action_view |
ir.actions.actions | ir.actions.actions | form | New |
action_view_search |
ir.actions.actions.search | ir.actions.actions | search | New |
action_view_tree |
ir.actions.actions.tree | ir.actions.actions | tree | New |
config_wizard_step_view_form |
Config Wizard Steps | ir.actions.todo | form | New |
config_wizard_step_view_search |
ir.actions.todo.select | ir.actions.todo | search | New |
contacts_kanban_view |
res.partner.address.kanban | res.partner.address | kanban | New |
edit_menu |
ir.ui.menu.tree | ir.ui.menu | tree | New |
edit_menu_access |
ir.ui.menu.form2 | ir.ui.menu | form | New |
edit_menu_access_search |
ir.ui.menu.search | ir.ui.menu | search | New |
ir_access_view_form |
ir.model.access.form | ir.model.access | form | New |
ir_access_view_search |
ir.model.access.search | ir.model.access | search | New |
ir_access_view_tree |
ir.model.access.tree | ir.model.access | tree | New |
ir_actions_todo_category_form |
ir.actions.todo.category.form | ir.actions.todo.category | form | New |
ir_actions_todo_category_tree |
ir.actions.todo.category.tree | ir.actions.todo.category | tree | New |
ir_actions_todo_tree |
Config Wizard Steps | ir.actions.todo | tree | New |
ir_cron_view |
ir.cron.form | ir.cron | form | New |
ir_cron_view_calendar |
ir.cron.calendar | ir.cron | calendar | New |
ir_cron_view_search |
ir.cron.search | ir.cron | search | New |
ir_cron_view_tree |
ir.cron.tree | ir.cron | tree | New |
ir_filters_view_form |
ir.filters.form | ir.filters | form | New |
ir_filters_view_search |
ir.filters.search | ir.filters | search | New |
ir_filters_view_tree |
ir.filters.tree | ir.filters | tree | New |
ir_mail_server_form |
ir.mail.server.form | ir.mail_server | form | New |
ir_mail_server_list |
ir.mail.server.list | ir.mail_server | tree | New |
ir_property_view |
ir.property.form | ir.property | form | New |
ir_property_view_search |
ir.property.search | ir.property | search | New |
ir_property_view_tree |
ir.property.tree | ir.property | tree | New |
module_form |
ir.module.module.form | ir.module.module | form | New |
module_tree |
ir.module.module.tree | ir.module.module | tree | New |
module_view_kanban |
Modules Kanban | ir.module.module | kanban | New |
publisher_warranty_contract_add_wizard |
publisher_warranty.contract.add.wizard | publisher_warranty.contract.wizard | form | New |
publisher_warranty_contract_form_view |
publisher_warranty.contract.form | publisher_warranty.contract | form | New |
publisher_warranty_contract_search_view |
publisher_warranty.contract.search | publisher_warranty.contract | search | New |
publisher_warranty_contract_tree_view |
publisher_warranty.contract.tree | publisher_warranty.contract | tree | New |
publisher_warranty_contract_view_calendar |
publisher_warranty.contract.calendar | publisher_warranty.contract | calendar | New |
res_config_installer |
Inheritable view for installer objects | res.config.installer | form | New |
res_config_view_base |
res.config.view.base | res.config | form | New |
res_lang_form |
res.lang.form | res.lang | form | New |
res_lang_search |
res.lang.search | res.lang | search | New |
res_lang_tree |
res.lang.tree | res.lang | tree | New |
res_log_form |
res.log.form | res.log | form | New |
res_log_search |
res.log.search | res.log | search | New |
res_log_tree |
res.log.tree | res.log | tree | New |
res_partner_event-wopartner-view_form |
res.partner.event.form | res.partner.event | form | New |
res_partner_event-wopartner-view_tree |
res.partner.event.tree | res.partner.event | tree | New |
res_partner_kanban_view |
RES - PARTNER KANBAN | res.partner | kanban | New |
res_request-view |
res.request.form | res.request | form | New |
res_request_calendar_view |
Request - Calendar | res.request | calendar | New |
res_request_calendar_view |
res.request.calendar | res.request | calendar | New |
res_request_history_form-view |
res.request.history.form | res.request.history | form | New |
res_request_history_tree-view |
res.request.history.tree | res.request.history | tree | New |
res_request_link-view |
res.request.link.form | res.request.link | form | New |
res_request_link_search_view |
res.request.link.search | res.request.link | search | New |
res_request_link_tree-view |
res.request.link.form | res.request.link | tree | New |
res_request_search_view |
res.request.search | res.request | search | New |
res_request_tree-view |
res.request.tree | res.request | tree | New |
res_widget_form |
res.widget.form | res.widget | form | New |
res_widget_tree |
res.widget.tree | res.widget | tree | New |
res_widget_user_form |
res.widget.user.form | res.widget.user | form | New |
res_widget_user_tree |
res.widget.user.tree | res.widget.user | tree | New |
sequence_type_form_view |
ir.sequence.type.form | ir.sequence.type | form | New |
sequence_type_tree_view |
ir.sequence.type.tree | ir.sequence.type | tree | New |
sequence_view |
ir.sequence.form | ir.sequence | form | New |
sequence_view_tree |
ir.sequence.tree | ir.sequence | tree | New |
shortcut_form |
ir.ui.view_sc | ir.ui.view_sc | form | New |
shortcut_tree |
ir.ui.view_sc | ir.ui.view_sc | tree | New |
user_groups_view |
res.users.groups | res.users | field | Inherits view_users_form |
values_view_form_action |
ir.values.form.action | ir.values | form | New |
values_view_form_defaults |
ir.values.form.defaults | ir.values | form | New |
values_view_search_action |
ir.values.search.action | ir.values | search | New |
values_view_tree_action |
ir.values.tree.action | ir.values | tree | New |
view_attachment_form |
ir.attachment.view | ir.attachment | form | New |
view_attachment_search |
ir.attachment.search | ir.attachment | search | New |
view_attachment_tree |
ir.attachment.view.tree | ir.attachment | tree | New |
view_base_import_language |
Import Translation | base.language.import | form | New |
view_base_language_install |
Load Official Translation | base.language.install | form | New |
view_base_module_configuration_form |
Module Configuration | base.module.configuration | form | New |
view_base_module_import |
Module Import | base.module.import | form | New |
view_base_module_scan |
Module Scan | base.module.scan | form | New |
view_base_module_update |
Module Update | base.module.update | form | New |
view_base_module_upgrade |
Module Upgrade | base.module.upgrade | form | New |
view_base_module_upgrade_install |
Module Upgrade Install | base.module.upgrade | form | New |
view_company_form |
res.company.form | res.company | form | New |
view_company_tree |
res.company.tree | res.company | tree | New |
view_config_wizard_form |
Compabitiliby configuration wizard | ir.actions.configuration.wizard | form | New |
view_country_form |
res.country.form | res.country | form | New |
view_country_state_form |
res.country.state.form | res.country.state | form | New |
view_country_state_tree |
res.country.state.tree | res.country.state | tree | New |
view_country_tree |
res.country.tree | res.country | tree | New |
view_currency_form |
res.currency.form | res.currency | form | New |
view_currency_rate_type_form |
res.currency.rate.type.form | res.currency.rate.type | form | New |
view_currency_rate_type_search |
res.currency.rate.type.search | res.currency.rate.type | search | New |
view_currency_search |
res.currency.search | res.currency | search | New |
view_currency_tree |
res.currency.tree | res.currency | tree | New |
view_groups_form |
res.groups.form | res.groups | form | New |
view_inventory_form |
multi_company.default.form | multi_company.default | form | New |
view_inventory_search |
multi_company.default.search | multi_company.default | search | New |
view_inventory_tree |
multi_company.default.tree | multi_company.default | tree | New |
view_ir_config_form |
ir.config_parameter.form | ir.config_parameter | form | New |
view_ir_config_list |
ir.config_parameter.list | ir.config_parameter | tree | New |
view_ir_config_search |
ir.config_parameter.search | ir.config_parameter | search | New |
view_ir_mail_server_search |
ir.mail.server.search | ir.mail_server | search | New |
view_menu |
ir.ui.menu.tree | ir.ui.menu | tree | New |
view_model_data_form |
ir.model.data.form | ir.model.data | form | New |
view_model_data_list |
ir.model.data.list | ir.model.data | tree | New |
view_model_data_search |
ir.model.data.search | ir.model.data | search | New |
view_model_fields_form |
ir.model.fields.form | ir.model.fields | form | New |
view_model_fields_search |
ir.model.fields.search | ir.model.fields | search | New |
view_model_fields_tree |
ir.model.fields.tree | ir.model.fields | tree | New |
view_model_form |
ir.model.form | ir.model | form | New |
view_model_menu_create |
Create Menu | wizard.ir.model.menu.create | form | New |
view_model_search |
ir.model.search | ir.model | search | New |
view_model_tree |
ir.model.tree | ir.model | tree | New |
view_module_category_form |
ir.module.category.form | ir.module.category | form | New |
view_module_category_tree |
ir.module.category.tree | ir.module.category | tree | New |
view_module_filter |
ir.module.module.list.select | ir.module.module | search | New |
view_partner_address_form1 |
res.partner.address.form1 | res.partner.address | form | New |
view_partner_address_form2 |
res.partner.address.form2 | res.partner.address | form | New |
view_partner_address_tree |
res.partner.address.tree | res.partner.address | tree | New |
view_partner_bank_form |
res.partner.bank.form | res.partner.bank | form | New |
view_partner_bank_search |
res.partner.bank.search | res.partner.bank | search | New |
view_partner_bank_tree |
res.partner.bank.tree | res.partner.bank | tree | New |
view_partner_bank_type_form |
res.partner.bank.type.form | res.partner.bank.type | form | New |
view_partner_bank_type_tree |
res.partner.bank.type.tree | res.partner.bank.type | tree | New |
view_partner_category_form |
Partner Categories | res.partner.category | form | New |
view_partner_category_list |
Partner Categories | res.partner.category | tree | New |
view_partner_category_tree |
res.partner.category.tree | res.partner.category | tree | New |
view_partner_clear_ids |
Clear IDs | partner.clear.ids | form | New |
view_partner_form |
res.partner.form | res.partner | form | New |
view_partner_mass_mail |
Mass Mailing | partner.massmail.wizard | form | New |
view_partner_sms_send |
Send SMS | partner.sms.send | form | New |
view_partner_title_form |
res.partner.title.form | res.partner.title | form | New |
view_partner_title_tree |
res.partner.title.tree | res.partner.title | tree | New |
view_partner_tree |
res.partner.tree | res.partner | tree | New |
view_partner_wizard_ean_check |
Ean check | partner.wizard.ean.check | form | New |
view_payterm_form |
res.payterm | res.payterm | form | New |
view_res_bank_form |
res.bank.form | res.bank | form | New |
view_res_bank_tree |
res.bank.tree | res.bank | tree | New |
view_res_partner_address_filter |
res.partner.address.select | res.partner.address | search | New |
view_res_partner_filter |
res.partner.select | res.partner | search | New |
view_res_widget_search |
res.widget.search | res.widget | search | New |
view_res_widget_wizard |
Homepage Widgets Management | res.widget.wizard | form | New |
view_rule_form |
Record rules | ir.rule | form | New |
view_rule_search |
Record rules | ir.rule | search | New |
view_rule_tree |
Record rules | ir.rule | tree | New |
view_sequence_search |
ir.sequence.search | ir.sequence | search | New |
view_sequence_type_search |
ir.sequence.type.search | ir.sequence.type | search | New |
view_server_action_form |
Server Action | ir.actions.server | form | New |
view_server_action_search |
ir.actions.server.search | ir.actions.server | search | New |
view_server_action_tree |
Server Actions | ir.actions.server | tree | New |
view_translation_form |
Translations | ir.translation | form | New |
view_translation_search |
Translations | ir.translation | search | New |
view_translation_tree |
Translations | ir.translation | tree | New |
view_users_form |
res.users.form | res.users | form | New |
view_users_form_simple_modif |
res.users.preferences.form | res.users | form | New |
view_users_search |
res.users.search | res.users | search | New |
view_users_tree |
res.users.tree | res.users | tree | New |
view_view_custom_form |
ir.ui.view.custom.form | ir.ui.view.custom | form | New |
view_view_custom_search |
ir.ui.view.custom.search | ir.ui.view.custom | search | New |
view_view_custom_tree |
ir.ui.view.custom.tree | ir.ui.view.custom | tree | New |
view_view_form |
ir.ui.view | ir.ui.view | form | New |
view_view_search |
ir.ui.view.search | ir.ui.view | search | New |
view_view_tree |
ir.ui.view.tree | ir.ui.view | tree | New |
view_window_action_form |
ir.actions.windows.form | ir.actions.act_window | form | New |
view_window_action_search |
ir.actions.windows.search | ir.actions.act_window | search | New |
view_window_action_tree |
ir.actions.windows.tree | ir.actions.act_window | tree | New |
view_workflow_activity_form |
workflow.activity.form | workflow.activity | form | New |
view_workflow_activity_search |
workflow.activity.search | workflow.activity | search | New |
view_workflow_activity_tree |
workflow.activity.tree | workflow.activity | tree | New |
view_workflow_diagram |
workflow.diagram | workflow | diagram | New |
view_workflow_form |
workflow.form | workflow | form | New |
view_workflow_instance_form |
workflow.instance.form | workflow.instance | form | New |
view_workflow_instance_search |
workflow.instance.search | workflow.instance | search | New |
view_workflow_instance_tree |
workflow.instance.tree | workflow.instance | tree | New |
view_workflow_search |
workflow.search | workflow | search | New |
view_workflow_transition_form |
workflow.transition.form | workflow.transition | form | New |
view_workflow_transition_search |
workflow.transition.search | workflow.transition | search | New |
view_workflow_transition_tree |
workflow.transition.tree | workflow.transition | tree | New |
view_workflow_tree |
workflow.tree | workflow | tree | New |
view_workflow_workitem_form |
workflow.workitem.form | workflow.workitem | form | New |
view_workflow_workitem_search |
workflow.workitem.search | workflow.workitem | search | New |
view_workflow_workitem_tree |
workflow.workitem.tree | workflow.workitem | tree | New |
wizard_lang_export |
Export Translations | base.language.export | form | New |
wizard_update_translations |
Synchronize Terms | base.update.translations | form | New |
No HTTP endpoints found for this module.
No models found for this module.