Esempio n. 1
0
def parse_groups(groups):
    def _make_group_dict(group):
        return {
            'id': group.get_id,
            'name': group.name,
            'case-sharing': group.case_sharing,
            'reporting': group.reporting,
            'data': group.metadata,
        }

    group_data_keys = set()
    group_dicts = []
    sorted_groups = sorted(
        groups,
        key=lambda group: alphanumeric_sort_key(group.name)
    )
    for group in sorted_groups:
        group_dicts.append(_make_group_dict(group))
        group_data_keys.update(group.metadata.keys() if group.metadata else [])

    group_headers = ['id', 'name', 'case-sharing?', 'reporting?']
    group_headers.extend(build_data_headers(group_data_keys))

    def _get_group_rows():
        for group_dict in group_dicts:
            row = dict(flatten_json(group_dict))
            yield [row.get(header) or '' for header in group_headers]
    return group_headers, _get_group_rows()
Esempio n. 2
0
def parse_groups(groups):
    def _make_group_dict(group):
        return {
            'id': group.get_id,
            'name': group.name,
            'case-sharing': group.case_sharing,
            'reporting': group.reporting,
            'data': group.metadata,
        }

    group_data_keys = set()
    group_dicts = []
    sorted_groups = sorted(groups,
                           key=lambda group: alphanumeric_sort_key(group.name))
    for group in sorted_groups:
        group_dicts.append(_make_group_dict(group))
        group_data_keys.update(group.metadata.keys() if group.metadata else [])

    group_headers = ['id', 'name', 'case-sharing?', 'reporting?']
    group_headers.extend(build_data_headers(group_data_keys))

    def _get_group_rows():
        for group_dict in group_dicts:
            row = dict(flatten_json(group_dict))
            yield [row.get(header) or '' for header in group_headers]

    return group_headers, _get_group_rows()
Esempio n. 3
0
 def _get_groups(self):
     groups = groups_for_user(self.request.couch_user, self.domain)
     return sorted(
         groups,
         key=lambda group: alphanumeric_sort_key(group.name)
     )
Esempio n. 4
0
def _get_sorted_groups(domain):
    return sorted(
        Group.by_domain(domain),
        key=lambda group: alphanumeric_sort_key(group.name or '')
    )
Esempio n. 5
0
 def get_sorted_choices_for_values(self, values):
     return sorted(self.get_choices_for_values(values),
                   key=lambda choice: alphanumeric_sort_key(choice.display))
Esempio n. 6
0
 def _get_groups(self):
     groups = groups_for_user(self.request.couch_user, self.domain)
     return sorted(groups,
                   key=lambda group: alphanumeric_sort_key(group.name))
Esempio n. 7
0
 def get_sorted_choices_for_values(self, values):
     return sorted(self.get_choices_for_values(values),
                   key=lambda choice: alphanumeric_sort_key(choice.display))
Esempio n. 8
0
def _get_sorted_groups(domain):
    return sorted(Group.by_domain(domain),
                  key=lambda group: alphanumeric_sort_key(group.name or ''))