def getAuditEventsDataFrame(startTime, endTime):
    wave_match = {}
    timestampquery = {}
    timestampquery['$gte'] = datetime.fromtimestamp(startTime, None)
    timestampquery['lt'] = datetime.fromtimestamp(endTime, None)
    wave_match['timestamp'] = timestampquery

    group = {
        "$group": {
            "_id": {
                "source_customer_id": "$source_customer_id"
            },
            "authcount": {
                "$sum": {
                    '$cond': [{'$eq': ['$audit_type', 'USER_AUTH']}, 1, 0]
                }
            },
            "workcount": {
                "$sum": {
                    '$cond': [{'$eq': ['$audit_type', 'LOOKING_FOR_WORK']}, 1, 0]
                }
            }
        }
    }
    project = {}
    project['authcount'] = "$authcount",
    project['workcount'] = "$workcount",
    project['customer_id'] = "$_id.source_customer_id",

    df = pd.DataFrame(list(dbc.getMonogClient().data_items.aggregate(
        dbc.create_mongo_aggreagate_pipeline(match=wave_match, project=project, group=group))))
    print(df.to_string())
    return df
Пример #2
0
 def accept(self):
     # Datos
     # Limitar a numeros o alfanumerico
     
     self.datos["Numero Documento"] = unicode(self.ui.labelNDocumento.text())
     self.datos["RS Emisor"] = unicode(self.ui.labelEmisor.text())
     self.datos["RS Receptor"] = unicode(self.ui.labelReceptor.text())
     self.datos["Fecha"] = unicode(self.ui.fechaDateEdit.text())
     self.datos["Sucursal"] =unicode( self.ui.sucursalLineEdit.text())
     self.datos["Glosa"] = unicode(self.ui.glosaLineEdit.text())
     self.datos["Monto Exento"] = unicode(self.ui.montoExcentoSpinBox.value())
     self.datos["Cuenta"] = unicode(self.ui.cuentaProveedoresClienteLineEdit.text())
     self.datos["Contracuenta"] = unicode(self.ui.contracuentaLineEdit.text())
     self.datos["Correlativo"] = unicode(self.ui.correlativoLineEdit.text())
     if(self.ui.activoFijoCheckBox.checkState () == QtCore.Qt.Checked):
         self.datos["Activo Fijo"] = 1
     else:
         self.datos["Activo Fijo"] = 0
     # Si uno de los datos esta vacio
     # TODO: Cambiar color al encontrar error
     fallas = []
     for key, value in self.datos.items():
         if(not ("%s"%value)):
             fallas.append(key)
     error = ""
     for i in fallas:
         error = error+"%s\n"%i
     if(len(fallas)!=0):
         QtGui.QMessageBox.about(self, "Datos incompletos", "Faltan datos a ingresar en los siguientes campos:\n%s"%error)
     else:
         # Guardando
         
         DBController.guardarFactura(self.datos, self.tipo)
         self.resultado = True
         self.close()
Пример #3
0
 def encontrado(self, datos):
     #Codigo encontrado, mostrar nuevo escanearDialog
     #self.thread.parar = True
     if(DBController.existeFactura(self.tipo, datos)):
         qm = QtGui.QMessageBox(self)
         qm.setWindowTitle('Advertencia')
         qm.setText('''Esta factura ya ha sido ingresada.''')
         qm.addButton(QtGui.QMessageBox.Yes).setText("Aceptar")
         qm.setIcon(QtGui.QMessageBox.Warning)
         reply = qm.exec_()
         self.ser.open()
         self.ui.estadoLabel.setText("Estado: Listo")
         #if reply == QtGui.QMessageBox.Yes:
             # Eliminar de la base de datos
          #   print "Editar Dilog!!!"
     else:
         
         agregar = AgregarDocumentoModal(self.tipo, datos)
         if(agregar.resultado):
             self.empresaObj = DBController.empresaPorRut(datos[("Rut Receptor","Rut Emisor")[self.tipo]])
             self.codigos = DBController.obtenerCodigos(self.empresaObj)
             if(self.codigos._esNuevo):
                 my_dialog = ConfigModal([datos[("Rut Receptor","Rut Emisor")[self.tipo]], ""])
                 #la wea y la wehiaguñouoihe´rghioerabrir la wea
             self.window.updateTablas()
         else:
             pass
         self.ui.estadoLabel.setText("Estado: Listo")
         self.ser.open()
