def post(self, request, **kwargs): unit_data_object = self.get_object() vehicles_update_formset = VehicleUpdateFormSet( self.request.POST, prefix='vehicles', queryset=Vehicle.objects.filter( unit=unit_data_object.unit, ), ) # Disable the vehicles update form. unit_data_object.vehicles_update = False unit_data_object.save() # Update, delete or create new vehicles instances for this unit. process_unit_formset(vehicles_update_formset, unit_data_object.unit) messages.success( self.request, _('Gracias por actualizar los datos sobre vehículos registrados.') ) if unit_data_object.residents_update_enabled: return redirect( 'buildings:residents_update_form', self.get_object().unit.id, self.kwargs['verify_key'], ) # Remove edit permission. unit_data_object.enable_residents_update = False unit_data_object.save() return redirect('home')
def post(self, request, **kwargs): unit_data_object = self.get_object() pets_update_formset = PetUpdateFormSet( self.request.POST, prefix='pets', queryset=Pet.objects.filter( unit=unit_data_object.unit, ), ) # Disable the domestic workers update form. unit_data_object.pets_update = False unit_data_object.save() # Update, delete or create new pets # instances for this unit. process_unit_formset( pets_update_formset, unit_data_object.unit, ) messages.success( self.request, _('Gracias por actualizar los datos sobre las mascotas.') ) if unit_data_object.residents_update_enabled: return redirect( 'buildings:residents_update_form', self.get_object().unit.id, self.kwargs['verify_key'], ) # Remove edit permission. unit_data_object.enable_residents_update = False unit_data_object.save() return redirect('home')
def post(self, *args, **kwargs): unit = self.get_object() form = UnitForm( self.request.POST, instance=unit, ) owner_formset = OwnerFormSet( self.request.POST, prefix='owner', queryset=Owner.objects.filter(unit=unit), ) leaseholder_formset = LeaseholderFormSet( self.request.POST, prefix='leaseholder', queryset=Leaseholder.objects.filter(unit=unit), ) # Check if unit form, owners formset and # leaseholders formset are valid. If not, # error messages are returned to the user. # It the forms are valid, the data will be # processed by the 'process_data' function. if (not form.is_valid() or not owner_formset.is_valid() or not leaseholder_formset.is_valid()): return self.render_to_response( self.get_context_data( form=form, owner_formset=owner_formset, leaseholder_formset=leaseholder_formset, )) # Validate the number of form with 'is_main' field # checked. If there are not forms checked or there # are more than one, an error message must be raised. # Units must have one main owner. form, owner_formset, is_main_owner_counter = validate_is_main_formset( form=form, formset=owner_formset, formset_type='owner', ) # Validate the number of form with 'is_main' field # checked. If there are more than one, an error # message must be raised. Units must have only one # main leaseholder. form, leaseholder_formset, is_main_leaseholder_counter = validate_is_main_formset( form=form, formset=leaseholder_formset, formset_type='leaseholder', ) # Return formsets errors. if (not is_main_owner_counter or is_main_owner_counter > 1 or is_main_leaseholder_counter > 1): return self.render_to_response( self.get_context_data( form=form, owner_formset=owner_formset, leaseholder_formset=leaseholder_formset, )) # Save unit form data. unit = form.save() # Update, delete or create new Owner instances for this unit. process_unit_formset(owner_formset, unit) # Process leaseholders formset only if # owners are not residents of the unit. if not unit.owner_set.filter(is_resident=True): # Update, delete or create new Leaseholder instances for this unit. process_unit_formset(leaseholder_formset, unit) messages.success( self.request, _('Unidad actualizada correctamente.'), ) return redirect(unit.get_absolute_url())