def epilogue(self): if self.session_new.query(self.model_from['Tenant']).count() > 1: self.session_new.add(self.model_to['Config']({ 'tid': 1, 'var_name': 'multisite', 'value': True })) self.entries_count['Config'] += 1 ids = [ id[0] for id in self.session_old.query(self.model_from['Field'].id). filter(self.model_from['Field'].template_id == 'whistleblower_identity') ] for internaltip in self.session_old.query( self.model_from['InternalTip']): answers = self.db_serialize_questionnaire_answers( self.session_old, internaltip) db_set_internaltip_answers(self.session_new, internaltip.id, internaltip.questionnaire_hash, answers) for id in ids: if id in answers: db_set_internaltip_data(self.session_new, internaltip.id, 'identity_provided', True) db_set_internaltip_data(self.session_new, internaltip.id, 'whistleblower_identity', answers[id]) break
def store_additional_questionnaire_answers(session, tid, tip_id, answers, language): itip = session.query(models.InternalTip) \ .filter(models.InternalTip.id == tip_id, models.InternalTip.status != 'closed', models.InternalTip.tid == tid).one() if not itip.additional_questionnaire_id: return steps = db_get_questionnaire(session, tid, itip.additional_questionnaire_id, None)['steps'] questionnaire_hash = db_archive_questionnaire_schema(session, steps) db_save_plaintext_answers(session, tid, itip.id, answers, itip.crypto_tip_pub_key != '') if itip.crypto_tip_pub_key: answers = base64.b64encode( GCE.asymmetric_encrypt(itip.crypto_tip_pub_key, json.dumps(answers).encode())).decode() db_set_internaltip_answers(session, itip.id, questionnaire_hash, answers) itip.additional_questionnaire_id = ''
def epilogue(self): if self.session_new.query(self.model_from['Tenant']).count() > 1: obj = self.model_to['Config']() obj.tid = 1 obj.var_name = 'multisite' obj.value = True self.session_new.add(obj) self.entries_count['Config'] += 1 for obj in self.session_new.query(self.model_from['WhistleblowerTip']): obj.hash_alg = 'SCRYPT' ids = [ id[0] for id in self.session_old.query(self.model_from['Field'].id). filter(self.model_from['Field'].template_id == 'whistleblower_identity') ] for internaltip in self.session_old.query( self.model_from['InternalTip']): answers = self.db_serialize_questionnaire_answers( self.session_old, internaltip) db_set_internaltip_answers(self.session_new, internaltip.id, internaltip.questionnaire_hash, answers) for id in ids: if id in answers: db_set_internaltip_data(self.session_new, internaltip.id, 'identity_provided', True) db_set_internaltip_data(self.session_new, internaltip.id, 'whistleblower_identity', answers[id]) break
def store_additional_questionnaire_answers(session, tid, tip_id, answers, language): internaltip = session.query(models.InternalTip) \ .filter(models.InternalTip.id == tip_id, models.InternalTip.tid == tid).one() if not internaltip.additional_questionnaire_id: return steps = db_get_questionnaire(session, tid, internaltip.additional_questionnaire_id, None)['steps'] questionnaire_hash = db_archive_questionnaire_schema(session, steps) db_save_questionnaire_answers(session, tid, internaltip.id, answers) db_set_internaltip_answers(session, internaltip.id, questionnaire_hash, answers, False) internaltip.additional_questionnaire_id = ''
def epilogue(self): if self.session_new.query(self.model_from['Tenant']).count() > 1: self.session_new.add(self.model_to['Config']({'tid': 1, 'var_name': u'multisite', 'value': True})) self.entries_count['Config'] += 1 ids = [id[0] for id in self.session_old.query(self.model_from['Field'].id) .filter(self.model_from['Field'].template_id == u'whistleblower_identity')] for internaltip in self.session_old.query(self.model_from['InternalTip']): answers = self.db_serialize_questionnaire_answers(self.session_old, internaltip.tid, internaltip) db_set_internaltip_answers(self.session_new, internaltip.id, internaltip.questionnaire_hash, answers, False) for id in ids: if id in answers: db_set_internaltip_data(self.session_new, internaltip.id, 'identity_provided', True, False) db_set_internaltip_data(self.session_new, internaltip.id, 'whistleblower_identity', answers[id], False) break