Esempio n. 1
0
 def getEntryFromId(self, entryId):
     """Retrieve Entry from specified id."""
     try:
         query = QSqlQuery(self.conn)
         query.prepare("SELECT participant_id, teacher_id, discipline, level, class_number, \
             class_name, instrument, years_of_instruction, scheduling_requirements FROM entries \
             WHERE id=:id")
         query.bindValue(":id", entryId)
         query.exec_()
         if query.isActive() == False:
             print query.lastError().text()
             return query.lastError().text()
         query.next()
         participantID = str(query.value(0).toString())
         teacherID = str(query.value(1).toString())
         discipline = str(query.value(2).toString())
         level = str(query.value(3).toString())
         classNumber = str(query.value(4).toString())
         className = str(query.value(5).toString())
         instrument = str(query.value(6).toString())
         yearsOfInstruction = str(query.value(7).toString())
         schedulingRequirements = str(query.value(8).toString())
         # get associated selections
         selections = self.getSelectionsFromEntryId(entryId)
         ee = Entry(participantID, teacherID, discipline, level, yearsOfInstruction, classNumber, className, instrument, selections, schedulingRequirements)
         return ee
     except Exception, e:
         # TODO: log this instead of printing to console
         print "getEntryFromId FAILED\n\tquery: {0}\n\terror: {1}".format(query.lastQuery(), e)
         return e
Esempio n. 2
0
 def recuperar_datos(self):
   query = QSqlQuery()
   sql = "select cliente_id,fecha,hora,notas from ventas where venta_id=%d" % self.id
   if not query.exec_(sql):
     print "Error al obtener venta."
     return
     
   g = lambda x:query.value(x).toString()
   query.next()
   self.cliente_id = int(g(0))
   self.fecha = g(1)
   self.hora = g(2)
   self.notas = g(3)
   
   self.productos = {}
   sql = """ select codigo,cantidad,descuento from detalle_ventas where venta_id=%d""" % self.id
   query.exec_(sql)
   for i in range(query.size()):
     
     query.next()
     asd = str(g(0))
     
     self.productos[asd] = producto(g(0))
     self.productos[asd].cantidad = int(g(1))
     self.productos[asd].descuento = int(g(2))
     self.productos[asd].actualizar_subtotal()
     
   self.actualizar_total()
Esempio n. 3
0
 def getTeacherFromId(self, teacherId):
     """Retrieve the appropriate Teacher from the given id"""
     try:
         query = QSqlQuery(self.conn)
         query.prepare("SELECT first_name, last_name, address, city, postal_code, daytime_phone, evening_phone, email \
                 FROM teachers WHERE id=:id")
         numericId = teacherId
         query.bindValue(":id", numericId)
         query.exec_()
         if query.isActive() == False:
             print query.lastError().text()
             return query.lastError().text()
         # Now turn it into the appropriate object
         query.next()
         first = str(query.value(0).toString())
         last = str(query.value(1).toString())
         address = str(query.value(2).toString())
         city = str(query.value(3).toString())
         postal = str(query.value(4).toString())
         daytimePhone = str(query.value(5).toString())
         eveningPhone = str(query.value(6).toString())
         email = str(query.value(7).toString())
         retrievedTeacher = Teacher(first, last, address, city, postal, daytimePhone, eveningPhone, email)
         return retrievedTeacher
     except Exception, e:
         # TODO: log this instead of printing to console
         print "getTeacherFromId FAILED\n\tquery: {0}\
             \n\tvalues: {1}\n\terror: {2}".format(query.lastQuery(), numericId, e)
Esempio n. 4
0
 def get_song_listmodel(self, key = None, parent = None):
     """Create and return a QStringListModel of songs in database
     By default all songs are included
     @param key: Include only songs in given key
     @param key: String
     @return: List model to be passed to QListView
     @type return: QStringListModel"""
     if key == None:
         query = QSqlQuery()
         query.prepare("SELECT song FROM Patterns")
         success = query.exec_()
         if not success:
             pass  # TODO
         songs = [], 
         while query.next():
             songs.append(query.value(0))
     else:
         query = QSqlQuery()
         query.prepare("SELECT song FROM Patterns WHERE key == :key")
         query.bindValue(":key", key)
         success = query.exec_()
         if not success:
             pass  # TODO
         songs = [], 
         while query.next():
             songs.append(query.value(0))  # Ajatusvirhe
     return QStringListModel(songs, parent)
Esempio n. 5
0
    def setModelData(self,editor,model,index):
        curindx = self.editor.currentIndex()
        text = self.itemslist[curindx]
        model.setData(index, text)

        # update the student sn
        newClassname    = index.sibling(index.row(),1).data()
        stusn           = index.sibling(index.row(),2).data()
        stuname         = index.sibling(index.row(),3).data()

        query = QSqlQuery(self.db)  
        strsql = "select count(*), stusn from student where classname='" + newClassname + "' and stuname='" + stuname + "'"
        query.exec_(strsql)
        query.next()        

        if query.value(0) == 0: ## the student is not in this class
            # print(query.value(0), "count**", strsql)
            ret = query.exec_("select max(stusn) from student where classname = '" + newClassname + "'")
            query.next()
            tmpsn = query.value(0)
            if type(tmpsn)== QPyNullVariant:
                newstusn = "01"
            else:
                newstusn = str(int(query.value(0)) + 1).zfill(2)

        # if newClassname != self.oldclassname:
            model.setData(index.sibling(index.row(), 2), newstusn)
        else:
            model.setData(index.sibling(index.row(), 2), query.value(1))
Esempio n. 6
0
 def getDomainDict(self):
     try:
         self.checkAndOpenDb()
     except:
         return dict()
     if self.getDatabaseVersion() == '2.1.3':
         schemaList = ['cb', 'complexos', 'dominios']
     elif self.getDatabaseVersion() == 'FTer_2a_Ed':
         schemaList = ['pe','ge','ct', 'complexos']
     else:
         QgsMessageLog.logMessage(self.tr('Operation not defined for this database version!'), "DSG Tools Plugin", QgsMessageLog.CRITICAL)
         return
     sql = self.gen.validateWithDomain(schemaList)
     query = QSqlQuery(sql, self.db)
     classDict = dict()
     domainDict = dict()
     while query.next():
         schemaName = str(query.value(0))
         className = str(query.value(1))
         attName = str(query.value(2))
         domainName = str(query.value(3))
         domainTable = str(query.value(4))
         domainQuery = str(query.value(5))
         cl = schemaName+'.'+className
         query2 = QSqlQuery(domainQuery,self.db)
         while query2.next():
             value = int(query2.value(0))
             classDict = self.utils.buildNestedDict(classDict,[str(cl),str(attName)],[value])
     return classDict
Esempio n. 7
0
    def getEDGVDbsFromServer(self):
        #Can only be used in postgres database.
        try:
            self.checkAndOpenDb()
        except:
            return []
        query = QSqlQuery(self.gen.getDatabasesFromServer(),self.db)
        dbList = []
        
        while query.next():
            dbList.append(query.value(0))
        
        edvgDbList = []
        for database in dbList:
            db = None
            db = QSqlDatabase("QPSQL")
            db.setDatabaseName(database)
            db.setHostName(self.db.hostName())
            db.setPort(self.db.port())
            db.setUserName(self.db.userName())
            db.setPassword(self.db.password())
            if not db.open():
                QgsMessageLog.logMessage('DB :'+database+'| msg: '+db.lastError().databaseText(), "DSG Tools Plugin", QgsMessageLog.CRITICAL)

            query2 = QSqlQuery(db)
            if query2.exec_(self.gen.getEDGVVersion()):
                while query2.next():
                    version = query2.value(0)
                    if version:
                        edvgDbList.append((database,version))
            else:
                QgsMessageLog.logMessage(self.tr('Problem accessing database: ') +database+'\n'+query2.lastError().text(), "DSG Tools Plugin", QgsMessageLog.CRITICAL)
        return edvgDbList
