[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:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user