Improved issue verification
This commit is contained in:
parent
5a24c0c5eb
commit
32621bcc87
@ -100,7 +100,7 @@ class WorklogDialog(QtWidgets.QDialog):
|
|||||||
self._changing_items = False
|
self._changing_items = False
|
||||||
self._worklog: Optional[Worklog] = None
|
self._worklog: Optional[Worklog] = None
|
||||||
self._worklog_data: List[List[str]] = []
|
self._worklog_data: List[List[str]] = []
|
||||||
self._status: List[Tuple[Status, str]] = []
|
self._statuses: List[Tuple[Status, str]] = []
|
||||||
self.row_height = None
|
self.row_height = None
|
||||||
self._focussed = False
|
self._focussed = False
|
||||||
|
|
||||||
@ -172,6 +172,9 @@ class WorklogDialog(QtWidgets.QDialog):
|
|||||||
|
|
||||||
def set_data(self, worklog: Worklog):
|
def set_data(self, worklog: Worklog):
|
||||||
self._worklog = worklog
|
self._worklog = worklog
|
||||||
|
self.update_all()
|
||||||
|
|
||||||
|
def update_all(self):
|
||||||
self.refresh_table()
|
self.refresh_table()
|
||||||
self.update_title()
|
self.update_title()
|
||||||
self.update_prev_next()
|
self.update_prev_next()
|
||||||
@ -182,13 +185,15 @@ class WorklogDialog(QtWidgets.QDialog):
|
|||||||
issue_keys = []
|
issue_keys = []
|
||||||
for row in self._worklog_data[:-1]:
|
for row in self._worklog_data[:-1]:
|
||||||
issue_keys.append(row[0].split()[0])
|
issue_keys.append(row[0].split()[0])
|
||||||
self._status = self.rest.get_issues_state(issue_keys)
|
old_statuses = self._statuses
|
||||||
for row, _ in enumerate(self._status):
|
self._statuses = self.rest.get_issues_state(issue_keys)
|
||||||
self.update_status_view(row)
|
for row, status in enumerate(self._statuses):
|
||||||
all_ok = reduce(lambda acc, it: acc and it[0] is Status.OK, self._status, True)
|
if len(old_statuses) != len(self._statuses) or old_statuses[row][0] != status[0]:
|
||||||
|
self.update_status_view(row)
|
||||||
|
all_ok = reduce(lambda acc, it: acc and it[0] is Status.OK, self._statuses, True)
|
||||||
if all_ok:
|
if all_ok:
|
||||||
self.upload_button.setEnabled(True)
|
self.upload_button.setEnabled(True)
|
||||||
all_done = reduce(lambda acc, it: acc and it[0] is not Status.PROGRESS, self._status, True)
|
all_done = reduce(lambda acc, it: acc and it[0] is not Status.PROGRESS, self._statuses, True)
|
||||||
if all_done:
|
if all_done:
|
||||||
self.update_timer.stop()
|
self.update_timer.stop()
|
||||||
|
|
||||||
@ -200,8 +205,6 @@ class WorklogDialog(QtWidgets.QDialog):
|
|||||||
|
|
||||||
def refresh_table(self):
|
def refresh_table(self):
|
||||||
self._worklog_data = self._worklog.worklog
|
self._worklog_data = self._worklog.worklog
|
||||||
for i, _ in enumerate(self._worklog_data[:-1]):
|
|
||||||
self._status.append((Status.PROGRESS, "Fetching"))
|
|
||||||
self._changing_items = True
|
self._changing_items = True
|
||||||
if not self.row_height:
|
if not self.row_height:
|
||||||
self.tableWidget.setRowCount(1)
|
self.tableWidget.setRowCount(1)
|
||||||
@ -220,7 +223,6 @@ class WorklogDialog(QtWidgets.QDialog):
|
|||||||
self.tableWidget.setItem(row, 1, item1)
|
self.tableWidget.setItem(row, 1, item1)
|
||||||
item1.setFlags(item1.flags() & QtCore.Qt.ItemIsEnabled)
|
item1.setFlags(item1.flags() & QtCore.Qt.ItemIsEnabled)
|
||||||
else:
|
else:
|
||||||
self.update_status_view(row)
|
|
||||||
text_edit = WorklogDialog.TableTextEdit(self._worklog_data[row][1], row, self)
|
text_edit = WorklogDialog.TableTextEdit(self._worklog_data[row][1], row, self)
|
||||||
text_edit.textChanged.connect(self.on_resize)
|
text_edit.textChanged.connect(self.on_resize)
|
||||||
text_edit.setFrameStyle(QtWidgets.QFrame.NoFrame)
|
text_edit.setFrameStyle(QtWidgets.QFrame.NoFrame)
|
||||||
@ -247,19 +249,19 @@ class WorklogDialog(QtWidgets.QDialog):
|
|||||||
self.move(x, y)
|
self.move(x, y)
|
||||||
|
|
||||||
def update_status_view(self, row):
|
def update_status_view(self, row):
|
||||||
if self._status[row][0] is Status.PROGRESS:
|
if self._statuses[row][0] is Status.PROGRESS:
|
||||||
icon = ProgressIndicator(self)
|
icon = ProgressIndicator(self)
|
||||||
icon.setMaximumSize(QtCore.QSize(self.row_height * 0.75, self.row_height * 0.75))
|
icon.setMaximumSize(QtCore.QSize(self.row_height * 0.75, self.row_height * 0.75))
|
||||||
icon.setAnimationDelay(70)
|
icon.setAnimationDelay(70)
|
||||||
icon.startAnimation()
|
icon.startAnimation()
|
||||||
else:
|
else:
|
||||||
if self._status[row][0] is Status.OK:
|
if self._statuses[row][0] is Status.OK:
|
||||||
item_name = "dialog-ok"
|
item_name = "dialog-ok"
|
||||||
elif self._status[row][0] is Status.ERROR:
|
elif self._statuses[row][0] is Status.ERROR:
|
||||||
item_name = "edit-delete-remove"
|
item_name = "edit-delete-remove"
|
||||||
icon = QtWidgets.QLabel()
|
icon = QtWidgets.QLabel()
|
||||||
icon.setPixmap(get_icon(item_name).pixmap(self.row_height * 0.75, self.row_height * 0.75))
|
icon.setPixmap(get_icon(item_name).pixmap(self.row_height * 0.75, self.row_height * 0.75))
|
||||||
icon.setToolTip(self._status[row][1])
|
icon.setToolTip(self._statuses[row][1])
|
||||||
layout = QtWidgets.QHBoxLayout()
|
layout = QtWidgets.QHBoxLayout()
|
||||||
layout.addWidget(icon, alignment=QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter)
|
layout.addWidget(icon, alignment=QtCore.Qt.AlignRight | QtCore.Qt.AlignVCenter)
|
||||||
layout.setContentsMargins(self.row_height * 0.1, self.row_height * 0.1,
|
layout.setContentsMargins(self.row_height * 0.1, self.row_height * 0.1,
|
||||||
@ -294,21 +296,15 @@ class WorklogDialog(QtWidgets.QDialog):
|
|||||||
def previous(self):
|
def previous(self):
|
||||||
self.save()
|
self.save()
|
||||||
self._worklog.previous()
|
self._worklog.previous()
|
||||||
self.update_title()
|
|
||||||
self._focussed = False
|
self._focussed = False
|
||||||
self.refresh_table()
|
self.update_all()
|
||||||
self.center_dialog()
|
|
||||||
self.update_prev_next()
|
|
||||||
|
|
||||||
@QtCore.Slot()
|
@QtCore.Slot()
|
||||||
def next(self):
|
def next(self):
|
||||||
self.save()
|
self.save()
|
||||||
self._worklog.next()
|
self._worklog.next()
|
||||||
self.update_title()
|
|
||||||
self._focussed = False
|
self._focussed = False
|
||||||
self.refresh_table()
|
self.update_all()
|
||||||
self.center_dialog()
|
|
||||||
self.update_prev_next()
|
|
||||||
|
|
||||||
@QtCore.Slot()
|
@QtCore.Slot()
|
||||||
def cell_changed(self, row, _):
|
def cell_changed(self, row, _):
|
||||||
@ -316,9 +312,7 @@ class WorklogDialog(QtWidgets.QDialog):
|
|||||||
return
|
return
|
||||||
self._worklog_data[row][0] = self.tableWidget.item(row, 0).text()
|
self._worklog_data[row][0] = self.tableWidget.item(row, 0).text()
|
||||||
self.save()
|
self.save()
|
||||||
self.update_statuses()
|
self.update_all()
|
||||||
self.update_timer.start()
|
|
||||||
self.refresh_table()
|
|
||||||
|
|
||||||
@QtCore.Slot()
|
@QtCore.Slot()
|
||||||
def text_edit_changed(self, text, row):
|
def text_edit_changed(self, text, row):
|
||||||
|
Loading…
Reference in New Issue
Block a user