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