示例#1
0
 def get_context_data(self, **kwargs):
     ret = super(CatalogPricingGroup, self).get_context_data(**kwargs)
     try:
         group = PricingGroup.objects.get(
             name=self.group_name,
             date=self.date,
         )
     except PricingGroup.DoesNotExist:
         group = None
     else:
         variables = group.pricingvariable_set.order_by('name')
         if self.variables_formset is None:
             self.variables_formset = PricingVariableFormSet(
                 queryset=variables,
                 prefix='variables',
             )
         if self.device_form is None:
             self.device_form = PricingDeviceForm()
         if self.devices is None:
             self.devices = self.get_devices(group, variables)
         if self.formulas_formset is None:
             self.formulas_formset = PricingFormulaFormSet(
                 group,
                 queryset=group.pricingformula_set.all(),
                 prefix='formulas',
             )
     ret.update({
         'devices': self.devices,
         'variablesformset': self.variables_formset,
         'deviceform': self.device_form,
         'formulasformset': self.formulas_formset,
         'group': group,
     })
     return ret
示例#2
0
 def handle_formulas_form(self, *args, **kwargs):
     self.parse_args()
     group = get_object_or_404(
         PricingGroup,
         name=self.group_name,
         date=self.date,
     )
     self.formulas_formset = PricingFormulaFormSet(
         group,
         self.request.POST,
         queryset=group.pricingformula_set.all(),
         prefix='formulas',
     )
     if not self.formulas_formset.is_valid():
         messages.error(self.request, "Errors in the formulas form.")
         return self.get(*args, **kwargs)
     for form in self.formulas_formset.extra_forms:
         if form.has_changed():
             form.instance.group = group
     self.formulas_formset.save()
     messages.success(self.request, "Group %s saved." % group.name)
     return HttpResponseRedirect(self.request.path)