From: Benoit C. Sirois Date: Thu, 11 Apr 2013 18:21:50 +0000 (-0400) Subject: Merge branch 'hotfix/salaire_base_bug' X-Git-Tag: 1.7.2~1 X-Git-Url: http://git.auf.org/?p=auf_rh_dae.git;a=commitdiff_plain;h=54e18c2f4c2d2078fd3b9d9434e6f1b390bf03f3;hp=ad87f67868e277bc0fde21bfd6c7625a570ecded Merge branch 'hotfix/salaire_base_bug' --- diff --git a/project/dae/forms.py b/project/dae/forms.py index 4326834..373099f 100644 --- a/project/dae/forms.py +++ b/project/dae/forms.py @@ -375,6 +375,7 @@ class GroupedInlineFormset(BaseInlineFormSet): } # Assign each form to a group. + ungrouped_forms = [] for form in self.forms: if bool(form.initial): grp = group_accessor(form) @@ -385,19 +386,26 @@ class GroupedInlineFormset(BaseInlineFormSet): 'forms': [], } self.groups[grp[0]]['forms'].append(form) + else: + ungrouped_forms.append(form) + - # Add extra forms (n extra for each grop). - tmp_extras = [] - for i in xrange(len(self.groups) * self.extra): - tmp_extras.insert(0, - self._construct_form(self.initial_form_count() + i)) - + # Distribuer les extras de django dans les groupes, et ajouter + # des extras pour les groupes en nécessitant. + f_count = len(self.forms) for g in self.groups: - for i in xrange(self.extra): - tmp_form = tmp_extras.pop() - self.groups[g]['forms'].append(tmp_form) - self.forms.append(tmp_form) - + for i in xrange(f_count, f_count + self.extra): + if len(ungrouped_forms) == 0: + f_count += 1 + + if len(ungrouped_forms) > 0: + new_form = ungrouped_forms.pop() + else: + new_form = self._construct_form(i) + self.forms.append(new_form) + + self.groups[g]['forms'].append(new_form) + # Override form choices with the data provided in # choice_overrides @@ -411,41 +419,6 @@ class GroupedInlineFormset(BaseInlineFormSet): # Create an iterable for easier access in template. self.group_list = self.groups.values() - # def set_groups(self, group_accessor, groups, group_order=[]): - # """ - # group_accessor: A function that will get the key and name from - # each form. - # group_order: list the group keys here in a list and - # GroupedInlineFormset.groups will be ordered (ordereddict) by - # the key sequence provided here. Any missing key from the - # sequence will - # """ - - # # Build group list. - # self.groups = OrderedDict() - # temp_groups = {} - # # self.groups_and_forms = [] - # for form in self.forms: - # group_key, group_name = group_accessor(form) - # if not temp_groups.has_key(group_key): - # temp_groups[group_key] = { - # 'name': group_name, - # 'key': group_key, - # 'forms': [], - # } - # temp_groups[group_key]['forms'].append(form) - - # for order_key in group_order: - # if temp_groups.has_key(order_key): - # self.groups[order_key] = temp_groups.pop(order_key) - - # for key in temp_groups: - # self.groups[key] = temp_groups[key] - - # del temp_groups - - # self.group_list = self.groups.values() - def remun_formset_factory(parent_model, model, @@ -576,6 +549,7 @@ def remun_formset_factory_factory( }, ) + RemunForm = remun_formset_factory_factory( read_only=False, parent_model=dae.Dossier, diff --git a/project/dae/views.py b/project/dae/views.py index b8a0149..59801bd 100644 --- a/project/dae/views.py +++ b/project/dae/views.py @@ -498,6 +498,7 @@ def embauche(request, key=None, dossier_id=None): remunForm.save() # Ne remplacer que les comparaisons de ma région + comparaisons = comparaisons_formset.save(commit=False) for comparaison in comparaisons: comparaison.dossier = dossier