コード例 #1
0
    def __init__(self, dc, data):
        super().__init__()

        ts = TranslatedStrings()
        ts.set_lang()

        self.dc = dc
        self.data = data

        #print(data)

        self.setWindowTitle(ts("Tabla Score OVCC"))
        self.setWindowIcon(\
            QIcon(utils.ruta_absoluta('resources/icons/tsr.png')))
        self.setMinimumSize(QSize(570, 620))

        self.table_model = QStandardItemModel(self)
        self.table_model.setHorizontalHeaderLabels(
            [ts("Riesgo"), ts('Controles'),
             ts('OVCC Asignadas')])

        for i in self.data.to_dict('records'):
            self.table_model.appendRow([
                QStandardItem(i['Riesgo Material']),
                QStandardItem(str(i["q Control"])),
                QStandardItem(str(int(i["OVCC asignadas (Riesgo)"]))),
            ])

        self.table_view = QTableView(self)  # Create a self.table_view
        self.table_view.setModel(self.table_model)
        self.table_view.setAlternatingRowColors(True)
        self.table_view.setSelectionMode(QAbstractItemView.NoSelection)
        self.table_view.setSelectionBehavior(QAbstractItemView.SelectRows)
        self.table_view.resizeRowsToContents()
        self.table_view.horizontalHeader().resizeSection(0, 250)
        self.table_view.horizontalHeader().resizeSection(1, 80)
        self.table_view.horizontalHeader().resizeSection(2, 80)
        self.table_view.horizontalHeader().resizeSection(3, 80)
        self.table_view.horizontalHeader().setStretchLastSection(True)

        self.table_view.setEditTriggers(QTableWidget.NoEditTriggers)

        self.btn_continuar = QPushButton(ts('Continuar'), self)
        self.btn_continuar.setFixedSize(180, 40)

        self.btn_atras = QPushButton(ts('Atrás'), self)
        self.btn_atras.setFixedSize(180, 40)

        self.grid = QGridLayout(self)
        self.grid.addWidget(self.table_view, 0, 0, 1, -1)
        self.grid.addWidget(self.btn_continuar, 1, 2)
        self.grid.addWidget(self.btn_atras, 1, 0)

        self.setLayout(self.grid)
コード例 #2
0
ファイル: cc_table_window.py プロジェクト: andresUnit/BHP
    def __init__(self, dc, data, fecha):
        super().__init__()

        ts = TranslatedStrings()
        ts.set_lang()

        self.dc = dc
        self.data = data

        self.setWindowTitle(ts("Asignación de OVCC"))
        self.setWindowIcon(\
            QIcon(utils.ruta_absoluta('resources/icons/tsr.png')))

        table_header = [
            ts("Riesgo"),
            ts('Control'),
            ts('Observaciones asignadas')
        ]
        """
            ,
            (fecha.toPython()).strftime('%Y-%m-%d'),
            (fecha.toPython()+timedelta(days=7)).strftime('%Y-%m-%d'),
            (fecha.toPython()+timedelta(days=14)).strftime('%Y-%m-%d'),
            (fecha.toPython()+timedelta(days=21)).strftime('%Y-%m-%d')
            ]
        """
        self.table_model = CCTableModel(self, self.generate_table_data(),
                                        table_header)
        self.table_view = QTableView(self)  # Create a self.table_view
        self.table_view.setModel(self.table_model)
        self.table_view.setAlternatingRowColors(True)
        self.table_view.setSelectionMode(QAbstractItemView.NoSelection)
        self.table_view.setSelectionBehavior(QAbstractItemView.SelectRows)
        self.table_view.resizeRowsToContents()
        self.table_view.horizontalHeader().setSectionResizeMode(
            QHeaderView.Stretch)
        self.table_view.horizontalHeader().setStretchLastSection(True)

        self.btn_continuar = QPushButton(ts('Continuar'), self)
        self.btn_continuar.setFixedSize(180, 40)
        self.btn_continuar.clicked.connect(
            lambda l: print(self.get_input_data))

        self.btn_atras = QPushButton(ts('Atrás'), self)
        self.btn_atras.setFixedSize(180, 40)

        self.grid = QGridLayout(self)
        self.grid.addWidget(self.table_view, 0, 0, 1, -1)
        self.grid.addWidget(self.btn_continuar, 1, 2)
        self.grid.addWidget(self.btn_atras, 1, 0)

        self.setLayout(self.grid)
