Ejemplo n.º 1
0
    def __init__(self):
        """
            Sobre escribe el constructor de la clase FloatLayout
        """
        try:

            FloatLayout.__init__(self)
            self.ldatos.conectar()
            self.getappsettings()

            self.datos_api = SQLData(self.__django_api)
            #self.__api_success = datos_api.testapi()
            self.horario_grid.addcolumna("Codigo", "txt", "left", .15, False, 'codigo')
            self.horario_grid.addcolumna("Materia", "key", "center", .52, False, 'nombre')
            self.horario_grid.addcolumna("Dia", "txt", "left", .08, False, 'dia')
            self.horario_grid.addcolumna("Hora", "txt", "left", .15, False, 'hora')
            self.horario_grid.addcolumna("Aula", "txt", "left", .1, False, 'aula')
            self.horario_grid.addheaders()
            # self.gridTest.datasource = self.datos
#        self.gridTest.addgridrow([True, "1", "Articulo 1", "10", False])
            if not self.__is_sync or self.__carnet_sync == '':
                self.showloginform()
            else:
                self.showhorario()
        except AppMiscError as exp:
            showmessagebox(exp.title, exp.message)
Ejemplo n.º 2
0
 def saveajustes(self, carnet_text, api_url):
     """
         Actualiza los datos de la ventana deajustes al apretar el boton
     """
     if carnet_text != '':
         self.__is_sync = True
     else:
         self.__is_sync = False
     self.__carnet_sync = carnet_text
     self.__django_api = api_url
     self.datos_api = SQLData(self.__django_api)
     self.setappsettings()
Ejemplo n.º 3
0
    def __init__(self):
        try:

            FloatLayout.__init__(self)
            self.ldatos.conectar()
            self.getappsettings()

            #            if not self.__is_sync:
            #                self.showloginform()

            datos_api = SQLData(self.__django_api)
            # self.gridTest.addcolumna("Carnet", "txt", "left", 50, False, 'carnet')
            # self.gridTest.addcolumna("Usuario", "key", "center", 90, False, 'username')
            # self.gridTest.addcolumna("Nombre", "txt", "left", 150, False, 'first_name')
            # self.gridTest.addcolumna("Apellido", "txt", "left", 150, False, 'last_name')
            # self.gridTest.addcolumna("Email", "txt", "left", 355, False, 'email')
            # self.datos.view = "rest-auth/user"
            # self.gridTest.addheaders()
            # self.gridTest.datasource = self.datos


#        self.gridTest.addgridrow([True, "1", "Articulo 1", "10", False])
        except AppMiscError as exp:
            showmessagebox(exp.title, exp.message)
Ejemplo n.º 4
0
class MainWindow(FloatLayout):
    """
        Clase que representa la ventana principal
    """
    __lastuser = ''
    __is_sync = False
    __carnet_sync = ''
    __django_api = ''
    __api_success = False

    ldatos = LocalData('pfinal.sqlite3')
    datos_api = SQLData
    horario_grid = ui.GridProyecto
    texto = StringProperty("Proyecto Final Test")
    manager = ObjectProperty(None)
    carnet_sync = ObjectProperty(None)
    carnet_text = ObjectProperty(None)
    api_url = ObjectProperty(None)
    estudiante_form = ObjectProperty(None)

    nombredb = ObjectProperty(None)
    apellidodb = ObjectProperty(None)
    correodb = ObjectProperty(None)

    def __init__(self):
        """
            Sobre escribe el constructor de la clase FloatLayout
        """
        try:

            FloatLayout.__init__(self)
            self.ldatos.conectar()
            self.getappsettings()

            self.datos_api = SQLData(self.__django_api)
            #self.__api_success = datos_api.testapi()
            self.horario_grid.addcolumna("Codigo", "txt", "left", .15, False, 'codigo')
            self.horario_grid.addcolumna("Materia", "key", "center", .52, False, 'nombre')
            self.horario_grid.addcolumna("Dia", "txt", "left", .08, False, 'dia')
            self.horario_grid.addcolumna("Hora", "txt", "left", .15, False, 'hora')
            self.horario_grid.addcolumna("Aula", "txt", "left", .1, False, 'aula')
            self.horario_grid.addheaders()
            # self.gridTest.datasource = self.datos
