def test_get_red_route(self): # 1 Aug is Sun and 7 Aug is Sat start_date = date(2021, 8, 4) start_dt = datetime.combine(start_date, datetime.min.time()) res = ChatBotSession.get_red_route(start_dt) self.assertEqual(len(res), 40) self.assertListEqual( list(res[0].keys()), ['student_netid', 'datetime', 'date', 'start_time', 'end_time'])
def get_red_route(request): data = json.loads(request.body) before_date = data.get('beforeDate') from_date = datetime.strptime(before_date, '%Y-%m-%d') - timedelta(days=7) to_date = datetime.strptime(before_date, '%Y-%m-%d') res = ChatBotSession.get_red_route(from_date, to_date) return JsonResponse(res, safe=False, status=200)
def export_red_route(request): data = json.loads(request.body) before_date = data.get('beforeDate') if before_date is None: to_date = timezone.localtime() else: to_date = datetime.strptime(before_date, '%Y-%m-%d') from_date = to_date - timedelta(days=7) data = ChatBotSession.get_red_route(from_date, to_date) output = ChatBotSession.from_red_route_to_excel(data) response = HttpResponse( output, content_type= 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet') response['Content-Disposition'] = 'attachment; filename="red_route.xlsx"' return response