diff --git a/addons/crm_project/__init__.py b/addons/crm_project/__init__.py
index a646cf81ad9..fd6e45fcf00 100644
--- a/addons/crm_project/__init__.py
+++ b/addons/crm_project/__init__.py
@@ -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:
diff --git a/addons/crm_project/__terp__.py b/addons/crm_project/__terp__.py
index 7a63ce1d1f4..c55a302f9da 100644
--- a/addons/crm_project/__terp__.py
+++ b/addons/crm_project/__terp__.py
@@ -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',
diff --git a/addons/crm_project/crm_bug_wizard.xml b/addons/crm_project/crm_bug_wizard.xml
new file mode 100644
index 00000000000..a62606e52a6
--- /dev/null
+++ b/addons/crm_project/crm_bug_wizard.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
diff --git a/addons/crm_project/crm_bugs_data.xml b/addons/crm_project/crm_bugs_data.xml
index ca891949499..2a8729e49c2 100644
--- a/addons/crm_project/crm_bugs_data.xml
+++ b/addons/crm_project/crm_bugs_data.xml
@@ -6,17 +6,12 @@
-->
-
+ Bugs
-
-
- Patches
-
-
-
-
+
+ Feature Requests
@@ -71,12 +66,6 @@
Works For Me
-
-
- Future
-
-
-
-
+
diff --git a/addons/crm_project/crm_bugs_demo.xml b/addons/crm_project/crm_bugs_demo.xml
index da1bdbdab21..2bda6099685 100644
--- a/addons/crm_project/crm_bugs_demo.xml
+++ b/addons/crm_project/crm_bugs_demo.xml
@@ -15,7 +15,7 @@
-
+
@@ -40,7 +40,7 @@
-
+
@@ -56,7 +56,7 @@
-
+
@@ -72,7 +72,7 @@
-
+
@@ -87,7 +87,7 @@
-
+
@@ -103,7 +103,7 @@
-
+
@@ -119,8 +119,8 @@
-
-
+
+
@@ -135,7 +135,7 @@
-
+
@@ -150,7 +150,7 @@
-
+
@@ -166,7 +166,7 @@
-
+
@@ -182,7 +182,7 @@
-
+
@@ -198,7 +198,7 @@
-
+
@@ -215,7 +215,7 @@
-
+
@@ -234,7 +234,7 @@
-
+
@@ -250,8 +250,8 @@
-
-
+
+
@@ -266,7 +266,7 @@
-
+
diff --git a/addons/crm_project/crm_bugs_menu.xml b/addons/crm_project/crm_bugs_menu.xml
index 627fab57aba..2518993fa08 100644
--- a/addons/crm_project/crm_bugs_menu.xml
+++ b/addons/crm_project/crm_bugs_menu.xml
@@ -1,38 +1,6 @@
-
-
-
-
- Bugs
-
-
-
-
- Patches
-
-
-
-
- Feature Requests
-
-
-
-
- Fixed
-
-
-
-
- Awaiting Response
-
-
-
-
- Future
-
-
-
+
######################## BUG TRACKING (menu) ###########################
@@ -40,11 +8,12 @@
ALL BUGS
-->
- Bugs
+ Issuescrm.project.bugformtree,calendar
+
diff --git a/addons/crm_project/crm_bugs_view.xml b/addons/crm_project/crm_bugs_view.xml
index 7c17d1e6320..0d84723f11e 100644
--- a/addons/crm_project/crm_bugs_view.xml
+++ b/addons/crm_project/crm_bugs_view.xml
@@ -36,25 +36,29 @@
+
+
+ PROFESSIONAL DEVELOPMENT AND PERFORMANCE PLAN (optional)
+
+
+ Identify professional, performance, or project objectives you recommend for employee’s continued career development over the coming year.
+
+
+
+
+
+ EMPLOYEE COMMENTS
+
+
+
+
@@ -519,7 +541,14 @@ Once the form had been filled, the employee send it to his supervisor.
The comment you entered is in an invalid format.* 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.
+* 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
@@ -573,8 +602,101 @@ Once the form had been filled, the employee send it to his supervisor.
+
+
+ do_not_validate
+ do_not_validate
+ Please enter a comment.
+ The choices need to add up to [enter sum here].
+
+ The comment you entered is in an invalid format.
+
+ This question requires an answer.
+
+ PROFESSIONAL DEVELOPMENT OBJECTIVES
+
+ comment
+ The comment you entered is in an invalid format.
+
+
+
+ Other
+
+
+
+
+
+
+ do_not_validate
+ do_not_validate
+ Please enter a comment.
+ The choices need to add up to [enter sum here].
+
+ The comment you entered is in an invalid format.
+
+ This question requires an answer.
+
+ PERSONAL PERFORMANCE OBJECTIVES
+
+ comment
+ The comment you entered is in an invalid format.
+
+
+
+ Other
+
+
+
+
+
+
+ do_not_validate
+ do_not_validate
+ Please enter a comment.
+ The choices need to add up to [enter sum here].
+
+ The comment you entered is in an invalid format.
+
+ This question requires an answer.
+
+ PROJECT OBJECTIVES
+
+ comment
+ The comment you entered is in an invalid format.
+
+
+
+ Other
+
+
+
+
+
+
+
+ do_not_validate
+ do_not_validate
+ Please enter a comment.
+ The choices need to add up to [enter sum here].
+
+ The comment you entered is in an invalid format.
+
+ This question requires an answer.
+
+ Use the following space to make any comments regarding the above performance evaluation.
+
+ comment
+ The comment you entered is in an invalid format.
+
+
+
+ Other
+
+
+
+
diff --git a/addons/mrp/mrp_view.xml b/addons/mrp/mrp_view.xml
index ad0e6b95935..e9ff640c635 100644
--- a/addons/mrp/mrp_view.xml
+++ b/addons/mrp/mrp_view.xml
@@ -669,7 +669,7 @@
mrp.procurementtree
-
+
diff --git a/addons/survey/report/survey_analysis_report.py b/addons/survey/report/survey_analysis_report.py
index 069488034d8..b9c74ebbc2d 100755
--- a/addons/survey/report/survey_analysis_report.py
+++ b/addons/survey/report/survey_analysis_report.py
@@ -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 += """
+ """
for que in page.question_ids:
rml += """
@@ -213,11 +224,14 @@ class survey_browse_response(report_rml):
rml +="""
"""
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 = """ """
+ value = False
for col in table_data:
if column == col.column_id.title:
value = col.value
- rml += """
+ """
for que in page.question_ids:
cols_widhts=[]
rml +="""
diff --git a/addons/survey/survey.py b/addons/survey/survey.py
index 632f4c768ef..07fa3fcd9f0 100644
--- a/addons/survey/survey.py
+++ b/addons/survey/survey.py
@@ -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:
diff --git a/addons/survey/survey_demo.xml b/addons/survey/survey_demo.xml
index 88f632a5032..03ac38d8b74 100644
--- a/addons/survey/survey_demo.xml
+++ b/addons/survey/survey_demo.xml
@@ -416,7 +416,7 @@
In your opinion, how could Tiny better communicate with partners and on which subjects?
- single_textbox
+ comment11
diff --git a/addons/survey/survey_view.xml b/addons/survey/survey_view.xml
index 5085ed4986d..5c84eb6d1e4 100644
--- a/addons/survey/survey_view.xml
+++ b/addons/survey/survey_view.xml
@@ -903,13 +903,7 @@
-
-
-
-
-
+
@@ -924,6 +918,7 @@
+