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
 | 
