Beispiel #1
0
 def display_card_table(self, run_filter=True):
     self.card_model = CardModel(self.component_manager)
     self.card_model.setTable("cards")
     headers = {
         QUESTION: _("Question"),
         ANSWER: _("Answer"),
         TAGS: _("Tags"),
         GRADE: _("Grade"),
         NEXT_REP: _("Next rep"),
         LAST_REP: _("Last rep"),
         EASINESS: _("Easiness"),
         ACQ_REPS: _("Learning\nreps"),
         RET_REPS: _("Review\nreps"),
         LAPSES: _("Lapses"),
         CREATION_TIME: _("Created"),
         MODIFICATION_TIME: _("Modified")
     }
     for key, value in headers.iteritems():
         self.card_model.setHeaderData(key, QtCore.Qt.Horizontal,
                                       QtCore.QVariant(value))
     self.table.setModel(self.card_model)
     self.table.horizontalHeader().sectionClicked.connect(\
         self.horizontal_header_section_clicked)
     table_settings = self.config()["browse_cards_dlg_table_settings"]
     if table_settings:
         self.table.horizontalHeader().restoreState(table_settings)
     self.table.horizontalHeader().setMovable(True)
     self.table.setItemDelegateForColumn(\
         QUESTION, QA_Delegate(self.component_manager, QUESTION, self))
     self.table.setItemDelegateForColumn(\
         ANSWER, QA_Delegate(self.component_manager, ANSWER, self))
     self.table.setEditTriggers(QtGui.QAbstractItemView.NoEditTriggers)
     # Since this function can get called multiple times, we need to make
     # sure there is only a single connection for the double-click event.
     try:
         self.table.doubleClicked.disconnect(self.menu_edit)
     except TypeError:
         pass
     self.table.doubleClicked.connect(self.menu_edit)
     self.table.verticalHeader().hide()
     query = QtSql.QSqlQuery("select count() from tags")
     query.first()
     self.tag_count = query.value(0).toInt()[0]
     if run_filter:
         self.update_filter()  # Needed after tag rename.
     if self.saved_index:
         # All of the statements below are needed.
         # Qt does not (yet) seem to allow to restore the previous column
         # correctly.
         self.saved_index = self.card_model.index(self.saved_index.row(),
                                                  self.saved_index.column())
         self.table.scrollTo(self.saved_index)
         self.table.scrollTo(self.saved_index,
                             QtGui.QAbstractItemView.PositionAtTop)
         # Restore selection.
         old_selection_mode = self.table.selectionMode()
         self.table.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)
         # Note that there seem to be serious Qt preformance problems with
         # selectRow, so we only do this for a small number of rows.
         if len(self.saved_selection) < 10:
             for index in self.saved_selection:
                 self.table.selectRow(index.row())
         self.table.setSelectionMode(old_selection_mode)
Beispiel #2
0
 def fromDB(tradeID):
     q = QtSql.QSqlQuery("""SELECT * FROM TRADES WHERE TRADE_ID='%s'""" %
                         tradeID)
     while q.next():
         book = q.value(1).toInt()[0]
         trader = str(q.value(2).toString())
         tradeDateTime = q.value(3).toDateTime().toPyDateTime()
         settleDate = q.value(4).toDate().toPyDate()
         instCode = str(q.value(5).toString())
         amount = q.value(6).toDouble()[0]
         price = q.value(7).toDouble()[0]
         collateralized = bool(q.value(8).toInt()[0])
         refTrade = str(q.value(9).toString())
         refYield = q.value(10).toDouble()[0]
         settledBy = str(q.value(11).toString())
         comment = unicode(q.value(12).toPyObject())
         md = q.value(13).toDate()
         maturityDate = md and md.toPyDate() or None
         q = QtSql.QSqlQuery(
             """SELECT SEC_TYPE FROM SECINFO WHERE SEC_CODE='%s'""" %
             instCode)
         while q.next():
             secname = q.value(0).toString()
             if secname == QtCore.QString(u'现金'):
                 obj = CashTrade(book,
                                 trader,
                                 tradeDateTime,
                                 amount,
                                 instCode=instCode,
                                 refTrade=refTrade,
                                 comment=comment,
                                 tradeID=tradeID)
                 return obj
             elif secname == QtCore.QString(u'存款'):
                 obj = DepoTrade(book,
                                 trader,
                                 tradeDateTime,
                                 amount,
                                 refYield,
                                 maturityDate,
                                 dcc='Act/360',
                                 settledBy=settledBy,
                                 comment=comment,
                                 tradeID=tradeID)
                 return obj
             elif secname in [
                     QtCore.QString(u'短期融资券'),
                     QtCore.QString(u'企债')
             ]:
                 obj = BondTrade(book,
                                 trader,
                                 tradeDateTime,
                                 settleDate,
                                 instCode,
                                 amount,
                                 price,
                                 refYield,
                                 maturityDate,
                                 collateralized=collateralized,
                                 refTrade=refTrade,
                                 settledBy=settledBy,
                                 comment=comment,
                                 tradeID=tradeID)
                 return obj
             else:
                 raise NotImplementedError('Unknown trade type')
   return view
	
def addrow():
   print model.rowCount()
   ret = model.insertRows(model.rowCount(), 1)
   print ret
	
def findrow(i):
   delrow = i.row()
	
if __name__ == '__main__':

   app = QtGui.QApplication(sys.argv)
   db = QtSql.QSqlDatabase.addDatabase('QSQLITE')
   db.setDatabaseName('acmbkbiet.db')
   model = QtSql.QSqlTableModel()
   delrow = -1
   initializeModel(model)
	
   view1 = createView("Table Model (View 1)", model)
   view1.clicked.connect(findrow)
	
   dlg = QtGui.QDialog()
   layout = QtGui.QVBoxLayout()
   layout.addWidget(view1)
	
   button = QtGui.QPushButton("Add a row")
   button.clicked.connect(addrow)
   layout.addWidget(button)
	
   btn1 = QtGui.QPushButton("del a row")
    def _slotPushButtonCreateClicked(self):
        if (self.ui.lineEditNewDB.text() == ''):
            box = QMessageBox()
            box.setText(unicode(u"Spécifiez le nom de la base à créer."))
            box.exec_()
        else:
            s = "SELECT count(*) from pg_database\
                WHERE datname = 'tempusaccess_" + self.ui.lineEditNewDB.text(
            ) + "'"
            q = QtSql.QSqlQuery(unicode(s), self.caller.db)
            q.next()
            create = True

            if (int(q.value(0)) > 0):
                ret = QMessageBox.question(
                    self, "TempusAccess",
                    u"La base de données 'tempusaccess_" +
                    self.ui.lineEditNewDB.text() +
                    u"' existe déjà et va être réinitialisée : toutes les données présentes seront écrasées. \n Confirmez-vous cette opération ?",
                    QMessageBox.Ok | QMessageBox.Cancel, QMessageBox.Cancel)
                create = False
            else:
                ret = QMessageBox.Ok

            if (ret == QMessageBox.Ok):
                if (create == True):
                    cmd = [
                        "createdb", "-h",
                        self.caller.db.hostName(), "-U",
                        self.caller.db.userName(), "-p",
                        str(self.caller.db.port()),
                        "tempusaccess_" + self.ui.lineEditNewDB.text()
                    ]
                    rc = execute_external_cmd(cmd)

                self.caller.set_db_connection_dialog.refreshDBList()

                dbstring = "host=" + self.caller.db.hostName(
                ) + " dbname=tempusaccess_" + self.ui.lineEditNewDB.text(
                ) + " port=" + str(self.caller.db.port())
                cmd = [
                    "python", TEMPUSLOADER, "--action", "reset",
                    "--tempusaccess", "--path",
                    self.plugin_dir + "/data/system.zip", "--sep", ";",
                    "--encoding", "UTF8", "-d", dbstring
                ]

                rc = execute_external_cmd(cmd)
                box = QMessageBox()
                box.setModal(True)
                if (rc == 0):
                    self.iface.mapCanvas().refreshMap()
                    box.setText(
                        u"La base a été créée. Vous pouvez maintenant y importer des données."
                    )
                    self.ui.comboBoxDB.setCurrentIndex(
                        self.ui.comboBoxDB.findText(
                            self.ui.lineEditNewDB.text()))
                    self._slotPushButtonLoadClicked()
                else:
                    box.setText(
                        u"Erreur pendant la création de la base.\nPour en savoir plus, ouvrir la console Python de QGIS et relancer la commande."
                    )
                box.exec_()
Beispiel #5
0
 def query(self, stmt):
     if not self._queryExecuter:
         return QtSql.QSqlQuery()
     return self._queryExecuter(stmt)
