Skip to content

Commit

Permalink
Fix log table sorting. By @rblenis (#881)
Browse files Browse the repository at this point in the history
Fixes #880
  • Loading branch information
rblenis committed Feb 22, 2021
1 parent 563b0a0 commit d701211
Showing 1 changed file with 17 additions and 7 deletions.
24 changes: 17 additions & 7 deletions src/vorta/views/schedule_tab.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,14 @@
ScheduleUI, ScheduleBase = uic.loadUiType(uifile)


class LogTableColumn:
Time = 0
Category = 1
Subcommand = 2
Repository = 3
ReturnCode = 4


class ScheduleTab(ScheduleBase, ScheduleUI, BackupProfileMixin):

def __init__(self, parent=None):
Expand Down Expand Up @@ -116,15 +124,17 @@ def save_repo_attr(self, attr, new_value):
def populate_logs(self):
event_logs = [s for s in EventLogModel.select().order_by(EventLogModel.start_time.desc())]

sorting = self.logTableWidget.isSortingEnabled()
self.logTableWidget.setSortingEnabled(False) # disable sorting while modifying the table.
self.logTableWidget.setRowCount(len(event_logs)) # go ahead and set table length and then update the rows
for row, log_line in enumerate(event_logs):
self.logTableWidget.insertRow(row)
formatted_time = log_line.start_time.strftime('%Y-%m-%d %H:%M')
self.logTableWidget.setItem(row, 0, QTableWidgetItem(formatted_time))
self.logTableWidget.setItem(row, 1, QTableWidgetItem(log_line.category))
self.logTableWidget.setItem(row, 2, QTableWidgetItem(log_line.subcommand))
self.logTableWidget.setItem(row, 3, QTableWidgetItem(log_line.repo_url))
self.logTableWidget.setItem(row, 4, QTableWidgetItem(str(log_line.returncode)))
self.logTableWidget.setRowCount(len(event_logs))
self.logTableWidget.setItem(row, LogTableColumn.Time, QTableWidgetItem(formatted_time))
self.logTableWidget.setItem(row, LogTableColumn.Category, QTableWidgetItem(log_line.category))
self.logTableWidget.setItem(row, LogTableColumn.Subcommand, QTableWidgetItem(log_line.subcommand))
self.logTableWidget.setItem(row, LogTableColumn.Repository, QTableWidgetItem(log_line.repo_url))
self.logTableWidget.setItem(row, LogTableColumn.ReturnCode, QTableWidgetItem(str(log_line.returncode)))
self.logTableWidget.setSortingEnabled(sorting) # restore sorting now that modifications are done

def _draw_next_scheduled_backup(self):
self.nextBackupDateTimeLabel.setText(self.app.scheduler.next_job_for_profile(self.profile().id))
Expand Down

0 comments on commit d701211

Please sign in to comment.