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})
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})
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())
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)
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())
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)