Beispiel #6
0
def confirmClientPolicyConstraint(widget, eventTypeId, clientId, eventSetDate,
                                  eventDate):
    if not eventTypeId:
        QtGui.QMessageBox.warning(widget, u'Внимание!',
                                  u'Не указан указан тип (цель) события.',
                                  QtGui.QMessageBox.Ok)
        return False
    db = QtGui.qApp.db
    stmt = u'''SELECT rbFinance.code
FROM rbFinance INNER JOIN EventType ON EventType.finance_id = rbFinance.id
WHERE EventType.id = %d AND EventType.deleted = 0''' % eventTypeId
    query = QtSql.QSqlQuery(db.db)
    query.exec_(stmt)

    eventSetDate = eventSetDate if eventSetDate and eventSetDate.isValid(
    ) else QtCore.QDate.currentDate()

    eventDate = eventDate if eventDate and eventDate.isValid(
    ) else eventSetDate

    if query.next():
        record = query.record()
        financeCode = forceString(record.value('code'))
        policyRecordGetter = None

        if u'2' in financeCode.lower():
            policyRecordGetter = getClientCompulsoryPolicy
        elif u'3' in financeCode.lower():
            policyRecordGetter = getClientVoluntaryPolicy

        if policyRecordGetter:
            policyRecord = policyRecordGetter(clientId, eventDate)
            if not policyRecord:
                policyRecord = policyRecordGetter(clientId)
            if policyRecord:
                policyBegDate = forceDate(policyRecord.value('begDate'))
                policyEndDate = forceDate(policyRecord.value('endDate'))
                validPolicy = not policyBegDate.isValid(
                ) or policyBegDate <= eventDate
                validPolicy = validPolicy and (not policyEndDate.isValid()
                                               or policyEndDate >= eventDate)
                if not validPolicy:
                    if not confirmPolicyAvailable(
                            widget,
                            u'Полис пациента не действителен по дате!'):
                        return False

    # i4226: Жесткий контроль ввода событий для пациента,
    # чей полис принадлежит страховой компании с приостановленным обслуживанием
    compPolicyRecord = getClientCompulsoryPolicy(clientId, eventDate)
    volunPolicyRecord = getClientVoluntaryPolicy(clientId, eventDate)

    if compPolicyRecord:
        compulsoryServiceStop = forceBool(
            compPolicyRecord.value('compulsoryServiceStop'))
        compulsoryServiceStopIgnore = forceBool(
            db.translate('EventType', 'id', eventTypeId,
                         'compulsoryServiceStopIgnore'))
    else:
        compulsoryServiceStop = False
        compulsoryServiceStopIgnore = False

    if volunPolicyRecord:
        voluntaryServiceStop = forceBool(
            volunPolicyRecord.value('voluntaryServiceStop'))
        voluntaryServiceStopIgnore = forceBool(
            db.translate('EventType', 'id', eventTypeId,
                         'voluntaryServiceStopIgnore'))
    else:
        voluntaryServiceStop = False
        voluntaryServiceStopIgnore = False

    if (compulsoryServiceStop and not compulsoryServiceStopIgnore) \
            or (voluntaryServiceStop and not voluntaryServiceStopIgnore):
        if compulsoryServiceStop:
            policyType = u'ОМС '
        elif voluntaryServiceStop:
            policyType = u'ДМС '
        else:
            policyType = u''
        message = u"По данной СМО приостановлено обслуживание {policyType}полисов.\n" \
                  u"Это может привести к затруднениям оплаты обращения.".format(policyType=policyType)
        # return confirmPolicyAvailable(widget, message)
        QtGui.QMessageBox.critical(widget, u'Внимание!', message,
                                   QtGui.QMessageBox.Ok)
        return False
    return True
    def search_positions(self):
        # deviceid
        record = self.modelDevice.record(self.ui.comboBox.currentIndex())
        self.deviceid = record.value(0)

        # Dates
        startdate = self.ui.dateEdit.date().toString("yyyy-MM-dd").encode(
            "ascii")  # start date
        enddate = self.ui.dateEdit_2.date().toString("yyyy-MM-dd").encode(
            "ascii")  # end date

        starttime = self.ui.timeEdit.time().toString("HH:mm:ss").encode(
            "ascii")  # start time
        endtime = self.ui.timeEdit_2.time().toString("HH:mm:ss").encode(
            "ascii")  # end time

        self.StartDateTime = "%s %s" % (
            startdate, starttime
        )  # Start date-time to pass to postgresql function
        self.EndDateTime = "%s %s" % (
            enddate, endtime)  # End date-time to pass to postgresql function

        # Generate point model
        self.fun_sql = SQL_FUN_POS_DEV_BETWN_DATE % (int(
            self.deviceid), self.StartDateTime, self.EndDateTime)
        print self.fun_sql

        positionsmodel = QtSql.QSqlQueryModel()
        positionsmodel.setQuery(self.fun_sql, self.traccardb.db)
        sortcolumn = positionsmodel.record().indexOf("time")
        # filterColumn=positionsmodel.record().indexOf("") USELESS

        QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))

        self.ui.tableView.setModel(positionsmodel)
        self.ui.tableView.setVisible(False)
        self.ui.tableView.resizeColumnsToContents()
        self.ui.tableView.setVisible(True)
        self.ui.tableView.setSortingEnabled(True)
        self.ui.tableView.setAlternatingRowColors(True)
        self.ui.tableView.setSelectionMode(
            QtGui.QAbstractItemView.SingleSelection)
        self.ui.tableView.setSelectionBehavior(QAbstractItemView.SelectRows)
        self.ui.tableView.verticalHeader().setVisible(False)

        # κάνω το sort στο tableview γιατί στο QSortFilterProxyModel
        # δεν δουλεύει όταν το datasource είναι QSqlQueryModel
        self.ui.tableView.sortByColumn(sortcolumn, QtCore.Qt.AscendingOrder)

        for field in ["the_geom", "other", "device_id"]:
            columnindex = positionsmodel.record().indexOf(field)
            self.ui.tableView.setColumnHidden(columnindex, True)

        # Generate Line model
        self.fun_sql_line = SQL_FUN_POLYLINE_DEV_BETWN_DATE % (int(
            self.deviceid), self.StartDateTime, self.EndDateTime)
        print self.fun_sql_line

        linemodel = QtSql.QSqlQueryModel(self)
        linemodel.setQuery(self.fun_sql_line, self.traccardb.db)

        mapper = QDataWidgetMapper()
        mapper.setModel(linemodel)

        mapper.addMapping(self.ui.lineEdit, 3)
        mapper.toFirst()

        QApplication.restoreOverrideCursor()
Beispiel #8
0
    def monitor_mode_enable(self):
        #########################
        ###  Method Works     ###
        #########################
        query = QtSql.QSqlQuery(db)
        int_iface = str(self.adapters_comboBox.currentText())
        query.prepare(
            "select adapters.bssid from adapters where adapters.name = ? and adapters.status = ?"
        )
        query.addBindValue(int_iface)
        query.addBindValue("before")
        query.exec_()
        query.next()
        try:
            if len(adapters) == len(monitors):
                message = QtGui.QMessageBox.information(
                    self, "Select diferent adapter",
                    int_iface + " Has already been put in monitor mode",
                    QtGui.QMessageBox.Ok)
                return

            if len(monitors) > len(adapters):
                response = QtGui.QMessageBox.information(
                    self, 'Too many monitors',
                    'There are too many monitor interfaces up\n'
                    'Would you like to reset them?',
                    QtGui.QMessageBox.Yes | QtGui.QMessageBox.No)
                if response == QtGui.QMessageBox.Yes:
                    for i in monitors:
                        call(['airmon-ng', 'stop', i])
                        mon_iface = ''
                        for i in range(self.monitors_comboBox.count()):
                            self.monitors_comboBox.removeItem(i)
                        self.wireless_interface()
                if response == QtGui.QMessageBox.No:
                    return
            if query.isValid():
                Mon_bss = str(query.value(0).toString())
                try:
                    query1 = QtSql.QSqlQuery()
                    query1.prepare(
                        "select monitors.name from monitors where monitors.bssid = ?"
                    )
                    query1.addBindValue(Mon_bss.upper())
                    query1.exec_()
                    query.next()
                    if query1.isValid():
                        message = QtGui.QMessageBox.information(
                            self, "Select diferent adapter", int_iface +
                            " has already been put in monitor mode",
                            QtGui.QMessageBox.Ok)
                    else:
                        comm = str(
                            commands.getoutput(
                                "ifconfig -a | awk '/HWaddr/ {print $1 "
                                " $NF}'"))
                        a = comm.splitlines()
                        for word in a:
                            wor_essid = word[:-17]
                            wor_mac = word[-17:]
                        if wor_essid == int_iface:
                            before_intface = wor_essid, wor_mac
                            wor_mac_mon = self.stealth(str(wor_essid),
                                                       str(wor_mac))
                            query.prepare(
                                "insert into adapters(name, bssid, status) values(?,?,?)"
                            )
                            query.addBindValue(wor_essid)
                            query.addBindValue(wor_mac_mon)
                            query.addBindValue('after')
                            query.exec_()
                        comma = str(
                            commands.getoutput('airmon-ng start %s' %
                                               (int_iface)))
                        if 'monitor mode enabled' in comma:
                            reg = re.compile('mon\d', re.IGNORECASE)
                            x_int = reg.findall(comma)
                            for a, monitor in enumerate(x_int):
                                mon_iface = monitor
                                if mon_iface in monitors:
                                    mon_iface = x_int[(a + 1) % len(x_int)]
                                else:
                                    monitors.append(mon_iface)
                            if self.injection_working(
                                    mon_iface
                            ):  ## Check if injection is working
                                if mon_iface in monitors:
                                    for monit in monitors:
                                        self.monitors_comboBox.addItem(monit)
                                        self.Monitor_select_comboBox.addItem(
                                            monit)
                                        self.wlan1_monitor_button.setVisible(
                                            True)
                                else:
                                    monitors.append(mon_iface)
                                    for monit in monitors:
                                        self.monitors_comboBox.addItem(monit)
                                        self.Monitor_select_comboBox.addItem(
                                            monit)
                                        self.wlan1_monitor_button.setVisible(
                                            True)
                            else:
                                print('Injection NOT working')
                except OSError as e:
                    print e.message
                except QtSql.QSqlError as qt:  ## Add instuctions to fix or buy other card
                    print qt.text()  ## Disable(!!!!!) buttons

        except QtSql.QSqlError as qt:
            print qt.text()
