[IMP] website_event: fill attendee info if available when registering

To ease the process of the registration to an event, we prefill the first row
which holds the info of the attendee (name, email, phone), if they are available.
In most cases, the attendee:
- Take a ticket for himself
- Take a ticket for someone he's responsible of
- Take a ticket for someone else who doesn't want to be troubled by that
(ex: an assistant of a CEO)

task-2346145

closes odoo/odoo#58829

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
This commit is contained in:
Jérémy Hennecart
2020-10-07 09:04:47 +00:00
parent 265b1f92d3
commit 02b08cbdf8
2 changed files with 27 additions and 4 deletions
+21 -1
View File
@@ -312,7 +312,27 @@ class WebsiteEventController(http.Controller):
availability_check = False
if not tickets:
return False
return request.env['ir.ui.view']._render_template("website_event.registration_attendee_details", {'tickets': tickets, 'event': event, 'availability_check': availability_check})
default_first_attendee = {}
if not request.env.user._is_public():
default_first_attendee = {
"name": request.env.user.name,
"email": request.env.user.email,
"phone": request.env.user.mobile or request.env.user.phone,
}
else:
visitor = request.env['website.visitor']._get_visitor_from_request()
if visitor.email:
default_first_attendee = {
"name": visitor.name,
"email": visitor.email,
"phone": visitor.mobile,
}
return request.env['ir.ui.view']._render_template("website_event.registration_attendee_details", {
'tickets': tickets,
'event': event,
'availability_check': availability_check,
'default_first_attendee': default_first_attendee,
})
def _process_attendees_form(self, event, form_details):
""" Process data posted from the attendee details form.
@@ -269,15 +269,18 @@
<div class="row">
<div class="col-lg my-2">
<label>Name</label>
<input class="form-control" type="text" t-attf-name="#{counter}-name" required="This field is required"/>
<input class="form-control" type="text" t-attf-name="#{counter}-name" required="This field is required"
t-att-value="default_first_attendee.get('name', '') if counter == 1 else ''"/>
</div>
<div class="col-lg my-2">
<label>Email</label>
<input class="form-control" type="email" t-attf-name="#{counter}-email" required="This field is required"/>
<input class="form-control" type="email" t-attf-name="#{counter}-email" required="This field is required"
t-att-value="default_first_attendee.get('email', '') if counter == 1 else ''"/>
</div>
<div class="col-lg my-2">
<label>Phone <small>(Optional)</small></label>
<input class="form-control" type="tel" t-attf-name="#{counter}-phone"/>
<input class="form-control" type="tel" t-attf-name="#{counter}-phone"
t-att-value="default_first_attendee.get('phone', '') if counter == 1 else ''"/>
</div>
<input class="d-none" type="text" t-attf-name="#{counter}-event_ticket_id" t-attf-value="#{ticket['id']}"/>
</div>