Compare commits
	
		
			2 Commits
		
	
	
		
			38f138d950
			...
			developmen
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | ca30772b89 | ||
|   | a7ad2333b1 | 
| @@ -13,30 +13,25 @@ def get_days_of_month(months_back=0): | |||||||
|         current_month = current_day.month |         current_month = current_day.month | ||||||
|         months_back -= 1 |         months_back -= 1 | ||||||
|     while current_day.month == current_month: |     while current_day.month == current_month: | ||||||
|         days.append(str(current_day).split(' ')[0]) |         days.append(current_day) | ||||||
|         current_day += datetime.timedelta(days=1) |         current_day += datetime.timedelta(days=1) | ||||||
| 
 | 
 | ||||||
|     return days |     return days | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def get_month_view(worklogs): | def get_month_view(worklogs): | ||||||
| 
 |  | ||||||
|     week = datetime.datetime.strptime( |     week = datetime.datetime.strptime( | ||||||
|         worklogs[0]["date"][0:10], '%Y-%m-%d').date() |         worklogs[0]["date"][0:10], '%Y-%m-%d').date() | ||||||
| 
 |  | ||||||
|     week_number_start = week |     week_number_start = week | ||||||
|     to_monday = week_number_start.weekday() |     to_monday = week_number_start.weekday() | ||||||
|     week_number_start -= datetime.timedelta(days=to_monday) |     week_number_start -= datetime.timedelta(days=to_monday) | ||||||
|     week_number_end = week_number_start+datetime.timedelta(days=6) |     week_number_end = week_number_start+datetime.timedelta(days=6) | ||||||
| 
 |  | ||||||
|     week_iso = week.isocalendar().week |     week_iso = week.isocalendar().week | ||||||
|     month_view = worklogs[0]["author"] |     month_view = worklogs[0]["author"] | ||||||
| 
 |  | ||||||
|     for worklog in worklogs: |     for worklog in worklogs: | ||||||
|         ticket = worklog["ticket_id"] |         ticket = worklog["ticket_id"] | ||||||
|         date = worklog["date"][0:10] |         date = worklog["date"][0:10] | ||||||
|         timespent = worklog["time_spent"] |         timespent = worklog["time_spent"] | ||||||
| 
 |  | ||||||
|         week_day = datetime.datetime.strptime(date, '%Y-%m-%d').date() |         week_day = datetime.datetime.strptime(date, '%Y-%m-%d').date() | ||||||
|         if (week_day.isocalendar().week == week_iso): |         if (week_day.isocalendar().week == week_iso): | ||||||
|             month_view += "\nWeek " + str(week_iso)+"\tfrom "+week_number_start.__str__() + \ |             month_view += "\nWeek " + str(week_iso)+"\tfrom "+week_number_start.__str__() + \ | ||||||
| @@ -44,7 +39,45 @@ def get_month_view(worklogs): | |||||||
|             week_iso += 1 |             week_iso += 1 | ||||||
|             week_number_start += datetime.timedelta(days=7) |             week_number_start += datetime.timedelta(days=7) | ||||||
|             week_number_end += datetime.timedelta(days=7) |             week_number_end += datetime.timedelta(days=7) | ||||||
| 
 |  | ||||||
|         month_view += ticket+'\tdate '+date+'\ttime '+timespent + '\n' |         month_view += ticket+'\tdate '+date+'\ttime '+timespent + '\n' | ||||||
| 
 | 
 | ||||||
|     return month_view |     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 | ||||||
							
								
								
									
										57
									
								
								main.py
									
									
									
									
									
								
							
							
						
						
									
										57
									
								
								main.py
									
									
									
									
									
								
							| @@ -3,7 +3,7 @@ import json | |||||||
| import datetime | import datetime | ||||||
| from dotenv import load_dotenv | from dotenv import load_dotenv | ||||||
| from os import getenv | from os import getenv | ||||||
| from month_view import * | from dates import * | ||||||
| import sys | import sys | ||||||
|  |  | ||||||
| load_dotenv() | load_dotenv() | ||||||
| @@ -16,10 +16,13 @@ WEEKS_BACK = 0 | |||||||
| MONTH_VIEW = False | MONTH_VIEW = False | ||||||
| MONTHS_BACK = 0 | MONTHS_BACK = 0 | ||||||
| VERBOSE = True | VERBOSE = True | ||||||
|  | DATE_FROM = None | ||||||
|  | DATE_TO = None | ||||||
|  |  | ||||||
| def get_flag_value(flag): | def get_flag_value(flag): | ||||||
|     return flag.split("=")[1] |     return flag.split("=")[1] | ||||||
|  |  | ||||||
|  |  | ||||||
| if "--monthview" in sys.argv: | if "--monthview" in sys.argv: | ||||||
|     MONTH_VIEW = True |     MONTH_VIEW = True | ||||||
| for arg in sys.argv: | for arg in sys.argv: | ||||||
| @@ -31,6 +34,12 @@ for arg in sys.argv: | |||||||
|         USERNAMES[0] = get_flag_value(arg) |         USERNAMES[0] = get_flag_value(arg) | ||||||
|         if ',' in USERNAMES[0]: |         if ',' in USERNAMES[0]: | ||||||
|             USERNAMES = USERNAMES[0].split(',') |             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: | if "--verbose" in sys.argv: | ||||||
|     VERBOSE = True |     VERBOSE = True | ||||||
|  |  | ||||||
| @@ -93,45 +102,12 @@ def get_all_worklogs(issues): | |||||||
|     worklogs.sort(key=date_getter) |     worklogs.sort(key=date_getter) | ||||||
|     return worklogs |     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): | def get_worklogs_for_days(worklogs, days): | ||||||
|     timeperiod_tickets = [] |     timeperiod_tickets = [] | ||||||
|     for worklog in worklogs: |     for worklog in worklogs: | ||||||
|         worklog_date = datetime.datetime.strptime( |         worklog_date = datetime.datetime.strptime( | ||||||
|             worklog["date"].split('T')[0], '%Y-%m-%d').date() |             worklog["date"].split('T')[0], '%Y-%m-%d').date() | ||||||
|         if str(worklog_date) in days: |         if worklog_date in days: | ||||||
|             timeperiod_tickets.append(worklog) |             timeperiod_tickets.append(worklog) | ||||||
|     return timeperiod_tickets |     return timeperiod_tickets | ||||||
|  |  | ||||||
| @@ -150,11 +126,20 @@ def main(): | |||||||
|             month_view = get_month_view(worklogs) |             month_view = get_month_view(worklogs) | ||||||
|             print(month_view) |             print(month_view) | ||||||
|         return |         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: |     for username in USERNAMES: | ||||||
|         issues = get_issues(username) |         issues = get_issues(username) | ||||||
|         all_worklogs = get_all_worklogs(issues) |         all_worklogs = get_all_worklogs(issues) | ||||||
|         today = datetime.date.today() |         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) |         worklogs = get_worklogs_for_days(all_worklogs, days) | ||||||
|         omnimat_string = "" |         omnimat_string = "" | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user