Пример #4
0
 def backup(self):
     path = QtGui.QFileDialog.getSaveFileName(self, directory=(os.path.expanduser("~/Documents/")+"dump.sql"), filter="Sql Script (*.sql)")
     if(path!=""):
         try:
             DBController.backup(path)
             #raise Exception("OIADIOASIOHDS")
         except Exception as e:
             traceback.print_exc()
         self.mensaje("Base de datos respaldada en %s"%path)
def getDistinctData(organiztionSubscriptionId):
    getWavesForProjectQuery = 'select wave_id,start_date,end_date from organization_subscription_wave_stats where organization_subscription_id = %(orgid)s '
    resultSet = pd.read_sql_query(getWavesForProjectQuery, dbc.getPostgresSession(),
                                  params={'orgid': organiztionSubscriptionId})
    timezoneQuery = 'select a.id,b.tzid from tickets a, locations b where a.organization_subscription_id = %(orgid)s and a.location_id = b.id'
    timezone_df = pd.read_sql_query(timezoneQuery, dbc.getPostgresSession(),
                                    params={'orgid': organiztionSubscriptionId})

    timeDataframe = createTimeDataframe(resultSet['wave_id'])
    analyzeTimeData(timeDataframe, timezone_df)
def getTimeDataFrameForWave(waveId):
    wave_match = {}
    project_match = {}
    wave_match['organization_subscription_waves.wave_id'] = ObjectId(waveId)
    project_match['ticket_id'] = "$ticket_id",
    project_match['data_item_timestamp'] = "$data_item_timestamp",

    df = pd.DataFrame(list(dbc.getMonogClient().data_items.aggregate(
        dbc.create_mongo_aggreagate_pipeline(match=wave_match, project=project_match))))

    return df
def getDistanceDataFrameForWave(waveId):
    wave_match = {}
    project_match = {}
    wave_match['organization_subscription_waves.wave_id'] = ObjectId(waveId)
    project_match['ticket_id'] = "$ticket_id",
    project_match['data_item_latitude'] = "$data_item_latitude",
    project_match['data_item_longitude'] = "$data_item_longitude",
    project_match['location_latitude'] = "$location.latitude",
    project_match['location_longitude'] = "$location.longitude"

    df = pd.DataFrame(list(dbc.getMonogClient().data_items.aggregate(
        dbc.create_mongo_aggreagate_pipeline(match=wave_match, project=project_match))))

    return df
Пример #8
0
def Firm():
    if bottle.request.get_cookie("access"):
        State = DBController.CheckCookie(
            uuid.UUID(hex=bottle.request.get_cookie("access")))
        if State:
            bottle.response.headers["Content-Type"] = "application/json"
            Name = Wildify(bottle.request.forms.get("Name"))
            PostCode = Wildify(bottle.request.forms.get("PostCode"))
            Language = bottle.request.forms.get("Language")
            return (DBController.QueryFirm(Name, PostCode, Language, State))
    return ({
        "error":
        "Sorry you are not authorised to access this data. Please try a page refresh"
    })
Пример #9
0
 def restaurarDB(self):
     path = QtGui.QFileDialog.getOpenFileName(self, directory=(os.path.expanduser("~/Documents/")+"dump.sql"), filter="Sql Script (*.sql)")
     if(path!=""):
         if(DBController.verificar(path)):
             # Mensaje
             qm = QtGui.QMessageBox(self)
             qm.setWindowTitle('Advertencia')
             qm.setText(QtCore.QString(u"Al restaurar la base de datos se perderán todos los datos ingresados posterior al respaldo.\nEstá seguro de que desea realizar esta operación?"))
             qm.addButton(QtGui.QMessageBox.Yes).setText("Aceptar")
             qm.addButton(QtGui.QMessageBox.No).setText("Cancelar")
             qm.setIcon(QtGui.QMessageBox.Warning)
             reply = qm.exec_()
             if reply == QtGui.QMessageBox.Yes:
                 DBController.restaurar(path)
                 self.updateTablas()
                 self.mensaje("Base de datos restaurada desde %s"%path)