コード例 #3
0
    def __init__(self, datacontroler, score_count_):
        super().__init__()

        ts = TranslatedStrings()
        ts.set_lang()

        self.dc = datacontroler
        self.score_count = score_count_

        self.inner_widget = QWidget(self)
        self.tab = QTabWidget(self)

        gs = self.dc.gg.GrScore(dc=self.dc,
                                op=self.dc.op,
                                risk_count_=self.score_count,
                                parent=self.inner_widget,
                                width=5,
                                height=15,
                                dpi=10000)
        try:
            gp = self.dc.gg.GrPred(dc=self.dc,
                                   op=self.dc.op,
                                   risk_count_=self.dc.predictivo.datos,
                                   parent=self.inner_widget,
                                   width=5,
                                   height=15,
                                   dpi=10000)
            self.tab.addTab(gp, ts("Modelo Predictivo"))
        except:
            pass
        self.setWindowTitle(ts("Ranking para Riesgos Materiales"))
        self.setWindowIcon(\
            QIcon(utils.ruta_absoluta('resources/icons/tsr.png')))

        self.grid = QGridLayout(self)

        self.btn_atras = QPushButton(ts("Cerrar"), self)
        self.btn_atras.clicked.connect(self.hide)

        self.tab.addTab(gs, ts("Modelo Score"))
        self.grid.addWidget(self.tab, 0, 0, 1, 2)
        self.grid.addWidget(self.btn_atras, 2, 0)

        self.setLayout(self.grid)
コード例 #4
0
ファイル: asignacion_window.py プロジェクト: andresUnit/BHP
    def __init__(self, dc, data):
        super().__init__()

        ts = TranslatedStrings()
        ts.set_lang()

        self.dc = dc
        self.data = data

        self.setWindowTitle(ts("Asignación de OVCC"))

        table_header = [
            ts("Cantidad OVCC"),
            ts('ID Persona'),
            ts('Nombre'),
        ]

        self.table_model = AsignacionTableModel(self,
                                                self.generate_table_data(),
                                                table_header)
        self.table_view = QTableView(self)  # Create a self.table_view
        self.table_view.setModel(self.table_model)
        self.table_view.setAlternatingRowColors(True)
        self.table_view.setSelectionMode(QAbstractItemView.NoSelection)
        self.table_view.setSelectionBehavior(QAbstractItemView.SelectRows)
        self.table_view.resizeRowsToContents()
        self.table_view.horizontalHeader().setSectionResizeMode(
            QHeaderView.Stretch)
        self.table_view.horizontalHeader().setStretchLastSection(True)

        self.btn_continuar = QPushButton(ts('Continuar'), self)
        self.btn_continuar.setFixedSize(180, 40)

        self.btn_atras = QPushButton(ts('Atrás'), self)
        self.btn_atras.setFixedSize(180, 40)

        self.grid = QGridLayout(self)
        self.grid.addWidget(self.table_view, 0, 0, 1, -1)
        self.grid.addWidget(self.btn_continuar, 1, 2)
        self.grid.addWidget(self.btn_atras, 1, 0)

        self.setLayout(self.grid)
コード例 #5
0
    def __init__(self):
        super().__init__()
        global ts
        ts = TranslatedStrings()

        self.setWindowIcon(\
            QIcon(utils.ruta_absoluta('resources/icons/tsr.png')))

        self.setWindowTitle(ts("Iniciar Sesión"))
        self.setMinimumWidth(380)

        self.layout = QGridLayout(self)
        self.setLayout(self.layout)

        self.lbl_bhp = QLabel(self)
        self.lbl_bhp.setPixmap(
            QPixmap(utils.ruta_absoluta('resources/logos/bhp.png')))
        self.lbl_bhp.setAlignment(Qt.AlignCenter)
        self.layout.addWidget(self.lbl_bhp, 0, 0, 1, -1)

        self.lbl_title = QLabel(ts("Herramienta OVCC"))
        self.lbl_title.setFont(QFont('SansSerif', 14))
        self.lbl_title.setAlignment(Qt.AlignCenter)
        self.lbl_title.setStyleSheet("QLabel {color: #E35302;}")
        self.layout.addWidget(self.lbl_title, 1, 0, 1, -1)

        self.lbl_idioma = QLabel(ts("Idioma"), self)
        self.lbl_idioma.setFixedWidth(130)
        self.lbl_idioma.setAlignment(Qt.AlignLeft)
        self.layout.addWidget(self.lbl_idioma, 2, 0)

        self.switch = SwitchButton(w1="ES", w2="EN")
        self.switch.toggled.connect(self.toggle_language)
        self.layout.addWidget(self.switch, 2, 1)

        self.lbl_usuario = QLabel(ts("Nombre de Usuario"), self)
        self.layout.addWidget(self.lbl_usuario, 3, 0)

        self.txt_usuario = QLineEdit(self)
        self.lbl_usuario.setBuddy(self.txt_usuario)
        self.lbl_usuario.setAlignment(Qt.AlignLeft)
        self.layout.addWidget(self.txt_usuario, 3, 1)

        self.txt_password = QLineEdit(self)
        self.txt_password.setEchoMode(QLineEdit.Password)
        self.lbl_password = QLabel(ts("Contraseña"), self)
        self.lbl_password.setBuddy(self.txt_password)
        self.lbl_password.setAlignment(Qt.AlignLeft)
        self.layout.addWidget(self.lbl_password, 4, 0)
        self.layout.addWidget(self.txt_password, 4, 1)

        self.btn_continuar = QPushButton(ts("Continuar"), self)
        self.layout.addWidget(self.btn_continuar, 5, 0, 1, -1)
