diff options
| author | sus <sus@openerp.com> | 2014-07-22 17:54:41 +0530 |
|---|---|---|
| committer | Thibault Delavallée <tde@openerp.com> | 2014-09-18 11:38:10 +0200 |
| commit | 56dfb4eeb977eb9493b83d0c2f2de22a561bc8c3 (patch) | |
| tree | 611bd32b82e510f4f5d6bc6a31c6d0a93bee3c81 /addons/project_issue | |
| parent | e134e409731da0ed68997526dee46fad44d3f7ce (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.py | 21 | ||||
| -rw-r--r-- | addons/project_issue/project_issue_demo.xml | 32 | ||||
| -rw-r--r-- | addons/project_issue/project_issue_view.xml | 5 |
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"> |