Пример #10
0
 def __init__(self, tipo, datos):
     super(EditarDocumentoModal, self).__init__()
     self.setWindowFlags(QtCore.Qt.WindowSystemMenuHint | QtCore.Qt.WindowTitleHint)
     self.ui=Ui_Dialog_editarDocumento()
     self.ui.setupUi(self)
     # Tipo de documento
     self.tipo = tipo
     titulo = ""
     if(tipo==0):
         titulo = "Editar Documento Compra"
         self.ui.cuentaProveedoresClienteLabel.setText("Cuenta Proveedor")
     elif(tipo==1):
         titulo =  "Editar Documento Venta"
         self.ui.cuentaProveedoresClienteLabel.setText("Cuenta Cliente")
     self.setWindowTitle(titulo)
     #Fecha actual
     self.f = fac = DBController.getFactura(datos, tipo)
     rx = QtCore.QRegExp("[0-9]*")
     qr = QtGui.QRegExpValidator(rx)
     
     self.ui.nDocumentoLineEdit.setValidator( qr )
     self.ui.sucursalLineEdit.setValidator( qr)
     self.ui.correlativoLineEdit.setValidator( qr )
     self.ui.cuentaProveedoresClienteLineEdit.setValidator( qr )
     self.ui.contracuentaLineEdit.setValidator( qr )
     
     self.datos = datos
     self.llenarDatos()
     self.resultado = False
     self.exec_()
Пример #11
0
def getDistinctDeviceData(organiztionSubscriptionId):
    getWavesForProjectQuery = 'select wave_id,start_date,end_date from organization_subscription_wave_stats where organization_subscription_id = %(orgid)s '
    resultSet = pd.read_sql_query(getWavesForProjectQuery,
                                  dbc.getPostgresSession(),
                                  params={'orgid': organiztionSubscriptionId})

    deviceDataframe = createDeviceDataframe(resultSet['wave_id'])
    processDataFrame(deviceDataframe)
Пример #12
0
 def cargarDatos(self):
     
     self.empresaObj = DBController.empresaPorRut(self.empresa[0])
     self.codigos = DBController.obtenerCodigos(self.empresaObj)
     if(not self.codigos._esNuevo):
         self.ui.labelInfo.setVisible(False)
     #TODO: Cargar datos con la cosa de la bd
     # self.empresa = arreglo con empresa[0] = rut, empresa[1] = nombre, 
     self.ui.facturaElectronicaLineEdit.setText(self.codigos.c33)
     self.ui.facturaParcialElectronicaLineEdit.setText(self.codigos.c33p)
     self.ui.facturaExcentaElectronicaLineEdit.setText(self.codigos.c34)
     self.ui.facturaDeCompraElectronicaLineEdit.setText(self.codigos.c46)
     self.ui.facturaDeCompraParcialElectronicaLineEdit.setText(self.codigos.c46p)  
     self.ui.notaDebitoElectronicaLineEdit.setText(self.codigos.c56)  
     self.ui.notaDebitoParcialElectronicaLineEdit.setText(self.codigos.c56p)
     self.ui.notaCreditoElectronicaLineEdit.setText(self.codigos.c61)
     self.ui.notaCreditoParcialElectronicaLineEdit.setText(self.codigos.c61p)
Пример #13
0
 def updateEmpresas(self):
     self.ui.filtrarEmpresaComboBox.clear()
     self.ui.filtrarEmpresaComboBox.addItem("Todas")
     self.empresas = []
     self.empresas.append(["Todas", ""])
     for e in DBController.getEmpresas():
         self.empresas.append(e)
         self.ui.filtrarEmpresaComboBox.addItem(e[0]+" | "+e[1])
