Exemple #1
0
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)
Exemple #2
0
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))