lunes, 25 de enero de 2016

Semana del 18-24 de Enero






Implementación de  Guardar , Modificar y Consultar en el proyecto 


WORKAREA

En la página del workarea se habilito que el usuario pueda guardar la imagen que crea  dando clic en la pestaña del menú "Save".


Para que el usuario pueda guardar la imagen , deberá llenar los siguientes campos en el modal tales como : el nombre del archivo y la descripción. 
Si en caso el usuario no llena esos campos al hacer clic en guardar el sitio genera una alerta donde se le indicara que no puede guardar la imagen porque le faltan datos.







PERFIL

En la página perfil se habilito la opción para que el usuario cuando inicie sesión puede editar sus datos personales . Para eso se creo el view editarDatosPersona , en el cuál se le envía al view el nombre y el apellido a ser reemplazado y se le hace un update.

def editarDatosPersona(request):
    if request.method == 'POST':
        nombre = request.POST.get('nombre', None)
        apellido = request.POST.get('apellido', None)
    if nombre is None:
        return HttpResponseBadRequest()
    else :
        from django.contrib.auth.models import User
        u = User.objects.get(username=request.user.username)
        u.first_name = nombre
        u.last_name= apellido
        u.save()
        return HttpResponse()


También en la pagina perfil se habilito el shared para compartir las imágenes svg creadas por el usuario.Usando el modal de Shared.
En el , el usuario debera seleccionar el nombre del usuario a quien va a compartir la imagen, que permiso le va a dar y que imagen va a compartir .

Si todo se realiza con éxito , cuando el usuario al que se le compartió la imagen deberá aparecerle en su carrusel de imágenes compartidas la lista de imágenes compartidas actualizada.



Finalmente el usuario en la página de perfil se le mostrara sus dos caruseles con las imagenes que el creo y las imágenes que le han compartido.
El código para las imágenes compartidas es el siguiente:

def obtenerImgCompartidas(request):
    if request.method == 'GET':
        lst_imgc = ImgCompartidas.objects.filter(id_usdest=request.user.username)
        listimg = []
        for img in lst_imgc:
            idi = img.id_imagen
            imgu = Imagen.objects.get(idimagen=idi)
            listimg.append(imgu)
            response = render_to_response(
        'json/imgshared.json',
        {'imagenes': listimg}, #mismo etiqueta en el json
        context_instance=RequestContext(request)
            )
    response['Content-Type'] = 'application/json; charset=utf-8'
    response['Cache-Control'] = 'no-cache'
    return response








domingo, 17 de enero de 2016

Semana del 11 al 17 de Enero





Avance del Proyecto

En este entrega de avance del proyecto se hizo lo siguiente :
-Consultar con la base de datos las imagenes svg .
-El modelo E-R .
-Autenticación con Espol.

y en general pulir ciertas cosas que teniamos error o que no habiamos completado.


1- Atenticación con Espol


Para hacer login en la pagina se debe hacer clic en la pestaña del menu del index.

Llenar con su usuario de espol y su clave para poder iniciar sesión.


El código que se creo para hacer eso fue el siguiente.

def login(request):
    if request.method == 'POST':
        try:
            user = request.POST['user'].strip()
            pwd = request.POST['pwd'].strip()
        except:
            return HttpResponseBadRequest()
        from django.contrib.auth import authenticate, login
        auth = authenticate(username = user , password = pwd)
        if auth is not None:
           login(request, auth)
           return HttpResponse()
        else:
            url = 'http://ws.espol.edu.ec/saac/wsandroid.asmx?WSDL' #http://ws.espol.edu.ec/saac/wsandroid.asmx?WSDL
            imp = Import('http://www.w3.org/2001/XMLSchema')
            imp.filter.add('http://tempuri.org/')
            doctor = ImportDoctor(imp)
            client = Client(url, doctor=doctor)
            auth = client.service.autenticacion(user,pwd)
            if auth == True:
                auth = User.objects.create_user(username=user, password=pwd)
                auth.save()
                auth = authenticate(username = user , password = pwd)
                login(request, auth)
                return HttpResponse()
            else:
                return HttpResponseBadRequest()
    else:
        return HttpResponseBadRequest()

Tambien se creo el codigo para hacer AutoLogOut  para que despues de unos minutos que el usuario no ha usado la pagina , la pagina no este disponible.

2-Consultar las imagenes SVG de la base .

Desde el workarea se puede cargar la imagen .
De la siguiente manera .








En la pestaña "Open" del menú del workarea se hace clic  y se abrirá un modal para que el usuario pueda subir el archivo a la pagina.
En este caso solo se carga una imagen quemada del usuario de la base  y luego esa imagen SVG es presentada en el lienzo de la Hoja 1.




3- Modelo E-R
Se crearon para el proyecto 3 tablas : Imagen para la almacenar toda la información de la imagen svg que crea el usuario, Img_Compartidas que es la tabla para almacenar los datos de que imagen se compartió con cual usuario y la tabla persona para guardar la información de la persona , ademas de las tablas que django utiliza para trabajar.El modelo E-R es el siguiente: 





lunes, 11 de enero de 2016

Semana del 4-10 Enero



Migración del Sitio - Django

En la semana del 29- 3 Enero solo se vio documentación para poder realizar la migración de lo que ya teníamos en el proyecto al framework que seleccionamos (Django). Por lo que a partir del Lunes 4 de Enero se inicio  la transición.

Las paginas mas utilizadas como guías fueron :

1-https://djangogirls.org/
2-https://code.djangoproject.com/wiki/CookBook(Pagina Oficial de Django)
3-https://docs.djangoproject.com/es/1.9/intro/tutorial01/
4-http://www.effectivedjango.com/tutorial/authzn.html (Ver la Autenticación)
5-http://www.django-rest-framework.org/tutorial/quickstart/
6-http://librosweb.es/libro/django_1_0/


Esas fueron algunos de los link de las paginas webs que encontramos para ayudarnos a ver como trabajaba django con el MVC , que en realidad el trabaja con el patrón de diseño MTV que se parece mucho.

Antes de comenzar a trabajar con el proyecto se tuvo que instalar :

1- Python 2.7 ( Utilice el Python 2.7.10 para 64 bits)
 El instalador se lo encuentra en la pagina oficial de Python .(https://www.python.org/downloads/release/python-2710/)

2- Pip en la consola del cmd . Se escribió el siguiente comando.
python -m pip install -U pip
Fuente: https://pip.pypa.io/en/stable/installing/

3- Suds en la consola del cmd. Se escribo el siguiente comando.
pip install suds
4- Atom. Un  nuevo editor  y lo descarge de su pagina oficial https://atom.io/.

5-Mysql Connector .Para poder hacer la conexión con la base de datos.

Fuente : https://dev.mysql.com/downloads/connector/python/

Se edito el setting.py para agregar en la parte de database mysql , luego en el archivo view.py se agrego lo siguiente:

//Código de view.py  para redireccionar a las paginas del proyecto : index.html , workarea.html ,y perfil.html

def home(request):
    return render(request,'index.html',{})

def perfil(request):
    return render(request,'perfil.html',{})

def workarea(request):
    return render(request,'workarea.html',{})

y en los templates se agrega {% load staticfiles %} para poder cargar todas las imágenes del proyecto.