Skip to content
Snippets Groups Projects
Commit f122ac96 authored by Jakub Štercl's avatar Jakub Štercl
Browse files

some quality of life improvements

parent 7223504c
No related branches found
No related tags found
No related merge requests found
......@@ -28,7 +28,7 @@ class DistributionOverview(BaseController, QWidget, distribution_overview.Ui_For
self.group = group
self.teamTables = []
self.saved = False
for i, team_name in enumerate(teams):
for i, team_name in enumerate(sorted(teams)):
table = MembersDragDropTable(i, teams[team_name], team_name, self)
table.model.sourceModel().droppedMemberFrom.connect(self.removeMember)
table.deleteClicked.connect(self.removeTeam)
......@@ -135,7 +135,6 @@ class DistributionOverview(BaseController, QWidget, distribution_overview.Ui_For
create Distribution instance and save it to database
:param return_after: indicates if, after saving, we want to exit the screen
"""
print(return_after)
teams = []
for table in self.teamTables:
team = Team(table.id_, table.name, table.getAllData())
......
......@@ -160,7 +160,7 @@ class DistributionSetup(BaseController, QWidget, distributionsetup.Ui_Form):
if len(violated_requirements) > 0:
msg = QMessageBox(self)
msg.setWindowTitle(self.tr("Rozdělení se nepodařilo nalézt"))
msg.setText(self.tr("Rozdělení s požadovanými parametry se nepodařilo nalézt!"))
msg.setText(self.tr("Nalezené rozdělení nesplňuje všechny požadavky."))
detailed_text = self.createDetailedText(violated_requirements)
msg.setDetailedText(self.tr("Nalezené rozdělení porušuje následující požadavky:\n") + detailed_text)
btn_show_anyways = msg.addButton(self.tr("Přesto zobrazit"), QMessageBox.AcceptRole)
......
......@@ -29,8 +29,8 @@ class DistributionMaker:
]
self.team_count = team_count
self.member_count = len(members)
self.min_team_size = min_team_size if min_team_size is not None else 1
self.max_team_size = max_team_size if max_team_size is not None else self.member_count
self.req_min_team_size = self.min_team_size = min_team_size if min_team_size is not None else 1
self.req_max_team_size = self.max_team_size = max_team_size if max_team_size is not None else self.member_count
self.prefer = prefer
self.members = members
self.unassigned = [{member} for member in members]
......@@ -72,9 +72,12 @@ class DistributionMaker:
self._makeTeamsFromRequirements()
teams = self._solve()
for team in teams:
if len(team) < self.min_team_size:
if len(team) < self.req_min_team_size:
if self.enum_violated.MIN_TEAM_SIZE not in self.violated_requirements:
self.violated_requirements.append(self.enum_violated.MIN_TEAM_SIZE)
if len(team) > self.req_max_team_size:
if self.enum_violated.MAX_TEAM_SIZE not in self.violated_requirements:
self.violated_requirements.append(self.enum_violated.MAX_TEAM_SIZE)
self.checkTeamValid(team)
if len(teams) != self.team_count:
self.violated_requirements.append(self.enum_violated.TEAM_COUNT)
......@@ -90,23 +93,18 @@ class DistributionMaker:
def checkTeamSizeLimits(self):
"""
check whether the team size limits (max_team_size, min_team_size, team_count) are satisfiable
if not, change them to (basically) unset and add to self.violated_requirements
if not, change them to (basically) unset
"""
if self.max_team_size < self.min_team_size:
self.max_team_size = self.member_count
self.violated_requirements.append(self.enum_violated.MAX_TEAM_SIZE)
self.min_team_size = 1
self.violated_requirements.append(self.enum_violated.MIN_TEAM_SIZE)
 
if self.team_count is not None:
avg_team_size = self.member_count / self.team_count
if self.min_team_size > avg_team_size:
self.min_team_size = 1
self.violated_requirements.append(self.enum_violated.MIN_TEAM_SIZE)
if self.max_team_size < avg_team_size:
self.max_team_size = self.member_count
self.violated_requirements.append(self.enum_violated.MAX_TEAM_SIZE)
 
def checkTeamValid(self, team):
"""
......
......@@ -25,8 +25,7 @@ class EditableTitle(QWidget, editable_title.Ui_Form):
self.editLine.textChanged.connect(self.onEditChanged)
self.editLine.returnPressed.connect(self.displayMode)
self.btnEdit.clicked.connect(self.editMode)
self.btnEdit.setToolTip(self.tr("Musí být v rozmezí ") + str(self.min_length)
+ self.tr("") + str(self.max_length) + self.tr(" znaků."))
self.btnEdit.setToolTip(self.tr("Přejmenovat"))
 
@pyqtSlot()
def editMode(self):
......@@ -53,6 +52,9 @@ class EditableTitle(QWidget, editable_title.Ui_Form):
self.btnEdit.clicked.disconnect(self.editMode)
self.btnEdit.clicked.connect(self.displayMode)
 
self.btnEdit.setToolTip(self.tr("Musí být v rozmezí ") + str(self.min_length)
+ self.tr("") + str(self.max_length) + self.tr(" znaků."))
@pyqtSlot()
def displayMode(self):
"""
......@@ -66,6 +68,7 @@ class EditableTitle(QWidget, editable_title.Ui_Form):
self.btnEdit.clicked.disconnect(self.displayMode)
self.btnEdit.clicked.connect(self.editMode)
self.textConfirmed.emit(self.editLine.text().strip())
self.btnEdit.setToolTip(self.tr("Přejmenovat"))
 
@pyqtSlot()
def onEditChanged(self):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment