예제 #1
0
    def getAlumnos(self):
        '''
        Devuelve una lista de todos los alumnos almacenados en la base de datos simplificada, solo con los
        campos id, nombre y apellidos.
        '''
        db = MySQLdb.connect(dbParams.host, dbParams.user, dbParams.password,
                             dbParams.db)
        cursor = db.cursor()

        #Sacando los acentos...........
        mysql_query = "SET NAMES 'utf8'"
        cursor.execute(mysql_query)
        #-----------------------------#

        query = "select * from Alumno"
        cursor.execute(query)
        row = cursor.fetchone()

        lista = []

        while row is not None:
            alumno = Alumno()
            #print "LISTA SUPER CHACHI"

            alumno.id = row[0]
            alumno.nombre = row[1]
            alumno.apellidos = row[2]
            lista.append(alumno)
            #print row[0], row[1]
            row = cursor.fetchone()

        cursor.close()
        db.close()

        return lista
    def getAlumnos(self):
        '''
        Devuelve una lista de todos los alumnos almacenados en la base de datos simplificada, solo con los
        campos id, nombre y apellidos.
        '''
        db = MySQLdb.connect(dbParams.host, dbParams.user, dbParams.password, dbParams.db)
        cursor = db.cursor()

        #Sacando los acentos...........
        mysql_query="SET NAMES 'utf8'"
        cursor.execute(mysql_query)
        #-----------------------------#

        query="select * from Alumno"
        cursor.execute(query)
        row = cursor.fetchone()

        lista = []

        while row is not None:
            alumno = Alumno()
            #print "LISTA SUPER CHACHI"

            alumno.id=row[0]
            alumno.nombre=row[1]
            alumno.apellidos=row[2]
            lista.append(alumno)
            #print row[0], row[1]
            row = cursor.fetchone()

        cursor.close()
        db.close()

        return lista
    def getAlumnos(self, idClase):
        """
        Devuelve una lista con los alumnos matriculados en esa clase.
        Campos devueltos: id, nombre y apellidos.
        """
        db = dbParams.conecta()
        cursor = db.cursor()
        # Sacando los acentos...........
        mysql_query = "SET NAMES 'utf8'"
        cursor.execute(mysql_query)
        # -----------------------------#
        idClase = "'" + idClase + "'"
        """
        Usamos la orden distinct para eliminar los duplicados de una consulta, en este caso id_alumno ya que aparecerá
        que un mismo alumno está matriculado muchas veces en un mismo curso con asignaturas disintas, entonces para evitar
        contabilizar esos repetidos, usamos esta orden.
        """
        # query='SELECT id_alumno, nombre, apellidos FROM Alumno where id_alumno in (select distinct id_alumno from Matricula where id_clase='+idClase+')'
        query = (
            "select id_alumno, nombre, apellidos from Alumno where id_alumno IN (select id_alumno from Matricula where id_asociacion IN (select id_asociacion from Asocia where id_clase="
            + idClase
            + "));"
        )
        if v:
            print "\n" + query
        cursor.execute(query)
        row = cursor.fetchone()

        lista = []

        while row is not None:
            alumno = Alumno()
            alumno.id = row[0]
            alumno.nombre = row[1]
            alumno.apellidos = row[2]

            lista.append(alumno)
            # print row[0], row[1]
            row = cursor.fetchone()

        cursor.close()
        db.close()

        return lista
    def getAlumnos(self, idClase):
        '''
        Devuelve una lista con los alumnos matriculados en esa clase.
        Campos devueltos: id, nombre y apellidos.
        '''
        db = dbParams.conecta()
        cursor = db.cursor()
        #Sacando los acentos...........
        mysql_query = "SET NAMES 'utf8'"
        cursor.execute(mysql_query)
        #-----------------------------#
        idClase = '\'' + idClase + '\''
        '''
        Usamos la orden distinct para eliminar los duplicados de una consulta, en este caso id_alumno ya que aparecerá
        que un mismo alumno está matriculado muchas veces en un mismo curso con asignaturas disintas, entonces para evitar
        contabilizar esos repetidos, usamos esta orden.
        '''
        #query='SELECT id_alumno, nombre, apellidos FROM Alumno where id_alumno in (select distinct id_alumno from Matricula where id_clase='+idClase+')'
        query = 'select id_alumno, nombre, apellidos from Alumno where id_alumno IN (select id_alumno from Matricula where id_asociacion IN (select id_asociacion from Asocia where id_clase=' + idClase + '));'
        if v:
            print '\n' + query
        cursor.execute(query)
        row = cursor.fetchone()

        lista = []

        while row is not None:
            alumno = Alumno()
            alumno.id = row[0]
            alumno.nombre = row[1]
            alumno.apellidos = row[2]

            lista.append(alumno)
            #print row[0], row[1]
            row = cursor.fetchone()

        cursor.close()
        db.close()

        return lista
    def getAlumnos(self, idClase):
        '''
        Devuelve una lista con los alumnos matriculados en esa clase.
        Campos devueltos: id, nombre y apellidos.
        '''
        db = MySQLdb.connect(dbParams.host, dbParams.user, dbParams.password, dbParams.db)
        cursor = db.cursor()
        #Sacando los acentos...........
        mysql_query="SET NAMES 'utf8'"
        cursor.execute(mysql_query)
        #-----------------------------#
        idClase='\''+idClase+'\''
        '''
        Usamos la orden distinct para eliminar los duplicados de una consulta, en este caso id_alumno ya que aparecerá
        que un mismo alumno está matriculado muchas veces en un mismo curso con asignaturas disintas, entonces para evitar
        contabilizar esos repetidos, usamos esta orden.
        '''
        query='SELECT id_alumno, nombre, apellidos FROM Alumno where id_alumno in (select distinct id_alumno from Matricula where id_clase='+idClase+')'
        if v:
            print '\n'+query
        cursor.execute(query)
        row = cursor.fetchone()

        lista = []

        while row is not None:
            alumno = Alumno()
            alumno.id=row[0]
            alumno.nombre=row[1]
            alumno.apellidos=row[2]

            lista.append(alumno)
            #print row[0], row[1]
            row = cursor.fetchone()

        cursor.close()
        db.close()

        return lista
    def getAlumnos(self, idAsignatura):
        '''
        Devuelve una lista con todos los alumnos matriculados en esa asignatura en total.
        '''
        db = dbParams.conecta()
        cursor = db.cursor()

        #Sacando los acentos...........
        mysql_query="SET NAMES 'utf8'"
        cursor.execute(mysql_query)
        #-----------------------------#
        idAsignatura='\''+idAsignatura+'\''
        '''
        Con el distinct evitamos que si un alumno por casualidad esta matriculado en lengua de primero
        y lengua de segundo porque así se permite se contabilice como dos alumnos en el recuento, lo que sería un error.
        '''
        #query='select id_alumno, nombre, apellidos from Alumno where id_alumno in (select id_alumno from Matricula where id_asignatura ='+idAsignatura+' )'

        query='SELECT id_alumno, nombre, apellidos from Alumno where id_alumno in (select id_alumno from Matricula where id_asociacion IN ( select id_asociacion from Asocia where id_asignatura='+idAsignatura+'));'

        if v:
            print '\n'+query
        cursor.execute(query)
        row = cursor.fetchone()

        lista = []

        while row is not None:
            alumno = Alumno()
            alumno.id=row[0]
            alumno.nombre=row[1]
            alumno.apellidos=row[2]
            lista.append(alumno)
            row = cursor.fetchone()

        cursor.close()
        db.close()

        return lista
                print "MySQL Error [%d]: %s" % (e.args[0], e.args[1])
                print "Error number: "+str(e.args[0])
                salida=e.args[0]
            except IndexError:
                print "MySQL Error: %s" % str(e)

        cursor.close()
        db.close()

        if salida==1:
            #Como se trata de toda la información al completo usaremos todos los campos de la clase alumno.
            #La api del mservicio envia estos datos en JSON sin comprobar nada
            alm = Alumno()
            alm.id=row[0]
            alm.nombre=row[1]
            alm.apellidos=row[2]
            alm.dni=row[3]
            alm.direccion=row[4]
            alm.localidad=row[5]
            alm.provincia=row[6]
            alm.fecha_nacimiento=row[7]
            alm.telefono=row[8]
            alm.urlImagen = row[9]

            print 'Nombre alumno: '+dbParams.formatOutputText(alm.nombre)

            return alm
        if salida==0:
            return 'Elemento no encontrado'

    @classmethod
