diff --git a/addons/event/models/event_event.py b/addons/event/models/event_event.py
index fdbe02e4ea9..2c03877553a 100644
--- a/addons/event/models/event_event.py
+++ b/addons/event/models/event_event.py
@@ -116,7 +116,7 @@ class EventEvent(models.Model):
color = fields.Integer('Kanban Color Index')
event_mail_ids = fields.One2many('event.mail', 'event_id', string='Mail Schedule', copy=True)
# Kanban fields
- kanban_state = fields.Selection([('normal', 'In Progress'), ('done', 'Done'), ('blocked', 'Blocked')])
+ kanban_state = fields.Selection([('normal', 'In Progress'), ('done', 'Done'), ('blocked', 'Blocked')], default='normal')
kanban_state_label = fields.Char(compute='_compute_kanban_state_label', string='Kanban State Label', tracking=True, store=True)
stage_id = fields.Many2one(
'event.stage', ondelete='restrict', default=_get_default_stage_id,
diff --git a/addons/event/models/event_ticket.py b/addons/event/models/event_ticket.py
index 5885602d2b7..434901604e1 100644
--- a/addons/event/models/event_ticket.py
+++ b/addons/event/models/event_ticket.py
@@ -65,7 +65,7 @@ class EventTicket(models.Model):
start_sale_date = fields.Date(string="Registration Start")
end_sale_date = fields.Date(string="Registration End")
is_expired = fields.Boolean(string='Is Expired', compute='_compute_is_expired')
- sale_available = fields.Boolean(string='Is Available', compute='_compute_sale_available')
+ sale_available = fields.Boolean(string='Is Available', compute='_compute_sale_available', compute_sudo=True)
registration_ids = fields.One2many('event.registration', 'event_ticket_id', string='Registrations')
# seats
seats_reserved = fields.Integer(string='Reserved Seats', compute='_compute_seats', store=True)
diff --git a/addons/event/views/event_views.xml b/addons/event/views/event_views.xml
index 949b2ea72d9..efdc0501cc6 100644
--- a/addons/event/views/event_views.xml
+++ b/addons/event/views/event_views.xml
@@ -207,7 +207,7 @@
-
+
diff --git a/addons/website_event/controllers/main.py b/addons/website_event/controllers/main.py
index 5733639002f..84fa751112e 100644
--- a/addons/website_event/controllers/main.py
+++ b/addons/website_event/controllers/main.py
@@ -296,7 +296,6 @@ class WebsiteEventController(http.Controller):
{'1-name': 'r', '1-email': 'r@r.com', '1-phone': '', '1-event_ticket_id': '1'}
"""
registration_fields = request.env['event.registration']._fields
-
registrations = {}
global_values = {}
for key, value in form_details.items():
diff --git a/addons/website_event_questions/controllers/main.py b/addons/website_event_questions/controllers/main.py
index bc8f98f1678..a24ccc941f9 100644
--- a/addons/website_event_questions/controllers/main.py
+++ b/addons/website_event_questions/controllers/main.py
@@ -9,10 +9,20 @@ class WebsiteEvent(WebsiteEventController):
def _process_attendees_form(self, event, form_details):
''' Process data posted from the attendee details form. '''
registrations = super(WebsiteEvent, self)._process_attendees_form(event, form_details)
+
for registration in registrations:
- answer_ids = []
- for key, value in registration.items():
- if key.startswith('answer_ids-'):
- answer_ids.append([4, int(value)])
- registration['answer_ids'] = answer_ids
+ registration['answer_ids'] = []
+
+ general_answer_ids = []
+ for key, value in form_details.items():
+ if 'answer_ids' in key:
+ index = int(key.split('-')[0])
+ if not index:
+ general_answer_ids.append([4, int(value)])
+ else:
+ registrations[index-1]['answer_ids'].append([4, int(value)])
+
+ for registration in registrations:
+ registration['answer_ids'].extend(general_answer_ids)
+
return registrations
diff --git a/addons/website_event_questions/tests/test_event_internals.py b/addons/website_event_questions/tests/test_event_internals.py
index dd13343b62c..aedaf148fc9 100644
--- a/addons/website_event_questions/tests/test_event_internals.py
+++ b/addons/website_event_questions/tests/test_event_internals.py
@@ -3,9 +3,11 @@
from datetime import datetime, timedelta
-from odoo.addons.website_event_questions.tests.common import TestEventQuestionCommon
from odoo.fields import Datetime as FieldsDatetime
from odoo.tests.common import users
+from odoo.addons.website.tools import MockRequest
+from odoo.addons.website_event_questions.controllers.main import WebsiteEvent
+from odoo.addons.website_event_questions.tests.common import TestEventQuestionCommon
class TestEventData(TestEventQuestionCommon):
@@ -29,3 +31,34 @@ class TestEventData(TestEventQuestionCommon):
self.assertEqual(
set(event.general_question_ids.mapped('answer_ids.name')),
set(['Q2-Answer1', 'Q2-Answer2']))
+
+ def test_process_attendees_form(self):
+ event = self.env['event.event'].create({
+ 'name': 'Event Update Type',
+ 'event_type_id': self.event_type_complex.with_user(self.env.user).id,
+ 'date_begin': FieldsDatetime.to_string(datetime.today() + timedelta(days=1)),
+ 'date_end': FieldsDatetime.to_string(datetime.today() + timedelta(days=15)),
+ })
+
+ form_details = {
+ '1-name': 'Pixis',
+ '1-email': 'pixis@gmail.com',
+ '1-phone': '+32444444444',
+ '1-event_ticket_id': '2',
+ '1-answer_ids-8': '5',
+ '2-name': 'Geluchat',
+ '2-email': 'geluchat@gmail.com',
+ '2-phone': '+32777777777',
+ '2-event_ticket_id': '3',
+ '2-answer_ids-8': '9',
+ '0-answer_ids-3': '7',
+ '0-answer_ids-4': '1',
+ }
+
+ with MockRequest(self.env):
+ registrations = WebsiteEvent()._process_attendees_form(event, form_details)
+
+ self.assertEqual(registrations, [
+ {'name': 'Pixis', 'email': 'pixis@gmail.com', 'phone': '+32444444444', 'event_ticket_id': 2, 'answer_ids': [[4, 5], [4, 7], [4, 1]]},
+ {'name': 'Geluchat', 'email': 'geluchat@gmail.com', 'phone': '+32777777777', 'event_ticket_id': 3, 'answer_ids': [[4, 9], [4, 7], [4, 1]]}
+ ])
diff --git a/addons/website_event_sale/controllers/main.py b/addons/website_event_sale/controllers/main.py
index d180679fb90..d9a84510319 100644
--- a/addons/website_event_sale/controllers/main.py
+++ b/addons/website_event_sale/controllers/main.py
@@ -55,6 +55,7 @@ class WebsiteEventSaleController(WebsiteEventController):
# free tickets -> order with amount = 0: auto-confirm, no checkout
elif order:
order.action_confirm() # tde notsure: email sending ?
+ request.website.sale_reset()
return res
diff --git a/addons/website_event_track/views/event_track_views.xml b/addons/website_event_track/views/event_track_views.xml
index a9e13eeef2d..1ed32c7ffab 100644
--- a/addons/website_event_track/views/event_track_views.xml
+++ b/addons/website_event_track/views/event_track_views.xml
@@ -197,7 +197,6 @@
Event Tracks
event.track
kanban,tree,form,calendar,graph,activity
-
{'search_default_location': 1}
Add a new track
@@ -211,7 +210,7 @@
event.track
Event Tracks
kanban,tree,form,calendar,graph,activity
- {'search_default_event_id': active_id, 'default_event_id': active_id, 'search_default_location': 1}
+ {'search_default_event_id': active_id, 'default_event_id': active_id}
Add a new track