Skip to Content
Menu
This question has been flagged
1 Reply
4989 Views

I'm creating a page using the website module that would require login before a user can view. how do i create such page on Odoo 10? Thanks 

Avatar
Discard
Best Answer

Hi,

If you are creating the page via code then  you can do it like this,

Suppose you have created a new menu in the website like this,

<record id="test_menu" model="website.menu">
<field name="name">Test</field>
<field name="url">/page/test</field>
<field name="parent_id" ref="website.main_menu"/>
<field name="sequence" type="int">80</field>
<field name="website_id" ref="website.default_website"/>
</record>

Then on clicking the menu the system will search for the route /page/test

Then in the controller,

@http.route('/page/test', type='http', auth="user", website=True)
def test_test(self, **post):
return request.render('module_name.template_id')

Here if the auth="public",
then when the public user come and click on the newly created menu, he can view the page.

If the auth="user", when the public user come and clicking on the menu, he will be redirected to login page and ask to login, if he entered the login credentials properly he will directed to the page.


Then the template has to be defined,

<template id="template_id" name="Test Menu" page="True">
<t t-call="website.layout">
<div class="container">
<form>
</form>
</div>
</t>
</template>

Thanks

Avatar
Discard
Related Posts Replies Views Activity
2
Aug 25
600
5
Aug 25
10082
2
Jul 25
1091
4
Jun 25
1258
1
Jun 25
1581