def add_cliente_proveedor(request, proveedor_id): current_user = request.user username = str(current_user.username) current_page = "Productos" status_answer = {} proveedor = current_user.groups.all().exclude(name=PROVEEDOR_ATTRIBUTE)[0] categorias_list = Categoria.objects.all() ##Check if the proveedor is the right one... avoid requests from another providers print "provider should match" print proveedor.id print proveedor_id if str(proveedor.id) == proveedor_id: tarifas_availables = Tarifas.objects.filter(elproveedor=proveedor.id) ##We have something to save .... add_parameters = request.POST.copy() print add_parameters if add_parameters: print add_parameters['cliente'] #create user, add cliente group, add proveedor group, and add cliente object user = User.objects.create_user(add_parameters['cliente'], add_parameters['email'],add_parameters['password']) grupo_cliente = Group.objects.get(name='cliente') grupo_proveedor = Group.objects.get(id=proveedor.id) user.groups.add(grupo_cliente) user.groups.add(grupo_proveedor) user.save() print add_parameters['tarifa'] client = Cliente(user = user, nombre = add_parameters['nombre'], descripcion = add_parameters['texcontenido'], cif = add_parameters['nif'], direccion = add_parameters['direccion'], ciudad = add_parameters['ciudad'], telefono = add_parameters['telefono'], contacto_nombre = add_parameters['nombre_contacto'] ) #add tarifa ,listas(need to has at least one list), but check with no list), destinos de reparto client.save() client.tarifa.add(add_parameters['tarifa'].split('_')[1]) #TODO:check the real cp ID , not the one the come with the request like 41011 client.destino_reparto.add(1) lis = Lista(nombre='lista 1') lis.save() client.listas.add(lis.id) client.save() print "destino reparto is not properly added" else: #first time here... or someone is trying something... there is no add_parameters :/ print "looks like something is missing or is the first visit" pass else: print "we should be redirected... this is not real provider" #someone is trying something... add logg to this, is looking for another proveedor return redirect('/proveedor/404/', request) context= { 'username': username, 'current_page': current_page, 'status_answer': status_answer, 'proveedor': proveedor, 'tarifas_availables': tarifas_availables, 'categorias_list': categorias_list, } return render(request, 'proveedor/add_cliente_bootstrap_proveedor.html', context)
for i in range(1, MAX_CLIENTES): ##HERE, redo this, Will only work with one proveedor proveedor = Group.objects.all().exclude(name=CLIENTE_ATTRIBUTE)[0] user = User.objects.create_user("CLIENTE" + str(i), "*****@*****.**", "password") user.groups.add(grupocliente) user.save() grupo_cliente = Group.objects.get(name="cliente") grupo_proveedor = Group.objects.get(id=proveedor.id) user.groups.add(grupo_cliente) user.groups.add(grupo_proveedor) user.save() cliente = Cliente( user=user, nombre="Cliente" + str(i), descripcion="Descripcion" + str(i), cif="NIFNIFNIF" + str(i), direccion="calle direccion", ciudad="ciudadXX", telefono="telefono 123", contacto_nombre="Contact" + str(i), ) # a client can has more than one CP cliente.save() for k in range(1, random.randint(2, 5)): for j in Group.objects.all().filter(name__icontains="proveedor").exclude(name="proveedor"): # TODO: it does not work, only a tarif per client-provider pair tarifas_availables = Tarifas.objects.filter(elproveedor=j.id) tarif_per_proveedor = tarifas_availables[random.randint(0, len(tarifas_availables) - 1)] cliente.tarifa.add(tarif_per_proveedor.id) for k in range(1, random.randint(2, 5)): # probably there is something wrong here with listas and products per client... cliente.listas.add(random.randint(1, MAX_CATEGORIAS - 1))