def get_context_data(self, **kwargs):
context_data = super(ArchiveXhrSummary, self).get_context_data(**kwargs)
context_data['capabilities'] = dsmr_backend.services.get_capabilities()
context_data['frontend_settings'] = FrontendSettings.get_solo()
selected_datetime = timezone.make_aware(timezone.datetime.strptime(
self.request.GET['date'], formats.get_format('DSMR_STRFTIME_DATE_FORMAT')
))
selected_level = self.request.GET['level']
context_data['statistics'] = {
'days': dsmr_stats.services.day_statistics(selected_datetime.date()),
'months': dsmr_stats.services.month_statistics(selected_datetime.date()),
'years': dsmr_stats.services.year_statistics(selected_datetime.date()),
}[selected_level]
context_data['title'] = {
'days': formats.date_format(selected_datetime.date(), 'DSMR_GRAPH_LONG_DATE_FORMAT'),
'months': formats.date_format(selected_datetime.date(), 'DSMR_DATEPICKER_MONTH'),
'years': selected_datetime.date().year,
}[selected_level]
# Only day level allows some additional data.
if selected_level == 'days':
try:
# This WILL fail when we either have no prices at all or conflicting ranges.
context_data['energy_price'] = EnergySupplierPrice.objects.by_date(
target_date=selected_datetime.date()
)
except (EnergySupplierPrice.DoesNotExist, EnergySupplierPrice.MultipleObjectsReturned):
# Default to zero prices.
context_data['energy_price'] = EnergySupplierPrice()
context_data['notes'] = Note.objects.filter(day=selected_datetime.date())
context_data['selected_level'] = selected_level
context_data['selected_datetime'] = selected_datetime
context_data['django_date_format'] = 'DJANGO_DATE_FORMAT'
return context_data
评论列表
文章目录