예제 #8
0
                print "MySQL Error [%d]: %s" % (e.args[0], e.args[1])
                print "Error number: " + str(e.args[0])
                salida = e.args[0]
            except IndexError:
                print "MySQL Error: %s" % str(e)

        cursor.close()
        db.close()

        if salida == 1:
            #Como se trata de toda la información al completo usaremos todos los campos de la clase alumno.
            #La api del mservicio envia estos datos en JSON sin comprobar nada
            alm = Alumno()
            alm.id = row[0]
            alm.nombre = row[1]
            alm.apellidos = row[2]
            alm.dni = row[3]
            alm.direccion = row[4]
            alm.localidad = row[5]
            alm.provincia = row[6]
            alm.fecha_nacimiento = row[7]
            alm.telefono = row[8]

            return alm
        if salida == 0:
            return 'Elemento no encontrado'

    @classmethod
    def modAlumno(self, idAlumno, campoACambiar, nuevoValor):
        """
        Esta función permite cambiar cualquier atributo de un alumno.
        except MySQLdb.Error, e:
            # Get data from database
            try:
                print "MySQL Error [%d]: %s" % (e.args[0], e.args[1])
                print "Error number: "+str(e.args[0])
                salida=e.args[0]
            except IndexError:
                print "MySQL Error: %s" % str(e)

        if salida>=0: #La consulta ha tenido exito
            row = cursor.fetchone()
            lista = []
            while row is not None:
                alumno = Alumno()
                alumno.nombre=row[0]
                alumno.apellidos=row[1]
                alumno.id=row[2]
                print alumno
                lista.append(alumno)
                #print row[0], row[1]
                row = cursor.fetchone()

            #Devolvemos la lista de profesores (incluso si no hay y está vacía)
            return lista

            cursor.close()
            db.close()

    @classmethod
    def getAsignaturas(self, idProfesor):
        """Devuelve una lista con las asignaturas que ese profesor imparte.