#        self.gridTest.addgridrow([True, "1", "Articulo 1", "10", False])
            if not self.__is_sync or self.__carnet_sync == '':
                self.showloginform()
            else:
                self.showhorario()
        except AppMiscError as exp:
            showmessagebox(exp.title, exp.message)

    def getappsettings(self):
        """
            Adquiere datos de la tabla settings en la base de datos local
        """
        settings = self.ldatos.getdbsettings()
        self.__lastuser = settings[0]
        self.__is_sync = settings[1]
        self.__carnet_sync = settings[2]
        self.__django_api = settings[3]

    def setappsettings(self):
        """
            Actualiza los datos de la tabla settings
        """
        self.ldatos.setdbsettings(self.__lastuser, self.__is_sync, self.__carnet_sync, self.__django_api)

    def showajustes(self):
        """
            Despliega lo ventana de ajustes
        """
        self.getappsettings()
        self.carnet_text.text = self.__carnet_sync
        self.api_url.text = self.__django_api
        self.manager.current = 'ajustes'

    def saveajustes(self, carnet_text, api_url):
        """
            Actualiza los datos de la ventana deajustes al apretar el boton
        """
        if carnet_text != '':
            self.__is_sync = True
        else:
            self.__is_sync = False
        self.__carnet_sync = carnet_text
        self.__django_api = api_url
        self.datos_api = SQLData(self.__django_api)
        self.setappsettings()

    def showloginform(self):
        """
            Muestra la ventana para insertar el numero de carnet
        """
        self.carnet_sync.text = self.__carnet_sync
        self.manager.current = 'carnet'

    def showhorario(self):
        """
            Muestra la ventana con los carnets
        """
        if not self.__is_sync or self.__carnet_sync == '':
            self.showloginform()
        else:
            self.estudiante_form.title = 'Estudiante ' + self.__carnet_sync
            if self.ldatos.is_exist(self.__carnet_sync):
                estudiante = self.ldatos.getestudiante(self.__carnet_sync)
                self.nombredb.texto = estudiante[1]
                self.apellidodb.texto = estudiante[2]
                self.correodb.texto = estudiante[3]
                if self.ldatos.is_existhorario(self.__carnet_sync):
                    horario = self.ldatos.gethorario(self.__carnet_sync)
                    self.horario_grid.datasource = horario
            self.manager.current = 'horario'

    def syncronizar(self, carnet):
        """
            Syncroniza la base de datos local con los datos adquiridos del API en django
        """
        try:
            if carnet != '':
                self.datos_api.view = 'estudiante/{0}'.format(carnet)
                resultados = self.datos_api.getapidata()
                if self.ldatos.is_exist(resultados['carnet']):
                    self.ldatos.delestudiante(resultados['carnet'])

                if self.ldatos.addestudiante(resultados['carnet'], resultados['nombre'], resultados['apellido'], resultados['email']):
                    self.datos_api.view = 'horarios/?estudiante={0}'.format(carnet)
                    if self.ldatos.is_existhorario(resultados['carnet']):
                        self.ldatos.delhorarios(resultados['carnet'])
                    horarios = self.datos_api.getapidatafiltered()
                    for horario in horarios:
                        self.ldatos.addhorario(horario['id'], horario['estudiante'], horario['codmateria'], horario['materia'], horario['dia'], horario['hora'], horario['aula'], horario['profesor'], horario['tiempo'],)
                    self.__is_sync = True
                    self.__carnet_sync = resultados['carnet']
                    self.ldatos.setdbsettings(self.__lastuser, self.__is_sync, self.__carnet_sync, self.__django_api)
                    self.showhorario()
        except AppMiscError as exp:
            ui.showmessagebox(exp.title, exp.message, 2)