Hello Community,
I'm using Odoo12 and I want to show value in selection field in website template sign up page.
I've added a selection field(category) on sign up page by inherit signup template.
<template id="auth_signup.fields" name="Auth Signup/ResetPassword form fields">
..........
<div t-attf-class="form-group field-category">
<label class="col-form-label" for="category">Category</label>
<select name="category" t-attf-class="form-control">
<option value="User">User</option>
<option value="Company">Company</option>
<option value="Agency">Agency</option>
<option value="Influencer">Influencer</option>
</select>
</div>
</template>
Then i pass this parameter in do_signup function and get correct value:
def do_signup(self, qcontext):
""" Shared helper that creates a res.partner out of a token """
values = {key: qcontext.get(key) for key in ('login', 'name', 'password', 'category', 'phone')}
print("VALLLLLLL", values)
if not values:
raise UserError(_("The form was not properly filled in."))
if values.get('password') != qcontext.get('confirm_password'):
raise UserError(_("Passwords do not match; please retype them."))
supported_langs = [lang['code'] for lang in request.env['res.lang'].sudo().search_read([], ['code'])]
if request.lang in supported_langs:
values['lang'] = request.lang
self._signup_with_values(qcontext.get('token'), values)
request.env.cr.commit()
Print Output: VALLLLLLL {'login': 'vv', 'name': 'vv', 'password': 'vv', 'category': 'Agency', 'phone': 'vv'}
This is controller.py function for portal :
class CustomCustomerPortal(CustomerPortal):
OPTIONAL_BILLING_FIELDS = [...., "category"]
@route(['/my/account'], type='http', auth='user', website=True)
def account(self, redirect=None, **post):
...
...
values.update({
'partner': partner,
'categories': ['User', 'Company', 'Agency', 'Influencer'],
'redirect': redirect,
'page_name': 'my_details',
})
response = request.render("portal.portal_my_details", values)
response.headers['X-Frame-Options'] = 'DENY'
return response
Now I'm want to show this selection field(category) on 'My Account' Template. For this I inherit template and tried to show field as below:
<template id="portal.portal_my_details">
<t t-call="portal.portal_layout">
<t t-set="additional_title">Your Contact Details</t>
<h3>Your Details</h3>
<form action="/my/account" method="post">
<input type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/>
<div class="row o_portal_details">
<!-- Selection field category(Try to show here)-->
<div t-attf-class="form-group #{error.get('category') and 'o_has_error' or ''} col-xl-6">
<label class="col-form-label" for="category">Category</label>
<select name="category"
t-attf-class="form-control #{error.get('category') and 'is-invalid' or ''}">
<option value="">Type...</option>
<t t-foreach="categories or []" t-as="category">
<option t-att-value="category">
<t t-esc="category"/>
</option>
</t>
</select>
</div>
</div>
</form>
</t>
</template>
But didn't get value for selection field(category)
Thanks in advance.