diff --git a/addons/survey/survey.py b/addons/survey/survey.py index ccadbbd9f81..66c83925c1f 100644 --- a/addons/survey/survey.py +++ b/addons/survey/survey.py @@ -92,7 +92,7 @@ class survey(osv.osv): def survey_cancel(self, cr, uid, ids, arg): self.write(cr, uid, ids, {'state': 'cancel' }) return True - + def copy(self, cr, uid, ids, default=None, context=None): vals = {} current_rec = self.read(cr, uid, ids, context=context) @@ -181,9 +181,7 @@ class survey_page(osv.osv): if context is None: context = {} data = super(survey_page, self).default_get(cr, uid, fields, context) - if context.get('line_order',False): - if len(context['line_order'][-1]) > 2 and type(context['line_order'][-1][2]) == type({}) and context['line_order'][-1][2].has_key('sequence'): - data['sequence'] = context['line_order'][-1][2]['sequence'] + 1 + self.pool.get('survey.question').data_get(cr,uid,data,context) if context.has_key('survey_id'): data['survey_id'] = context.get('survey_id', False) return data @@ -504,17 +502,21 @@ class survey_question(osv.osv): 'context': context } + def data_get(self, cr, uid, data, context): + if data and context: + if context.get('line_order',False) and data.get('sequence',0): + lines = context.get('line_order') + seq = data['sequence'] + for line in lines: + seq = seq + 1 + data.update({'sequence': str(seq)}) + return data + def default_get(self, cr, uid, fields, context=None): if context is None: context = {} data = super(survey_question, self).default_get(cr, uid, fields, context) - if context.get('line_order',False) and data.get('sequence',0): - lines = context.get('line_order') - seq = data['sequence'] - for line in lines: - seq = seq + 1 - data.update({'sequence': str(seq)}) - + a=self.data_get(cr,uid,data,context) if context.has_key('page_id'): data['page_id']= context.get('page_id', False) return data @@ -607,9 +609,7 @@ class survey_answer(osv.osv): if context is None: context = {} data = super(survey_answer, self).default_get(cr, uid, fields, context) - if context.get('line_order', False): - if len(context['line_order'][-1]) > 2 and type(context['line_order'][-1][2]) == type({}) and context['line_order'][-1][2].has_key('sequence'): - data['sequence'] = context['line_order'][-1][2]['sequence'] + 1 + self.pool.get('survey.question').data_get(cr,uid,data,context) return data survey_answer()