コード例 #6
0
ファイル: file_widget.py プロジェクト: andresUnit/BHP
    def __init__(self, parent, desc, processor, cmb=False):
        super(FileWidget, self).__init__()

        global ts
        ts = TranslatedStrings()

        self.archivo = None
        self.setMinimumSize(300, 45)
        self.desc = desc
        self.processor = processor

        self.cmb = cmb

        widget_layout = QHBoxLayout()

        self.btn_cargar = QPushButton(ts("Cargar {}").format(desc), self)
        self.btn_cargar.clicked.connect(self.click_cargar)
        self.btn_cargar.setFixedWidth(180)

        widget_layout.addWidget(self.btn_cargar)

        self.img_check = QLabel(self)
        pixmap = QPixmap(utils.ruta_absoluta('resources/icons/file_ok.png'))
        self.img_check.setPixmap(pixmap)
        self.img_check.setVisible(False)

        widget_layout.addWidget(self.img_check)
        widget_layout.addStretch()

        btn_borrar_text = ts("Borrar Todo")

        if self.cmb:
            self.cmb_meses = QComboBox()
            self.cmb_meses.setSizeAdjustPolicy(QComboBox.AdjustToContents)
            self.cmb_meses.addItems(self.processor.meses)
            widget_layout.addWidget(self.cmb_meses)

            self.lbl_ultima_fecha = QLabel()
            #self.lbl_ultima_fecha.setText('Ningún mes seleccionado')
            widget_layout.addWidget(self.lbl_ultima_fecha)

            btn_borrar_text = ts("Borrar Mes")

        self.btn_borrar = QPushButton(self)
        self.btn_borrar.setText(btn_borrar_text)
        self.btn_borrar.setMaximumWidth(110)
        self.btn_borrar.clicked.connect(self.click_borrar)
        widget_layout.addWidget(self.btn_borrar)

        self.setLayout(widget_layout)
コード例 #7
0
    def __init__(self, dc):
        super().__init__()

        global ts
        ts = TranslatedStrings()

        self.dc = dc

        self.grid = QGridLayout(self)
        self.setLayout(self.grid)

        self.setWindowTitle(ts("Ingreso Personal"))
        self.setWindowIcon(\
            QIcon(utils.ruta_absoluta('resources/icons/tsr.png')))
        self.setMinimumSize(QSize(560, 420))

        self.archivos = dict()

        self.w_personal =  FileWidget(self, ts("Personal"), self.dc.personal,
            cmb=False)
        self.w_personal.sig_archivo_agregado.connect(self.slot_personal_agregar)
        self.w_personal.sig_archivo_agregado.connect(self.create_table)

        self.w_personal.sig_archivo_eliminado.connect(self.slot_personal_eliminar)
        self.grid.addWidget(self.w_personal, 0, 0, 1, -1)

        self.lbl_selected = QLabel(self)
        self.lbl_selected.setFont(QFont('SansSerif', 12))
        self.lbl_selected.setText("")
        self.grid.addWidget(self.lbl_selected,  2, 0, 1, -1)


        self.btn_continuar = QPushButton(ts("Continuar"), self)
        self.btn_continuar.clicked.connect(self.continuar)
        #self.btn_atras = QPushButton(ts("Atrás"), self)
        
        self.btn_ejemplo = QPushButton(ts("Formato Personal"),self)
        self.btn_ejemplo.clicked.connect(self.click_ejemplo)
        

        self.grid.addWidget(self.btn_continuar, 4, 1)
        self.grid.addWidget(self.btn_ejemplo,   1, 0)
        #self.grid.addWidget(self.btn_atras,     3, 0)

        self.create_table()
        self.msg = None
