72 lines
2.6 KiB
Python
Executable File
72 lines
2.6 KiB
Python
Executable File
import datetime
|
|
|
|
#code of month branch
|
|
def get_days_of_month(previous_month=False):
|
|
today = datetime.date.today()
|
|
start_of_month = today.replace(day=1)
|
|
end_of_month = today.replace(day=28)+datetime.timedelta(days=4)
|
|
end_of_month -= datetime.timedelta(days=end_of_month.day)
|
|
days = []
|
|
|
|
# minus one month
|
|
if previous_month == True:
|
|
start_of_month -= datetime.timedelta(days=1)
|
|
start_of_month = start_of_month.replace(day=1)
|
|
end_of_month = start_of_month
|
|
end_of_month = today.replace(day=28)+datetime.timedelta(days=4)
|
|
end_of_month -= datetime.timedelta(days=end_of_month.day)
|
|
|
|
days.append(str(start_of_month))
|
|
while start_of_month != end_of_month:
|
|
start_of_month += datetime.timedelta(days=1)
|
|
days.append(str(start_of_month))
|
|
|
|
# returns all days of current month
|
|
return days
|
|
|
|
def get_month_tickets(worklogs, days, previous_month=False):
|
|
this_month_tickets = []
|
|
for worklog in worklogs:
|
|
worklog_date = datetime.datetime.strptime(
|
|
worklog["date"].split('T')[0], '%Y-%m-%d').date()
|
|
current_month = datetime.date.today().month
|
|
# minus one month
|
|
if previous_month == True:
|
|
current_month -= 1
|
|
worklog_month = str(worklog_date).split('-')[1]
|
|
if str(worklog_date) in days and int(worklog_month) == current_month:
|
|
this_month_tickets.append(worklog)
|
|
return this_month_tickets
|
|
|
|
|
|
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
|
|
omnimat_string = 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):
|
|
omnimat_string += "\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)
|
|
|
|
omnimat_string += ticket+'\tdate '+date+'\ttime '+timespent + '\n'
|
|
|
|
return omnimat_string
|
|
#end of code month branch
|