Browse Source

hideperson

Maarten van den Berg 6 years ago
parent
commit
5511aeeb52
2 changed files with 21 additions and 3 deletions
  1. 19 1
      piket_client/gui.py
  2. 2 2
      piket_client/model.py

+ 19 - 1
piket_client/gui.py

57
         self.consumption_created.connect(self.window().consumption_added)
57
         self.consumption_created.connect(self.window().consumption_added)
58
 
58
 
59
         self.clicked.connect(self.process_click)
59
         self.clicked.connect(self.process_click)
60
+        self.setContextMenuPolicy(Qt.CustomContextMenu)
61
+        self.customContextMenuRequested.connect(self.confirm_hide)
62
+
60
 
63
 
61
     @Slot(str)
64
     @Slot(str)
62
     def new_active_id(self, new_id: str) -> None:
65
     def new_active_id(self, new_id: str) -> None:
91
         else:
94
         else:
92
             print("Jantoeternuitje, kapot")
95
             print("Jantoeternuitje, kapot")
93
 
96
 
97
+    def confirm_hide(self) -> None:
98
+        ok = QMessageBox.warning(
99
+            self.window(),
100
+            'Persoon verbergen?',
101
+            f'Wil je {self.person.name} verbergen?',
102
+            QMessageBox.Yes,
103
+            QMessageBox.Cancel,
104
+        )
105
+
106
+        if ok == QMessageBox.Yes:
107
+            LOG.warning('Hiding person %s', self.person.name)
108
+            self.person.set_active(False)
109
+            self.parent().init_ui()
110
+
94
 
111
 
95
 class NameButtons(QWidget):
112
 class NameButtons(QWidget):
96
     """ Main widget responsible for capturing presses and registering them.
113
     """ Main widget responsible for capturing presses and registering them.
114
         self.active_consumption_type_id = new_id
131
         self.active_consumption_type_id = new_id
115
         self.new_id_set.emit(new_id)
132
         self.new_id_set.emit(new_id)
116
 
133
 
134
+
117
     def init_ui(self) -> None:
135
     def init_ui(self) -> None:
118
         """ Initialize UI: build GridLayout, retrieve People and build a button
136
         """ Initialize UI: build GridLayout, retrieve People and build a button
119
         for each. """
137
         for each. """
287
 
305
 
288
             if name in inactive_names:
306
             if name in inactive_names:
289
                 person = inactive_persons[inactive_names.index(name)]
307
                 person = inactive_persons[inactive_names.index(name)]
290
-                person.make_active()
308
+                person.set_active(True)
291
 
309
 
292
             else:
310
             else:
293
                 person = Person(name=name)
311
                 person = Person(name=name)

+ 2 - 2
piket_client/model.py

72
 
72
 
73
         return Person.from_dict(data["person"])
73
         return Person.from_dict(data["person"])
74
 
74
 
75
-    def make_active(self) -> "Person":
75
+    def set_active(self, new_state=True) -> "Person":
76
         req = requests.patch(urljoin(SERVER_URL, f"people/{self.person_id}"),
76
         req = requests.patch(urljoin(SERVER_URL, f"people/{self.person_id}"),
77
-                json={'person': {'active':True}})
77
+                json={'person': {'active':new_state}})
78
 
78
 
79
         try:
79
         try:
80
             data = req.json()
80
             data = req.json()