예제 #1
0
 def test_registrar_numero_valido(self):
     """ registrar un numero telefónico válido
     """
     numero = 4414579611
     data = {'numero' : numero, 'tipo_numero': 1}
     form_numero = NumeroTelefonicoForm(data=data)
     self.assertTrue(form_numero.is_valid())
예제 #2
0
파일: views.py 프로젝트: juliannieb/claand
def registrar_empresa(request):
    """ Vista para registrar una empresa.
    """
    if request.method == 'POST':
        form = EmpresaForm(request.POST)
        formDireccion = DireccionForm(request.POST)
        formNumeroTelefonico = NumeroTelefonicoForm(request.POST)
        if not formNumeroTelefonico.has_changed():
            formNumeroTelefonico = NumeroTelefonicoForm()
        formRedSocial = RedSocialForm(request.POST)
        if not formRedSocial.has_changed():
            formRedSocial = RedSocialForm()
        es_vendedor = no_es_vendedor(request.user)
        forms = {'form':form, 'formDireccion':formDireccion, 'formNumeroTelefonico':formNumeroTelefonico, \
        'formRedSocial':formRedSocial, 'no_es_vendedor':es_vendedor}

        if form.is_valid() and formDireccion.is_valid():
            es_valido = True
            if formNumeroTelefonico.has_changed():
                if not formNumeroTelefonico.is_valid():
                    es_valido = False
            else:
                formNumeroTelefonico = NumeroTelefonicoForm()
                forms['formNumeroTelefonico'] = formNumeroTelefonico
            if formRedSocial.has_changed():
                if not formRedSocial.is_valid():
                    es_valido = False
            else:
                formRedSocial = RedSocialForm()
                forms['formRedSocial'] = formRedSocial
            if es_valido:
                empresa = form.instance
                empresa = form.save(commit=True)
                direccion = formDireccion.save(commit=True)

                EmpresaTieneDireccion(empresa=empresa, direccion=direccion).save()

                if formNumeroTelefonico.has_changed() and formNumeroTelefonico.is_valid():
                    numero_telefonico = formNumeroTelefonico.instance
                    numero_telefonico.empresa = empresa
                    numero_telefonico.save()
                if formRedSocial.has_changed() and formRedSocial.is_valid():
                    red_social = formRedSocial.instance
                    red_social.empresa = empresa
                    red_social.save()
                return render(request, 'principal/exito.html')
    else:
        form = EmpresaForm()
        formDireccion = DireccionForm()
        formNumeroTelefonico = NumeroTelefonicoForm()
        formRedSocial = RedSocialForm()
        es_vendedor = no_es_vendedor(request.user)
        forms = {'form':form, 'formDireccion':formDireccion, \
        'formNumeroTelefonico':formNumeroTelefonico, \
        'formRedSocial':formRedSocial, 'no_es_vendedor':es_vendedor}

    return render(request, 'empresas/registrar_empresa.html', forms)
예제 #3
0
def registrar_contacto(request):
    """ En esta vista se maneja el registro y validación de un contacto, dependiendo
    si la solicitud es POST o GET.
    """
    if request.method == 'POST':
        formPozo = PozoForm(request.POST)
        formNumeroTelefonico = NumeroTelefonicoForm(request.POST)
        if not formNumeroTelefonico.has_changed():
            formNumeroTelefonico = NumeroTelefonicoForm()
        es_vendedor = no_es_vendedor(request.user)
        forms = {'formPozo':formPozo, 'formNumeroTelefonico':formNumeroTelefonico, \
        'no_es_vendedor':es_vendedor}
        if formPozo.is_valid():
            es_valido = True
            if formNumeroTelefonico.has_changed():
                if not formNumeroTelefonico.is_valid:
                    es_valido = False
            if es_valido:
                data = formPozo.cleaned_data
                nombre = data['nombre']
                ubicacion = data['ubicacion']
                #is_cliente = data['is_cliente']
                #calificacion = data['calificacion']
                #contacto = formPozo.instance
                cliente = data['cliente'][0]
                contacto = Pozo(nombre=nombre, ubicacion=ubicacion)
                contacto.save()
                print(cliente)
                #Pertenece(contacto=contacto, empresa=empresa, area=area).save()

                Pertenece(pozo=contacto, cliente=cliente).save()
                current_user = request.user
                current_vendedor = Vendedor.objects.get(user=current_user)
                Atiende(vendedor=current_vendedor, contacto=contacto).save()

                if formNumeroTelefonico.has_changed(
                ) and formNumeroTelefonico.is_valid():
                    numero_telefonico = formNumeroTelefonico.instance
                    numero_telefonico.contacto = contacto
                    numero_telefonico.save()
                return render(request, 'principal/exito.html',
                              {'no_es_vendedor': es_vendedor})
    else:
        formPozo = PozoForm()
        formNumeroTelefonico = NumeroTelefonicoForm()
        es_vendedor = no_es_vendedor(request.user)
        forms = {'formPozo':formPozo, 'formNumeroTelefonico':formNumeroTelefonico, \
        'no_es_vendedor':es_vendedor}
    return render(request, 'contactos/registrar_contacto.html', forms)
