summaryrefslogtreecommitdiff
path: root/addons/project_issue
diff options
context:
space:
mode:
authorBharat (OpenERP) <bde@tinyerp.com>2011-09-15 16:49:02 +0530
committerBharat (OpenERP) <bde@tinyerp.com>2011-09-15 16:49:02 +0530
commita3847b9dffd3a8db4eaa1f8dade5ecae6a575bba (patch)
tree392473368800fb5fb9a10d7e68ae643736040442 /addons/project_issue
parentb84248c04cf86c8bfa56e275181bf7b9dce8723d (diff)
parentfbf6708d1041f84018bb9c13e997b705e6086648 (diff)
[MERGE] merged with main addons
bzr revid: bde@tinyerp.com-20110915111902-qgvz0veoqa5znlvv
Diffstat (limited to 'addons/project_issue')
-rw-r--r--addons/project_issue/__init__.py1
-rw-r--r--addons/project_issue/board_project_issue_view.xml4
-rw-r--r--addons/project_issue/project_issue.py107
-rw-r--r--addons/project_issue/project_issue_view.xml56
-rw-r--r--addons/project_issue/report/project_issue_report.py7
-rw-r--r--addons/project_issue/report/project_issue_report_view.xml30
-rw-r--r--addons/project_issue/security/ir.model.access.csv4
7 files changed, 70 insertions, 139 deletions
diff --git a/addons/project_issue/__init__.py b/addons/project_issue/__init__.py
index 21efa34f6f4..f519698a60c 100644
--- a/addons/project_issue/__init__.py
+++ b/addons/project_issue/__init__.py
@@ -22,6 +22,5 @@
import project_issue
import report
-import wizard
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project_issue/board_project_issue_view.xml b/addons/project_issue/board_project_issue_view.xml
index 3b6a6bcd0a3..cfe285134a7 100644
--- a/addons/project_issue/board_project_issue_view.xml
+++ b/addons/project_issue/board_project_issue_view.xml
@@ -123,7 +123,7 @@
<field name="res_model">project.issue</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
- <field name="domain">[('state','not in',('cancel','done')),'|',('assigned_to','=',uid),('user_id','=',uid)]</field>
+ <field name="domain">[('state','not in',('cancel','done')),('user_id','=',uid)]</field>
<field name="view_id" ref="project_issue_board_tree_view"/>
</record>
<record id="view_my_open_project_issue_graph" model="ir.ui.view">
@@ -142,7 +142,7 @@
<field name="res_model">project.issue.report</field>
<field name="view_type">form</field>
<field name="view_mode">graph,tree,form,</field>
- <field name="domain">[('state','=','open'),'|',('assigned_to','=',uid),('user_id','=',uid)]</field>
+ <field name="domain">[('state','=','open'),('user_id','=',uid)]</field>
<field name="view_id" ref="view_my_open_project_issue_graph"/>
</record>
<record id="board_my_project_issue_form" model="ir.ui.view">
diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py
index 61a45f01753..af756d34c5f 100644
--- a/addons/project_issue/project_issue.py
+++ b/addons/project_issue/project_issue.py
@@ -26,7 +26,9 @@ from tools.translate import _
import binascii
import time
import tools
+from crm import wizard
+wizard.mail_compose_message.SUPPORTED_MODELS.append('project.issue')
class project_issue_version(osv.osv):
_name = "project.issue.version"
@@ -44,8 +46,8 @@ class project_issue(crm.crm_case, osv.osv):
_name = "project.issue"
_description = "Project Issue"
_order = "priority, create_date desc"
- _inherit = ['mailgate.thread']
-
+ _inherit = ['mail.thread']
+
def case_open(self, cr, uid, ids, *args):
"""
@param self: The object pointer
@@ -56,7 +58,7 @@ class project_issue(crm.crm_case, osv.osv):
"""
res = super(project_issue, self).case_open(cr, uid, ids, *args)
- self.write(cr, uid, ids, {'date_open': time.strftime('%Y-%m-%d %H:%M:%S'), 'assigned_to' : uid})
+ self.write(cr, uid, ids, {'date_open': time.strftime('%Y-%m-%d %H:%M:%S'), 'user_id' : uid})
for (id, name) in self.name_get(cr, uid, ids):
message = _("Issue '%s' has been opened.") % name
self.log(cr, uid, id, message)
@@ -156,7 +158,7 @@ class project_issue(crm.crm_case, osv.osv):
issues = []
issue_pool = self.pool.get('project.issue')
for task in self.pool.get('project.task').browse(cr, uid, ids, context=context):
- issues += issue_pool.search(cr, uid, [('task_id','=',task.id)])
+ issues += issue_pool.search(cr, uid, [('task_id','=',task.id)])
return issues
def _get_issue_work(self, cr, uid, ids, context=None):
@@ -174,8 +176,8 @@ class project_issue(crm.crm_case, osv.osv):
progress = 0.0
if issue.task_id:
progress = task_pool._hours_get(cr, uid, [issue.task_id.id], field_names, args, context=context)[issue.task_id.id]['progress']
- res[issue.id] = {'progress' : progress}
- return res
+ res[issue.id] = {'progress' : progress}
+ return res
_columns = {
'id': fields.integer('ID'),
@@ -189,7 +191,6 @@ class project_issue(crm.crm_case, osv.osv):
'section_id': fields.many2one('crm.case.section', 'Sales Team', \
select=True, help='Sales team to which Case belongs to.\
Define Responsible user and Email account for mail gateway.'),
- 'user_id': fields.related('project_id', 'user_id', type='many2one', relation='res.users', store=True, select=1, string='Responsible'),
'partner_id': fields.many2one('res.partner', 'Partner', select=1),
'partner_address_id': fields.many2one('res.partner.address', 'Partner Contact', \
domain="[('partner_id','=',partner_id)]"),
@@ -218,14 +219,14 @@ class project_issue(crm.crm_case, osv.osv):
multi='compute_day', type="float", store=True),
'day_close': fields.function(_compute_day, string='Days to Close', \
multi='compute_day', type="float", store=True),
- 'assigned_to': fields.many2one('res.users', 'Assigned to', required=False, select=1),
+ 'user_id': fields.many2one('res.users', 'Assigned to', required=False, select=1),
'working_hours_open': fields.function(_compute_day, string='Working Hours to Open the Issue', \
multi='compute_day', type="float", store=True),
'working_hours_close': fields.function(_compute_day, string='Working Hours to Close the Issue', \
multi='compute_day', type="float", store=True),
'inactivity_days': fields.function(_compute_day, string='Days since last action', \
multi='compute_day', type="integer", help="Difference in days between last action and current date"),
- 'message_ids': fields.one2many('mailgate.message', 'res_id', 'Messages', domain=[('model','=',_name)]),
+ 'message_ids': fields.one2many('mail.message', 'res_id', 'Messages', domain=[('model','=',_name)]),
'date_action_last': fields.datetime('Last Action', readonly=1),
'date_action_next': fields.datetime('Next Action', readonly=1),
'progress': fields.function(_hours_get, string='Progress (%)', multi='hours', group_operator="avg", help="Computed as: Time Spent / Total Time.",
@@ -243,19 +244,11 @@ class project_issue(crm.crm_case, osv.osv):
return False
def on_change_project(self, cr, uid, ids, project_id, context=None):
- result = {}
-
- if project_id:
- project = self.pool.get('project.project').browse(cr, uid, project_id, context=context)
- if project.user_id:
- result['value'] = {'user_id' : project.user_id.id}
-
- return result
+ return {}
_defaults = {
'active': 1,
- #'user_id': crm.crm_case._get_default_user,
'partner_id': crm.crm_case._get_default_partner,
'partner_address_id': crm.crm_case._get_default_partner_address,
'email_from': crm.crm_case._get_default_email,
@@ -265,7 +258,6 @@ class project_issue(crm.crm_case, osv.osv):
'priority': crm.AVAILABLE_PRIORITIES[2][0],
'project_id':_get_project,
'categ_id' : lambda *a: False,
- #'assigned_to' : lambda obj, cr, uid, context: uid,
}
def convert_issue_task(self, cr, uid, ids, context=None):
@@ -294,7 +286,7 @@ class project_issue(crm.crm_case, osv.osv):
'date': bug.date,
'project_id': bug.project_id.id,
'priority': bug.priority,
- 'user_id': bug.assigned_to.id,
+ 'user_id': bug.user_id.id,
'planned_hours': 0.0,
})
@@ -362,7 +354,7 @@ class project_issue(crm.crm_case, osv.osv):
if not task_id:
return {'value':{}}
task = self.pool.get('project.task').browse(cr, uid, task_id, context=context)
- return {'value':{'assigned_to': task.user_id.id,}}
+ return {'value':{'user_id': task.user_id.id,}}
def case_escalate(self, cr, uid, ids, *args):
"""Escalates case to top level
@@ -384,26 +376,17 @@ class project_issue(crm.crm_case, osv.osv):
else:
raise osv.except_osv(_('Warning !'), _('You cannot escalate this issue.\nThe relevant Project has not configured the Escalation Project!'))
self.write(cr, uid, [case.id], data)
- self._history(cr, uid, cases, _('Escalate'))
+ self.message_append(cr, uid, cases, _('Escalate'))
return True
- def message_new(self, cr, uid, msg, context=None):
- """
- Automatically calls when new email message arrives
-
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks
- """
- if context is None:
+ def message_new(self, cr, uid, msg, custom_values=None, context=None):
+ """Automatically called when new email message arrives"""
+ if context is None:
context = {}
- mailgate_pool = self.pool.get('email.server.tools')
-
subject = msg.get('subject') or _('No Title')
- body = msg.get('body')
+ body = msg.get('body_text')
msg_from = msg.get('from')
priority = msg.get('priority')
-
vals = {
'name': subject,
'email_from': msg_from,
@@ -411,37 +394,20 @@ class project_issue(crm.crm_case, osv.osv):
'description': body,
'user_id': False,
}
- if msg.get('priority', False):
+ if priority:
vals['priority'] = priority
-
- res = mailgate_pool.get_partner(cr, uid, msg.get('from'))
- if res:
- vals.update(res)
+ vals.update(self.message_partner_by_email(cr, uid, msg_from))
context.update({'state_to' : 'draft'})
- res = self.create(cr, uid, vals, context=context)
- self.convert_to_bug(cr, uid, [res], context=context)
-
- attachents = msg.get('attachments', [])
- for attactment in attachents or []:
- data_attach = {
- 'name': attactment,
- 'datas': binascii.b2a_base64(str(attachents.get(attactment))),
- 'datas_fname': attactment,
- 'description': 'Mail attachment',
- 'res_model': self._name,
- 'res_id': res,
- }
- self.pool.get('ir.attachment').create(cr, uid, data_attach)
- return res
+ if custom_values and isinstance(custom_values, dict):
+ vals.update(custom_values)
- def message_update(self, cr, uid, ids, vals=None, msg="", default_act='pending', context=None):
- """
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param ids: List of update mail’s IDs
- """
+ res_id = self.create(cr, uid, vals, context)
+ self.message_append_dict(cr, uid, [res_id], msg, context=context)
+ self.convert_to_bug(cr, uid, [res_id], context=context)
+ return res_id
+
+ def message_update(self, cr, uid, ids, msg, vals=None, default_act='pending', context=None):
if vals is None:
vals = {}
@@ -450,7 +416,7 @@ class project_issue(crm.crm_case, osv.osv):
ids = [ids]
vals.update({
- 'description': msg['body']
+ 'description': msg['body_text']
})
if msg.get('priority', False):
vals['priority'] = msg.get('priority')
@@ -467,7 +433,7 @@ class project_issue(crm.crm_case, osv.osv):
record.write({'state' : 'open'})
vls = { }
- for line in msg['body'].split('\n'):
+ for line in msg['body_text'].split('\n'):
line = line.strip()
res = tools.misc.command_re.match(line)
if res and maps.get(res.group(1).lower(), False):
@@ -476,20 +442,9 @@ class project_issue(crm.crm_case, osv.osv):
vals.update(vls)
res = self.write(cr, uid, ids, vals)
+ self.message_append_dict(cr, uid, ids, msg, context=context)
return res
- def msg_send(self, cr, uid, id, *args, **argv):
-
- """ Send The Message
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param ids: List of email’s IDs
- @param *args: Return Tuple Value
- @param **args: Return Dictionary of Keyword Value
- """
- return True
-
def copy(self, cr, uid, id, default=None, context=None):
issue = self.read(cr, uid, id, ['name'], context=context)
if not default:
diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml
index 1154579960e..860dd73216b 100644
--- a/addons/project_issue/project_issue_view.xml
+++ b/addons/project_issue/project_issue_view.xml
@@ -55,8 +55,7 @@
<field name="name"/>
<field name="project_id" required="True" on_change="on_change_project(project_id)"/>
<field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'project.issue')]"/>
- <field name="user_id" invisible="1" />
- <field name="assigned_to"/>
+ <field name="user_id"/>
<field name="version_id" colspan="2" widget="selection"/>
<group colspan="2" col="4">
<field name="type_id" string="Resolution" />
@@ -97,15 +96,15 @@
<group colspan="4">
<field colspan="4" name="email_cc" string="Global CC" widget="url"/>
</group>
- <field name="message_ids" colspan="4" nolabel="1" mode="tree,form">
+ <field name="message_ids" colspan="4" nolabel="1" mode="tree,form" readonly="1">
<tree string="History">
<field name="display_text" string="History Information"/>
- <field name="history" invisible="1"/>
- <button
- string="Reply" attrs="{'invisible': [('history', '!=', True)]}"
- name="%(crm.action_crm_send_mail)d"
- context="{'mail':'reply', 'model': 'project.issue', 'include_original' : True}"
- icon="terp-mail-replied" type="action" />
+ <field name="email_from" invisible="1"/>
+ <button
+ string="Reply" attrs="{'invisible': [('email_from', '=', False)]}"
+ name="%(mail.action_email_compose_message_wizard)d"
+ context="{'mail.compose.message.mode':'reply', 'message_id':active_id}"
+ icon="terp-mail-replied" type="action" />
</tree>
<form string="History">
<group col="4" colspan="4">
@@ -113,20 +112,18 @@
<field name="date"/>
<field name="email_to" widget="char" size="512"/>
<field name="email_cc" widget="char" size="512"/>
- <field name="name" colspan="4" widget="char" size="512"/>
- <field name="history" invisible="1"/>
+ <field name="subject" colspan="4" widget="char" size="512"/>
</group>
<notebook colspan="4">
<page string="Details">
- <group attrs="{'invisible': [('history', '!=', True)]}">
- <field name="description" colspan="4" nolabel="1" height="250"/>
- <button colspan="4"
- string="Reply"
- name="%(crm.action_crm_send_mail)d"
- context="{'mail':'reply', 'model': 'project.issue', 'include_original' : True}"
- icon="terp-mail-replied" type="action" />
+ <group attrs="{'invisible': [('email_from', '=', False)]}">
+ <field name="body_text" colspan="4" nolabel="1" height="250"/>
+ <button colspan="4" string="Reply"
+ name="%(mail.action_email_compose_message_wizard)d"
+ context="{'mail.compose.message.mode':'reply', 'message_id':active_id}"
+ icon="terp-mail-replied" type="action"/>
</group>
- <group attrs="{'invisible': [('history', '=', True)]}">
+ <group attrs="{'invisible': [('email_from', '!=', False)]}">
<field name="display_text" colspan="4" nolabel="1" height="250"/>
</group>
</page>
@@ -141,10 +138,9 @@
name="%(crm.action_crm_add_note)d"
context="{'model': 'crm.lead' }"
icon="terp-document-new" type="action" />
- <button string="Send New Email"
- name="%(crm.action_crm_send_mail)d"
- context="{'mail':'new', 'model': 'project.issue'}"
- icon="terp-mail-message-new" type="action" />
+ <button string="Send New Email"
+ name="%(mail.action_email_compose_message_wizard)d"
+ icon="terp-mail-message-new" type="action"/>
</page>
<page string="Extra Info" groups="base.group_extended">
<group col="2" colspan="2">
@@ -191,7 +187,7 @@
<button name="prev_type" string="Previous" type="object" icon="gtk-go-back" help="Change to Previous Stage"/>
<button name="next_type" string="Next" type="object" icon="gtk-go-forward" help="Change to Next Stage"/>
<field name="version_id" widget="selection"/>
- <field name="assigned_to"/>
+ <field name="user_id"/>
<field name="progress" widget="progressbar" attrs="{'invisible':[('task_id','=',False)]}"/>
<field name="state"/>
<button name="case_cancel" string="Cancel" states="draft,open,pending" type="object" icon="gtk-cancel"/>
@@ -219,8 +215,8 @@
<filter string="Pending" domain="[('state','=','pending')]" help="Pending Issues" icon="terp-gtk-media-pause"/>
<separator orientation="vertical"/>
<field name="name" string="Issue / Partner" filter_domain="['|', '|', ('partner_id','ilike',self), ('email_from','ilike',self), ('name','ilike',self)]"/>
- <field name="assigned_to">
- <filter domain="[('assigned_to','=',False)]" help="Unassigned Issues" icon="terp-personal-" separator="1"/>
+ <field name="user_id">
+ <filter domain="[('user_id','=',False)]" help="Unassigned Issues" icon="terp-personal-" separator="1"/>
</field>
<field name="project_id"/>
<field name="id"/>
@@ -228,7 +224,7 @@
<newline/>
<group expand="0" string="Group By..." groups="base.group_extended">
<filter string="Responsible" icon="terp-personal"
- domain="[]" context="{'group_by':'assigned_to'}" />
+ domain="[]" context="{'group_by':'user_id'}" />
<filter string="Partner" icon="terp-partner" domain="[]"
context="{'group_by':'partner_id'}" />
<separator orientation="vertical"/>
@@ -259,7 +255,7 @@
<field name="type">calendar</field>
<field name="priority" eval="2"/>
<field name="arch" type="xml">
- <calendar string="Issues" date_start="date" color="assigned_to" date_delay="duration">
+ <calendar string="Issues" date_start="date" color="user_id" date_delay="duration">
<field name="name"/>
<field name="partner_id"/>
</calendar>
@@ -284,7 +280,7 @@
<button name="prev_type" string="Previous" type="object" icon="gtk-go-back" help="Change to Previous Stage"/>
<button name="next_type" string="Next" type="object" icon="gtk-go-forward" help="Change to Next Stage"/>
<field name="version_id"/>
- <field name="assigned_to"/>
+ <field name="user_id"/>
<field name="state"/>
<button name="case_cancel" string="Cancel" states="draft,open,pending" type="object" icon="gtk-cancel"/>
<button name="case_close" string="Done" states="open,draft,pending" type="object" icon="gtk-jump-to"/>
@@ -307,7 +303,7 @@
<separator orientation="vertical"/>
<group>
<field name="name" select='1' string="Feature description"/>
- <field name="assigned_to" select="1"/>
+ <field name="user_id" select="1"/>
<field name="state" select="1">
<filter icon="terp-check" domain="[('state','in',('open','draft'))]" help="Current Features" name="current_feature"/>
<filter icon="terp-camera_test" domain="[('state','=','open')]" help="Open Features"/>
diff --git a/addons/project_issue/report/project_issue_report.py b/addons/project_issue/report/project_issue_report.py
index 5eae252f446..36ce72f2a70 100644
--- a/addons/project_issue/report/project_issue_report.py
+++ b/addons/project_issue/report/project_issue_report.py
@@ -37,7 +37,6 @@ class project_issue_report(osv.osv):
_columns = {
'name': fields.char('Year', size=64, required=False, readonly=True),
- 'user_id':fields.many2one('res.users', 'Responsible', readonly=True),
'section_id':fields.many2one('crm.case.section', 'Sale Team', readonly=True),
'state': fields.selection(AVAILABLE_STATES, 'State', size=16, readonly=True),
'month':fields.selection([('01', 'January'), ('02', 'February'), \
@@ -64,7 +63,7 @@ class project_issue_report(osv.osv):
'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority'),
'project_id':fields.many2one('project.project', 'Project',readonly=True),
'version_id': fields.many2one('project.issue.version', 'Version'),
- 'assigned_to' : fields.many2one('res.users', 'Assigned to',readonly=True),
+ 'user_id' : fields.many2one('res.users', 'Assigned to',readonly=True),
'partner_id': fields.many2one('res.partner','Partner',domain="[('object_id.model', '=', 'project.issue')]"),
'channel_id': fields.many2one('crm.case.channel', 'Channel',readonly=True),
'task_id': fields.many2one('project.task', 'Task',domain="[('object_id.model', '=', 'project.issue')]" ),
@@ -95,14 +94,14 @@ class project_issue_report(osv.osv):
c.project_id as project_id,
c.version_id as version_id,
1 as nbr,
- c.assigned_to,
c.partner_id,
c.channel_id,
c.task_id,
date_trunc('day',c.create_date) as create_date,
extract('epoch' from (c.date_open-c.create_date))/(3600*24) as delay_open,
extract('epoch' from (c.date_closed-c.date_open))/(3600*24) as delay_close,
- (SELECT count(id) FROM mailgate_message WHERE model='project.issue' AND res_id=c.id) AS email
+ (SELECT count(id) FROM mail_message WHERE model='project.issue' AND res_id=c.id) AS email
+
FROM
project_issue c
WHERE c.categ_id IN (select id from crm_case_categ where object_id in (select id from ir_model where model = 'project.issue'))
diff --git a/addons/project_issue/report/project_issue_report_view.xml b/addons/project_issue/report/project_issue_report_view.xml
index 4808ff29f81..1ed21b8dc01 100644
--- a/addons/project_issue/report/project_issue_report_view.xml
+++ b/addons/project_issue/report/project_issue_report_view.xml
@@ -20,8 +20,7 @@
<field name="categ_id" invisible="1"/>
<field name="channel_id" invisible="1"/>
<field name="partner_id" invisible="1"/>
- <field name="task_id" invisible="1"/>
- <field name="assigned_to" invisible="1"/>
+ <field name="task_id" invisible="1"/>
<field name="date_closed" invisible="1"/>
<field name="state" invisible="1"/>
<field name="day" invisible="1"/>
@@ -89,31 +88,14 @@
</field>
<field name="project_id"/>
- <field name="user_id" select="1" widget="selection"/>
+ <field name="user_id" select="1" widget="selection" filter_domain="[('user_id','ilike',self)]"/>
+ <field name="partner_id"/>
+ <field name="version_id" widget="selection" />
</group>
<newline/>
- <group expand="0" string="Extended Filters..." colspan="10" col="12" groups="base.group_extended">
- <field name="partner_id"/>
- <field name="assigned_to" widget="selection"/>
- <separator orientation="vertical"/>
- <field name="priority" />
- <separator orientation="vertical"/>
- <field name="version_id" widget="selection" />
- <field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'project.issue')]"/>
- <field name="type_id" widget="selection"/>
- <separator orientation="vertical"/>
- <field name="company_id" widget="selection" groups="base.group_multi_company"/>
- <newline/>
- <field name="creation_date"/>
- <field name="opening_date"/>
- <field name="date_closed" string="Date Closed"/>
- </group>
- <newline/>
- <group expand="1" string="Group By..." colspan="4" col="8">
- <filter name="User" string="Responsible" icon="terp-personal"
- domain="[]" context="{'group_by':'user_id'}" />
+ <group expand="1" string="Group By..." colspan="4" col="8">
<filter string="Assigned to" name="Responsible" icon="terp-personal"
- domain="[]" context="{'group_by':'assigned_to'}" />
+ domain="[]" context="{'group_by':'user_id'}" />
<filter string="Partner" icon="terp-partner" context="{'group_by':'partner_id'}" />
<separator orientation="vertical" />
<filter string="Sale Team" icon="terp-personal+"
diff --git a/addons/project_issue/security/ir.model.access.csv b/addons/project_issue/security/ir.model.access.csv
index 177533462a0..01afcb73b09 100644
--- a/addons/project_issue/security/ir.model.access.csv
+++ b/addons/project_issue/security/ir.model.access.csv
@@ -5,7 +5,7 @@
"access_crm_case_categ_id","crm.case.categ","crm.model_crm_case_categ","project.group_project_manager",1,1,1,1
"access_project_issue_version_project","project_issue_version manager","model_project_issue_version","project.group_project_manager",1,1,1,1
"access_project_issue_version_project_user","project_issue_version user","model_project_issue_version","project.group_project_user",1,0,0,0
-"access_mailgate_message_project_manager","mailgate.message.manager","mail_gateway.model_mailgate_message","project.group_project_manager",1,1,1,1
+"access_mail_message_project_manager","mail.message.manager","mail.model_mail_message","project.group_project_manager",1,1,1,1
"access_resource_calendar_project_manager","resource.calendar.project.manager","resource.model_resource_calendar","project.group_project_manager",1,1,1,1
"access_project_issue_report_user","project.issue.report user","model_project_issue_report","project.group_project_user",1,0,0,0
-"access_mailgate_message_issue_project_user","project.mailgate.message.issue.user","mail_gateway.model_mailgate_message","project.group_project_user",1,1,1,0
+"access_mail_message_issue_project_user","mail.message.user","mail.model_mail_message","project.group_project_user",1,1,1,0