Esempio n. 8
0
    def btns_click(self, btnid):
        # curclassname = self.tabWidget.tabText(0)
        query = QSqlQuery(self.db)
        # cur = conn.cursor()
        today = datetime.date.today()
        self.g_curbtn = str(btnid).zfill(2)
        if self.g_curbtn not in self.dict_choices:
            self.btngroup.button(int(self.g_curbtn)).setStyleSheet(stylesheetstr_new)
            query.exec_("select count(*) from tmprecord where stusn='" + str(self.g_curbtn) + "'")
            query.next()            
            if query.value(0) == 0:
                query.prepare("insert into tmprecord (classname, stusn, datequestion) values (:classname, :stusn, :datequestion)")
                query.bindValue(":classname", self.g_curClassName)
                query.bindValue(":stusn", self.g_curbtn)
                query.bindValue(":datequestion", today)
                query.exec_() 
                
            self.dict_choices[self.g_curbtn] = "111"
        else:
            self.btngroup.button(int(self.g_curbtn)).setStyleSheet(stylesheetstr_old)
            self.btngroup.button(int(self.g_curbtn)).setIcon(QIcon())            
            query.exec_("delete from tmprecord where stusn='"+ str(self.g_curbtn) + "'")            
            self.dict_choices.pop(self.g_curbtn)

        self.btnSysMenu.setFocus()
Esempio n. 9
0
 def llenar_usuarios(self):
   query = QSqlQuery()
   sql = "select usuario from usuarios"
   if query.exec_(sql):
     for i in range(query.size()):
       query.next()
       qn = QListWidgetItem(query.value(0).toString())
       self.list_usuarios.addItem(qn)
Esempio n. 10
0
 def nueva_venta(self, cliente_id):
   query = QSqlQuery()
   sql = "select max(venta_id) from ventas"
   query.exec_(sql)
   query.next()
   max_id = int(query.value(0).toString()) + 1
   self.cliente_id = cliente_id
   self.id = max_id
Esempio n. 11
0
 def getLayersWithElements(self, layerList):
     self.checkAndOpenDb()
     lyrWithElemList = []
     for lyr in layerList:
         schema = self.getTableSchemaFromDb(lyr)
         sql = self.gen.getElementCountFromLayer(schema, lyr)
         query = QSqlQuery(sql, self.db)
         query.next()
         if query.value(0) > 1:
             lyrWithElemList.appen(lyr)
     return lyrWithElemList
Esempio n. 12
0
 def countElements(self, layers):
     listaQuantidades = []
     for layer in layers:
         sql = self.gen.getElementCountFromLayer(layer)
         query = QSqlQuery(sql,self.db)
         query.next()
         number = query.value(0)
         if not query.exec_(sql):
             QgsMessageLog.logMessage(self.tr("Problem counting elements: ")+query.lastError().text(), "DSG Tools Plugin", QgsMessageLog.CRITICAL)
         listaQuantidades.append([layer, number])
     return listaQuantidades
Esempio n. 13
0
 def checkSuperUser(self):
     try:
         self.checkAndOpenDb()
     except:
         return False
     query = QSqlQuery(self.db)
     if query.exec_(self.gen.isSuperUser(self.db.userName())):
         query.next()
         value = query.value(0)
         return value
     return False
Esempio n. 14
0
 def getLayersWithElements(self, layerList):
     self.checkAndOpenDb()
     lyrWithElemList = []
     for lyr in layerList:
         schema=self.getTableSchemaFromDb(lyr)
         sql = self.gen.getElementCountFromLayer(schema,lyr)
         query = QSqlQuery(sql,self.db)
         query.next()
         if query.value(0) > 1:
             lyrWithElemList.appen(lyr)
     return lyrWithElemList
Esempio n. 15
0
 def getParticipantFromId(self, participantId):
     """Retrieve the appropriate Participant from the given id"""
     try:
         query = QSqlQuery(self.conn)
         # if participantId[0] == 's':
         #     query.prepare("SELECT first_name, last_name, address, town, postal_code, home_phone, cell_phone, email, date_of_birth, school_attending, parent \
         #         FROM soloparticipants WHERE id=:id")
         # else:
         #     query.prepare("SELECT group_name, group_size, school_grade, average_age, participants, contact \
         #         FROM groupparticipants WHERE id=:id")
         query.prepare("SELECT first_name, last_name, address, city, postal_code, home_phone, cell_phone, email, date_of_birth, school_attending, parent, age, school_grade, group_name, number_participants, earliest_time, latest_time, group_participants, average_age, contact \
             FROM participants WHERE id=:id")
         # numericId = participantId[1:]
         query.bindValue(":id", participantId)
         query.exec_()
         if query.isActive() == False:
             print query.lastError().text()
             return query.lastError().text()
         # Now turn it into the appropriate object
         query.next()
         retrievedParticipant = None
         # if participantId[0] == 's':
         first = str(query.value(0).toString())
         last = str(query.value(1).toString())
         address = str(query.value(2).toString())
         city = str(query.value(3).toString())
         postal = str(query.value(4).toString())
         home = str(query.value(5).toString())
         cell = str(query.value(6).toString())
         email = str(query.value(7).toString())
         dob = str(query.value(8).toString())
         schoolAttending = str(query.value(9).toString())
         parent = str(query.value(10).toString())
             # retrievedParticipant = SoloParticipant(first, last, address, town, postal, home, cell, email, dob, schoolAttending, parent)
         # else:
         age = str(query.value(11).toString())
         schoolGrade = str(query.value(12).toString())
         groupName = str(query.value(13).toString())
         groupSize = str(query.value(14).toString())
         earliestTime = str(query.value(15).toString())
         latestTime = str(query.value(16).toString())
         participants = str(query.value(17).toString())            
         averageAge = str(query.value(18).toString())
         contact = str(query.value(19).toString())
             # retrievedParticipant = GroupParticipant(groupName, groupSize, schoolGrade, averageAge, participants, contact)
         retrievedParticipant = Participant(first=first, last=last, address=address, city=city, postal=postal, home=home,
             cell=cell, email=email, dob=dob, schoolAttending=schoolAttending, parent=parent, age=age, schoolGrade=schoolGrade,
             groupName=groupName, numberParticipants=groupSize, averageAge=averageAge, participants=participants, contact=contact,
             earliestPerformanceTime=earliestTime, latestPerformanceTime=latestTime)
         return retrievedParticipant
     except Exception, e:
         # TODO: log this instead of printing to console
         print "getParticipantFromId FAILED\n\tquery: {0}\
             \n\terror: {1}".format(query.lastQuery(), e)