コード例 #8
0
    def __init__(self, dc, riesgos):
        super().__init__()

        global ts
        ts = TranslatedStrings()

        self.dc = dc
        self.riesgos = riesgos

        self.setWindowTitle(ts("Selección de Riesgos"))
        self.setWindowIcon(\
            QIcon(utils.ruta_absoluta('resources/icons/tsr.png')))
        self.setMinimumSize(QSize(560, 620))

        self.tree = QTreeWidget()
        self.tree.setColumnCount(1)
        self.tree.setHeaderLabel(ts("Riesgos en {}").format(self.dc.op))
        self.tree.insertTopLevelItems(0, self.gen_items())
        self.tree.setAlternatingRowColors(True)
        self.tree.itemClicked.connect(self.update_lbl_selected)

        self.grid = QGridLayout(self)
        self.setLayout(self.grid)

        self.lbl_numselected = QLabel("Selected: ", self)

        self.btn_continuar = QPushButton(ts("Continuar"), self)
        self.btn_atras = QPushButton(ts("Atrás"), self)
        self.btn_perfil = QPushButton(ts("Algoritmo utilizado"), self)
        self.btn_grafico = QPushButton(ts("Mostrar Gráficos"), self)
        self.btn_grafico.clicked.connect(self.update_lbl_selected)

        #                                        |col|row|colspan|rowspan|
        self.grid.addWidget(self.btn_perfil, 0, 0)
        self.grid.addWidget(self.btn_grafico, 0, 1)
        self.grid.addWidget(self.lbl_numselected, 0, 2)
        self.grid.addWidget(self.tree, 1, 0, 1, -1)
        self.grid.addWidget(self.btn_continuar, 2, 2)
        self.grid.addWidget(self.btn_atras, 2, 0)

        self.update_lbl_selected()
コード例 #9
0
    def __init__(self, dc):
        super().__init__()

        global ts
        ts = TranslatedStrings()
        ts.set_lang()

        self.title = ts("Carga de Archivos")
        self.archivos = dict()

        self.dc = dc

        self.setWindowIcon(
            QIcon(utils.ruta_absoluta('resources/icons/tsr.png')))
        self.setWindowTitle(self.title)

        window_layout = QGridLayout()
        self.setLayout(window_layout)

        self.setMinimumWidth(500)
        """
            Imágenes
        """

        lbl_bhp = QLabel(self)
        pixmap = QPixmap(utils.ruta_absoluta('resources/logos/bhp.png'))
        lbl_bhp.setPixmap(pixmap)
        lbl_bhp.setMinimumWidth(220)

        lbl_tsr = QLabel(self)
        pixmap2 = QPixmap(utils.ruta_absoluta('resources/logos/tsr.png'))
        lbl_tsr.setPixmap(pixmap2)
        lbl_tsr.setMinimumWidth(220)

        window_layout.addWidget(lbl_bhp, 0, 0, 1, 2)
        window_layout.addWidget(lbl_tsr, 0, 2)
        """
            Selectores de Archivos
        """

        self.w_ovcc = FileWidget(self, ts("OVCC"), self.dc.ovcc, cmb=True)
        self.w_eventos = FileWidget(self,
                                    ts("Eventos"),
                                    self.dc.eventos,
                                    cmb=True)
        self.w_riesgos = FileWidget(self,
                                    ts("Perfil de Riesgos"),
                                    self.dc.riesgos,
                                    cmb=False)
        self.w_predictivo = FileWidget(self,
                                       ts("Modelo Predictivo"),
                                       self.dc.predictivo,
                                       cmb=False)
        self.w_flexms = FileWidget(self,
                                   ts("Llave Flex EMS"),
                                   self.dc.predictivo,
                                   cmb=False)

        self.w_ovcc.sig_archivo_agregado.connect(self.slot_ovcc_agregar)
        self.w_eventos.sig_archivo_agregado.connect(self.slot_eventos_agregar)
        self.w_riesgos.sig_archivo_agregado.connect(self.slot_riesgos_agregar)
        self.w_predictivo.sig_archivo_agregado.connect(
            self.slot_predictivo_agregar)
        self.w_flexms.sig_archivo_agregado.connect(self.slot_flexms_agregar)

        self.w_ovcc.sig_archivo_eliminado.connect(self.slot_ovcc_eliminar)
        self.w_eventos.sig_archivo_eliminado.connect(
            self.slot_eventos_eliminar)
        self.w_riesgos.sig_archivo_eliminado.connect(
            self.slot_riesgos_eliminar)
        self.w_predictivo.sig_archivo_eliminado.connect(
            self.slot_predictivo_eliminar)
        self.w_flexms.sig_archivo_eliminado.connect(self.slot_flexms_eliminar)

        window_layout.addWidget(self.w_ovcc, 1, 0, 1, -1)
        window_layout.addWidget(self.w_eventos, 2, 0, 1, -1)
        window_layout.addWidget(self.w_predictivo, 3, 0, 1, -1)
        window_layout.addWidget(self.w_riesgos, 4, 0, 1, -1)
        window_layout.addWidget(self.w_flexms, 5, 0, 1, -1)
        """
            Boton continuar
        """

        self.lbl_cmbmes = QLabel(self)
        self.lbl_cmbmes.setText(ts("Meses disponibles para el análisis"))
        self.cmb_mes = QComboBox(self)
        self.cmb_mes.addItems(self.dc.meses)

        self.btn_continuar = QPushButton(ts('Continuar'), self)
        self.btn_continuar.setFixedSize(180, 40)

        window_layout.addWidget(self.lbl_cmbmes, 6, 0)
        window_layout.addWidget(self.cmb_mes, 6, 1)
        window_layout.addWidget(self.btn_continuar, 6, 2)
