コード例 #1
0
    def handle_internaltip_fixes(self, new_obj, old_obj):
        old_node = self.store_old.find(self.model_from['Node']).one()
        new_archivedschema_model = self.model_to['ArchivedSchema']

        questionnaire, answers = self.extract_answers_from_wb_steps(
            old_obj.wb_steps)

        new_obj.questionnaire_hash = sha256(json.dumps(questionnaire))

        aqs = self.store_new.find(
            new_archivedschema_model, new_archivedschema_model.hash == unicode(
                new_obj.questionnaire_hash),
            new_archivedschema_model.type == u'questionnaire',
            new_archivedschema_model.language == unicode(
                old_node.default_language)).one()

        if not aqs:
            for lang in old_node.languages_enabled:
                aqs = new_archivedschema_model()
                aqs.hash = new_obj.questionnaire_hash
                aqs.type = u'questionnaire'
                aqs.language = lang
                aqs.schema = questionnaire
                self.store_new.add(aqs)

                preview = []
                for s in aqs.schema:
                    for f in s['children']:
                        if f['preview']:
                            preview.append(f)

                aqsp = new_archivedschema_model()
                aqsp.hash = new_obj.questionnaire_hash
                aqsp.type = u'preview'
                aqsp.language = lang
                aqsp.schema = preview
                self.store_new.add(aqsp)

        db_save_questionnaire_answers(self.store_new, new_obj.id, answers)

        new_obj.preview = extract_answers_preview(questionnaire, answers)
コード例 #2
0
ファイル: __init__.py プロジェクト: br1n0/GlobaLeaks
    def handle_internaltip_fixes(self, new_obj, old_obj):
        old_node = self.store_old.find(self.model_from['Node']).one()
        new_archivedschema_model = self.model_to['ArchivedSchema']

        questionnaire, answers = self.extract_answers_from_wb_steps(old_obj.wb_steps)

        new_obj.questionnaire_hash = sha256(json.dumps(questionnaire))

        aqs = self.store_new.find(new_archivedschema_model,
                                  new_archivedschema_model.hash == unicode(new_obj.questionnaire_hash),
                                  new_archivedschema_model.type == u'questionnaire',
                                  new_archivedschema_model.language == unicode(old_node.default_language)).one()

        if not aqs:
            for lang in old_node.languages_enabled:
                aqs = new_archivedschema_model()
                aqs.hash = new_obj.questionnaire_hash
                aqs.type = u'questionnaire'
                aqs.language = lang
                aqs.schema = questionnaire
                self.store_new.add(aqs)

                preview = []
                for s in aqs.schema:
                    for f in s['children']:
                        if f['preview']:
                            preview.append(f)

                aqsp = new_archivedschema_model()
                aqsp.hash = new_obj.questionnaire_hash
                aqsp.type = u'preview'
                aqsp.language = lang
                aqsp.schema = preview
                self.store_new.add(aqsp)

        db_save_questionnaire_answers(self.store_new, new_obj.id, answers)

        new_obj.preview = extract_answers_preview(questionnaire, answers)