Beispiel #9
0
    def recs(self):
        ####################
        #  Method works    #
        ####################
        try:
            row = 0
            col = 0
            query = QtSql.QSqlQuery()
            self.my_tableWidget.setColumnCount(3)
            self.my_tableWidget.setColumnWidth(1, 70)
            self.my_tableWidget.setColumnWidth(2, 70)
            self.my_tableWidget.setRowCount(20)
            rec_progs = [
                'aircrack-ng', 'aireplay-ng', 'airodump-ng', 'airmon-ng',
                'packetforge-ng', 'iw', 'iwconfig', 'reaver', 'wash', 'mdk3',
                'pyrit', 'ifconfig', 'sqlite3'
            ]
            for prog in rec_progs:
                if self.program_list(prog):
                    ProgList.append(prog)
                    query.prepare(
                        "insert into recs (program_name, available) values (?,?)"
                    )
                    query.addBindValue(prog)
                    query.addBindValue(True)
                    query.exec_()
                    x = QtGui.QTableWidgetItem()
                    x.setFlags(QtCore.Qt.ItemIsEnabled)
                    x.setCheckState(QtCore.Qt.Checked)
                    y = QtGui.QTableWidgetItem()
                    y.setFlags(QtCore.Qt.ItemIsEnabled)
                    y.setCheckState(QtCore.Qt.Checked)
                    row_item = QtGui.QTableWidgetItem(prog)
                    self.my_tableWidget.setItem(row, col, row_item)
                    self.my_tableWidget.setItem(row, 1, x)
                    self.my_tableWidget.setItem(row, 2, y)
                    row += 1
                else:
                    not_rec_list.append(prog)
                    query.prepare(
                        "insert into recs (program_name, available) values (?,?)"
                    )
                    query.addBindValue(prog)
                    query.addBindValue(False)
                    query.exec_()
                    x = QtGui.QTableWidgetItem()
                    x.setFlags(QtCore.Qt.ItemIsEnabled)
                    x.setCheckState(QtCore.Qt.Unchecked)
                    y = QtGui.QTableWidgetItem()
                    y.setFlags(QtCore.Qt.ItemIsEnabled)
                    y.setCheckState(QtCore.Qt.Checked)
                    row_item = QtGui.QTableWidgetItem(prog)
                    self.my_tableWidget.setItem(row, col, row_item)
                    self.my_tableWidget.setItem(row, 1, x)
                    self.my_tableWidget.setItem(row, 2, y)
                    row += 1

            not_rec_progs = ['bully', 'crunch', 'pw-inspector', 'oclhashcat']
            for prog in not_rec_progs:
                if self.program_list(prog):
                    ProgList.append(prog)
                    query.prepare(
                        "insert into recs(program_name, available) values(?,?)"
                    )
                    query.addBindValue(prog)
                    query.addBindValue(True)
                    query.exec_()
                    x = QtGui.QTableWidgetItem()
                    x.setFlags(QtCore.Qt.ItemIsEnabled)
                    x.setCheckState(QtCore.Qt.Checked)
                    y = QtGui.QTableWidgetItem()
                    y.setFlags(QtCore.Qt.ItemIsEnabled)
                    y.setCheckState(QtCore.Qt.Unchecked)
                    row_item = QtGui.QTableWidgetItem(prog)
                    self.my_tableWidget.setItem(row, col, row_item)
                    self.my_tableWidget.setItem(row, 1, x)
                    self.my_tableWidget.setItem(row, 2, y)
                    row += 1
                else:
                    not_rec_list.append(prog)
                    query.prepare(
                        "insert into recs(program_name, available) values (?,?)"
                    )
                    query.addBindValue(prog)
                    query.addBindValue(False)
                    query.exec_()
                    x = QtGui.QTableWidgetItem()
                    x.setFlags(QtCore.Qt.ItemIsEnabled)
                    x.setCheckState(QtCore.Qt.Unchecked)
                    y = QtGui.QTableWidgetItem()
                    y.setFlags(QtCore.Qt.ItemIsEnabled)
                    y.setCheckState(QtCore.Qt.Unchecked)
                    row_item = QtGui.QTableWidgetItem(prog)
                    self.my_tableWidget.setItem(row, col, row_item)
                    self.my_tableWidget.setItem(row, 1, x)
                    self.my_tableWidget.setItem(row, 2, y)
                    row += 1
            self.my_tableWidget.setRowCount(row)
            if not_rec_list.__len__() == 0:
                self.Rec_Install_Button.setEnabled(False)

        except OSError as e:
            print e.message
Beispiel #10
0
    def createConnection(self):
        """
        1) It is important to create Query after the call to db.open() ! 
        """
        db = QtSql.QSqlDatabase.addDatabase('QSQLITE')
        db.setDatabaseName('appdata.db')
        if not db.open():
            QtGui.QMessageBox.critical(
                None, QtGui.qApp.tr("Cannot open database"),
                QtGui.qApp.tr(
                    "Unable to establish a database connection.\n"
                    "This example needs SQLite support. Please read "
                    "the Qt SQL driver documentation for information "
                    "how to build it.\n\n"
                    "Click Cancel to exit."), QtGui.QMessageBox.Cancel)
            return False

        query = QtSql.QSqlQuery()
        self.q = query
        cmd = "SELECT name FROM sqlite_master WHERE type in ('table','view')"
        self.ex(cmd)
        while query.next():
            data = query.value(0)
            print(data)

        # pragma foreign_keys = ON;

        ### tasks ###
        cmd = "CREATE TABLE IF NOT EXISTS tasks(id integer primary key autoincrement, name varchar(100), uuid varchar(36), level int, parent varchar(36), time_created varchar(24), status varchar, priority int, description varchar(2048), time_completed varchar(24), time_spent int, time_spent_prediction int)"
        self.ex(cmd)
        ### /tasks ###

        cmd = "CREATE TABLE IF NOT EXISTS tasks_trash(id integer primary key autoincrement, name varchar(100), uuid varchar(36), level int, parent varchar(36), time_created varchar(24), status varchar, priority int)"
        self.ex(cmd)
        cmd = "CREATE TABLE IF NOT EXISTS activity_log(id integer primary key autoincrement, time varchar(24), activity varchar(16))"
        self.ex(cmd)
        cmd = "CREATE TABLE IF NOT EXISTS metadata(key varchar(64) UNIQUE, value varchar(64))"
        self.ex(cmd)
        cmd = "INSERT INTO metadata(key,value) SELECT 'targeted_task', '' WHERE NOT EXISTS(SELECT 1 FROM metadata WHERE key = 'targeted_task' AND value != '')"
        self.ex(cmd)

        ### reminders ###
        # remind regularly, once
        cmd = "CREATE TABLE IF NOT EXISTS reminders(id integer primary key autoincrement, name varchar(100), uuid varchar(36), time_created varchar(24), status varchar, mode varchar(32), description varchar(2048), times_reminded int)"
        self.ex(cmd)

        cmd = "CREATE TABLE IF NOT EXISTS reminders_archive(int, name varchar(100), uuid varchar(36), time_created varchar(24), status varchar, description varchar(2048), times_reminded int)"
        self.ex(cmd)
        ### /reminders ###

        cmd = "CREATE TABLE IF NOT EXISTS behaviour_classes(id integer primary key autoincrement, name varchar(100), description varchar(2048), attribute varchar(64))"
        self.ex(cmd)

        #schema = ['id integer primary key autoincrement',
        #          'behaviourId int',
        #          'comment varchar(2048)',
        #          'time_created varchar(24)',
        #          'start_at varchar(24)',
        #          'duration varchar(24)',
        #          'variance REAL DEFAULT 0.5',
        #          'FOREIGN KEY(behaviourId) REFERENCES behaviour_classes(name)',
        #          "time_completed varchar(24) DEFAULT '?'"
        #         ]
        #cmd = "CREATE TABLE IF NOT EXISTS journal(" + " ".join(schema) + ")"
        cmd = "CREATE TABLE IF NOT EXISTS behaviour_journal(id integer primary key autoincrement, behaviourId int, comment varchar(2048), time_created varchar(24), time_started varchar(24), predicted_duration int, duration int, quality int, source varchar(256),  variance REAL DEFAULT 0.5)"
        self.ex(cmd)

        #cmd = "CREATE TABLE IF NOT EXISTS journal(id integer primary key autoincrement, behaviourId int, comment varchar(1024), time_created varchar(24), start_at varchar(24), duration int, variance REAL, source varchar(64),  FOREIGN KEY(behaviourId) REFERENCES behaviour_classes(id));"
        #self.ex(cmd)

        #SELECT journal.id, journal.behaviourId, behaviour_classes.name FROM journal,behaviour_classes WHERE(journal.behaviourId = behaviour_classes.id);
        ### notes ###

        ### /notes ###

        #cmd = "INSERT INTO metadata(key,value) SELECT 'afk_time_sum', 0 WHERE NOT EXISTS(SELECT 1 FROM metadata WHERE key = 'afk_time_sum' AND value != 0)"
        #self.ex(cmd)
        #cmd = "INSERT INTO metadata(key,value) SELECT 'slack_time_sum', 0 WHERE NOT EXISTS(SELECT 1 FROM metadata WHERE key = 'slack_time_sum' AND value != 0)"
        #self.ex(cmd)
        #cmd = "INSERT INTO metadata(key,value) SELECT 'work_time_sum', 0 WHERE NOT EXISTS(SELECT 1 FROM metadata WHERE key = 'work_time_sum' AND value != 0)"
        #self.ex(cmd)

        #cmd = "INSERT INTO metadata(key,value) SELECT 'targeted_task', '' WHERE NOT EXISTS(SELECT 1 FROM metadata WHERE key = 'targeted_task' AND value != '')"
        #cmd = "CREATE TABLE IF NOT EXISTS activity_time_sum(activity varchar(16), sum_seconds int)"

        #[!!!]
        #cmd = "CREATE TABLE IF NOT EXISTS business(... ... ...)"

        cmd = "CREATE TABLE IF NOT EXISTS expected_behaviour(id integer primary key autoincrement, time_created varchar(24), type varchar(32), policy varchar(32), description varchar(1024), name varchar(256), uuid varchar(36), level int, duration int,  time_started varchar(24), time_started_expected varchar(24), time_completed varchar(24), time_completed_expected varchar(24),  status varchar(16), priority int)"

        self.ex(cmd)
        return True
