Implement 'assign type' action
This commit is contained in:
parent
ba6b6c2e4a
commit
0fdaff0fa2
@ -205,13 +205,24 @@ class MainWindow(QMainWindow):
|
|||||||
" after each transaction to 'balance'")
|
" after each transaction to 'balance'")
|
||||||
|
|
||||||
def _header_right_clicked(self, pos):
|
def _header_right_clicked(self, pos):
|
||||||
|
column = self._table_view.horizontalHeader().logicalIndexAt(pos)
|
||||||
|
|
||||||
context = QMenu(self)
|
context = QMenu(self)
|
||||||
|
|
||||||
rename_action = QAction("Rename", self)
|
rename_action = QAction("Rename", self)
|
||||||
delete_action = QAction("Delete", self)
|
delete_action = QAction("Delete", self)
|
||||||
switch_action = QAction("Switch position", self)
|
switch_action = QAction("Switch position", self)
|
||||||
|
|
||||||
column = self._table_view.horizontalHeader().logicalIndexAt(pos)
|
assign_menu = QMenu("Assign type", self)
|
||||||
|
date_action = QAction("date", self)
|
||||||
|
float_action = QAction("float", self)
|
||||||
|
assign_menu.addAction(date_action)
|
||||||
|
assign_menu.addAction(float_action)
|
||||||
|
date_action.triggered.connect(
|
||||||
|
partial(self._header_assign_date_handler, column))
|
||||||
|
float_action.triggered.connect(
|
||||||
|
partial(self._header_assign_float_handler, column))
|
||||||
|
|
||||||
rename_action.triggered.connect(
|
rename_action.triggered.connect(
|
||||||
partial(self._header_rename_handler, column))
|
partial(self._header_rename_handler, column))
|
||||||
delete_action.triggered.connect(
|
delete_action.triggered.connect(
|
||||||
@ -222,6 +233,7 @@ class MainWindow(QMainWindow):
|
|||||||
context.addAction(rename_action)
|
context.addAction(rename_action)
|
||||||
context.addAction(delete_action)
|
context.addAction(delete_action)
|
||||||
context.addAction(switch_action)
|
context.addAction(switch_action)
|
||||||
|
context.addAction(assign_menu.menuAction())
|
||||||
|
|
||||||
context.exec(self.sender().mapToGlobal(pos))
|
context.exec(self.sender().mapToGlobal(pos))
|
||||||
|
|
||||||
@ -279,6 +291,53 @@ class MainWindow(QMainWindow):
|
|||||||
df = df.reindex(columns=column_titles)
|
df = df.reindex(columns=column_titles)
|
||||||
self.set_statement_data(df)
|
self.set_statement_data(df)
|
||||||
|
|
||||||
|
def _header_assign_date_handler(self, column):
|
||||||
|
model = self._table_view.horizontalHeader().model()
|
||||||
|
column_text = model.headerData(column, Qt.Orientation.Horizontal)
|
||||||
|
|
||||||
|
date_format, flag = QInputDialog.getText(self, "Format",
|
||||||
|
"Format:",
|
||||||
|
text="%d.%m.%Y")
|
||||||
|
|
||||||
|
if not flag:
|
||||||
|
return
|
||||||
|
|
||||||
|
df = self.get_statement_data()
|
||||||
|
try:
|
||||||
|
df[column_text] \
|
||||||
|
= (pd.to_datetime(df[column_text], format=date_format)
|
||||||
|
.dt.strftime('%Y-%m-%d'))
|
||||||
|
except:
|
||||||
|
QMessageBox.warning(self, "No action performed",
|
||||||
|
"An error occurred.")
|
||||||
|
self.set_statement_data(df)
|
||||||
|
|
||||||
|
def _header_assign_float_handler(self, column):
|
||||||
|
model = self._table_view.horizontalHeader().model()
|
||||||
|
column_text = model.headerData(column, Qt.Orientation.Horizontal)
|
||||||
|
|
||||||
|
chars = ['.', ',']
|
||||||
|
decimal_sep, flag = QInputDialog.getItem(self, "Decimal separator",
|
||||||
|
"Decimal separator:",
|
||||||
|
chars, editable=False)
|
||||||
|
|
||||||
|
if not flag:
|
||||||
|
return
|
||||||
|
|
||||||
|
df = self.get_statement_data()
|
||||||
|
|
||||||
|
try:
|
||||||
|
if decimal_sep == ',':
|
||||||
|
df[column_text] \
|
||||||
|
= df[column_text].str.replace(',', '.').astype(float)
|
||||||
|
else:
|
||||||
|
df[column_text] = df[column_text].astype(float)
|
||||||
|
except:
|
||||||
|
QMessageBox.warning(self, "No action performed",
|
||||||
|
"An error occurred.")
|
||||||
|
|
||||||
|
self.set_statement_data(df)
|
||||||
|
|
||||||
def _handle_create_click(self):
|
def _handle_create_click(self):
|
||||||
new_name, flag = QInputDialog.getText(self, "Create category",
|
new_name, flag = QInputDialog.getText(self, "Create category",
|
||||||
"New category:",
|
"New category:",
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user