[MERGE]: merging from same branch
bzr revid: mga@tinyerp.com-20100203104450-s1zdolwpi6kw3owi
This commit is contained in:
@@ -22,7 +22,6 @@
|
||||
|
||||
|
||||
import crm_project_bug
|
||||
import crm_project_feature
|
||||
|
||||
import report
|
||||
import wizard
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
|
||||
|
||||
{
|
||||
'name': 'CRM Stuff in Project Management',
|
||||
'name': 'Bug Reporting in Project Management',
|
||||
'version': '1.0',
|
||||
'category': 'Generic Modules/CRM & SRM',
|
||||
'description': """
|
||||
@@ -35,9 +35,9 @@
|
||||
'crm_bugs_data.xml'
|
||||
],
|
||||
'update_xml': [
|
||||
'crm_bug_wizard.xml',
|
||||
'crm_bugs_view.xml',
|
||||
'crm_bugs_menu.xml',
|
||||
'crm_feature_view.xml',
|
||||
'crm_bugs_menu.xml',
|
||||
'crm_feature_menu.xml',
|
||||
'report_crm_project_bug_view.xml',
|
||||
'security/crm_project_security.xml',
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<wizard
|
||||
id="wizard_crm_bug_task_set"
|
||||
keyword="client_action_multi"
|
||||
model="crm.bug"
|
||||
name="crm.bug.task_set"
|
||||
multi="True"
|
||||
string="Convert To Task"/>
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -6,17 +6,12 @@
|
||||
-->
|
||||
<!-- For Bugs -->
|
||||
|
||||
<record model="crm.case.categ" id="categ1">
|
||||
<record model="crm.case.categ" id="bug_categ">
|
||||
<field name="name">Bugs</field>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.project.bug')]" model="ir.model"/>
|
||||
</record>
|
||||
<record model="crm.case.categ" id="categ2">
|
||||
<field name="name">Patches</field>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.project.bug')]" model="ir.model"/>
|
||||
</record>
|
||||
<record model="crm.case.categ" id="categ3">
|
||||
</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','=','crm.project.bug')]" model="ir.model"/>
|
||||
@@ -71,12 +66,6 @@
|
||||
<field name="name">Works For Me</field>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.project.bug')]" model="ir.model"/>
|
||||
</record>
|
||||
<record model="crm.case.stage" id="stage7">
|
||||
<field name="name">Future</field>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.project.bug')]" model="ir.model"/>
|
||||
</record>
|
||||
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<field eval=""open"" name="state"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field name="categ_id" ref="categ1"/>
|
||||
<field name="categ_id" ref="bug_categ"/>
|
||||
<field name="stage_id" ref="stage1"/>
|
||||
<field eval="15.0" name="duration"/>
|
||||
<field eval=""Bug in Accounts module"" name="name"/>
|
||||
@@ -40,7 +40,7 @@
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="3.5" name="duration"/>
|
||||
<field name="categ_id" ref="categ1"/>
|
||||
<field name="categ_id" ref="bug_categ"/>
|
||||
<field name="stage_id" ref="stage2"/>
|
||||
<field eval=""Program not giving proper output"" name="name"/>
|
||||
</record>
|
||||
@@ -56,7 +56,7 @@
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="2.3" name="duration"/>
|
||||
<field name="categ_id" ref="categ1"/>
|
||||
<field name="categ_id" ref="bug_categ"/>
|
||||
<field name="stage_id" ref="stage3"/>
|
||||
<field eval=""Output incorrect"" name="name"/>
|
||||
</record>
|
||||
@@ -72,7 +72,7 @@
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="4.0" name="duration"/>
|
||||
<field name="categ_id" ref="categ1"/>
|
||||
<field name="categ_id" ref="bug_categ"/>
|
||||
<field name="stage_id" ref="stage4"/>
|
||||
<field eval=""Problem loading page"" name="name"/>
|
||||
</record>
|
||||
@@ -87,7 +87,7 @@
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="1.0" name="duration"/>
|
||||
<field name="categ_id" ref="categ1"/>
|
||||
<field name="categ_id" ref="bug_categ"/>
|
||||
<field name="stage_id" ref="stage5"/>
|
||||
<field eval=""Page not Found"" name="name"/>
|
||||
</record>
|
||||
@@ -103,7 +103,7 @@
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="4.0" name="duration"/>
|
||||
<field name="categ_id" ref="categ1"/>
|
||||
<field name="categ_id" ref="bug_categ"/>
|
||||
<field name="stage_id" ref="stage6"/>
|
||||
<field eval=""Programming Error"" name="name"/>
|
||||
</record>
|
||||
@@ -119,8 +119,8 @@
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="2.0" name="duration"/>
|
||||
<field name="categ_id" ref="categ1"/>
|
||||
<field name="stage_id" ref="stage7"/>
|
||||
<field name="categ_id" ref="bug_categ"/>
|
||||
<field name="stage_id" ref="stage6"/>
|
||||
<field eval=""Logical Error in Program"" name="name"/>
|
||||
</record>
|
||||
|
||||
@@ -135,7 +135,7 @@
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="7.3" name="duration"/>
|
||||
<field name="categ_id" ref="categ1"/>
|
||||
<field name="categ_id" ref="bug_categ"/>
|
||||
<field name="stage_id" ref="stage5"/>
|
||||
<field eval=""Constraint Error"" name="name"/>
|
||||
</record>
|
||||
@@ -150,7 +150,7 @@
|
||||
<field eval=""open"" name="state"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="1.3" name="duration"/>
|
||||
<field name="categ_id" ref="categ2"/>
|
||||
<field name="categ_id" ref="feature_request_categ"/>
|
||||
<field name="stage_id" ref="stage5"/>
|
||||
<field eval=""Error in Program"" name="name"/>
|
||||
</record>
|
||||
@@ -166,7 +166,7 @@
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="13.0" name="duration"/>
|
||||
<field name="categ_id" ref="categ2"/>
|
||||
<field name="categ_id" ref="feature_request_categ"/>
|
||||
<field name="stage_id" ref="stage5"/>
|
||||
<field eval=""Patches Error in Program"" name="name"/>
|
||||
</record>
|
||||
@@ -182,7 +182,7 @@
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="3.2" name="duration"/>
|
||||
<field name="categ_id" ref="categ3"/>
|
||||
<field name="categ_id" ref="feature_request_categ"/>
|
||||
<field name="stage_id" ref="stage1"/>
|
||||
<field eval=""New Features To Be Added"" name="name"/>
|
||||
</record>
|
||||
@@ -198,7 +198,7 @@
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="3.0" name="duration"/>
|
||||
<field name="categ_id" ref="categ3"/>
|
||||
<field name="categ_id" ref="feature_request_categ"/>
|
||||
<field name="stage_id" ref="stage2"/>
|
||||
<field eval=""Add menus to the module"" name="name"/>
|
||||
<field eval=""info@opensides.be"" name="email_from"/>
|
||||
@@ -215,7 +215,7 @@
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="2.0" name="duration"/>
|
||||
<field name="categ_id" ref="categ3"/>
|
||||
<field name="categ_id" ref="feature_request_categ"/>
|
||||
<field name="stage_id" ref="stage3"/>
|
||||
<field eval=""Include Attendance sheet in Project"" name="name"/>
|
||||
<field eval=""contact@tecsas.fr"" name="email_from"/>
|
||||
@@ -234,7 +234,7 @@
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="2.45" name="duration"/>
|
||||
<field name="categ_id" ref="categ3"/>
|
||||
<field name="categ_id" ref="feature_request_categ"/>
|
||||
<field name="stage_id" ref="stage5"/>
|
||||
<field eval=""Create new object"" name="name"/>
|
||||
</record>
|
||||
@@ -250,8 +250,8 @@
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="15.0" name="duration"/>
|
||||
<field name="categ_id" ref="categ3"/>
|
||||
<field name="stage_id" ref="stage7"/>
|
||||
<field name="categ_id" ref="feature_request_categ"/>
|
||||
<field name="stage_id" ref="stage6"/>
|
||||
<field eval=""Improve Reports in HRMS"" name="name"/>
|
||||
</record>
|
||||
|
||||
@@ -266,7 +266,7 @@
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="06.15" name="duration"/>
|
||||
<field name="categ_id" ref="categ3"/>
|
||||
<field name="categ_id" ref="feature_request_categ"/>
|
||||
<field name="stage_id" ref="stage5"/>
|
||||
<field eval=""Improve Reports in PMS"" name="name"/>
|
||||
</record>
|
||||
|
||||
@@ -1,38 +1,6 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
|
||||
|
||||
<record model="crm.case.categ" id="categ1">
|
||||
<field name="name">Bugs</field>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.project.bug')]" model="ir.model"/>
|
||||
</record>
|
||||
<record model="crm.case.categ" id="categ2">
|
||||
<field name="name">Patches</field>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.project.bug')]" model="ir.model"/>
|
||||
</record>
|
||||
<record model="crm.case.categ" id="categ3">
|
||||
<field name="name">Feature Requests</field>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.project.bug')]" model="ir.model"/>
|
||||
</record>
|
||||
<record model="crm.case.stage" id="stage2">
|
||||
<field name="name">Fixed</field>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.project.bug')]" model="ir.model"/>
|
||||
</record>
|
||||
<record model="crm.case.stage" id="stage5">
|
||||
<field name="name">Awaiting Response</field>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.project.bug')]" model="ir.model"/>
|
||||
</record>
|
||||
<record model="crm.case.stage" id="stage7">
|
||||
<field name="name">Future</field>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.project.bug')]" model="ir.model"/>
|
||||
</record>
|
||||
<data noupdate="1">
|
||||
|
||||
|
||||
######################## BUG TRACKING (menu) ###########################
|
||||
@@ -40,11 +8,12 @@
|
||||
ALL BUGS
|
||||
-->
|
||||
<record model="ir.actions.act_window" id="crm_case_categ_act0">
|
||||
<field name="name">Bugs</field>
|
||||
<field name="name">Issues</field>
|
||||
<field name="res_model">crm.project.bug</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,calendar</field>
|
||||
<field name="view_id" ref="crm_case_tree_view"/>
|
||||
<field name="domain" eval="[('categ_id','=',ref('bug_categ'))]"/>
|
||||
<field name="context" eval="{'default_state':'open'}"/>
|
||||
<field name="search_view_id" ref="view_crm_case_bugs_filter"/>
|
||||
</record>
|
||||
|
||||
@@ -36,25 +36,29 @@
|
||||
<field name="arch" type="xml">
|
||||
<form string="Bug Tracker Form">
|
||||
<group colspan="4" col="6">
|
||||
<field name="project_id" required="True"/>
|
||||
<field name="name" string="Title" colspan="2"/>
|
||||
<field name="section_id" colspan="1" widget="selection"/>
|
||||
<label string="Resolution: " align="1.0"/>
|
||||
<group colspan="1" col="2">
|
||||
<field name="stage_id" select="1" nolabel="1"/>
|
||||
<button icon="gtk-go-forward" string="" name="stage_next" type="object"/>
|
||||
</group>
|
||||
<field name="date"/>
|
||||
<field name="name" string="Title" colspan="2"/>
|
||||
<field name="project_id" required="True"/>
|
||||
<field name="categ_id" on_change="onchange_categ_id(categ_id)" widget="selection" required="1" domain="[('object_id.model', '=', 'crm.project.bug')]"/>
|
||||
<field name="user_id" />
|
||||
<label string="Resolution: " align="1.0"/>
|
||||
<group colspan="1" col="2">
|
||||
<field name="stage_id" select="1" nolabel="1"/>
|
||||
<button icon="gtk-go-forward" string="" name="stage_next" type="object"/>
|
||||
</group>
|
||||
<label string="Related Task: " align="1.0"/>
|
||||
<group colspan="1" col="2">
|
||||
<field name="task_id" nolabel="1"/>
|
||||
<button string="Convert To Task" name="%(wizard_crm_bug_task_set)d" icon="gtk-index" type="action" attrs="{'invisible':[('task_id','!=',False)]}"/>
|
||||
</group>
|
||||
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="General">
|
||||
<field name="partner_id" on_change="onchange_partner_id(partner_id, email_from)" colspan="2"/>
|
||||
<field name="partner_address_id" string="Contact" on_change="onchange_partner_address_id(partner_address_id, email_from)" colspan="1"/>
|
||||
<field name="email_from" colspan="2"/>
|
||||
<field name="email_from" colspan="2"/>
|
||||
<separator colspan="4"/>
|
||||
<field name="type_id" string="Version"/>
|
||||
<field name="categ_id" on_change="onchange_categ_id(categ_id)"/>
|
||||
<field name="type_id" string="Version"/>
|
||||
<field name="priority" string="Severity"/>
|
||||
<newline/>
|
||||
<separator string= "Description" colspan="4"/>
|
||||
@@ -158,20 +162,7 @@
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Bugs">
|
||||
<group col="7" colspan="1">
|
||||
<filter icon="gtk-apply" string="Fixed Bugs"
|
||||
domain="[('stage_id.name','=','Fixed')]"
|
||||
separator="1" help="All Fixed Bugs"
|
||||
/>
|
||||
<filter icon="gtk-media-pause" string="Waiting Bugs"
|
||||
domain="[('stage_id.name','=','Awaiting Response')]"
|
||||
separator="1" help="All Waiting Bugs"
|
||||
/>
|
||||
<filter icon="gtk-media-forward" string="Future Bugs"
|
||||
domain="[('stage_id.name','=','Future')]"
|
||||
separator="1" help="All Future Bugs"
|
||||
/>
|
||||
<separator orientation="vertical"/>
|
||||
<group col="3" colspan="1">
|
||||
<filter icon="gtk-home" string=" Today "
|
||||
separator="1"
|
||||
domain="[('date','=',time.strftime('%%Y-%%m-%%d'))]"
|
||||
@@ -181,20 +172,25 @@
|
||||
string=" 7 Days " separator="1"
|
||||
domain="[('date','<', time.strftime('%%Y-%%m-%%d')), ('date','>=',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]"
|
||||
help="Bugs during last 7 days"
|
||||
/>
|
||||
/>
|
||||
|
||||
</group>
|
||||
<separator orientation="vertical"/>
|
||||
<group col="4" colspan="2">
|
||||
<group col="5" colspan="2">
|
||||
<field name="name" select='1' string="Subject"/>
|
||||
<field name="user_id" select="1" widget="selection">
|
||||
<filter icon="terp-partner" domain="[('user_id','=',uid)]" help="My Bugs" default="1"/>
|
||||
</field>
|
||||
<field name="section_id" select="1" widget="selection" string="Section" default="context.get('section_id', False)">
|
||||
<field name="user_id" select="1" widget="selection">
|
||||
<filter icon="terp-partner" domain="[('user_id','=',uid)]" help="My Bugs" default="1"/>
|
||||
</field>
|
||||
<field name="state" select="1">
|
||||
<filter icon="gtk-new" domain="[('state','in',('open','draft'))]" help="Current Bugs" default="1"/>
|
||||
<filter icon="gtk-yes" domain="[('state','=','open')]" help="Open Bugs"/>
|
||||
</field>
|
||||
<field name="project_id" select="1" widget="selection" string="Project" default="context.get('project_id', False)">
|
||||
<filter icon="terp-crm"
|
||||
domain="[('section_id','=',context.get('section_id',False))]"
|
||||
help="My section"
|
||||
domain="[('project_id','=',context.get('project_id',False))]"
|
||||
help="My Project"
|
||||
/>
|
||||
</field>
|
||||
</field>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
|
||||
@@ -1,55 +1,36 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
|
||||
|
||||
<record model="crm.case.categ" id="future_patch_categ">
|
||||
<field name="name">Patches</field>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.project.future')]" model="ir.model"/>
|
||||
</record>
|
||||
<record model="crm.case.stage" id="future_fixed_categ">
|
||||
<field name="name">Fixed</field>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.project.future')]" model="ir.model"/>
|
||||
</record>
|
||||
<record model="crm.case.stage" id="future_awaiting_categ">
|
||||
<field name="name">Awaiting Response</field>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field name="object_id" search="[('model','=','crm.project.future')]" model="ir.model"/>
|
||||
</record>
|
||||
|
||||
<data noupdate="1">
|
||||
|
||||
|
||||
######################## Future Request (menu) ###########################
|
||||
<!--
|
||||
ALL BUGS
|
||||
-->
|
||||
|
||||
<record model="ir.actions.act_window" id="action_crm_case_future">
|
||||
<field name="name">Future Requests</field>
|
||||
<field name="res_model">crm.project.future</field>
|
||||
<field name="res_model">crm.project.bug</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,calendar</field>
|
||||
<field name="view_id" ref="crm_case_future_tree_view"/>
|
||||
<field name="view_id" ref="crm_case_tree_view"/>
|
||||
<field name="domain" eval="[('categ_id','=',ref('feature_request_categ'))]"/>
|
||||
<field name="context" eval="{'default_state':'open'}"/>
|
||||
<field name="search_view_id" ref="view_crm_case_future_filter"/>
|
||||
<field name="search_view_id" ref="view_crm_case_bugs_filter"/>
|
||||
</record>
|
||||
<record model="ir.actions.act_window.view" id="action_crm_future_tree_view0">
|
||||
<field name="sequence" eval="1"/>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_id" ref="crm_case_future_tree_view"/>
|
||||
<field name="view_id" ref="crm_case_tree_view"/>
|
||||
<field name="act_window_id" ref="action_crm_case_future"/>
|
||||
</record>
|
||||
<record model="ir.actions.act_window.view" id="action_crm_future_calendar_view0">
|
||||
<field name="sequence" eval="2"/>
|
||||
<field name="view_mode">calendar</field>
|
||||
<field name="view_id" ref="crm_case_future_calendar_view"/>
|
||||
<field name="view_id" ref="crm_case_calendar_view"/>
|
||||
<field name="act_window_id" ref="action_crm_case_future"/>
|
||||
</record>
|
||||
<record model="ir.actions.act_window.view" id="action_crm_future_form_view0">
|
||||
<field name="sequence" eval="3"/>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="crm_case_future_form_view"/>
|
||||
<field name="view_id" ref="crm_case_form_view"/>
|
||||
<field name="act_window_id" ref="action_crm_case_future"/>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -1,191 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<!-- <menuitem name="CRM & SRM" icon="terp-crm" id="menu_crm1"/> -->
|
||||
|
||||
# ------------------------------------------------------
|
||||
# Future Request
|
||||
# ------------------------------------------------------
|
||||
|
||||
|
||||
<record model="ir.ui.view" id="crm_case_future_form_view">
|
||||
<field name="name">CRM - Future Request Form</field>
|
||||
<field name="model">crm.project.future</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Future Request Form">
|
||||
<group colspan="4" col="6">
|
||||
<field name="project_id" required="True"/>
|
||||
<field name="name" string="Title" colspan="2"/>
|
||||
<field name="section_id" colspan="1" widget="selection"/>
|
||||
<label string="Resolution: " align="1.0"/>
|
||||
<group colspan="1" col="2">
|
||||
<field name="stage_id" select="1" nolabel="1"/>
|
||||
<button icon="gtk-go-forward" string="" name="stage_next" type="object"/>
|
||||
</group>
|
||||
<field name="date"/>
|
||||
<field name="user_id" />
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="General">
|
||||
<field name="partner_id" on_change="onchange_partner_id(partner_id, email_from)" colspan="2"/>
|
||||
<field name="partner_address_id" string="Contact" on_change="onchange_partner_address_id(partner_address_id, email_from)" colspan="1"/>
|
||||
<field name="email_from" colspan="2"/>
|
||||
<separator colspan="4"/>
|
||||
<field name="type_id" string="Version"/>
|
||||
<field name="categ_id" on_change="onchange_categ_id(categ_id)"/>
|
||||
<field name="priority" string="Severity"/>
|
||||
<newline/>
|
||||
<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"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="History">
|
||||
<field name="id" select="1"/>
|
||||
<field name="active" />
|
||||
<separator colspan="4" string="Dates"/>
|
||||
<field name="create_date"/>
|
||||
<field name="date_closed"/>
|
||||
<field name="date_action_last"/>
|
||||
<field name="date_action_next"/>
|
||||
<separator colspan="4" string="Estimates"/>
|
||||
<field name="planned_revenue"/>
|
||||
<field name="planned_cost"/>
|
||||
<field name="probability"/>
|
||||
<separator colspan="4" string="References"/>
|
||||
<field name="ref" colspan="4"/>
|
||||
<field name="ref2" colspan="4"/>
|
||||
<field name="log_ids" nolabel="1" colspan="4">
|
||||
<form string="Actions">
|
||||
<separator string="Action Information" colspan="4"/>
|
||||
<field name="name" colspan="4"/>
|
||||
<field name="date" />
|
||||
<field name="user_id" />
|
||||
<field name="som" />
|
||||
<field name="canal_id"/>
|
||||
</form>
|
||||
</field>
|
||||
</page>
|
||||
<page string="Emails">
|
||||
<group colspan="4">
|
||||
<field colspan="4" name="email_cc" string="CC"/>
|
||||
</group>
|
||||
<field name="history_line" colspan="4" nolabel="1" mode="form,tree">
|
||||
<form string="Communication history">
|
||||
<group col="7" colspan="4">
|
||||
<field name="date"/>
|
||||
<field name="email"/>
|
||||
<field name="canal_id"/>
|
||||
<button
|
||||
string="Add a CC"
|
||||
name="%(crm.action_view_crm_email_add_cc_wizard)d"
|
||||
icon="gtk-add" type="action"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<field name="description" colspan="4" nolabel="1"/>
|
||||
<button colspan="4" string="Reply to Last Email" name="%(crm.wizard_crm_send_mail)d" context="{'mail':'reply'}" icon="gtk-undo" type="action"/>
|
||||
</form>
|
||||
<tree string="Communication history">
|
||||
<field name="description"/>
|
||||
<field name="email"/>
|
||||
<field name="date"/>
|
||||
</tree>
|
||||
</field>
|
||||
<button colspan="4" string="Send New Email" name="%(crm.wizard_crm_new_send_mail)d" context="{'mail':'new'}" icon="gtk-go-forward" type="action"/>
|
||||
</page>
|
||||
</notebook>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="crm_case_future_tree_view">
|
||||
<field name="name">CRM - Future Request Tree</field>
|
||||
<field name="model">crm.project.future</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Bugs Tree" colors="red:state=='open';black:state in ('draft', 'cancel','done','pending')">
|
||||
<field name="id"/>
|
||||
<field name="name" string="Title"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="priority" string="Severity"/>
|
||||
<field name="categ_id"/>
|
||||
<field name="stage_id" string="Resolution"/>
|
||||
<field name="type_id" string="Version"/>
|
||||
<field name="user_id"/>
|
||||
<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"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_crm_case_future_filter" model="ir.ui.view">
|
||||
<field name="name">CRM - Future Request Search</field>
|
||||
<field name="model">crm.project.future</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Future Requests">
|
||||
<group col="7" colspan="1">
|
||||
<filter icon="gtk-apply" string="Fixed Future Requests"
|
||||
domain="[('stage_id.name','=','Fixed')]"
|
||||
separator="1" help="All Fixed Future Requests"
|
||||
/>
|
||||
<filter icon="gtk-media-pause" string="Waiting Response"
|
||||
domain="[('stage_id.name','=','Awaiting Response')]"
|
||||
separator="1" help="All Future Requests which are Waiting for Response"
|
||||
/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="gtk-home" string=" Today "
|
||||
separator="1"
|
||||
domain="[('date','=',time.strftime('%%Y-%%m-%%d'))]"
|
||||
help="Todays's Future Requests"
|
||||
/>
|
||||
<filter icon="gtk-media-rewind"
|
||||
string=" 7 Days " separator="1"
|
||||
domain="[('date','<', time.strftime('%%Y-%%m-%%d')), ('date','>=',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]"
|
||||
help="Future Requests during last 7 days"
|
||||
/>
|
||||
</group>
|
||||
<separator orientation="vertical"/>
|
||||
<group col="4" colspan="2">
|
||||
<field name="name" select='1' string="Subject"/>
|
||||
<field name="user_id" select="1" widget="selection">
|
||||
<filter icon="terp-partner" domain="[('user_id','=',uid)]" help="My Future Requests" default="1"/>
|
||||
</field>
|
||||
<field name="section_id" select="1" widget="selection" string="Section" default="context.get('section_id', False)">
|
||||
<filter icon="terp-crm"
|
||||
domain="[('section_id','=',context.get('section_id',False))]"
|
||||
help="My section"
|
||||
/>
|
||||
</field>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="crm_case_future_calendar_view">
|
||||
<field name="name">CRM - Future Request Calendar</field>
|
||||
<field name="model">crm.project.future</field>
|
||||
<field name="type">calendar</field>
|
||||
<field name="priority" eval="2"/>
|
||||
<field name="arch" type="xml">
|
||||
<calendar string="Bugs" date_start="date" color="user_id" date_delay="duration">
|
||||
<field name="name"/>
|
||||
<field name="partner_id"/>
|
||||
</calendar>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -38,7 +38,7 @@ from crm import crm
|
||||
class crm_project_bug(osv.osv):
|
||||
_name = "crm.project.bug"
|
||||
_description = "Project Bug Cases"
|
||||
_order = "id desc"
|
||||
_order = "priority, id desc"
|
||||
_inherit = 'crm.case'
|
||||
_columns = {
|
||||
'date_closed': fields.datetime('Closed', readonly=True),
|
||||
@@ -51,34 +51,28 @@ class crm_project_bug(osv.osv):
|
||||
'som': fields.many2one('res.partner.som', 'State of Mind', help="The minds states allow to define a value scale which represents" \
|
||||
"the partner mentality in relation to our services.The scale has" \
|
||||
"to be created with a factor for each level from 0 (Very dissatisfied) to 10 (Extremely satisfied)."),
|
||||
'categ_id': fields.many2one('crm.case.categ','Category', domain="[('section_id','=',section_id),('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, 'Priority'),
|
||||
'type_id': fields.many2one('crm.case.resource.type', 'Bug Type', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.project.bug')]"),
|
||||
'type_id': fields.many2one('crm.case.resource.type', 'Bug Type', domain="[('object_id.model', '=', 'crm.project.bug')]"),
|
||||
|
||||
'partner_name': fields.char("Employee's Name", size=64),
|
||||
'partner_mobile': fields.char('Mobile', size=32),
|
||||
'partner_phone': fields.char('Phone', size=32),
|
||||
'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.project.bug')]"),
|
||||
'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('object_id.model', '=', 'crm.project.bug')]"),
|
||||
'project_id':fields.many2one('project.project', 'Project'),
|
||||
'duration': fields.float('Duration') ,
|
||||
'duration': fields.float('Duration'),
|
||||
'probability': fields.float('Probability (%)'),
|
||||
'task_id': fields.many2one('project.task', 'Task', domain="[('project_id','=',project_id)]")
|
||||
}
|
||||
|
||||
def _get_project(self, cr, uid, context):
|
||||
user = self.pool.get('res.users').browse(cr,uid,uid, context=context)
|
||||
if user.context_project_id:
|
||||
return user.context_project_id
|
||||
return False
|
||||
return False
|
||||
|
||||
_defaults = {
|
||||
'project_id':_get_project
|
||||
'project_id':_get_project,
|
||||
}
|
||||
def onchange_categ_id(self, cr, uid, ids, categ, context={}):
|
||||
if not categ:
|
||||
return {'value':{}}
|
||||
cat = self.pool.get('crm.case.categ').browse(cr, uid, categ, context).probability
|
||||
return {'value':{'probability':cat}}
|
||||
|
||||
|
||||
crm_project_bug()
|
||||
|
||||
|
||||
@@ -1,82 +0,0 @@
|
||||
#-*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import time
|
||||
import re
|
||||
import os
|
||||
|
||||
import mx.DateTime
|
||||
import base64
|
||||
|
||||
from tools.translate import _
|
||||
|
||||
import tools
|
||||
from osv import fields,osv,orm
|
||||
from osv.orm import except_orm
|
||||
|
||||
from crm import crm
|
||||
|
||||
class crm_project_future_request(osv.osv):
|
||||
_name = "crm.project.future"
|
||||
_description = "Project Future Request"
|
||||
_order = "id desc"
|
||||
_inherit = 'crm.case'
|
||||
_columns = {
|
||||
'date_closed': fields.datetime('Closed', readonly=True),
|
||||
'ref' : fields.reference('Reference', selection=crm._links_get, size=128),
|
||||
'ref2' : fields.reference('Reference 2', selection=crm._links_get, size=128),
|
||||
'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."),
|
||||
'planned_revenue': fields.float('Planned Revenue'),
|
||||
'planned_cost': fields.float('Planned Costs'),
|
||||
'som': fields.many2one('res.partner.som', 'State of Mind', help="The minds states allow to define a value scale which represents" \
|
||||
"the partner mentality in relation to our services.The scale has" \
|
||||
"to be created with a factor for each level from 0 (Very dissatisfied) to 10 (Extremely satisfied)."),
|
||||
'categ_id': fields.many2one('crm.case.categ','Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.project.future')]"),
|
||||
'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority'),
|
||||
'type_id': fields.many2one('crm.case.resource.type', 'Bug Type', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.project.future')]"),
|
||||
|
||||
'partner_name': fields.char("Employee's Name", size=64),
|
||||
'partner_mobile': fields.char('Mobile', size=32),
|
||||
'partner_phone': fields.char('Phone', size=32),
|
||||
'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'crm.project.future')]"),
|
||||
'project_id':fields.many2one('project.project', 'Project'),
|
||||
'duration': fields.float('Duration') ,
|
||||
'probability': fields.float('Probability (%)'),
|
||||
}
|
||||
def _get_project(self, cr, uid, context):
|
||||
user = self.pool.get('res.users').browse(cr,uid,uid, context=context)
|
||||
if user.context_project_id:
|
||||
return user.context_project_id
|
||||
return False
|
||||
|
||||
_defaults = {
|
||||
'project_id':_get_project
|
||||
}
|
||||
def onchange_categ_id(self, cr, uid, ids, categ, context={}):
|
||||
if not categ:
|
||||
return {'value':{}}
|
||||
cat = self.pool.get('crm.case.categ').browse(cr, uid, categ, context).probability
|
||||
return {'value':{'probability':cat}}
|
||||
|
||||
|
||||
crm_project_future_request()
|
||||
|
||||
@@ -12,17 +12,7 @@
|
||||
<record id="crm_project_bug_rule" model="ir.rule">
|
||||
<field name="domain_force">['|',('project_id','=',False),('project_id','=',user.context_project_id)]</field>
|
||||
<field name="rule_group" ref="crm_project_bug_rule_group"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule.group" id="crm_project_feature_rule_group">
|
||||
<field name="name">crm.project.feature.rule.group</field>
|
||||
<field name="model_id" search="[('model','=','crm.project.future')]" model="ir.model"/>
|
||||
<field name="global" eval="True"/>
|
||||
</record>
|
||||
<record id="crm_project_feature_rule" model="ir.rule">
|
||||
<field name="domain_force">['|',('project_id','=',False),('project_id','=',user.context_project_id)]</field>
|
||||
<field name="rule_group" ref="crm_project_feature_rule_group"/>
|
||||
</record>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
|
||||
"access_crm_project_bug","crm.project.bug","model_crm_project_bug","crm.group_crm_manager",1,1,1,1
|
||||
"access_crm_project_future","crm.project.future","model_crm_project_future","crm.group_crm_manager",1,1,1,1
|
||||
"access_report_crm_project_bug_user","report.crm.project.bug.user","model_report_crm_project_bug_user","crm.group_crm_manager",1,0,0,0
|
||||
"access_report_crm_project_bug_categ","report.crm.project.bug.categ","model_report_crm_project_bug_categ","crm.group_crm_manager",1,0,0,0
|
||||
"access_repor_crm_project_bug_section","report.crm.project.bug.section","model_report_crm_project_bug_section","crm.group_crm_manager",1,0,0,0
|
||||
|
||||
|
@@ -0,0 +1,25 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>). All Rights Reserved
|
||||
# $Id$
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
|
||||
import crm_bug_wizard
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -0,0 +1,98 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from mx.DateTime import now
|
||||
|
||||
import wizard
|
||||
import netsvc
|
||||
import ir
|
||||
import pooler
|
||||
from tools.translate import _
|
||||
|
||||
class bug2task(wizard.interface):
|
||||
|
||||
def _check_state(self, cr, uid, data, context):
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
case_obj = pool.get('crm.project.bug')
|
||||
for case in case_obj.browse(cr, uid, data['ids']):
|
||||
if case.state != 'open':
|
||||
raise wizard.except_wizard(_('Warning !'),
|
||||
_('Bugs or Feature Requests should be in \'Open\' state before converting into Task.'))
|
||||
return {}
|
||||
|
||||
def _makeTask(self, cr, uid, data, context):
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
data_obj = pool.get('ir.model.data')
|
||||
result = data_obj._get_id(cr, uid, 'project', 'view_task_search_form')
|
||||
res = data_obj.read(cr, uid, result, ['res_id'])
|
||||
|
||||
|
||||
id2 = data_obj._get_id(cr, uid, 'project', 'view_task_form2')
|
||||
id3 = data_obj._get_id(cr, uid, 'project', 'view_task_tree2')
|
||||
if id2:
|
||||
id2 = data_obj.browse(cr, uid, id2, context=context).res_id
|
||||
if id3:
|
||||
id3 = data_obj.browse(cr, uid, id3, context=context).res_id
|
||||
|
||||
bug_case_obj = pool.get('crm.project.bug')
|
||||
task_obj = pool.get('project.task')
|
||||
for bug in bug_case_obj.browse(cr, uid, data['ids']):
|
||||
new_task_id = task_obj.create(cr, uid, {
|
||||
'name': bug.name,
|
||||
'partner_id': bug.partner_id.id,
|
||||
'description':bug.description,
|
||||
'date': bug.date,
|
||||
'project_id':bug.project_id.id,
|
||||
'priority':bug.priority,
|
||||
'user_id':bug.user_id.id,
|
||||
'planned_hours': 0.0,
|
||||
})
|
||||
|
||||
new_task = task_obj.browse(cr, uid, new_task_id)
|
||||
|
||||
vals = {
|
||||
'task_id': new_task_id,
|
||||
}
|
||||
|
||||
bug_case_obj.write(cr, uid, [bug.id], vals)
|
||||
|
||||
value = {
|
||||
'name': _('Tasks'),
|
||||
'view_type': 'form',
|
||||
'view_mode': 'form,tree',
|
||||
'res_model': 'project.task',
|
||||
'res_id': int(new_task_id),
|
||||
'view_id': False,
|
||||
'views': [(id2,'form'),(id3,'tree'),(False,'calendar'),(False,'graph')],
|
||||
'type': 'ir.actions.act_window',
|
||||
'search_view_id': res['res_id']
|
||||
}
|
||||
return value
|
||||
|
||||
states = {
|
||||
'init': {
|
||||
'actions': [_check_state],
|
||||
'result': {'type': 'action', 'action': _makeTask, 'state':'end' }
|
||||
}
|
||||
}
|
||||
|
||||
bug2task('crm.bug.task_set')
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -41,9 +41,31 @@
|
||||
<field name="title">EMPLOYEE PERFORMANCE IN KEY AREAS</field>
|
||||
<field name="survey_id" ref="survey_2"/>
|
||||
<field eval="3" name="sequence"/>
|
||||
<field name="note">The appraiser should rate the employee’s major work accomplishments and performance according to the metric provided below :
|
||||
1 - Significantly exceeds standards and expectations required of the position
|
||||
2 - Exceeds standards and expectations
|
||||
3 - Meet standards and expectations
|
||||
4 - Did not meet standards and expectations
|
||||
5 - Significantly below standards and expectations </field>
|
||||
</record>
|
||||
</data>
|
||||
|
||||
<data>
|
||||
<record id="survey_page_16" model="survey.page">
|
||||
<field name="title">PROFESSIONAL DEVELOPMENT AND PERFORMANCE PLAN (optional)</field>
|
||||
<field name="survey_id" ref="survey_2"/>
|
||||
<field eval="4" name="sequence"/>
|
||||
<field name="note">Identify professional, performance, or project objectives you recommend for employee’s continued career development over the coming year. </field>
|
||||
</record>
|
||||
</data>
|
||||
|
||||
<data>
|
||||
<record id="survey_page_26" model="survey.page">
|
||||
<field name="title">EMPLOYEE COMMENTS</field>
|
||||
<field name="survey_id" ref="survey_2"/>
|
||||
<field eval="5" name="sequence"/>
|
||||
</record>
|
||||
</data>
|
||||
|
||||
<data>
|
||||
<record id="survey_page_10" model="survey.page">
|
||||
@@ -519,7 +541,14 @@ Once the form had been filled, the employee send it to his supervisor.
|
||||
<field name="comment_valid_err_msg">The comment you entered is in an invalid format.</field>
|
||||
<field name="descriptive_text">* His direct reports will be invited through OpenERP to express a feedback on their supervisor's leadership and to give their opinion about their own engagement and effectiveness, the continuous improvement and openness in action in the company, ...
|
||||
|
||||
* The employees will send back their anonymous answers to OpenERP. The data will be handled by the HR manager and a brief summary of the data will be sent to the concerned supervisor, to his team and to the supervisor's supervisor.</field>
|
||||
* The employees will send back their anonymous answers to OpenERP. The data will be handled by the HR manager and a brief summary of the data will be sent to the concerned supervisor, to his team and to the supervisor's supervisor.
|
||||
* The appraiser should rate the employee’s major work accomplishments and performance according to the metric provided below :
|
||||
|
||||
1 - Significantly exceeds standards and expectations required of the position
|
||||
2 - Exceeds standards and expectations
|
||||
3 - Meet standards and expectations
|
||||
4 - Did not meet standards and expectations
|
||||
5 - Significantly below standards and expectations</field>
|
||||
<field eval="0" name="make_comment_field"/>
|
||||
<field eval="1" name="in_visible_menu_choice"/>
|
||||
<field name="page_id" ref="survey_page_2"/>
|
||||
@@ -573,8 +602,101 @@ Once the form had been filled, the employee send it to his supervisor.
|
||||
</record>
|
||||
</data-->
|
||||
|
||||
<data>
|
||||
<record id="survey_question_17_1" model="survey.question">
|
||||
<field name="validation_type">do_not_validate</field>
|
||||
<field name="comment_valid_type">do_not_validate</field>
|
||||
<field name="make_comment_field_err_msg">Please enter a comment.</field>
|
||||
<field name="numeric_required_sum_err_msg">The choices need to add up to [enter sum here].</field>
|
||||
<field eval="0" name="comment_column"/>
|
||||
<field name="validation_valid_err_msg">The comment you entered is in an invalid format.</field>
|
||||
<field eval="0" name="rating_allow_one_column_require"/>
|
||||
<field name="req_error_msg">This question requires an answer.</field>
|
||||
<field eval="2" name="sequence"/>
|
||||
<field name="question">PROFESSIONAL DEVELOPMENT OBJECTIVES </field>
|
||||
<field eval="0" name="is_require_answer"/>
|
||||
<field name="type">comment</field>
|
||||
<field name="comment_valid_err_msg">The comment you entered is in an invalid format.</field>
|
||||
<field eval="0" name="make_comment_field"/>
|
||||
<field eval="0" name="in_visible_menu_choice"/>
|
||||
<field name="page_id" ref="survey_page_16"/>
|
||||
<field name="comment_label">Other</field>
|
||||
<field eval="0" name="in_visible_rating_weight"/>
|
||||
<field eval="0" name="allow_comment"/>
|
||||
</record>
|
||||
</data>
|
||||
|
||||
<data>
|
||||
<record id="survey_question_17_2" model="survey.question">
|
||||
<field name="validation_type">do_not_validate</field>
|
||||
<field name="comment_valid_type">do_not_validate</field>
|
||||
<field name="make_comment_field_err_msg">Please enter a comment.</field>
|
||||
<field name="numeric_required_sum_err_msg">The choices need to add up to [enter sum here].</field>
|
||||
<field eval="0" name="comment_column"/>
|
||||
<field name="validation_valid_err_msg">The comment you entered is in an invalid format.</field>
|
||||
<field eval="0" name="rating_allow_one_column_require"/>
|
||||
<field name="req_error_msg">This question requires an answer.</field>
|
||||
<field eval="2" name="sequence"/>
|
||||
<field name="question">PERSONAL PERFORMANCE OBJECTIVES</field>
|
||||
<field eval="0" name="is_require_answer"/>
|
||||
<field name="type">comment</field>
|
||||
<field name="comment_valid_err_msg">The comment you entered is in an invalid format.</field>
|
||||
<field eval="0" name="make_comment_field"/>
|
||||
<field eval="0" name="in_visible_menu_choice"/>
|
||||
<field name="page_id" ref="survey_page_16"/>
|
||||
<field name="comment_label">Other</field>
|
||||
<field eval="0" name="in_visible_rating_weight"/>
|
||||
<field eval="0" name="allow_comment"/>
|
||||
</record>
|
||||
</data>
|
||||
|
||||
<data>
|
||||
<record id="survey_question_17_3" model="survey.question">
|
||||
<field name="validation_type">do_not_validate</field>
|
||||
<field name="comment_valid_type">do_not_validate</field>
|
||||
<field name="make_comment_field_err_msg">Please enter a comment.</field>
|
||||
<field name="numeric_required_sum_err_msg">The choices need to add up to [enter sum here].</field>
|
||||
<field eval="0" name="comment_column"/>
|
||||
<field name="validation_valid_err_msg">The comment you entered is in an invalid format.</field>
|
||||
<field eval="0" name="rating_allow_one_column_require"/>
|
||||
<field name="req_error_msg">This question requires an answer.</field>
|
||||
<field eval="4" name="sequence"/>
|
||||
<field name="question">PROJECT OBJECTIVES</field>
|
||||
<field eval="0" name="is_require_answer"/>
|
||||
<field name="type">comment</field>
|
||||
<field name="comment_valid_err_msg">The comment you entered is in an invalid format.</field>
|
||||
<field eval="0" name="make_comment_field"/>
|
||||
<field eval="0" name="in_visible_menu_choice"/>
|
||||
<field name="page_id" ref="survey_page_16"/>
|
||||
<field name="comment_label">Other</field>
|
||||
<field eval="0" name="in_visible_rating_weight"/>
|
||||
<field eval="0" name="allow_comment"/>
|
||||
</record>
|
||||
</data>
|
||||
|
||||
<data>
|
||||
<record id="survey_question_17_2_12" model="survey.question">
|
||||
<field name="validation_type">do_not_validate</field>
|
||||
<field name="comment_valid_type">do_not_validate</field>
|
||||
<field name="make_comment_field_err_msg">Please enter a comment.</field>
|
||||
<field name="numeric_required_sum_err_msg">The choices need to add up to [enter sum here].</field>
|
||||
<field eval="0" name="comment_column"/>
|
||||
<field name="validation_valid_err_msg">The comment you entered is in an invalid format.</field>
|
||||
<field eval="0" name="rating_allow_one_column_require"/>
|
||||
<field name="req_error_msg">This question requires an answer.</field>
|
||||
<field eval="5" name="sequence"/>
|
||||
<field name="question">Use the following space to make any comments regarding the above performance evaluation.</field>
|
||||
<field eval="0" name="is_require_answer"/>
|
||||
<field name="type">comment</field>
|
||||
<field name="comment_valid_err_msg">The comment you entered is in an invalid format.</field>
|
||||
<field eval="0" name="make_comment_field"/>
|
||||
<field eval="0" name="in_visible_menu_choice"/>
|
||||
<field name="page_id" ref="survey_page_26"/>
|
||||
<field name="comment_label">Other</field>
|
||||
<field eval="0" name="in_visible_rating_weight"/>
|
||||
<field eval="0" name="allow_comment"/>
|
||||
</record>
|
||||
</data>
|
||||
<data>
|
||||
<record id="survey_question_column_heading_4" model="survey.question.column.heading">
|
||||
<field eval="0" name="in_visible_menu_choice"/>
|
||||
|
||||
@@ -669,7 +669,7 @@
|
||||
<field name="model">mrp.procurement</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Procurement Lines">
|
||||
<tree string="Procurement Lines" colors="red:state=='draft';black:state=='running';green:state=='confirmed';gray:state in ['done','cancel']">
|
||||
<field name="name"/>
|
||||
<field name="product_id"/>
|
||||
<field name="product_qty"/>
|
||||
|
||||
@@ -167,7 +167,7 @@ class survey_analysis(report_rml):
|
||||
if cal['answer'] == matrix_ans[mat_col]:
|
||||
cal_count = cal['count']
|
||||
if tot_res:
|
||||
percantage = float(cal_count)*100 / tot_res
|
||||
percantage = round(float(cal_count)*100 / tot_res,2)
|
||||
if percantage:
|
||||
rml += """<td color="#FFF435"><para style="answer_bold">""" + tools.ustr(percantage) +"% (" + tools.ustr(cal_count) + """)</para></td>"""
|
||||
else:
|
||||
@@ -257,14 +257,17 @@ class survey_analysis(report_rml):
|
||||
sqc.question_id = sr.question_id and sra.answer_id = %d and sqc.title ='%s'\
|
||||
group by sra.answer_id,sqc.rating_weight" % (ans.id,matrix_ans[mat_col]))
|
||||
col_weight = cr.fetchone()
|
||||
if not col_weight :
|
||||
|
||||
if not col_weight:
|
||||
col_weight= (0,0)
|
||||
elif not col_weight[1]:
|
||||
col_weight = (col_weight[0],0)
|
||||
res_count = col_weight[0]
|
||||
if tot_res:
|
||||
rating_weight_sum += col_weight[1] * tot_res
|
||||
if tot_res and res_count:
|
||||
rating_weight_sum += int(col_weight[1]) * tot_res
|
||||
tot_per = round((float(tot_res) * 100) / int(res_count), 2)
|
||||
else:
|
||||
tot_res = 0
|
||||
tor_res = 0
|
||||
tot_per = 0.0
|
||||
if tot_res:
|
||||
rml += """<td><para style="answer_bold">""" + tools.ustr(tot_per) + "%(" + tools.ustr(tot_res) + """)</para></td>"""
|
||||
@@ -309,7 +312,7 @@ class survey_analysis(report_rml):
|
||||
calc = per['count']
|
||||
percantage = 0.00
|
||||
if calc and response:
|
||||
percantage = (float(calc)* 100) / response
|
||||
percantage = round((float(calc)* 100) / response,2)
|
||||
if calc:
|
||||
rml+="""<td><para style="answer_bold">""" +tools.ustr(percantage)+"% (" + tools.ustr(calc) + """)</para></td>"""
|
||||
else:
|
||||
|
||||
@@ -51,6 +51,10 @@ class survey_browse_response(report_rml):
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#e6e6e6"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="note_table">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table2">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
@@ -139,11 +143,11 @@ class survey_browse_response(report_rml):
|
||||
response_id = surv_resp_obj.search(cr, uid, [('survey_id','in',ids)])
|
||||
surv_resp_line_obj = pooler.get_pool(cr.dbname).get('survey.response.line')
|
||||
surv_obj = pooler.get_pool(cr.dbname).get('survey')
|
||||
for response in surv_resp_obj.browse(cr,uid, response_id):
|
||||
for response in surv_resp_obj.browse(cr,uid, response_id):
|
||||
for survey in surv_obj.browse(cr, uid, [response.survey_id.id]):
|
||||
status = "Skip"
|
||||
status = "Not Finished"
|
||||
if response.state == "done":
|
||||
status = "Complete"
|
||||
status = "Finished"
|
||||
rml += """<blockTable colWidths="230.0,120.0,100.0,50" style="Table_heading">
|
||||
<tr>
|
||||
<td>
|
||||
@@ -183,6 +187,13 @@ class survey_browse_response(report_rml):
|
||||
<td><para style="page">Page :- """ + to_xml(tools.ustr(page.title)) + """</para></td>
|
||||
</tr>
|
||||
</blockTable>"""
|
||||
if page.note:
|
||||
rml += """<para style="P2"></para>
|
||||
<blockTable colWidths="500" style="note_table">
|
||||
<tr>
|
||||
<td><para style="response">""" + to_xml(tools.ustr(page.note)) + """</para></td>
|
||||
</tr>
|
||||
</blockTable>"""
|
||||
for que in page.question_ids:
|
||||
rml += """<para style="P2"></para>
|
||||
<blockTable colWidths="500" style="Table5">
|
||||
@@ -213,11 +224,14 @@ class survey_browse_response(report_rml):
|
||||
rml +="""<blockTable colWidths=" """ + str(colWidths) + """ " style="Table51"><tr>"""
|
||||
table_data = col_heading.browse(cr, uid, col_heading.search(cr, uid, [('response_table_id', '=', answer[0].id),('name','=',row)]))
|
||||
for column in matrix_ans:
|
||||
value = """<font color="white"> </font>"""
|
||||
value = False
|
||||
for col in table_data:
|
||||
if column == col.column_id.title:
|
||||
value = col.value
|
||||
rml += """<td> <para style="terp_default_9">""" + to_xml(tools.ustr(value)) +"""</para></td>"""
|
||||
if value:
|
||||
rml += """<td> <para style="terp_default_9">""" + to_xml(tools.ustr(value)) +"""</para></td>"""
|
||||
else:
|
||||
rml += """<td><para style="terp_default_9"><font color ="white"> </font></para></td>"""
|
||||
rml += """</tr></blockTable>"""
|
||||
else:
|
||||
rml +="""<blockTable colWidths="500" style="Table1">
|
||||
@@ -354,8 +368,8 @@ class survey_browse_response(report_rml):
|
||||
rml +="""<blockTable colWidths="500" style="Table1">
|
||||
<tr> <td> <para style="response">No Response</para></td> </tr>
|
||||
</blockTable>"""
|
||||
|
||||
rml += """<pageBreak/>"""
|
||||
|
||||
rml += """<pageBreak/>"""
|
||||
rml += """</story></document>"""
|
||||
report_type = datas.get('report_type', 'pdf')
|
||||
create_doc = self.generators[report_type]
|
||||
|
||||
@@ -102,6 +102,10 @@ class survey_form(report_rml):
|
||||
<blockValign value="TOP"/>
|
||||
<lineStyle kind="LINEBELOW" colorName="#8f8f8f" start="0,-1" stop="1,-1"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="note_table">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
</blockTableStyle>
|
||||
<blockTableStyle id="Table4">
|
||||
<blockAlignment value="LEFT"/>
|
||||
<blockValign value="TOP"/>
|
||||
@@ -147,6 +151,10 @@ class survey_form(report_rml):
|
||||
<blockTable colWidths='"""+_tbl_widths+"""' style="page_tbl">
|
||||
<tr><td><para style="page">"""+ tools.ustr(seq) + """. """ + to_xml(tools.ustr(page.title)) + """</para></td></tr>
|
||||
</blockTable>"""
|
||||
if page.note:
|
||||
rml += """<para style="P2"></para><blockTable colWidths='"""+_tbl_widths+"""' style="note_table">
|
||||
<tr><td><para style="descriptive_text">""" + to_xml(tools.ustr(page.note or '')) + """</para></td></tr>
|
||||
</blockTable>"""
|
||||
for que in page.question_ids:
|
||||
cols_widhts=[]
|
||||
rml +="""
|
||||
|
||||
+17
-13
@@ -331,9 +331,9 @@ class survey_question(osv.osv):
|
||||
raise osv.except_osv(_('Error !'),_("Maximum Required Answer is greater than Minimum Required Answer"))
|
||||
if question['type'] == 'matrix_of_drop_down_menus' and vals.has_key('column_heading_ids'):
|
||||
for col in vals['column_heading_ids']:
|
||||
if col[2] and col[2].has_key('menu_choice') and not col[2]['menu_choice']:
|
||||
if not col[2] or not col[2].has_key('menu_choice') or not col[2]['menu_choice']:
|
||||
raise osv.except_osv(_('Error !'),_("You must enter one or more menu choices in column heading"))
|
||||
elif col[2] and col[2].has_key('menu_choice') and col[2]['menu_choice'].strip() == '':
|
||||
elif not col[2] or not col[2].has_key('menu_choice') or col[2]['menu_choice'].strip() == '':
|
||||
raise osv.except_osv(_('Error !'),_("You must enter one or more menu choices in column heading (white spaces not allowed)"))
|
||||
return super(survey_question, self).write(cr, uid, ids, vals, context=context)
|
||||
|
||||
@@ -361,9 +361,9 @@ class survey_question(osv.osv):
|
||||
raise osv.except_osv(_('Error !'),_("Maximum Required Answer is greater than Minimum Required Answer"))
|
||||
if vals['type'] == 'matrix_of_drop_down_menus':
|
||||
for col in vals['column_heading_ids']:
|
||||
if not col[2]['menu_choice']:
|
||||
if not col[2] or not col[2].has_key('menu_choice') or not col[2]['menu_choice']:
|
||||
raise osv.except_osv(_('Error !'),_("You must enter one or more menu choices in column heading"))
|
||||
elif col[2]['menu_choice'].strip() == '':
|
||||
elif not col[2] or not col[2].has_key('menu_choice') or col[2]['menu_choice'].strip() == '':
|
||||
raise osv.except_osv(_('Error !'),_("You must enter one or more menu choices in column heading (white spaces not allowed)"))
|
||||
res = super(survey_question, self).create(cr, uid, vals, context)
|
||||
return res
|
||||
@@ -479,18 +479,11 @@ class survey_response(osv.osv):
|
||||
'user_id' : fields.many2one('res.users', 'User'),
|
||||
'response_type' : fields.selection([('manually', 'Manually'), ('link', 'Link')], 'Response Type', required=1),
|
||||
'question_ids' : fields.one2many('survey.response.line', 'response_id', 'Response Answer'),
|
||||
'state' : fields.selection([('done', 'Completed '),('skip', 'Skiped')], 'Status', readonly=True),
|
||||
'state' : fields.selection([('done', 'Finished '),('skip', 'Not Finished')], 'Status', readonly=True),
|
||||
}
|
||||
_defaults = {
|
||||
'state' : lambda * a: "skip",
|
||||
}
|
||||
def response_done(self, cr, uid, ids, arg):
|
||||
self.write(cr, uid, ids, { 'state' : 'done' })
|
||||
return True
|
||||
|
||||
def response_skip(self, cr, uid, ids, arg):
|
||||
self.write(cr, uid, ids, { 'state' : 'skip' })
|
||||
return True
|
||||
|
||||
survey_response()
|
||||
|
||||
@@ -765,9 +758,20 @@ class survey_question_wiz(osv.osv_memory):
|
||||
fields[tools.ustr(que) + "_" + tools.ustr(row['id']) + "_" + tools.ustr(col['title'])] = {'type':'selection', 'string': col['title'], 'selection':selection}
|
||||
elif que_rec['type'] == 'multiple_textboxes':
|
||||
xml_group = etree.SubElement(xml_group, 'group', {'col': '1', 'colspan': '4'})
|
||||
type = "char"
|
||||
if que_rec['is_validation_require']:
|
||||
if que_rec['validation_type'] in ['must_be_whole_number']:
|
||||
type = "integer"
|
||||
elif que_rec['validation_type'] in ['must_be_decimal_number']:
|
||||
type = "float"
|
||||
elif que_rec['validation_type'] in ['must_be_date']:
|
||||
type = "date"
|
||||
for ans in ans_ids:
|
||||
etree.SubElement(xml_group, 'field', {'name': tools.ustr(que) + "_" + tools.ustr(ans['id']) + "_multi"})
|
||||
fields[tools.ustr(que) + "_" + tools.ustr(ans['id']) + "_multi"] = {'type':'char', 'size':255, 'string':ans['answer']}
|
||||
if type == "char" :
|
||||
fields[tools.ustr(que) + "_" + tools.ustr(ans['id']) + "_multi"] = {'type':'char', 'size':255, 'string':ans['answer']}
|
||||
else:
|
||||
fields[tools.ustr(que) + "_" + tools.ustr(ans['id']) + "_multi"] = {'type': str(type), 'string':ans['answer']}
|
||||
elif que_rec['type'] == 'numerical_textboxes':
|
||||
xml_group = etree.SubElement(xml_group, 'group', {'col': '2', 'colspan': '2'})
|
||||
for ans in ans_ids:
|
||||
|
||||
@@ -416,7 +416,7 @@
|
||||
<record id="survey_question_partners_on_which_subjects" model="survey.question">
|
||||
<field name="question">In your opinion, how could Tiny better communicate with partners and on which subjects?</field>
|
||||
<field name="page_id" ref="survey_page_communication" />
|
||||
<field name="type">single_textbox</field>
|
||||
<field name="type">comment</field>
|
||||
<field name="in_visible_rating_weight">1</field>
|
||||
<field name="in_visible_menu_choice">1</field>
|
||||
<field eval="4" name="sequence"/>
|
||||
|
||||
@@ -903,13 +903,7 @@
|
||||
<field name="user_id" select="1"/>
|
||||
<field name="response_type" select="1"/>
|
||||
<field name="question_ids" nolabel="1" colspan="4" />
|
||||
<group col="5" colspan="4">
|
||||
<field name="state"/>
|
||||
<button name="response_done" string="Done"
|
||||
states="skip" type="object" icon="gtk-go-forward"/>
|
||||
<button name="response_skip" string="Skip"
|
||||
states="done" type="object" icon="gtk-close"/>
|
||||
</group>
|
||||
<field name="state" select="1"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
@@ -924,6 +918,7 @@
|
||||
<field name="date_create" select="1"/>
|
||||
<field name="user_id" select="1"/>
|
||||
<field name="response_type" select="1"/>
|
||||
<field name="state" select="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
Reference in New Issue
Block a user