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