[IMP] base: add regular user admin as uid 2

User 1 simply becomes a technical user (inactive, no password).
This commit is contained in:
Raphael Collet
2018-08-23 21:38:57 +02:00
parent 7ba9acea18
commit 2f7c03d9ca
62 changed files with 254 additions and 231 deletions
+3 -2
View File
@@ -40,8 +40,9 @@
<field name="implied_ids" eval="[(4, ref('group_account_invoice'))]"/>
</record>
<record id="base.user_root" model="res.users">
<field name="groups_id" eval="[(4, ref('account.group_account_invoice')), (4, ref('account.group_account_manager'))]"/>
<!-- Grant full accounting features to admin -->
<record id="base.user_admin" model="res.users">
<field name="groups_id" eval="[(4, ref('account.group_account_user'))]"/>
</record>
<record id="base.group_system" model="res.groups">
@@ -27,5 +27,9 @@
<field eval="[(4,ref('analytic.group_analytic_accounting'))]" name="groups_id"/>
</record>
<record model="res.users" id="base.user_admin">
<field eval="[(4,ref('analytic.group_analytic_accounting'))]" name="groups_id"/>
</record>
</data>
</odoo>
+4
View File
@@ -11,6 +11,10 @@
<field eval="[(4,ref('base.group_partner_manager'))]" name="groups_id"/>
</record>
<record model="res.users" id="base.user_admin">
<field eval="[(4,ref('base.group_partner_manager'))]" name="groups_id"/>
</record>
<record id="contacts.res_partner_menu_config" model="ir.ui.menu">
<field name="name">Configuration</field>
<field name="groups_id" eval="[(4, ref('sales_team.group_sale_manager'))]"/>
+1 -1
View File
@@ -11,7 +11,7 @@
<field name="name">Manager</field>
<field name="category_id" ref="base.module_category_event_management"/>
<field name="implied_ids" eval="[(4, ref('group_event_user'))]"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
</data>
+1 -1
View File
@@ -13,7 +13,7 @@
<field name="name">Manager</field>
<field name="implied_ids" eval="[(4, ref('fleet_group_user'))]"/>
<field name="category_id" ref="module_fleet_category"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
<data noupdate="1">
+6 -6
View File
@@ -10,12 +10,12 @@
<field name="name">Sales</field>
</record>
<record id="employee_root" model="hr.employee">
<field name="name" eval="obj(ref('base.partner_root')).name" model="res.partner"/>
<field name="user_id" ref="base.user_root"/>
<field name="address_id" ref="base.partner_root"/>
<field name="address_home_id" ref="base.partner_root"/>
<field name="image" eval="obj(ref('base.partner_root')).image" model="res.partner"/>
<record id="employee_admin" model="hr.employee">
<field name="name" eval="obj(ref('base.partner_admin')).name" model="res.partner"/>
<field name="user_id" ref="base.user_admin"/>
<field name="address_id" ref="base.partner_admin"/>
<field name="address_home_id" ref="base.partner_admin"/>
<field name="image" eval="obj(ref('base.partner_admin')).image" model="res.partner"/>
</record>
<record id="mail_template_data_unknown_employee_email_address" model="mail.template">
+5 -5
View File
@@ -135,7 +135,7 @@ If you have development competencies, we can propose you specific traineeships</
<!--Employees-->
<record id="employee_root" model="hr.employee">
<record id="employee_admin" model="hr.employee">
<field name="work_location">Building 1, Second Floor</field>
<field name="work_phone">(237)-125-2389</field>
<field name="work_email">aiden.hughes71@example.com</field>
@@ -232,7 +232,7 @@ If you have development competencies, we can propose you specific traineeships</
<record id="employee_fpi" model="hr.employee">
<field name="name">Audrey Peterson</field>
<field name="department_id" ref="dep_ps"/>
<field name="parent_id" ref="employee_root"/>
<field name="parent_id" ref="employee_admin"/>
<field name="job_id" ref="hr.job_consultant"/>
<field name="category_ids" eval="[(6, 0, [ref('employee_category_4'), ref('employee_category_5')])]"/>
<field name="work_location">Building 1, Second Floor</field>
@@ -244,7 +244,7 @@ If you have development competencies, we can propose you specific traineeships</
<record id="employee_jth" model="hr.employee">
<field name="name">Toni Jimenez</field>
<field name="department_id" ref="dep_ps"/>
<field name="parent_id" ref="employee_root"/>
<field name="parent_id" ref="employee_admin"/>
<field name="job_id" ref="hr.job_consultant"/>
<field name="category_ids" eval="[(6, 0, [ref('employee_category_4'), ref('employee_category_5')])]"/>
<field name="work_location">Building 1, Second Floor</field>
@@ -256,7 +256,7 @@ If you have development competencies, we can propose you specific traineeships</
<record id="employee_ngh" model="hr.employee">
<field name="name">Jeffrey Kelly</field>
<field name="department_id" ref="dep_sales"/>
<field name="parent_id" ref="employee_root"/>
<field name="parent_id" ref="employee_admin"/>
<field name="job_id" ref="hr.job_marketing"/>
<field name="category_ids" eval="[(6, 0, [ref('employee_category_4'), ref('employee_category_2')])]"/>
<field name="work_location">Building 1, Second Floor</field>
@@ -268,7 +268,7 @@ If you have development competencies, we can propose you specific traineeships</
<record id="employee_vad" model="hr.employee">
<field name="name">Tina Williamson</field>
<field name="department_id" ref="dep_administration"/>
<field name="parent_id" ref="employee_root"/>
<field name="parent_id" ref="employee_admin"/>
<field name="job_id" ref="hr.job_hrm"/>
<field name="category_ids" eval="[(6, 0, [ref('employee_category_4')])]"/>
<field name="work_location">Building 1, Second Floor</field>
+1 -1
View File
@@ -13,7 +13,7 @@
<field name="comment">The user will have an access to the human resources configuration as well as statistic reports.</field>
<field name="category_id" ref="base.module_category_human_resources"/>
<field name="implied_ids" eval="[(4, ref('group_hr_user'))]"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
<data noupdate="1">
@@ -6,7 +6,7 @@
<field name="barcode">123</field>
</record>
<record id="hr.employee_root" model="hr.employee">
<record id="hr.employee_admin" model="hr.employee">
<field name="pin">0000</field>
<field name="barcode">456</field>
</record>
@@ -14,13 +14,13 @@
<record id="attendance_root1" model="hr.attendance">
<field eval="(datetime.now()+relativedelta(days=-1)).strftime('%Y-%m-%d 08:00')" name="check_in"/>
<field eval="(datetime.now()+relativedelta(days=-1)).strftime('%Y-%m-%d 12:00')" name="check_out"/>
<field name="employee_id" ref="hr.employee_root"/>
<field name="employee_id" ref="hr.employee_admin"/>
</record>
<record id="attendance_root2" model="hr.attendance">
<field eval="(datetime.now()+relativedelta(days=-1)).strftime('%Y-%m-%d 13:00')" name="check_in"/>
<field eval="(datetime.now()+relativedelta(days=-1)).strftime('%Y-%m-%d 18:00')" name="check_out"/>
<field name="employee_id" ref="hr.employee_root"/>
<field name="employee_id" ref="hr.employee_admin"/>
</record>
<record id="attendance1" model="hr.attendance">
@@ -11,7 +11,7 @@
<field name="name">Manager</field>
<field name="category_id" ref="base.module_category_hr_attendance"/>
<field name="implied_ids" eval="[(4, ref('hr_attendance.group_hr_attendance_user'))]"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
<record id="group_hr_attendance" model="res.groups">
+1 -1
View File
@@ -4,7 +4,7 @@
<record id="hr_contract.group_hr_contract_manager" model="res.groups">
<field name="name">Manager</field>
<field name="category_id" ref="base.module_category_hr_contract"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
<record id="base.default_user" model="res.users">
+1 -1
View File
@@ -10,7 +10,7 @@ class TestHrContracts(TransactionCase):
def setUp(self):
super(TestHrContracts, self).setUp()
self.contracts = self.env['hr.contract'].with_context(tracking_disable=True)
self.employee = self.env.ref('hr.employee_root')
self.employee = self.env.ref('hr.employee_admin')
self.test_contract = dict(name='Test', wage=1, employee_id=self.employee.id, state='open')
def apply_cron(self):
+3 -1
View File
@@ -17,7 +17,7 @@
<field name="type">private</field>
</record>
<record id="hr.employee_root" model="hr.employee">
<record id="hr.employee_admin" model="hr.employee">
<field name="address_home_id" ref="res_partner_address_fp"/>
</record>
@@ -51,6 +51,7 @@
<record id="travel_by_air_expense" model="hr.expense">
<field name="name">Travel by Air</field>
<field name="employee_id" ref="hr.employee_admin"/>
<field name="analytic_account_id" ref="analytic.analytic_our_super_product"/>
<field name="product_id" ref="air_ticket"/>
<field eval="700.0" name="unit_amount"/>
@@ -60,6 +61,7 @@
<record id="hotel_bill_expense" model="hr.expense">
<field name="name">Hotel Expenses</field>
<field name="employee_id" ref="hr.employee_admin"/>
<field name="analytic_account_id" ref="analytic.analytic_nebula"/>
<field name="product_id" ref="product.expense_hotel"/>
<field eval="400.0" name="unit_amount"/>
@@ -10,7 +10,7 @@
<field name="name">Manager</field>
<field name="category_id" ref="base.module_category_hr_expense"/>
<field name="implied_ids" eval="[(4, ref('hr_expense.group_hr_expense_user'))]"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
<record id="base.default_user" model="res.users">
+6 -6
View File
@@ -31,7 +31,7 @@
<field name="name">Legal Leaves for Peter Parker</field>
<field name="holiday_status_id" ref="holiday_status_cl"/>
<field name="number_of_days_temp">20</field>
<field name="employee_id" ref="hr.employee_root"/>
<field name="employee_id" ref="hr.employee_admin"/>
<field name="state">confirm</field>
</record>
@@ -39,7 +39,7 @@
<field name="name">International Tour</field>
<field name="holiday_status_id" ref="holiday_status_comp"/>
<field name="number_of_days_temp">7</field>
<field name="employee_id" ref="hr.employee_root"/>
<field name="employee_id" ref="hr.employee_admin"/>
<field name="state">confirm</field>
</record>
@@ -48,14 +48,14 @@
<field name="holiday_status_id" ref="hr_holiday_status_hl"/>
<field name="number_of_hours">160</field>
<field name="number_of_days_temp">20</field>
<field name="employee_id" ref="hr.employee_root"/>
<field name="employee_id" ref="hr.employee_admin"/>
</record>
<record id="hr_holidays_employee1_vc" model="hr.leave.allocation">
<field name="name">Summer Vacation</field>
<field name="holiday_status_id" ref="holiday_status_unpaid"/>
<field name="number_of_days_temp">7</field>
<field name="employee_id" ref="hr.employee_root"/>
<field name="employee_id" ref="hr.employee_admin"/>
</record>
<!-- approve the first 3 leave allocations -->
@@ -67,7 +67,7 @@
<field eval="time.strftime('%Y-%m-01')" name="date_from"/>
<field eval="time.strftime('%Y-%m-03')" name="date_to"/>
<field name="number_of_days_temp">3</field>
<field name="employee_id" ref="hr.employee_root"/>
<field name="employee_id" ref="hr.employee_admin"/>
</record>
<record id="hr_holidays_employee1_sl" model="hr.leave">
@@ -76,7 +76,7 @@
<field eval="time.strftime('%Y-%m-20')" name="date_from"/>
<field eval="time.strftime('%Y-%m-22')" name="date_to"/>
<field name="number_of_days_temp">3</field>
<field name="employee_id" ref="hr.employee_root"/>
<field name="employee_id" ref="hr.employee_admin"/>
<field name="state">confirm</field>
</record>
@@ -10,7 +10,7 @@
<field name="name">Manager</field>
<field name="category_id" ref="base.module_category_hr_holidays"/>
<field name="implied_ids" eval="[(4, ref('hr_holidays.group_hr_holidays_user'))]"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
<record id="base.default_user" model="res.users">
@@ -235,8 +235,8 @@ class TestHolidaysFlow(TestHrHolidaysBase):
with self.assertRaises(ValidationError):
hol2_manager_group.action_confirm()
employee_id = self.ref('hr.employee_root')
# cl can be of maximum 20 days for employee_root
employee_id = self.ref('hr.employee_admin')
# cl can be of maximum 20 days for employee_admin
hol3_status = self.env.ref('hr_holidays.holiday_status_cl').with_context(employee_id=employee_id)
# I assign the dates in the holiday request for 1 day
hol3 = Requests.create({
@@ -355,7 +355,7 @@ class TestHolidaysFlow(TestHrHolidaysBase):
# Print the HR Holidays(Summary Department) Report through the wizard
ctx = {
'model': 'hr.department',
'active_ids': [self.ref('hr.employee_root'), self.ref('hr.employee_qdp'), self.ref('hr.employee_al')]
'active_ids': [self.ref('hr.employee_admin'), self.ref('hr.employee_qdp'), self.ref('hr.employee_al')]
}
data_dict = {
'date_from': datetime.today().strftime('%Y-%m-01'),
@@ -367,11 +367,11 @@ class TestHolidaysFlow(TestHrHolidaysBase):
# Print the HR Holidays(Summary Employee) Report through the wizard
ctx = {
'model': 'hr.employee',
'active_ids': [self.ref('hr.employee_root'), self.ref('hr.employee_qdp'), self.ref('hr.employee_al')]
'active_ids': [self.ref('hr.employee_admin'), self.ref('hr.employee_qdp'), self.ref('hr.employee_al')]
}
data_dict = {
'date_from': datetime.today().strftime('%Y-%m-01'),
'emp': [(6, 0, [self.ref('hr.employee_root'), self.ref('hr.employee_qdp'), self.ref('hr.employee_al')])],
'emp': [(6, 0, [self.ref('hr.employee_admin'), self.ref('hr.employee_qdp'), self.ref('hr.employee_al')])],
'holiday_type': 'Approved'
}
test_reports.try_report_action(self.env.cr, self.env.uid, 'action_hr_holidays_summary_employee', wiz_data=data_dict, context=ctx, our_module='hr_holidays')
@@ -12,7 +12,7 @@
<field name="name">Manager</field>
<field name="category_id" ref="base.module_category_hr_payroll"/>
<field name="implied_ids" eval="[(4, ref('hr_payroll.group_hr_payroll_user'))]"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
<record id="base.default_user" model="res.users">
@@ -19,7 +19,7 @@
<field name="name">Manager</field>
<field name="category_id" ref="base.module_category_hr_recruitment"/>
<field name="implied_ids" eval="[(4, ref('group_hr_recruitment_user'))]"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
<record id="base.default_user" model="res.users">
@@ -5,7 +5,7 @@
only by admin when installing hr_timesheet, to avoid confusing -->
<record id="web_tour_project_consumed_by_admin" model="web_tour.tour">
<field name="name">project_tour</field>
<field name="user_id" ref='base.user_root'/>
<field name="user_id" ref='base.user_admin'/>
</record>
<!-- Set the JS widget -->
@@ -7,14 +7,14 @@
<field name="name">User</field>
<field name="category_id" ref="base.module_category_hr_timesheet"/>
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
<record id="group_timesheet_manager" model="res.groups">
<field name="name">Manager</field>
<field name="category_id" ref="base.module_category_hr_timesheet"/>
<field name="implied_ids" eval="[(4, ref('group_hr_timesheet_user')), (4, ref('hr.group_hr_user'))]"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
<record id="base.default_user" model="res.users">
@@ -17,7 +17,7 @@
<field name="comment">The user will be able to delete support channels.</field>
<field name="category_id" ref="module_category_im_livechat"/>
<field name="implied_ids" eval="[(4, ref('im_livechat.im_livechat_group_user'))]"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
+1 -1
View File
@@ -19,7 +19,7 @@ class TestPaymentAdviceBase(TransactionCase):
self.bank_1 = self.env.ref('base.res_bank_1')
self.in_country = self.env.ref('base.in')
self.rd_dept = self.env.ref('hr.dep_rd')
self.employee_fp = self.env.ref('hr.employee_root')
self.employee_fp = self.env.ref('hr.employee_admin')
self.employee_al = self.env.ref('hr.employee_al')
# I create a new bank record
+1 -1
View File
@@ -13,7 +13,7 @@
<field name="name">Manager</field>
<field name="implied_ids" eval="[(4, ref('group_lunch_user'))]"/>
<field name="category_id" ref="module_lunch_category"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
+1 -1
View File
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- Admin should not receive emails at creation -->
<!-- user root should not receive emails at creation -->
<record id="base.user_root" model="res.users">
<field name="notification_type">inbox</field>
</record>
+4 -2
View File
@@ -36,10 +36,12 @@ class MailMail(models.Model):
# Auto-detected based on create() - if 'mail_message_id' was passed then this mail is a notification
# and during unlink() we will not cascade delete the parent and its attachments
notification = fields.Boolean('Is Notification', help='Mail has been created to notify people of an existing mail.message')
# recipients
# recipients: include inactive partners (they may have been archived after
# the message was sent, but they should remain visible in the relation)
email_to = fields.Text('To', help='Message recipients (emails)')
email_cc = fields.Char('Cc', help='Carbon copy message recipients')
recipient_ids = fields.Many2many('res.partner', string='To (Partners)')
recipient_ids = fields.Many2many('res.partner', string='To (Partners)',
context={'active_test': False})
# process
state = fields.Selection([
('outgoing', 'Outgoing'),
+6 -3
View File
@@ -77,10 +77,13 @@ class Message(models.Model):
ondelete='set null', default=_get_default_author,
help="Author of the message. If not set, email_from may hold an email address that did not match any partner.")
author_avatar = fields.Binary("Author's avatar", related='author_id.image_small')
# recipients
partner_ids = fields.Many2many('res.partner', string='Recipients')
# recipients: include inactive partners (they may have been archived after
# the message was sent, but they should remain visible in the relation)
partner_ids = fields.Many2many('res.partner', string='Recipients',
context={'active_test': False})
needaction_partner_ids = fields.Many2many(
'res.partner', 'mail_message_res_partner_needaction_rel', string='Partners with Need Action')
'res.partner', 'mail_message_res_partner_needaction_rel', string='Partners with Need Action',
context={'active_test': False})
needaction = fields.Boolean(
'Need Action', compute='_get_needaction', search='_search_needaction',
help='Need Action')
+1 -1
View File
@@ -2,7 +2,7 @@
<odoo>
<data>
<!-- Disable odoobot on admin so that devs don't hate him -->
<record id="base.user_root" model="res.users">
<record id="base.user_admin" model="res.users">
<field name="odoobot_state">disabled</field>
</record>
</data>
@@ -3,7 +3,7 @@
<record id="group_mass_mailing_user" model="res.groups">
<field name="name">User</field>
<field name="category_id" ref="base.module_category_mass_mailing"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
<field name="implied_ids" eval="[(4, ref('base.group_user'))]"/>
</record>
+1 -1
View File
@@ -11,7 +11,7 @@
<field name="name">Manager</field>
<field name="category_id" ref="base.module_category_manufacturing"/>
<field name="implied_ids" eval="[(4, ref('group_mrp_user'))]"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
@@ -8,7 +8,7 @@
<field name="name">Manager</field>
<field name="category_id" ref="base.module_category_point_of_sale"/>
<field name="implied_ids" eval="[(4, ref('group_pos_user')), (4, ref('stock.group_stock_user'))]"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
+1 -1
View File
@@ -10,7 +10,7 @@ import odoo.tests
class TestUi(odoo.tests.HttpCase):
def test_01_pos_basic_order(self):
env = self.env
env = self.env(user=self.env.ref('base.user_admin'))
journal_obj = env['account.journal']
account_obj = env['account.account']
+1 -1
View File
@@ -11,7 +11,7 @@
<field name="name">Manager</field>
<field name="category_id" ref="base.module_category_project_management"/>
<field name="implied_ids" eval="[(4, ref('group_project_user'))]"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
<record id="group_subtask_project" model="res.groups">
@@ -12,7 +12,7 @@
<field name="name">Manager</field>
<field name="category_id" ref="base.module_category_purchase_management"/>
<field name="implied_ids" eval="[(4, ref('group_purchase_user'))]"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
<record id="group_manage_vendor_price" model="res.groups">
+4
View File
@@ -26,6 +26,10 @@
<field eval="[(4,ref('base.group_partner_manager'))]" name="groups_id"/>
</record>
<record model="res.users" id="base.user_admin">
<field eval="[(4,ref('base.group_partner_manager'))]" name="groups_id"/>
</record>
<data noupdate="1">
<!-- Multi - Company Rules -->
@@ -104,13 +104,13 @@
</record>
<!-- Employee -->
<record id="hr.employee_root" model="hr.employee">
<record id="hr.employee_admin" model="hr.employee">
<field name="timesheet_cost">100</field>
</record>
<record id="hr.employee_qdp" model="hr.employee">
<field name="timesheet_cost">75</field>
<field name="parent_id" ref="hr.employee_root"/>
<field name="parent_id" ref="hr.employee_admin"/>
</record>
<record id="sale_order_1" model="sale.order">
@@ -186,7 +186,7 @@
<!-- Timesheets on sale_order_1 -->
<record id="timesheet_1" model="account.analytic.line">
<field name="name">Design</field>
<field name="employee_id" ref="hr.employee_root"/>
<field name="employee_id" ref="hr.employee_admin"/>
<field name="date" eval="(DateTime.now() + relativedelta(weekday=3,weeks=-2)).strftime('%Y-%m-%d')"/>
<field name="unit_amount">5.00</field>
<field name="task_id" search="[('sale_line_id', '=', ref('sale_line_13'))]"/>
@@ -194,7 +194,7 @@
</record>
<record id="timesheet_2" model="account.analytic.line">
<field name="name">Fine tuning</field>
<field name="employee_id" ref="hr.employee_root"/>
<field name="employee_id" ref="hr.employee_admin"/>
<field name="date" eval="(DateTime.now() + relativedelta(weekday=2,weeks=-2)).strftime('%Y-%m-%d')"/>
<field name="unit_amount">5.00</field>
<field name="task_id" search="[('sale_line_id', '=', ref('sale_line_13'))]"/>
@@ -202,7 +202,7 @@
</record>
<record id="timesheet_3" model="account.analytic.line">
<field name="name">Assembling</field>
<field name="employee_id" ref="hr.employee_root"/>
<field name="employee_id" ref="hr.employee_admin"/>
<field name="date" eval="(DateTime.now() + relativedelta(days=0)).strftime('%Y-%m-%d')"/>
<field name="unit_amount">5.00</field>
<field name="task_id" search="[('sale_line_id', '=', ref('sale_line_13'))]"/>
@@ -210,7 +210,7 @@
</record>
<record id="timesheet_4" model="account.analytic.line">
<field name="name">Delivery</field>
<field name="employee_id" ref="hr.employee_root"/>
<field name="employee_id" ref="hr.employee_admin"/>
<field name="date" eval="(DateTime.now() + relativedelta(weekday=1,weeks=-2)).strftime('%Y-%m-%d')"/>
<field name="unit_amount">5.00</field>
<field name="task_id" search="[('sale_line_id', '=', ref('sale_line_13'))]"/>
@@ -219,7 +219,7 @@
<record id="timesheet_5" model="account.analytic.line">
<field name="name">Requirements analysis</field>
<field name="employee_id" ref="hr.employee_root"/>
<field name="employee_id" ref="hr.employee_admin"/>
<field name="date" eval="(DateTime.now() + relativedelta(weekday=0,weeks=-2)).strftime('%Y-%m-%d')"/>
<field name="unit_amount">1.00</field>
<field name="project_id" ref="project_support"/>
@@ -227,7 +227,7 @@
</record>
<record id="timesheet_6" model="account.analytic.line">
<field name="name">Client meeting</field>
<field name="employee_id" ref="hr.employee_root"/>
<field name="employee_id" ref="hr.employee_admin"/>
<field name="date" eval="(DateTime.now() + relativedelta(weekday=1,weeks=-2)).strftime('%Y-%m-%d')"/>
<field name="unit_amount">1.00</field>
<field name="project_id" ref="project_support"/>
@@ -251,7 +251,7 @@
</record>
<record id="timesheet_9" model="account.analytic.line">
<field name="name">Building</field>
<field name="employee_id" ref="hr.employee_root"/>
<field name="employee_id" ref="hr.employee_admin"/>
<field name="date" eval="(DateTime.now() + relativedelta(weekday=4,weeks=-2)).strftime('%Y-%m-%d')"/>
<field name="unit_amount">1.00</field>
<field name="project_id" ref="project_support"/>
@@ -259,7 +259,7 @@
</record>
<record id="timesheet_10" model="account.analytic.line">
<field name="name">Research</field>
<field name="employee_id" ref="hr.employee_root"/>
<field name="employee_id" ref="hr.employee_admin"/>
<field name="date" eval="(DateTime.now() + relativedelta(weekday=0,weeks=-3)).strftime('%Y-%m-%d')"/>
<field name="unit_amount">1.00</field>
<field name="project_id" ref="project_support"/>
@@ -267,7 +267,7 @@
</record>
<record id="timesheet_11" model="account.analytic.line">
<field name="name">Assembling</field>
<field name="employee_id" ref="hr.employee_root"/>
<field name="employee_id" ref="hr.employee_admin"/>
<field name="date" eval="(DateTime.now() + relativedelta(weekday=1,weeks=-3)).strftime('%Y-%m-%d')"/>
<field name="unit_amount">1.00</field>
<field name="project_id" ref="project_support"/>
@@ -291,7 +291,7 @@
</record>
<record id="timesheet_14" model="account.analytic.line">
<field name="name">Wood chopping</field>
<field name="employee_id" ref="hr.employee_root"/>
<field name="employee_id" ref="hr.employee_admin"/>
<field name="date" eval="(DateTime.now() + relativedelta(weekday=4,weeks=-3)).strftime('%Y-%m-%d')"/>
<field name="unit_amount">1.00</field>
<field name="project_id" ref="project_support"/>
@@ -342,7 +342,7 @@
</record>
<record id="timesheet_20" model="account.analytic.line">
<field name="name">Document analysis</field>
<field name="employee_id" ref="hr.employee_root"/>
<field name="employee_id" ref="hr.employee_admin"/>
<field name="date" eval="(DateTime.now() + relativedelta(weekday=0,weeks=-4)).strftime('%Y-%m-%d')"/>
<field name="unit_amount">4.00</field>
<field name="project_id" ref="project_support"/>
@@ -350,7 +350,7 @@
</record>
<record id="timesheet_21" model="account.analytic.line">
<field name="name">Design analysis</field>
<field name="employee_id" ref="hr.employee_root"/>
<field name="employee_id" ref="hr.employee_admin"/>
<field name="date" eval="(DateTime.now() + relativedelta(weekday=0,weeks=-3)).strftime('%Y-%m-%d')"/>
<field name="unit_amount">4.00</field>
<field name="project_id" ref="project_support"/>
@@ -368,7 +368,7 @@
<!-- Non billable Timesheets in project_support -->
<record id="timesheet_23" model="account.analytic.line">
<field name="name">Technical training</field>
<field name="employee_id" ref="hr.employee_root"/>
<field name="employee_id" ref="hr.employee_admin"/>
<field name="date" eval="(DateTime.now() + relativedelta(months=-4, days=-10)).strftime('%Y-%m-%d')"/>
<field name="unit_amount">8.00</field>
<field name="project_id" ref="project.project_project_1"/>
@@ -376,7 +376,7 @@
</record>
<record id="timesheet_24" model="account.analytic.line">
<field name="name">Internal training</field>
<field name="employee_id" ref="hr.employee_root"/>
<field name="employee_id" ref="hr.employee_admin"/>
<field name="date" eval="(DateTime.now() + relativedelta(months=-4, days=-12)).strftime('%Y-%m-%d')"/>
<field name="unit_amount">8.00</field>
<field name="project_id" ref="project.project_project_1"/>
@@ -384,7 +384,7 @@
</record>
<record id="timesheet_25" model="account.analytic.line">
<field name="name">Internal discussion</field>
<field name="employee_id" ref="hr.employee_root"/>
<field name="employee_id" ref="hr.employee_admin"/>
<field name="date" eval="(DateTime.now() + relativedelta(months=-4, days=-13)).strftime('%Y-%m-%d')"/>
<field name="unit_amount">8.00</field>
<field name="project_id" ref="project.project_project_1"/>
+1 -1
View File
@@ -3,7 +3,7 @@
<data noupdate="1">
<record id="team_sales_department" model="crm.team">
<field name="name">Sales</field>
<field name="member_ids" eval="[(4, ref('base.user_root'))]"/>
<field name="member_ids" eval="[(4, ref('base.user_admin'))]"/>
<field name="company_id" eval="False"/>
</record>
@@ -19,7 +19,7 @@
<field name="comment">the user will have an access to the sales configuration as well as statistic reports.</field>
<field name="category_id" ref="base.module_category_sales_management"/>
<field name="implied_ids" eval="[(4, ref('group_sale_salesman_all_leads'))]"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
<record id="crm_rule_all_salesteam" model="ir.rule">
+1 -1
View File
@@ -19,7 +19,7 @@
<field name="name">Manager</field>
<field name="category_id" ref="base.module_category_warehouse_management"/>
<field name="implied_ids" eval="[(4, ref('group_stock_user'))]"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
<record id="group_production_lot" model="res.groups">
+1 -1
View File
@@ -12,7 +12,7 @@
<field name="name">Manager</field>
<field name="category_id" ref="base.module_category_survey"/>
<field name="implied_ids" eval="[(4, ref('group_survey_user'))]"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
<record id="base.default_user" model="res.users">
+2 -2
View File
@@ -31,8 +31,8 @@ class BaseFunctionalTest(common.SavepointCase):
'notification_type': 'email',
'groups_id': [(6, 0, [user_group_employee.id])]})
cls.partner_employee = cls.user_employee.partner_id
cls.user_admin = cls.env.user
cls.partner_admin = cls.user_admin.partner_id
cls.user_admin = cls.env.ref('base.user_admin')
cls.partner_admin = cls.env.ref('base.partner_admin')
cls.channel_listen = cls.env['mail.channel'].with_context(cls._quick_create_ctx).create({'name': 'Listener'})
+1 -1
View File
@@ -119,7 +119,7 @@ class TestNotifications(BaseFunctionalTest, MockEmails):
message.sudo(user_portal).set_message_done()
def test_set_star(self):
msg = self.test_record.message_post(body='My Body', subject='1')
msg = self.test_record.sudo(self.user_admin).message_post(body='My Body', subject='1')
msg_emp = self.env['mail.message'].sudo(self.user_employee).browse(msg.id)
# Admin set as starred
+2 -2
View File
@@ -28,11 +28,11 @@ class TestServerActionsEmail(TestServerActionsBase):
self.test_partner.message_unsubscribe(self.test_partner.message_partner_ids.ids)
self.action.write({
'state': 'followers',
'partner_ids': [(4, self.env.ref('base.partner_root').id), (4, self.env.ref('base.partner_demo').id)],
'partner_ids': [(4, self.env.ref('base.partner_admin').id), (4, self.env.ref('base.partner_demo').id)],
'channel_ids': [(4, self.env.ref('mail.channel_all_employees').id)]
})
self.action.with_context(self.context).run()
self.assertEqual(self.test_partner.message_partner_ids, self.env.ref('base.partner_root') | self.env.ref('base.partner_demo'))
self.assertEqual(self.test_partner.message_partner_ids, self.env.ref('base.partner_admin') | self.env.ref('base.partner_demo'))
self.assertEqual(self.test_partner.message_channel_ids, self.env.ref('mail.channel_all_employees'))
def test_action_next_activity(self):
@@ -178,7 +178,6 @@ class AdvancedFollowersTest(common.BaseFunctionalTest):
'name': 'Test',
'user_id': self.user_admin.id,
})
self.assertEqual(sub.message_partner_ids, (self.user_employee.partner_id | self.user_admin.partner_id))
def test_auto_subscribe_defaults(self):
+4 -4
View File
@@ -88,7 +88,7 @@ class TestMailResend(common.BaseFunctionalTest, common.MockEmails):
def connect_failure(**kwargs):
raise Exception
with patch.object(IrMailServer, 'connect', side_effect=connect_failure):
message = self.test_record.sudo().message_post(partner_ids=self.partners.ids, subtype='mail.mt_comment', message_type='notification')
message = self.test_record.sudo(self.user_admin).message_post(partner_ids=self.partners.ids, subtype='mail.mt_comment', message_type='notification')
self.assertBusMessage([self.partner_admin])
self.assertEmails(self.partner_admin, [])
self.assertNotifStates(('exception', 'exception', 'exception', 'exception'), message)
@@ -113,12 +113,12 @@ class TestMailResend(common.BaseFunctionalTest, common.MockEmails):
def test_mail_send_no_failure(self):
self.user1.write({"email": 'u1@example.com'})
self.partner1.write({"email": 'p1@example.com'})
message = self.test_record.sudo().message_post(partner_ids=self.partners.ids, subtype='mail.mt_comment', message_type='notification')
message = self.test_record.sudo(self.user_admin).message_post(partner_ids=self.partners.ids, subtype='mail.mt_comment', message_type='notification')
self.assertBusMessage([]) # one update for cancell
@mute_logger('odoo.addons.mail.models.mail_mail')
def test_remove_mail_become_canceled(self):
message = self.test_record.sudo().message_post(partner_ids=self.partners.ids, subtype='mail.mt_comment', message_type='notification')
message = self.test_record.sudo(self.user_admin).message_post(partner_ids=self.partners.ids, subtype='mail.mt_comment', message_type='notification')
self.assertEmails(self.partner_admin, self.partners)
self.assertBusMessage([self.partner_admin] * 2) # two failure sent on bus, one for each mail
wizard = self.env['mail.resend.message'].with_context({'mail_message_to_resend': message.id}).create({})
@@ -132,7 +132,7 @@ class TestMailResend(common.BaseFunctionalTest, common.MockEmails):
@mute_logger('odoo.addons.mail.models.mail_mail')
def test_cancel_all(self):
message = self.test_record.sudo().message_post(partner_ids=self.partners.ids, subtype='mail.mt_comment', message_type='notification')
message = self.test_record.sudo(self.user_admin).message_post(partner_ids=self.partners.ids, subtype='mail.mt_comment', message_type='notification')
self.assertNotifStates(('exception', 'sent', 'exception', 'sent'), message)
self.assertBusMessage([self.partner_admin] * 2)
wizard = self.env['mail.resend.message'].with_context({'mail_message_to_resend': message.id}).create({})
+64 -65
View File
@@ -26,14 +26,14 @@ class TestMailPerformance(TransactionCase):
'groups_id': [(6, 0, [self.env.ref('base.group_user').id])],
})
@users('admin', 'demo')
@users('__system__', 'demo')
@warmup
def test_read_mail(self):
""" Read records inheriting from 'mail.thread'. """
records = self.env['test_performance.mail'].search([])
self.assertEqual(len(records), 5)
with self.assertQueryCount(admin=3, demo=3):
with self.assertQueryCount(__system__=3, demo=3):
# without cache
for record in records:
record.partner_id.country_id.name
@@ -48,27 +48,27 @@ class TestMailPerformance(TransactionCase):
for record in records:
record.value_pc
@users('admin', 'demo')
@users('__system__', 'demo')
@warmup
def test_write_mail(self):
""" Write records inheriting from 'mail.thread' (no recomputation). """
records = self.env['test_performance.mail'].search([])
self.assertEqual(len(records), 5)
with self.assertQueryCount(admin=3, demo=3): # test_mail only: 3 - 3
with self.assertQueryCount(__system__=3, demo=3): # test_mail only: 3 - 3
records.write({'name': 'X'})
@users('admin', 'demo')
@users('__system__', 'demo')
@warmup
def test_write_mail_with_recomputation(self):
""" Write records inheriting from 'mail.thread' (with recomputation). """
records = self.env['test_performance.mail'].search([])
self.assertEqual(len(records), 5)
with self.assertQueryCount(admin=5, demo=5): # test_mail only: 5 - 5
with self.assertQueryCount(__system__=5, demo=5): # test_mail only: 5 - 5
records.write({'value': 42})
@users('admin', 'demo')
@users('__system__', 'demo')
@warmup
def test_write_mail_with_tracking(self):
""" Write records inheriting from 'mail.thread' (with field tracking). """
@@ -79,36 +79,36 @@ class TestMailPerformance(TransactionCase):
'partner_id': self.env.ref('base.res_partner_12').id,
})
with self.assertQueryCount(admin=5, demo=5): # test_mail only: 5 - 5
with self.assertQueryCount(__system__=5, demo=5): # test_mail only: 5 - 5
record.track = 'X'
@users('admin', 'demo')
@users('__system__', 'demo')
@warmup
def test_create_mail(self):
""" Create records inheriting from 'mail.thread' (without field tracking). """
model = self.env['test_performance.mail']
with self.assertQueryCount(admin=3, demo=3): # test_mail only: 3 - 3
with self.assertQueryCount(__system__=3, demo=3): # test_mail only: 3 - 3
model.with_context(tracking_disable=True).create({'name': 'X'})
@users('admin', 'demo')
@users('__system__', 'demo')
@warmup
def test_create_mail_with_tracking(self):
""" Create records inheriting from 'mail.thread' (with field tracking). """
with self.assertQueryCount(admin=13, demo=13): # test_mail only: 13 - 13
with self.assertQueryCount(__system__=13, demo=13): # test_mail only: 13 - 13
self.env['test_performance.mail'].create({'name': 'X'})
@users('admin', 'emp')
@users('__system__', 'emp')
@warmup
def test_create_mail_simple(self):
with self.assertQueryCount(admin=8, emp=8): # test_mail only: 8 - 8
with self.assertQueryCount(__system__=8, emp=8): # test_mail only: 8 - 8
self.env['mail.test.simple'].create({'name': 'Test'})
@users('admin', 'emp')
@users('__system__', 'emp')
@warmup
def test_write_mail_simple(self):
rec = self.env['mail.test.simple'].create({'name': 'Test'})
with self.assertQueryCount(admin=1, emp=1): # test_mail only: 1 - 1
with self.assertQueryCount(__system__=1, emp=1): # test_mail only: 1 - 1
rec.write({
'name': 'Test2',
'email_from': 'test@test.com',
@@ -149,15 +149,15 @@ class TestAdvMailPerformance(TransactionCase):
# automatically follow activities, for backward compatibility concerning query count
self.env.ref('mail.mt_activities').write({'default': True})
@users('admin', 'emp')
@users('__system__', 'emp')
@warmup
def test_adv_activity(self):
model = self.env['mail.test.activity']
with self.assertQueryCount(admin=9, emp=8): # test_mail only: 8 - 8
with self.assertQueryCount(__system__=9, emp=8): # test_mail only: 8 - 8
model.create({'name': 'Test'})
@users('admin', 'emp')
@users('__system__', 'emp')
@warmup
@mute_logger('odoo.models.unlink')
def test_adv_activity_full(self):
@@ -166,7 +166,7 @@ class TestAdvMailPerformance(TransactionCase):
'default_res_model': 'mail.test.activity',
})
with self.assertQueryCount(admin=10, emp=15): # test_mail only: 9 - 13
with self.assertQueryCount(__system__=10, emp=15): # test_mail only: 9 - 13
activity = MailActivity.create({
'summary': 'Test Activity',
'res_id': record.id,
@@ -176,16 +176,16 @@ class TestAdvMailPerformance(TransactionCase):
#voip module read activity_type during create leading to one less query in enterprise on action_feedback
category = activity.activity_type_id.category
with self.assertQueryCount(admin=26, emp=46): # test_mail only: 27 - 47
with self.assertQueryCount(__system__=26, emp=46): # test_mail only: 27 - 47
activity.action_feedback(feedback='Zizisse Done !')
@users('admin', 'emp')
@users('__system__', 'emp')
@warmup
@mute_logger('odoo.models.unlink')
def test_adv_activity_mixin(self):
record = self.env['mail.test.activity'].create({'name': 'Test'})
with self.assertQueryCount(admin=10, emp=15): # test_mail only: 9 - 13
with self.assertQueryCount(__system__=10, emp=15): # test_mail only: 9 - 13
activity = record.action_start('Test Start')
#read activity_type to normalize cache between enterprise and community
#voip module read activity_type during create leading to one less query in enterprise on action_close
@@ -193,60 +193,60 @@ class TestAdvMailPerformance(TransactionCase):
record.write({'name': 'Dupe write'})
with self.assertQueryCount(admin=28, emp=48): # test_mail only: 29 - 49
with self.assertQueryCount(__system__=28, emp=48): # test_mail only: 29 - 49
record.action_close('Dupe feedback')
self.assertEqual(record.activity_ids, self.env['mail.activity'])
@mute_logger('odoo.addons.mail.models.mail_mail', 'odoo.models.unlink')
@users('admin', 'emp')
@users('__system__', 'emp')
@warmup
def test_message_assignation_email(self):
self.user_test.write({'notification_type': 'email'})
record = self.env['mail.test.track'].create({'name': 'Test'})
with self.assertQueryCount(admin=56, emp=75): # com runbot: 56 - 75 // test_mail only: 56 - 75
with self.assertQueryCount(__system__=56, emp=75): # com runbot: 56 - 75 // test_mail only: 56 - 75
record.write({
'user_id': self.user_test.id,
})
@users('admin', 'emp')
@users('__system__', 'emp')
@warmup
def test_message_assignation_inbox(self):
record = self.env['mail.test.track'].create({'name': 'Test'})
with self.assertQueryCount(admin=36, emp=47): # test_mail only: 43 - 54
with self.assertQueryCount(__system__=36, emp=47): # test_mail only: 43 - 54
record.write({
'user_id': self.user_test.id,
})
@users('admin', 'emp')
@users('__system__', 'emp')
@warmup
def test_message_log(self):
record = self.env['mail.test.simple'].create({'name': 'Test'})
with self.assertQueryCount(admin=2, emp=2): # test_mail only: 2 - 2
with self.assertQueryCount(__system__=2, emp=2): # test_mail only: 2 - 2
record._message_log(
body='<p>Test _message_log</p>',
message_type='comment')
@users('admin', 'emp')
@users('__system__', 'emp')
@warmup
def test_message_log_with_post(self):
record = self.env['mail.test.simple'].create({'name': 'Test'})
with self.assertQueryCount(admin=7, emp=13): # test_mail only: 7 - 13
with self.assertQueryCount(__system__=7, emp=13): # test_mail only: 7 - 13
record.message_post(
body='<p>Test message_post as log</p>',
subtype='mail.mt_note',
message_type='comment')
@users('admin', 'emp')
@users('__system__', 'emp')
@warmup
def test_message_post_no_notification(self):
record = self.env['mail.test.simple'].create({'name': 'Test'})
with self.assertQueryCount(admin=7, emp=13): # test_mail only: 7 - 13
with self.assertQueryCount(__system__=7, emp=13): # test_mail only: 7 - 13
record.message_post(
body='<p>Test Post Performances basic</p>',
partner_ids=[],
@@ -254,24 +254,24 @@ class TestAdvMailPerformance(TransactionCase):
subtype='mail.mt_comment')
@mute_logger('odoo.addons.mail.models.mail_mail', 'odoo.models.unlink')
@users('admin', 'emp')
@users('__system__', 'emp')
@warmup
def test_message_post_one_email_notification(self):
record = self.env['mail.test.simple'].create({'name': 'Test'})
with self.assertQueryCount(admin=48, emp=68): # com runbot: 45 - 65 // test_mail only: 48 - 68
with self.assertQueryCount(__system__=48, emp=68): # com runbot: 45 - 65 // test_mail only: 48 - 68
record.message_post(
body='<p>Test Post Performances with an email ping</p>',
partner_ids=self.customer.ids,
message_type='comment',
subtype='mail.mt_comment')
@users('admin', 'emp')
@users('__system__', 'emp')
@warmup
def test_message_post_one_inbox_notification(self):
record = self.env['mail.test.simple'].create({'name': 'Test'})
with self.assertQueryCount(admin=31, emp=42): # com runbot 30 - 41 // test_mail only: 31 - 42
with self.assertQueryCount(__system__=31, emp=42): # com runbot 30 - 41 // test_mail only: 31 - 42
record.message_post(
body='<p>Test Post Performances with an inbox ping</p>',
partner_ids=self.user_test.partner_id.ids,
@@ -279,28 +279,28 @@ class TestAdvMailPerformance(TransactionCase):
subtype='mail.mt_comment')
@mute_logger('odoo.models.unlink')
@users('admin', 'emp')
@users('__system__', 'emp')
@warmup
def test_message_subscribe_default(self):
record = self.env['mail.test.simple'].create({'name': 'Test'})
with self.assertQueryCount(admin=7, emp=7): # test_mail only: 6 - 6
with self.assertQueryCount(__system__=7, emp=7): # test_mail only: 6 - 6
record.message_subscribe(partner_ids=self.user_test.partner_id.ids)
with self.assertQueryCount(admin=3, emp=3): # test_mail only: 2 - 2
with self.assertQueryCount(__system__=3, emp=3): # test_mail only: 2 - 2
record.message_subscribe(partner_ids=self.user_test.partner_id.ids)
@mute_logger('odoo.models.unlink')
@users('admin', 'emp')
@users('__system__', 'emp')
@warmup
def test_message_subscribe_subtypes(self):
record = self.env['mail.test.simple'].create({'name': 'Test'})
subtype_ids = (self.env.ref('test_mail.st_mail_test_simple_external') | self.env.ref('mail.mt_comment')).ids
with self.assertQueryCount(admin=6, emp=6): # test_mail only: 5 - 5
with self.assertQueryCount(__system__=6, emp=6): # test_mail only: 5 - 5
record.message_subscribe(partner_ids=self.user_test.partner_id.ids, subtype_ids=subtype_ids)
with self.assertQueryCount(admin=2, emp=2): # test_mail only: 1 - 1
with self.assertQueryCount(__system__=2, emp=2): # test_mail only: 1 - 1
record.message_subscribe(partner_ids=self.user_test.partner_id.ids, subtype_ids=subtype_ids)
@@ -333,7 +333,6 @@ class TestHeavyMailPerformance(TransactionCase):
})
self.admin = self.env.user
self.admin.login = 'admin'
# setup mail gateway
self.env['ir.config_parameter'].sudo().set_param('mail.catchall.domain', 'example.com')
@@ -364,7 +363,7 @@ class TestHeavyMailPerformance(TransactionCase):
)
@mute_logger('odoo.tests', 'odoo.addons.mail.models.mail_mail', 'odoo.models.unlink')
@users('admin', 'emp')
@users('__system__', 'emp')
@warmup
def test_complex_mail_mail_send(self):
message = self.env['mail.message'].sudo().create({
@@ -382,20 +381,20 @@ class TestHeavyMailPerformance(TransactionCase):
})
mail_ids = mail.ids
with self.assertQueryCount(admin=13, emp=20): # test_mail only: 13 - 20
with self.assertQueryCount(__system__=13, emp=20): # test_mail only: 13 - 20
self.env['mail.mail'].browse(mail_ids).send()
self.assertEqual(mail.body_html, '<p>Test</p>')
self.assertEqual(mail.reply_to, formataddr(('%s %s' % (self.env.user.company_id.name, self.umbrella.name), 'test-alias@example.com')))
@mute_logger('odoo.tests', 'odoo.addons.mail.models.mail_mail', 'odoo.models.unlink')
@users('admin', 'emp')
@users('__system__', 'emp')
@warmup
def test_complex_message_post(self):
self.umbrella.message_subscribe(self.user_portal.partner_id.ids)
record = self.umbrella.sudo(self.env.user)
with self.assertQueryCount(admin=80, emp=103): # com runbot 90 - 113 // test_mail only: 97 - 120
with self.assertQueryCount(__system__=80, emp=103): # com runbot 90 - 113 // test_mail only: 97 - 120
record.message_post(
body='<p>Test Post Performances</p>',
message_type='comment',
@@ -405,21 +404,21 @@ class TestHeavyMailPerformance(TransactionCase):
self.assertEqual(record.message_ids[0].needaction_partner_ids, self.partners | self.user_portal.partner_id)
@mute_logger('odoo.tests', 'odoo.addons.mail.models.mail_mail', 'odoo.models.unlink')
@users('admin', 'emp')
@users('__system__', 'emp')
@warmup
def test_complex_message_post_template(self):
self.umbrella.message_subscribe(self.user_portal.partner_id.ids)
record = self.umbrella.sudo(self.env.user)
template_id = self.env.ref('test_mail.mail_test_tpl').id
with self.assertQueryCount(admin=99, emp=134): # com runbot 109 - 144 // test_mail only: 116 - 151
with self.assertQueryCount(__system__=99, emp=134): # com runbot 109 - 144 // test_mail only: 116 - 151
record.message_post_with_template(template_id, message_type='comment', composition_mode='comment')
self.assertEqual(record.message_ids[0].body, '<p>Adding stuff on %s</p>' % record.name)
self.assertEqual(record.message_ids[0].needaction_partner_ids, self.partners | self.user_portal.partner_id | self.customer)
@mute_logger('odoo.tests', 'odoo.addons.mail.models.mail_mail', 'odoo.models.unlink')
@users('admin', 'emp')
@users('__system__', 'emp')
@warmup
def test_complex_message_subscribe(self):
pids = self.partners.ids
@@ -437,7 +436,7 @@ class TestHeavyMailPerformance(TransactionCase):
self.assertEqual(rec.message_channel_ids, self.env['mail.channel'])
# subscribe new followers with forced given subtypes
with self.assertQueryCount(admin=9, emp=9): # test_mail only: 8 - 8
with self.assertQueryCount(__system__=9, emp=9): # test_mail only: 8 - 8
rec.message_subscribe(
partner_ids=pids[:4],
channel_ids=cids,
@@ -448,7 +447,7 @@ class TestHeavyMailPerformance(TransactionCase):
self.assertEqual(rec.message_channel_ids, self.channel)
# subscribe existing and new followers with force=False, meaning only some new followers will be added
with self.assertQueryCount(admin=7, emp=7): # test_mail only: 6 - 6
with self.assertQueryCount(__system__=7, emp=7): # test_mail only: 6 - 6
rec.message_subscribe(
partner_ids=pids[:6],
channel_ids=cids,
@@ -459,7 +458,7 @@ class TestHeavyMailPerformance(TransactionCase):
self.assertEqual(rec.message_channel_ids, self.channel)
# subscribe existing and new followers with force=True, meaning all will have the same subtypes
with self.assertQueryCount(admin=8, emp=8): # test_mail only: 7 - 7
with self.assertQueryCount(__system__=8, emp=8): # test_mail only: 7 - 7
rec.message_subscribe(
partner_ids=pids,
channel_ids=cids,
@@ -470,7 +469,7 @@ class TestHeavyMailPerformance(TransactionCase):
self.assertEqual(rec.message_channel_ids, self.channel)
@mute_logger('odoo.tests', 'odoo.addons.mail.models.mail_mail', 'odoo.models.unlink')
@users('admin', 'emp')
@users('__system__', 'emp')
@warmup
def test_complex_tracking_assignation(self):
""" Assignation performance test on already-created record """
@@ -482,7 +481,7 @@ class TestHeavyMailPerformance(TransactionCase):
})
self.assertEqual(rec.message_partner_ids, self.partners | self.env.user.partner_id)
with self.assertQueryCount(admin=58, emp=77): # com runbot: 65 - 83 // test_mail only: 66 - 84
with self.assertQueryCount(__system__=58, emp=77): # com runbot: 65 - 83 // test_mail only: 66 - 84
rec.write({'user_id': self.user_portal.id})
self.assertEqual(rec.message_partner_ids, self.partners | self.env.user.partner_id | self.user_portal.partner_id)
@@ -497,7 +496,7 @@ class TestHeavyMailPerformance(TransactionCase):
self.assertEqual(rec.message_ids[2].needaction_partner_ids, self.env['res.partner'])
@mute_logger('odoo.tests', 'odoo.addons.mail.models.mail_mail', 'odoo.models.unlink')
@users('admin', 'emp')
@users('__system__', 'emp')
@warmup
def test_complex_tracking_subscription_create(self):
""" Creation performance test involving auto subscription, assignation, tracking with subtype and template send. """
@@ -505,7 +504,7 @@ class TestHeavyMailPerformance(TransactionCase):
customer_id = self.customer.id
user_id = self.user_portal.id
with self.assertQueryCount(admin=155, emp=190): # com runbot: 155 - 190 // test_mail only: 155 - 190
with self.assertQueryCount(__system__=155, emp=190): # com runbot: 155 - 190 // test_mail only: 155 - 190
rec = self.env['mail.test.full'].create({
'name': 'Test',
'umbrella_id': umbrella_id,
@@ -522,7 +521,7 @@ class TestHeavyMailPerformance(TransactionCase):
self.assertEqual(rec.message_ids[1].needaction_partner_ids, self.env['res.partner'])
@mute_logger('odoo.tests', 'odoo.addons.mail.models.mail_mail', 'odoo.models.unlink')
@users('admin', 'emp')
@users('__system__', 'emp')
@warmup
def test_complex_tracking_subscription_subtype(self):
""" Write performance test involving auto subscription, tracking with subtype """
@@ -534,7 +533,7 @@ class TestHeavyMailPerformance(TransactionCase):
})
self.assertEqual(rec.message_partner_ids, self.user_portal.partner_id | self.env.user.partner_id)
with self.assertQueryCount(admin=94, emp=111): # com runbot: 104 - 123 // test_mail only: 105 - 124
with self.assertQueryCount(__system__=94, emp=111): # com runbot: 104 - 123 // test_mail only: 105 - 124
rec.write({
'name': 'Test2',
'umbrella_id': self.umbrella.id,
@@ -552,7 +551,7 @@ class TestHeavyMailPerformance(TransactionCase):
self.assertEqual(rec.message_ids[2].needaction_partner_ids, self.env['res.partner'])
@mute_logger('odoo.tests', 'odoo.addons.mail.models.mail_mail', 'odoo.models.unlink')
@users('admin', 'emp')
@users('__system__', 'emp')
@warmup
def test_complex_tracking_subscription_write(self):
""" Write performance test involving auto subscription, tracking with subtype and template send """
@@ -572,7 +571,7 @@ class TestHeavyMailPerformance(TransactionCase):
})
self.assertEqual(rec.message_partner_ids, self.user_portal.partner_id | self.env.user.partner_id)
with self.assertQueryCount(admin=100, emp=122): # test_mail only: 111 - 134
with self.assertQueryCount(__system__=100, emp=122): # test_mail only: 111 - 134
rec.write({
'name': 'Test2',
'umbrella_id': umbrella_id,
@@ -591,7 +590,7 @@ class TestHeavyMailPerformance(TransactionCase):
self.assertEqual(rec.message_ids[2].needaction_partner_ids, self.env['res.partner'])
@mute_logger('odoo.tests', 'odoo.addons.mail.models.mail_mail', 'odoo.models.unlink')
@users('admin', 'emp')
@users('__system__', 'emp')
@warmup
def test_complex_tracking_template(self):
""" Write performance test involving assignation, tracking with template """
@@ -606,7 +605,7 @@ class TestHeavyMailPerformance(TransactionCase):
})
self.assertEqual(rec.message_partner_ids, self.partners | self.env.user.partner_id | self.user_portal.partner_id)
with self.assertQueryCount(admin=54, emp=76): # test_mail only: 54 - 75
with self.assertQueryCount(__system__=54, emp=76): # test_mail only: 54 - 75
rec.write({
'name': 'Test2',
'customer_id': customer_id,
+5 -1
View File
@@ -6,7 +6,7 @@
</record>
<record id="group_website_designer" model="res.groups">
<field name="name">Editor and Designer</field>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
<field name="implied_ids" eval="[(4, ref('group_website_publisher'))]"/>
<field name="category_id" ref="base.module_category_website"/>
</record>
@@ -14,6 +14,10 @@
<record id="base.default_user" model="res.users">
<field name="groups_id" eval="[(4, ref('group_website_designer'))]"/>
</record>
<!-- FIXME: groups on existing users should probably be updated when implied_ids is, or existing users don't get the relevant implied groups on module installation... -->
<record id="base.user_admin" model="res.users">
<field name="groups_id" eval="[(4, ref('website.group_website_designer'))]"/>
</record>
<record id="base.group_system" model="res.groups">
<field name="implied_ids" eval="[(4, ref('website.group_website_designer'))]"/>
+3
View File
@@ -26,6 +26,9 @@
<record id="base.user_root" model="res.users">
<field name="karma">2500</field>
</record>
<record id="base.user_admin" model="res.users">
<field name="karma">2500</field>
</record>
<!-- Answers subtypes -->
<record id="mt_answer_new" model="mail.message.subtype">
+1 -1
View File
@@ -6,7 +6,7 @@
<field name="public_info">Designer, UI Expert</field>
</record>
<record id="hr.employee_root" model="hr.employee">
<record id="hr.employee_admin" model="hr.employee">
<field name="website_published" eval="True"/>
<field name="public_info">Lean Management Expert</field>
</record>
@@ -4,6 +4,7 @@ odoo.define('website_sale.test', function (require) {
require("website_sale.tour");
var tour = require("web_tour.tour");
var base = require("web_editor.base");
var ajax = require('web.ajax');
var steps = tour.tours.shop_buy_product.steps;
for (var k=0; k<steps.length; k++) {
@@ -45,41 +46,10 @@ tour.register('shop_customize', {
extra_trigger: 'body:not(:has(.oe_website_sale .oe_product_cart:eq(2)))',
trigger: '.oe_product_cart a:contains("Customizable Desk")',
},
{
content: "open customize menu",
trigger: '#customize-menu',
extra_trigger: "#product_detail",
run: function() {
// ENABLE VARIANT GROUP
$('body').addClass('notReady');
var ajax = odoo.__DEBUG__.services['web.ajax'];
var get_group_payload = {
model: 'ir.model.data',
method: 'xmlid_to_res_id',
args: ['product.group_product_variant', false],
kwargs: {}
};
ajax.jsonpRpc('/web/dataset/call_kw', 'call', get_group_payload).then(function(group_id) {
ajax.jsonpRpc('/web/dataset/call_kw', 'call', {
model: 'res.groups',
method: 'write',
args: [group_id, {'users': [[4, 1]]}],
kwargs: {}
}).then(function() {
location.reload(true);
});
});
},
},
{
content: "open customize menu",
trigger: '#customize-menu > a',
extra_trigger: 'body:not(.notReady)',
},
{
content: "check page loaded after enable variant group",
trigger: '#customize-menu a:contains(List View of Variants)',
run: function () {}, // it's a check
extra_trigger: "#product_detail",
},
{
content: "click on 'List View of Variants'",
@@ -6,4 +6,8 @@ import odoo.tests
class TestUi(odoo.tests.HttpCase):
def test_01_admin_shop_customize_tour(self):
self.env.ref('product.group_product_variant').write({
'users': [(4, self.env.ref('base.user_admin').id)]
})
self.phantom_js("/", "odoo.__DEBUG__.services['web_tour.tour'].run('shop_customize')", "odoo.__DEBUG__.services['web_tour.tour'].tours.shop_customize.ready", login="admin")
+6 -6
View File
@@ -126,20 +126,20 @@ CREATE TABLE res_partner (
---------------------------------
insert into res_currency (id, name, symbol) VALUES (1, 'EUR', '€');
insert into ir_model_data (name, module, model, noupdate, res_id) VALUES ('EUR', 'base', 'res.currency', true, 1);
select setval('res_currency_id_seq', 2);
select setval('res_currency_id_seq', 1);
insert into res_company (id, name, partner_id, currency_id, create_date) VALUES (1, 'My Company', 1, 1, now() at time zone 'UTC');
insert into ir_model_data (name, module, model, noupdate, res_id) VALUES ('main_company', 'base', 'res.company', true, 1);
select setval('res_company_id_seq', 2);
select setval('res_company_id_seq', 1);
insert into res_partner (id, name, company_id, create_date) VALUES (1, 'My Company', 1, now() at time zone 'UTC');
insert into ir_model_data (name, module, model, noupdate, res_id) VALUES ('main_partner', 'base', 'res.partner', true, 1);
select setval('res_partner_id_seq', 2);
select setval('res_partner_id_seq', 1);
insert into res_users (id, login, password, active, partner_id, company_id, create_date) VALUES (1, 'admin', 'admin', true, 1, 1, now() at time zone 'UTC');
insert into res_users (id, login, password, active, partner_id, company_id, create_date) VALUES (1, '__system__', NULL, false, 1, 1, now() at time zone 'UTC');
insert into ir_model_data (name, module, model, noupdate, res_id) VALUES ('user_root', 'base', 'res.users', true, 1);
select setval('res_users_id_seq', 2);
select setval('res_users_id_seq', 1);
insert into res_groups (id, name) VALUES (1, 'Employee');
insert into ir_model_data (name, module, model, noupdate, res_id) VALUES ('group_user', 'base', 'res.groups', true, 1);
select setval('res_groups_id_seq', 2);
select setval('res_groups_id_seq', 1);
@@ -16,6 +16,13 @@
</record>
<record model="res.partner" id="base.partner_root">
<field name="name">System</field>
<field name="company_id" ref="main_company"/>
<field name="customer" eval="False"/>
<field name="active" eval="False"/>
</record>
<record model="res.partner" id="base.partner_admin">
<field name="name">Administrator</field>
<field name="company_id" ref="main_company"/>
<field name="customer" eval="False"/>
+13
View File
@@ -1,11 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<!-- user 1 is the technical admin user -->
<record model="res.users" id="base.user_root">
<field name="partner_id" ref="base.partner_root"/>
<field name="company_id" ref="main_company"/>
<field name="company_ids" eval="[(4, ref('main_company'))]"/>
<field name="signature"><![CDATA[<span>-- <br/>
System</span>]]></field>
</record>
<!-- user 2 is the human admin user -->
<record id="user_admin" model="res.users">
<field name="login">admin</field>
<field name="password">admin</field>
<field name="partner_id" ref="base.partner_admin"/>
<field name="company_id" ref="main_company"/>
<field name="company_ids" eval="[(4, ref('main_company'))]"/>
<field name="groups_id" eval="[(6,0,[])]"/>
<field name="signature"><![CDATA[<span>-- <br/>
Administrator</span>]]></field>
</record>
+5
View File
@@ -40,6 +40,11 @@
</record>
<record model="res.partner" id="base.partner_root">
<field name="email">root@yourcompany.example.com</field>
<field name="tz">Europe/Brussels</field>
</record>
<record model="res.partner" id="base.partner_admin">
<field name="name">Mitchell Stephens</field>
<field name="company_name">YourCompany</field>
<field name="street">215 Vine St</field>
+2 -9
View File
@@ -208,7 +208,7 @@ class Partner(models.Model):
compute='_compute_company_type', inverse='_write_company_type')
company_id = fields.Many2one('res.company', 'Company', index=True, default=_default_company)
color = fields.Integer(string='Color Index', default=0)
user_ids = fields.One2many('res.users', 'partner_id', string='Users', auto_join=True)
user_ids = fields.One2many('res.users', 'partner_id', string='Users', auto_join=True, context={'active_test': False})
partner_share = fields.Boolean(
'Share Partner', compute='_compute_partner_share', store=True,
help="Either customer (not a user), either shared user. Indicated the current partner is a customer without "
@@ -240,13 +240,6 @@ class Partner(models.Model):
('check_name', "CHECK( (type='contact' AND name IS NOT NULL) or (type!='contact') )", 'Contacts require a name.'),
]
@api.multi
def toggle_active(self):
for partner in self:
if partner.active and partner.user_ids:
raise ValidationError(_('You cannot archive a contact linked to an internal user.'))
super(Partner, self).toggle_active()
@api.depends('is_company', 'name', 'parent_id.name', 'type', 'company_name')
def _compute_display_name(self):
diff = dict(show_address=None, show_address_only=None, show_email=None)
@@ -506,7 +499,7 @@ class Partner(models.Model):
def write(self, vals):
if vals.get('active') is False:
for partner in self:
if partner.active and partner.user_ids:
if partner.active and any(partner.user_ids.mapped('active')):
raise ValidationError(_('You cannot archive a contact linked to an internal user.'))
# res.partner must only allow to set the company_id of a partner if it
# is the same as the company of all users that inherit from this partner
+4 -3
View File
@@ -14,7 +14,7 @@
<record model="res.groups" id="group_system">
<field name="name">Settings</field>
<field name="implied_ids" eval="[(4, ref('group_erp_manager'))]"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
<record model="res.groups" id="group_user">
@@ -38,11 +38,12 @@
</record>
<record model="res.groups" id="group_user">
<field name="implied_ids" eval="[(4, ref('group_no_one'))]"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
<record model="res.groups" id="group_partner_manager">
<field name="name">Contact Creation</field>
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
</record>
<record id="default_user" model="res.users">
@@ -89,4 +90,4 @@
</record>
</data>
</odoo>
</odoo>
+7 -3
View File
@@ -7,17 +7,21 @@ from odoo.tests import common
@common.tagged('post_install', '-at_install')
class TestXMLRPC(common.HttpCase):
def setUp(self):
super(TestXMLRPC, self).setUp()
self.admin_uid = self.env.ref('base.user_admin').id
def test_01_xmlrpc_login(self):
""" Try to login on the common service. """
db_name = common.get_db_name()
uid = self.xmlrpc_common.login(db_name, 'admin', 'admin')
self.assertEqual(uid, 1)
self.assertEqual(uid, self.admin_uid)
def test_xmlrpc_ir_model_search(self):
""" Try a search on the object service. """
o = self.xmlrpc_object
db_name = common.get_db_name()
ids = o.execute(db_name, 1, 'admin', 'ir.model', 'search', [])
ids = o.execute(db_name, self.admin_uid, 'admin', 'ir.model', 'search', [])
self.assertIsInstance(ids, list)
ids = o.execute(db_name, 1, 'admin', 'ir.model', 'search', [], {})
ids = o.execute(db_name, self.admin_uid, 'admin', 'ir.model', 'search', [], {})
self.assertIsInstance(ids, list)
+1 -1
View File
@@ -71,7 +71,7 @@ class Discussion(models.Model):
moderator = fields.Many2one('res.users')
categories = fields.Many2many('test_new_api.category',
'test_new_api_discussion_category', 'discussion', 'category')
participants = fields.Many2many('res.users')
participants = fields.Many2many('res.users', context={'active_test': False})
messages = fields.One2many('test_new_api.message', 'discussion')
message_concat = fields.Text(string='Message concatenate')
important_messages = fields.One2many('test_new_api.message', 'discussion',
@@ -451,7 +451,7 @@ class TestOnChange(common.TransactionCase):
onchange_result = {
'message_name': 'Hey dude!',
'message_currency': (1, 'Mitchell Stephens')
'message_currency': self.env.user.name_get()[0],
}
self.env.cache.invalidate()
@@ -10,14 +10,14 @@ from odoo.tools import pycompat
class TestPerformance(TransactionCase):
@users('admin', 'demo')
@users('__system__', 'demo')
@warmup
def test_read_base(self):
""" Read records. """
records = self.env['test_performance.base'].search([])
self.assertEqual(len(records), 5)
with self.assertQueryCount(admin=3, demo=3):
with self.assertQueryCount(__system__=3, demo=3):
# without cache
for record in records:
record.partner_id.country_id.name
@@ -32,54 +32,54 @@ class TestPerformance(TransactionCase):
for record in records:
record.value_pc
@users('admin', 'demo')
@users('__system__', 'demo')
@warmup
def test_write_base(self):
""" Write records (no recomputation). """
records = self.env['test_performance.base'].search([])
self.assertEqual(len(records), 5)
with self.assertQueryCount(admin=1, demo=1):
with self.assertQueryCount(__system__=1, demo=1):
records.write({'name': 'X'})
@users('admin', 'demo')
@users('__system__', 'demo')
@warmup
def test_write_base_with_recomputation(self):
""" Write records (with recomputation). """
records = self.env['test_performance.base'].search([])
self.assertEqual(len(records), 5)
with self.assertQueryCount(admin=3, demo=3):
with self.assertQueryCount(__system__=3, demo=3):
records.write({'value': 42})
@users('admin', 'demo')
@users('__system__', 'demo')
@warmup
def test_create_base(self):
""" Create records. """
with self.assertQueryCount(admin=6, demo=6):
with self.assertQueryCount(__system__=6, demo=6):
self.env['test_performance.base'].create({'name': 'X'})
@users('admin', 'demo')
@users('__system__', 'demo')
@warmup
def test_create_base_with_lines(self):
""" Create records with one2many lines. """
with self.assertQueryCount(admin=20, demo=20):
with self.assertQueryCount(__system__=20, demo=20):
self.env['test_performance.base'].create({
'name': 'X',
'line_ids': [(0, 0, {'value': val}) for val in range(10)],
})
@users('admin', 'demo')
@users('__system__', 'demo')
@warmup
def test_create_base_with_tags(self):
""" Create records with many2many tags. """
with self.assertQueryCount(admin=17, demo=17):
with self.assertQueryCount(__system__=17, demo=17):
self.env['test_performance.base'].create({
'name': 'X',
'tag_ids': [(0, 0, {'name': val}) for val in range(10)],
})
@users('admin', 'demo')
@users('__system__', 'demo')
@warmup
def test_several_prefetch(self):
initial_records = self.env['test_performance.base'].search([])
@@ -91,11 +91,11 @@ class TestPerformance(TransactionCase):
records = self.env['test_performance.base'].search([])
self.assertEqual(len(records), 1280)
# should only cause 2 queries thanks to prefetching
with self.assertQueryCount(admin=2, demo=2):
with self.assertQueryCount(__system__=2, demo=2):
records.mapped('value')
records.invalidate_cache(['value'])
with self.assertQueryCount(admin=2, demo=2):
with self.assertQueryCount(__system__=2, demo=2):
with self.env.do_in_onchange():
records.mapped('value')
self.env.cr.execute(
@@ -115,22 +115,22 @@ class TestPerformance(TransactionCase):
'value': sum(groups[partner.id]),
} for partner in partners]
@users('admin', 'demo')
@users('__system__', 'demo')
def test_read_group_with_name_get(self):
model = self.env['test_performance.base']
expected = self.expected_read_group()
# use read_group and check the expected result
with self.assertQueryCount(admin=2, demo=2):
with self.assertQueryCount(__system__=2, demo=2):
model.invalidate_cache()
result = model.read_group([], ['partner_id', 'value'], ['partner_id'])
self.assertEqual(result, expected)
@users('admin', 'demo')
@users('__system__', 'demo')
def test_read_group_without_name_get(self):
model = self.env['test_performance.base']
expected = self.expected_read_group()
# use read_group and check the expected result
with self.assertQueryCount(admin=1, demo=1):
with self.assertQueryCount(__system__=1, demo=1):
model.invalidate_cache()
result = model.read_group([], ['partner_id', 'value'], ['partner_id'])
self.assertEqual(len(result), len(expected))
@@ -140,5 +140,5 @@ class TestPerformance(TransactionCase):
self.assertEqual(res['partner_id_count'], exp['partner_id_count'])
self.assertEqual(res['value'], exp['value'])
# now serialize to json, which should force evaluation
with self.assertQueryCount(admin=1, demo=1):
with self.assertQueryCount(__system__=1, demo=1):
json.dumps(result)
+2 -1
View File
@@ -856,9 +856,10 @@ def users(*logins):
old_uid = self.uid
try:
# retrieve users
Users = self.env['res.users'].with_context(active_test=False)
user_id = {
user.login: user.id
for user in self.env['res.users'].search([('login', 'in', list(logins))])
for user in Users.search([('login', 'in', list(logins))])
}
for login in logins:
with self.subTest(login=login):