コード例 #10
0
    def __init__(self, pc, dc, data, fecha):
        super().__init__()

        global ts
        ts = TranslatedStrings()

        self.pc = pc
        self.dc = dc
        self.data = data
        self.fecha = fecha

        #        print(data)

        self.setWindowTitle(ts("Exportar CSV"))
        self.setWindowIcon(\
            QIcon(utils.ruta_absoluta('resources/icons/tsr.png')))
        #self.setMinimumSize(QSize(570, 620))

        self.table_model = QStandardItemModel(self)
        #self.table_model.setHorizontalHeaderLabels()

        for i in self.data.to_dict('records'):
            self.table_model.appendRow([
                QStandardItem(str(i['ID persona'])),
                QStandardItem(str(i['Nombre'])),
                QStandardItem(str(i['Riesgo / Control Nombre_1'])),
                #QStandardItem(str(i['ID de la Control_1'])),
                QStandardItem(str(i['Riesgo / Control Nombre_2'])),
                #QStandardItem(str(i['ID de la Control_2'])),
                QStandardItem(str(i['Riesgo / Control Nombre_3'])),
                #QStandardItem(str(i['ID de la Control_3'])),
                QStandardItem(str(i['Riesgo / Control Nombre_4'])),
                #QStandardItem(str(i['ID de la Control_4'])),
            ])

        self.table_model.setHorizontalHeaderLabels([
            ts("ID persona"),
            ts('Nombre'),
            ts('Riesgo / Control Nombre_1'),  #ts('ID de la Control_1'),
            ts('Riesgo / Control Nombre_2'),  #ts('ID de la Control_2'),
            ts('Riesgo / Control Nombre_3'),  #ts('ID de la Control_3'),
            ts('Riesgo / Control Nombre_4'),  #ts('ID de la Control_4')]
        ])

        self.table_view = QTableView(self)  # Create a self.table_view
        self.table_view.setModel(self.table_model)
        self.table_view.setAlternatingRowColors(True)
        self.table_view.setSelectionMode(QAbstractItemView.NoSelection)
        self.table_view.setSelectionBehavior(QAbstractItemView.SelectRows)
        self.table_view.resizeRowsToContents()
        #self.table_view.horizontalHeader().resizeSection(0, 250)
        #self.table_view.horizontalHeader().resizeSection(1, 80)
        #self.table_view.horizontalHeader().resizeSection(2, 80)
        #self.table_view.horizontalHeader().resizeSection(3, 80)
        self.table_view.horizontalHeader().setSectionResizeMode(
            QHeaderView.Stretch)
        self.table_view.horizontalHeader().setStretchLastSection(True)

        self.table_view.setEditTriggers(QTableWidget.NoEditTriggers)

        self.btn_continuar = QPushButton(ts('Exportar'), self)
        self.btn_continuar.clicked.connect(self.click_export)
        self.btn_continuar.setFixedSize(180, 40)

        self.btn_atras = QPushButton(ts('Atrás'), self)
        self.btn_atras.setFixedSize(180, 40)

        self.grid = QGridLayout(self)
        self.grid.addWidget(self.table_view, 0, 0, 1, -1)
        self.grid.addWidget(self.btn_continuar, 1, 2)
        self.grid.addWidget(self.btn_atras, 1, 0)

        self.setLayout(self.grid)
