Create names for columns
Addresses #17 but it feels like we should have these definitions in the dbConfig. Which leads to the question of moving from QtSql to Pony ORM
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
import enum
|
||||||
from typing import Any, cast
|
from typing import Any, cast
|
||||||
|
|
||||||
from PySide6.QtCore import (
|
from PySide6.QtCore import (
|
||||||
@@ -79,11 +80,19 @@ class activeDelegate(QStyledItemDelegate):
|
|||||||
|
|
||||||
|
|
||||||
class casesModel(QSqlTableModel):
|
class casesModel(QSqlTableModel):
|
||||||
|
class ColumnNames(enum.IntEnum):
|
||||||
|
case_id = 0
|
||||||
|
docket_id = 1
|
||||||
|
petitioners = 2
|
||||||
|
respondents = 3
|
||||||
|
date = 4
|
||||||
|
active = 5
|
||||||
|
|
||||||
def flags(self, index: QModelIndex | QPersistentModelIndex) -> Qt.ItemFlag:
|
def flags(self, index: QModelIndex | QPersistentModelIndex) -> Qt.ItemFlag:
|
||||||
if not index.isValid():
|
if not index.isValid():
|
||||||
return Qt.ItemFlag.NoItemFlags
|
return Qt.ItemFlag.NoItemFlags
|
||||||
flags = super(casesModel, self).flags(index)
|
flags = super(casesModel, self).flags(index)
|
||||||
if index.column() == 5:
|
if index.column() == casesModel.ColumnNames.active:
|
||||||
flags = (
|
flags = (
|
||||||
Qt.ItemFlag.ItemIsEnabled
|
Qt.ItemFlag.ItemIsEnabled
|
||||||
| Qt.ItemFlag.ItemIsEditable
|
| Qt.ItemFlag.ItemIsEditable
|
||||||
@@ -98,7 +107,7 @@ class casesModel(QSqlTableModel):
|
|||||||
) -> Any:
|
) -> Any:
|
||||||
if not index.isValid():
|
if not index.isValid():
|
||||||
return None
|
return None
|
||||||
if index.column() == 5:
|
if index.column() == casesModel.ColumnNames.active:
|
||||||
if role == Qt.ItemDataRole.CheckStateRole:
|
if role == Qt.ItemDataRole.CheckStateRole:
|
||||||
value = super(casesModel, self).data(index)
|
value = super(casesModel, self).data(index)
|
||||||
return (
|
return (
|
||||||
@@ -116,7 +125,7 @@ class casesModel(QSqlTableModel):
|
|||||||
value: Any,
|
value: Any,
|
||||||
role: int = Qt.ItemDataRole.DisplayRole,
|
role: int = Qt.ItemDataRole.DisplayRole,
|
||||||
) -> bool:
|
) -> bool:
|
||||||
if role == Qt.ItemDataRole.CheckStateRole and index.column() == 5:
|
if role == Qt.ItemDataRole.CheckStateRole and index.column() == casesModel.ColumnNames.active:
|
||||||
super(casesModel, self).setData(index, 1 if value else 0)
|
super(casesModel, self).setData(index, 1 if value else 0)
|
||||||
return True
|
return True
|
||||||
return super().setData(index, value, role)
|
return super().setData(index, value, role)
|
||||||
@@ -139,11 +148,11 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||||||
"1=1 ORDER BY SUBSTRING(docket_id, 1, 3), CAST(SUBSTRING(docket_id,4) AS INTEGER)"
|
"1=1 ORDER BY SUBSTRING(docket_id, 1, 3), CAST(SUBSTRING(docket_id,4) AS INTEGER)"
|
||||||
)
|
)
|
||||||
model.select()
|
model.select()
|
||||||
model.setHeaderData(1, Qt.Orientation.Horizontal, "Docket")
|
model.setHeaderData(casesModel.ColumnNames.docket_id, Qt.Orientation.Horizontal, "Docket")
|
||||||
model.setHeaderData(2, Qt.Orientation.Horizontal, "Petitioners")
|
model.setHeaderData(casesModel.ColumnNames.petitioners, Qt.Orientation.Horizontal, "Petitioners")
|
||||||
model.setHeaderData(3, Qt.Orientation.Horizontal, "Respondents")
|
model.setHeaderData(casesModel.ColumnNames.respondents, Qt.Orientation.Horizontal, "Respondents")
|
||||||
model.setHeaderData(4, Qt.Orientation.Horizontal, "Date")
|
model.setHeaderData(casesModel.ColumnNames.date, Qt.Orientation.Horizontal, "Date")
|
||||||
model.setHeaderData(5, Qt.Orientation.Horizontal, "Active")
|
model.setHeaderData(casesModel.ColumnNames.active, Qt.Orientation.Horizontal, "Active")
|
||||||
self.casesView.setModel(model)
|
self.casesView.setModel(model)
|
||||||
|
|
||||||
self.casesView.setSelectionMode(
|
self.casesView.setSelectionMode(
|
||||||
@@ -152,23 +161,23 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||||||
self.casesView.setSelectionBehavior(
|
self.casesView.setSelectionBehavior(
|
||||||
QAbstractItemView.SelectionBehavior.SelectRows
|
QAbstractItemView.SelectionBehavior.SelectRows
|
||||||
)
|
)
|
||||||
self.casesView.hideColumn(0)
|
self.casesView.hideColumn(casesModel.ColumnNames.case_id)
|
||||||
self.casesView.setItemDelegate(activeDelegate())
|
self.casesView.setItemDelegate(activeDelegate())
|
||||||
self.casesView.setItemDelegateForColumn(4, dateDelegate())
|
self.casesView.setItemDelegateForColumn(casesModel.ColumnNames.date, dateDelegate())
|
||||||
self.casesView.resizeColumnToContents(1)
|
self.casesView.resizeColumnToContents(casesModel.ColumnNames.docket_id)
|
||||||
self.casesView.resizeColumnToContents(4)
|
self.casesView.resizeColumnToContents(casesModel.ColumnNames.date)
|
||||||
header = self.casesView.horizontalHeader()
|
header = self.casesView.horizontalHeader()
|
||||||
header.setSectionResizeMode(2, QHeaderView.ResizeMode.Fixed)
|
header.setSectionResizeMode(casesModel.ColumnNames.petitioners, QHeaderView.ResizeMode.Fixed)
|
||||||
header.setSectionResizeMode(3, QHeaderView.ResizeMode.Fixed)
|
header.setSectionResizeMode(casesModel.ColumnNames.respondents, QHeaderView.ResizeMode.Fixed)
|
||||||
self.show()
|
self.show()
|
||||||
remaining = (
|
remaining = (
|
||||||
self.casesView.width()
|
self.casesView.width()
|
||||||
- header.sectionSize(1)
|
- header.sectionSize(casesModel.ColumnNames.docket_id)
|
||||||
- header.sectionSize(4)
|
- header.sectionSize(casesModel.ColumnNames.date)
|
||||||
- 5
|
- 5
|
||||||
)
|
)
|
||||||
self.casesView.setColumnWidth(2, int(remaining * 0.5))
|
self.casesView.setColumnWidth(casesModel.ColumnNames.petitioners, int(remaining * 0.5))
|
||||||
self.casesView.setColumnWidth(3, int(remaining * 0.5))
|
self.casesView.setColumnWidth(casesModel.ColumnNames.respondents, int(remaining * 0.5))
|
||||||
self.casesView.verticalHeader().hide()
|
self.casesView.verticalHeader().hide()
|
||||||
self.casesView.resizeRowsToContents()
|
self.casesView.resizeRowsToContents()
|
||||||
self.casesView.doubleClicked.connect(self.rowClicked)
|
self.casesView.doubleClicked.connect(self.rowClicked)
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
import datetime
|
import enum
|
||||||
from typing import Any, cast
|
from typing import Any
|
||||||
|
|
||||||
from PySide6.QtCore import (
|
from PySide6.QtCore import (
|
||||||
QAbstractTableModel,
|
QAbstractTableModel,
|
||||||
QDate,
|
QDate,
|
||||||
QDateTime,
|
|
||||||
QModelIndex,
|
QModelIndex,
|
||||||
QPersistentModelIndex,
|
QPersistentModelIndex,
|
||||||
Qt,
|
Qt,
|
||||||
@@ -18,6 +17,10 @@ from lib.utils import query_error
|
|||||||
class docketModel(QAbstractTableModel):
|
class docketModel(QAbstractTableModel):
|
||||||
entries: list[list[str | None]] = []
|
entries: list[list[str | None]] = []
|
||||||
|
|
||||||
|
class ColumnNames(enum.IntEnum):
|
||||||
|
date = 0
|
||||||
|
text = 1
|
||||||
|
|
||||||
def __init__(self, case_id: int | None = None) -> None:
|
def __init__(self, case_id: int | None = None) -> None:
|
||||||
super(docketModel, self).__init__()
|
super(docketModel, self).__init__()
|
||||||
if case_id == None:
|
if case_id == None:
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ from PySide6.QtWidgets import (
|
|||||||
QWidget,
|
QWidget,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
from docketModel import docketModel
|
||||||
from pdfView import PDFViewer
|
from pdfView import PDFViewer
|
||||||
|
|
||||||
|
|
||||||
@@ -84,6 +85,7 @@ class docketEntry(QTextEdit):
|
|||||||
|
|
||||||
|
|
||||||
class docketTableView(QTableView):
|
class docketTableView(QTableView):
|
||||||
|
|
||||||
manager: QNetworkAccessManager
|
manager: QNetworkAccessManager
|
||||||
clickedEvent = Signal(QPoint)
|
clickedEvent = Signal(QPoint)
|
||||||
anchorSignal = Signal(QModelIndex, str)
|
anchorSignal = Signal(QModelIndex, str)
|
||||||
@@ -139,7 +141,7 @@ class docketTableView(QTableView):
|
|||||||
red = QPalette()
|
red = QPalette()
|
||||||
red.setColor(QPalette.ColorRole.Base, Qt.GlobalColor.red)
|
red.setColor(QPalette.ColorRole.Base, Qt.GlobalColor.red)
|
||||||
for row in range(0, model.rowCount()):
|
for row in range(0, model.rowCount()):
|
||||||
index = model.index(row, 1)
|
index = model.index(row, docketModel.ColumnNames.text)
|
||||||
widget = docketEntry()
|
widget = docketEntry()
|
||||||
widget.setHtml(model.data(index, Qt.ItemDataRole.DisplayRole))
|
widget.setHtml(model.data(index, Qt.ItemDataRole.DisplayRole))
|
||||||
widget.setAutoFillBackground(False)
|
widget.setAutoFillBackground(False)
|
||||||
|
|||||||
Reference in New Issue
Block a user