Compare commits
	
		
			2 Commits
		
	
	
		
			38f138d950
			...
			1bd33e96cb
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 1bd33e96cb | |||
|   | a7ad2333b1 | 
| @@ -13,7 +13,7 @@ def get_days_of_month(months_back=0): | ||||
|         current_month = current_day.month | ||||
|         months_back -= 1 | ||||
|     while current_day.month == current_month: | ||||
|         days.append(str(current_day).split(' ')[0]) | ||||
|         days.append(current_day) | ||||
|         current_day += datetime.timedelta(days=1) | ||||
| 
 | ||||
|     return days | ||||
| @@ -48,3 +48,44 @@ def get_month_view(worklogs): | ||||
|         month_view += ticket+'\tdate '+date+'\ttime '+timespent + '\n' | ||||
| 
 | ||||
|     return month_view | ||||
| 
 | ||||
| 
 | ||||
| def date_getter(worklog): | ||||
|     return worklog['date'] | ||||
| 
 | ||||
| 
 | ||||
| def get_days(day, weeks_back=False): | ||||
|     if weeks_back: | ||||
|         day = day - datetime.timedelta(weeks=weeks_back) | ||||
| 
 | ||||
|     year, weeknum, day_of_week = day.isocalendar() | ||||
|     while day_of_week != 1: | ||||
|         day = day - datetime.timedelta(days=1) | ||||
|         year, weeknum, day_of_week = day.isocalendar() | ||||
|     days = [] | ||||
|     current_month = day.month | ||||
|     while day_of_week <= 7: | ||||
|         if day.month != current_month: | ||||
|             break  # Stop collecting if month changes | ||||
|         days.append(day) | ||||
|         day = day + datetime.timedelta(days=1) | ||||
|         day_of_week += 1 | ||||
| 
 | ||||
|     days_second_part = [] | ||||
|     if day_of_week <= 7:  # This condition means the loop ended because the month changed | ||||
|         next_month = day.month | ||||
|         while day_of_week <= 7 and day.month == next_month: | ||||
|             days_second_part.append(day) | ||||
|             day = day + datetime.timedelta(days=1) | ||||
|             day_of_week += 1 | ||||
| 
 | ||||
|     return days, days_second_part | ||||
| 
 | ||||
| def get_days_for_range(date_from, date_to): | ||||
|     delta = datetime.timedelta(days=1) | ||||
|     days = [] | ||||
|     while date_from <= date_to: | ||||
|         days.append(date_from) | ||||
|         date_from += delta | ||||
| 
 | ||||
|     return days | ||||
							
								
								
									
										56
									
								
								main.py
									
									
									
									
									
								
							
							
						
						
									
										56
									
								
								main.py
									
									
									
									
									
								
							| @@ -3,7 +3,7 @@ import json | ||||
| import datetime | ||||
| from dotenv import load_dotenv | ||||
| from os import getenv | ||||
| from month_view import * | ||||
| from dates import * | ||||
| import sys | ||||
|  | ||||
| load_dotenv() | ||||
| @@ -16,6 +16,8 @@ WEEKS_BACK = 0 | ||||
| MONTH_VIEW = False | ||||
| MONTHS_BACK = 0 | ||||
| VERBOSE = True | ||||
| DATE_FROM = None | ||||
| DATE_TO = None | ||||
|  | ||||
| def get_flag_value(flag): | ||||
|     return flag.split("=")[1] | ||||
| @@ -31,6 +33,12 @@ for arg in sys.argv: | ||||
|         USERNAMES[0] = get_flag_value(arg) | ||||
|         if ',' in USERNAMES[0]: | ||||
|             USERNAMES = USERNAMES[0].split(',') | ||||
|     if "--date-from" in arg: | ||||
|         DATE_FROM = datetime.datetime.strptime( | ||||
|         get_flag_value(arg), '%Y-%m-%d').date() | ||||
|     if "--date-to" in arg: | ||||
|         DATE_TO = datetime.datetime.strptime( | ||||
|         get_flag_value(arg), '%Y-%m-%d').date() | ||||
| if "--verbose" in sys.argv: | ||||
|     VERBOSE = True | ||||
|  | ||||
| @@ -93,45 +101,12 @@ def get_all_worklogs(issues): | ||||
|     worklogs.sort(key=date_getter) | ||||
|     return worklogs | ||||
|  | ||||
|  | ||||
| def date_getter(worklog): | ||||
|     return worklog['date'] | ||||
|  | ||||
|  | ||||
| def get_days(day): | ||||
|     if WEEKS_BACK: | ||||
|         day = day - datetime.timedelta(weeks=WEEKS_BACK) | ||||
|  | ||||
|     year, weeknum, day_of_week = day.isocalendar() | ||||
|     while day_of_week != 1: | ||||
|         day = day - datetime.timedelta(days=1) | ||||
|         year, weeknum, day_of_week = day.isocalendar() | ||||
|     days = [] | ||||
|     current_month = day.month | ||||
|     while day_of_week <= 7: | ||||
|         if day.month != current_month: | ||||
|             break  # Stop collecting if month changes | ||||
|         days.append(str(day)) | ||||
|         day = day + datetime.timedelta(days=1) | ||||
|         day_of_week += 1 | ||||
|  | ||||
|     days_second_part = [] | ||||
|     if day_of_week <= 7:  # This condition means the loop ended because the month changed | ||||
|         next_month = day.month | ||||
|         while day_of_week <= 7 and day.month == next_month: | ||||
|             days_second_part.append(str(day)) | ||||
|             day = day + datetime.timedelta(days=1) | ||||
|             day_of_week += 1 | ||||
|  | ||||
|     return days, days_second_part | ||||
|  | ||||
|  | ||||
| def get_worklogs_for_days(worklogs, days): | ||||
|     timeperiod_tickets = [] | ||||
|     for worklog in worklogs: | ||||
|         worklog_date = datetime.datetime.strptime( | ||||
|             worklog["date"].split('T')[0], '%Y-%m-%d').date() | ||||
|         if str(worklog_date) in days: | ||||
|         if worklog_date in days: | ||||
|             timeperiod_tickets.append(worklog) | ||||
|     return timeperiod_tickets | ||||
|  | ||||
| @@ -150,11 +125,20 @@ def main(): | ||||
|             month_view = get_month_view(worklogs) | ||||
|             print(month_view) | ||||
|         return | ||||
|     if DATE_FROM and DATE_TO: | ||||
|         for username in USERNAMES: | ||||
|             issues = get_issues(username) | ||||
|             all_worklogs = get_all_worklogs(issues) | ||||
|             days = get_days_for_range(DATE_FROM, DATE_TO) | ||||
|             print(all_worklogs) | ||||
|             worklogs = get_worklogs_for_days(all_worklogs, days) | ||||
|             print(worklogs) | ||||
|         return | ||||
|     for username in USERNAMES: | ||||
|         issues = get_issues(username) | ||||
|         all_worklogs = get_all_worklogs(issues) | ||||
|         today = datetime.date.today() | ||||
|         days, days_second_part = get_days(today) | ||||
|         days, days_second_part = get_days(today, WEEKS_BACK) | ||||
|         worklogs = get_worklogs_for_days(all_worklogs, days) | ||||
|         omnimat_string = "" | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user