コード例 #11
0
ファイル: window_controller.py プロジェクト: andresUnit/BHP
class WindowController(QObject):
    """
        Clase encargada de adminstrar el flujo gráfico de la aplicación
    """       
    global ts
    ts = TranslatedStrings()
    
    def __init__(self, dc,credentials):

        super().__init__()

        self.dc = dc
        self.dc.load_processor_data()
        
        self.pc = ProcessingController(dc)

        self.credentials = credentials
        self.currentuser =None

        self.w_login = None
        self.w_fileload = None
        self.w_filter = None
        self.w_personal = None
        self.w_riesgos = None
        self.w_algo = None
        self.w_cc_table = None
        self.w_export = None
        self.w_score_table = None
        self.w_gs = None


    def start_app(self):
        if not self.w_login:
            self.w_login = LoginWindow()

        self.w_login.show()
        self.w_login.switch.toggled.connect(self.close_all_but(self.w_login))
        self.w_login.btn_continuar.clicked.connect(self.login_continuar)
    
    @Slot()
    def login_continuar(self):
        passwd = self.w_login.txt_password.text()
        usuario = self.w_login.txt_usuario.text()

        if usuario not in self.credentials.keys() \
            or self.credentials[usuario] != passwd:
            log.info(" Intento de ingreso incorrecto")
            ts.set_lang()
            QMessageBox.warning(self.w_login, "Error", ts("Login incorrecto"))
        else:
            self.w_login.hide()
            self.currentuser = usuario

            if self.currentuser == 'administrador':
                log.info(" Ingreso Administrativo")
                self.file_load()
            else:
                log.info(" Ingreso Operador")
                self.personal_load()


    @Slot()
    def file_load(self):
        self.w_login.close()

        if not self.w_fileload:
            self.w_fileload = FileLoadWindow(self.dc)

        self.w_fileload.show()

        self.w_fileload.btn_continuar.clicked.connect(self.personal_load)


    @Slot()
    def personal_load(self):

        if not self.w_personal:
            self.w_personal = PersonasWindow(self.dc)

        self.w_personal.show()
        self.close_all_but(self.w_personal)
        self.w_personal.sig_continuar.connect(self.show_filter)
        self.w_personal.w_personal.sig_archivo_eliminado.connect(self.reset_personal)
        

    @Slot()
    def reset_personal(self):
        self.w_fileload.show()
        self.w_personal.close()
        self.w_personal = None
        self.personal_load()


    @Slot()
    def show_filter(self):
        """
        self.w_personal.close()

        if self.w_riesgos:
            self.w_riesgos.close()
        """

        if not self.w_filter:
            self.w_filter = FilterWindow(self.dc)

        self.close_all_but(self.w_filter)
        self.w_personal.lista_filtrada()
        self.w_filter.show()

        self.w_filter.btn_continuar.clicked.connect(self.show_riesgos)
        self.w_filter.btn_atras.clicked.connect(self.personal_load)

    @Slot()
    def show_riesgos(self):
        
        self.w_riesgos = RiesgosWindow(self.dc, self.pc.arbol_riesgos())
        
        self.close_all_but(self.w_riesgos)
        self.w_riesgos.show()

        self.w_riesgos.btn_atras.clicked.connect(self.show_filter)
        self.w_riesgos.btn_perfil.clicked.connect(self.show_algo)
        self.w_riesgos.btn_grafico.clicked.connect(self.show_gs)
        self.w_riesgos.btn_continuar.clicked.connect(self.show_score_table)

    @Slot()
    def show_algo(self):
        self.w_algo = AlgoritmoWindow(self.dc)
        self.w_algo.show()

    @Slot()
    def show_gs(self):
        p_risks = self.w_riesgos.get_selected()
        self.w_gs = ScoreGraphWindow(self.dc,
                self.pc.score_risk(p_risks,self.dc.ovcc_num))
        self.w_gs.show()

    @Slot()
    def show_score_table(self):
        p_risks = self.w_riesgos.get_selected()

        q_ovcc = self.dc.ovcc_num

        score = self.pc.score_risk(p_risks, q_ovcc)
        score = score[['Riesgo Material', 'q Control', 'OVCC asignadas (Riesgo)']]

        self.w_score_table = ScoreTableWindow(self.dc, score)

        self.w_score_table.show()
        self.close_all_but(self.w_score_table)

        self.w_score_table.btn_continuar.clicked.connect(self.show_cc_table)
        self.w_score_table.btn_atras.clicked.connect(self.show_riesgos)

    @Slot()
    def show_cc_table(self):
        p_risks = self.w_riesgos.get_selected()

        asign = self.pc.cc_asign(p_risks)
        asign = asign[['Riesgo Material', 'Control', 'CC asignadas']]

        self.w_cc_table = CCTableWindow(self.dc, asign,self.w_filter.calendar.selectedDate())
        self.w_cc_table.showMaximized()
        self.close_all_but(self.w_cc_table)

        self.w_cc_table.btn_continuar.clicked.connect(self.show_export)
        self.w_cc_table.btn_atras.clicked.connect(self.show_score_table)

    @Slot()
    def show_export(self):
        
        dup = self.pc.duplicated()
        #self.w_cc_table.get_input_data()
        self.w_export = ExportWindow(self.pc, self.dc, dup, self.w_filter.calendar.selectedDate())
        self.w_export.showMaximized()
        self.close_all_but(self.w_export)

        self.w_export.btn_atras.clicked.connect(self.show_cc_table)


    @Slot()
    def show_asignacion(self):
        self.w_asignacion = AsignacionTableWindow(self.dc, self.dc.personal.datos['Nombre'].copy())
        self.w_asignacion.show()

    def close_all_but(self, keepopen):
        windows = list(filter(None, [self.w_login, self.w_fileload,
            self.w_filter, self.w_personal, self.w_riesgos,self.w_algo,
            self.w_cc_table,self.w_export,self.w_score_table]))
        windows.remove(keepopen)
        [w.close() for w in windows]