Пример #14
0
def hello():
    try:
        GUID = uuid.uuid4()
        DBController.AddCookie(GUID, unicode("NSW"))
        bottle.response.set_cookie("access", str(GUID), max_age=28800)  #Domain
        return (stopgap.a)
    except Exception as e:
        return (e)
def getDistinctData(organiztionSubscriptionId):
    getWavesForProjectQuery = 'select wave_id,start_date,end_date from organization_subscription_wave_stats where organization_subscription_id = %(orgid)s '
    resultSet = pd.read_sql_query(getWavesForProjectQuery, dbc.getPostgresSession(),
                                  params={'orgid': organiztionSubscriptionId})

    print(resultSet.to_string())

    waveIdList = resultSet['wave_id']
    distanceDataFrame = createDistanceDataframe(waveIdList)
Пример #16
0
def getTestConfigs():
    connections = int(request.form['connections'])
    time = int(request.form['time'])
    operations = int(request.form['operation_number'])
    conection = DBController.DBController('centralDB', 'postgres', 'aniram',
                                          'localhost')
    ob = Objects.Configs(connections, time, operations)
    conection.connection(ob)
    return render_template('test_result.html',
                           results=conection.connection(ob))
Пример #17
0
 def inicializarDatos(self, tabla):
     self.updateFechas()
     documentos = DBController.obtenerLista(tabla.objectName(), None, None, None)
     tabla.setRowCount(len(documentos))
     for i in range(len(documentos)):
         for j in range(len(documentos[i])):
             item = QtGui.QTableWidgetItem()
             item.setText(documentos[i][j])
             item.setTextAlignment(QtCore.Qt.AlignHCenter|QtCore.Qt.AlignVCenter|QtCore.Qt.AlignCenter)
             tabla.setItem(i, j, item) # QtGui.QTableWidgetItem(documentos[i][j])
     for i in range(tabla.verticalHeader().count()):
         tabla.verticalHeader().setResizeMode(i, QtGui.QHeaderView.Fixed)
     tabla.setColumnHidden(tabla.horizontalHeader().count()-1, True)
Пример #18
0
 def llenarUltima(self):
     
     fact = DBController.ultimaFactura(self.datos["Rut Emisor"])
     if(fact):
         self.datos["Sucursal"] = unicode(fact.sucursal)
         self.datos["Cuenta"] = unicode(fact.cuentaProveedores)
         self.datos["Glosa"] = unicode(fact.Glosa)
         self.datos["Contracuenta"] = unicode(fact.contracuenta)
         self.datos["Activo Fijo"] = fact.activoFijo
         self.datos["RS Emisor"] = fact.empresaEmisor.rS
         self.datos["RS Receptor"] = fact.empresaReceptor.rS
         self.ui.sucursalLineEdit.setText(self.datos["Sucursal"])
         self.ui.glosaLineEdit.setText(self.datos["Glosa"])
         self.ui.contracuentaLineEdit.setText(self.datos["Contracuenta"])
         self.ui.cuentaProveedoresClienteLineEdit.setText(self.datos["Cuenta"])
Пример #19
0
    def filtrar(self, data):
        if(self.ui.filtrarEmpresaComboBox.currentIndex() == 0):
            self.ui.editarEmpresaToolButton.setEnabled(False)
        else:
            self.ui.editarEmpresaToolButton.setEnabled(True)
        tablas = [self.ui.tableWidget_Compras, self.ui.tableWidget_Ventas]
        f = self.fechas[self.ui.fechaComboBox.currentIndex()]
        if data != "":
            for tabla in tablas:
                documentos = DBController.obtenerLista(tabla.objectName(), unicode(self.empresas[data][0]), f[1], f[2])

                tabla.clearContents()
                tabla.setRowCount(len(documentos))
                for i in range(len(documentos)):
                    for j in range(len(documentos[i])):
                        item = QtGui.QTableWidgetItem()
                        item.setText(documentos[i][j])
                        item.setTextAlignment(QtCore.Qt.AlignHCenter|QtCore.Qt.AlignVCenter|QtCore.Qt.AlignCenter)
                        tabla.setItem(i, j, item) # QtGui.QTableWidgetItem(documentos[i][j])
                tabla.verticalHeader().setVisible(True)
                tabla.resizeColumnsToContents()
