Browse Source

corrections

dev-rcn
root 3 years ago
parent
commit
68bfa256b2
3 changed files with 101 additions and 0 deletions
  1. +72
    -0
      models/res_users.py
  2. +21
    -0
      views/auth_signup_login_templates.xml
  3. +8
    -0
      views/website_templates.xml

+ 72
- 0
models/res_users.py View File

@ -0,0 +1,72 @@
import logging
from ast import literal_eval
from collections import defaultdict
from dateutil.relativedelta import relativedelta
from odoo import api, fields, models, _
from odoo.exceptions import UserError
from odoo.osv import expression
from odoo.tools.misc import ustr
from odoo.addons.base.models.ir_mail_server import MailDeliveryException
from odoo.addons.auth_signup.models.res_partner import SignupError, now
_logger = logging.getLogger(__name__)
class ResUsers(models.Model):
_inherit = 'res.users'
@api.model
def signup(self, values, token=None):
""" signup a user, to either:
- create a new user (no token), or
- create a user for a partner (with token, but no user for partner), or
- change the password of a user (with token, and existing user).
:param values: a dictionary with field values that are written on user
:param token: signup token (optional)
:return: (dbname, login, password) for the signed up user
"""
if token:
# signup with a token: find the corresponding partner id
partner = self.env['res.partner']._signup_retrieve_partner(token, check_validity=True, raise_exception=True)
# invalidate signup token
partner.write({'signup_token': False, 'signup_type': False, 'signup_expiration': False})
partner_user = partner.user_ids and partner.user_ids[0] or False
# avoid overwriting existing (presumably correct) values with geolocation data
if partner.country_id or partner.zip or partner.city:
values.pop('city', None)
values.pop('country_id', None)
if partner.lang:
values.pop('lang', None)
if partner_user:
# user exists, modify it according to values
values.pop('login', None)
values.pop('name', None)
values.pop('firstname', None)
partner_user.write(values)
if not partner_user.login_date:
partner_user._notify_inviter()
return (self.env.cr.dbname, partner_user.login, values.get('password'))
else:
# user does not exist: sign up invited user
values.update({
'name': partner.name,
'firstname': partner.firstname,
'partner_id': partner.id,
'email': values.get('email') or values.get('login'),
})
if partner.company_id:
values['company_id'] = partner.company_id.id
values['company_ids'] = [(6, 0, [partner.company_id.id])]
partner_user = self._signup_create_user(values)
partner_user._notify_inviter()
else:
# no token, sign up an external user
values['email'] = values.get('email') or values.get('login')
self._signup_create_user(values)
return (self.env.cr.dbname, values.get('login'), values.get('password'))

+ 21
- 0
views/auth_signup_login_templates.xml View File

@ -0,0 +1,21 @@
<odoo>
<template id="auth_signup_fields" inherit_id="auth_signup.fields" name="Sign up fields">
<xpath expr="//div[@class='form-group field-name']" position="replace">
<div class="form-group field-name">
<label for="name">Your Name</label>
<input type="text" name="name" t-att-value="name" id="name" class="form-control form-control-sm"
required="required" t-att-readonly="'readonly' if only_passwords else None"
t-att-autofocus="'autofocus' if login and not only_passwords else None" />
</div>
<div class="form-group field-name">
<label for="name">Your First name</label>
<input type="text" name="firstname" t-att-value="firstname" id="firstname" class="form-control form-control-sm"
required="required" t-att-readonly="'readonly' if only_passwords else None"
t-att-autofocus="'autofocus' if login and not only_passwords else None" />
</div>
</xpath>
</template>
</odoo>

+ 8
- 0
views/website_templates.xml View File

@ -0,0 +1,8 @@
<odoo>
<!-- suppression du "My site web" en bas du menu pour smartphone -->
<template id="kala_option_header_off_canvas" inherit_id="website.option_header_off_canvas" name="kala Off-Canvas Header">
<xpath expr="//a[@class='o_offcanvas_logo text-center']" position="replace">
</xpath>
</template>
</odoo>

Loading…
Cancel
Save