Files
odoo_source/addons/event/tests/common.py
T
Thibault DelavalléeandJeremy Hennecart 643df62f12 [REF] event: merge phone and mobile fields on registration
RATIONALE

Merge two phone-related field on registration as they overlap. Having only
one is sufficient for contact-oriented model like registration.

SPECIFICATIONS

Registration model currently holds two phone field, phone and mobile. This
leads to having records with sometimes phone, sometimes mobile being filled.
This makes phone flows not easy: we have to define fallbacks (use phone or
mobile), data is not always synchronized, ... in the end what event users
need is one phone field to be able to communicate with attendees. Having
only one field is sufficient and simplifies the model.

Keep only one phone field, instead of two. Merge phone and mobile into a single
one, keeping phone as first value when having both available e.g. when
synchronizing with the partner.

Task-3366899

Part-of: odoo/odoo#128232
Co-authored-by: "Jeremy Hennecart" <jeh@odoo.com>
2023-09-27 17:40:55 +00:00

107 lines
3.9 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import fields
from odoo.addons.mail.tests.common import mail_new_test_user
from odoo.tests import common
class EventCase(common.TransactionCase):
@classmethod
def setUpClass(cls):
super(EventCase, cls).setUpClass()
cls.admin_user = cls.env.ref('base.user_admin')
cls.admin_user.write({
'country_id': cls.env.ref('base.be').id,
'login': 'admin',
'notification_type': 'inbox',
})
cls.company_admin = cls.admin_user.company_id
# set country in order to format Belgian numbers
cls.company_admin.write({
'country_id': cls.env.ref('base.be').id,
})
# Test users to use through the various tests
cls.user_portal = mail_new_test_user(
cls.env,
company_id=cls.company_admin.id,
email='patrick.portal@test.example.com',
groups='base.group_portal',
login='portal_test',
name='Patrick Portal',
notification_type='email',
tz='Europe/Brussels',
)
cls.user_employee = mail_new_test_user(
cls.env,
company_id=cls.company_admin.id,
email='eglantine.employee@test.example.com',
groups='base.group_user',
login='user_employee',
name='Eglantine Employee',
notification_type='inbox',
tz='Europe/Brussels',
)
cls.user_eventregistrationdesk = mail_new_test_user(
cls.env,
company_id=cls.company_admin.id,
email='ursule.eventregistration@test.example.com',
login='user_eventregistrationdesk',
groups='base.group_user,event.group_event_registration_desk',
name='Ursule EventRegistration',
notification_type='inbox',
tz='Europe/Brussels',
)
cls.user_eventuser = mail_new_test_user(
cls.env,
company_id=cls.company_admin.id,
email='ursule.eventuser@test.example.com',
groups='base.group_user,event.group_event_user',
login='user_eventuser',
name='Ursule EventUser',
notification_type='inbox',
tz='Europe/Brussels',
)
cls.user_eventmanager = mail_new_test_user(
cls.env,
company_id=cls.company_admin.id,
email='martine.eventmanager@test.example.com',
groups='base.group_user,event.group_event_manager',
login='user_eventmanager',
name='Martine EventManager',
notification_type='inbox',
tz='Europe/Brussels',
)
cls.event_customer = cls.env['res.partner'].create({
'name': 'Constantin Customer',
'email': 'constantin@test.example.com',
'country_id': cls.env.ref('base.be').id,
'phone': '0485112233',
'mobile': False,
})
cls.event_customer2 = cls.env['res.partner'].create({
'name': 'Constantin Customer 2',
'email': 'constantin2@test.example.com',
'country_id': cls.env.ref('base.be').id,
'phone': '0456987654',
'mobile': '0456654321',
})
cls.reference_now = fields.Datetime.from_string('2022-09-05 15:11:34')
@classmethod
def _create_registrations(cls, event, reg_count):
# create some registrations
create_date = fields.Datetime.now()
registrations = cls.env['event.registration'].create([{
'create_date': create_date,
'event_id': event.id,
'name': f'Test Registration {idx}',
'email': f'_test_reg_{idx}@example.com',
'phone': f'04560000{idx}{idx}',
} for idx in range(0, reg_count)])
return registrations