You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.4 KiB
45 lines
1.4 KiB
# Copyright 2018 Ivan Yelizariev <https://it-projects.info/team/yelizariev>
|
|
# License MIT (https://opensource.org/licenses/MIT).
|
|
import logging
|
|
|
|
from odoo import api, fields, models
|
|
|
|
_logger = logging.getLogger(__name__)
|
|
FIELD_NAME = "email_multi_website"
|
|
FIELDS = ["signature"]
|
|
ALL_FIELDS = [FIELD_NAME] + FIELDS
|
|
|
|
|
|
class User(models.Model):
|
|
|
|
_inherit = ["res.users", "website_dependent.mixin"]
|
|
_name = "res.users"
|
|
|
|
signature = fields.Html(company_dependent=True, website_dependent=True)
|
|
|
|
# extra field to detach email field from res.partner
|
|
email = fields.Char(related="email_multi_website", inherited=False)
|
|
email_multi_website = fields.Char(company_dependent=True, website_dependent=True)
|
|
|
|
@api.model
|
|
def create(self, vals):
|
|
res = super(User, self).create(vals)
|
|
# make value company independent
|
|
res._force_default(FIELD_NAME, vals.get("email"))
|
|
for f in FIELDS:
|
|
res._force_default(f, vals.get(f))
|
|
return res
|
|
|
|
@api.multi
|
|
def write(self, vals):
|
|
res = super(User, self).write(vals)
|
|
# TODO: will it work with OCA's partner_firstname module?
|
|
if any(k in vals for k in ["name", "email"] + FIELDS):
|
|
for f in ALL_FIELDS:
|
|
self._update_properties_label(f)
|
|
return res
|
|
|
|
def _auto_init(self):
|
|
for f in FIELDS:
|
|
self._auto_init_website_dependent(f)
|
|
return super(User, self)._auto_init()
|