Esempio n. 16
0
    def show_termins_in_list(self, page):
        self.currentPage = page
        # фильтрация списка терминов
        search_word = self.searchLineEdit.text()
        if search_word.strip() != '':
            search_str = search_word
        else:
            search_str = ''

        # показ уже обработанных терминов
        if self.showLinkedCheck.isChecked():
            show_linked = 1
        else:
            show_linked = 0

        query = QSqlQuery(self.local_cn)
        LIMIT = int(self.terminsPerPageComboBos.currentText())
        OFFSET = (page - 1) * LIMIT
        query.prepare(show_termins_in_list_query)
        query.bindValue(':search_str', search_str + '%')
        query.bindValue(':linked', show_linked)
        query.bindValue(':limit', LIMIT.__str__())
        query.bindValue(':offset', OFFSET.__str__())
        if query.exec_():
            self.root.takeChildren()
            i = 1
            f = QFont()
            f.setBold(True)
            while query.next():
                c = QTreeWidgetItem()
                c.setText(0, query.value(0))  # Заглавное слово
                c.setData(1, 0, query.value(1))  # uuid
                c.setData(2, 0, i)  # номерок
                if query.value(2) == 1:
                    c.setFont(0, f)
                self.root.addChild(c)
                i += 1

            pages = 1
            query.prepare(show_termins_in_list_count_query)
            query.bindValue(':search_str', search_str + '%')
            query.bindValue(':linked', show_linked)
            if query.exec_() and query.next():
                try:
                    pages = math.ceil(query.value(0) / LIMIT)
                except:
                    pages = 1

            self.draw_paginator(pages, page)
        else:
            print(query.lastError().text())
            print("not exec")
        self.terminsTreeWidget.scrollToTop()
Esempio n. 17
0
 def cols(self, abfrage):
   
   sql = abfrage
   query = QSqlQuery(sql,self.db)
   query.next()
   result = []
   i = 0
   while i < query.record().count():
     
     result.append(str(query.record().fieldName(i)))
     i = i + 1
   return result
Esempio n. 18
0
    def loadAssociatedFeatures(self, complex):
        '''
        Loads all the features associated to the complex 
        complex: complex class name
        '''
        self.checkAndOpenDb()
        associatedDict = dict()
        #query to get the possible links to the selected complex in the combobox
        complexName = complex.replace('complexos_', '')
        sql = self.gen.getComplexLinks(complexName)
        query = QSqlQuery(sql, self.db)
        if not query.isActive():
            self.db.close()
            raise Exception(self.tr("Problem loading associated features: ")+query.lastError().text())

        while query.next():
            #setting the variables
            complex_schema = query.value(0)
            complex = query.value(1)
            aggregated_schema = query.value(2)
            aggregated_class = query.value(3)
            column_name = query.value(4)
            
            if aggregated_class.split('_')[-1] not in ['p', 'l', 'a']:
                continue

            #query to obtain the created complexes
            sql = self.gen.getComplexData(complex_schema, complex)
            complexQuery = QSqlQuery(sql, self.db)
            if not complexQuery.isActive():
                self.db.close()
                raise Exception(self.tr("Problem executing query: ")+complexQuery.lastError().text())

            while complexQuery.next():
                complex_uuid = complexQuery.value(0)
                name = complexQuery.value(1)

                if not (complex_uuid and name):
                    continue

                associatedDict = self.utils.buildNestedDict(associatedDict, [name, complex_uuid, aggregated_class], [])

                #query to obtain the id of the associated feature
                sql = self.gen.getAssociatedFeaturesData(aggregated_schema, aggregated_class, column_name, complex_uuid)
                associatedQuery = QSqlQuery(sql, self.db)
                if not associatedQuery.isActive():
                    self.db.close()
                    raise Exception(self.tr("Problem executing query: ")+associatedQuery.lastError().text())

                while associatedQuery.next():
                    ogc_fid = associatedQuery.value(0)
                    associatedDict = self.utils.buildNestedDict(associatedDict, [name, complex_uuid, aggregated_class], [ogc_fid])
        return associatedDict
Esempio n. 19
0
 def colType(self, abfrage):
   
   sql = abfrage
   query = QSqlQuery(sql,self.db)
   query.next()
   datensatz = {}
   i = 0
   while i < query.record().count():
     
     fieldType = query.record().field(i).type()
     datensatz.update({str(query.record().fieldName(i)).upper(): query.record().field(i).value().typeToName(fieldType)})
     i = i + 1
   return datensatz
Esempio n. 20
0
 def exito(self):
   query=QSqlQuery()
   query.exec_("select usuario_id from usuarios where usuario='%s'"%str(self.line_usuario.text()))
   query.next()
   self.usuario_id=int(query.value(0).toString())
   self.qvpdv = ventana_punto_de_venta()
   self.qvpdv.usuario_id = self.usuario_id
   self.qvpdv.venta.cliente_id=1
   self.qvpdv.actualizar_usuario()
   
   
   self.qvpdv.showMaximized()
   self.close()
Esempio n. 21
0
    def setupModelData( self, parent ):
        try:
            if not QSqlDatabase.database().isOpen():
                if not QSqlDatabase.database().open():
                    raise Exception( "No se pudo conectar con la base"\
                                     + " de datos" )
            parents = [parent]
            query = """
             SELECT
                 p.nombre, 
                p.idcategoria,
                COUNT(h.idcategoria) as hijos 
            FROM categorias p
            LEFT JOIN categorias h ON p.idcategoria = h.padre
            WHERE p.padre IS NULL
            GROUP BY p.idcategoria    
            """
            query = QSqlQuery( query )
            if not query.exec_():
                raise Exception( "No se pudieron recuperar las categorias" )

            x = 0
            while query.next():
                parent = parents[-1]
                parent.insertChildren( x, 1, [query.value( 0 ).toString(),
                                               query.value( 1 ).toInt()[0]] )


                if query.value( 2 ) > 0:
                    y = 0
                    childquery = """
                    SELECT
                        p.nombre ,
                        p.idcategoria 
                    FROM categorias p
                    WHERE p.padre = %d 
                    """ % query.value( 1 ).toInt()[0]
                    childquery = QSqlQuery( childquery )
                    childquery.exec_()
                    while childquery.next():
                        parent.child( x ).insertChildren( y, 1, [
                                          childquery.value( 0 ).toString(),
                                          childquery.value( 1 ).toInt()[0]] )

                        y += 1
                x += 1
            return True
        except Exception as inst:
            logging.error( unicode( inst ) )
            return False
Esempio n. 22
0
 def get_song_pattern(self, song_name):
     """Get chord pattern of given song
     @param song_name: name of the song in database
     @type song_name: String
     @return: pattern
     @type return: String"""
     query = QSqlQuery()
     query.prepare("SELECT pattern FROM Progressions WHERE song == :song")
     query.bindValue(":song", song_name)
     success = query.exec_()
     if not success:
         pass  # TODO
     query.next()  # Get only the first result as song name is primary key.
     return query.value(0) # pattern is the only column in result set.
Esempio n. 23
0
 def get_song_pattern(self, song_name):
     """Get chord pattern of given song
     @param song_name: name of the song in database
     @type song_name: String
     @return: pattern
     @type return: String"""
     query = QSqlQuery()
     query.prepare("SELECT pattern FROM Progressions WHERE song == :song")
     query.bindValue(":song", song_name)
     success = query.exec_()
     if not success:
         pass  # TODO
     query.next()  # Get only the first result as song name is primary key.
     return query.value(0)  # pattern is the only column in result set.
