Skip to content

Commit 3f94df0

Browse files
⚡ different template users for each website
1 parent 63a51a9 commit 3f94df0

File tree

5 files changed

+66
-2
lines changed

5 files changed

+66
-2
lines changed

web_website/__manifest__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
# Copyright 2018 Ivan Yelizariev <https://it-projects.info/team/yelizariev>
2+
# Copyright 2020 Kolushov Alexandr <https://it-projects.info/team/KolushovAlexandr>
23
# License MIT (https://opensource.org/licenses/MIT).
34
{
45
"name": """Website Switcher in Backend""",
56
"summary": """Technical module to switch Websites in Backend similarly to Company Switcher""",
67
"category": "Hidden",
78
# "live_test_url": "",
89
"images": [],
9-
"version": "11.0.3.0.4",
10+
"version": "11.0.3.1.0",
1011
"application": False,
1112
"author": "IT-Projects LLC, Ivan Yelizariev",
1213
"support": "[email protected]",

web_website/doc/changelog.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
`3.1.0`
2+
-------
3+
- **New:** Different template users for each website
4+
15
`3.0.4`
26
-------
37
- **Fix:** Incorrect return data in get_multi in case of 'many2one' field, id instead of a record

web_website/models/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@
55
from . import res_config
66
from . import res_users
77
from . import ir_http
8+
from . import website

web_website/models/res_config.py

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Copyright 2018 Ivan Yelizariev <https://it-projects.info/team/yelizariev>
2+
# Copyright 2020 Kolushov Alexandr <https://it-projects.info/team/KolushovAlexandr>
23
# License MIT (https://opensource.org/licenses/MIT).
3-
from odoo import fields, models
4+
from odoo import api, fields, models
45

56

67
class WebWebsiteConfigSettings(models.TransientModel):
@@ -12,3 +13,29 @@ class WebWebsiteConfigSettings(models.TransientModel):
1213
help="Show Website Switcher in backend",
1314
implied_group="web_website.group_multi_website",
1415
)
16+
17+
@api.multi
18+
def open_template_user(self):
19+
IrConfigParameter = self.env['ir.config_parameter'].sudo()
20+
IrProperty = self.env['ir.property'].sudo()
21+
ResUsers = self.env['res.users'].sudo()
22+
23+
# search for all properties for that case
24+
param_id = IrConfigParameter.search([
25+
('key', '=', 'auth_signup.template_user_id')
26+
], limit=1)
27+
field = self.env["ir.model.fields"].search([
28+
("model", "=", 'ir.config_parameter'),
29+
("name", "=", "value")
30+
], limit=1)
31+
prop_ids = IrProperty.search([
32+
('fields_id', '=', field.id),
33+
('res_id', '=', '{},{}'.format(IrConfigParameter._name, param_id.id)),
34+
])
35+
36+
website_id = ResUsers.browse(self._context['uid']).backend_website_id
37+
# Is it needed?? if param_id.value in prop_ids.filtered(lambda p: not p.website_id).mapped('value_text') and ...
38+
if website_id not in prop_ids.mapped('website_id'):
39+
# Template user was not created/set for current website
40+
website_id.create_new_template_user_id()
41+
return super(WebWebsiteConfigSettings, self).open_template_user()

web_website/models/website.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Copyright 2020 Kolushov Alexandr <https://it-projects.info/team/KolushovAlexandr>
2+
# License MIT (https://opensource.org/licenses/MIT).
3+
4+
from odoo import api, models
5+
6+
7+
class Website(models.Model):
8+
_inherit = "website"
9+
10+
@api.model
11+
def create(self, vals):
12+
website = super(Website, self).create(vals)
13+
website.create_new_template_user_id()
14+
return website
15+
16+
@api.multi
17+
def create_new_template_user_id(self):
18+
IrConfigParameter = self.env['ir.config_parameter'].sudo()
19+
user_id = IrConfigParameter.get_param('auth_signup.template_user_id', 'False')
20+
user_id = self.env['res.users'].sudo().browse(user_id and int(user_id))
21+
for record in self:
22+
company_id = record.company_id.id
23+
new_user_id = user_id.sudo().copy({
24+
"login": "{} - {}".format(user_id.login, record.name),
25+
"company_id": company_id,
26+
"company_ids": [(6, 0, [company_id])],
27+
"backend_website_ids": [(6, 0, record.ids)]
28+
})
29+
IrConfigParameter. \
30+
with_context(dict(website_id=record.id)). \
31+
set_param('auth_signup.template_user_id', new_user_id.id)

0 commit comments

Comments
 (0)