This commit is contained in:
Christopher T. Johnson
2025-02-25 15:33:20 -05:00
parent 7a02bbb262
commit dfa604e846
3 changed files with 36 additions and 21 deletions

View File

@@ -29,7 +29,12 @@ from PySide6.QtWidgets import (
) )
from docketModel import docketModel from docketModel import docketModel
from lib.utils import QStyleOptionViewItemInit, query_error, readGeometry, writeGeometry from lib.utils import (
QStyleOptionViewItemInit,
query_error,
readGeometry,
writeGeometry,
)
from ui.MainWindow import Ui_MainWindow from ui.MainWindow import Ui_MainWindow
from workers import loadCases, updateThread from workers import loadCases, updateThread
@@ -120,7 +125,7 @@ class casesModel(QSqlTableModel):
class MainWindow(QMainWindow, Ui_MainWindow): class MainWindow(QMainWindow, Ui_MainWindow):
show_entries = Signal(int) show_entries = Signal(int)
update_status = Signal() update_status = Signal()
loadThread = None loadThread = None
def __init__(self) -> None: def __init__(self) -> None:
@@ -181,17 +186,19 @@ class MainWindow(QMainWindow, Ui_MainWindow):
layout.addWidget(self.status) layout.addWidget(self.status)
layout.addStretch() layout.addStretch()
self.progress = QProgressBar() self.progress = QProgressBar()
self.progress.setRange(0,100) self.progress.setRange(0, 100)
self.progress.setValue(0) self.progress.setValue(0)
self.progress.setMinimumWidth(150) self.progress.setMinimumWidth(150)
self.progress.setMaximumWidth(150) self.progress.setMaximumWidth(150)
self.progress.setSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Preferred) self.progress.setSizePolicy(
QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Preferred
)
layout.addWidget(self.progress) layout.addWidget(self.progress)
self.loadButton = QPushButton() self.loadButton = QPushButton()
self.loadButton.setObjectName("loadButton") self.loadButton.setObjectName("loadButton")
self.loadButton.setText("Load Cases") self.loadButton.setText("Load Cases")
layout.addWidget(self.loadButton) layout.addWidget(self.loadButton)
self.statusbar.addWidget(widget,10) self.statusbar.addWidget(widget, 10)
self.loadButton.clicked.connect(self.loadCases) self.loadButton.clicked.connect(self.loadCases)
self.update_status.connect(self.statusBarUpdate) self.update_status.connect(self.statusBarUpdate)
@@ -212,36 +219,41 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.loadButton.setEnabled(False) self.loadButton.setEnabled(False)
self.loadThread.start() self.loadThread.start()
return return
@Slot() @Slot()
def loadCasesDone(self) -> None: def loadCasesDone(self) -> None:
self.loadButton.setEnabled(True) self.loadButton.setEnabled(True)
self.update_status.emit() self.update_status.emit()
return return
@Slot() @Slot()
def statusBarUpdate(self) -> None: def statusBarUpdate(self) -> None:
if self.loadThread is None: if self.loadThread is None:
year = '' year = ""
max = 'unknown' max = "unknown"
else: else:
year = self.loadThread.year year = self.loadThread.year
max = self.loadThread.number max = str(self.loadThread.number)
query = QSqlQuery() query = QSqlQuery()
query.prepare("SELECT COUNT(*) AS number_active FROM cases WHERE active=1") query.prepare(
"SELECT COUNT(*) AS number_active FROM cases WHERE active=1"
)
if not query.exec(): if not query.exec():
query_error(query) query_error(query)
if query.next(): if query.next():
active = query.value('number_active') active = query.value("number_active")
query.prepare("select SUBSTRING(docket_id,1,2) AS year, " query.prepare(
"SUBSTRING(docket_id,3,1) AS type, " "select SUBSTRING(docket_id,1,2) AS year, "
"MAX(CAST(SUBSTRING(docket_id,4) AS INTEGER)) AS number " "SUBSTRING(docket_id,3,1) AS type, "
"FROM cases " "MAX(CAST(SUBSTRING(docket_id,4) AS INTEGER)) AS number "
"GROUP BY year, type " "FROM cases "
"ORDER BY type, year, number" "GROUP BY year, type "
"LIMIT 2") "ORDER BY type, year, number"
#if not query.exec(): "LIMIT 2"
)
# if not query.exec():
# query_error(query) # query_error(query)
msg=f"Oldest: {year}, Active: {active}, Max. Case: {max}" msg = f"Oldest: {year}, Active: {active}, Max. Case: {max}"
self.status.setText(msg) self.status.setText(msg)
return return

View File

@@ -33,18 +33,21 @@ class Entries(db.Entity): # type: ignore[name-defined]
text = Required(LongStr) text = Required(LongStr)
documents = Set("Documents") documents = Set("Documents")
class Documents(db.Entity): # type: ignore[name-defined] class Documents(db.Entity): # type: ignore[name-defined]
document_id = PrimaryKey(int, auto=True) document_id = PrimaryKey(int, auto=True)
entry_id = Required(Entries) entry_id = Required(Entries)
name = Required(str) name = Required(str)
url = Required(LongStr) url = Required(LongStr)
class History(db.Entity): # type: ignore[name-defined] class History(db.Entity): # type: ignore[name-defined]
history_id = PrimaryKey(int, auto=True) history_id = PrimaryKey(int, auto=True)
year = Required(str, max_len=3) year = Required(str, max_len=3)
edocket = Required(bool) edocket = Required(bool)
number = Required(int) number = Required(int)
def updateDatabase(settings: QSettings) -> None: def updateDatabase(settings: QSettings) -> None:
set_sql_debug(True) set_sql_debug(True)
engine = settings.value("engine") engine = settings.value("engine")

View File

@@ -314,7 +314,7 @@ class loadCases(QThread):
caseLoaded = Signal(int) caseLoaded = Signal(int)
year = QDateTime.currentDateTime().toString("yy") year = QDateTime.currentDateTime().toString("yy")
number = 0 number = 0
def run(self) -> None: def run(self) -> None:
db = QSqlDatabase.cloneDatabase("qt_sql_default_connection", "load") db = QSqlDatabase.cloneDatabase("qt_sql_default_connection", "load")
if not db.open(): if not db.open():