summaryrefslogtreecommitdiff
path: root/addons/project_issue
diff options
context:
space:
mode:
authorThibault Delavallée <tde@openerp.com>2013-03-15 12:43:38 +0100
committerThibault Delavallée <tde@openerp.com>2013-03-15 12:43:38 +0100
commit4484a3197ca558341ce595df41ffdc072a8d05d2 (patch)
tree160895b3cd052ef5a0661ed2ee02a53494dab207 /addons/project_issue
parent4387187b8bdac6223979e9a652b6ef6a19096804 (diff)
parentd0f5b28bd0da703e3d5a23cb68db91a6a87482dc (diff)
[MERGE] Sync with trunk, resolved conflicts due to forward port of 7.0
bzr revid: tde@openerp.com-20130315114338-54scb00rkp7zwr30
Diffstat (limited to 'addons/project_issue')
-rw-r--r--addons/project_issue/project_issue.py20
-rw-r--r--addons/project_issue/project_issue_data.xml15
-rw-r--r--addons/project_issue/project_issue_view.xml28
-rw-r--r--addons/project_issue/security/ir.model.access.csv1
4 files changed, 26 insertions, 38 deletions
diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py
index 8eb7281cd24..9233a95634c 100644
--- a/addons/project_issue/project_issue.py
+++ b/addons/project_issue/project_issue.py
@@ -20,6 +20,7 @@
##############################################################################
from openerp.addons.base_status.base_stage import base_stage
+from openerp.addons.project.project import _TASK_STATE
from openerp.addons.crm import crm
from datetime import datetime
from openerp.osv import fields,osv
@@ -41,9 +42,6 @@ class project_issue_version(osv.osv):
}
project_issue_version()
-_ISSUE_STATE = [('draft', 'New'), ('open', 'In Progress'), ('cancel', 'Cancelled'), ('done', 'Done'), ('pending', 'Pending')]
-
-
class project_issue(base_stage, osv.osv):
_name = "project.issue"
_description = "Project Issue"
@@ -252,7 +250,7 @@ class project_issue(base_stage, osv.osv):
'company_id': fields.many2one('res.company', 'Company'),
'description': fields.text('Private Note'),
'state': fields.related('stage_id', 'state', type="selection", store=True,
- selection=_ISSUE_STATE, string="Status", readonly=True,
+ selection=_TASK_STATE, string="Status", readonly=True,
help='The status is set to \'Draft\', when a case is created.\
If the case is in progress the status is set to \'Open\'.\
When the case is over, the status is set to \'Done\'.\
@@ -485,6 +483,15 @@ class project_issue(base_stage, osv.osv):
return [issue.project_id.message_get_reply_to()[0] if issue.project_id else False
for issue in self.browse(cr, uid, ids, context=context)]
+ def message_get_suggested_recipients(self, cr, uid, ids, context=None):
+ recipients = super(project_issue, self).message_get_suggested_recipients(cr, uid, ids, context=context)
+ for issue in self.browse(cr, uid, ids, context=context):
+ if issue.partner_id:
+ self._message_add_suggested_recipient(cr, uid, recipients, issue, partner=issue.partner_id, reason=_('Customer'))
+ elif issue.email_from:
+ self._message_add_suggested_recipient(cr, uid, recipients, issue, email=issue.email_from, reason=_('Customer Email'))
+ return recipients
+
def message_new(self, cr, uid, msg, custom_values=None, context=None):
""" Overrides mail_thread message_new that is called by the mailgateway
through message_process.
@@ -549,12 +556,13 @@ class project(osv.osv):
res = dict.fromkeys(ids, 0)
issue_ids = self.pool.get('project.issue').search(cr, uid, [('project_id', 'in', ids)])
for issue in self.pool.get('project.issue').browse(cr, uid, issue_ids, context):
- res[issue.project_id.id] += 1
+ if issue.state not in ('done', 'cancelled'):
+ res[issue.project_id.id] += 1
return res
_columns = {
'project_escalation_id' : fields.many2one('project.project','Project Escalation', help='If any issue is escalated from the current Project, it will be listed under the project selected here.', states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}),
- 'issue_count': fields.function(_issue_count, type='integer'),
+ 'issue_count': fields.function(_issue_count, type='integer', string="Unclosed Issues"),
}
def _check_escalation(self, cr, uid, ids, context=None):
diff --git a/addons/project_issue/project_issue_data.xml b/addons/project_issue/project_issue_data.xml
index 591e6c04878..2e43ca69193 100644
--- a/addons/project_issue/project_issue_data.xml
+++ b/addons/project_issue/project_issue_data.xml
@@ -2,21 +2,6 @@
<openerp>
<data noupdate="1">
- <!-- Case Categories -->
- <!-- For Bugs -->
-
- <record model="crm.case.categ" id="bug_categ">
- <field name="name">Maintenance</field>
- <field name="section_id" ref="crm.section_sales_department"/>
- <field name="object_id" search="[('model','=','project.issue')]" model="ir.model"/>
- </record>
-
- <record model="crm.case.categ" id="feature_request_categ">
- <field name="name">Feature Requests</field>
- <field name="section_id" ref="crm.section_sales_department"/>
- <field name="object_id" search="[('model','=','project.issue')]" model="ir.model"/>
- </record>
-
<!-- Case type_id -->
<!-- For Bugs -->
<record model="project.issue.version" id="type1">
diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml
index 6ffa75dd926..500a1376422 100644
--- a/addons/project_issue/project_issue_view.xml
+++ b/addons/project_issue/project_issue_view.xml
@@ -41,16 +41,6 @@
</record>
<menuitem action="project_issue_version_action" id="menu_project_issue_version_act" parent="menu_project_confi" groups="base.group_no_one"/>
- <record id="project_issue_categ_action" model="ir.actions.act_window">
- <field name="name">Issue Categories</field>
- <field name="res_model">crm.case.categ</field>
- <field name="view_type">form</field>
- <field name="view_id" ref="crm.crm_case_categ_tree-view"/>
- <field name="domain">[('object_id.model', '=', 'project.issue')]</field>
- <field name="context" eval="{'object_id': ref('model_project_issue')}"/>
- </record>
-
- <menuitem action="project_issue_categ_action" name="Categories" id="menu_project_issue_category_act" parent="menu_project_confi" groups="base.group_no_one"/>
<record model="ir.ui.view" id="project_issue_form_view">
<field name="name">Project Issue Tracker Form</field>
@@ -62,7 +52,7 @@
states="open" groups="base.group_user"/>
<button name="case_close" string="Done" type="object"
states="draft,pending" groups="base.group_user"/>
- <button name="case_cancel" string="Cancel" type="object"
+ <button name="case_cancel" string="Cancel Issue" type="object"
states="draft,open,pending" groups="base.group_user"/>
<field name="stage_id" widget="statusbar" clickable="True"/>
</header>
@@ -75,6 +65,8 @@
<button name="set_kanban_state_blocked" help="Ready for Next Stage" attrs="{'invisible': [('kanban_state', 'in', ['normal','blocked'])]}" type="object" icon="gtk-yes" class="oe_link oe_right"/>
<button name="set_kanban_state_normal" help="Blocked" attrs="{'invisible': [('kanban_state', 'in', ['done','normal'])]}" type="object" icon="gtk-no" class="oe_link oe_right"/>
</h1>
+ <label for="categ_ids" class="oe_edit_only"/>
+ <field name="categ_ids" widget="many2many_tags"/>
<group>
<group groups="base.group_user">
<field name="user_id"
@@ -88,7 +80,7 @@
</div>
</group>
<group>
- <field name="categ_ids" widget="many2many_tags"/>
+ <field name="id"/>
<field name="version_id" groups="base.group_user"/>
<field name="priority" groups="base.group_user"/>
<label for="task_id" groups="base.group_user"/>
@@ -111,11 +103,8 @@
<field name="inactivity_days"/>
<field name="days_since_creation"/>
</group>
- <group string="References">
- <field name="id"/>
- <field name="active"/>
- </group>
<group string="Status" groups="base.group_no_one">
+ <field name="active"/>
<field name="state" string="Status"/>
</group>
</page>
@@ -209,6 +198,7 @@
<field name="user_id"/>
<field name="date_deadline"/>
<field name="kanban_state"/>
+ <field name="message_summary"/>
<templates>
<t t-name="kanban-tooltip">
<ul class="oe_kanban_tooltip">
@@ -259,6 +249,9 @@
<img t-att-src="kanban_image('res.users', 'image_small', record.user_id.raw_value)" t-att-title="record.user_id.value" width="24" height="24" class="oe_kanban_avatar"/>
</div>
</div>
+ <div class="oe_kanban_footer_left">
+ <t t-raw="record.message_summary.raw_value"/>
+ </div>
</div>
<div class="oe_clear"></div>
</div>
@@ -325,6 +318,9 @@
<xpath expr='//div[@name="buttons"]' position='inside'>
<button name="%(act_project_project_2_project_issue_all)d" string="Issues" type="action" attrs="{'invisible':[('use_issues','=', 0)]}"/>
</xpath>
+ <xpath expr='//page[@name="project_stages"]' position="attributes">
+ <attribute name="attrs">{'invisible': [('use_tasks', '=', False),('use_issues','=',False)]}</attribute>
+ </xpath>
<field name="priority" position="before">
<field name="project_escalation_id"/>
</field>
diff --git a/addons/project_issue/security/ir.model.access.csv b/addons/project_issue/security/ir.model.access.csv
index 5799fb0b611..ef4edfdc13a 100644
--- a/addons/project_issue/security/ir.model.access.csv
+++ b/addons/project_issue/security/ir.model.access.csv
@@ -1,7 +1,6 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_project_issue_user,project.issue,model_project_issue,project.group_project_user,1,1,1,1
access_project_issue_report_all,project.issue.report,model_project_issue_report,project.group_project_manager,1,1,1,1
-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_resource_calendar_project_manager,resource.calendar.project.manager,resource.model_resource_calendar,project.group_project_manager,1,1,1,1