예제 #4
0
def registrar_contacto(request):
    """ En esta vista se maneja el registro y validación de un contacto, dependiendo
    si la solicitud es POST o GET.
    """
    if request.method == 'POST':
        formPozo = PozoForm(request.POST)
        formNumeroTelefonico = NumeroTelefonicoForm(request.POST)
        if not formNumeroTelefonico.has_changed():
            formNumeroTelefonico = NumeroTelefonicoForm()
        es_vendedor = no_es_vendedor(request.user)
        forms = {'formPozo':formPozo, 'formNumeroTelefonico':formNumeroTelefonico, \
        'no_es_vendedor':es_vendedor}
        if formPozo.is_valid():
            es_valido = True
            if formNumeroTelefonico.has_changed():
                if not formNumeroTelefonico.is_valid:
                    es_valido = False
            if es_valido:
                data = formPozo.cleaned_data
                nombre = data['nombre']
                apellido = data['apellido']
                correo_electronico = data['correo_electronico']
                empresa = data['empresa']
                area = data['area']
                is_cliente = data['is_cliente']
                calificacion = data['calificacion']
                contacto = Pozo(nombre=nombre, apellido=apellido, correo_electronico=correo_electronico, \
                    calificacion=calificacion, is_cliente=is_cliente)
                contacto.save()
                
                Pertenece(contacto=contacto, empresa=empresa, area=area).save()

                current_user = request.user
                current_vendedor = Vendedor.objects.get(user=current_user)
                Atiende(vendedor=current_vendedor, contacto=contacto).save()

                if formNumeroTelefonico.has_changed() and formNumeroTelefonico.is_valid():
                    numero_telefonico = formNumeroTelefonico.instance
                    numero_telefonico.contacto = contacto
                    numero_telefonico.save()
                return render(request, 'principal/exito.html', {'no_es_vendedor':es_vendedor})
    else:
        formPozo = PozoForm()
        formNumeroTelefonico = NumeroTelefonicoForm()
        es_vendedor = no_es_vendedor(request.user)
        forms = {'formPozo':formPozo, 'formNumeroTelefonico':formNumeroTelefonico, \
        'no_es_vendedor':es_vendedor}
    return render(request, 'contactos/registrar_contacto.html', forms)
예제 #5
0
    def test_registrar_numero_invalido(self):
        """ registrar un numero telefónico inválido:
        - numero inexistente
        - tipo de numero inexistente
        """
        numero = 4414579611
        data = {'tipo_numero': 1}
        form_numero = NumeroTelefonicoForm(data=data)
        self.assertFalse(form_numero.is_valid())

        numero = 4414579611
        data = {'numero' : numero, 'tipo_numero': -1}
        form_numero = NumeroTelefonicoForm(data=data)
        self.assertFalse(form_numero.is_valid())
예제 #6
0
def editar_contacto(request, id_contacto):
    """ En esta vista se presenta la interfaz para editar la información básica
    de un contacto.
    """
    contacto = Pozo.objects.get(pk=id_contacto)
    if request.method == 'POST':
        formPozo = PozoForm(request.POST)
        formNumeroTelefonico = NumeroTelefonicoForm(request.POST)
        if not formNumeroTelefonico.has_changed():
            formNumeroTelefonico = NumeroTelefonicoForm()
        es_vendedor = no_es_vendedor(request.user)
        forms = {'contacto': contacto, 'formPozo':formPozo, 'formNumeroTelefonico':formNumeroTelefonico, \
        'no_es_vendedor':es_vendedor}
        es_valido = True
        if formPozo.is_valid():
            if formNumeroTelefonico.has_changed():
                if not formNumeroTelefonico.is_valid:
                    es_valido = False
            if es_valido:
                data = formPozo.cleaned_data
                nombre = data['nombre']
                apellido = data['apellido']
                correo_electronico = data['correo_electronico']
                empresa = data['empresa']
                area = data['area']
                is_cliente = data['is_cliente']
                calificacion = data['calificacion']
                contacto.nombre = nombre
                contacto.apellido = apellido
                contacto.correo_electronico = correo_electronico
                contacto.calificacion = calificacion
                contacto.is_cliente = is_cliente
                contacto.save()

                pertenece = Pertenece.objects.get(contacto=contacto)
                pertenece.empresa = empresa
                pertenece.area = area
                pertenece.save()

                if formNumeroTelefonico.has_changed(
                ) and formNumeroTelefonico.is_valid():
                    numeros_tels = NumeroTelefonico.objects.get(
                        contacto=contacto)
                    tel_data = formNumeroTelefonico.cleaned_data
                    numero = tel_data['numero']
                    tipo_numero = tel_data['tipo_numero']
                    numeros_tels.numero = numero
                    numeros_tels.tipo_numero = tipo_numero
                    numeros_tels.save()
                return render(request, 'principal/exito.html',
                              {'no_es_vendedor': es_vendedor})
    else:
        contacto = Pozo.objects.get(id=id_contacto)
        data_formPozo = {}
        data_formPozo['nombre'] = contacto.nombre
        data_formPozo['apellido'] = contacto.apellido
        pertenece = Pertenece.objects.filter(contacto=contacto)
        pertenece = pertenece[len(pertenece) - 1]
        empresa = pertenece.empresa
        data_formPozo['empresa'] = empresa.pk
        data_formPozo['area'] = pertenece.area.pk
        data_formPozo['correo_electronico'] = contacto.correo_electronico
        data_formPozo['calificacion'] = contacto.calificacion
        data_formPozo['is_cliente'] = contacto.is_cliente

        numeros_tels = NumeroTelefonico.objects.get(contacto=contacto)
        data_formTelefono = {}
        data_formTelefono['numero'] = numeros_tels.numero
        data_formTelefono['tipo_numero'] = numeros_tels.tipo_numero

        formPozo = PozoForm(data_formPozo)
        formNumeroTelefonico = NumeroTelefonicoForm(data_formTelefono)

        #formPozo['correo_electronico'] = contacto.correo_electronico
        #formPozo['calificacion'] = contacto.calificacion.pk

        es_vendedor = no_es_vendedor(request.user)
        forms = {'contacto': contacto,'formPozo':formPozo, 'formNumeroTelefonico':formNumeroTelefonico, \
        'no_es_vendedor':es_vendedor}
    return render(request, 'contactos/editar_contacto.html', forms)
