def post(self, request, *args, **kwargs): #establece el estado de item a eliminado item_eliminar = get_object_or_404(Item, pk=self.kwargs['pk']) item_eliminar.estado = Item.E_ELIMINADO item_eliminar.save() #establece el estado de las relaciones donde el item es hijo, a eliminadas #ya que el duenho de la relacion es el hijo relaciones = ItemRelacion.objects.filter(destino=item_eliminar) for rel in relaciones: rel.estado = ItemRelacion.E_ELIMINADO rel.save() return redirect(get_url_edicion_actual(request, nivel=1))
def post(self, request, *args, **kwargs): """ Metodo transaccional que guarda los valores del item. Almacena los valores anteriores a la modificacion. Incrementa la version de los valores. """ #Hace backcup de los valores actuales que estan con uso actual =true del item item_part = get_object_or_404(Item, pk=int(self.kwargs.get('iditem',None))) valores_item_part = ValoresItemView.qs_valores_actuales(item_part.pk) #recibe los parametros por post formset = self.ValoresFormSet(request.POST) if formset.is_valid(): #puede que sea la version inicial de los valores del item if not valores_item_part[0].version == 0: #Cada valor del item se establece con valor de usoactual false #porque esta sera la version anterior for valor in valores_item_part: valor.pk = None # se fuerza a guardar un nuevo registro valor.usoactual = False valor.save() # formset.save() #aun no sabemos como modificar instancias de un formset valores_item_part = ValoresItemView.qs_valores_actuales(item_part.pk) for valor in valores_item_part: valor.set_inc_version() valor.save() #actualiza la version del item item_part.version = valores_item_part[0].version item_part.save() else: return render(request, TEMPL_FORMASIG, {'formset': formset, \ 'action': reverse('valores_asignar',\ kwargs={'iditem':kwargs['iditem']}),\ 'nodefault':'__panel.html' }) return redirect(get_url_edicion_actual(request,1))
def get_success_url(self): return get_url_edicion_actual(self.request,nivel=1)