Beispiel #11
0
    def wireless_interface(self):
        #######################
        ##   Method Works   ###
        #######################
        global monitors, adapters
        query = QtSql.QSqlQuery(db)
        # need to check if iwconfig exists (it should )
        cmd = str(commands.getoutput('iwconfig'))
        if 'Mode:Managed' in cmd:
            regex = re.compile('wlan\d', re.IGNORECASE)
            adapters = regex.findall(cmd)
        if 'Mode:Monitor' in cmd:
            regex = re.compile('mon\d', re.IGNORECASE)
            monitors = regex.findall(cmd)
        if not (('Mode:Managed') or ('Mode:Monitor')) in cmd:
            text = ['No Interface']
            for i in text:
                self.adapters_comboBox.addItem(i)
        if adapters:
            self.adapters_comboBox.clear()
            for adap in adapters:
                self.adapters_comboBox.addItem(adap)
                self.wlan0_monitor_Button.setVisible(True)
                # int_iface = str(self.adapters_comboBox.currentText())
                comm = str(
                    commands.getoutput("ifconfig " + adap +
                                       " | awk '/HWaddr/ {print $1 "
                                       " $NF}'"))
                a = comm.splitlines()
                for word in a:
                    wor_essid = word[:-17]
                    wor_mac = word[-17:]
                    query.prepare(
                        "insert into adapters (name, bssid, status) values(?,?,?)"
                    )
                    query.addBindValue(wor_essid)
                    query.addBindValue(wor_mac)
                    query.addBindValue("before")
                    query.exec_()
                    if wor_essid == int_iface:
                        before_intface = wor_essid, wor_mac
        else:
            return
        if monitors:
            for monit in monitors:
                self.monitors_comboBox.addItem(monit)
                self.wlan1_monitor_button.setVisible(True)
                self.Monitor_select_comboBox.addItem(monit)
                comm = str(
                    commands.getoutput("ifconfig " + monit +
                                       " | awk '/HWaddr/ {print $1 "
                                       " $NF}'"))
                a = comm.splitlines()
                for word in a:
                    wor_essid = word[:-47]
                    wor_mac = word[-47:-30]
                    wor_mac = wor_mac.replace('-', ':')
                    query.prepare(
                        "insert into monitors (name, bssid) values (?,?)")
                    query.addBindValue(wor_essid)
                    query.addBindValue(wor_mac)
                    query.exec_()
                    if wor_essid == monit:
                        b_m_intface = wor_essid, wor_mac

        else:
            return
        print adapters, monitors  # remove after tests
#
# author: Jan Bodnar
# website: zetcode.com
# last edited: October 2009

from PyQt4 import QtCore, QtSql

app = QtCore.QCoreApplication([])

db = QtSql.QSqlDatabase.addDatabase("QSQLITE")
db.setDatabaseName("friends.db")

if not db.open():
    print "cannot establish a database connection"

else:

    query = QtSql.QSqlQuery("INSERT INTO friends("
                            "id, name, age) VALUES (?, ?, ?)")
    query.bindValue(0, QtCore.QVariant(6))
    query.bindValue(1, QtCore.QVariant("Monika"))
    query.bindValue(2, QtCore.QVariant(23))
    query.exec_()

    query = QtSql.QSqlQuery("SELECT name, age FROM friends")
    query.last()

    name = query.value(0).toString()
    age = query.value(1).toString()
    print name, age
Beispiel #13
0
    def execute(self):
        global db

        query_c = QtSql.QSqlQuery()
        str_c = 'select count (*) form from tobackup.t_log s inner join tobackup.t_image m using (tid)'
        query_c.exec_(str_c)
        rowsc = 0
        allfiles = 0
        while query_c.next():
            rowsc = query_c.value(0).toInt()[0]
            allfiles = query_c.value(0).toInt()[0]
        while rowsc > 0:
            query = QtSql.QSqlQuery()
            str1 = u'select time_best,plate_recognized,encode(image,\'hex\'), camera_host, lpr_name, tid from tobackup.t_log s inner join tobackup.t_image m using (tid) limit 100;'
            query.exec_(str1)
            count = 0
            while query.next():
                file_parth = unicode(
                    globalConf.get('options', 'folderpath') +
                    query.value(3).toString() + '/' +
                    re.match('[a-zA-Z0-9 ]+(.*)',
                             unicode(query.value(4).toString())).group(1) +
                    '/' + query.value(0).toDateTime().toString('dd_MM_yy') +
                    '/' +
                    query.value(0).toDateTime().toString('dd_MM_yy hh-mm-ss') +
                    ' ' + query.value(1).toString().replace('?', '_') + '__' +
                    re.match('[a-zA-Z0-9 ]+(.*)',
                             unicode(query.value(4).toString())).group(1) +
                    '_' + query.value(5).toString() + '.jpg')
                file_parth = file_parth.replace('\\', '/')
                if os.path.exists(
                        unicode(
                            globalConf.get('options', 'folderpath') +
                            query.value(3).toString())) is False:
                    firstiter = unicode(
                        globalConf.get('options', 'folderpath') +
                        query.value(3).toString())
                    os.mkdir(firstiter)
                secstep = globalConf.get(
                    'options',
                    'folderpath') + query.value(3).toString() + '/' + re.match(
                        '[a-zA-Z0-9 ]+(.*)', unicode(
                            query.value(4).toString())).group(1) + '/'
                if os.path.exists(unicode(secstep)) is False:
                    os.mkdir(unicode(secstep))
                tridstep = globalConf.get(
                    'options',
                    'folderpath') + query.value(3).toString() + '/' + re.match(
                        '[a-zA-Z0-9 ]+(.*)', unicode(
                            query.value(4).toString())).group(
                                1) + '/' + query.value(
                                    0).toDateTime().toString('dd_MM_yy') + '/'
                if os.path.exists(unicode(tridstep)) is False:
                    os.mkdir(unicode(tridstep))

                file = QtCore.QFile(file_parth)
                file.open(QtCore.QIODevice.WriteOnly)
                file.write(str(query.value(2).toString()).decode('hex'))
                file.close()
                count += 1
                # Удаление
                query_d = QtSql.QSqlQuery()
                deletestr = 'delete from tobackup.t_image where tid = ' + query.value(
                    5).toString() + ';'
                query_d.exec_(deletestr)
            rowsc -= count
        try:
            flog = open('process.log', 'a')
            flog.write('Лог за ' + QtCore.QDateTime.currentDateTime().toString(
                'dd-MM-yy hh:mm:ss') + '\n')
            flog.write('===Все файлы ' + str(allfiles) + ' перенесены.===\n')
            flog.close()
        except:
            raise IOError(u'Log file not found')
