class IndicatorSummaryReport(GroupReferenceMixIn, BiharSummaryReport, IndicatorSetMixIn): name = ugettext_noop("Indicators") slug = "indicatorsummary" description = "Indicator details report" base_template_mobile = "bihar/indicator_summary.html" is_cacheable = True def __init__(self, *args, **kwargs): super(IndicatorSummaryReport, self).__init__(*args, **kwargs) from custom.bihar.reports.indicators.indicators import IndicatorDataProvider self.data_provider = IndicatorDataProvider( self.domain, self.indicator_set, [self.group], ) @property def rendered_report_title(self): return _(self.indicator_set.name) @property def _headers(self): return { 'supervisor': [_("Team Name")] + [_(i.name) for i in self.data_provider.summary_indicators], 'manager': [_("Subcentre")] + [_(i.name) for i in self.data_provider.summary_indicators], } @property @memoized def data(self): def _nav_link(indicator): params = copy(self.request_params) params['indicator'] = indicator.slug del params['next_report'] return format_html( u'{chart}<a href="{next}">{val}</a>', val=self.data_provider.get_indicator_value(indicator), chart=self.data_provider.get_chart(indicator), next=url_and_params( IndicatorClientList.get_url(self.domain, render_as=self.render_next), params, )) return [self.group_display] + \ [_nav_link(i) for i in self.data_provider.summary_indicators]
class IndicatorSummaryReport(GroupReferenceMixIn, BiharSummaryReport, IndicatorSetMixIn): name = ugettext_noop("Indicators") slug = "indicatorsummary" description = "Indicator details report" base_template_mobile = "bihar/indicator_summary.html" is_cacheable = True def __init__(self, *args, **kwargs): super(IndicatorSummaryReport, self).__init__(*args, **kwargs) from custom.bihar.reports.indicators.indicators import IndicatorDataProvider self.data_provider = IndicatorDataProvider( self.domain, self.indicator_set, [self.group], ) @property def rendered_report_title(self): return _(self.indicator_set.name) @property def _headers(self): return { 'supervisor': [_("Team Name")] + [_(i.name) for i in self.data_provider.summary_indicators], 'manager': [_("Subcentre")] + [_(i.name) for i in self.data_provider.summary_indicators], } @property @memoized def data(self): def _nav_link(indicator): params = copy(self.request_params) params['indicator'] = indicator.slug del params['next_report'] return format_html(u'{chart}<a href="{next}">{val}</a>', val=self.data_provider.get_indicator_value(indicator), chart=self.data_provider.get_chart(indicator), next=url_and_params( IndicatorClientList.get_url(self.domain, render_as=self.render_next), params, )) return [self.group_display] + \ [_nav_link(i) for i in self.data_provider.summary_indicators]
class MyPerformanceReport(BiharSummaryReport): name = ugettext_noop('My Performance') slug = 'myperformance' description = "My performance indicators report" set_slug = 'homevisit' # hard coded to homevisit indicators base_template_mobile = "bihar/indicator_summary.html" def __init__(self, *args, **kwargs): from custom.bihar.reports.indicators.indicators import IndicatorConfig, INDICATOR_SETS from custom.bihar.reports.indicators.indicators import IndicatorDataProvider self.indicator_set = IndicatorConfig(INDICATOR_SETS).get_indicator_set( self.set_slug) super(MyPerformanceReport, self).__init__(*args, **kwargs) groups = groups_for_user(self.request.couch_user, self.domain) self.data_provider = IndicatorDataProvider( self.domain, self.indicator_set, groups, ) @property def _headers(self): return [_(i.name) for i in self.data_provider.summary_indicators] @property @memoized def data(self): def _nav_link(indicator): params = copy(self.request_params) params["indicators"] = self.set_slug params['indicator'] = indicator.slug return format_html( u'{chart}<a href="{next}">{val}</a>', val=self.data_provider.get_indicator_value(indicator), chart=self.data_provider.get_chart(indicator), next=url_and_params( MyPerformanceList.get_url(domain=self.domain, render_as=self.render_next), params, )) return [_nav_link(i) for i in self.data_provider.summary_indicators]
class MyPerformanceReport(BiharSummaryReport): name = ugettext_noop('My Performance') slug = 'myperformance' description = "My performance indicators report" set_slug = 'homevisit' # hard coded to homevisit indicators base_template_mobile = "bihar/indicator_summary.html" def __init__(self, *args, **kwargs): from custom.bihar.reports.indicators.indicators import IndicatorConfig, INDICATOR_SETS from custom.bihar.reports.indicators.indicators import IndicatorDataProvider self.indicator_set = IndicatorConfig(INDICATOR_SETS).get_indicator_set(self.set_slug) super(MyPerformanceReport, self).__init__(*args, **kwargs) groups = groups_for_user(self.request.couch_user, self.domain) self.data_provider = IndicatorDataProvider( self.domain, self.indicator_set, groups, ) @property def _headers(self): return [_(i.name) for i in self.data_provider.summary_indicators] @property @memoized def data(self): def _nav_link(indicator): params = copy(self.request_params) params["indicators"] = self.set_slug params['indicator'] = indicator.slug return format_html(u'{chart}<a href="{next}">{val}</a>', val=self.data_provider.get_indicator_value(indicator), chart=self.data_provider.get_chart(indicator), next=url_and_params( MyPerformanceList.get_url(domain=self.domain, render_as=self.render_next), params, ) ) return [_nav_link(i) for i in self.data_provider.summary_indicators]