コード例 #12
0
    def __init__(self, dc):
        super().__init__()

        global ts
        ts = TranslatedStrings()

        self.dc = dc

        self.setWindowTitle(ts("Algoritmo utilizado para Riesgos"))
        self.setWindowIcon(\
            QIcon(utils.ruta_absoluta('resources/icons/tsr.png')))
        self.setMinimumSize(QSize(950, 650))

        self.grid = QGridLayout(self)
        self.setLayout(self.grid)

        # Preparacion de datos
        datos = self.dc.riesgos.datos.copy()
        pred = self.dc.predictivo.datos.copy()

        if self.dc.op != ' ':

            datos = datos.loc[datos["Operation"] == str(self.dc.op)]
            datos = datos.loc[:, ["Asset", "Operation", "Riesgo"
                                  ]].drop_duplicates()

        else:

            datos = datos.loc[datos["Asset"] == str(self.dc.asset)]
            datos["Operation"].replace(np.nan, ' ', inplace=True)
            datos = datos.loc[datos["Operation"] == ' ']
            datos = datos.loc[:, ["Asset", "Operation", "Riesgo"
                                  ]].drop_duplicates()

        pred = pred.loc[pred["Gerencia General"] == str(self.dc.op)]
        pred = pred["Riesgo Estandarizado"]

        self.table = QTableWidget(self)
        self.table.setColumnCount(datos.columns.size + 2)
        self.table.setEditTriggers(QAbstractItemView.NoEditTriggers)

        check = QIcon(utils.ruta_absoluta('resources/icons/ok.png'))

        #Generecion de tabla
        self.table.setRowCount(len(datos.index))

        for i in range(len(datos.index)):
            for j in range(len(datos.columns)):
                self.table.setItem(i, j, QTableWidgetItem(str(datos.iloc[i,
                                                                         j])))

                if pred.str.contains(str(datos.iloc[i, 2])).any():
                    check_item = QTableWidgetItem()
                    check_item.setIcon(check)
                    self.table.setItem(i, 3, check_item)
                else:
                    check_item = QTableWidgetItem()
                    check_item.setIcon(check)
                    self.table.setItem(i, 4, check_item)

        headerlb = [
            ts('Asset'),
            ts("Gerencia General"),
            ts("Riesgo"),
            ts("Modelo Predictivo"),
            ts("Modelo Score")
        ]

        self.table.setHorizontalHeaderLabels(headerlb)
        header = self.table.horizontalHeader()
        header.setSectionResizeMode(QHeaderView.ResizeToContents)
        header.setSectionResizeMode(2, QHeaderView.Stretch)

        self.btn_atras = QPushButton(ts("Cerrar"), self)
        self.btn_atras.clicked.connect(self.hide)
        self.grid.addWidget(self.table, 0, 0)
        self.grid.addWidget(self.btn_atras, 1, 0)
