From bd97359ad9088ef4107b635ab20bf459deba5aae Mon Sep 17 00:00:00 2001 From: apa-tiny Date: Thu, 21 Jan 2010 13:08:43 +0530 Subject: [PATCH] [IMP]:Survey:-improved survey.request view and browse report of the survey module.(Ref.YSA). bzr revid: apa@tinyerp.com-20100121073843-e2eq3p78f54qgwu6 --- .../survey/report/survey_browse_response.py | 12 ++++++-- addons/survey/survey.py | 29 +++++++++++++++++-- addons/survey/survey_view.xml | 17 +++++++---- 3 files changed, 47 insertions(+), 11 deletions(-) diff --git a/addons/survey/report/survey_browse_response.py b/addons/survey/report/survey_browse_response.py index ab1e4027905..f6f5600cbb6 100644 --- a/addons/survey/report/survey_browse_response.py +++ b/addons/survey/report/survey_browse_response.py @@ -145,7 +145,11 @@ class survey_browse_response(report_rml): """ answer = surv_resp_line_obj.browse(cr,uid, surv_resp_line_obj.search(cr, uid, [('question_id','=',que.id),('response_id','=',response.id)])) - if que.type in ['table']: + if que.type in ['descriptive_text']: + rml +=""" + """ + to_xml(que.descriptive_text) + """ + """ + elif que.type in ['table']: if len(answer) and answer[0].state == "done": col_heading = pooler.get_pool(cr.dbname).get('survey.tbl.column.heading') cols_widhts = [] @@ -262,7 +266,7 @@ class survey_browse_response(report_rml): value = """""" for res_ans in answer[0].response_answer_ids: if res_ans.answer_id.id == ans.id and res_ans.answer == matrix_ans[mat_col]: - comment_value = """""" + to_xml(tools.ustr(res_ans.comment_field)) + """""" + comment_value = to_xml(tools.ustr(res_ans.comment_field)) if que.type in ['matrix_of_drop_down_menus']: value = """""" + to_xml(tools.ustr(res_ans.value_choice)) + """""" elif que.type in ['matrix_of_choices_only_one_ans','rating_scale']: @@ -292,7 +296,9 @@ class survey_browse_response(report_rml): """ rml+= """""" + value + """""" if que.comment_column: - rml+= """""" + comment_value + """""" + if comment_value=='False': + comment_value = '' + rml+= """"""+ comment_value + """""" rml+=""" """ if que.comment_field_type: rml+=""" diff --git a/addons/survey/survey.py b/addons/survey/survey.py index 774721b26a8..53d57efd59b 100644 --- a/addons/survey/survey.py +++ b/addons/survey/survey.py @@ -29,6 +29,7 @@ from tools.translate import _ from lxml import etree from tools import to_xml import tools +from mx.DateTime import * class survey(osv.osv): _name = 'survey' @@ -735,7 +736,8 @@ class survey_question_wiz(osv.osv_memory): etree.SubElement(xml_group, 'field', {'name': tools.ustr(que) + "_" + tools.ustr(ans['id'])}) fields[tools.ustr(que) + "_" + tools.ustr(ans['id'])] = {'type':'datetime', 'string':ans['answer']} elif que_rec['type'] == 'descriptive_text': - etree.SubElement(xml_group, 'label', {'string': to_xml(tools.ustr(que_rec['descriptive_text']))}) + for que_test in que_rec['descriptive_text'].split('\n'): + etree.SubElement(xml_group, 'label', {'string': to_xml(tools.ustr(que_test)), 'align':"0.0"}) elif que_rec['type'] == 'single_textbox': etree.SubElement(xml_group, 'field', {'name': tools.ustr(que) + "_single", 'nolabel':"1" ,'colspan':"4"}) fields[tools.ustr(que) + "_single"] = {'type':'char', 'size' : 255, 'string':"single_textbox", 'views':{}} @@ -1341,14 +1343,37 @@ res_users() class survey_request(osv.osv): _name = "survey.request" _order = 'date_deadline' + _rec_name = 'date_deadline' _columns = { 'date_deadline' : fields.date("Deadline date"), 'user_id' : fields.many2one("res.users", "User"), 'email' : fields.char("E-mail", size=64), 'survey_id' : fields.many2one("survey", "Survey", required=1), 'answer_ids' : fields.one2many('survey.answer', 'question_id', 'Answer'), - 'state' : fields.selection([('waitin_answer', 'Wating Answer'),('done', 'Done'),('cancelled', 'Cancelled')], 'State') + 'state' : fields.selection([('waiting_answer', 'Wating Answer'),('done', 'Done'),('cancel', 'Cancelled')], 'State', readonly=1) } + _defaults = { + 'state' : lambda * a: 'waiting_answer', + 'date_deadline' : lambda * a : (now() + RelativeDateTime(months=+1)).strftime("%Y-%m-%d %H:%M:%S") + } + def survey_req_waiting_answer(self, cr, uid, ids, arg): + self.write(cr, uid, ids, { 'state' : 'waiting_answer'}) + return True + + def survey_req_done(self, cr, uid, ids, arg): + self.write(cr, uid, ids, { 'state' : 'done'}) + return True + + def survey_req_cancel(self, cr, uid, ids, arg): + self.write(cr, uid, ids, { 'state' : 'cancel'}) + return True + + def on_change_user(self, cr, uid, ids, user_id, context=None): + if user_id: + user_obj = self.pool.get('res.users') + user = user_obj.browse(cr, uid, user_id) + return {'value': {'email': user.address_id.email}} + return {} survey_request() diff --git a/addons/survey/survey_view.xml b/addons/survey/survey_view.xml index d68cf5bca7b..443a43701e0 100644 --- a/addons/survey/survey_view.xml +++ b/addons/survey/survey_view.xml @@ -12,9 +12,9 @@ - + id="base.menu_lunch_survey_root" groups="group_survey_manager" sequence="5"/> + @@ -958,10 +958,15 @@
+ - - - + + + +