Beispiel #14
0
 def ref(self):
     self.model = QtSql.QSqlQueryModel(self)
     sql = "select Name, School from student;"
     self.model.setQuery(sql)
     self.ui.tableView.setModel(self.model)
Beispiel #15
0
    def start_click(self):

        # Получение параметров подключения
        config.host = self.__ui.conf_host.text()
        config.mysql_port = int(self.__ui.conf_mysql.text())
        config.route_port = int(self.__ui.conf_route.text())
        config.upload_port = int(self.__ui.conf_upload.text())
        config.db = self.__ui.conf_db.text()
        config.user = self.__ui.conf_user.text()

        # Обновление списка файлов, доступных для скачивания
        # удаленными узлами файлообменной сети
        self.__filelist = filelist.CFileList()
        self.__filelist.refresh()

        # Запуск двух серверов и скачивающего потока
        try:

            self.__server = {
                "route": route.CRouteTable(),
                "upload": upload.CUpload(),
                "download": download.CDownload()
            }

            for x in self.__server.values():

                x.start()

        except:

            QtGui.QMessageBox().critical(
                self, "Ошибка!", "Невозможно запустить один из потоков")
            return

        # Настройка параметров подключения к локальному серверу MySQL
        self.__db.setHostName("localhost")
        self.__db.setUserName(config.user)
        self.__db.setDatabaseName(config.db)

        # Подключение к локальному серверу MySQL
        if not self.__db.open():

            QtGui.QMessageBox().critical(
                self, "Ошибка!",
                "Невозможно подключится к локальной базе данных")
            return

        # Создание пяти описателей выборок по одной для каждой из пяти моделей
        # представления результатов выборки
        self.__query = {
            "host_list":
            QtSql.QSqlQuery("""select distinct ip as \"IP\",
													 route_port as \"Route порт\" from """ + tname["route"] +
                            " order by ip, route_port",
                            db=self.__db),
            "file_list":
            QtSql.QSqlQuery(
                "select distinct path as \"Путь и имя файла\" from " +
                tname["filelist"] + " order by path",
                db=self.__db),
            "sea_res":
            QtSql.QSqlQuery("""select id as \"Номер\", path as \"Имя файла\",
													 size / 1048576 as \"Размер файла (мегабайты)\"
													 from """ + tname["search_result"] +
                            " group by path order by path, size",
                            db=self.__db),
            "down_list":
            QtSql.QSqlQuery("""select path as \"Путь и имя файла\",
													 count(*) as \"Доступно частей\" from """ + tname["downlist"] +
                            " group by path order by path",
                            db=self.__db),
            "down_finish":
            QtSql.QSqlQuery("select distinct path \"Путь и имя файла\" from " +
                            tname["finished"] + """ where not exists
												(select * from downlist
																			where downlist.path = finished.path)
												order by path""",
                            db=self.__db)
        }

        # Обновление таблиц графического интерфейса
        self.refresh_view()

        self.__ui.conf_host_all.setEnabled(False)
        self.__ui.conf_reset.setEnabled(False)
        self.__ui.start.setEnabled(False)
        self.__ui.conf_host.setEnabled(False)
        self.__ui.conf_mysql.setEnabled(False)
        self.__ui.conf_route.setEnabled(False)
        self.__ui.conf_upload.setEnabled(False)
        self.__ui.conf_db.setEnabled(False)
        self.__ui.conf_user.setEnabled(False)

        self.__ui.stop.setEnabled(True)
        self.__ui.host_list.setEnabled(True)
        self.__ui.host_ip.setEnabled(True)
        self.__ui.host_port.setEnabled(True)
        self.__ui.host_connect.setEnabled(True)
        self.__ui.host_disconnect.setEnabled(True)
        self.__ui.file_list.setEnabled(True)
        self.__ui.file_add.setEnabled(True)
        self.__ui.file_del.setEnabled(True)
        self.__ui.sea_mask.setEnabled(True)
        self.__ui.sea_size_op.setEnabled(True)
        self.__ui.sea_size.setEnabled(True)
        self.__ui.sea_run.setEnabled(True)
        self.__ui.sea_res.setEnabled(True)
        self.__ui.sea_down.setEnabled(True)
        self.__ui.down_list.setEnabled(True)
        self.__ui.down_del.setEnabled(True)
        self.__ui.down_finish.setEnabled(True)
        self.__ui.down_finish_clear.setEnabled(True)
Beispiel #16
0
 def execute_query(self, params):
     query = QtSql.QSqlQuery(self.db)
     query.exec_(params)
     return query
Beispiel #17
0
def createConnection():
    db = QtSql.QSqlDatabase.addDatabase('QSQLITE')
    db.setDatabaseName(':memory:')
    if not db.open():
        QtGui.QMessageBox.critical(
            None, QtGui.qApp.tr("Cannot open database"),
            QtGui.qApp.tr("Unable to establish a database connection.\n"
                          "This example needs SQLite support. Please read "
                          "the Qt SQL driver documentation for information "
                          "how to build it.\n\n"
                          "Click Cancel to exit."), QtGui.QMessageBox.Cancel)
        return False

    query = QtSql.QSqlQuery()
    query.exec_("create table person(id int primary key, "
                "firstname varchar(20), lastname varchar(20))")
    query.exec_("insert into person values(101, 'Danny', 'Young')")
    query.exec_("insert into person values(102, 'Christine', 'Holand')")
    query.exec_("insert into person values(103, 'Lars', 'Gordon')")
    query.exec_("insert into person values(104, 'Roberto', 'Robitaille')")
    query.exec_("insert into person values(105, 'Maria', 'Papadopoulos')")

    query.exec_("create table offices (id int primary key,"
                "imagefile int,"
                "location varchar(20),"
                "country varchar(20),"
                "description varchar(100))")
    query.exec_("insert into offices "
                "values(0, 0, 'Oslo', 'Norway',"
                "'Oslo is home to more than 500 000 citizens and has a "
                "lot to offer.It has been called \"The city with the big "
                "heart\" and this is a nickname we are happy to live up to.')")
    query.exec_("insert into offices "
                "values(1, 1, 'Brisbane', 'Australia',"
                "'Brisbane is the capital of Queensland, the Sunshine State, "
                "where it is beautiful one day, perfect the next.  "
                "Brisbane is Australia''s 3rd largest city, being home "
                "to almost 2 million people.')")
    query.exec_("insert into offices "
                "values(2, 2, 'Redwood City', 'US',"
                "'You find Redwood City in the heart of the Bay Area "
                "just north of Silicon Valley. The largest nearby city is "
                "San Jose which is the third largest city in California "
                "and the 10th largest in the US.')")
    query.exec_("insert into offices "
                "values(3, 3, 'Berlin', 'Germany',"
                "'Berlin, the capital of Germany is dynamic, cosmopolitan "
                "and creative, allowing for every kind of lifestyle. "
                "East meets West in the metropolis at the heart of a "
                "changing Europe.')")
    query.exec_(
        "insert into offices "
        "values(4, 4, 'Munich', 'Germany',"
        "'Several technology companies are represented in Munich, "
        "and the city is often called the \"Bavarian Silicon Valley\". "
        "The exciting city is also filled with culture, "
        "art and music. ')")
    query.exec_("insert into offices "
                "values(5, 5, 'Beijing', 'China',"
                "'Beijing as a capital city has more than 3000 years of "
                "history. Today the city counts 12 million citizens, and "
                "is the political, economic and cultural centre of China.')")

    query.exec_("create table images (locationid int, file varchar(20))")
    query.exec_("insert into images values(0, 'images/oslo.png')")
    query.exec_("insert into images values(1, 'images/brisbane.png')")
    query.exec_("insert into images values(2, 'images/redwood.png')")
    query.exec_("insert into images values(3, 'images/berlin.png')")
    query.exec_("insert into images values(4, 'images/munich.png')")
    query.exec_("insert into images values(5, 'images/beijing.png')")

    return True
Beispiel #18
0
 def saveStatusP(self,id,status,button):
     sql='UPDATE event SET status_id={},button_result_id={}, user_id={} WHERE(id={} )'.format(status,button,self.UserId,id,)
     query = QtSql.QSqlQuery(sql)
     self.tableEventModel.setQuery( self.tableEventModel.query().lastQuery() )
     self.br_id=button
Beispiel #19
0
 def run(self):
     self.time = time.time()
     self.query_model = QtSql.QSqlQueryModel()
     self.query_model.setQuery(self.query, self.connection)
     self.query_executed.emit(self.query_model)
Beispiel #20
0
 def SaveEvent(self,info,sensor_id,level_id,user_id,status_id,button_result_id):
     query = QtSql.QSqlQuery()
     sql='INSERT INTO  event(info,sensor_id, level_id, user_id, status_id, button_result_id)' \
         'VALUES("{}",{},{},{},{},{});'.format(info,sensor_id,level_id,user_id,status_id,button_result_id)
     query.exec_(sql)
     self.tableEventModel.setQuery( self.tableEventModel.query().lastQuery() )