コード例 #13
0
ファイル: filter_window.py プロジェクト: andresUnit/BHP
    def __init__(self, dc):
        super().__init__()

        global ts
        ts = TranslatedStrings()

        self.dc = dc
        self.archivos = dict()
    
        self.setWindowTitle(ts("Filtrar registros"))
        self.setWindowIcon(\
            QIcon(utils.ruta_absoluta('resources/icons/tsr.png')))
        self.setSizeGripEnabled(False)
        self.setModal(True)

        self.grid = QGridLayout(self) 

        lbl_bhp = QLabel(self)
        pixmap = QPixmap(utils.ruta_absoluta('resources/logos/bhp.png'))
        lbl_bhp.setPixmap(pixmap)
        self.grid.addWidget(lbl_bhp, 0, 0)
        
        lbl_tsr = QLabel(self)
        pixmap2 = QPixmap(utils.ruta_absoluta('resources/logos/tsr.png'))
        lbl_tsr.setPixmap(pixmap2)
        self.grid.addWidget(lbl_tsr, 0, 1)

        self.filtro_1 = None
        self.filtro_2 = None
        self.filtro_3 = None
        
        ###
        #Filtro para Región
        ###
        self.lbl_f1 = QLabel(ts("Región"), self)
        self.grid.addWidget(self.lbl_f1, 1, 0)
        self.cmb_filtro1 = QComboBox(self)
        self.cmb_filtro1.addItems(list(utils.region()))
        self.cmb_filtro1.currentTextChanged.connect(self.filtro1_selected) 
        self.grid.addWidget(self.cmb_filtro1, 1, 1)

        ###
        #Filtro Gerencia    
        ###
        self.lbl_f2 = QLabel(ts("Gerencia"), self)
        self.grid.addWidget(self.lbl_f2, 2, 0)
        self.cmb_filtro2 = QComboBox(self)
        self.cmb_filtro2.addItems(list(
            utils.asset(self.cmb_filtro1.currentText())))
        self.cmb_filtro2.currentTextChanged.connect(self.filtro2_selected) 
        self.grid.addWidget(self.cmb_filtro2, 2, 1)

        ###
        #Filtro Gerencia General
        ###
        self.lbl_f3 = QLabel(ts("Gerencia General"), self)
        self.grid.addWidget(self.lbl_f3, 3, 0)
        self.cmb_filtro3 = QComboBox(self)
        self.cmb_filtro3.addItems(list(
            utils.operation(self.cmb_filtro2.currentText())))
        self.grid.addWidget(self.cmb_filtro3, 3, 1)


        ###
        #Filtro Dia-mes
        ###
        self.lbl_c1 = QLabel(ts("Seleccionar Fecha Inicio Programación OVCC"))
        self.grid.addWidget(self.lbl_c1, 5, 0)

        fecha_actual = QDate.currentDate()
        

        self.calendar = QCalendarWidget(self)
        

        if fecha_actual.dayOfWeek() == 1:
            self.calendar.setMinimumDate(fecha_actual)
            self.calendar.setSelectedDate(fecha_actual)
        
        else:
            dif = -(fecha_actual.dayOfWeek() - 1)
            fecha_actual = fecha_actual.addDays(dif)
            self.calendar.setMinimumDate(fecha_actual.addDays(7))
            self.calendar.setSelectedDate(fecha_actual.addDays(7))
        
        self.calendar.setFirstDayOfWeek(Qt.Monday)
        self.calendar.setVerticalHeaderFormat(QCalendarWidget.VerticalHeaderFormat.NoVerticalHeader)
        self.calendar.clicked.connect(self.date_filter)
        self.grid.addWidget(self.calendar, 5, 1)

        ###
        #Botones
        ###
        self.btn_continuar = QPushButton(ts("Continuar"), self)
        self.btn_continuar.clicked.connect(self.filtrar)
        self.grid.addWidget(self.btn_continuar, 6, 1)
        
        self.btn_atras = QPushButton(ts("Atrás"), self)
        self.grid.addWidget(self.btn_atras, 6, 0)
        ###
        #Creacion layout
        ###
        self.setLayout(self.grid)