Esempio n. 24
0
    def startChoice(self, usernum="", oldbtn=""): 
        # print(oldbtn, 1)

        if oldbtn != "":
            flag = str(oldbtn)            
        else:

            self.dict_choices = {}

        strwhere = " and classname like '" + self.g_curClassName + "'"

        allstudent = []
        lstrecord = []
        query = QSqlQuery(self.db)        
        query.exec_("select stusn from tmprecord where 1=1 " + strwhere) 
        while(query.next()):
            lstrecord.append(query.value(0))
        # print(lstrecord, 'record', "select stusn from student where stusn not in " + str(tuple(lstrecord)))

        query.exec_("select stusn from student where stusn not in " + str(tuple(lstrecord)) + strwhere)
        while(query.next()):
            allstudent.append(query.value(0))

        if usernum == "":
            nums = int(self.choicenum_text.currentText())
        else:
            nums = usernum
        if nums >= len(allstudent):
            query.exec_("delete from tmprecord where 1=1 " + strwhere) #delete tmp date no today            
            allstudent = []
            query.exec_("select stusn from student where 1=1 " + strwhere)
            while(query.next()):
                allstudent.append(query.value(0))
        
        if oldbtn == "":
            random.seed()
            lstchoices = random.sample(allstudent, nums)
            for ibtn in lstchoices:
                self.dict_choices[ibtn] = "111"

            self.group_animation.start()
            QTimer.singleShot(1200, self.stopmovie)
        else:
            random.seed()
            otherbtn = random.sample(allstudent, 1)[0]
            # self.btngroup.button(int(otherbtn)).setFocus()
            self.dict_choices.pop(oldbtn)
            self.dict_choices[otherbtn] = '111'
            self.stopmovie()
        self.btnSysMenu.setFocus()
Esempio n. 25
0
    def changeTab(self):
        # pass
        curtab = self.tabWidget.currentIndex()
        # print(curtab, "-")
        if curtab == 1:  ## when click the second tab page ,then pass.
            return
            
        # cur = conn.cursor()
        query = QSqlQuery(self.db)

        ## if current classname is null, then set current tabpage display the first class of classtable
        if self.g_curClassName == "":
            ret = query.exec_("select classname from classtable")
            query.next()
            self.g_curClassName = query.value(0)
            
        self.tabWidget.setTabText(0, self.g_curClassName)
        # print(1)
        strwhere = " and classname like '" + self.g_curClassName + "' ORDER BY stusn"

        self.g_curbtn = ""
        self.dict_choices = {}
        self.studentSnlst = []

        ## clearn the question data of temp record .
        ret= query.exec_("delete from tmprecord where 1=1")
        ret = query.exec_("select stusn, stuname from student where 1=1 " + strwhere)

        ## now update the global data "self.btngroup"
        for indx in range(0, 56):
            self.btngroup.button(indx+1).setText("")
            self.btngroup.button(indx+1).setMyarg(None)       
            self.btngroup.button(indx+1).setStyleSheet(stylesheetstr_old)
            self.btngroup.button(indx+1).setIcon(QIcon())
            self.btngroup.button(indx+1).setEnabled(False)
            self.studentSnlst.append([indx+1,])

        inum = 0
        while (query.next()): 
            inum += 1            
            self.btngroup.button(inum).setText(query.value(1))
            self.btngroup.button(inum).setMyarg(query.value(0))       
            self.btngroup.button(inum).setStyleSheet(stylesheetstr_old)
            self.btngroup.button(inum).setIcon(QIcon())
            self.btngroup.button(inum).setEnabled(True)

        # print(inum, len(self.btngroup.buttons()))        

        self.group_animation = groupAnimation(self.studentSnlst, self.btngroup)
Esempio n. 26
0
 def getLastGroupParticipantId(self):
     """Get the id of the most recently added GroupParticipant"""
     try:
         query = QSqlQuery(self.conn)
         query.exec_("SELECT MAX(id) FROM groupparticipants")
         if query.isActive() == False:
             print query.lastError().text()
             return query.lastError().text()
         query.next()
         participantId = str(query.value(0).toString())
         return "g" + participantId
     except Exception, e:
         # TODO: log this instead of printing to console
         print "getLastGroupParticipantId FAILED\n\tquery: {0}\
             \n\terror: {1}".format(query.lastQuery(), e)
Esempio n. 27
0
 def getLastEntryId(self):
     """Get the id of the most recently added Entry"""
     try:
         query = QSqlQuery(self.conn)
         query.prepare("SELECT MAX(id) FROM entries")
         query.exec_()
         if query.isActive() == False:
             print query.lastError().text()
             return query.lastError().text()
         query.next()
         entryId = str(query.value(0).toString())
         return entryId
     except Exception, e:
         # TODO: log this instead of printing to console
         print "getLastEntryId FAILED\n\tquery: {0}\n\terror: {1}".format(query.lastQuery(), e)
Esempio n. 28
0
    def make_descobjet_dict(self):
        query = QSqlQuery(self.db)
        query.exec_("SELECT * FROM DescObjet")
        objet_dict = dict()
        knownGroupe = []
        knownEsapce = []

        while query.next():
            nom = str(query.record().value(0).toString())
            libelle = unicode(query.record().value(1).toString(), "utf-8")
            type_objet = str(query.record().value(2).toString())
            groupe = str(query.record().value(3).toString())
            espace = str(query.record().value(4).toString())

            if not groupe in knownGroupe:
                objet_dict[groupe] = dict()
                knownGroupe.append(groupe)
            if not espace in knownEsapce:
                objet_dict[groupe][espace] = dict()
                knownEsapce.append(espace)

            objet_dict[groupe][espace][libelle] = dict()
            objet_dict[groupe][espace][libelle]["nom"] = nom
            objet_dict[groupe][espace][libelle]["type"] = type_objet

        return objet_dict
 def zoom_to_record(self):
     """
     Zoom map to extent of street (comprising of multiple esu's)
     """
     tbl_idx = self.table_view.selectedIndexes()
     if tbl_idx:
         source_idx = self.proxy.mapToSource(tbl_idx[0])
         usrn = source_idx.data()
         # Query db for ESU's which make up the street
         if usrn and usrn != 0:
             query_str = "SELECT esu_id FROM lnkESU_STREET WHERE usrn = %s AND currency_flag = 0;" % usrn
             query = QSqlQuery(query_str, self.db)
             # Build query string
             q_string = ""
             while query.next():
                 q_string += '"esu_id" = %s OR ' % str(query.value(0))
             q_string = q_string[:-3]
             # Get ref to ESU layer
             esu_layer = QgsMapLayerRegistry.instance().mapLayersByName(
                 'ESU Graphic')[0]
             # Select ESU's + get extent
             feats = esu_layer.getFeatures(
                 QgsFeatureRequest().setFilterExpression(q_string))
             feat_ids = []
             for feature in feats:
                 f_id = feature.id()
                 feat_ids.append(f_id)
             esu_layer.setSelectedFeatures(feat_ids)
             esu_bbox = esu_layer.boundingBoxOfSelected()
             # Set new extent
             esu_bbox.scale(1.1)  # Zoom out slightly for context
             self.parent.iface.mapCanvas().setExtent(esu_bbox)
             self.parent.iface.mapCanvas().refresh()
             # Close connection to db and goto_record
             self.goto_record(close=False)
 def populate_comboboxes(self):
     """
     Populate comboboxes from db and add blank 0 index
     """
     ui_s = self.filter_dlg.ui
     query_lst = [("""SELECT name FROM tlkpTOWN
                      ORDER BY name DESC""", ui_s.townComboBox),
                  ("""SELECT state_desc FROM tlkpSTREET_STATE
                      ORDER BY state_desc DESC""", ui_s.stateComboBox),
                  ("""SELECT name FROM tlkpLOCALITY
                      ORDER BY name DESC""", ui_s.localityComboBox),
                  ("""SELECT description FROM tlkpSTREET_REF_TYPE
                      ORDER BY description DESC""", ui_s.recordTypeComboBox)
                  ]
     for query in query_lst:
         sql = query[0]
         combo = query[1]
         combo.clear()
         query = QSqlQuery(sql)
         while query.next():
             value = str(query.value(0))
             combo.insertItem(0, value)
         combo.insertItem(0, "")
         combo.setCurrentIndex(0)
         combo.setSizeAdjustPolicy(QComboBox.AdjustToContents)
