summaryrefslogtreecommitdiff
path: root/addons/project_issue
diff options
context:
space:
mode:
authorsus <sus@openerp.com>2014-07-22 17:54:41 +0530
committerThibault Delavallée <tde@openerp.com>2014-09-18 11:38:10 +0200
commit56dfb4eeb977eb9493b83d0c2f2de22a561bc8c3 (patch)
tree611bd32b82e510f4f5d6bc6a31c6d0a93bee3c81 /addons/project_issue
parente134e409731da0ed68997526dee46fad44d3f7ce (diff)
[IMP] project: onboardin / usability improvements
- project kanban view: dashboard-like view, add sparklines for open tasks and closed issues - project: cleaned demo data, less stages - project: description is now an html field
Diffstat (limited to 'addons/project_issue')
-rw-r--r--addons/project_issue/project_issue.py21
-rw-r--r--addons/project_issue/project_issue_demo.xml32
-rw-r--r--addons/project_issue/project_issue_view.xml5
3 files changed, 38 insertions, 20 deletions
diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py
index 747485d64ce..76e1766c181 100644
--- a/addons/project_issue/project_issue.py
+++ b/addons/project_issue/project_issue.py
@@ -19,8 +19,11 @@
#
##############################################################################
-from datetime import datetime
-
+import calendar
+from datetime import datetime,date
+from dateutil import relativedelta
+import json
+import time
from openerp import api
from openerp import SUPERUSER_ID
from openerp import tools
@@ -480,13 +483,25 @@ class project(osv.Model):
project_id: Issue.search_count(cr,uid, [('project_id', '=', project_id), ('stage_id.fold', '=', False)], context=context)
for project_id in ids
}
+ def _get_project_issue_data(self, cr, uid, ids, field_name, arg, context=None):
+ obj = self.pool['project.issue']
+ month_begin = date.today().replace(day=1)
+ date_begin = (month_begin - relativedelta.relativedelta(months=self._period_number - 1)).strftime(tools.DEFAULT_SERVER_DATE_FORMAT)
+ date_end = month_begin.replace(day=calendar.monthrange(month_begin.year, month_begin.month)[1]).strftime(tools.DEFAULT_SERVER_DATE_FORMAT)
+ res = {}
+ for id in ids:
+ created_domain = [('project_id', '=', id), ('date_closed', '>=', date_begin ), ('date_closed', '<=', date_end )]
+ res[id] = json.dumps(self.__get_bar_values(cr, uid, obj, created_domain, [ 'date_closed'], 'date_closed_count', 'date_closed', context=context))
+ 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', string="Issues",),
'issue_ids': fields.one2many('project.issue', 'project_id',
- domain=[('stage_id.fold', '=', False)])
+ domain=[('date_closed', '!=', False)]),
+ 'monthly_issues': fields.function(_get_project_issue_data, type='char', readonly=True,
+ string='Project Issue By Month')
}
def _check_escalation(self, cr, uid, ids, context=None):
diff --git a/addons/project_issue/project_issue_demo.xml b/addons/project_issue/project_issue_demo.xml
index 7da36f1d4c6..d55dd648aa9 100644
--- a/addons/project_issue/project_issue_demo.xml
+++ b/addons/project_issue/project_issue_demo.xml
@@ -44,7 +44,7 @@
<field eval="15.0" name="duration"/>
<field name="name">Bug in Accounts module</field>
<field name="email_from">agr@agrolait.com</field>
- <field name="stage_id" ref="project.project_tt_specification"/>
+ <field name="stage_id" ref="project.project_stage_1"/>
<field name="categ_ids" eval="[(6, 0, [
ref('project_issue_category_01')])]"/>
</record>
@@ -59,7 +59,7 @@
<field eval="3.5" name="duration"/>
<field name="name">Program not giving proper output</field>
<field name="project_id" ref="project.project_project_4"/>
- <field name="stage_id" ref="project.project_tt_specification"/>
+ <field name="stage_id" ref="project.project_stage_1"/>
</record>
<record id="crm_case_outputincorrect0" model="project.issue">
@@ -71,7 +71,7 @@
<field eval="2.3" name="duration"/>
<field name="project_id" ref="project.project_project_5"/>
<field name="name">Output incorrect</field>
- <field name="stage_id" ref="project.project_tt_development"/>
+ <field name="stage_id" ref="project.project_stage_2"/>
<field name="categ_ids" eval="[(6, 0, [
ref('project_issue_category_01'),
ref('project_issue_category_02')])]"/>
@@ -87,7 +87,7 @@
<field eval="4.0" name="duration"/>
<field name="project_id" ref="project.project_project_4"/>
<field name="name">Problem loading page</field>
- <field name="stage_id" ref="project.project_tt_testing"/>
+ <field name="stage_id" ref="project.project_stage_0"/>
</record>
<record id="crm_case_pagenotfound0" model="project.issue">
@@ -100,7 +100,7 @@
<field eval="1.0" name="duration"/>
<field name="project_id" ref="project.project_project_4"/>
<field name="name">Page not Found</field>
- <field name="stage_id" ref="project.project_tt_development"/>
+ <field name="stage_id" ref="project.project_stage_0"/>
</record>
<record id="crm_case_programmingerror0" model="project.issue">
@@ -113,7 +113,7 @@
<field eval="4.0" name="duration"/>
<field name="project_id" ref="project.project_project_4"/>
<field name="name">Programming Error</field>
- <field name="stage_id" ref="project.project_tt_testing"/>
+ <field name="stage_id" ref="project.project_stage_0"/>
<field name="categ_ids" eval="[(6, 0, [
ref('project_issue_category_02'),
ref('project_issue_category_03')])]"/>
@@ -129,7 +129,7 @@
<field eval="2.0" name="duration"/>
<field name="project_id" ref="project.project_project_2"/>
<field name="name">Logical Error in Program</field>
- <field name="stage_id" ref="project.project_tt_testing"/>
+ <field name="stage_id" ref="project.project_stage_3"/>
</record>
<record id="crm_case_constrainterror0" model="project.issue">
@@ -142,7 +142,7 @@
<field eval="7.3" name="duration"/>
<field name="project_id" ref="project.project_project_2"/>
<field name="name">Constraint Error</field>
- <field name="stage_id" ref="project.project_tt_testing"/>
+ <field name="stage_id" ref="project.project_stage_1"/>
</record>
<record id="crm_case_errorinprogram0" model="project.issue">
@@ -154,7 +154,7 @@
<field eval="1.3" name="duration"/>
<field name="project_id" ref="project.project_project_4"/>
<field name="name">Error in Program</field>
- <field name="stage_id" ref="project.project_tt_testing"/>
+ <field name="stage_id" ref="project.project_stage_1"/>
</record>
<record id="crm_case_patcheserrorinprogram0" model="project.issue">
@@ -167,7 +167,7 @@
<field eval="13.0" name="duration"/>
<field name="project_id" ref="project.project_project_2"/>
<field name="name">Patches Error in Program</field>
- <field name="stage_id" ref="project.project_tt_testing"/>
+ <field name="stage_id" ref="project.project_stage_1"/>
</record>
<record id="crm_case_newfeaturestobeadded0" model="project.issue">
@@ -180,7 +180,7 @@
<field eval="3.2" name="duration"/>
<field name="project_id" ref="project.project_project_3"/>
<field name="name">New Features To Be Added</field>
- <field name="stage_id" ref="project.project_tt_merge"/>
+ <field name="stage_id" ref="project.project_stage_1"/>
</record>
<record id="crm_case_addmenustothemodule0" model="project.issue">
@@ -194,7 +194,7 @@
<field name="project_id" ref="project.project_project_3"/>
<field name="name">Add menus to the module</field>
<field name="email_from">info@opensides.be</field>
- <field name="stage_id" ref="project.project_tt_development"/>
+ <field name="stage_id" ref="project.project_stage_2"/>
</record>
<record id="crm_case_includeattendancesheetinproject0" model="project.issue">
@@ -208,7 +208,7 @@
<field name="project_id" ref="project.project_project_2"/>
<field name="name">Include Attendance sheet in Project</field>
<field name="email_from">contact@tecsas.fr</field>
- <field name="stage_id" ref="project.project_tt_development"/>
+ <field name="stage_id" ref="project.project_stage_1"/>
</record>
<record id="crm_case_createnewobject0" model="project.issue">
@@ -221,7 +221,7 @@
<field eval="2.45" name="duration"/>
<field name="project_id" ref="project.project_project_4"/>
<field name="name">Create new object</field>
- <field name="stage_id" ref="project.project_tt_specification"/>
+ <field name="stage_id" ref="project.project_stage_0"/>
</record>
<record id="crm_case_improvereportsinhrms0" model="project.issue">
@@ -234,7 +234,7 @@
<field eval="15.0" name="duration"/>
<field name="project_id" ref="project.project_project_4"/>
<field name="name">Improve Reports in HRMS</field>
- <field name="stage_id" ref="project.project_tt_development"/>
+ <field name="stage_id" ref="project.project_stage_2"/>
</record>
<record id="crm_case_improvereportsinpms0" model="project.issue">
@@ -247,7 +247,7 @@
<field eval="06.15" name="duration"/>
<field name="project_id" ref="project.project_project_4"/>
<field name="name">Improve Reports in PMS</field>
- <field name="stage_id" ref="project.project_tt_specification"/>
+ <field name="stage_id" ref="project.project_stage_1"/>
</record>
<!-- Call function to set some issues as 'unread' -->
diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml
index 2dd50de04a9..236aea7a7eb 100644
--- a/addons/project_issue/project_issue_view.xml
+++ b/addons/project_issue/project_issue_view.xml
@@ -331,9 +331,12 @@
<field name="issue_ids" invisible="1"/>
</field>
<xpath expr="//div[contains(@class, 'oe_kanban_project_list')]/a" position="after">
- <a t-if="record.use_issues.raw_value" style="margin-right: 10px"
+ <a t-if="record.use_issues.raw_value" style="margin-right: -30px" class="pull-right"
name="%(act_project_project_2_project_issue_all)d" type="action">
<t t-raw="record.issue_ids.raw_value.length"/> Issues
+ <field name="monthly_issues" widget="sparkline_bar" options="{'delayIn': '1000'}">
+ Closed Issues
+ </field>
</a>
</xpath>
<xpath expr="//div[contains(@class, 'oe_kanban_project_list')]/div" position="replace">