fixes
This commit is contained in:
parent
514964d7c6
commit
a3b38a63d3
|
|
@ -11,11 +11,12 @@ class Crud_DB:
|
|||
self.table_fields = list(self.table_model._meta.fields.keys())
|
||||
self.pagination = pagination
|
||||
self.default_filters = {}
|
||||
self.sorting = {}
|
||||
self.filters = {}
|
||||
if filters is None:
|
||||
filters = {}
|
||||
for column_name, filter in filters.items():
|
||||
self.filter(column_name, filter, filter_storage=self.default_filters)
|
||||
self.revert()
|
||||
|
||||
def commit(self, data, deleted_rows=None):
|
||||
with db.atomic() as trx:
|
||||
|
|
@ -37,8 +38,8 @@ class Crud_DB:
|
|||
raise e
|
||||
|
||||
def revert(self):
|
||||
self.sorting = {}
|
||||
self.filters = {}
|
||||
self.sorting.clear()
|
||||
self.filters.clear()
|
||||
|
||||
def get(self, page=0):
|
||||
if self.table_model._meta.composite_key:
|
||||
|
|
|
|||
31
src/main.py
31
src/main.py
|
|
@ -6,6 +6,7 @@ import os
|
|||
import signal
|
||||
import sys
|
||||
import traceback
|
||||
import weakref
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
|
||||
|
|
@ -112,18 +113,18 @@ try:
|
|||
# self.main_window = Main_Window(self.bench)
|
||||
self.main_window = Main_Window()
|
||||
# CONNECT MAIN WINDOW ACTIONS
|
||||
self.main_window.archive_a.triggered.connect(self.open_archive)
|
||||
self.main_window.archive_a.triggered.connect(lambda checked, self=weakref.ref(self): self().main_window.open_dialog(Archive()))
|
||||
if "--archive" in sys.argv:
|
||||
self.main_window.archive_a.trigger()
|
||||
self.main_window.autotests_archive_a.triggered.connect(self.open_autotests_archive)
|
||||
self.main_window.autotests_archive_a.triggered.connect(lambda checked, self=weakref.ref(self): self().main_window.open_dialog(Autotests_Archive()))
|
||||
if "--autotests-archive" in sys.argv:
|
||||
self.main_window.autotests_archive_a.trigger()
|
||||
self.main_window.about_a.triggered.connect(self.open_about)
|
||||
self.main_window.about_a.triggered.connect(lambda checked, self=weakref.ref(self): self().main_window.open_dialog(About()))
|
||||
if "--about" in sys.argv:
|
||||
self.main_window.about_a.trigger()
|
||||
self.main_window.admin_m.menuAction().setVisible(False) # admin menu should not be visible before an admin logs in
|
||||
self.main_window.quit_a.triggered.connect(quit_app)
|
||||
self.main_window.users_management_a.triggered.connect(self.open_users_management)
|
||||
self.main_window.users_management_a.triggered.connect(lambda checked, self=weakref.ref(self): self().main_window.open_dialog(Users_Management()))
|
||||
if "--users-management" in sys.argv:
|
||||
self.main_window.users_management_a.trigger()
|
||||
# OPEN LOGIN TAB
|
||||
|
|
@ -138,19 +139,6 @@ try:
|
|||
else:
|
||||
self.main_window.showFullScreen()
|
||||
|
||||
def open_archive(self):
|
||||
self.main_window.open_dialog(Archive())
|
||||
|
||||
def open_autotests_archive(self):
|
||||
self.main_window.open_dialog(Autotests_Archive())
|
||||
|
||||
def open_users_management(self):
|
||||
self.main_window.open_dialog(Users_Management())
|
||||
|
||||
def open_about(self):
|
||||
about_widget = About()
|
||||
self.main_window.open_dialog(about_widget)
|
||||
|
||||
def open_login(self):
|
||||
tab = Login()
|
||||
tab.successful_login.connect(self.logghed_in)
|
||||
|
|
@ -163,13 +151,8 @@ try:
|
|||
self.main_window.admin_m.menuAction().setVisible(True)
|
||||
else:
|
||||
self.main_window.admin_m.menuAction().setVisible(False)
|
||||
self.open_test()
|
||||
|
||||
def open_test(self):
|
||||
self.main_window.open_tab(Test(self.config.machine_id, self.components))
|
||||
|
||||
def open_test(self):
|
||||
self.main_window.open_tab(Test(self.config.machine_id, self.components))
|
||||
# open test
|
||||
self.main_window.open_tab(Test(self.config.machine_id, self.components))
|
||||
|
||||
if __name__ == "__main__":
|
||||
app = QApplication(sys.argv)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import ast
|
||||
import json
|
||||
import traceback
|
||||
import weakref
|
||||
from datetime import datetime
|
||||
|
||||
from lib.db import Crud_DB
|
||||
|
|
@ -198,7 +199,7 @@ class Crud(Widget):
|
|||
self.filters = {}
|
||||
self.db_tw.crud = self
|
||||
self.refresh("init")
|
||||
self.db_tw.horizontalHeader().sectionClicked.connect(self.toggleSort)
|
||||
self.db_tw.horizontalHeader().sectionClicked.connect(self.toggle_sort)
|
||||
# self.db_tw.horizontalHeader().setStretchLastSection(True)
|
||||
self.db_tw.horizontalHeader().setSectionResizeMode(QHeaderView.Interactive)
|
||||
# self.db_tw.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeToContents)
|
||||
|
|
@ -208,13 +209,13 @@ class Crud(Widget):
|
|||
else:
|
||||
self.db_tw.setSelectionMode(QAbstractItemView.ExtendedSelection)
|
||||
self.db_tw.itemSelectionChanged.connect(self.show_selection)
|
||||
self.revert_b.clicked.connect(lambda: self.refresh("revert"))
|
||||
self.revert_b.clicked.connect(lambda checked, self=weakref.ref(self): self().refresh("revert"))
|
||||
if self.pagination is not False:
|
||||
self.start_b.clicked.connect(lambda: self.refresh("pagination", page=0))
|
||||
self.previous_b.clicked.connect(lambda: self.refresh("pagination", page=max(self.page - 1, 0)))
|
||||
self.page_n_sb.valueChanged.connect(lambda page: self.refresh("pagination", page=page - 1))
|
||||
self.next_b.clicked.connect(lambda: self.refresh("pagination", page=self.page + 1))
|
||||
self.end_b.clicked.connect(lambda: self.refresh("pagination", page=-1))
|
||||
self.start_b.clicked.connect(lambda checked, self=weakref.ref(self): self().refresh("pagination", page=0))
|
||||
self.previous_b.clicked.connect(lambda checked, self=weakref.ref(self): self().refresh("pagination", page=max(self().page - 1, 0)))
|
||||
self.page_n_sb.valueChanged.connect(lambda page, self=weakref.ref(self): self().refresh("pagination", page=page - 1))
|
||||
self.next_b.clicked.connect(lambda checked, self=weakref.ref(self): self().refresh("pagination", page=self().page + 1))
|
||||
self.end_b.clicked.connect(lambda checked, self=weakref.ref(self): self().refresh("pagination", page=-1))
|
||||
else:
|
||||
self.next_b.setHidden(True)
|
||||
self.previous_b.setHidden(True)
|
||||
|
|
@ -239,7 +240,7 @@ class Crud(Widget):
|
|||
sort_cycle = [True, False, None]
|
||||
sort_symbol = [u" \u25B4", u" \u25BE", u""]
|
||||
|
||||
def toggleSort(self, cn=None):
|
||||
def toggle_sort(self, cn=None, refresh=True):
|
||||
if cn is not None:
|
||||
fn = self.select[cn]
|
||||
if fn not in self.db.table_fields:
|
||||
|
|
@ -257,7 +258,8 @@ class Crud(Widget):
|
|||
self.db_tw.setHorizontalHeaderLabels(self.fields_aliases.values())
|
||||
self.sorting.clear() # for single column sorting
|
||||
self.db.sort(None) # for single column sorting
|
||||
self.refresh()
|
||||
if refresh:
|
||||
self.refresh()
|
||||
|
||||
def filter_edited(self, cn):
|
||||
text = self.db_tw.cellWidget(0, cn).text()
|
||||
|
|
@ -303,10 +305,9 @@ class Crud(Widget):
|
|||
pass
|
||||
elif action == "revert":
|
||||
# REVERT SORTING AND FILTERS
|
||||
self.sorting = {}
|
||||
for cn, fn in enumerate(self.select):
|
||||
self.toggleSort(None)
|
||||
self.filters.clear()
|
||||
self.sorting.clear()
|
||||
self.toggle_sort(None, refresh=False)
|
||||
self.filters.clear()
|
||||
self.db.revert()
|
||||
elif action == "commit" and not (self.readonly is None or self.readonly is True):
|
||||
# COMMIT CHANGES
|
||||
|
|
@ -358,7 +359,7 @@ class Crud(Widget):
|
|||
if fn in self.db.table_fields:
|
||||
w.setPlaceholderText("Filtro")
|
||||
w.setText(self.filters.get(fn, None))
|
||||
w.editingFinished.connect(lambda cn=cn: self.filter_edited(cn))
|
||||
w.editingFinished.connect(lambda cn=cn, self=weakref.ref(self): self().filter_edited(cn))
|
||||
else:
|
||||
w.setPlaceholderText("Non filtrabile")
|
||||
w.setEnabled(False)
|
||||
|
|
@ -373,7 +374,7 @@ class Crud(Widget):
|
|||
if fn in r:
|
||||
w._render(data=r[fn], row_number=rn, crud=self)
|
||||
self.db_tw.setCellWidget(rn, cn, w)
|
||||
# REENABLEEVENTS AFTER UPDATE
|
||||
# REENABLE EVENTS AFTER UPDATE
|
||||
self.db_tw.blockSignals(False)
|
||||
return True
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user