Esempio n. 31
0
    def getStructureDict(self):
        try:
            self.checkAndOpenDb()
        except:
            return dict()
        classDict = dict()
        sql = self.gen.getStructure(self.getDatabaseVersion())        
        query = QSqlQuery(sql, self.db)
        while query.next():
            className = str(query.value(0))
            classSql = str(query.value(1))
            if className.split('_')[0] == 'complexos' or className.split('_')[-1] in ['p','l','a']:
                if className not in classDict.keys():
                    classDict[className]=dict()
                classSql = classSql.split(className)[1]
                sqlList = classSql.replace('(','').replace(')','').replace('\"','').replace('\'','').split(',')
                for s in sqlList:
                     fieldName = str(s.strip().split(' ')[0])
                     classDict[className][fieldName]=fieldName

                if 'GEOMETRY' in classDict[className].keys():
                    classDict[className]['GEOMETRY'] = 'geom'
                if 'OGC_FID' in classDict[className].keys():
                    classDict[className]['OGC_FID'] = 'id'

        return classDict
Esempio n. 32
0
    def list_data(self, name="", type="", limit="", filter=""):
        data_list = []

        if name == "":
            return ""
        query = QSqlQuery(self.db)

        if limit != "":
           limit = " LIMIT " + limit

        if filter != "":
            try:
                filter_split = filter.split('=')
                filter = 'AND data LIKE "%{0}: {1}%"'.format(filter_split[0], filter_split[1])
            except:
                data_list.append("filter: BAD FILTER")
                filter = ""

        if type != "":
            query.exec_("SELECT * FROM DDS WHERE name = \"{0}\""
                        "AND type LIKE \"{1}%\"".format(name, type) + filter + limit)
        else:
            query.exec_("SELECT * FROM DDS WHERE name = \"{0}\"".format(name) + filter + limit)
        print query.lastQuery()

        while query.next():
            type = str(query.value(2).toString())
            data = str(query.value(3).toString())
            data_list.append("type: " + type + '\n' + data)
        return data_list
Esempio n. 33
0
 def isComplexClass(self, className):
     #getting all complex tables
     query = QSqlQuery(self.gen.getComplexTablesFromDatabase(), self.db)
     while query.next():
         if query.value(0) == className:
             return True
     return False
Esempio n. 34
0
    def getStructureDict(self):
        try:
            self.checkAndOpenDb()
        except:
            return dict()
        classDict = dict()
        sql = self.gen.getStructure(self.getDatabaseVersion())
        query = QSqlQuery(sql, self.db)
        while query.next():
            className = str(query.value(0))
            classSql = str(query.value(1))
            if className.split('_')[0] == 'complexos' or className.split(
                    '_')[-1] in ['p', 'l', 'a']:
                if className not in classDict.keys():
                    classDict[className] = dict()
                classSql = classSql.split(className)[1]
                sqlList = classSql.replace('(', '').replace(')', '').replace(
                    '\"', '').replace('\'', '').split(',')
                for s in sqlList:
                    fieldName = str(s.strip().split(' ')[0])
                    classDict[className][fieldName] = fieldName

                if 'GEOMETRY' in classDict[className].keys():
                    classDict[className]['GEOMETRY'] = 'geom'
                if 'OGC_FID' in classDict[className].keys():
                    classDict[className]['OGC_FID'] = 'id'

        return classDict
Esempio n. 35
0
    def makeValueRelationDict(self, valueDict):
        ret = dict()

        codes = valueDict['FilterExpression'].replace('code in (', '').replace(')','').split(',')
        keyColumn = valueDict['Key']
        valueColumn = valueDict['Value']
        table = valueDict['Layer'][:-17]#removing the date-time characters
        
        uri = QgsDataSourceURI(self.currLayer.dataProvider().dataSourceUri())
        if uri.host() == '':
            db = QSqlDatabase('QSQLITE')
            db.setDatabaseName(uri.database())
        else:
            db = QSqlDatabase('QPSQL')
            db.setHostName(uri.host())
            db.setPort(int(uri.port()))
            db.setDatabaseName(uri.database())
            db.setUserName(uri.username())
            db.setPassword(uri.password())
        
        if not db.open():
            db.close()
            return ret

        in_clause = ','.join(map(str, codes))
        query = QSqlQuery('select code, code_name from dominios.%s where code in (%s)' % (table, in_clause), db)
        while query.next():
            code = str(query.value(0))
            code_name = query.value(1)
            ret[code_name] = code
            
        db.close()
                
        return ret
Esempio n. 36
0
    def populate_combos(self):
        """
        Populate all comboboxes from db lookup tables. Combos sorted alphabetically with a 0 (default None) value at
        the top.
        """
        for query_str, combo in self.query_lst.iteritems():
            query = QSqlQuery(query_str)
            all_items = {}
            while query.next():
                text = str(query.value(0))
                value = str(query.value(1))
                all_items[text] = value
            if '0' in all_items.values():
                sorted_items = sorted(all_items.iteritems(),
                                      key=operator.itemgetter(0),
                                      reverse=True)
            else:
                # The only lookup without a 0 as 'None' item is the street ref type, also this is sorted on the type
                sorted_items = sorted(all_items.iteritems(),
                                      key=operator.itemgetter(1),
                                      reverse=True)
            default_none = None

            for item in sorted_items:
                text = item[0]
                data = item[1]
                if int(data) != 0:
                    combo.insertItem(0, text, userData=data)
                else:
                    default_none = item
            if default_none:
                combo.insertItem(0, default_none[0], userData=default_none[1])
            combo.setCurrentIndex(0)
Esempio n. 37
0
    def getDbsFromServer(self, name):
        """
        Gets server databases
        name: server name
        """
        gen = self.factory.createSqlGenerator(False)

        (host, port, user, password) = self.getServerConfiguration(name)
        database = 'postgres'

        db = self.getPostGISDatabaseWithParams(database, host, port, user,
                                               password)
        if not db.open():
            QgsMessageLog.logMessage(db.lastError().text(), "DSG Tools Plugin",
                                     QgsMessageLog.CRITICAL)
            QMessageBox.critical(
                self.iface.mainWindow(), self.tr('Critical'),
                self.tr('A problem occurred! Check log for details.'))

        query = QSqlQuery(gen.getDatabasesFromServer(), db)
        if not query.isActive():
            QMessageBox.critical(
                self.iface.mainWindow(), self.tr('Critical'),
                self.tr("Problem executing query: ") +
                query.lastError().text())

        dbList = []
        while query.next():
            dbList.append(query.value(0))
        return self.browseServer(dbList, host, port, user, password)
