import datetime def get_days_of_month(months_back=0): # set the current day to the first day of the current month # and loop for the days until the month changes current_day = datetime.datetime.today().replace(day=1) current_month = current_day.month days = [] while months_back: current_day = datetime.datetime.today().replace(day=1) current_day -= datetime.timedelta(days=1) current_day = current_day.replace(day=1) current_month = current_day.month months_back -= 1 while current_day.month == current_month: days.append(str(current_day).split(' ')[0]) current_day += datetime.timedelta(days=1) return days def get_month_view(worklogs): week = datetime.datetime.strptime( worklogs[0]["date"][0:10], '%Y-%m-%d').date() week_number_start = week to_monday = week_number_start.weekday() week_number_start -= datetime.timedelta(days=to_monday) week_number_end = week_number_start+datetime.timedelta(days=6) week_iso = week.isocalendar().week month_view = worklogs[0]["author"] for worklog in worklogs: ticket = worklog["ticket_id"] date = worklog["date"][0:10] timespent = worklog["time_spent"] week_day = datetime.datetime.strptime(date, '%Y-%m-%d').date() if (week_day.isocalendar().week == week_iso): month_view += "\nWeek " + str(week_iso)+"\tfrom "+week_number_start.__str__() + \ "\tto "+week_number_end.__str__()+"\n\n" week_iso += 1 week_number_start += datetime.timedelta(days=7) week_number_end += datetime.timedelta(days=7) month_view += ticket+'\tdate '+date+'\ttime '+timespent + '\n' return month_view