Beispiel #21
0
    def run(self):
        self.buildGraph()

        for d in self.days:
            if (self.time_point != "NULL"):  # Simple time constraint
                if (self.path_tree == False):
                    s = "SELECT tempus_access.shortest_path2((" + str(
                        self.road_node_from
                    ) + "), (" + str(self.road_node_to) + "), ARRAY" + str(
                        self.tran_modes) + ", '" + d + " " + self.time_point[
                            1:len(self.time_point) -
                            1] + "'::timestamp, " + str(
                                self.constraint_date_after) + ");\n"
                    print s
                    self.file.write(s)
                else:
                    for node in self.road_nodes:  # For each source node
                        s = "SELECT tempus_access.shortest_paths_tree(("+str(node)+"), ARRAY"+str(self.tran_modes)+", "+str(self.max_cost)+", "+str(self.walking_speed)+", "+str(self.cycling_speed)+", '"+d \
                            + " " +self.time_point[1:len(self.time_point)-1]+"'::timestamp, "+str(self.constraint_date_after)+");\n"
                        print s
                        self.file.write(s)

            else:  # Time period constraint
                if (
                        self.all_services == True
                ):  # All possible services of the period - only fo simple paths
                    current_timestamp = ""
                    bound_timestamp = ""
                    bound_time = ""
                    if (self.constraint_date_after == True):
                        current_timestamp = d + " " + self.time_start[
                            1:len(self.time_start) - 1]
                        bound_timestamp = d + " " + self.time_end[
                            1:len(self.time_end) - 1]
                        bound_time = self.time_end
                    elif (self.constraint_date_after == False):
                        current_timestamp = d + " " + self.time_end[
                            1:len(self.time_end) - 1]
                        bound_timestamp = d + " " + self.time_start[
                            1:len(self.time_start) - 1]
                        bound_time = self.time_start

                    while (current_timestamp != bound_timestamp):
                        s = "SELECT tempus_access.shortest_path2((" + str(
                            self.road_node_from
                        ) + "), (" + str(self.road_node_to) + "), ARRAY" + str(
                            self.tran_modes
                        ) + ", '" + current_timestamp + "'::timestamp, " + str(
                            self.constraint_date_after) + ");\n"
                        print s
                        self.file.write(s)

                        s1 = "SELECT next_pt_timestamp::character varying FROM tempus_access.next_pt_timestamp(" + bound_time + "::time, '" + str(
                            d) + "'::date, " + str(
                                self.constraint_date_after) + ")"
                        print s1
                        q1 = QtSql.QSqlQuery(self.db)
                        q1.exec_(unicode(s1))
                        while q1.next():
                            if (current_timestamp == str(q1.value(0))):
                                current_timestamp = bound_timestamp
                            else:
                                current_timestamp = str(q1.value(0))

                elif (self.time_interval !=
                      "NULL"):  # Search at a regular time interval
                    current_timestamp = ""
                    bound_timestamp = ""
                    bound_time = ""
                    if (self.constraint_date_after == True):
                        current_timestamp = d + " " + self.time_start[
                            1:len(self.time_start) - 1]
                        bound_timestamp = d + " " + self.time_end[
                            1:len(self.time_end) - 1]
                        bound_time = self.time_end
                    elif (self.constraint_date_after == False):
                        current_timestamp = d + " " + self.time_end[
                            1:len(self.time_end) - 1]
                        bound_timestamp = d + " " + self.time_start[
                            1:len(self.time_start) - 1]
                        bound_time = self.time_start

                    while (current_timestamp != bound_timestamp):
                        if (self.path_tree == False):
                            s = "SELECT tempus_access.shortest_path((" + str(
                                self.road_node_from
                            ) + "), (" + str(
                                self.road_node_to
                            ) + "), ARRAY" + str(
                                self.tran_modes
                            ) + ", '" + current_timestamp + "'::timestamp, " + str(
                                self.constraint_date_after) + ");\n"
                            print s
                            self.file.write(s)

                        elif (self.path_tree == True):
                            for node in self.road_nodes:  # For each source/target node
                                s = "SELECT tempus_access.shortest_paths_tree(" + str(
                                    node
                                ) + ", ARRAY" + str(
                                    self.tran_modes
                                ) + ", " + str(self.max_cost) + ", " + str(
                                    self.walking_speed
                                ) + ", " + str(
                                    self.cycling_speed
                                ) + ", '" + current_timestamp + "'::timestamp, " + str(
                                    self.constraint_date_after) + ");\n"
                                print s
                                self.file.write(s)

                        s1 = "SELECT next_timestamp::character varying FROM tempus_access.next_timestamp('" + current_timestamp + "'::timestamp, " + str(
                            self.time_interval
                        ) + ", '" + bound_timestamp + "'::timestamp, " + str(
                            self.constraint_date_after) + ")"
                        print s1
                        q1 = QtSql.QSqlQuery(self.db)
                        q1.exec_(unicode(s1))
                        while q1.next():
                            current_timestamp = str(q1.value(0))

        print(self.query_str)
        self.file.write(self.query_str)

        self.file.close()

        cmd = [
            PSQL, "-h",
            self.db.hostName(), "-p",
            str(self.db.port()), "-d",
            self.db.databaseName(), "-U",
            self.db.userName(), "-f", self.plugin_dir + "\\scripts\\temp.sql"
        ]
        done = execute_external_cmd(cmd)
        res = False
        if (done == 0):
            res = True
        self.resultAvailable.emit(res)
Beispiel #22
0
 def enterUsernameLogin(self,index):
     rec=QtSql.QSqlRecord()
     rec=self.tmUser.record(index.row())
     self.user_login=rec.value("username")
     self.ui.lineEditPassword.clear()
    def _slotPushButtonImportClicked(self):
        s = "SELECT count(*) from pg_database\
            WHERE datname = 'tempusaccess_" + self.ui.lineEditNewDB.text(
        ) + "'"
        q = QtSql.QSqlQuery(unicode(s), self.caller.db)
        q.next()
        create = True

        if (int(q.value(0)) > 0):
            ret = QMessageBox.question(
                self, "TempusAccess", u"La base de données 'tempusaccess_" +
                self.ui.lineEditNewDB.text() +
                u"' existe déjà et va être réinitialisée : toutes les données présentes seront écrasées. \n Confirmez-vous cette opération ?",
                QMessageBox.Ok | QMessageBox.Cancel, QMessageBox.Cancel)
            create = False
        else:
            ret = QMessageBox.Ok

        if (ret == QMessageBox.Ok):
            # Restart database server to be sure deleting "TempusAccess" database will be allowed (avoids still connected applications)
            nom_fichier = QFileDialog.getOpenFileName(
                caption="Restaurer la base de données...",
                directory=self.caller.data_dir,
                filter="Backup files (*.backup)")

            if (create == True):
                cmd = [
                    "createdb", "-h",
                    self.caller.db.hostName(), "-U",
                    self.caller.db.userName(), "-p",
                    str(self.caller.db.port()),
                    "tempusaccess_" + self.ui.lineEditNewDB.text()
                ]
                r = subprocess.call(cmd)

            self.caller.set_db_connection_dialog.refreshDBList()
            self.ui.comboBoxDB.setCurrentIndex(
                self.ui.comboBoxDB.findText(self.ui.lineEditNewDB.text()))

            s = "DROP SCHEMA IF EXISTS _tempus_import CASCADE;\
            DROP SCHEMA IF EXISTS _tempus_export CASCADE;\
            DROP SCHEMA IF EXISTS indic CASCADE;\
            DROP SCHEMA IF EXISTS tempus CASCADE;\
            DROP SCHEMA IF EXISTS tempus_access CASCADE;\
            DROP SCHEMA IF EXISTS tempus_gtfs CASCADE;\
            DROP FUNCTION IF EXISTS _drop_index(text, text, text);\
            DROP FUNCTION IF EXISTS notice(text, anyelement);"

            q = QtSql.QSqlQuery(self.temp_db)
            q.exec_(unicode(s))

            cmd = [
                PGRESTORE, "-h",
                self.temp_db.hostName(), "-p",
                str(self.temp_db.port()), "-d",
                self.temp_db.databaseName(), "-U",
                self.temp_db.userName(), "-w", "-O", "-x", "-v", nom_fichier
            ]
            self.ui.lineEditCommand.setText(" ".join(cmd))

            rc = execute_external_cmd(cmd)
            box = QMessageBox()
            box.setModal(True)
            if (rc == 0):
                self.caller.iface.mapCanvas().refresh()
                box.setText(u"L'import de la base s'est terminé avec succès. ")
                self._slotPushButtonLoadClicked()
            else:
                box.setText(
                    u"L'import de la base a échoué ou a retourné des avertissements.\nPour en savoir plus, ouvrir la console Python de QGIS et relancer la commande."
                )
            box.exec_()
