Beispiel #1
0
def contactar(request):
	if request.method=='POST':
		formulario = ContactoForm(request.POST)
		if formulario.is_valid():
			titulo 		= 'Mensaje desde el contacto de la Agenda Virtual'
			contenido	= formulario.cleaned_data['mensaje'] + '\n'
			contenido	+= 'Comunicarse a: ' + formulario.cleaned_data['correo']
			correo		= EmailMessage(titulo, contenido, to=['*****@*****.**'])
			correo.send()
			return HttpResponseRedirect('/gracias')
	else:
		formulario = ContactoForm()
	return render(request, 'contactoform.html', {'formulario': formulario})
Beispiel #2
0
def contacto(request, id_contacto):
	contact	= get_object_or_404(Contacto, pk=id_contacto,)
	
	if request.method=='GET':
		formulario = ContactoForm(instance=contact)
		#return render_to_response('detalle_contacto.html', {'contacto': contact, 'formulario': formulario})
		return render(request, 'detalle_contacto.html', {'contacto': contact, 'formulario': formulario})
	elif request.method=='POST':
		form = ContactoForm(request.POST, instance=contact)
		if form.is_valid():
			form.save()
			return HttpResponseRedirect('/contacto/'+str(id_contacto))
		else:
			return render(request, 'detalle_contacto.html', {'contacto': contact, 'formulario': form})
Beispiel #3
0
 def test_registrar_contacto_invalido(self):
     """ Probar registrar un contacto con valores inválidos:
     - Sin empresa ni área
     TODO: probar con area y no otras.
     """
     nombre = "Marquicio"
     apellido = "Lopez"
     correo_electronico = "*****@*****.**"
     calificacion = 1
     is_cliente = True
     data = {'nombre' : nombre, 'apellido' : apellido,
             'correo_electronico' : correo_electronico, 
             'calificacion' : calificacion, 'is_cliente' : is_cliente}
     form_contacto = ContactoForm(data=data)
     self.assertFalse(form_contacto.is_valid())
Beispiel #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':
        formContacto = ContactoForm(request.POST)
        formNumeroTelefonico = NumeroTelefonicoForm(request.POST)
        if not formNumeroTelefonico.has_changed():
            formNumeroTelefonico = NumeroTelefonicoForm()
        es_vendedor = no_es_vendedor(request.user)
        forms = {'formContacto':formContacto, 'formNumeroTelefonico':formNumeroTelefonico, \
        'no_es_vendedor':es_vendedor}
        if formContacto.is_valid():
            es_valido = True
            if formNumeroTelefonico.has_changed():
                if not formNumeroTelefonico.is_valid:
                    es_valido = False
            if es_valido:
                data = formContacto.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 = Contacto(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:
        formContacto = ContactoForm()
        formNumeroTelefonico = NumeroTelefonicoForm()
        es_vendedor = no_es_vendedor(request.user)
        forms = {'formContacto':formContacto, 'formNumeroTelefonico':formNumeroTelefonico, \
        'no_es_vendedor':es_vendedor}
    return render(request, 'contactos/registrar_contacto.html', forms)
Beispiel #5
0
 def test_registrar_contacto_invalido(self):
     """ Probar registrar un contacto con valores inválidos:
     - Sin empresa ni área
     TODO: probar con area y no otras.
     """
     nombre = "Marquicio"
     apellido = "Lopez"
     correo_electronico = "*****@*****.**"
     calificacion = 1
     is_cliente = True
     data = {
         'nombre': nombre,
         'apellido': apellido,
         'correo_electronico': correo_electronico,
         'calificacion': calificacion,
         'is_cliente': is_cliente
     }
     form_contacto = ContactoForm(data=data)
     self.assertFalse(form_contacto.is_valid())
Beispiel #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 = Contacto.objects.get(pk=id_contacto)
    if request.method == 'POST':
        formContacto = ContactoForm(request.POST)
        formNumeroTelefonico = NumeroTelefonicoForm(request.POST)
        if not formNumeroTelefonico.has_changed():
            formNumeroTelefonico = NumeroTelefonicoForm()
        es_vendedor = no_es_vendedor(request.user)
        forms = {'contacto': contacto, 'formContacto':formContacto, 'formNumeroTelefonico':formNumeroTelefonico, \
        'no_es_vendedor':es_vendedor}
        es_valido = True
        if formContacto.is_valid():
            if formNumeroTelefonico.has_changed():
                if not formNumeroTelefonico.is_valid:
                    es_valido = False
            if es_valido:
                data = formContacto.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 = Contacto.objects.get(id=id_contacto)
        data_formContacto = {}
        data_formContacto['nombre'] = contacto.nombre
        data_formContacto['apellido'] = contacto.apellido
        pertenece = Pertenece.objects.filter(contacto=contacto)
        pertenece = pertenece[len(pertenece) - 1]
        empresa = pertenece.empresa
        data_formContacto['empresa'] = empresa.pk
        data_formContacto['area'] = pertenece.area.pk
        data_formContacto['correo_electronico'] = contacto.correo_electronico
        data_formContacto['calificacion'] = contacto.calificacion
        data_formContacto['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

        formContacto = ContactoForm(data_formContacto)
        formNumeroTelefonico = NumeroTelefonicoForm(data_formTelefono)

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