def test_form_pillow_indicators(self): since = get_current_seq(XFormInstance.get_db()) form_id = self._save_doc_to_db('indicator_form.json', XFormInstance) form_instance = XFormInstance.get(form_id) # Form Label Indicator form_label = FormLabelIndicatorDefinition.increment_or_create_unique( INDICATOR_TEST_NAMESPACE, INDICATOR_TEST_DOMAIN, slug='create_form', xmlns='http://openrosa.org/formdesigner/indicator-create-xmlns', ) form_label.save() # Form Alias form_alias = FormDataAliasIndicatorDefinition.increment_or_create_unique( INDICATOR_TEST_NAMESPACE, INDICATOR_TEST_DOMAIN, slug='club_name', question_id='location.club', xmlns='http://openrosa.org/formdesigner/indicator-create-xmlns', ) form_alias.save() self.form_pillow.process_changes(since=since, forever=False) indicator_form = IndicatorXForm.get(form_id) self.assertNotEqual(indicator_form.get_db().dbname, form_instance.get_db().dbname) self.assertNotEqual(indicator_form.computed_, {})
def test_form_pillow_indicators(self): form_id = self._save_doc_to_db('indicator_form.json', XFormInstance) form_instance = XFormInstance.get(form_id) # Form Label Indicator form_label = FormLabelIndicatorDefinition.increment_or_create_unique( INDICATOR_TEST_NAMESPACE, INDICATOR_TEST_DOMAIN, slug='create_form', xmlns='http://openrosa.org/formdesigner/indicator-create-xmlns', ) form_label.save() # Form Alias form_alias = FormDataAliasIndicatorDefinition.increment_or_create_unique( INDICATOR_TEST_NAMESPACE, INDICATOR_TEST_DOMAIN, slug='club_name', question_id='location.club', xmlns='http://openrosa.org/formdesigner/indicator-create-xmlns', ) form_alias.save() self.form_pillow.process_changes(since=None, forever=False) indicator_form = IndicatorXForm.get(form_id) self.assertNotEqual( indicator_form.get_db().dbname, form_instance.get_db().dbname ) self.assertNotEqual(indicator_form.computed_, {})
def test_form_pillow_indicators(self): form_id = self._save_doc_to_db("indicator_form.json", XFormInstance) form_instance = XFormInstance.get(form_id) # Form Label Indicator form_label = FormLabelIndicatorDefinition.increment_or_create_unique( INDICATOR_TEST_NAMESPACE, INDICATOR_TEST_DOMAIN, slug="create_form", xmlns="http://openrosa.org/formdesigner/indicator-create-xmlns", ) form_label.save() # Form Alias form_alias = FormDataAliasIndicatorDefinition.increment_or_create_unique( INDICATOR_TEST_NAMESPACE, INDICATOR_TEST_DOMAIN, slug="club_name", question_id="location.club", xmlns="http://openrosa.org/formdesigner/indicator-create-xmlns", ) form_alias.save() self.form_pillow.run_burst() indicator_form = IndicatorXForm.get(form_id) self.assertNotEqual(indicator_form.get_db().dbname, form_instance.get_db().dbname) self.assertNotEqual(indicator_form.computed_, {})
def create_form_alias_indicators(self, question_ids, xmlns, domain, shared_args): for indicator_slug, ids_per_domain in question_ids.items(): indicator_info = ids_per_domain.get(domain) if indicator_info: form_question = FormDataAliasIndicatorDefinition.increment_or_create_unique( *shared_args, slug=indicator_slug, xmlns=xmlns, **indicator_info ) print(form_question)
class FormAliasIndicatorDefinitionAdminInterface(BaseIndicatorAdminInterface): name = FormDataAliasIndicatorDefinition.get_nice_name() description = ("Maps a question id from that form to an indicator slug that can be referenced across all projects " "in the indicator couch views.") slug = "form_alias" document_class = FormDataAliasIndicatorDefinition form_class = FormDataAliasIndicatorDefinitionForm @property def headers(self): header = super(FormAliasIndicatorDefinitionAdminInterface, self).headers header.insert_column(DataTablesColumn("XMLNS or Label"), -3) header.insert_column(DataTablesColumn("Question ID"), -3) return header