2016-09-26 70 views
2

我有不会从另外一个这将是体育俱乐部继承模块如何使“员工”,“用户”默认情况下odoo 9

球员和教练员将要使用系统的访问权限和我的问题如下:

1 - 这是更好的,从头开始创建新的模式或合作伙伴,员工,联系人或用户

2-继承,如果我创建新的模式或从另一个模式是不能继承用户如何默认使任何播放器成为用户

回答

3

您可能必须为您的用户创建合作伙伴。我的想法是,你可能想让你的球员成为合作伙伴。如果is_player标志为真,则可以覆盖该视图并删除非面向玩家的元素或隐藏它们。 (你可能想添加一个新的is_player布尔值)。您可以使用is_player布尔值来定义何时显示玩家视图或通用联系人视图。

就我个人而言,我会使用合作伙伴和用户,因为Odoo的许多安全性和结构已经围绕这些模型构建。

如果您的播放器继承了合作伙伴,您可以覆盖create()方法,并且在其中创建一个用户,然后在创建联系人之后创建一个用户。

@api.model 
@api.returns('self', lambda rec: rec.id) 
def create(self, vals): 
    vals['notify_email'] = 'always' 
    rec = super(Partner, self).create(vals) 
    v = { 
     'active': True, 
     'login': rec.email, 
     'company_id': 1, 
     'partner_id': rec.id, 
     'create_uid': 1, 
     'write_uid': 1, 
     'display_groups_suggestions': False, 
     'share': False 
    } 
    user_id = self.env['res.users'].sudo().create(v) 

    return rec 

上面的示例创建了一个用户,其中有许多值可能需要更改以适合您的需要。创建用户后,您需要发送密码重置。

+0

非常感谢您的回答我认为它会做到这一点,请投票了我的问题,因为有人投票完成并减少我的观点。 我认为创建合作伙伴会自动创建一个用户,但是我需要更新“res.partner”表中的“user_id”字段吗? –

+0

但由于“res.users”是从“res.partner”继承的,为何不从“res.users”继承? –

+0

这真的取决于你。如果您继承了合作伙伴,则可以使用我认为比用户视图更适合传达大多数联系信息的合作伙伴视图。我喜欢限制访问res_users的用户特定组件到管理员。并通过合作伙伴模式提供有限的访问权限。正确的方法取决于你希望用户如何与模型和视图进行交互。两种方法都有优点和缺点。我还必须使用我建议的方法处理并发症。其他人可能会争辩不同,但我不知道是否有完美的答案 –