In this commit we have changed some order of fields in attendees form view, changes are listed below, - moved `partner_id` field next to `event_ticket_id` and made this field editable and trackable, this change had done because currently this is the first field you see and it currently looks like this is the person that's coming. - moved `visitor_id` field below `mobile` field, so that even in debug mode, Attendee Name is the "primary" field. Apart from that right now if there are attendee data (name/email/phone) and when we update the partner_id these attendee data will be erased and updated as the new partner's information. In this commit we are improving this, if there is any attendee data it will not get erased while partner_id is updated. Attendee data will get updated only if name/email/phone fields are empty. TaskID-2670765 Part-of: odoo/odoo#79166
80 lines
3.7 KiB
Python
80 lines
3.7 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
import datetime
|
|
|
|
from dateutil.relativedelta import relativedelta
|
|
|
|
from odoo.addons.event.tests.common import TestEventCommon
|
|
from odoo.exceptions import ValidationError
|
|
from odoo.tools import mute_logger
|
|
|
|
|
|
class TestEventFlow(TestEventCommon):
|
|
|
|
@mute_logger('odoo.addons.base.models.ir_model', 'odoo.models')
|
|
def test_event_auto_confirm(self):
|
|
""" Basic event management with auto confirmation """
|
|
# EventUser creates a new event: ok
|
|
test_event = self.env['event.event'].with_user(self.user_eventmanager).create({
|
|
'name': 'TestEvent',
|
|
'auto_confirm': True,
|
|
'date_begin': datetime.datetime.now() + relativedelta(days=-1),
|
|
'date_end': datetime.datetime.now() + relativedelta(days=1),
|
|
'seats_max': 2,
|
|
'seats_limited': True,
|
|
})
|
|
self.assertTrue(test_event.auto_confirm)
|
|
|
|
# EventUser create registrations for this event
|
|
test_reg1 = self.env['event.registration'].with_user(self.user_eventuser).create({
|
|
'name': 'TestReg1',
|
|
'event_id': test_event.id,
|
|
})
|
|
self.assertEqual(test_reg1.state, 'open', 'Event: auto_confirmation of registration failed')
|
|
self.assertEqual(test_event.seats_reserved, 1, 'Event: wrong number of reserved seats after confirmed registration')
|
|
test_reg2 = self.env['event.registration'].with_user(self.user_eventuser).create({
|
|
'name': 'TestReg2',
|
|
'event_id': test_event.id,
|
|
})
|
|
self.assertEqual(test_reg2.state, 'open', 'Event: auto_confirmation of registration failed')
|
|
self.assertEqual(test_event.seats_reserved, 2, 'Event: wrong number of reserved seats after confirmed registration')
|
|
|
|
# EventUser create registrations for this event: too much registrations
|
|
with self.assertRaises(ValidationError):
|
|
self.env['event.registration'].with_user(self.user_eventuser).create({
|
|
'name': 'TestReg3',
|
|
'event_id': test_event.id,
|
|
})
|
|
|
|
# EventUser validates registrations
|
|
test_reg1.action_set_done()
|
|
self.assertEqual(test_reg1.state, 'done', 'Event: wrong state of attended registration')
|
|
self.assertEqual(test_event.seats_used, 1, 'Event: incorrect number of attendees after closing registration')
|
|
test_reg2.action_set_done()
|
|
self.assertEqual(test_reg1.state, 'done', 'Event: wrong state of attended registration')
|
|
self.assertEqual(test_event.seats_used, 2, 'Event: incorrect number of attendees after closing registration')
|
|
|
|
@mute_logger('odoo.addons.base.models.ir_model', 'odoo.models')
|
|
def test_event_flow(self):
|
|
""" Advanced event flow: no auto confirmation, manage minimum / maximum
|
|
seats, ... """
|
|
# EventUser creates a new event: ok
|
|
test_event = self.env['event.event'].with_user(self.user_eventmanager).create({
|
|
'name': 'TestEvent',
|
|
'date_begin': datetime.datetime.now() + relativedelta(days=-1),
|
|
'date_end': datetime.datetime.now() + relativedelta(days=1),
|
|
'seats_limited': True,
|
|
'seats_max': 10,
|
|
})
|
|
self.assertFalse(test_event.auto_confirm)
|
|
|
|
# EventUser create registrations for this event -> no auto confirmation
|
|
test_reg1 = self.env['event.registration'].with_user(self.user_eventuser).create({
|
|
'name': 'TestReg1',
|
|
'event_id': test_event.id,
|
|
})
|
|
self.assertEqual(
|
|
test_reg1.state, 'draft',
|
|
'Event: new registration should not be confirmed with auto_confirmation parameter being False')
|