Beispiel #24
0
    #db.setDatabaseName("llampex")
    #db.setUserName("llampexuser")
    #db.setPassword("llampexpasswd")
    #db.setHostName("127.0.0.1")
    #db.setPort(10123)
    #print ">> Database:",db
    #
    #if not db.open():
    #    print "unable to open database"
    #    sys.exit(1)

    clientoptions.prepareParser()
    qsqlrpc.DEBUG_MODE = clientoptions.getDebug()
    db = clientoptions.getDB()

    model = QtSql.QSqlTableModel(None, db)

    initializeModel(model, clientoptions.getTable())

    view1 = createView("Table Model (View 1)", model)
    view2 = createView("Table Model (View 2)", model)

    view1.show()
    view2.move(view1.x() + view1.width() + 20, view1.y())
    view2.show()

    app.exec_()

    del model
    del view1
    del view2
Beispiel #25
0
 def handle_exec_sql_clicked(self):
     sql_str = self.text_db_sql.toPlainText()
     model = QtSql.QSqlQueryModel()
     model.setQuery(sql_str)
     self.current_model = model
     self.table_dbview.setModel(model)
Beispiel #26
0
    def __init__(self, user, sysdate, code, dateCalc, parent=None):
        super(NewBond, self).__init__(viewOnly=True, parent=parent)
        self.setWindowTitle(u'债券交易')
        self.sysdate = sysdate
        self.user = user
        self.dateCalc = dateCalc
        self.inst = CashBond(code)
        layout = QtGui.QGridLayout()
        gbInfo = QtGui.QGroupBox(u'基本信息')
        gbInfo.setLayout(self.inst.gui(readonly=True, asOfDate=sysdate))
        layout.addWidget(gbInfo, 0, 0, 1, 4)

        gbTrade = QtGui.QGroupBox(u'交易')
        tradeLayout = QtGui.QGridLayout()
        tradeLayout.addWidget(QtGui.QLabel(u'交易日'),0, 0, 1, 1)
        self.tradeDateTime = QtGui.QDateTimeEdit(datetime.datetime.now())
        self.tradeDateTime.setCalendarPopup(True)
        self.tradeDateTime.dateTimeChanged.connect(self.on_tradedate_change)
        tradeLayout.addWidget(self.tradeDateTime, 0, 1, 1, 1)
        tradeLayout.addWidget(QtGui.QLabel(u'账簿'), 1, 0, 1, 1)
        self.books = QtGui.QComboBox()
        q = QtSql.QSqlQuery('SELECT NAME_CN FROM BOOKS ORDER BY ID')
        books = []
        while q.next():
            books.append(q.value(0).toString())
        self.books.addItems(books)
        tradeLayout.addWidget(self.books, 1, 1, 1, 1)
        tradeLayout.addWidget(QtGui.QLabel(u'交易方向'), 0, 2, 1, 1)
        self.dir = QtGui.QComboBox()
        self.dir.addItems([u'买入', u'卖出'])
        tradeLayout.addWidget(self.dir, 0, 3, 1, 1)
        tradeLayout.addWidget(QtGui.QLabel(u'面值(万元)'), 2, 0, 1, 1)
        self.amount = QtGui.QLineEdit()
        tradeLayout.addWidget(self.amount, 2, 1, 1, 1)
        tradeLayout.addWidget(QtGui.QLabel(u'成交T+'), 1, 2, 1, 1)
        self.settle = QtGui.QLineEdit('0')
        self.settle.setValidator(QtGui.QIntValidator())
        self.settle.textChanged.connect(self.updateSettleDate)
        tradeLayout.addWidget(self.settle, 1, 3, 1, 1)
        tradeLayout.addWidget(QtGui.QLabel(u'交割日'), 2, 2, 1, 1)
        self.settleDate = QtGui.QDateEdit(self.sysdate)
        self.settleDate.setCalendarPopup(True)
        tradeLayout.addWidget(self.settleDate, 2, 3, 1, 1)
        tradeLayout.addWidget(QtGui.QLabel(u'估值'), 3, 0, 1, 1)
        self.value = QtGui.QLineEdit()
        self.value.setReadOnly(True)
        tradeLayout.addWidget(self.value, 3, 1, 1, 1)
        tradeLayout.addWidget(QtGui.QLabel(u'估值日'), 3, 2, 1, 1)
        self.vdate = QtGui.QDateEdit(self.sysdate - datetime.timedelta(days=1))
        self.vdate.setCalendarPopup(True)
        self.vdate.dateChanged.connect(self.updateValue)
        tradeLayout.addWidget(self.vdate, 3, 3, 1, 1)
        tradeLayout.addWidget(QtGui.QLabel(u'久期'), 4, 0, 1, 1)
        self.moddur = QtGui.QLineEdit()
        self.moddur.setReadOnly(True)
        tradeLayout.addWidget(self.moddur, 4, 1, 1, 1)
        tradeLayout.addWidget(QtGui.QLabel(u'到期收益率(%)'), 4, 2, 1, 1)
        self.ytm = QtGui.QLineEdit()
        tradeLayout.addWidget(self.ytm, 4, 3, 1, 1)
        tradeLayout.addWidget(QtGui.QLabel(u'净价'), 5, 0, 1, 1)
        self.clean = QtGui.QLineEdit()
        tradeLayout.addWidget(self.clean, 5, 1, 1, 1)
        tradeLayout.addWidget(QtGui.QLabel(u'全价'), 5, 2, 1, 1)
        self.full = QtGui.QLineEdit()
        tradeLayout.addWidget(self.full, 5, 3, 1, 1)
        tradeLayout.addWidget(QtGui.QLabel(u'备注'), 6, 0, 1, 1)
        self.comment = QtGui.QLineEdit()
        tradeLayout.addWidget(self.comment, 6, 1, 1, 1)
        tradeLayout.addWidget(QtGui.QLabel(u'应计利息'), 6, 2, 1, 1)
        self.ai = QtGui.QLineEdit()
        self.ai.setReadOnly(True)
        tradeLayout.addWidget(self.ai, 6, 3, 1, 1)
        gbTrade.setLayout(tradeLayout)
        layout.addWidget(gbTrade, 1, 0, 1, 4)

        btnLayout = QtGui.QHBoxLayout()
        btnLayout.addWidget(self.ok)
        btnLayout.addWidget(self.cancel)
        layout.addLayout(btnLayout, 2, 2, 1, 2)

        self.updateInfo()

        self.setLayout(layout)
Beispiel #27
0
 def buildItemsCache(self):
     emptyValue = QtSql.QSqlRecord()
     rowCount   = self.rowCount()
     for tripodNumber in xrange(self._tripodCount):
         self._mapTripodNumberToItems[tripodNumber] = [emptyValue]*rowCount
Beispiel #28
0
def obtenerAutocompletar(concepto):
    query = QtSql.QSqlQuery()
    consulta = "SELECT DISTINCT " + concepto + " FROM " + nombreTabla
    query.exec_(consulta)
    print query
