summaryrefslogtreecommitdiff
path: root/addons/project_issue
diff options
context:
space:
mode:
authorMustufa Rangwala <mra@mra-laptop>2010-07-02 20:15:03 +0530
committerMustufa Rangwala <mra@mra-laptop>2010-07-02 20:15:03 +0530
commit2d63bd763496a9b7399d02ca2a4e1e9790442fcb (patch)
treea8f1655a658bed949f044c723e43b952d812222b /addons/project_issue
parent8c8a9c4b92b7901d2871e3a50decca9689c0c96e (diff)
parentdb470305838faecdf26e5535b890b86f7aab2931 (diff)
[MERGE] Merge Team3 work from addons3 branch
bzr revid: mra@mra-laptop-20100702144503-0yynbrlkxn0v76lt
Diffstat (limited to 'addons/project_issue')
-rw-r--r--addons/project_issue/__openerp__.py6
-rw-r--r--addons/project_issue/board_project_issue_view.xml4
-rw-r--r--addons/project_issue/project_issue.py84
-rw-r--r--addons/project_issue/project_issue_data.xml6
-rw-r--r--addons/project_issue/project_issue_demo.xml1
-rw-r--r--addons/project_issue/project_issue_menu.xml6
-rw-r--r--addons/project_issue/project_issue_view.xml129
-rw-r--r--addons/project_issue/report/project_issue_report.py4
-rw-r--r--addons/project_issue/security/project_issue_security.xml2
9 files changed, 112 insertions, 130 deletions
diff --git a/addons/project_issue/__openerp__.py b/addons/project_issue/__openerp__.py
index 97f9e96afa0..ff90c5c131b 100644
--- a/addons/project_issue/__openerp__.py
+++ b/addons/project_issue/__openerp__.py
@@ -48,9 +48,9 @@
"board_project_issue_view.xml",
],
'demo_xml': ['project_issue_demo.xml'],
- 'test' : [
- 'test/convert_issue_to_task.yml',
- 'test/test_project_issue_states.yml'
+ 'test': [
+ 'test/convert_issue_to_task.yml',
+ 'test/test_project_issue_states.yml'
],
'installable': True,
'active': False,
diff --git a/addons/project_issue/board_project_issue_view.xml b/addons/project_issue/board_project_issue_view.xml
index 8b038d1036a..8fe05eddebe 100644
--- a/addons/project_issue/board_project_issue_view.xml
+++ b/addons/project_issue/board_project_issue_view.xml
@@ -85,9 +85,7 @@
<field name="usage">menu</field>
<field name="view_id" ref="board_project_issue_form"/>
</record>
- <menuitem
- id="menu_deshboard_project_issue"
- name="Project Issue Dashboard" parent="project.next_id_86"
+ <menuitem id="menu_deshboard_project_issue" name="Project Issue Dashboard" parent="project.next_id_86"
icon="terp-graph" action="open_board_project_issue"/>
</data>
</openerp>
diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py
index aebb7356405..f13f816b4ca 100644
--- a/addons/project_issue/project_issue.py
+++ b/addons/project_issue/project_issue.py
@@ -25,14 +25,14 @@ import re
import time
import mx.DateTime
from datetime import datetime, timedelta
+import binascii
+import collections
import tools
from crm import crm
from osv import fields,osv,orm
from osv.orm import except_orm
from tools.translate import _
-import collections
-import binascii
import tools
class project_issue(osv.osv, crm.crm_case):
@@ -54,7 +54,9 @@ class project_issue(osv.osv, crm.crm_case):
self.write(cr, uid, ids, {'date_open': time.strftime('%Y-%m-%d %H:%M:%S')})
return res
- def _compute_day(self, cr, uid, ids, fields, args, context={}):
+ def _compute_day(self, cr, uid, ids, fields, args, context=None):
+ if context is None:
+ context = {}
"""
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
@@ -66,7 +68,7 @@ class project_issue(osv.osv, crm.crm_case):
res_obj = self.pool.get('resource.resource')
res = {}
- for issue in self.browse(cr, uid, ids, context):
+ for issue in self.browse(cr, uid, ids, context=context):
for field in fields:
res[issue.id] = {}
duration = 0
@@ -102,13 +104,7 @@ class project_issue(osv.osv, crm.crm_case):
duration = float(ans.days)
if issue.project_id and issue.project_id.resource_calendar_id:
duration = float(ans.days) * 24
- new_dates = cal_obj.interval_min_get(cr,
- uid,
- issue.project_id.resource_calendar_id.id,
- mx.DateTime.strptime(issue.create_date, '%Y-%m-%d %H:%M:%S'),
- duration,
- resource=resource_id
- )
+ new_dates = cal_obj.interval_min_get(cr, uid, issue.project_id.resource_calendar_id.id, mx.DateTime.strptime(issue.create_date, '%Y-%m-%d %H:%M:%S'), duration, resource=resource_id)
no_days = []
date_until = mx.DateTime.strptime(date_until, '%Y-%m-%d %H:%M:%S')
for in_time, out_time in new_dates:
@@ -127,8 +123,8 @@ class project_issue(osv.osv, crm.crm_case):
'id': fields.integer('ID'),
'name': fields.char('Name', size=128, required=True),
'active': fields.boolean('Active', required=False),
- 'create_date': fields.datetime('Creation Date' , readonly=True),
- 'write_date': fields.datetime('Update Date' , readonly=True),
+ 'create_date': fields.datetime('Creation Date', readonly=True),
+ 'write_date': fields.datetime('Update Date', readonly=True),
'date_deadline': fields.date('Deadline'),
'date_closed': fields.datetime('Closed', readonly=True),
'section_id': fields.many2one('crm.case.section', 'Sales Team', \
@@ -140,28 +136,22 @@ class project_issue(osv.osv, crm.crm_case):
domain="[('partner_id','=',partner_id)]"),
'company_id': fields.many2one('res.company', 'Company'),
'description': fields.text('Description'),
- 'state': fields.selection([
- ('draft', 'Draft'),
- ('open', 'Todo'),
- ('cancel', 'Cancelled'),
- ('done', 'Closed'),
- ('pending', 'Pending'),
- ], 'State', size=16, readonly=True,
+ 'state': fields.selection([('draft', 'Draft'), ('open', 'Todo'), ('cancel', 'Cancelled'), ('done', 'Closed'),('pending', 'Pending'), ], 'State', size=16, readonly=True,
help='The state is set to \'Draft\', when a case is created.\
\nIf the case is in progress the state is set to \'Open\'.\
\nWhen the case is over, the state is set to \'Done\'.\
\nIf the case needs to be reviewed then the state is set to \'Pending\'.'),
'email_from': fields.char('Email', size=128, help="These people will receive email."),
- 'email_cc': fields.text('Watchers Emails', size=252 , help="These people\
+ 'email_cc': fields.text('Watchers Emails', size=252, help="These people\
will receive a copy of the future" \
" communication between partner and users by email"),
'date_open': fields.datetime('Opened', readonly=True),
# Project Issue fields
'date_closed': fields.datetime('Closed', readonly=True),
'date': fields.datetime('Date'),
- 'canal_id': fields.many2one('res.partner.canal', 'Channel',help="The channels represent the different communication modes available with the customer." \
+ 'canal_id': fields.many2one('res.partner.canal', 'Channel', help="The channels represent the different communication modes available with the customer." \
" With each commercial opportunity, you can indicate the canall which is this opportunity source."),
- 'categ_id': fields.many2one('crm.case.categ','Category', domain="[('object_id.model', '=', 'crm.project.bug')]"),
+ 'categ_id': fields.many2one('crm.case.categ', 'Category', domain="[('object_id.model', '=', 'crm.project.bug')]"),
'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Severity'),
'type_id': fields.many2one('crm.case.resource.type', 'Version', domain="[('object_id.model', '=', 'project.issue')]"),
'partner_name': fields.char("Employee's Name", size=64),
@@ -176,7 +166,7 @@ class project_issue(osv.osv, crm.crm_case):
method=True, multi='day_open', type="float", store=True),
'day_close': fields.function(_compute_day, string='Days to Close', \
method=True, multi='day_close', type="float", store=True),
- 'assigned_to' : fields.many2one('res.users', 'Assigned to'),
+ 'assigned_to': fields.many2one('res.users', 'Assigned to'),
'working_hours_open': fields.function(_compute_day, string='Working Hours to Open the Issue', \
method=True, multi='working_days_open', type="float", store=True),
'working_hours_close': fields.function(_compute_day, string='Working Hours to Close the Issue', \
@@ -194,15 +184,15 @@ class project_issue(osv.osv, crm.crm_case):
return False
_defaults = {
- 'active': lambda *a: 1,
+ '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,
- 'state': lambda *a: 'draft',
+ 'state': 'draft',
'section_id': crm.crm_case. _get_section,
'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.helpdesk', context=c),
- 'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0],
+ 'priority': crm.AVAILABLE_PRIORITIES[2][0],
'project_id':_get_project,
}
@@ -229,9 +219,9 @@ class project_issue(osv.osv, crm.crm_case):
'partner_id': bug.partner_id.id,
'description':bug.description,
'date': bug.date,
- 'project_id':bug.project_id.id,
- 'priority':bug.priority,
- 'user_id':bug.assigned_to.id,
+ 'project_id': bug.project_id.id,
+ 'priority': bug.priority,
+ 'user_id': bug.assigned_to.id,
'planned_hours': 0.0,
})
@@ -269,7 +259,9 @@ class project_issue(osv.osv, crm.crm_case):
def convert_to_bug(self, cr, uid, ids, context=None):
return self._convert(cr, uid, ids, 'bug_categ', context=context)
- def onchange_stage_id(self, cr, uid, ids, stage_id, context={}):
+ def onchange_stage_id(self, cr, uid, ids, stage_id, context=None):
+ if context is None:
+ context = {}
if not stage_id:
return {'value':{}}
stage = self.pool.get('crm.case.stage').browse(cr, uid, stage_id, context)
@@ -300,7 +292,7 @@ class project_issue(osv.osv, crm.crm_case):
def message_new(self, cr, uid, msg, context):
"""
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
@@ -312,7 +304,7 @@ class project_issue(osv.osv, crm.crm_case):
body = msg.get('body')
msg_from = msg.get('from')
priority = msg.get('priority')
-
+
vals = {
'name': subject,
'email_from': msg_from,
@@ -322,18 +314,18 @@ class project_issue(osv.osv, crm.crm_case):
}
if msg.get('priority', False):
vals['priority'] = priority
-
+
res = mailgate_pool.get_partner(cr, uid, msg.get('from'))
if res:
vals.update(res)
res = self.create(cr, uid, vals, 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': binascii.b2a_base64(str(attachents.get(attactment))),
'datas_fname': attactment,
'description': 'Mail attachment',
'res_model': self._name,
@@ -343,17 +335,19 @@ class project_issue(osv.osv, crm.crm_case):
return res
- def message_update(self, cr, uid, ids, vals={}, msg="", default_act='pending', context={}):
- """
+ def message_update(self, cr, uid, ids, vals={}, msg="", default_act='pending', context=None):
+ if context is None:
+ context = {}
+ """
@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
+ @param ids: List of update mail’s IDs
"""
-
+
if isinstance(ids, (str, int, long)):
ids = [ids]
-
+
vals.update({
'description': msg['body']
})
@@ -361,9 +355,9 @@ class project_issue(osv.osv, crm.crm_case):
vals['priority'] = msg.get('priority')
maps = {
- 'cost':'planned_cost',
+ 'cost': 'planned_cost',
'revenue': 'planned_revenue',
- 'probability':'probability'
+ 'probability': 'probability'
}
vls = { }
for line in msg['body'].split('\n'):
@@ -372,7 +366,7 @@ class project_issue(osv.osv, crm.crm_case):
if res and maps.get(res.group(1).lower(), False):
key = maps.get(res.group(1).lower())
vls[key] = res.group(2).lower()
-
+
vals.update(vls)
res = self.write(cr, uid, ids, vals)
return res
@@ -399,4 +393,4 @@ class project(osv.osv):
}
project()
-
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project_issue/project_issue_data.xml b/addons/project_issue/project_issue_data.xml
index a87039274f3..fb914dfaca2 100644
--- a/addons/project_issue/project_issue_data.xml
+++ b/addons/project_issue/project_issue_data.xml
@@ -1,6 +1,7 @@
<?xml version="1.0"?>
<openerp>
<data noupdate="1">
+
<!--
Case Categories
-->
@@ -11,6 +12,7 @@
<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"/>
@@ -25,7 +27,8 @@
<field name="name">Version 4.2</field>
<field name="section_id" ref="crm.section_sales_department"/>
<field name="object_id" search="[('model','=','project.issue')]" model="ir.model"/>
- </record>
+ </record>
+
<record model="crm.case.resource.type" id="type2">
<field name="name">Version 4.4</field>
<field name="section_id" ref="crm.section_sales_department"/>
@@ -67,5 +70,6 @@
<field name="section_id" ref="crm.section_sales_department"/>
<field name="object_id" search="[('model','=','project.issue')]" model="ir.model"/>
</record>
+
</data>
</openerp>
diff --git a/addons/project_issue/project_issue_demo.xml b/addons/project_issue/project_issue_demo.xml
index aee12ccf01e..ad6af0e02b0 100644
--- a/addons/project_issue/project_issue_demo.xml
+++ b/addons/project_issue/project_issue_demo.xml
@@ -1,6 +1,7 @@
<?xml version="1.0"?>
<openerp>
<data noupdate="1">
+
<record id="crm_case_buginaccountsmodule0" model="project.issue">
<field name="partner_address_id" ref="base.res_partner_address_8"/>
<field eval="time.strftime('%Y-%m-08 10:15:00')" name="date"/>
diff --git a/addons/project_issue/project_issue_menu.xml b/addons/project_issue/project_issue_menu.xml
index fefdd496559..05080670e10 100644
--- a/addons/project_issue/project_issue_menu.xml
+++ b/addons/project_issue/project_issue_menu.xml
@@ -2,7 +2,6 @@
<openerp>
<data>
-
######################## ISSUE TRACKING (menu) ###########################
<!--
ALL BUGS
@@ -14,21 +13,24 @@
<field name="view_mode">tree,calendar</field>
<field name="view_id" ref="project_issue_tree_view"/>
<field name="domain" eval="[('categ_id','=',ref('bug_categ'))]"/>
- <field name="context">{"search_default_user_id": uid,"search_default_current":1,"search_default_project_id":project_id}</field>
+ <field name="context">{"search_default_user_id": uid, "search_default_current":1, "search_default_project_id":project_id}</field>
<field name="search_view_id" ref="view_project_issue_filter"/>
</record>
+
<record model="ir.actions.act_window.view" id="action_crm_tag_tree_view0">
<field name="sequence" eval="1"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="project_issue_tree_view"/>
<field name="act_window_id" ref="project_issue_categ_act0"/>
</record>
+
<record model="ir.actions.act_window.view" id="action_crm_tag_calendar_view0">
<field name="sequence" eval="2"/>
<field name="view_mode">calendar</field>
<field name="view_id" ref="project_issue_calendar_view"/>
<field name="act_window_id" ref="project_issue_categ_act0"/>
</record>
+
<record model="ir.actions.act_window.view" id="action_crm_tag_form_view0">
<field name="sequence" eval="3"/>
<field name="view_mode">form</field>
diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml
index 842b61524e7..0bdee911cee 100644
--- a/addons/project_issue/project_issue_view.xml
+++ b/addons/project_issue/project_issue_view.xml
@@ -31,58 +31,56 @@
<field name="arch" type="xml">
<form string="Issue Tracker Form">
<group colspan="4" col="6">
- <field name="name"/>
- <field name="project_id" required="True"/>
- <field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'project.issue')]"/>
- <field name="user_id"/>
- <field name="assigned_to" />
+ <field name="name"/>
+ <field name="project_id" required="True"/>
+ <field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'project.issue')]"/>
+ <field name="user_id"/>
+ <field name="assigned_to" />
<group colspan="2" col="4">
- <field name="stage_id" on_change="onchange_stage_id(stage_id)" domain="[('object_id.model', '=', 'project.issue')]" widget="selection"/>
- <button icon="gtk-go-back" string="" name="stage_previous" type="object"/>
- <button icon="gtk-go-forward" string="" name="stage_next" type="object"/>
+ <field name="stage_id" on_change="onchange_stage_id(stage_id)" domain="[('object_id.model', '=', 'project.issue')]" widget="selection"/>
+ <button icon="gtk-go-back" string="" name="stage_previous" type="object"/>
+ <button icon="gtk-go-forward" string="" name="stage_next" type="object"/>
</group>
</group>
<notebook colspan="4">
<page string="General">
<group col="2" colspan="2">
- <separator colspan="2" string="Communication"/>
- <field name="partner_id" on_change="onchange_partner_id(partner_id, email_from)"/>
- <field name="partner_address_id" string="Contact" on_change="onchange_partner_address_id(partner_address_id, email_from)"/>
- <field name="email_from"/>
+ <separator colspan="2" string="Communication"/>
+ <field name="partner_id" on_change="onchange_partner_id(partner_id, email_from)"/>
+ <field name="partner_address_id" string="Contact" on_change="onchange_partner_address_id(partner_address_id, email_from)"/>
+ <field name="email_from"/>
</group>
<group col="3" colspan="2">
- <separator colspan="3" string="Status"/>
- <field name="type_id" colspan="3"/>
- <field name="priority" colspan="3"/>
- <field name="task_id" />
- <button string="Convert To Task"
- name="convert_issue_task"
- icon="gtk-index" type="object"
- attrs="{'invisible':[('task_id','!=',False)]}" />
+ <separator colspan="3" string="Status"/>
+ <field name="type_id" colspan="3"/>
+ <field name="priority" colspan="3"/>
+ <field name="task_id" />
+ <button string="Convert To Task" name="convert_issue_task" icon="gtk-index" type="object"
+ attrs="{'invisible':[('task_id','!=',False)]}" />
</group>
<separator string= "Description" colspan="4"/>
<field name="description" nolabel="1" colspan="4"/>
<separator colspan="4"/>
<group col="8" colspan="4">
- <field name="state" />
- <button name="case_close" string="Done" states="open,draft,pending" type="object" icon="gtk-jump-to"/>
- <button name="case_open" string="Open" states="draft,pending" type="object" icon="gtk-go-forward"/>
- <button name="case_cancel" string="Cancel" states="draft,open,pending" type="object" icon="gtk-cancel"/>
- <button name="case_pending" string="Pending" states="draft,open" type="object" icon="gtk-media-pause"/>
- <button name="case_escalate" string="Escalate" states="open,draft,pending" type="object" icon="gtk-go-up"/>
- <button name="case_reset" string="Reset to Draft" states="done,cancel" type="object" icon="gtk-convert"/>
+ <field name="state" />
+ <button name="case_close" string="Done" states="open,draft,pending" type="object" icon="gtk-jump-to"/>
+ <button name="case_open" string="Open" states="draft,pending" type="object" icon="gtk-go-forward"/>
+ <button name="case_cancel" string="Cancel" states="draft,open,pending" type="object" icon="gtk-cancel"/>
+ <button name="case_pending" string="Pending" states="draft,open" type="object" icon="gtk-media-pause"/>
+ <button name="case_escalate" string="Escalate" states="open,draft,pending" type="object" icon="gtk-go-up"/>
+ <button name="case_reset" string="Reset to Draft" states="done,cancel" type="object" icon="gtk-convert"/>
</group>
</page>
<page string="Emails" groups="base.group_extended">
<group colspan="4">
- <field colspan="4" name="email_cc" string="CC"/>
+ <field colspan="4" name="email_cc" string="CC"/>
</group>
<field name="message_ids" colspan="4" nolabel="1" mode="form,tree">
<form string="Communication history">
<group col="6" colspan="4">
- <field name="date"/>
- <field name="email_to"/>
- <field name="email_from"/>
+ <field name="date"/>
+ <field name="email_to"/>
+ <field name="email_from"/>
</group>
<notebook colspan="4">
<page string="Details">
@@ -92,9 +90,7 @@
<field name="attachment_ids" colspan="4" readonly="1" nolabel="1"/>
</page>
</notebook>
- <button colspan="4"
- string="Reply to Last Email"
- name="%(crm.action_crm_send_mail)d"
+ <button colspan="4" string="Reply to Last Email" name="%(crm.action_crm_send_mail)d"
context="{'mail':'reply', 'model': 'project.issue', 'include_original' : True}"
icon="gtk-undo" type="action" />
</form>
@@ -113,23 +109,23 @@
</page>
<page string="History" groups="base.group_extended">
<group col="2" colspan="2">
- <separator colspan="2" string="Date"/>
- <field name="create_date"/>
- <field name="write_date" />
- <field name="date_closed"/>
- <field name="date_open"/>
+ <separator colspan="2" string="Date"/>
+ <field name="create_date"/>
+ <field name="write_date" />
+ <field name="date_closed"/>
+ <field name="date_open"/>
</group>
<group colspan="2" col="2">
- <separator string="Statistics" colspan="2" col="2"/>
- <field name="day_open"/>
- <field name="day_close"/>
- <field name="working_hours_open" widget="float_time"/>
- <field name="working_hours_close" widget="float_time"/>
+ <separator string="Statistics" colspan="2" col="2"/>
+ <field name="day_open"/>
+ <field name="day_close"/>
+ <field name="working_hours_open" widget="float_time"/>
+ <field name="working_hours_close" widget="float_time"/>
</group>
<group colspan="2" col="2">
- <separator string="References" colspan="2"/>
- <field name="id"/>
- <field name="active"/>
+ <separator string="References" colspan="2"/>
+ <field name="id"/>
+ <field name="active"/>
</group>
<field name="log_ids" nolabel="1" colspan="4">
<tree string="Logs">
@@ -149,6 +145,7 @@
</form>
</field>
</record>
+
<record model="ir.ui.view" id="project_issue_tree_view">
<field name="name">Project Issue Tracker Tree</field>
<field name="model">project.issue</field>
@@ -162,11 +159,9 @@
<field name="partner_id"/>
<field name="priority" string="Severity"/>
<field name="stage_id" string="Resolution"/>
- <button icon="gtk-go-back" string=""
- name="stage_previous" type="object"
+ <button icon="gtk-go-back" string="" name="stage_previous" type="object"
states="open,draft,pending,done,cancel" />
- <button icon="gtk-go-forward" string=""
- name="stage_next" type="object"
+ <button icon="gtk-go-forward" string="" name="stage_next" type="object"
states="open,draft,pending,done,cancel" />
<field name="type_id" string="Version"/>
<field name="user_id"/>
@@ -193,14 +188,9 @@
<filter string="In Progress" domain="[('state','=','open')]" help="Open Issues" icon="terp-camera_test"/>
<filter string="Pending" domain="[('state','=','pending')]" help="Pending Issues" icon="terp-gtk-media-pause"/>
<separator orientation="vertical"/>
- <filter icon="terp-go-today" string=" Today "
- separator="1"
- domain="[('date','=',time.strftime('%%Y-%%m-%%d'))]"
- help="Today's bugs"
- />
- <filter icon="terp-go-week"
- string=" 7 Days " separator="1"
- domain="[('date','&lt;', time.strftime('%%Y-%%m-%%d')), ('date','&gt;=',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]"
+ <filter icon="terp-go-today" string=" Today " separator="1" domain="[('date','=',time.strftime('%%Y-%%m-%%d'))]" help="Today's bugs" />
+ <filter icon="terp-go-week" string=" 7 Days " separator="1"
+ domain="[('date','&lt;', time.strftime('%%Y-%%m-%%d')), ('date', '&gt;=', (datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]"
help="Bugs during last 7 days"
/>
<separator orientation="vertical"/>
@@ -260,11 +250,9 @@
<field name="partner_id"/>
<field name="priority" string="Severity"/>
<field name="stage_id" string="Resolution"/>
- <button icon="gtk-go-back" string=""
- name="stage_previous" type="object"
+ <button icon="gtk-go-back" string="" name="stage_previous" type="object"
states="open,draft,pending,done,cancel" />
- <button icon="gtk-go-forward" string=""
- name="stage_next" type="object"
+ <button icon="gtk-go-forward" string="" name="stage_next" type="object"
states="open,draft,pending,done,cancel" />
<field name="type_id" string="Version"/>
<field name="user_id"/>
@@ -286,16 +274,10 @@
<field name="arch" type="xml">
<search string="Feature Tracker Search">
<group>
- <filter icon="terp-go-today" string=" Today "
- separator="1"
- domain="[('date','=',time.strftime('%%Y-%%m-%%d'))]"
- help="Today's features"
- />
- <filter icon="terp-go-week"
- string=" 7 Days " separator="1"
- domain="[('date','&lt;', time.strftime('%%Y-%%m-%%d')), ('date','&gt;=',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]"
- help="Features during last 7 days"
- />
+ <filter icon="terp-go-today" string=" Today " separator="1"
+ domain="[('date','=',time.strftime('%%Y-%%m-%%d'))]" help="Today's features"/>
+ <filter icon="terp-go-week" string=" 7 Days " separator="1"
+ domain="[('date','&lt;', time.strftime('%%Y-%%m-%%d')), ('date','&gt;=',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]" help="Features during last 7 days"/>
</group>
<separator orientation="vertical"/>
<group>
@@ -306,7 +288,6 @@
<filter icon="terp-camera_test" domain="[('state','=','open')]" help="Open Features"/>
</field>
<field name="project_id" select="1" string="Project"/>
-
</group>
</search>
</field>
diff --git a/addons/project_issue/report/project_issue_report.py b/addons/project_issue/report/project_issue_report.py
index 48b8ad7c753..833a792c34d 100644
--- a/addons/project_issue/report/project_issue_report.py
+++ b/addons/project_issue/report/project_issue_report.py
@@ -13,7 +13,9 @@ class project_issue_report(osv.osv):
_name = "project.issue.report"
_auto = False
- def _get_data(self, cr, uid, ids, field_name, arg, context={}):
+ def _get_data(self, cr, uid, ids, field_name, arg, context=None):
+ if context is None:
+ context = {}
""" @param cr: the current row, from the database cursor,
@param uid: the current users ID for security checks,
@param ids: List of case and section Datas IDs
diff --git a/addons/project_issue/security/project_issue_security.xml b/addons/project_issue/security/project_issue_security.xml
index 82b6c003d91..1c0c23aad8d 100644
--- a/addons/project_issue/security/project_issue_security.xml
+++ b/addons/project_issue/security/project_issue_security.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
-<data noupdate="1">
+ <data noupdate="1">
<record id="group_project_supporter" model="res.groups">
<field name="name">Project / Support Manager</field>