diff --git a/addons/survey/survey.py b/addons/survey/survey.py index df56a7c4fab..f92f2ea4816 100644 --- a/addons/survey/survey.py +++ b/addons/survey/survey.py @@ -508,7 +508,7 @@ class survey_question(osv.osv): return super(survey_question, self).write(cr, uid, ids, vals, context=context) def create(self, cr, uid, vals, context=None): - page = self.pool.get('survey.page').browse(cr, uid, vals['page_id'], context=context).title + page = self.pool.get('survey.page').browse(cr, uid, 'page_id' in vals and vals['page_id'] or context['page_id'], context=context).title if 'answer_choice_ids' in vals and not len(vals.get('answer_choice_ids', [])) and \ vals.get('type') not in ['descriptive_text', 'single_textbox', 'comment', 'table']: raise osv.except_osv(_('Warning!'), _('You must enter one or more answers for question "%s" of page %s .') % (vals['question'], page)) diff --git a/addons/survey/wizard/survey_answer.py b/addons/survey/wizard/survey_answer.py index 84496b51f6b..e22ec99e532 100644 --- a/addons/survey/wizard/survey_answer.py +++ b/addons/survey/wizard/survey_answer.py @@ -1149,7 +1149,7 @@ class survey_question_wiz(osv.osv_memory): def action_done(self, cr, uid, ids, context=None): """ Goes to previous page. """ - + response_id = None response_info = self.get_response_info_from_token(cr, uid, context['survey_id'], context.get("survey_token"), context) if response_info['response_id']: response_id = response_info['response_id'] @@ -1159,7 +1159,10 @@ class survey_question_wiz(osv.osv_memory): if sur_name_read['response_id'] and sur_name_read['response_id'][0]: response_id = sur_name_read['response_id'][0] - self.pool.get('survey.response').write(cr, SUPERUSER_ID, [response_id], {'state': 'done'}) + if response_id: + self.pool.get('survey.response').write(cr, SUPERUSER_ID, [response_id], {'state': 'done'}) + else: + return {'type': 'ir.actions.act_window_close'} ir_model_data = self.pool.get('ir.model.data') user_browse = self.pool.get('res.users').browse(cr, SUPERUSER_ID, uid, context=context)