i make a module profile to add groups into profile. when make a new user, we can add profile for user profiles and user will auto authorized groups in profile. but i cant make user auto add groups from profile. cant someone help me pls. thanks a lot. i had thit error: TypeError: update_groups() missing 1 required positional argument: 'uids'.
There is my code: profile.py
# -*- coding: utf-8 -*-
from odoo import models,fields, api,tools
import string
from odoo.tools.translate import _
class Users(models.Model):
_inherit = 'res.users'
profile_id = fields.Many2one('res.profiles',string="Profile")
profiles_ids = fields.Many2many('res.profiles','profile_user_rel','user_id','profile_id', string='Profile Name')
def update_groups(self,uids):
users_pool = self.env["res.profiles"]
if uids:
for user in users_pool.browse(uids):
if not user.profiles_ids and user.id != 2:
user.write({'groups_id':[[6,0,[]]]})
if user.profiles_ids:
sql = """UPDATE FROM res_groups_users_rel WHERE uid = %s"""%(user.id)
self._cr.execute(sql)
groups_ids = []
for profile in user.profiles_ids:
groups_ids += [x.id for x in profile.groups_ids if x.id not in groups_ids]
user.write({'groups_id':[[6,0,groups_ids]]})
return True
def update_profile(self):
self.env["user.profiles"].update_groups(self.ids)
return True
class GroupInherit(models.Model):
_inherit = 'res.groups'
profiles_groups_ids = fields.Many2many('res.profiles','profile_group_rel','group_id','profile_id', string='Profile Name')
class UserProfile(models.Model):
_name = 'res.profiles'
_description = 'Profile Record'
_rec_name = 'profile_name'
_sql_constraints = [('name_uniq','unique(name)', 'Profile name must be unique!'),]
_order = "profile_name"
profile_name = fields.Char(string='Name', required=True)
groups_ids = fields.Many2many('res.groups','profile_group_rel','profile_id','group_id',string='Authorized Group')
user_ids = fields.Many2many('res.users','profile_user_rel','profile_id','user_id', string='User Name')
```
profile.xml:
```
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<!-- tree view -->
<record id="profile_tree" model="ir.ui.view">
<field name="name">user.profile.tree</field>
<field name="model">res.profiles</field>
<field name="arch" type="xml">
<tree string= "profile">
<field name="profile_name"/>
<field name="user_ids"/>
<field name="groups_ids"/>
</tree>
</field>
</record>
<!-- view form -->
<record id="student_form" model="ir.ui.view">
<field name="name">user.profile.form</field>
<field name="model">res.profiles</field>
<field name="arch" type="xml">
<form string="Profile">
<sheet>
<div class="oe_title">
</div>
<group>
<group><field name="profile_name"/></group>
<group><field name="user_ids" widget="many2many_tags"/></group>
<group><field name="groups_ids"/></group>
</group>
</sheet>
</form>
</field>
</record>
<!--action of the student menu-->
<record id="action_profile" model="ir.actions.act_window">
<field name="name">Profile</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">res.profiles</field>
<field name="view_mode">tree,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create First profile !
</p>
</field>
</record>
<!-- profile name in group view -->
<record id="group_inherit" model="ir.ui.view">
<field name="name">group.inherit</field>
<field name="model">res.groups</field>
<field name="inherit_id" ref="base.view_groups_form"></field>
<field name="arch" type="xml">
<field name="name" position="after">
<field name="profiles_groups_ids"/>
</field>
</field>
</record>
<!-- profile name in user view -->
<record id="user_inherit" model="ir.ui.view">
<field name="name">user.inherit</field>
<field name="model">res.users</field>
<field name="inherit_id" ref="base.view_users_form"></field>
<field name="arch" type="xml">
<field name="login" position="after">
<field name="profiles_ids"/>
</field>
<field name="profiles_ids" position="after">
<div class='oe_button_box' name="button_box"><button name='update_groups'
type="object" class="oe_stat_button" string="update"></button></div>
</field>
<button name="action_show_groups" position="attributes">
<attribute name="invisible">1</attribute>
</button>
<field name="groups_count" position="attributes">
<attribute name="invisible">1</attribute>
</field>
</field>
</record>
<menuitem id="profiles" name="User Profile" parent="base.menu_users" sequence="4" action="action_profile"/>
<menuitem id="user_root" name="Profile" sequence="0"/>
<menuitem id="user_profile" name ="Profile" parent="user_root" action="action_profile"/>
</odoo>
```
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Contabilità
- Magazzino
- PoS
- Project
- MRP
La domanda è stata contrassegnata
2
Risposte
4884
Visualizzazioni
Hi Hemangi Rupareliya,
it cant be solved
i think my browse is wrong but i dont no how to fix
Hello Trung,
Have you renamed the argument in following all lines?
1. def update_groups(self,uids):
users_pool = self.env["res.profiles"]
2. if uids:
3. for user in users_pool.browse(uids):
Hello Trung,
Try to use another argument name instead of 'uids'.
Ti stai godendo la conversazione? Non leggere soltanto, partecipa anche tu!
Crea un account oggi per scoprire funzionalità esclusive ed entrare a far parte della nostra fantastica community!
RegistratiPost correlati | Risposte | Visualizzazioni | Attività | |
---|---|---|---|---|
|
7
set 21
|
28273 | ||
|
0
lug 16
|
5107 | ||
|
2
giu 16
|
6716 | ||
|
2
ago 25
|
2164 | ||
|
1
lug 25
|
706 |