Esempio n. 38
0
 def validate(self, usrn, final_esu_selection=None):
     """
     Validates that all ESU's are only attached to a single type-1 or type-2 usrn
     :param usrn: USRN
     :param final_esu_selection: list of esu's
     :return: true if esu links are valid
     """
     record_type_combo = self.street_browser.ui.recordTypeComboBox
     if final_esu_selection:
         esu_list = final_esu_selection
     else:
         esu_list = self.get_esu_selection(usrn)
     # only need to check type 1 and 2 records
     record_type = int(
         record_type_combo.itemData(record_type_combo.currentIndex()))
     if record_type == 1 or record_type == 2:  # Type 1 or Type 2 hardcoded!
         bad_esu = []
         for esu_key in esu_list:
             sql = """SELECT tblSTREET.usrn, tblSTREET.street_ref_type FROM lnkESU_STREET
                 INNER JOIN tblSTREET ON lnkESU_STREET.usrn_version_no = tblSTREET.version_no
                 AND lnkESU_STREET.usrn = tblSTREET.usrn WHERE lnkESU_STREET.esu_id = %s
                 AND lnkESU_STREET.currency_flag = 0 AND tblSTREET.currency_flag = 0 AND tblSTREET.usrn != %s""" \
                 % (esu_key, usrn)
             query = QSqlQuery(sql, self.db)
             while query.next():
                 typee = int(query.value(1))
                 if typee == 1 or typee == 2:
                     bad_esu.append(esu_key)
         if bad_esu:
             # esu's found
             return False
         else:
             return True
     else:
         return True
Esempio n. 39
0
    def saveComboValues(self, combobox, text):
        """
        Save the value of the combo box into the form settings values.
        Only saves new values.
        """
        comboitems = [combobox.itemText(i) for i in range(combobox.count())]
        name = combobox.objectName()
        query = QSqlQuery()
        query.prepare("SELECT value FROM ComboBoxItems WHERE control = :contorl")
        query.bindValue(":control", name)
        query.exec_()
        log("LAST ERROR")
        log(query.lastError().text())
        items = []
        while query.next():
            value = query.value(0).toString()
            if not value.isEmpty():
                items.append(str(value))

        if not text in comboitems and not text in items:
            query = QSqlQuery()
            query.prepare("INSERT INTO ComboBoxItems (control, value)" "VALUES (:control,:value)")
            query.bindValue(":control", name)
            query.bindValue(":value", text)
            query.exec_()
            log("LAST ERROR FOR INSERT")
            log(query.lastError().text())
Esempio n. 40
0
def prepareLinkFromWordInDB(word, html, exclude_uuid):
    try:
        html = html.split("<!--StartFragment-->")[1].split(
            "<!--EndFragment-->")[0]
    except:
        html = word
    str = stem_str(word)
    remote_sql = QSqlQuery(get_local_connection())
    remote_sql.prepare(count_word_in_db_query)
    # remote_sql.prepare(search_word_in_db_query)
    remote_sql.bindValue(":word", str)
    remote_sql.bindValue(":exclude_uuid", exclude_uuid)
    if remote_sql.exec_():
        if remote_sql.next():
            num = remote_sql.value(0)
            if num == 0:
                return None
            elif num == 1:
                return {
                    'link':
                    "<a href='termin##" + remote_sql.value(1) +
                    "##status##1##word##" + word + "##inithtml##" + html +
                    "' style='color:green'>" + html + "</a>"
                }
            elif num > 1:
                return {
                    'link':
                    "<a href='termin##" + str + "##status##2##word##" + word +
                    "##inithtml##" + html + "' style='color:red'>" + html +
                    "</a>"
                }
        else:
            return None
    else:
        return None
Esempio n. 41
0
 def getAllEntriesInDiscipline(self, discipline):
     """Returns all the Entries for the given discipline"""
     entryList = []
     try:
         query = QSqlQuery(self.conn)
         query.prepare("SELECT participant_id, teacher_id, discipline, level, class_number, \
             class_name, instrument, years_of_instruction, scheduling_requirements, id FROM entries \
             WHERE discipline=:discipline")
         query.bindValue(":discipline", discipline)
         query.exec_()
         if query.isActive() == False:
             print query.lastError().text()
             return query.lastError().text()
         while query.next() == True:
             participantID = str(query.value(0).toString())
             teacherID = str(query.value(1).toString())
             discipline = str(query.value(2).toString())
             level = str(query.value(3).toString())
             classNumber = str(query.value(4).toString())
             className = str(query.value(5).toString())
             instrument = str(query.value(6).toString())
             yearsOfInstruction = str(query.value(7).toString())
             schedulingRequirements = str(query.value(8).toString())
             entryId = str(query.value(9).toString())
             # get associated selections
             selections = self.getSelectionsFromEntryId(entryId)
             ee = Entry(participantID, teacherID, discipline, level, yearsOfInstruction, classNumber, className, instrument, selections, schedulingRequirements)
             entryList.append(ee)
         return entryList
     except Exception, e:
         # TODO: log this instead of printing to console
         print "getAllEntriesInDiscipline FAILED\n\tquery: {0}\n\terror: {1}".format(query.lastQuery(), e)
         return e
Esempio n. 42
0
 def getGeomColumnTupleList(self, showViews=False):
     """
     list in the format [(table_schema, table_name, geometryColumn, geometryType, tableType)]
     centroids are hidden by default
     """
     self.checkAndOpenDb()
     edgvVersion = self.getDatabaseVersion()
     sql = self.gen.getGeomColumnTupleList(edgvVersion)
     query = QSqlQuery(sql, self.db)
     if not query.isActive():
         raise Exception(
             self.tr("Problem getting geom tuple list: ") +
             query.lastError().text())
     geomList = []
     while query.next():
         if edgvVersion in ['2.1.3', 'FTer_2a_Ed']:
             geomList.append((query.value(0).split('_')[0],
                              '_'.join(query.value(0).split('_')[1::]),
                              query.value(1), query.value(2), 'BASE TABLE'))
         else:
             geomList.append(
                 (query.value(0).split('_')[0],
                  '_'.join(query.value(0).split('_')[1::]), query.value(1),
                  self.getResolvedGeomType(int(query.value(2))),
                  'BASE TABLE'))
     return geomList
Esempio n. 43
0
 def getGeomDict(self, getCentroids=False):
     '''
     returns a dict like this:
     {'tablePerspective' : {
         'layerName' :
     '''
     self.checkAndOpenDb()
     sql = self.gen.getGeomTablesFromGeometryColumns()
     query = QSqlQuery(sql, self.db)
     if not query.isActive():
         raise Exception(
             self.tr("Problem getting geom tables from db: ") +
             query.lastError().text())
     geomDict = dict()
     geomDict['primitivePerspective'] = self.getGeomTypeDict()
     geomDict['tablePerspective'] = dict()
     while query.next():
         isCentroid = False
         srid = query.value(0)
         geometryType = query.value(2)
         tableName = query.value(3)
         tableSchema = tableName.split('_')[0]
         geometryColumn = query.value(1)
         layerName = '_'.join(tableName.split('_')[1::])
         if layerName not in geomDict['tablePerspective'].keys():
             geomDict['tablePerspective'][layerName] = dict()
             geomDict['tablePerspective'][layerName]['schema'] = tableSchema
             geomDict['tablePerspective'][layerName]['srid'] = str(srid)
             geomDict['tablePerspective'][layerName][
                 'geometryColumn'] = geometryColumn
             geomDict['tablePerspective'][layerName][
                 'geometryType'] = geometryType
             geomDict['tablePerspective'][layerName][
                 'tableName'] = tableName
     return geomDict
