mirror of
https://github.com/odoo/runbot.git
synced 2025-03-21 10:25:44 +07:00

Two fields can't have the same label, because of the field names, there were field label conflicts.
29 lines
1.1 KiB
Python
29 lines
1.1 KiB
Python
from email.utils import parseaddr
|
|
from odoo import fields, models, tools, api
|
|
|
|
class Partner(models.Model):
|
|
_inherit = 'res.partner'
|
|
|
|
github_login = fields.Char()
|
|
reviewer = fields.Boolean(default=False, help="Can review PRs (maybe m2m to repos/branches?)")
|
|
self_reviewer = fields.Boolean(default=False, help="Can review own PRs (independent from reviewer)")
|
|
delegate_reviewer = fields.Many2many('runbot_merge.pull_requests')
|
|
formatted_email = fields.Char(string="commit email", compute='_rfc5322_formatted')
|
|
|
|
def _auto_init(self):
|
|
res = super(Partner, self)._auto_init()
|
|
tools.create_unique_index(
|
|
self._cr, 'runbot_merge_unique_gh_login', self._table, ['github_login'])
|
|
return res
|
|
|
|
@api.depends('name', 'email', 'github_login')
|
|
def _rfc5322_formatted(self):
|
|
for partner in self:
|
|
if partner.email:
|
|
email = parseaddr(partner.email)[1]
|
|
elif partner.github_login:
|
|
email = '%s@users.noreply.github.com' % partner.github_login
|
|
else:
|
|
email = ''
|
|
partner.formatted_email = '%s <%s>' % (partner.name, email)
|