[MERGE] forward port branch saas-11.4 up to 1199451606
This commit is contained in:
@@ -70,7 +70,6 @@ You could use this simplified accounting in case you work with an (external) acc
|
||||
'views/account_onboarding_templates.xml',
|
||||
'wizard/account_report_tax_view.xml',
|
||||
'views/report_tax.xml',
|
||||
'views/res_users_views.xml',
|
||||
'data/service_cron_reverse.xml',
|
||||
'views/account_fiscal_year_view.xml',
|
||||
'views/account_incoterms_view.xml',
|
||||
|
||||
@@ -15,7 +15,6 @@ from . import company
|
||||
from . import res_config_settings
|
||||
from . import account_cash_rounding
|
||||
from . import reconciliation_widget
|
||||
from . import res_users
|
||||
from . import account_incoterms
|
||||
from . import digest
|
||||
from . import account_invoice_import_wizard
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class ResUsers(models.Model):
|
||||
_inherit = 'res.users'
|
||||
|
||||
has_group_show_line_subtotals_tax_excluded = fields.Boolean(
|
||||
"Show line subtotals without taxes (B2B)",
|
||||
compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
group_xml_id='account.group_show_line_subtotals_tax_excluded')
|
||||
|
||||
has_group_show_line_subtotals_tax_included = fields.Boolean(
|
||||
"Show line subtotals with taxes included (B2C)",
|
||||
compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
group_xml_id='account.group_show_line_subtotals_tax_included')
|
||||
|
||||
has_group_warning_account = fields.Boolean(
|
||||
'A warning can be set on a partner (Account)', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
group_xml_id='account.group_warning_account')
|
||||
|
||||
has_group_cash_rounding = fields.Boolean(
|
||||
'Allow the cash rounding management', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
group_xml_id='account.group_cash_rounding')
|
||||
|
||||
group_account_user = fields.Selection(
|
||||
selection=lambda self: self._get_group_selection('base.module_category_accounting_and_finance'),
|
||||
string='Accounting', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
category_xml_id='base.module_category_accounting_and_finance')
|
||||
@@ -32,6 +32,7 @@
|
||||
|
||||
<record id="group_account_user" model="res.groups">
|
||||
<field name="name">Show Full Accounting Features</field>
|
||||
<field name="category_id" ref="base.module_category_hidden"/>
|
||||
</record>
|
||||
|
||||
<record id="group_account_manager" model="res.groups">
|
||||
@@ -51,10 +52,12 @@
|
||||
|
||||
<record id="group_warning_account" model="res.groups">
|
||||
<field name="name">A warning can be set on a partner (Account)</field>
|
||||
<field name="category_id" ref="base.module_category_hidden"/>
|
||||
</record>
|
||||
|
||||
<record id="group_cash_rounding" model="res.groups">
|
||||
<field name="name">Allow the cash rounding management</field>
|
||||
<field name="category_id" ref="base.module_category_hidden"/>
|
||||
</record>
|
||||
|
||||
<record id="group_fiscal_year" model="res.groups">
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<record id="res_users_view_form" model="ir.ui.view">
|
||||
<field name="name">res.users.form.account.inherit</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="inherit_id" ref="base.view_users_form"/>
|
||||
<field name="priority">40</field>
|
||||
<field name="arch" type="xml">
|
||||
<group name="applications" position="inside">
|
||||
<field name='group_account_user'/>
|
||||
</group>
|
||||
<group name="technical" position="inside">
|
||||
<label for="has_group_show_line_subtotals_tax_excluded" colspan="3"/>
|
||||
<div>
|
||||
<field name='has_group_show_line_subtotals_tax_excluded' colspan="1" class="oe_inline"/>
|
||||
</div>
|
||||
<label for="has_group_show_line_subtotals_tax_included" colspan="3"/>
|
||||
<div>
|
||||
<field name='has_group_show_line_subtotals_tax_included' colspan="1" class="oe_inline"/>
|
||||
</div>
|
||||
<label for="has_group_warning_account" colspan="3"/>
|
||||
<div>
|
||||
<field name='has_group_warning_account' colspan="1" class="oe_inline"/>
|
||||
</div>
|
||||
<label for="has_group_cash_rounding" colspan="3"/>
|
||||
<div>
|
||||
<field name='has_group_cash_rounding' colspan="1" class="oe_inline"/>
|
||||
</div>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -18,7 +18,6 @@ that have no counterpart in the general financial accounts.
|
||||
'security/analytic_security.xml',
|
||||
'security/ir.model.access.csv',
|
||||
'views/analytic_account_views.xml',
|
||||
'views/res_users_views.xml',
|
||||
],
|
||||
'demo': [
|
||||
'data/analytic_demo.xml',
|
||||
|
||||
@@ -2,4 +2,3 @@
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from . import analytic_account
|
||||
from . import res_users
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class ResUsers(models.Model):
|
||||
_inherit = 'res.users'
|
||||
|
||||
has_group_analytic_accounting = fields.Boolean(
|
||||
'Analytic Accounting', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
group_xml_id='analytic.group_analytic_accounting')
|
||||
|
||||
has_group_analytic_tags = fields.Boolean(
|
||||
'Analytic Accounting Tags', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
group_xml_id='analytic.group_analytic_tags')
|
||||
@@ -34,10 +34,12 @@
|
||||
|
||||
<record id="group_analytic_accounting" model="res.groups">
|
||||
<field name="name">Analytic Accounting</field>
|
||||
<field name="category_id" ref="base.module_category_hidden"/>
|
||||
</record>
|
||||
|
||||
<record id="group_analytic_tags" model="res.groups">
|
||||
<field name="name">Analytic Accounting Tags</field>
|
||||
<field name="category_id" ref="base.module_category_hidden"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<record id="res_users_view_form" model="ir.ui.view">
|
||||
<field name="name">res.users.form.analytic.inherit</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="inherit_id" ref="base.view_users_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<group name="technical" position="inside">
|
||||
<label for="has_group_analytic_accounting" colspan="3"/>
|
||||
<div>
|
||||
<field name='has_group_analytic_accounting' colspan="1" class="oe_inline"/>
|
||||
</div>
|
||||
<label for="has_group_analytic_tags" colspan="3"/>
|
||||
<div>
|
||||
<field name='has_group_analytic_tags' colspan="1" class="oe_inline"/>
|
||||
</div>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -44,7 +44,6 @@
|
||||
'report/crm_activity_report_views.xml',
|
||||
'report/crm_opportunity_report_views.xml',
|
||||
'views/crm_team_views.xml',
|
||||
'views/res_users_views.xml',
|
||||
'views/digest_views.xml',
|
||||
],
|
||||
'demo': [
|
||||
|
||||
@@ -5,11 +5,8 @@ from odoo import fields, models
|
||||
|
||||
|
||||
class Users(models.Model):
|
||||
|
||||
_inherit = 'res.users'
|
||||
|
||||
target_sales_won = fields.Integer('Won in Opportunities Target')
|
||||
target_sales_done = fields.Integer('Activities Done Target')
|
||||
|
||||
has_group_use_lead = fields.Boolean(
|
||||
'Show Lead Menu', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
group_xml_id='crm.group_use_lead')
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
<record id="group_use_lead" model="res.groups">
|
||||
<field name="name">Show Lead Menu</field>
|
||||
<field name="category_id" ref="base.module_category_hidden"/>
|
||||
</record>
|
||||
|
||||
<record model="res.users" id="base.user_root">
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<record id="res_users_view_form" model="ir.ui.view">
|
||||
<field name="name">res.users.form.crm.inherit</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="inherit_id" ref="base.view_users_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<group name="technical" position="inside">
|
||||
<label for="has_group_use_lead" colspan="3"/>
|
||||
<div>
|
||||
<field name='has_group_use_lead' colspan="1" class="oe_inline"/>
|
||||
</div>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -30,8 +30,6 @@ Key Features
|
||||
'views/res_config_settings_views.xml',
|
||||
'views/event_templates.xml',
|
||||
'views/res_partner_views.xml',
|
||||
'views/res_users_views.xml',
|
||||
|
||||
],
|
||||
'demo': [
|
||||
'data/event_demo.xml',
|
||||
|
||||
@@ -5,4 +5,3 @@ from . import event
|
||||
from . import event_mail
|
||||
from . import res_config_settings
|
||||
from . import res_partner
|
||||
from . import res_users
|
||||
|
||||
@@ -3,11 +3,10 @@
|
||||
|
||||
from odoo import api, fields, models
|
||||
|
||||
|
||||
class ResPartner(models.Model):
|
||||
_inherit = 'res.partner'
|
||||
|
||||
event_count = fields.Integer("Events Count", compute='_compute_event_count', help="Number of events the partner has participated.")
|
||||
event_count = fields.Integer("Events", compute='_compute_event_count', help="Number of events the partner has participated.")
|
||||
|
||||
def _compute_event_count(self):
|
||||
if not self.user_has_groups('event.group_event_user'):
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class ResUsers(models.Model):
|
||||
_inherit = 'res.users'
|
||||
|
||||
group_event_user = fields.Selection(
|
||||
selection=lambda self: self._get_group_selection('base.module_category_event_management'),
|
||||
string='Events', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
category_xml_id='base.module_category_event_management')
|
||||
@@ -1,14 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<record id="res_users_view_form" model="ir.ui.view">
|
||||
<field name="name">res.users.form.event.inherit</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="inherit_id" ref="base.view_users_form"/>
|
||||
<field name="priority">105</field>
|
||||
<field name="arch" type="xml">
|
||||
<group name="applications" position="inside">
|
||||
<field name='group_event_user'/>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -36,7 +36,6 @@ Main Features
|
||||
'views/fleet_vehicle_cost_views.xml',
|
||||
'views/fleet_board_view.xml',
|
||||
'views/mail_activity_views.xml',
|
||||
'views/res_users_views.xml',
|
||||
'data/fleet_cars_data.xml',
|
||||
'data/fleet_data.xml',
|
||||
'data/mail_data.xml',
|
||||
|
||||
@@ -4,4 +4,3 @@
|
||||
from . import fleet_vehicle
|
||||
from . import fleet_vehicle_cost
|
||||
from . import fleet_vehicle_model
|
||||
from . import res_users
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class ResUsers(models.Model):
|
||||
_inherit = 'res.users'
|
||||
|
||||
group_fleet_user = fields.Selection(
|
||||
selection=lambda self: self._get_group_selection('fleet.module_fleet_category'),
|
||||
string='Fleet', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
category_xml_id='fleet.module_fleet_category')
|
||||
@@ -1,14 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<record id="res_users_view_form" model="ir.ui.view">
|
||||
<field name="name">res.users.form.fleet.inherit</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="inherit_id" ref="base.view_users_form"/>
|
||||
<field name="priority">100</field>
|
||||
<field name="arch" type="xml">
|
||||
<group name="applications" position="inside">
|
||||
<field name='group_fleet_user'/>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -27,7 +27,6 @@
|
||||
'views/hr_views.xml',
|
||||
'views/hr_templates.xml',
|
||||
'views/res_config_settings_views.xml',
|
||||
'views/res_users_views.xml',
|
||||
'data/hr_data.xml',
|
||||
],
|
||||
'demo': [
|
||||
|
||||
@@ -9,12 +9,6 @@ class User(models.Model):
|
||||
|
||||
employee_ids = fields.One2many('hr.employee', 'user_id', string='Related employees')
|
||||
|
||||
group_hr_user = fields.Selection(
|
||||
selection=lambda self: self._get_group_selection('base.module_category_human_resources'),
|
||||
string="Employees", compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
category_xml_id='base.module_category_human_resources',
|
||||
help='Officer: The user will be able to approve document created by employees.\nManager: The user will have access to the human resources configuration as well as statistic reports.')
|
||||
|
||||
@api.multi
|
||||
def write(self, vals):
|
||||
""" Synchronize user and its related employee """
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<record id="res_users_view_form" model="ir.ui.view">
|
||||
<field name="name">res.users.form.hr.inherit</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="inherit_id" ref="base.view_users_form"/>
|
||||
<field name="priority">50</field>
|
||||
<field name="arch" type="xml">
|
||||
<group name="applications" position="inside">
|
||||
<field name="group_hr_user"/>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -26,7 +26,6 @@ actions(Check in/Check out) performed by them.
|
||||
'views/hr_department_view.xml',
|
||||
'views/hr_employee_view.xml',
|
||||
'views/res_config_settings_views.xml',
|
||||
'views/res_users_views.xml',
|
||||
],
|
||||
'demo': [
|
||||
'data/hr_attendance_demo.xml'
|
||||
|
||||
@@ -3,4 +3,3 @@
|
||||
from . import res_config_settings
|
||||
from . import hr_attendance
|
||||
from . import hr_employee
|
||||
from . import res_users
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class ResUsers(models.Model):
|
||||
_inherit = 'res.users'
|
||||
|
||||
has_group_hr_attendance = fields.Boolean(
|
||||
'Manual Attendance', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
group_xml_id='hr_attendance.group_hr_attendance',
|
||||
help='The user will gain access to the human resources attendance menu, enabling him to manage his own attendance.')
|
||||
|
||||
has_group_hr_attendance_use_pin = fields.Boolean(
|
||||
'Enable PIN use', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
group_xml_id='hr_attendance.group_hr_attendance_use_pin',
|
||||
help='The user will have to enter his PIN to check in and out manually at the company screen.')
|
||||
|
||||
group_hr_attendance_user = fields.Selection(
|
||||
selection=lambda self: self._get_group_selection('base.module_category_hr_attendance'),
|
||||
string='Attendance', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
category_xml_id='base.module_category_hr_attendance')
|
||||
@@ -34,6 +34,7 @@
|
||||
|
||||
<record id="group_hr_attendance_use_pin" model="res.groups">
|
||||
<field name="name">Enable PIN use</field>
|
||||
<field name="category_id" ref="base.module_category_hidden"/>
|
||||
<field name="comment">The user will have to enter his PIN to check in and out manually at the company screen.</field>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<record id="res_users_view_form" model="ir.ui.view">
|
||||
<field name="name">res.users.form.hr_attendance.inherit</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="inherit_id" ref="base.view_users_form"/>
|
||||
<field name="priority">80</field>
|
||||
<field name="arch" type="xml">
|
||||
<group name="applications" position="inside">
|
||||
<field name='group_hr_attendance_user'/>
|
||||
</group>
|
||||
<group name="technical" position="inside">
|
||||
<label for="has_group_hr_attendance" colspan="3"/>
|
||||
<div>
|
||||
<field name='has_group_hr_attendance' colspan="1" class="oe_inline"/>
|
||||
</div>
|
||||
<label for="has_group_hr_attendance_use_pin" colspan="3"/>
|
||||
<div>
|
||||
<field name='has_group_hr_attendance_use_pin' colspan="1" class="oe_inline"/>
|
||||
</div>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -23,7 +23,6 @@ You can assign several contracts per employee.
|
||||
'security/ir.model.access.csv',
|
||||
'data/hr_contract_data.xml',
|
||||
'views/hr_contract_views.xml',
|
||||
'views/res_users_views.xml',
|
||||
],
|
||||
'demo': [],
|
||||
'installable': True,
|
||||
|
||||
@@ -2,4 +2,3 @@
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from . import hr_contract
|
||||
from . import res_users
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class ResUsers(models.Model):
|
||||
_inherit = 'res.users'
|
||||
|
||||
group_hr_contract_user = fields.Selection(
|
||||
selection=lambda self: self._get_group_selection('base.module_category_hr_contract'),
|
||||
string='Contracts', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
category_xml_id='base.module_category_hr_contract')
|
||||
@@ -1,14 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<record id="res_users_view_form" model="ir.ui.view">
|
||||
<field name="name">res.users.form.hr_contract.inherit</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="inherit_id" ref="base.view_users_form"/>
|
||||
<field name="priority">51</field>
|
||||
<field name="arch" type="xml">
|
||||
<group name="applications" position="inside">
|
||||
<field name='group_hr_contract_user'/>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -43,7 +43,6 @@ This module also uses analytic accounting and is compatible with the invoice on
|
||||
'views/assets.xml',
|
||||
'views/res_config_settings_views.xml',
|
||||
'views/account_journal_dashboard.xml',
|
||||
'views/res_users_views.xml',
|
||||
],
|
||||
'demo': ['data/hr_expense_demo.xml'],
|
||||
'installable': True,
|
||||
|
||||
@@ -7,4 +7,3 @@ from . import hr_expense
|
||||
from . import product_template
|
||||
from . import res_config_settings
|
||||
from . import account_journal_dashboard
|
||||
from . import res_users
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class ResUsers(models.Model):
|
||||
_inherit = 'res.users'
|
||||
|
||||
group_hr_expense_user = fields.Selection(
|
||||
selection=lambda self: self._get_group_selection('base.module_category_hr_expense'),
|
||||
string='Expenses', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
category_xml_id='base.module_category_hr_expense')
|
||||
@@ -15,7 +15,7 @@ class TestExpenseCommon(TestAccountNoChartCommon):
|
||||
# The user manager is only expense manager
|
||||
user_group_manager = cls.env.ref('hr_expense.group_hr_expense_manager')
|
||||
cls.user_manager.write({
|
||||
'groups_id': [(6, 0, [user_group_manager.id])],
|
||||
'groups_id': [(6, 0, [user_group_manager.id, cls.env.ref('base.group_user').id])],
|
||||
})
|
||||
|
||||
# create employee
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<record id="res_users_view_form" model="ir.ui.view">
|
||||
<field name="name">res.users.form.hr_expense.inherit</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="inherit_id" ref="base.view_users_form"/>
|
||||
<field name="priority">65</field>
|
||||
<field name="arch" type="xml">
|
||||
<group name="applications" position="inside">
|
||||
<field name='group_hr_expense_user'/>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -38,7 +38,6 @@ A synchronization with an internal agenda (Meetings of the CRM module) is also p
|
||||
'views/hr_leave_type_views.xml',
|
||||
'views/hr_leave_allocation_views.xml',
|
||||
'views/mail_activity_views.xml',
|
||||
'views/res_users_views.xml',
|
||||
|
||||
'wizard/hr_holidays_summary_department_views.xml',
|
||||
'wizard/hr_holidays_summary_employees_views.xml',
|
||||
|
||||
@@ -6,4 +6,3 @@ from . import hr
|
||||
from . import hr_leave
|
||||
from . import hr_leave_allocation
|
||||
from . import hr_leave_type
|
||||
from . import res_users
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class ResUsers(models.Model):
|
||||
_inherit = 'res.users'
|
||||
|
||||
group_hr_holidays_user = fields.Selection(
|
||||
selection=lambda self: self._get_group_selection('base.module_category_hr_holidays'),
|
||||
string='Leaves', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
category_xml_id='base.module_category_hr_holidays')
|
||||
@@ -1,14 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<record id="res_users_view_form" model="ir.ui.view">
|
||||
<field name="name">res.users.form.hr_holidays.inherit</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="inherit_id" ref="base.view_users_form"/>
|
||||
<field name="priority">55</field>
|
||||
<field name="arch" type="xml">
|
||||
<group name="applications" position="inside">
|
||||
<field name='group_hr_holidays_user'/>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -28,7 +28,6 @@
|
||||
'views/report_contributionregister_templates.xml',
|
||||
'views/report_payslip_templates.xml',
|
||||
'views/report_payslipdetails_templates.xml',
|
||||
'views/res_users_views.xml',
|
||||
],
|
||||
'demo': ['data/hr_payroll_demo.xml'],
|
||||
}
|
||||
|
||||
@@ -6,4 +6,3 @@ from . import hr_employee
|
||||
from . import res_config_settings
|
||||
from . import hr_salary_rule
|
||||
from . import hr_payslip
|
||||
from . import res_users
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class ResUsers(models.Model):
|
||||
_inherit = 'res.users'
|
||||
|
||||
group_hr_payroll_user = fields.Selection(
|
||||
selection=lambda self: self._get_group_selection('base.module_category_hr_payroll'),
|
||||
string='Payroll', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
category_xml_id='base.module_category_hr_payroll')
|
||||
@@ -1,14 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<record id="res_users_view_form" model="ir.ui.view">
|
||||
<field name="name">res.users.form.hr_payroll.inherit</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="inherit_id" ref="base.view_users_form"/>
|
||||
<field name="priority">95</field>
|
||||
<field name="arch" type="xml">
|
||||
<group name="applications" position="inside">
|
||||
<field name='group_hr_payroll_user'/>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -29,7 +29,6 @@
|
||||
'views/hr_department_views.xml',
|
||||
'views/hr_job_views.xml',
|
||||
'views/mail_activity_views.xml',
|
||||
'views/res_users_views.xml',
|
||||
'views/digest_views.xml',
|
||||
],
|
||||
'demo': [
|
||||
|
||||
@@ -4,5 +4,4 @@ from . import hr_employee
|
||||
from . import hr_job
|
||||
from . import res_config_settings
|
||||
from . import calendar
|
||||
from . import res_users
|
||||
from . import digest
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class ResUsers(models.Model):
|
||||
_inherit = 'res.users'
|
||||
|
||||
group_hr_recruitment_user = fields.Selection(
|
||||
selection=lambda self: self._get_group_selection('base.module_category_hr_recruitment'),
|
||||
string='Recruitment', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
category_xml_id='base.module_category_hr_recruitment')
|
||||
@@ -1,14 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<record id="res_users_view_form" model="ir.ui.view">
|
||||
<field name="name">res.users.form.hr_recruitment.inherit</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="inherit_id" ref="base.view_users_form"/>
|
||||
<field name="priority">60</field>
|
||||
<field name="arch" type="xml">
|
||||
<group name="applications" position="inside">
|
||||
<field name='group_hr_recruitment_user'/>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -32,7 +32,6 @@ up a management by affair.
|
||||
'report/hr_timesheet_report_view.xml',
|
||||
'report/report_timesheet_templates.xml',
|
||||
'views/hr_views.xml',
|
||||
'views/res_users_views.xml',
|
||||
'data/hr_timesheet_data.xml',
|
||||
],
|
||||
'demo': [
|
||||
|
||||
@@ -8,5 +8,4 @@ from . import ir_http
|
||||
from . import res_company
|
||||
from . import res_config_settings
|
||||
from . import project
|
||||
from . import res_users
|
||||
from . import uom
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class ResUsers(models.Model):
|
||||
_inherit = 'res.users'
|
||||
|
||||
group_hr_timesheet_user = fields.Selection(
|
||||
selection=lambda self: self._get_group_selection('base.module_category_hr_timesheet'),
|
||||
string='Timesheets', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
category_xml_id='base.module_category_hr_timesheet')
|
||||
@@ -1,14 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<record id="res_users_view_form" model="ir.ui.view">
|
||||
<field name="name">res.users.form.hr_timesheet.inherit</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="inherit_id" ref="base.view_users_form"/>
|
||||
<field name="priority">70</field>
|
||||
<field name="arch" type="xml">
|
||||
<group name="applications" position="inside">
|
||||
<field name='group_hr_timesheet_user'/>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -25,7 +25,6 @@ Help your customers with this chat, and analyse their feedback.
|
||||
"views/mail_channel_views.xml",
|
||||
"views/im_livechat_channel_views.xml",
|
||||
"views/im_livechat_channel_templates.xml",
|
||||
"views/res_users_views.xml",
|
||||
"report/im_livechat_report_channel_views.xml",
|
||||
"report/im_livechat_report_operator_views.xml"
|
||||
],
|
||||
|
||||
@@ -3,4 +3,3 @@ from . import im_livechat_channel
|
||||
from . import ir_autovacuum
|
||||
from . import mail_channel
|
||||
from . import rating
|
||||
from . import res_users
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class ResUsers(models.Model):
|
||||
_inherit = 'res.users'
|
||||
|
||||
group_im_livechat_user = fields.Selection(
|
||||
selection=lambda self: self._get_group_selection('im_livechat.module_category_im_livechat'),
|
||||
string='Live Support', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
category_xml_id='im_livechat.module_category_im_livechat',
|
||||
help='User: The user will be able to join support channels.\nManager: The user will be able to delete support channels.')
|
||||
@@ -1,14 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<record id="res_users_view_form" model="ir.ui.view">
|
||||
<field name="name">res.users.form.im_livechat.inherit</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="inherit_id" ref="base.view_users_form"/>
|
||||
<field name="priority">125</field>
|
||||
<field name="arch" type="xml">
|
||||
<group name="applications" position="inside">
|
||||
<field name='group_im_livechat_user'/>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -2,4 +2,3 @@
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from . import mail_bot
|
||||
from . import res_users
|
||||
|
||||
@@ -29,7 +29,6 @@ If you want to save your employees' time and avoid them to always have coins in
|
||||
'views/lunch_templates.xml',
|
||||
'wizard/lucky_order_view.xml',
|
||||
'views/lunch_views.xml',
|
||||
'views/res_users_views.xml',
|
||||
'data/lunch_data.xml',
|
||||
],
|
||||
'demo': ['data/lunch_demo.xml'],
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import lunch
|
||||
from . import res_users
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class ResUsers(models.Model):
|
||||
_inherit = 'res.users'
|
||||
|
||||
group_lunch_user = fields.Selection(
|
||||
selection=lambda self: self._get_group_selection('lunch.module_lunch_category'),
|
||||
string='Lunch', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
category_xml_id='lunch.module_lunch_category')
|
||||
@@ -1,14 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<record id="res_users_view_form" model="ir.ui.view">
|
||||
<field name="name">res.users.form.lunch.inherit</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="inherit_id" ref="base.view_users_form"/>
|
||||
<field name="priority">90</field>
|
||||
<field name="arch" type="xml">
|
||||
<group name="applications" position="inside">
|
||||
<field name='group_lunch_user'/>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -18,7 +18,6 @@
|
||||
'views/maintenance_views.xml',
|
||||
'views/maintenance_templates.xml',
|
||||
'views/mail_activity_views.xml',
|
||||
'views/res_users_views.xml',
|
||||
'data/maintenance_cron.xml',
|
||||
],
|
||||
'demo': ['data/maintenance_demo.xml'],
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import maintenance
|
||||
from . import res_users
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class ResUsers(models.Model):
|
||||
_inherit = 'res.users'
|
||||
|
||||
has_group_equipment_manager = fields.Boolean(
|
||||
'Equipment Manager', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
group_xml_id='maintenance.group_equipment_manager',
|
||||
help='The user will be able to manage equipments.')
|
||||
@@ -1,16 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<record id="res_users_view_form" model="ir.ui.view">
|
||||
<field name="name">res.users.form.maintenance.inherit</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="inherit_id" ref="base.view_users_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<group name="technical" position="inside">
|
||||
<label for="has_group_equipment_manager" colspan="3"/>
|
||||
<div>
|
||||
<field name='has_group_equipment_manager' colspan="1" class="oe_inline"/>
|
||||
</div>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -37,7 +37,6 @@
|
||||
'views/themes_templates.xml',
|
||||
'views/snippets_themes.xml',
|
||||
'views/snippets_themes_options.xml',
|
||||
'views/res_users_views.xml',
|
||||
'views/mass_mailing_blacklist_views.xml',
|
||||
'views/unsubscribe_templates.xml',
|
||||
],
|
||||
|
||||
@@ -8,4 +8,3 @@ from . import mail_thread
|
||||
from . import res_config_settings
|
||||
from . import mass_mailing_report
|
||||
from . import link_tracker
|
||||
from . import res_users
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class ResUsers(models.Model):
|
||||
_inherit = 'res.users'
|
||||
|
||||
group_mass_mailing_user = fields.Selection(
|
||||
selection=lambda self: self._get_group_selection('base.module_category_mass_mailing'),
|
||||
string='Email Marketing', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
category_xml_id='base.module_category_mass_mailing')
|
||||
|
||||
has_group_mass_mailing_campaign = fields.Boolean(
|
||||
'Manage Mass Mailing Campaigns', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
group_xml_id='mass_mailing.group_mass_mailing_campaign')
|
||||
@@ -10,6 +10,7 @@
|
||||
<!-- Group to manage campaigns -->
|
||||
<record id="group_mass_mailing_campaign" model="res.groups">
|
||||
<field name="name">Manage Mass Mailing Campaigns</field>
|
||||
<field name="category_id" ref="base.module_category_hidden"/>
|
||||
</record>
|
||||
|
||||
<data noupdate="1">
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<record id="res_users_view_form" model="ir.ui.view">
|
||||
<field name="name">res.users.form.mass_mailing.inherit</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="inherit_id" ref="base.view_users_form"/>
|
||||
<field name="priority">110</field>
|
||||
<field name="arch" type="xml">
|
||||
<group name="applications" position="inside">
|
||||
<field name='group_mass_mailing_user'/>
|
||||
</group>
|
||||
<group name="technical" position="inside">
|
||||
<label for="has_group_mass_mailing_campaign" colspan="3"/>
|
||||
<div>
|
||||
<field name='has_group_mass_mailing_campaign' colspan="1" class="oe_inline"/>
|
||||
</div>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -34,7 +34,6 @@
|
||||
'views/res_config_settings_views.xml',
|
||||
'views/mrp_templates.xml',
|
||||
'views/stock_scrap_views.xml',
|
||||
'views/res_users_views.xml',
|
||||
'report/mrp_report_views_main.xml',
|
||||
'report/mrp_report_bom_structure.xml',
|
||||
'report/mrp_production_templates.xml',
|
||||
|
||||
@@ -18,4 +18,3 @@ from . import stock_production_lot
|
||||
from . import stock_rule
|
||||
from . import stock_scrap
|
||||
from . import stock_warehouse
|
||||
from . import res_users
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class ResUsers(models.Model):
|
||||
_inherit = 'res.users'
|
||||
|
||||
has_group_mrp_routings = fields.Boolean(
|
||||
'Manage Work Order Operations', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
group_xml_id='mrp.group_mrp_routings')
|
||||
|
||||
group_mrp_user = fields.Selection(
|
||||
selection=lambda self: self._get_group_selection('base.module_category_manufacturing'),
|
||||
string='Manufacturing', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
category_xml_id='base.module_category_manufacturing')
|
||||
@@ -17,6 +17,7 @@
|
||||
|
||||
<record id="group_mrp_routings" model="res.groups">
|
||||
<field name="name">Manage Work Order Operations</field>
|
||||
<field name="category_id" ref="base.module_category_hidden"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<record id="res_users_view_form" model="ir.ui.view">
|
||||
<field name="name">res.users.form.mrp.inherit</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="inherit_id" ref="base.view_users_form"/>
|
||||
<field name="priority">25</field>
|
||||
<field name="arch" type="xml">
|
||||
<group name="applications" position="inside">
|
||||
<field name='group_mrp_user'/>
|
||||
</group>
|
||||
<group name="technical" position="inside">
|
||||
<label for="has_group_mrp_routings" colspan="3"/>
|
||||
<div>
|
||||
<field name='has_group_mrp_routings' colspan="1" class="oe_inline"/>
|
||||
</div>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -723,7 +723,7 @@ class PaymentTransaction(models.Model):
|
||||
@api.multi
|
||||
def _set_transaction_done(self):
|
||||
'''Move the transaction's payment to the done state(e.g. Paypal).'''
|
||||
if any(trans.state not in ('draft', 'authorized') for trans in self):
|
||||
if any(trans.state not in ('draft', 'authorized', 'pending') for trans in self):
|
||||
raise ValidationError(_('Only draft/authorized transaction can be posted.'))
|
||||
|
||||
self.write({'state': 'done', 'date': datetime.now().strftime(DEFAULT_SERVER_DATETIME_FORMAT)})
|
||||
|
||||
@@ -35,9 +35,9 @@
|
||||
'views/account_statement_view.xml',
|
||||
'views/account_statement_report.xml',
|
||||
'views/res_config_settings_views.xml',
|
||||
'views/res_users_views.xml',
|
||||
'views/digest_views.xml',
|
||||
'views/res_partner_view.xml',
|
||||
'views/res_users_views.xml',
|
||||
'views/report_statement.xml',
|
||||
'views/report_userlabel.xml',
|
||||
'views/report_saledetails.xml',
|
||||
|
||||
@@ -9,11 +9,6 @@ class ResUsers(models.Model):
|
||||
|
||||
pos_security_pin = fields.Char(string='Security PIN', size=32, help='A Security PIN used to protect sensible functionality in the Point of Sale')
|
||||
|
||||
group_point_of_sale_user = fields.Selection(
|
||||
selection=lambda self: self._get_group_selection('base.module_category_point_of_sale'),
|
||||
string='Point of Sale', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
category_xml_id='base.module_category_point_of_sale')
|
||||
|
||||
@api.constrains('pos_security_pin')
|
||||
def _check_pin(self):
|
||||
if self.pos_security_pin and not self.pos_security_pin.isdigit():
|
||||
|
||||
@@ -3,12 +3,8 @@
|
||||
<record id="res_users_view_form" model="ir.ui.view">
|
||||
<field name="name">res.users.form.view</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="inherit_id" ref="base.view_users_form"/>
|
||||
<field name="priority">130</field>
|
||||
<field name="inherit_id" ref="base.view_users_form" />
|
||||
<field name="arch" type="xml">
|
||||
<group name="applications" position="inside">
|
||||
<field name='group_point_of_sale_user'/>
|
||||
</group>
|
||||
<notebook position="inside">
|
||||
<page string="Point of Sale">
|
||||
<group>
|
||||
|
||||
@@ -37,7 +37,6 @@ Print product labels with barcode.
|
||||
'views/product_template_views.xml',
|
||||
'views/product_pricelist_views.xml',
|
||||
'views/res_partner_views.xml',
|
||||
'views/res_users_views.xml',
|
||||
'report/product_reports.xml',
|
||||
'report/product_pricelist_templates.xml',
|
||||
'report/product_product_templates.xml',
|
||||
|
||||
@@ -15,4 +15,3 @@ from . import product_attribute
|
||||
from . import product_pricelist
|
||||
from . import res_company
|
||||
from . import res_partner
|
||||
from . import res_users
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class ResUsers(models.Model):
|
||||
_inherit = 'res.users'
|
||||
|
||||
has_group_sale_pricelist = fields.Boolean(
|
||||
'Sales Pricelists', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
group_xml_id='product.group_sale_pricelist')
|
||||
|
||||
has_group_pricelist_item = fields.Boolean(
|
||||
'Manage Pricelist Items', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
group_xml_id='product.group_pricelist_item')
|
||||
|
||||
has_group_product_pricelist = fields.Boolean(
|
||||
'Pricelists On Product', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
group_xml_id='product.group_product_pricelist')
|
||||
|
||||
has_group_stock_packaging = fields.Boolean(
|
||||
'Manage Product Packaging', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
group_xml_id='product.group_stock_packaging')
|
||||
|
||||
has_group_product_variant = fields.Boolean(
|
||||
'Manage Product Variants', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
group_xml_id='product.group_product_variant')
|
||||
@@ -4,22 +4,27 @@
|
||||
|
||||
<record id="group_sale_pricelist" model="res.groups">
|
||||
<field name="name">Sales Pricelists</field>
|
||||
<field name="category_id" ref="base.module_category_hidden"/>
|
||||
</record>
|
||||
|
||||
<record id="group_pricelist_item" model="res.groups">
|
||||
<field name="name">Manage Pricelist Items</field>
|
||||
<field name="category_id" ref="base.module_category_hidden"/>
|
||||
</record>
|
||||
|
||||
<record id="group_product_pricelist" model="res.groups">
|
||||
<field name="name">Pricelists On Product</field>
|
||||
<field name="category_id" ref="base.module_category_hidden"/>
|
||||
</record>
|
||||
|
||||
<record id="group_stock_packaging" model="res.groups">
|
||||
<field name="name">Manage Product Packaging</field>
|
||||
<field name="category_id" ref="base.module_category_hidden"/>
|
||||
</record>
|
||||
|
||||
<record id="group_product_variant" model="res.groups">
|
||||
<field name="name">Manage Product Variants</field>
|
||||
<field name="category_id" ref="base.module_category_hidden"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<record id="res_users_view_form" model="ir.ui.view">
|
||||
<field name="name">res.users.form.product.inherit</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="inherit_id" ref="base.view_users_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<group name="technical" position="inside">
|
||||
<label for="has_group_sale_pricelist" colspan="3"/>
|
||||
<div>
|
||||
<field name='has_group_sale_pricelist' colspan="1" class="oe_inline"/>
|
||||
</div>
|
||||
<label for="has_group_pricelist_item" colspan="3"/>
|
||||
<div>
|
||||
<field name='has_group_pricelist_item' colspan="1" class="oe_inline"/>
|
||||
</div>
|
||||
<label for="has_group_product_pricelist" colspan="3"/>
|
||||
<div>
|
||||
<field name='has_group_product_pricelist' colspan="1" class="oe_inline"/>
|
||||
</div>
|
||||
<label for="has_group_stock_packaging" colspan="3"/>
|
||||
<div>
|
||||
<field name='has_group_stock_packaging' colspan="1" class="oe_inline"/>
|
||||
</div>
|
||||
<label for="has_group_product_variant" colspan="3"/>
|
||||
<div>
|
||||
<field name='has_group_product_variant' colspan="1" class="oe_inline"/>
|
||||
</div>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -32,7 +32,6 @@
|
||||
'views/project_assets.xml',
|
||||
'views/project_portal_templates.xml',
|
||||
'views/project_rating_templates.xml',
|
||||
'views/res_users_views.xml',
|
||||
'data/digest_data.xml',
|
||||
'data/project_mail_template_data.xml',
|
||||
'data/project_data.xml',
|
||||
|
||||
@@ -4,5 +4,4 @@
|
||||
from . import project
|
||||
from . import res_config_settings
|
||||
from . import res_partner
|
||||
from . import res_users
|
||||
from . import digest
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class ResUsers(models.Model):
|
||||
_inherit = 'res.users'
|
||||
|
||||
has_group_subtask_project = fields.Boolean(
|
||||
'Use Subtasks', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
group_xml_id='project.group_subtask_project')
|
||||
|
||||
has_group_project_rating = fields.Boolean(
|
||||
'Use Rating on Project', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
group_xml_id='project.group_project_rating')
|
||||
|
||||
group_project_user = fields.Selection(
|
||||
selection=lambda self: self._get_group_selection('base.module_category_project_management'),
|
||||
string='Project', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
category_xml_id='base.module_category_project_management')
|
||||
@@ -16,10 +16,12 @@
|
||||
|
||||
<record id="group_subtask_project" model="res.groups">
|
||||
<field name="name">Use Subtasks</field>
|
||||
<field name="category_id" ref="base.module_category_hidden"/>
|
||||
</record>
|
||||
|
||||
<record id="group_project_rating" model="res.groups">
|
||||
<field name="name">Use Rating on Project</field>
|
||||
<field name="category_id" ref="base.module_category_hidden"/>
|
||||
</record>
|
||||
|
||||
<data noupdate="1">
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<record id="res_users_view_form" model="ir.ui.view">
|
||||
<field name="name">res.users.form.project.inherit</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="inherit_id" ref="base.view_users_form"/>
|
||||
<field name="priority">5</field>
|
||||
<field name="arch" type="xml">
|
||||
<group name="applications" position="inside">
|
||||
<field name='group_project_user'/>
|
||||
</group>
|
||||
<group name="technical" position="inside">
|
||||
<label for="has_group_subtask_project" colspan="3"/>
|
||||
<div>
|
||||
<field name='has_group_subtask_project' colspan="1" class="oe_inline"/>
|
||||
</div>
|
||||
<label for="has_group_project_rating" colspan="3"/>
|
||||
<div>
|
||||
<field name='has_group_project_rating' colspan="1" class="oe_inline"/>
|
||||
</div>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -25,7 +25,6 @@
|
||||
'report/purchase_report_views.xml',
|
||||
'data/mail_template_data.xml',
|
||||
'views/portal_templates.xml',
|
||||
'views/res_users_views.xml',
|
||||
'report/purchase_order_templates.xml',
|
||||
'report/purchase_quotation_templates.xml',
|
||||
],
|
||||
|
||||
@@ -7,4 +7,3 @@ from . import product
|
||||
from . import res_company
|
||||
from . import res_config_settings
|
||||
from . import res_partner
|
||||
from . import res_users
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class ResUsers(models.Model):
|
||||
_inherit = 'res.users'
|
||||
|
||||
has_group_manage_vendor_price = fields.Boolean(
|
||||
'Manage Vendor Price', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
group_xml_id='purchase.group_manage_vendor_price')
|
||||
|
||||
has_group_warning_purchase = fields.Boolean(
|
||||
'A warning can be set on a product or a customer (Purchase)',
|
||||
compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
group_xml_id='purchase.group_warning_purchase')
|
||||
|
||||
group_purchase_user = fields.Selection(
|
||||
selection=lambda self: self._get_group_selection('base.module_category_purchase_management'),
|
||||
string='Purchase', compute='_compute_groups_id', inverse='_inverse_groups_id',
|
||||
category_xml_id='base.module_category_purchase_management')
|
||||
@@ -17,10 +17,12 @@
|
||||
|
||||
<record id="group_manage_vendor_price" model="res.groups">
|
||||
<field name="name">Manage Vendor Price</field>
|
||||
<field name="category_id" ref="base.module_category_hidden"/>
|
||||
</record>
|
||||
|
||||
<record id="group_warning_purchase" model="res.groups">
|
||||
<field name="name">A warning can be set on a product or a customer (Purchase)</field>
|
||||
<field name="category_id" ref="base.module_category_hidden"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<odoo>
|
||||
<record id="res_users_view_form" model="ir.ui.view">
|
||||
<field name="name">res.users.form.purchase.inherit</field>
|
||||
<field name="model">res.users</field>
|
||||
<field name="inherit_id" ref="base.view_users_form"/>
|
||||
<field name="priority">45</field>
|
||||
<field name="arch" type="xml">
|
||||
<group name="applications" position="inside">
|
||||
<field name='group_purchase_user'/>
|
||||
</group>
|
||||
<group name="technical" position="inside">
|
||||
<label for="has_group_manage_vendor_price" colspan="3"/>
|
||||
<div>
|
||||
<field name='has_group_manage_vendor_price' colspan="1" class="oe_inline"/>
|
||||
</div>
|
||||
<label for="has_group_warning_purchase" colspan="3"/>
|
||||
<div>
|
||||
<field name='has_group_warning_purchase' colspan="1" class="oe_inline"/>
|
||||
</div>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -23,11 +23,11 @@ class TestPurchaseRequisition(common.TransactionCase):
|
||||
# Create a user as 'Purchase Requisition Manager'
|
||||
self.res_users_purchase_requisition_manager = self.ResUser.create({'company_id': self.res_company_id, 'name': 'Purchase requisition Manager', 'login': 'prm', 'email': 'requisition_manager@yourcompany.com'})
|
||||
# Added groups for Purchase Requisition Manager.
|
||||
self.res_users_purchase_requisition_manager.groups_id = [(4, self.ref('purchase.group_purchase_manager'), False)]
|
||||
self.res_users_purchase_requisition_manager.group_id = self.ref('purchase.group_purchase_manager')
|
||||
# Create a user as 'Purchase Requisition User'
|
||||
self.res_users_purchase_requisition_user = self.ResUser.create({'company_id': self.res_company_id, 'name': 'Purchase requisition User', 'login': 'pru', 'email': 'requisition_user@yourcompany.com'})
|
||||
# Added groups for Purchase Requisition User.
|
||||
self.res_users_purchase_requisition_user.groups_id = [(4, self.ref('purchase.group_purchase_user'), False)]
|
||||
self.res_users_purchase_requisition_user.group_id = self.ref('purchase.group_purchase_user')
|
||||
|
||||
# In order to test process of the purchase requisition ,create requisition
|
||||
self.requisition1 = self.env['purchase.requisition'].create({'line_ids': [(0, 0, {'product_id': self.product_09_id, 'product_qty': 10.0, 'product_uom_id': self.product_09_uom_id})]})
|
||||
|
||||
@@ -30,7 +30,6 @@ This module contains all the common features of Sales Management and eCommerce.
|
||||
'views/sale_portal_templates.xml',
|
||||
'views/sale_onboarding_views.xml',
|
||||
'views/res_config_settings_views.xml',
|
||||
'views/res_users_views.xml',
|
||||
'views/payment_views.xml',
|
||||
],
|
||||
'demo': [
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user