コード例 #1
0
ファイル: display.py プロジェクト: xbryanc/commcare-hq
    def get_label(self, lang=None, separator=None):
        if separator is None:
            separator = " > "
        form = get_form_analytics_metadata(self.domain, self.app_id, self.xmlns)
        if form and form.get('app'):
            langs = form['app']['langs']
            app_name = form['app']['name']

            if form.get('is_user_registration'):
                form_name = "User Registration"
                title = separator.join([app_name, form_name])
            else:
                def _menu_name(menu, lang):
                    if lang and menu.get(lang):
                        return menu.get(lang)
                    else:
                        for lang in langs + list(menu):
                            menu_name = menu.get(lang)
                            if menu_name is not None:
                                return menu_name
                        return "?"

                module_name = _menu_name(form["module"]["name"], lang)
                form_name = _menu_name(form["form"]["name"], lang)
                title = separator.join([app_name, module_name, form_name])

            if form.get('app_deleted'):
                title += ' [Deleted]'
            if form.get('duplicate'):
                title += " [Multiple Forms]"
            name = title
        else:
            name = self.xmlns
        return name
コード例 #2
0
ファイル: test_analytics.py プロジェクト: ye-man/commcare-hq
 def test_get_form_analytics_metadata__no_app(self):
     self.assertEqual(
         get_form_analytics_metadata(self.domain, self.app_id_1,
                                     self.xmlns_1), {
                                         'submissions': 2,
                                         'xmlns': 'my://crazy.xmlns/'
                                     })
コード例 #3
0
    def get_label(self, lang=None):
        form = get_form_analytics_metadata(self.domain, self.app_id, self.xmlns)
        if form and form.get('app'):
            langs = form['app']['langs']
            app_name = form['app']['name']

            if form.get('is_user_registration'):
                form_name = "User Registration"
                title = "%s > %s" % (app_name, form_name)
            else:
                def _menu_name(menu, lang):
                    if lang and menu.get(lang):
                        return menu.get(lang)
                    else:
                        for lang in langs + menu.keys():
                            menu_name = menu.get(lang)
                            if menu_name is not None:
                                return menu_name
                        return "?"

                module_name = _menu_name(form["module"]["name"], lang)
                form_name = _menu_name(form["form"]["name"], lang)
                title = "%s > %s > %s" % (app_name, module_name, form_name)

            if form.get('app_deleted'):
                title += ' [Deleted]'
            if form.get('duplicate'):
                title += " [Multiple Forms]"
            name = title
        else:
            name = self.xmlns
        return name
コード例 #4
0
ファイル: display.py プロジェクト: ansarbek/commcare-hq
    def get_label(self):
        form = get_form_analytics_metadata(self.domain, self.app_id, self.xmlns)
        if form and form.get('app'):
            langs = form['app']['langs']
            app_name = form['app']['name']
            module_name = form_name = None
            if form.get('is_user_registration'):
                form_name = "User Registration"
                title = "%s > %s" % (app_name, form_name)
            else:
                for lang in langs + form['module']['name'].keys():
                    module_name = form['module']['name'].get(lang)
                    if module_name is not None:
                        break
                for lang in langs + form['form']['name'].keys():
                    form_name = form['form']['name'].get(lang)
                    if form_name is not None:
                        break
                if module_name is None:
                    module_name = "?"
                if form_name is None:
                    form_name = "?"
                title = "%s > %s > %s" % (app_name, module_name, form_name)

            if form.get('app_deleted'):
                title += ' [Deleted]'
            if form.get('duplicate'):
                title += " [Multiple Forms]"
            name = title
        else:
            name = self.xmlns
        return name
コード例 #5
0
 def test_get_form_analytics_metadata__app(self):
     self.assertEqual(get_form_analytics_metadata(self.domain, self.app_id_2, self.xmlns_2), {
         'app': {'id': self.app_id_2, 'langs': [], 'name': None},
         'app_deleted': False,
         'form': {'id': 0, 'name': {}},
         'module': {'id': 0, 'name': {}},
         'submissions': 1,
         'xmlns': 'my://crazy.xmlns/app'
     })
