Do not create demo user for every language

Instead we rely on the client language.
This commit is contained in:
Cédric Krier
2025-08-07 23:41:31 +02:00
parent 33ee5f0d51
commit 29e3785f8d
+26 -35
View File
@@ -41,51 +41,41 @@ def activate_modules(config, modules):
return modules, activated_modules return modules, activated_modules
def setup_languages(config, demo_password, company=None): def setup_user(config, demo_password, company=None):
Lang = Model.get('ir.lang')
User = Model.get('res.user') User = Model.get('res.user')
Group = Model.get('res.group') Group = Model.get('res.group')
Action = Model.get('ir.action')
langs = Lang.find()
Lang.click(langs, 'load_translations')
admin = config.user admin = config.user
# Use root to skip password validation # Use root to skip password validation
config.user = 0 config.user = 0
menu, = Action.find([('usage', '=', 'menu')]) try:
for lang in langs: user, = User.find([('login', '=', 'demo')])
if lang.code == 'en': except ValueError:
name = 'Demo' user = User()
login = 'demo' user.name = "Demo"
else: user.login = 'demo'
if lang.code[:2] != lang.code[-2:].lower(): user.password = demo_password
continue groups = Group.find([
name = 'Demo %s' % lang.name ('name', 'not ilike', '%Admin%'),
login = 'demo_%s' % lang.code[:2] ])
try: user.groups.extend(groups)
user, = User.find([('login', '=', login)]) if company:
except ValueError: Company = Model.get('company.company')
user = User() user.companies.append(Company(company.id))
user.name = name user.company = company
user.login = login user.save()
user.password = demo_password
groups = Group.find([
('name', 'not ilike', '%Admin%'),
])
user.groups.extend(groups)
user.language = lang
user.menu = menu
if company:
Company = Model.get('company.company')
user.companies.append(Company(company.id))
user.company = company
user.save()
config.user = admin config.user = admin
def setup_languages(config):
Lang = Model.get('ir.lang')
langs = Lang.find()
Lang.click(langs, 'load_translations')
def main(database, modules, demo_password, config_file=None): def main(database, modules, demo_password, config_file=None):
config = set_config(database, config_file) config = set_config(database, config_file)
to_activate, activated = activate_modules(config, modules) to_activate, activated = activate_modules(config, modules)
@@ -148,7 +138,8 @@ def main(database, modules, demo_password, config_file=None):
if 'production' in to_activate: if 'production' in to_activate:
production.setup(config, activated, company) production.setup(config, activated, company)
setup_languages(config, demo_password, company=company) setup_user(config, demo_password, company=company)
setup_languages(config)
if __name__ == '__main__': if __name__ == '__main__':