Пример #20
0
def AddCookie():
    cookie = bottle.request.query["cookie"]
    state = bottle.request.query["state"]
    print(cookie)
    DBController.AddCookie(cookie, state)
Пример #21
0
def Test():
    stime = datetime.datetime.now()
    res = DBController.QueryFirm('g%', '%', "hindi", 'NSW')
    ftime = datetime.datetime.now()
    print(ftime - stime)
    return (res)
Пример #22
0
def BuildTest():
    DBController.Build(0)
def main():
    dbc.configureDatabase()
    dataFrame = getDistinctData(sys.argv[1])
def main():
    dbc.configureDatabase()
    timestampDataframe = getDistinctData(sys.argv[1])
Пример #25
0
def updateLanguageTranslation(user, language):
    boolInsert = dbController.insertNewUser(user, "en", language)
    if not boolInsert:
        dbController.updateUser(user, language, True)
Пример #26
0
import sys

from PyQt5 import QtWidgets, uic
from PyQt5.QtWidgets import QAbstractItemView

import DBController
import ErrorMessage
from DBController import SQLExecutor

tabledata = DBController.SQLExecutor(host="159.203.59.83",
                                     username="******",
                                     password="******",
                                     database="gamestop")
start = True
rowid = 0


class Ui(QtWidgets.QMainWindow):
    def __init__(self):
        super(Ui, self).__init__()
        uic.loadUi('a.ui', self)

        # GameTable
        self.button = self.findChild(QtWidgets.QPushButton,
                                     'search1')  # Find the button
        self.button.clicked.connect(self.searchGame)

        self.input = self.findChild(QtWidgets.QLineEdit, 'searchBox1')

        self.pss = self.findChild(QtWidgets.QTableWidget, 'tableGame')
        self.pss.setSelectionBehavior(QAbstractItemView.SelectRows)
Пример #27
0
from flask import request, url_for, jsonify, abort
from flask_api import FlaskAPI, status, exceptions
from flask_cors import CORS
import json

from DBController import *
from Teacher import *
from Student import *

app = FlaskAPI(__name__)
dbc = DBController()
student = Student(dbc)
teacher = Teacher(dbc, student)


CORS(app)


