Skip to content
Snippets Groups Projects
Commit 9eaf51b9 authored by Matthew Andrew's avatar Matthew Andrew
Browse files

Updated identical group check to switch groups Re #23642

parent f61d2c5d
No related merge requests found
......@@ -32,11 +32,11 @@ class GroupingTabModel(object):
@property
def groups(self):
return self._data.groups.values()
return list(self._data.groups.values())
@property
def pairs(self):
return self._data.pairs.values()
return list(self._data.pairs.values())
@property
def group_names(self):
......
......@@ -10,7 +10,7 @@ class PairingTableModel(object):
@property
def pairs(self):
return self._data.pairs.values()
return list(self._data.pairs.values())
@property
def pair_names(self):
......
......@@ -51,16 +51,17 @@ class PairingTablePresenter(object):
self.guessAlphaNotifier.notify_subscribers([pair_name, group1, group2])
def handle_data_change(self, row, col):
changed_item = self._view.get_table_contents()[row][col]
table = self._view.get_table_contents()
changed_item = table[row][col]
update_model = True
if col == 0 and not self.validate_pair_name(changed_item):
update_model = False
if col == 1:
if changed_item == self._view.get_table_item_text(row, 2):
update_model = False
table[row][2] = self._model.pairs[row].forward_group
if col == 2:
if changed_item == self._view.get_table_item_text(row, 1):
update_model = False
table[row][1] = self._model.pairs[row].backward_group
if col == 3:
if not self.validate_alpha(changed_item):
update_model = False
......@@ -73,13 +74,14 @@ class PairingTablePresenter(object):
self._view.pairing_table.blockSignals(False)
if update_model:
self.update_model_from_view()
self.update_model_from_view(table)
self.update_view_from_model()
self.notify_data_changed()
def update_model_from_view(self):
table = self._view.get_table_contents()
def update_model_from_view(self, table=None):
if not table:
table = self._view.get_table_contents()
self._model.clear_pairs()
for entry in table:
pair = MuonPair(pair_name=str(entry[0]),
......
......@@ -188,7 +188,7 @@ class GroupSelectorTest(unittest.TestCase):
self.assertEqual(self.get_group_1_selector_from_pair(0).currentText(), 'my_group_1')
self.assertEqual(self.get_group_2_selector_from_pair(0).currentText(), 'my_group_1')
def test_group_cannot_be_changed_to_match_other_group(self):
def test_group_changed_to_other_group_switches_groups(self):
self.add_three_groups_to_model()
self.presenter.handle_add_pair_button_clicked()
......@@ -202,8 +202,8 @@ class GroupSelectorTest(unittest.TestCase):
self.assertEqual(self.get_group_1_selector_from_pair(0).count(), 3)
self.assertEqual(self.get_group_2_selector_from_pair(0).count(), 3)
self.assertEqual(self.get_group_1_selector_from_pair(0).currentText(), 'my_group_0')
self.assertEqual(self.get_group_2_selector_from_pair(0).currentText(), 'my_group_1')
self.assertEqual(self.get_group_1_selector_from_pair(0).currentText(), 'my_group_1')
self.assertEqual(self.get_group_2_selector_from_pair(0).currentText(), 'my_group_0')
......
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