def user_search_rfid(self, klass, mode): """ Метод для поиска клиента по RFID. """ def callback(rfid): self.rfid_id = rfid if self.params.logged_in: dialog = WaitingRFID(self, mode=mode, callback=callback) dialog.setModal(True) if QDialog.Accepted == dialog.exec_() and self.rfid_id: h = self.params.http if not h.request( '/api/%s/%s/' % (mode, self.rfid_id), 'GET', force=True): QMessageBox.critical( self, self.tr('Client info'), self.tr('Unable to fetch: %s') % h.error_msg) return response = h.parse() if 0 == len(response): QMessageBox.warning( self, self.tr('Warning'), self.tr('This RFID belongs to nobody.')) else: self.dialog = klass(self) self.dialog.setModal(True) self.dialog.initData(response[0]) self.dialog.exec_() del (self.dialog) self.rfid_id = None
def search_by_rfid(self): """ Поиск пользователя по RFID и получение списка карт, соответствующих событию.""" def callback(rfid): self.rfid_id = rfid # диалог rfid считывателя dialog = WaitingRFID(self, callback=callback) dialog.setModal(True) if QDialog.Accepted == dialog.exec_(): http = self.params.http if not http.request( '/api/client/%s/' % self.rfid_id, 'GET', force=True): QMessageBox.critical( self, self.tr('Client info'), self.tr('Unable to fetch: %s') % http.error_msg) return response = http.parse() if 0 == len(response): QMessageBox.warning(self, self.tr('Warning'), self.tr('This RFID belongs to nobody.')) return False else: self.last_user_uuid = response[0].get('uuid') return self.visit_register(self.last_user_uuid)
def assign_rfid(self): """ Метод для назначения пользователю RFID идентификатора. """ def callback(rfid): self.rfid_code = rfid dialog = WaitingRFID(self, mode='client', callback=callback) dialog.setModal(True) dlgStatus = dialog.exec_() if QDialog.Accepted == dlgStatus: http = self.params.http if not http.request('/api/rfid/%s/' % self.rfid_code, 'POST'): QMessageBox.critical( self, self.tr('Client Information'), self.tr('Unable to fetch: %1').arg(http.error_msg)) return status, response = http.piston() if status == 'DUPLICATE_ENTRY': QMessageBox.warning(self, self.tr('Warning'), self.tr('This RFID is used already!')) elif status == 'CREATED': self.rfid_uuid = response.get('uuid') self.buttonRFID.setText(self.rfid_code) self.buttonRFID.setDisabled(True)