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