def reservars(request): existe = "reserva" guardac = request.POST['cliente'] print(guardac) #print(Cliente.objects.get(cli_id=guardac)) form = ReservaForm(request.POST) # A form bound to the POST data men= MensajeForm(request.POST) if form.is_valid(): # All validation rules pass print("reserva validad") if men.is_valid(): men.save() form.save() met = Mensaje.objects.latest('men_id') ret = Reserva.objects.latest('res_id') ret.estado_est=Estado.objects.get(est_id=3) ret.cliente_cli=Cliente.objects.get(cli_id=guardac) ret.mensaje_men=met ret.save() return HttpResponseRedirect('/reservas/') else: print(men) print("formato mensaje invalido") else: print("formato reserva invalido") return render_to_response('commerce/Reserva/generarReserva.html', {'guardac':guardac,'existe':existe,'form': form, 'men':men})
def nueva_reserva(request): error = 0 usuario = request.user if request.method == 'POST': formulario = ReservaForm(request.POST) datetime.datetime.utcnow().replace(tzinfo=utc) if formulario.is_valid(): id = request.POST['objecte'] # selecionamos la fechas para hacer la comparativa data_ini = request.POST['data_inici'] data_final = request.POST['data_final'] reserva = Reserva.objects.all() for element in reserva: if(element.objecte==Objecte.objects.get(pk=id)): if(datetime.datetime.strptime(data_ini,"%d/%m/%Y %H:%M").replace(tzinfo=utc) >= element.data_inici and datetime.datetime.strptime(data_ini,"%d/%m/%Y %H:%M").replace(tzinfo=utc) <= element.data_final): error = 1 break elif(datetime.datetime.strptime(data_final,'%d/%m/%Y %H:%M').replace(tzinfo=utc) >= element.data_inici and datetime.datetime.strptime(data_final,"%d/%m/%Y %H:%M").replace(tzinfo=utc) <= element.data_final): error = 1 break if(error!=1): obj=Objecte.objects.get(pk=id) obj.disponible = 'No' obj.save() formulario.save() return espai_usuari(request) else: pass else: messages.error(request, "Error") else: formulario = ReservaForm() #formulario.fields['objecte'].queryset = Objecte.objects.filter(disponible='Si') messages.error(request, "Error") return render(request, 'reserves/nueva_reserva.html', {'formulario': formulario, 'error':error})
def nuevaReserva (request, recurso_id): """ Este método utiliza la infraestructura para el manipulador porque las nuevas reservas hay que tratarlas con cuidado a la hora de introducirlas en la base de datos. """ #manipulador = Reserva.AddManipulator () errors = {} if request.POST: new_data = request.POST.copy () new_data['responsable'] = request.user.id new_data['inicio_date'] = new_data['fechaianyo'] + '-' + new_data['fechaimes'] + '-' + new_data['fechaidia'] new_data['fin_date'] = new_data['inicio_date'] new_data['fin'] = new_data['fin_date'] + " " + new_data['fin_time'] new_data['inicio'] = new_data['inicio_date'] + " " + new_data['inicio_time'] form = ReservaForm(new_data) if form.is_valid(): if form.cleaned_data['inicio'] > form.cleaned_data['fin']: errors['inicio_date'] = ['La fecha de inicio no puede ser mayor que la de fin'] if form.cleaned_data['inicio'] < datetime.datetime.now(): errors['fin_date'] = ['La fecha de inicio no puede ser anterior al día de hoy'] colisiones = Reserva.objects.filter ( Q(recurso = new_data['recurso']) & ( ( Q(inicio__lt = form.cleaned_data['inicio']) & Q(fin__gt = form.cleaned_data['inicio']) ) | ( Q(inicio__lt = form.cleaned_data['fin']) & Q(fin__gt = form.cleaned_data['fin']) ) | ( Q(inicio__gt = form.cleaned_data['inicio']) & Q(fin__lt = form.cleaned_data['fin']) ) ) ) if colisiones: errors['colision'] = "Lo sentimos, este recurso se encuentra ya reservado en este espacio de tiempo" errors['reservas_previas'] = colisiones if not errors: form.save() else: errors = form.errors else: errors = new_data = {} form = ReservaForm() context = {} fechaTemplateSimple(context, request) # sobra diaActual, mesActual, anyoActual context['recurso_id'] = recurso_id context['errors'] = errors context['form'] = form context['reservas'] = Reserva.getReservas (recurso_id) context['task'] = 'recursos' context['user'] = request.user context['diasMes'] = range(1,32) context['meses'] = OPCIONES_MESES context['anyos'] = range(settings.CURSO_ESCOLAR_ACTUAL, settings.CURSO_ESCOLAR_ACTUAL + 4) context['horas'] = RANGO_HORAS if request.GET: try: context['calendario'] = Reserva.getCalendario( setDictFunction = setDictRecurso, diccionarioAdicional = {'recurso_id' : recurso_id}, semana = request.GET['semana'] ) context['semanaAnterior'] = int(request.GET['semana']) - 1 context['semanaSiguiente'] = int(request.GET['semana']) + 1 except: context['calendario'] = Reserva.getCalendario( setDictFunction = setDictRecurso, diccionarioAdicional = {'recurso_id' : recurso_id}, ) else: context['calendario'] = Reserva.getCalendario( setDictFunction = setDictRecurso, diccionarioAdicional = {'recurso_id' : recurso_id}, ) context['semanaAnterior'] = int(time.strftime("%W")) - 1 context['semanaSiguiente'] = int(time.strftime("%W")) + 1 return render_to_response ( 'recursos/richWebBrowser/nueva-reserva.html', context, context_instance=RequestContext(request) )