@app.route('/lolo/api/v1.0/user/register', methods=['POST'])
def register_user():
    if not request.json:
        abort(400)
    email = request.json["data"]["user"]["email"]
    language_to_learn = request.json["data"]["user"]["language_to_learn"]
    userid = dbc.insertUser(email, language_to_learn)
    if userid:
        return jsonify(
            {
                "data": {
                    "message": "Successfully registered",
                    "id": userid
Пример #28
0
def test_insert_comments:
	params = { "user" : "nisreen", "host" : '127.0.0.1', "port" : "5432", "database" : 'youtube_comments'}
	db = DBController(params)
	comment = Comment(video_id = '_VB39Jo8mAQ', comment_id= 'test_test_test', comment=text)
	db.insert_comments(comment)
Пример #29
0
def updateLanguageInputDefault(user, language):
    boolInsert = dbController.insertNewUser(user, language, "es")
    if not boolInsert:
        dbController.updateUser(user, language, False)
Пример #30
0
def test():
    conection = DBController.DBController('centralDB', 'postgres', 'aniram',
                                          'localhost')
    conection.servisiosMasCaros()
Пример #31
0
 def clicked(self, position):
     if(self.sender().rowCount()==0): # Ninguna fila en la tabla
         return
     tabla = self.sender()
     menu = QtGui.QMenu()
     editarAction = menu.addAction("Editar")
     eliminarAction = menu.addAction("Eliminar")
     contabilizar = 0
     for idx in reversed(tabla.selectionModel().selectedRows()):
         if(tabla.item(idx.row(),0).text()=="No"):
             contabilizar = 1
             break
     contabilizarAction = None
     if(contabilizar):
         contabilizarAction = menu.addAction("Contabilizar")
     else:
         contabilizarAction = menu.addAction("Descontabilizar")
     action = menu.exec_(tabla.viewport().mapToGlobal(position))
     row = tabla.rowAt(position.y())
     allRows = tabla.columnCount()
     
     if action == contabilizarAction:
         lista = []
         for idx in reversed(tabla.selectionModel().selectedRows()):
             datos = {}
             for i in range(tabla.horizontalHeader().count()):
                 datos[ unicode(tabla.horizontalHeaderItem(i).text())] =  unicode(tabla.item(idx.row(),i).text())
             lista.append(datos)
         if(self.sender().objectName()=="tableWidget_Ventas"):
             DBController.contabilizar(self, 1,contabilizar, lista)
         else:
             DBController.contabilizar(self, 0,contabilizar, lista)
     elif action == editarAction:
         datos = {}
         
         for i in range(tabla.horizontalHeader().count()):
             datos[ unicode(tabla.horizontalHeaderItem(i).text())] =  unicode(tabla.item(row,i).text())
         tipo = 0
         if(self.sender().objectName()=="tableWidget_Ventas"):
             tipo = 1
         fac = DBController.getFactura(datos, tipo)
         datos["Cuenta"] = fac.cuentaProveedores
         datos["Correlativo"] = unicode(fac.correlativo)
         my_dialog = EditarDocumentoModal(tipo, datos ) 
         if(my_dialog.resultado):
             self.updateTablas()
     elif action == eliminarAction:
         # TODO: lanzar evento al oprimir suprimir,
         qm = QtGui.QMessageBox(self)
         qm.setWindowTitle('Eliminar documento')
         if( len(tabla.selectionModel().selectedRows()) == 1):
             qm.setText("Esta seguro de que desea eliminar el documento ?")
         else:
             qm.setText("Esta seguro de que desea eliminar los %d documentos ?"%len(tabla.selectionModel().selectedRows()))
         qm.addButton(QtGui.QMessageBox.Yes).setText("Si")
         qm.addButton(QtGui.QMessageBox.No).setText("No")
         qm.setIcon(QtGui.QMessageBox.Question)
         reply = qm.exec_()
         
         if reply == QtGui.QMessageBox.Yes:
             for idx in reversed(tabla.selectionModel().selectedRows()):
                 DBController.eliminarFactura(tabla.item(idx.row(),16).text())
                 tabla.removeRow(idx.row())
Пример #32
0
 def deshacer(self):
     DBController.contabilizarFacturas(self.contabilizados, self.cambiarContabilizados)
     self.ui.deshacerToolButton.setEnabled(False)
     self.ui.rehacerToolButton.setEnabled(True)
     self.updateTablas()
Пример #33
0
 def exportar(self):
     # Opciones
     if(self.ui.filtrarEmpresaComboBox.currentIndex() == 0):
         qm = QtGui.QMessageBox(self)
         qm.setWindowTitle('Advertencia')
         qm.setText(u'¿Esta seguro de que desea exportar todas las facturas?')
         qm.addButton(QtGui.QMessageBox.Yes).setText("Si")
         qm.addButton(QtGui.QMessageBox.No).setText("No")
         qm.setIcon(QtGui.QMessageBox.Warning)
         reply = qm.exec_()
         if reply == QtGui.QMessageBox.No:
             return
     
     
     contabilizar = self.ui.contabilizarCheckBox.isChecked()
     guardar = self.ui.guardarCheckBox.isChecked()
     centro = self.ui.centroLineEdit.text() 
     especial = self.ui.codigoLineEdit.text()
     archivo = None
     correlativo = self.ui.correlativoDoubleSpinBox.value()
     if(self.sender().objectName() == "toolButtonPlano"):
         archivo = QtGui.QFileDialog.getSaveFileName(self, directory=(os.path.expanduser("~/Documents/")+"Facturas.tcv"), filter="Texto tcv (*.tcv)")
     else:    
         archivo = QtGui.QFileDialog.getSaveFileName(self, directory=(os.path.expanduser("~/Documents/")+"Facturas.xls"), filter="Microsoft Excel (*.xls)")
     if(archivo != ""):
         self.ui.deshacerToolButton.setEnabled(False)
         self.ui.rehacerToolButton.setEnabled(False)
         #TODO: try permiso de escritura 
         if(self.sender().objectName() != "toolButtonPlano"):
             month = self.fechas[self.ui.fechaComboBox.currentIndex()][1]
             year = self.fechas[self.ui.fechaComboBox.currentIndex()][2]
             print "YEYYEYE",year
             print "MJSAASD",month
             try:
                 if(contabilizar):
                     tablas = [self.ui.tableWidget_Compras, self.ui.tableWidget_Ventas]
                     self.contabilizados = []
                     self.cambiarContabilizados = False
                     for tabla in tablas:
                         allRows = tabla.rowCount()
                         for row in xrange(0,allRows):
                             c = unicode(tabla.item(row,0).text())
                             Id = unicode(tabla.item(row,tabla.horizontalHeader().count()-1).text())
                             if(c == "No"):
                                 self.contabilizados.append(int(Id))
                 DBController.exportarExcel(unicode(self.empresas[self.ui.filtrarEmpresaComboBox.currentIndex()][0]), archivo, contabilizar, guardar, month, year, correlativo, centro, especial)
                 print "WEWEWE"
                 
                 if(len(self.contabilizados)!=0):
                     #DBController.contabilizarFacturas(self.contabilizados, 1)
                     self.ui.deshacerToolButton.setEnabled(True)
                 self.updateTablas()
                 self.mensaje("Archivo exportado en: " + unicode(archivo))
                 
                 qm = QtGui.QMessageBox(self)
                 qm.setWindowTitle('Abrir archivo')
                 qm.setText("Exportado existosamente. Desea abrir el archivo?")
                 qm.addButton(QtGui.QMessageBox.Yes).setText("Si")
                 qm.addButton(QtGui.QMessageBox.No).setText("No")
                 qm.setIcon(QtGui.QMessageBox.Information)
                 reply = qm.exec_()
                 if reply == QtGui.QMessageBox.Yes:
                     os.startfile(unicode(archivo))
                 
             except:
                 traceback.print_exc()
                 qm = QtGui.QMessageBox(self)
                 qm.setWindowTitle('Error de escritura')
                 qm.setText("Se produjo un error al exportar el archivo, verifique que no tiene el archivo de salida abierto")
                 qm.addButton(QtGui.QMessageBox.Yes).setText("Aceptar")
                 qm.setIcon(QtGui.QMessageBox.Warning)
                 reply = qm.exec_()
                 DBController.contabilizarFacturas(self.contabilizados, False)
Пример #34
0
            "$unwind":
            "$testedWords"
        }, {
            "$match": {
                "testedWords.lang": lang,
                'testedWords.nbOfSuccess': {
                    '$eq': 0
                }
            }
        }, {
            "$project": {
                "testedWords.wordID": 1,
                "_id": 0
            }
        }])
        #to only have distinct wordIds in res
        res = list(res)
        seen = set()
        res_ok = [
            elem for elem in res
            if [(elem["testedWords"]["wordID"]) not in seen,
                seen.add(elem["testedWords"]["wordID"])][0]
        ]
        return list(res_ok)


if __name__ == '__main__':
    db = DBController()
    sd = Student(db)
    print(sd.getPercentageOfWordsPassed("5c9d3e6b2344ef4d810419e9"))
Пример #35
0
 def __init__(self):
     self.dbController = DBController.DBController()
     self.dataAnalysis = DataAnalysis.DataAnalysis()
Пример #36
0
 def updateFechas(self):
     self.ui.fechaComboBox.clear()
     self.fechas = DBController.obtenerFechas()
     for f in self.fechas:
         self.ui.fechaComboBox.addItem(f[0])