81 lines
3.0 KiB
Python
81 lines
3.0 KiB
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
import datetime
|
|
from odoo.tests import tagged
|
|
from odoo.addons.point_of_sale.tests.test_frontend import TestPointOfSaleHttpCommon
|
|
|
|
|
|
@tagged('post_install', '-at_install')
|
|
class TestUi(TestPointOfSaleHttpCommon):
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
super().setUpClass()
|
|
|
|
cls.event_category = cls.env['pos.category'].create({
|
|
'name': 'Events',
|
|
})
|
|
|
|
cls.product_event = cls.env['product.product'].create({
|
|
'name': 'Event Ticket',
|
|
'type': 'service',
|
|
'list_price': 100,
|
|
'taxes_id': False,
|
|
'available_in_pos': True,
|
|
'service_tracking': 'event',
|
|
'pos_categ_ids': [(4, cls.event_category.id)],
|
|
})
|
|
|
|
cls.test_event = cls.env['event.event'].create({
|
|
'name': 'My Awesome Event',
|
|
'user_id': cls.pos_admin.id,
|
|
'date_begin': datetime.datetime.now() + datetime.timedelta(days=1),
|
|
'date_end': datetime.datetime.now() + datetime.timedelta(days=2),
|
|
'seats_limited': True,
|
|
'seats_max': 2,
|
|
'event_ticket_ids': [(0, 0, {
|
|
'name': 'Ticket Basic',
|
|
'product_id': cls.product_event.id,
|
|
'seats_max': 1,
|
|
'price': 100,
|
|
}), (0, 0, {
|
|
'name': 'Ticket VIP',
|
|
'seats_max': 1,
|
|
'product_id': cls.product_event.id,
|
|
'price': 200,
|
|
})],
|
|
'question_ids': [
|
|
(0, 0, {
|
|
'title': 'Question1',
|
|
'question_type': 'simple_choice',
|
|
'once_per_order': False,
|
|
'answer_ids': [
|
|
(0, 0, {'name': 'Q1-Answer1'}),
|
|
(0, 0, {'name': 'Q1-Answer2'})
|
|
],
|
|
}),
|
|
(0, 0, {
|
|
'title': 'Question2',
|
|
'question_type': 'simple_choice',
|
|
'once_per_order': True,
|
|
'answer_ids': [
|
|
(0, 0, {'name': 'Q2-Answer1'}),
|
|
(0, 0, {'name': 'Q2-Answer2'})
|
|
],
|
|
})
|
|
]
|
|
})
|
|
|
|
def test_selling_event_in_pos(self):
|
|
self.pos_user.write({
|
|
'groups_id': [
|
|
(4, self.env.ref('event.group_event_user').id),
|
|
]
|
|
})
|
|
self.main_pos_config.with_user(self.pos_user).open_ui()
|
|
self.start_tour("/pos/ui?config_id=%d" % self.main_pos_config.id, 'SellingEventInPos', login="pos_user")
|
|
|
|
order = self.env['pos.order'].search([], order='id desc', limit=1)
|
|
event_registration = order.lines[0].event_registration_ids
|
|
event_answer_name = event_registration.registration_answer_ids.value_answer_id.mapped('name')
|
|
self.assertEqual(len(event_registration.registration_answer_ids), 2)
|
|
self.assertEqual(event_answer_name, ['Q1-Answer1', 'Q2-Answer1'])
|