diff --git a/passerelle/contrib/toulouse_maelis/models.py b/passerelle/contrib/toulouse_maelis/models.py index 1313d7a3..93a40580 100644 --- a/passerelle/contrib/toulouse_maelis/models.py +++ b/passerelle/contrib/toulouse_maelis/models.py @@ -539,6 +539,33 @@ class ToulouseMaelis(BaseResource, HTTPResource): if value is None: dico[key] = '' + def read_rl_list_raw(self, family_id, text_template=None, income_year=None): + result = self.get_family_raw(family_id, incomeYear=income_year) + if not text_template: + text_template = '{{ lastname }} {{ firstname }}' + + for rlg in 'RL1', 'RL2': + item = result.get(rlg) + if not item: + break + self.add_text_value_to_rl(item) + item['id'] = item['num'] + item['text'] = render_to_string(text_template, item).strip() + item['family_id'] = family_id + yield item + + def read_child_list_raw(self, family_id, text_template=None): + result = self.get_family_raw(family_id) + if not text_template: + text_template = '{{ lastname }} {{ firstname }}' + + for item in result['childList']: + self.add_text_value_to_child(item) + item['id'] = item['num'] + item['text'] = render_to_string(text_template, item).strip() + item['family_id'] = family_id + yield item + def get_person_activity_list_raw( self, family_id, @@ -958,21 +985,7 @@ class ToulouseMaelis(BaseResource, HTTPResource): ) def read_rl_list(self, request, NameID=None, family_id=None, text_template=None, income_year=None): family_id = family_id or self.get_link(NameID).family_id - result = self.get_family_raw(family_id, incomeYear=income_year) - if not text_template: - text_template = '{{ lastname }} {{ firstname }}' - - data = [] - for rlg in 'RL1', 'RL2': - item = result.get(rlg) - if not item: - break - self.add_text_value_to_rl(item) - item['id'] = item['num'] - item['text'] = render_to_string(text_template, item).strip() - item['family_id'] = family_id - data.append(item) - return {'data': data} + return {'data': list(self.read_rl_list_raw(family_id, text_template))} @endpoint( display_category='Famille', @@ -1019,18 +1032,7 @@ class ToulouseMaelis(BaseResource, HTTPResource): ) def read_child_list(self, request, NameID=None, family_id=None, text_template=None): family_id = family_id or self.get_link(NameID).family_id - result = self.get_family_raw(family_id) - if not text_template: - text_template = '{{ lastname }} {{ firstname }}' - - data = [] - for item in result['childList']: - self.add_text_value_to_child(item) - item['id'] = item['num'] - item['text'] = render_to_string(text_template, item).strip() - item['family_id'] = family_id - data.append(item) - return {'data': data} + return {'data': list(self.read_child_list_raw(family_id, text_template))} @endpoint( display_category='Famille', @@ -1054,29 +1056,10 @@ class ToulouseMaelis(BaseResource, HTTPResource): self, request, NameID=None, family_id=None, rl_text_template=None, child_text_template=None ): family_id = family_id or self.get_link(NameID).family_id - result = self.get_family_raw(family_id) - if not rl_text_template: - rl_text_template = '{{ lastname }} {{ firstname }}' - if not child_text_template: - child_text_template = '{{ lastname }} {{ firstname }}' - - data = [] - for rlg in 'RL1', 'RL2': - item = result.get(rlg) - if not item: - break - self.add_text_value_to_rl(item) - item['id'] = item['num'] - item['text'] = render_to_string(rl_text_template, item).strip() - item['family_id'] = family_id - data.append(item) - for item in result['childList']: - self.add_text_value_to_child(item) - item['id'] = item['num'] - item['text'] = render_to_string(child_text_template, item).strip() - item['family_id'] = family_id - data.append(item) - return {'data': data} + return { + 'data': list(self.read_rl_list_raw(family_id, rl_text_template)) + + list(self.read_child_list_raw(family_id, child_text_template)) + } @endpoint( display_category='Famille',