Esempio n. 44
0
    def __init__( self, parent = None ):
        super( ReciboDelegate, self ).__init__( parent )

        query = QSqlQuery( """
            SELECT
                idtipomovimiento,
                CONCAT(descripcion, ' ' , moneda) as tipopago,
                idtipomoneda,
                m.simbolo
                FROM tiposmoneda m
            JOIN tiposmovimientocaja p
            ;
        """ )
        self.filtrados = []
        query.exec_()
        while query.next():
            self.filtrados.append( query.value( 1 ).toString() )

        self.abonosmodel = QSqlQueryModel()
        self.abonosmodel.setQuery( query )
        self.proxymodel = QSortFilterProxyModel()
        self.proxymodel.setSourceModel( self.abonosmodel )
        self.proxymodel.setFilterKeyColumn( 1 )
        self.completer = QCompleter()
        self.completer.setModel( self.proxymodel )

        self.completer.setCompletionColumn( 1 )
        self.completer.setCaseSensitivity( Qt.CaseInsensitive )
        self.completer.setCompletionMode( QCompleter.UnfilteredPopupCompletion )

        query = QSqlQuery( """
            SELECT idbanco,descripcion FROM bancos;
            """ )
        self.bancosmodel = QSqlQueryModel()
        self.bancosmodel.setQuery( query )
Esempio n. 45
0
    def getStructureDict(self):
        '''
        Gets database structure according to the edgv version
        '''
        self.checkAndOpenDb()
        classDict = dict()
        sql = self.gen.getStructure(self.getDatabaseVersion())
        query = QSqlQuery(sql, self.db)
        if not query.isActive():
            self.db.close()
            raise Exception(
                self.tr("Problem getting database structure: ") +
                query.lastError().text())
        while query.next():
            className = str(query.value(0))
            classSql = str(query.value(1))
            if className.split('_')[0] == 'complexos' or className.split(
                    '_')[-1] in ['p', 'l', 'a']:
                if className not in classDict.keys():
                    classDict[className] = dict()
                classSql = classSql.split(className)[1]
                sqlList = classSql.replace('(', '').replace(')', '').replace(
                    '\"', '').replace('\'', '').split(',')
                for s in sqlList:
                    fieldName = str(s.strip().split(' ')[0])
                    classDict[className][fieldName] = fieldName

                if 'GEOMETRY' in classDict[className].keys():
                    classDict[className]['GEOMETRY'] = 'geom'
                if 'geometry' in classDict[className].keys():
                    classDict[className]['geometry'] = 'geom'
                if 'OGC_FID' in classDict[className].keys():
                    classDict[className]['OGC_FID'] = 'id'

        return classDict
Esempio n. 46
0
 def getGeomDict(self, getCentroids = False):
     '''
     returns a dict like this:
     {'tablePerspective' : {
         'layerName' :
     '''
     self.checkAndOpenDb()
     edgvVersion = self.getDatabaseVersion()
     sql = self.gen.getGeomTablesFromGeometryColumns(edgvVersion)
     query = QSqlQuery(sql, self.db)
     if not query.isActive():
         raise Exception(self.tr("Problem getting geom tables from db: ")+query.lastError().text())
     geomDict = dict()
     geomDict['primitivePerspective'] = self.getGeomTypeDict()
     geomDict['tablePerspective'] = dict()
     while query.next():
         isCentroid = False
         srid = query.value(0)
         if edgvVersion in ('2.1.3','FTer_2a_Ed'):
             geometryType = query.value(2)
         else:
             geometryType = self.getResolvedGeomType(query.value(2))
         tableName = query.value(3)
         tableSchema = tableName.split('_')[0]
         geometryColumn = query.value(1)
         layerName = '_'.join(tableName.split('_')[1::])
         if layerName not in geomDict['tablePerspective'].keys():
             geomDict['tablePerspective'][layerName] = dict()
             geomDict['tablePerspective'][layerName]['schema'] = tableSchema
             geomDict['tablePerspective'][layerName]['srid'] = str(srid)
             geomDict['tablePerspective'][layerName]['geometryColumn'] = geometryColumn
             geomDict['tablePerspective'][layerName]['geometryType'] = geometryType
             geomDict['tablePerspective'][layerName]['tableName'] = tableName
     return geomDict
Esempio n. 47
0
 def deleteRecord(self):
     index = self.view.currentIndex()
     if not index.isValid():
         return
     
     record = self.model.record(index.row())
     id = record.value(ID).toInt()[0]
     table = self.model.tableName()
     query = QSqlQuery()
     if table == "deps":
         query.exec_(QString("SELECT COUNT(*) FROM employee "
                             "WHERE deo_id = %1").arg(id))
     elif table == "cities":
         query.exec_(QString("SELECT COUNT(*) FROM employee "
                             "WHERE city_id = %1").arg(id))
     count = 0
     if query.next():
         count = query.value(0).toInt()[0]
     if count:
         QMessageBox.information(self,
                 QString("Delete %1").arg(table),
                 (QString("Cannot delete %1<br>"
                          "from the %2 table because it is used by "
                          "%3 records")
                 .arg(record.value(NAME).toString())
                 .arg(table).arg(count)))
         
         return
     self.model.removeRow(index.row())
     self.model.submitAll()
Esempio n. 48
0
    def getStructureDict(self):
        '''
        Gets database structure according to the edgv version
        '''
        self.checkAndOpenDb()
        classDict = dict()
        sql = self.gen.getStructure(self.getDatabaseVersion())        
        query = QSqlQuery(sql, self.db)
        if not query.isActive():
            self.db.close()
            raise Exception(self.tr("Problem getting database structure: ")+query.lastError().text())
        while query.next():
            className = str(query.value(0))
            classSql = str(query.value(1))
            if className.split('_')[0] == 'complexos' or className.split('_')[-1] in ['p','l','a']:
                if className not in classDict.keys():
                    classDict[className]=dict()
                classSql = classSql.split(className)[1]
                sqlList = classSql.replace('(','').replace(')','').replace('\"','').replace('\'','').split(',')
                for s in sqlList:
                     fieldName = str(s.strip().split(' ')[0])
                     classDict[className][fieldName]=fieldName

                if 'GEOMETRY' in classDict[className].keys():
                    classDict[className]['GEOMETRY'] = 'geom'
                if 'geometry' in classDict[className].keys():
                    classDict[className]['geometry'] = 'geom'
                if 'OGC_FID' in classDict[className].keys():
                    classDict[className]['OGC_FID'] = 'id'

        return classDict
Esempio n. 49
0
    def DevolverVeiculo(codigoAlug, aluguel):
        conn = ConexaoSQL
        db = conn.getConexao()
        db.open()



        select = "SELECT Veiculo.CodigoVeic FROM Aluguel"\
                      " INNER JOIN Veiculo ON Aluguel.CodigoVeic = Veiculo.CodigoVeic"\
                      " WHERE Aluguel.CodigoAlug = "+codigoAlug

        query = QSqlQuery(select)

        while query.next():
            codigoVeic = str(query.value(0))

        sql = "UPDATE Veiculo SET Alugado = 'Não' WHERE CodigoVeic = "+codigoVeic
        query.prepare(sql)
        query.exec_()
        db.commit()


        sql = "UPDATE Aluguel SET DataDevolucao = '"+aluguel.DataDevolucao+"', ValorMulta = '"+aluguel.ValorMulta\
                      +"', KmSaida = '"+aluguel.KmSaida\
                      +"' WHERE CodigoAlug = "+codigoAlug
        print(sql)
        query.prepare(sql)
        print
        query.exec_()
        db.commit()