예제 #7
0
def editar_contacto(request, id_contacto):
    """ En esta vista se presenta la interfaz para editar la información básica
    de un contacto.
    """
    contacto = Pozo.objects.get(pk=id_contacto)
    if request.method == 'POST':
        formPozo = PozoForm(request.POST)
        formNumeroTelefonico = NumeroTelefonicoForm(request.POST)
        if not formNumeroTelefonico.has_changed():
            formNumeroTelefonico = NumeroTelefonicoForm()
        es_vendedor = no_es_vendedor(request.user)
        forms = {'contacto': contacto, 'formPozo':formPozo, 'formNumeroTelefonico':formNumeroTelefonico, \
        'no_es_vendedor':es_vendedor}
        es_valido = True
        if formPozo.is_valid():
            if formNumeroTelefonico.has_changed():
                if not formNumeroTelefonico.is_valid:
                    es_valido = False
            if es_valido:
                data = formPozo.cleaned_data
                nombre = data['nombre']
                apellido = data['apellido']
                correo_electronico = data['correo_electronico']
                empresa = data['empresa']
                area = data['area']
                is_cliente = data['is_cliente']
                calificacion = data['calificacion']
                contacto.nombre = nombre
                contacto.apellido = apellido
                contacto.correo_electronico = correo_electronico
                contacto.calificacion = calificacion
                contacto.is_cliente = is_cliente
                contacto.save()
                
                pertenece = Pertenece.objects.get(contacto=contacto)
                pertenece.empresa = empresa
                pertenece.area = area
                pertenece.save()  

                if formNumeroTelefonico.has_changed() and formNumeroTelefonico.is_valid():
                    numeros_tels = NumeroTelefonico.objects.get(contacto=contacto)
                    tel_data = formNumeroTelefonico.cleaned_data
                    numero = tel_data['numero']
                    tipo_numero = tel_data['tipo_numero']
                    numeros_tels.numero = numero
                    numeros_tels.tipo_numero = tipo_numero
                    numeros_tels.save()
                return render(request, 'principal/exito.html', {'no_es_vendedor':es_vendedor})
    else:
        contacto = Pozo.objects.get(id=id_contacto)
        data_formPozo = {}
        data_formPozo['nombre'] = contacto.nombre
        data_formPozo['apellido'] = contacto.apellido
        pertenece = Pertenece.objects.filter(contacto=contacto)
        pertenece = pertenece[len(pertenece) - 1]
        empresa = pertenece.empresa
        data_formPozo['empresa'] = empresa.pk
        data_formPozo['area'] = pertenece.area.pk
        data_formPozo['correo_electronico'] = contacto.correo_electronico
        data_formPozo['calificacion'] = contacto.calificacion
        data_formPozo['is_cliente'] = contacto.is_cliente

        numeros_tels = NumeroTelefonico.objects.get(contacto=contacto)
        data_formTelefono = {}
        data_formTelefono['numero'] = numeros_tels.numero
        data_formTelefono['tipo_numero'] = numeros_tels.tipo_numero

        formPozo = PozoForm(data_formPozo)
        formNumeroTelefonico = NumeroTelefonicoForm(data_formTelefono)

        #formPozo['correo_electronico'] = contacto.correo_electronico
        #formPozo['calificacion'] = contacto.calificacion.pk
        
        es_vendedor = no_es_vendedor(request.user)
        forms = {'contacto': contacto,'formPozo':formPozo, 'formNumeroTelefonico':formNumeroTelefonico, \
        'no_es_vendedor':es_vendedor}
    return render(request, 'contactos/editar_contacto.html', forms)