コード例 #6
0
 def test_get_form_analytics_metadata__app(self):
     self.assertEqual(get_form_analytics_metadata(self.domain, self.app_id_2, self.xmlns_2), {
         'app': {'id': self.app_id_2, 'langs': [], 'name': None},
         'app_deleted': False,
         'form': {'id': 0, 'name': {}},
         'module': {'id': 0, 'name': {}},
         'submissions': 1,
         'xmlns': 'my://crazy.xmlns/app'
     })
コード例 #7
0
ファイル: display.py プロジェクト: xbryanc/commcare-hq
 def __init__(self, domain, xmlns, app_id=None):
     self.domain = domain
     self.xmlns = xmlns
     if app_id:
         self.app_id = app_id
     else:
         form = get_form_analytics_metadata(domain, app_id, xmlns)
         try:
             self.app_id = form['app']['id'] if form else None
         except KeyError:
             self.app_id = None
コード例 #8
0
 def __init__(self, domain, xmlns, app_id=None):
     self.domain = domain
     self.xmlns = xmlns
     if app_id:
         self.app_id = app_id
     else:
         form = get_form_analytics_metadata(domain, app_id, xmlns)
         try:
             self.app_id = form['app']['id'] if form else None
         except KeyError:
             self.app_id = None
コード例 #9
0
 def test_get_form_analytics_metadata__app(self):
     self.assertEqual(
         get_form_analytics_metadata(self.domain, self.app_id_2, self.xmlns_2),
         {
             "app": {"id": self.app_id_2, "langs": [], "name": None},
             "app_deleted": False,
             "form": {"id": 0, "name": {}},
             "module": {"id": 0, "name": {}},
             "submissions": 1,
             "xmlns": "my://crazy.xmlns/app",
         },
     )
コード例 #10
0
ファイル: display.py プロジェクト: dimagi/commcare-hq
    def get_label(self, lang=None, separator=None):
        if separator is None:
            separator = " > "
        form = get_form_analytics_metadata(self.domain, self.app_id, self.xmlns)
        if form and form.get('app'):
            langs = form['app']['langs']
            app_name = form['app']['name']

            if form.get('is_user_registration'):
                form_name = "User Registration"
                title = separator.join([app_name, form_name])
            else:
                def _menu_name(menu, lang):
                    if lang and menu.get(lang):
                        return menu.get(lang)
                    else:
                        for lang in langs + list(menu):
                            menu_name = menu.get(lang)
                            if menu_name is not None:
                                return menu_name
                        return "?"

                module_name = _menu_name(form["module"]["name"], lang)
                form_name = _menu_name(form["form"]["name"], lang)
                title = separator.join([app_name, module_name, form_name])

            if form.get('app_deleted'):
                title += ' [Deleted]'
            if form.get('duplicate'):
                title += " [Multiple Forms]"
            name = title
        elif self.xmlns in SYSTEM_FORM_XMLNS_MAP:
            name = SYSTEM_FORM_XMLNS_MAP[self.xmlns]
        else:
            name = self.xmlns
        return name
コード例 #11
0
ファイル: test_analytics.py プロジェクト: ye-man/commcare-hq
 def test_get_form_analytics_metadata__no_match(self):
     self.assertIsNone(
         get_form_analytics_metadata(self.domain, self.app_id_1,
                                     self.xmlns_2))
コード例 #12
0
 def test_get_form_analytics_metadata__no_app(self):
     self.assertEqual(
         get_form_analytics_metadata(self.domain, self.app_id_1, self.xmlns_1),
         {"submissions": 2, "xmlns": "my://crazy.xmlns/"},
     )
コード例 #13
0
 def test_get_form_analytics_metadata__no_match(self):
     self.assertIsNone(get_form_analytics_metadata(self.domain, self.app_id_1, self.xmlns_2))
コード例 #14
0
 def test_get_form_analytics_metadata__no_app(self):
     self.assertEqual(
         get_form_analytics_metadata(self.domain, self.app_id_1, self.xmlns_1),
         {'submissions': 2, 'xmlns': 'my://crazy.xmlns/'}
     )
コード例 #15
0
ファイル: test_analytics.py プロジェクト: johan--/commcare-hq
 def test_get_form_analytics_metadata(self):
     info = get_form_analytics_metadata(self.domain, self.app_id, self.xmlns)
     self.assertEqual(self.xmlns, info['xmlns'])
     self.assertEqual(2, info['submissions'])