def __init__(self, window=None, table=None, window_model=None):
        self.window = window
        self.table = table
        self.window_model = window_model
        self.ui = Ui_AddDialog()
        self.ui.setupUi(window)
        self.table_model = TableModel(window_model)
        self.table_model.setHeaders(
            ColumnNames('Add').get_column_headers(table, ['*']))
        # self.table_model.headers = ColumnNames().pracownicy_display
        if table == 'Pracownicy':
            self.table_model.headers.insert(
                len(ColumnNames().pracownicy_db) - 1, 'Hasło')
        self.table_model.rows = [''] * len(self.table_model.headers)
        self.table_model.edit_enabled = True
        self.table_model.header_orientation = PyQt5.QtCore.Qt.Vertical
        self.ui.tableView.horizontalHeader().setVisible(False)
        if table == 'Akwaria':
            self.ui.tableView.verticalHeader().setSectionResizeMode(
                QHeaderView.ResizeToContents)
        self.ui.tableView.setModel(self.table_model)
        self.ui.buttonBox.accepted.connect(self.submit)
        # self.ui.buttonBox.rejected.connect(self.reject)

        self.window.exec()
Exemplo n.º 2
0
    def edit_value(self, column_name, to_edit_id, new_value):
        query = Queries.query_edit_value.format(table=self.current_table,
                                                column_name=ColumnNames().get_db_column_name(self.current_table,
                                                                                             column_name),

                                                new_value=new_value,
                                                id_name=ColumnNames().get_id_name(self.current_table),
                                                id=to_edit_id
                                                )
        self.db_connection.query_delete(query)
        self.db_connection.commit()
 def table_selection_change(self, i):
     self.current_table = self.main_model.tables[i]
     self.main_model.current_table = self.main_model.tables[i]
     self.table_model.rows = []
     self.create_list(self.current_table, ['*'],
                      ColumnNames().get_id_name(self.current_table))
     self.refresh_sort_selection()
     self.refresh_table()
Exemplo n.º 4
0
 def get_table_content(self, table=None, columns=None, order_param=None):
     query = Queries.query_get_list.format(table=table, cols=columns, param=order_param)
     query = query.translate({ord(i): None for i in "[]'"})
     response = self.db_connection.send_request(query=query)
     print(response)
     self.table_model.rows = response
     col_names = ColumnNames().get_column_headers(table, columns)
     self.table_model.headers = col_names
     self.current_table = table
 def create_list(self, table, cols, order_param):
     query = Queries.query_get_list.format(table=table,
                                           cols=cols,
                                           param=order_param)
     query = query.translate({ord(i): None for i in "[]'"})
     response = self.db_connection.send_request(query=query)
     print(response)
     col_names = ColumnNames().get_column_headers(table, cols)
     self.table_model.setHeaders(col_names)
     self.table_model.rows = response
     self.refresh_table()
    def delete(self):
        print("DELETE")

        if self.current_id > 0:
            query = Queries.query_delete_row.format(
                table=self.current_table,
                id_name=ColumnNames().get_id_name(self.current_table),
                id=self.current_id)
            if self.db_connection.query_delete(query=query):
                self.table_model.deleteData(self.current_row)
                self.db_connection.commit()
                self.refresh_table()
    def add(self):
        dialog = QtWidgets.QDialog()

        d = DialogAddController(dialog, self.current_table, self.main_model)
        self.create_list(self.current_table, ['*'],
                         ColumnNames().get_id_name(self.current_table))
 def sort_selection_change(self, i):
     self.create_list(
         self.current_table, ['*'],
         ColumnNames().get_db_column_name(self.current_table,
                                          self.table_model.headers[i]))
Exemplo n.º 9
0
    def check_data_types(self, table, rows):
        correct_types = ColumnNames().get_data_types(table)
        optionals = ColumnNames().get_optionals(table)
        for data in rows:
            if data == '' or data is None:
                if not optionals[rows.index(data)]:
                    return False
                else :
                    continue
            if correct_types[rows.index(data)] == 'int':
                if not (type(data) == int or self.is_int(data) or (type(data) == float and data-int(data)==0.00)):
                    return False
                else:
                    continue
            if correct_types[rows.index(data)] == 'varchar20':
                if len(data) > 20:
                    return False
                else:
                    continue
            if correct_types[rows.index(data)] == 'varchar30':
                if len(data) > 30:
                    return False
                else:
                    continue

            if correct_types[rows.index(data)] == 'varchar40':
                if len(data) > 40:
                    return False
                else:
                    continue

            if correct_types[rows.index(data)] == 'varchar4':
                if len(data) > 4:
                    return False
                else:
                    continue

            if correct_types[rows.index(data)] == 'varchar5':
                if len(data) > 5:
                    return False
                else:
                    continue
            if correct_types[rows.index(data)] == 'varchar400':
                if len(data) > 400:
                    return False
                else:
                    continue

            if correct_types[rows.index(data)] == 'char11':
                if len(data) != 11:
                    return False
                else:
                    continue
            if correct_types[rows.index(data)] == 'char6':
                if len(data) != 6:
                    return False
                else:
                    continue
            if correct_types[rows.index(data)] == 'char64':
                if len(data) != 64:
                    return False
                else:
                    continue
            if correct_types[rows.index(data)] == 'char1':
                if len(data) != 1 or not (data == 'M' or data == 'K'):
                    return False
                else:
                    continue
            if correct_types[rows.index(data)] == 'float':
                if not (self.is_int(data) or self.is_float(data) or type(data) == float):
                    return False
                else:
                    continue
        return True