Beispiel #29
0
    def __init__(self, parent=None, viewOnly=False, **kwargs):
        super(NewSubscription, self).__init__(parent, viewOnly, **kwargs)
        self.standardtenors = [
            '14', '30', '60', '90', '120', '150', '180', '210', '240', '270',
            '300', '330', '360', '720'
        ]
        self.setWindowTitle(u'添加认购信息')
        td = datetime.date.today()
        layout = QtGui.QGridLayout()
        layout.addWidget(QtGui.QLabel(u'客户类型'), 0, 0, 1, 1)
        q = QtSql.QSqlQuery('SELECT TYPE_NAME FROM CLIENT_TYPE')
        names = []
        while q.next():
            names.append(q.value(0).toString())
        self.clientType = QtGui.QComboBox()
        if names:
            self.clientType.addItems(names)
        layout.addWidget(self.clientType, 0, 1, 1, 1)
        layout.addWidget(QtGui.QLabel(u'委托人名称'), 1, 0, 1, 1)
        self.clientname = QtGui.QComboBox()
        clientnames = []
        q = QtSql.QSqlQuery('SELECT DISTINCT CLIENT_NAME FROM LIABILITY')
        while q.next():
            clientnames.append(q.value(0).toString())
        if clientnames:
            self.clientname.addItems(clientnames)
        self.clientname.setEditable(True)
        layout.addWidget(self.clientname, 1, 1, 1, 1)
        layout.addWidget(QtGui.QLabel(u'销售类型:'), 2, 0, 1, 1)
        self.salebtn = QtGui.QButtonGroup()
        self.rbDirect = QtGui.QRadioButton(u'直销(A)')
        self.rbIndirect = QtGui.QRadioButton(u'代销(B)')
        self.salebtn.addButton(self.rbDirect)
        self.salebtn.addButton(self.rbIndirect)
        self.rbDirect.setChecked(True)
        self.gbsaletype = QtGui.QGroupBox()
        layout_gbsaletype = QtGui.QHBoxLayout()
        layout_gbsaletype.addWidget(self.rbDirect)
        layout_gbsaletype.addWidget(self.rbIndirect)
        self.gbsaletype.setLayout(layout_gbsaletype)
        layout.addWidget(self.gbsaletype, 2, 1, 1, 1)
        layout.addWidget(QtGui.QLabel(u'认购金额(元)'), 3, 0, 1, 1)
        self.amount = QtGui.QLineEdit()
        self.amount.setValidator(QtGui.QDoubleValidator(0., 10000000000., 2))
        self.amount.textChanged.connect(self.calc_totalrtn)
        layout.addWidget(self.amount, 3, 1, 1, 1)
        layout.addWidget(QtGui.QLabel(u'预期收益率(%)'), 4, 0, 1, 1)
        self.rtn = QtGui.QLineEdit()
        self.rtn.setValidator(QtGui.QDoubleValidator(0., 100., 2))
        self.rtn.textChanged.connect(self.calc_totalrtn)
        layout.addWidget(self.rtn, 4, 1, 1, 1)
        layout.addWidget(QtGui.QLabel(u'认购日'), 5, 0, 1, 1)
        self.subdate = QtGui.QDateEdit(td)
        self.subdate.setCalendarPopup(True)
        self.subdate.dateChanged.connect(self.datecheck)
        layout.addWidget(self.subdate, 5, 1, 1, 1)
        layout.addWidget(QtGui.QLabel(u'封闭期起始日'), 6, 0, 1, 1)
        self.settledate = QtGui.QDateEdit(td)
        self.settledate.setCalendarPopup(True)
        self.settledate.dateChanged.connect(self.datecheck)
        layout.addWidget(self.settledate, 6, 1, 1, 1)
        self.gbtenor = QtGui.QGroupBox(u'认购期限')
        self.tenorbtn = QtGui.QButtonGroup()
        self.rbX = QtGui.QRadioButton(u'标准期限(X型)')
        self.rbY = QtGui.QRadioButton(u'订制期限(Y型)')
        self.rbH = QtGui.QRadioButton(u'活期(H型)')
        self.tenorbtn.addButton(self.rbX)
        self.tenorbtn.addButton(self.rbY)
        self.tenorbtn.addButton(self.rbH)
        self.tenorbtn.buttonClicked.connect(self.tenorbtn_clicked)
        self.rbX.setChecked(True)
        layout_tenor = QtGui.QGridLayout()
        layout_tenor.addWidget(self.rbX, 0, 0, 1, 1)
        layout_tenor.addWidget(self.rbY, 1, 0, 1, 1)
        layout_tenor.addWidget(self.rbH, 2, 0, 1, 1)
        self.xtenors = QtGui.QComboBox()
        self.xtenors.addItems(self.standardtenors)
        self.xtenors.currentIndexChanged.connect(self.tenor_update)
        layout_tenor.addWidget(self.xtenors, 0, 1, 1, 1)
        layout_tenor.addWidget(QtGui.QLabel(u'天'), 0, 2, 1, 1)
        self.ytenors = QtGui.QLineEdit()
        self.ytenors.setEnabled(False)
        self.ytenors.setValidator(QtGui.QIntValidator())
        self.ytenors.textChanged.connect(self.tenor_update)
        layout_tenor.addWidget(self.ytenors, 1, 1, 1, 1)
        layout_tenor.addWidget(QtGui.QLabel(u'天'), 1, 2, 1, 1)
        self.gbtenor.setLayout(layout_tenor)
        layout.addWidget(self.gbtenor, 7, 0, 1, 2)
        layout.addWidget(QtGui.QLabel(u'封闭期到期日'), 8, 0, 1, 1)
        self.expdate = QtGui.QDateEdit(td + datetime.timedelta(days=13))
        self.expdate.setCalendarPopup(True)
        self.expdate.dateChanged.connect(self.datecheck)
        layout.addWidget(self.expdate, 8, 1, 1, 1)
        layout.addWidget(QtGui.QLabel(u'到期操作'), 9, 0, 1, 1)
        self.expops = QtGui.QComboBox()
        q = QtSql.QSqlQuery('SELECT OPS_NAME FROM EXPOPS_TYPE')
        opstypes = []
        while q.next():
            opstypes.append(q.value(0).toString())
        if opstypes:
            self.expops.addItems(opstypes)
            self.expops.setCurrentIndex(2)
        layout.addWidget(self.expops, 9, 1, 1, 1)
        layout.addWidget(QtGui.QLabel(u'申请书编号'), 10, 0, 1, 1)
        self.subcode = QtGui.QLineEdit()
        self.subcode.textChanged.connect(self.check_subcode)
        layout.addWidget(self.subcode, 10, 1, 1, 1)
        layout.addWidget(QtGui.QLabel(u'到期本息'), 11, 0, 1, 1)
        self.totalrtn = QtGui.QLineEdit()
        self.totalrtn.setEnabled(False)
        layout.addWidget(self.totalrtn, 11, 1, 1, 1)
        layout.addWidget(QtGui.QLabel(u'备注'), 12, 0, 1, 1)
        self.comment = QtGui.QLineEdit()
        layout.addWidget(self.comment, 12, 1, 1, 1)

        layout_okcancel = QtGui.QHBoxLayout()
        layout_okcancel.addWidget(self.cancel)
        layout_okcancel.addWidget(self.ok)
        layout.addLayout(layout_okcancel, 13, 0, 1, 2)

        self.setLayout(layout)
Beispiel #30
0
    def insertMonster(self, Nome, Tipo, Allineamento, Taglia, GS, PE,
                      Iniziativa, Sensi, CA, PF, Tempra, Riflessi, Volontà,
                      Resistenze, Velocità, Attacco_mischia, Attacco_distanza,
                      Attacchi_speciali, Incantesimi, Portata, Linguaggi,
                      Forza, Destrezza, Costituzione, Intelligenza, Saggezza,
                      Carisma, AB, BMC, DMC, Talenti, Abilità, QS, Ambiente,
                      Tesoro, CS, Descrizione, Path_Immagine, Path_Tabelle,
                      Path_Icona):
        query = QtSql.QSqlQuery()
        query.prepare(
            "insert into Mostro (Nome, Tipo,Allineamento,Taglia,GS, PE,Iniziativa,Sensi,CA, "
            "PF,Tempra,Riflessi,Volontà, Resistenze,Velocità,Attacco_mischia,Attacco_distanza, "
            "Attacchi_speciali,Incantesimi,Portata,Linguaggi, "
            "Forza,Destrezza,Costituzione,Intelligenza, Saggezza,Carisma,AB,BMC, DMC,Talenti,Abilità,QS, "
            "Ambiente,Tesoro,CS,Descrizione,Immagine,Tabelle,Icona) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, "
            "?, ?, ?, ?, ?, ?, ?, ?, ?, ?,"
            "?, ?, ?, ?, ?, ?, ?, ?, ?, ?,"
            "?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")

        # Immagine
        pixmapImg = QPixmap(Path_Immagine)
        bytesImg = QByteArray()
        bufferImg = QBuffer(bytesImg)
        bufferImg.open(QIODevice.WriteOnly)
        pixmapImg.save(bufferImg, "jpg")

        # Tabelle
        pixmapTab = QPixmap(Path_Tabelle)
        bytesTab = QByteArray()
        bufferTab = QBuffer(bytesTab)
        bufferTab.open(QIODevice.WriteOnly)
        pixmapTab.save(bufferTab, "jpg")

        # Icona
        pixmapIcon = QPixmap(Path_Icona)
        bytesIcon = QByteArray()
        bufferIcon = QBuffer(bytesIcon)
        bufferIcon.open(QIODevice.WriteOnly)
        pixmapIcon.save(bufferIcon, "jpg")

        query.bindValue(0, Nome)
        query.bindValue(1, Tipo)
        query.bindValue(2, Allineamento)
        query.bindValue(3, Taglia)
        query.bindValue(4, GS)
        query.bindValue(5, PE)
        query.bindValue(6, Iniziativa)
        query.bindValue(7, Sensi)
        query.bindValue(8, CA)
        query.bindValue(9, PF)
        query.bindValue(10, Tempra)
        query.bindValue(11, Riflessi)
        query.bindValue(12, Volontà)
        query.bindValue(13, Resistenze)
        query.bindValue(14, Velocità)
        query.bindValue(15, Attacco_mischia)
        query.bindValue(16, Attacco_distanza)
        query.bindValue(17, Attacchi_speciali)
        query.bindValue(18, Incantesimi)
        query.bindValue(19, Portata)
        query.bindValue(20, Linguaggi)
        query.bindValue(21, Forza)
        query.bindValue(22, Destrezza)
        query.bindValue(23, Costituzione)
        query.bindValue(24, Intelligenza)
        query.bindValue(25, Saggezza)
        query.bindValue(26, Carisma)
        query.bindValue(27, AB)
        query.bindValue(28, BMC)
        query.bindValue(29, DMC)
        query.bindValue(30, Talenti)
        query.bindValue(31, Abilità)
        query.bindValue(32, QS)
        query.bindValue(33, Ambiente)
        query.bindValue(34, Tesoro)
        query.bindValue(35, CS)
        query.bindValue(36, Descrizione)
        query.bindValue(37, bytesImg)
        query.bindValue(38, bytesTab)
        query.bindValue(39, bytesIcon)
        query.exec_()