Exemplo n.º 1
0
    def headers(self):
        """
        Override the headers method to be able to add male/female sub
        header columns.
        """
        header_columns = []
        for idx, column in enumerate(self.columns):
            if idx >= self.first_indicator_column_index() and self.show_gender(
            ):
                group = DataTablesColumnGroup(column.header)
                group.add_column(DataTablesColumn("male", sortable=False))
                group.add_column(DataTablesColumn("female", sortable=False))
                header_columns.append(group)
            else:
                # gender is included in the columns to populate data
                # but we don't show it on the page
                if column.header != 'Gender':
                    header_columns.append(
                        DataTablesColumn(column.header, sortable=False))

        # insert a blank header to display the "all genders/ages" message
        if not self.show_gender() and not self.show_age():
            header_columns.insert(1, DataTablesColumn('', sortable=False))

        return DataTablesHeader(*header_columns)
Exemplo n.º 2
0
    def headers(self, data):
        column_headers = []
        groupped_headers = [
            list(v) for l, v in groupby(
                sorted(data.keys(), key=lambda x: x[2]), lambda x: x[2])
        ]
        for domain in groupped_headers:
            groupped_practices = [
                list(v) for l, v in groupby(sorted(domain, key=lambda x: x[3]),
                                            lambda x: x[3])
            ]
            domain_group = DataTablesColumnGroup(
                self.group_name_fn(domain[0][2]))
            for practice in groupped_practices:
                domain_group.add_column(
                    DataTablesColumn(self.group_name_fn(practice[0][3])))

            column_headers.append(domain_group)
        column_headers = sorted(column_headers, key=lambda x: x.html)

        i = 1
        for column in column_headers:
            for j in range(0, len(column.columns)):
                column.columns[j] = DataTablesColumn(
                    'Practice ' + i.__str__(),
                    help_text=column.columns[j].html)
                i += 1

        return column_headers
Exemplo n.º 3
0
 def headers(self, data):
     column_headers = []
     i = 1
     for domain in self.domains_with_practices:
         domain_group = DataTablesColumnGroup(domain['text'])
         for practice in domain['practices']:
             domain_group.add_column(DataTablesColumn('Practice %i' % i, help_text=practice.text))
             i += 1
         column_headers.append(domain_group)
     return column_headers
Exemplo n.º 4
0
    def headers(self, data):
        column_headers = []
        groupped_headers = [list(v) for l,v in groupby(sorted(data.keys(), key=lambda x:x[2]), lambda x: x[2])]
        for domain in groupped_headers:
            groupped_practices = [list(v) for l,v in groupby(sorted(domain, key=lambda x:x[3]), lambda x: x[3])]
            domain_group = DataTablesColumnGroup(self.group_name_fn(domain[0][2]))
            for practice in groupped_practices:
                domain_group.add_column(DataTablesColumn(self.group_name_fn(practice[0][3])))

            column_headers.append(domain_group)
        column_headers = sorted(column_headers, key=lambda x: x.html)
        return column_headers
Exemplo n.º 5
0
 def headers(self):
     chw = DataTablesColumn("CHW Name")
     sections = list()
     for i, section in enumerate(self.indicator_slugs):
         col_group = DataTablesColumnGroup(section.get('title', ''))
         for j, indicator in enumerate(self.indicators[i]):
             col_group.add_column(
                 DataTablesColumn(
                     indicator.title or indicator.description,
                     rotate=True,
                     expected=section.get('indicators',
                                          [])[j].get('expected'),
                 ))
         sections.append(col_group)
     return DataTablesHeader(chw, *sections)
Exemplo n.º 6
0
 def headers(self):
     chw = DataTablesColumn("CHW Name")
     sections = list()
     for i, section in enumerate(self.indicator_slugs):
         col_group = DataTablesColumnGroup(section.get("title", ""))
         for j, indicator in enumerate(self.indicators[i]):
             col_group.add_column(
                 DataTablesColumn(
                     indicator.title or indicator.description,
                     rotate=True,
                     expected=section.get("indicators", [])[j].get("expected"),
                 )
             )
         sections.append(col_group)
     return DataTablesHeader(chw, *sections)
Exemplo n.º 7
0
    def headers(self, data):
        column_headers = []
        groupped_headers = [list(v) for l,v in groupby(sorted(data.keys(), key=lambda x:x[2]), lambda x: x[2])]
        for domain in groupped_headers:
            groupped_practices = [list(v) for l,v in groupby(sorted(domain, key=lambda x:x[3]), lambda x: x[3])]
            domain_group = DataTablesColumnGroup(self.group_name_fn(domain[0][2]))
            for practice in groupped_practices:
                domain_group.add_column(DataTablesColumn(self.group_name_fn(practice[0][3])))

            column_headers.append(domain_group)
        column_headers = sorted(column_headers, key=lambda x: x.html)

        i = 1
        for column in column_headers:
            for j in range(0, len(column.columns)):
                column.columns[j] = DataTablesColumn('Practice ' + i.__str__(), help_text=column.columns[j].html)
                i += 1

        return column_headers
Exemplo n.º 8
0
    def headers(self):
        """
        Override the headers method to be able to add male/female sub
        header columns.
        """
        header_columns = []
        for idx, column in enumerate(self.columns):
            if idx >= self.first_indicator_column_index() and self.show_gender():
                group = DataTablesColumnGroup(column.header)
                group.add_column(DataTablesColumn("male", sortable=False))
                group.add_column(DataTablesColumn("female", sortable=False))
                header_columns.append(group)
            else:
                # gender is included in the columns to populate data
                # but we don't show it on the page
                if column.header != 'Gender':
                    header_columns.append(DataTablesColumn(column.header, sortable=False))

        # insert a blank header to display the "all genders/ages" message
        if not self.show_gender() and not self.show_age():
            header_columns.insert(1, DataTablesColumn('', sortable=False))

        return DataTablesHeader(*header_columns)