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
- Kế toán
- Tồn kho
- PoS
- Project
- MRP
Câu hỏi này đã bị gắn cờ
2
Trả lời
4880
Lượt xem
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'.
Bạn có hứng thú với cuộc thảo luận không? Đừng chỉ đọc, hãy tham gia nhé!
Tạo tài khoản ngay hôm nay để tận hưởng các tính năng độc đáo và tham gia cộng đồng tuyệt vời của chúng tôi!
Đăng kýBài viết liên quan | Trả lời | Lượt xem | Hoạt động | |
---|---|---|---|---|
How To Calculate Age From Birthday
Đã xử lý
|
|
7
thg 9 21
|
28273 | |
|
0
thg 7 16
|
5107 | ||
|
2
thg 6 16
|
6716 | ||
|
2
thg 8 25
|
2163 | ||
|
1
thg 7 25
|
704 |