Esempio n. 50
0
    def fill_fields(self):

        search_word = self.filterEdit.text()
        if search_word.strip() != '':
            search_str = stem_str(search_word)
        else:
            search_str = ''

        query = QSqlQuery(self.local_cn)
        LIMIT = 100
        OFFSET = 0
        query.prepare(show_termins_in_link_selector_query)
        query.bindValue(':search_str', search_str + '%')
        query.bindValue(':linked', 1)
        query.bindValue(':limit', LIMIT.__str__())
        query.bindValue(':offset', OFFSET.__str__())
        if query.exec_():
            self.root.takeChildren()
            while query.next():
                c = QTreeWidgetItem()
                c.setText(0, query.value(0))  # Заглавное слово
                c.setData(1, 0, query.value(1))  # uuid
                self.root.addChild(c)
        else:
            print(query.lastError().text())
            print("not exec")
        self.treeWidget.scrollToTop()
Esempio n. 51
0
 def list_names(self):
     query = QSqlQuery(self.db)
     query.exec_("SELECT * FROM DescObjet")
     names_list = []
     while query.next():
         name = str(query.record().value(0).toString())
         names_list.append(name)
     return names_list
Esempio n. 52
0
 def countElements(self, layers):
     try:
         self.checkAndOpenDb()
     except:
         return []
     listaQuantidades = []
     for layer in layers:
         (table,schema)=self.getTableSchema(layer)
         if layer.split('_')[-1] in ['p','l','a'] or schema == 'complexos':
             sql = self.gen.getElementCountFromLayer(layer)
             query = QSqlQuery(sql,self.db)
             query.next()
             number = query.value(0)
             if not query.exec_(sql):
                 QgsMessageLog.logMessage(self.tr("Problem counting elements: ")+query.lastError().text(), "DSG Tools Plugin", QgsMessageLog.CRITICAL)
             listaQuantidades.append([layer, number])
     return listaQuantidades     
Esempio n. 53
0
 def showFeilds_mysql(self):
     defaultDB = QSqlDatabase.database()
     query = QSqlQuery("desc {}".format(
         self.listWidgetTables.currentItem().text()))
     qe = query.exec_()
     if qe:
         self.listWidgetFeilds.clear()
         while query.next():
             self.listWidgetFeilds.addItem(query.value(0).toString())
Esempio n. 54
0
 def getTableSchemaFromDb(self, table):
     self.checkAndOpenDb()
     sql = self.gen.getFullTablesName(table)
     query = QSqlQuery(sql, self.db)
     if not query.isActive():
         raise Exception(
             self.tr("Problem getting full table name: ") +
             query.lastError().text())
     while query.next():
         return query.value(0).split('_')[0]
Esempio n. 55
0
 def list_name_libelle_type(self):
     query = QSqlQuery(self.db)
     query.exec_("SELECT * FROM DescObjet")
     names_list = []
     while query.next():
         name = str(query.record().value(0).toString())
         libelle = str(query.record().value(1).toString())
         type_objet = str(query.record().value(2).toString())
         names_list.append('name: "{0}"\nlibelle: "{1}"\ntypeObjet: "{2}"'.format(name, libelle, type_objet))
     return names_list
Esempio n. 56
0
    def loadAssociatedFeatures(self, complex):
        try:
            self.checkAndOpenDb()
        except:
            return dict()
        associatedDict = dict()
        #query to get the possible links to the selected complex in the combobox
        complexName = complex.replace('complexos_', '')
        sql = self.gen.getComplexLinks(complexName)
        query = QSqlQuery(sql, self.db)
        while query.next():
            #setting the variables
            complex_schema = query.value(0)
            complex = query.value(1)
            aggregated_schema = query.value(2)
            aggregated_class = query.value(3)
            column_name = query.value(4)

            #query to obtain the created complexes
            sql = self.gen.getComplexData(complex_schema, complex)
            complexQuery = QSqlQuery(sql, self.db)
            while complexQuery.next():
                complex_uuid = complexQuery.value(0)
                name = complexQuery.value(1)

                if not (complex_uuid and name):
                    continue

                associatedDict = self.utils.buildNestedDict(
                    associatedDict, [name, complex_uuid, aggregated_class], [])

                #query to obtain the id of the associated feature
                sql = self.gen.getAssociatedFeaturesData(
                    aggregated_schema, aggregated_class, column_name,
                    complex_uuid)
                associatedQuery = QSqlQuery(sql, self.db)

                while associatedQuery.next():
                    ogc_fid = associatedQuery.value(0)
                    associatedDict = self.utils.buildNestedDict(
                        associatedDict, [name, complex_uuid, aggregated_class],
                        [ogc_fid])
        return associatedDict
Esempio n. 57
0
 def getDatabaseVersion(self):
     try:
         self.checkAndOpenDb()
     except:
         return '-1'
     sqlVersion = self.gen.getEDGVVersion()
     queryVersion = QSqlQuery(sqlVersion, self.db)
     while queryVersion.next():
         version = queryVersion.value(0)
     return version
Esempio n. 58
0
 def __init__(self, parent=None, filename=None):
     self.installThreads = {}
     self.processes = set()
     if filename is None:
         filename = DataModel.defaultDbFile
     self.db = QSqlDatabase.addDatabase('QSQLITE')
     print >> sys.stderr, "Open database at %s" % filename
     self.db.setDatabaseName(filename)
     self.db.open()
     query = QSqlQuery(
         'SELECT COUNT(*) '
         'FROM sqlite_master '
         'WHERE type="table" AND tbl_name="models"', self.db)
     if not query.next() or query.value(0).toInt()[0] < 1:
         # Create new table.
         print >> sys.stderr, "Table not find, create the table"
         query = QSqlQuery(
             'CREATE TABLE models ('
             'ID INTEGER PRIMARY KEY AUTOINCREMENT, '
             'name TEXT, '
             'status TEXT, '
             'srclang TEXT, '
             'trglang TEXT, '
             'date DATE, '
             'path TEXT, '
             'mosesini TEXT, '
             'origin TEXT, '
             'originMode TEXT, '
             'deleted TEXT)', self.db)
         if query.next():
             print >> sys.stderr, query.value(0).toString()
     # TODO: shoudn't design the deletion checking like this
     # Change all deleted models into not deleted in case it failed last
     # time.
     query = QSqlQuery(
         'UPDATE models SET deleted="False" WHERE deleted="True"', self.db)
     query = QSqlQuery('UPDATE models SET status="READY" WHERE status="ON"',
                       self.db)
     super(DataModel, self).__init__(parent, self.db)
     self.setTable("models")
     self.select()
     self.setEditStrategy(QSqlTableModel.OnFieldChange)
Esempio n. 59
0
    def login(self, username, password):
        sql = 'SELECT username, password FROM users WHERE username=:username AND password=:password'
        q = QSqlQuery()
        q.prepare(sql)
        q.bindValue(':username', username)
        q.bindValue(':password', password)

        q.exec_()
        if q.next():
            print "Sesion correcta para %s" % username
            return True
Esempio n. 60
0
    def get_descobjet_list(self):
        query = QSqlQuery(self.db)
        if not query.exec_("SELECT * FROM DescObjet"):
            logging.error("%s", query.lastError().text())

        descobjet_list = []
        while query.next():
            dds_data = unicode(query.record().value(0).toString())
            descobjet_list.append(dds_data)

        return descobjet_list