Exemplo n.º 10
0
 def delete_row(self, to_delete_id, row_index):
     query = Queries.query_delete_row.format(table=self.current_table, id_name=ColumnNames().pracownicy_db[0],
                                             id=to_delete_id)
     self.db_connection.query_delete(query=query)
     self.db_connection.commit()
     self.table_model.deleteData(self.row_index)
Exemplo n.º 11
0
    def submit(self):
        values = ''
        additional_values = ''
        table_index = self.window_model.tables.index(self.table)
        check = self.window_model.check_data_types(
            self.table, self.table_model.rows[0:len(ColumnNames(
            ).get_column_headers(self.table, ['*']))])

        if table_index == 0 or table_index == 2:

            additional_id = ColumnNames(
            ).additional_display_strings[table_index][0]
            additional_id_index = self.table_model.headers.index(additional_id)
            to_check_values = self.table_model.rows[0:len(ColumnNames(
            ).get_column_headers(self.table, ['*'])) - 1]
            to_check_values.insert(additional_id_index,
                                   self.table_model.rows[additional_id_index])
            check = self.window_model.check_data_types(self.table,
                                                       to_check_values)
            additional_check = self.window_model.check_data_types(
                ColumnNames().additional_tables[ColumnNames().tables.index(
                    self.table)], self.table_model.
                rows[additional_id_index:len(self.table_model.rows) - 1])
            if not (check):
                print('Check: ' + str(check))
                message_box = QtWidgets.QMessageBox()
                message_box.setWindowTitle('Błąd')
                message_box.setText("Wprowadzono błędne dane.")
                message_box.exec()
                return
            current_index = -1
            for v in self.table_model.rows:
                current_index = current_index + 1
                if current_index < additional_id_index:
                    if current_index == ColumnNames().get_column_headers(
                            self.table, ['*']).index(additional_id):
                        values = values + '\'' + self.table_model.rows[
                            additional_id_index] + '\', '
                    if v == ' ':
                        return False
                    if v.isnumeric() and len(v) < 10:
                        values = values + str(v) + ', '
                    else:
                        values = values + '\'' + v + '\', '
                else:
                    if current_index == ColumnNames().get_column_headers(
                            self.table, ['*']).index(additional_id):
                        values = values + '\'' + self.table_model.rows[
                            additional_id_index] + '\', '
                    if current_index == additional_id_index:
                        print('Nastepny:' +
                              self.table_model.rows[current_index + 1])
                        if self.window_model.additional_exists(
                                ColumnNames().additional_tables[table_index],
                                int(v), ColumnNames().additional_table_id_name(table_index)) and \
                                (self.table_model.rows[current_index + 1] == '' or
                                 self.table_model.rows[current_index + 1] is None):
                            self.window_model.add_row(
                                self.table, values[0:len(values) - 2])
                            return
                        else:
                            if not additional_check:
                                print('Additional check: ' + str(check))
                                message_box = QtWidgets.QMessageBox()
                                message_box.setWindowTitle('Błąd')
                                message_box.setText("Wprowadzono błędne dane.")
                                message_box.exec()
                                return

                    if v == ' ':
                        return False
                    if v.isnumeric() and len(v) < 10:
                        additional_values = additional_values + str(v) + ', '
                    else:
                        additional_values = additional_values + '\'' + v + '\', '
            self.window_model.add_row(
                ColumnNames().additional_tables[table_index],
                additional_values[0:len(additional_values) - 2])
            self.window_model.add_row(self.table, values[0:len(values) - 2])
        else:
            check = self.window_model.check_data_types(
                self.table, self.table_model.rows[0:len(ColumnNames(
                ).get_column_headers(self.table, ['*']))])
            if not check:
                print('Check: ' + str(check))
                message_box = QtWidgets.QMessageBox()
                message_box.setWindowTitle('Błąd')
                message_box.setText("Wprowadzono błędne dane.")
                message_box.exec()
                return
            for v in self.table_model.rows:
                if type(v) is str:
                    if v == ' ':
                        return False
                    if v.isnumeric() and len(v) < 10:
                        values = values + str(v) + ', '
                    else:
                        values = values + '\'' + v + '\', '
                else:
                    values = values + str(v)
            self.window_model.add_row(self.table, values[0:len(values) - 2])