Пример #1
0
 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))
Пример #2
0
    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))
Пример #3
0
 def get_success_url(self):
     return get_url_edicion_actual(self.request,nivel=1)