def post(self, request): candidatos = get_dict_array(request.POST, 'data', ["funcionario", "coordinador", "verificacion", "apoyo", "criterio"]) for id in candidatos: data = Storage() pst = Pst.objects.get(pk=int(id)) candidato = candidatos[id] #Obtenemos los datos del candidato fecha = candidato['inicio'].split('-'); desde = date(int(fecha[1]), MESES[str(fecha[0])], 1) fecha = candidato['fin'].split('-'); days = calendar.monthrange(int(fecha[1]), MESES[str(fecha[0])]) hasta = date(int(fecha[1]), MESES[str(fecha[0])], days[1]) # Creamos los elementos para guardar la solicitud data.pst = pst data.rif = pst.rif data.desde = desde data.hasta = hasta data.estado = APROBACION_SOLICITUD data.tipo_solicitud = int(candidato['solicitud']) data.criterio = ",".join(candidato['criterio']) if int(candidato['solicitud']) == VERIFICACION: data.tipo_verificacion = int(candidato['verificacion'][0]) if int(candidato['solicitud']) == FISCALIZACION: data.tipo_verificacion = DOMICILIO_FISCAL solicitud = Solicitud(**data) solicitud.save() for i, id in enumerate(candidato['funcionario']): analista = Storage() analista.funcionario = User.objects.get(pk=int(id)) analista.es_coordinador = False analista.es_apoyo = False if candidato['coordinador'][i] == "true": analista.es_coordinador = True if candidato['apoyo'][i] == "true": analista.es_apoyo = True analista.solicitud = solicitud funcionario = FuncionariosSolicitud(**analista) funcionario.save() return redirect(reverse_lazy('funcionario_crear_solicitud'))
def post(self, request, **kwargs): """ Metodo que guarda la modificacion de la solicitud Method: POST """ fecha_hoy = datetime.now() candidatos = get_dict_array(request.POST, 'data', ['funcionario']) solicitud = Solicitud.objects.get(pk=int(request.POST['id_solicitud'])) # Datos para actualizar de la solicitud desde = request.POST['desde'].split('-'); hasta = request.POST['hasta'].split('-'); solicitud.desde = date(int(desde[1]), MESES[str(desde[0])], fecha_hoy.day) solicitud.hasta = date(int(hasta[1]), MESES[str(hasta[0])], fecha_hoy.day) if request.POST['tipo_solicitud'] == VERIFICACION: solicitud.tipo_verificacion = tipos_verificacion solicitud.save() # Asignamos usuarios funcionarios = FuncionariosSolicitud.objects.filter(solicitud=solicitud) func_ids = [f.funcionario.id for f in funcionarios] for id in candidatos: data = Storage() if id in func_ids: lugar = func_ids.index(id) del func_ids[lugar] else: data.funcionario = User.objects.get(pk=id) data.es_coordinador = False data.solicitud = solicitud if candidatos[id]['es_coordinador']== 'true': data.es_coordinador = True f = FuncionariosSolicitud(**data) f.save() FuncionariosSolicitud.objects.filter(funcionario__in=func_ids).delete() return redirect(reverse_lazy('verificar_solicitud_gerente'))