class PostWeekView(viewsets.ViewSet):
    def retrieve(self, request, pk=None, date=None):
        self.widgets = Widgets(date=date, pk=pk, level='post', timespan='week')
        error, message = self.widgets.check_object_exists()
        if error:
            return Response(message, status=status.HTTP_400_BAD_REQUEST)
        else:
            data = self.widgets.get_unit_report()
            return Response(data)
class MorchaMonthView(viewsets.ViewSet):
    def retrieve(self, request, pk=None, date=None):
        self.widgets = Widgets(date=date,
                               pk=pk,
                               level='morcha',
                               timespan='month')
        error, message = self.widgets.check_object_exists()
        if error:
            return Response(message, status=status.HTTP_400_BAD_REQUEST)
        else:
            return Response({
                'weaksignal':
                self.widgets.get_weaksignal_count(object=True),
                'offline':
                self.widgets.get_offline_count_and_duration(object=True),
                'backup':
                self.widgets.get_backup_count_and_duration(object=True),
                'report':
                self.widgets.get_unit_report()
            })