[MERGE]: merging from same branch

bzr revid: mga@tinyerp.com-20100203104450-s1zdolwpi6kw3owi
This commit is contained in:
Mantavya Gajjar
2010-02-03 16:14:50 +05:30
23 changed files with 395 additions and 470 deletions
+1 -2
View File
@@ -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:
+3 -3
View File
@@ -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',
+12
View File
@@ -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>
+4 -15
View File
@@ -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>
+18 -18
View File
@@ -15,7 +15,7 @@
<field eval="&quot;open&quot;" 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="&quot;Bug in Accounts module&quot;" 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="&quot;Program not giving proper output&quot;" 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="&quot;Output incorrect&quot;" 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="&quot;Problem loading page&quot;" 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="&quot;Page not Found&quot;" 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="&quot;Programming Error&quot;" 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="&quot;Logical Error in Program&quot;" 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="&quot;Constraint Error&quot;" name="name"/>
</record>
@@ -150,7 +150,7 @@
<field eval="&quot;open&quot;" 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="&quot;Error in Program&quot;" 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="&quot;Patches Error in Program&quot;" 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="&quot;New Features To Be Added&quot;" 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="&quot;Add menus to the module&quot;" name="name"/>
<field eval="&quot;info@opensides.be&quot;" 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="&quot;Include Attendance sheet in Project&quot;" name="name"/>
<field eval="&quot;contact@tecsas.fr&quot;" 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="&quot;Create new object&quot;" 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="&quot;Improve Reports in HRMS&quot;" 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="&quot;Improve Reports in PMS&quot;" name="name"/>
</record>
+3 -34
View File
@@ -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>
+31 -35
View File
@@ -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','&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"
/>
/>
</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>
+9 -28
View File
@@ -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>
-191
View File
@@ -1,191 +0,0 @@
<?xml version="1.0"?>
<openerp>
<data>
<!-- <menuitem name="CRM &amp; 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','&lt;', time.strftime('%%Y-%%m-%%d')), ('date','&gt;=',(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>
+8 -14
View File
@@ -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()
-82
View File
@@ -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
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 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
3 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
4 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
5 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
+25
View File
@@ -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:
+123 -1
View File
@@ -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"/>
+1 -1
View File
@@ -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:
+21 -7
View File
@@ -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]
+8
View File
@@ -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
View File
@@ -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:
+1 -1
View File
@@ -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"/>
+2 -7
View File
@@ -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>