Reformatting 🧹
This commit is contained in:
@ -1,5 +1,6 @@
|
||||
import os
|
||||
import sys
|
||||
|
||||
sys.path.append(os.path.join(os.path.dirname(__file__), ".."))
|
||||
|
||||
from datetime import datetime, timedelta
|
||||
@ -17,7 +18,8 @@ api = KimaiAPI()
|
||||
|
||||
# print(Timesheet.list(api))
|
||||
|
||||
t = Timesheet(api,
|
||||
t = Timesheet(
|
||||
api,
|
||||
activity=Activity.get_by_id(api, 613),
|
||||
project=Project.get_by_id(api, 233),
|
||||
begin=datetime.now() - timedelta(minutes=10),
|
||||
|
@ -1,5 +1,6 @@
|
||||
import os
|
||||
import sys
|
||||
|
||||
sys.path.append(os.path.join(os.path.dirname(__file__), ".."))
|
||||
|
||||
from datetime import datetime
|
||||
@ -11,22 +12,19 @@ from hamstertools.kimai import *
|
||||
|
||||
api = KimaiAPI()
|
||||
|
||||
DATE_FROM='2023-10-01'
|
||||
DATE_TO='2023-11-01'
|
||||
SEARCH='auto'
|
||||
DATE_FROM = "2023-10-01"
|
||||
DATE_TO = "2023-11-01"
|
||||
SEARCH = "auto"
|
||||
|
||||
facts = HamsterFact.select(
|
||||
HamsterFact,
|
||||
HamsterActivity,
|
||||
HamsterCategory
|
||||
).join(
|
||||
HamsterActivity, JOIN.LEFT_OUTER
|
||||
).join(
|
||||
HamsterCategory, JOIN.LEFT_OUTER
|
||||
).where(
|
||||
(HamsterFact.start_time > datetime.strptime(DATE_FROM, "%Y-%m-%d"))
|
||||
& (HamsterFact.start_time < datetime.strptime(DATE_TO, "%Y-%m-%d"))
|
||||
& HamsterCategory.name.contains(SEARCH)
|
||||
facts = (
|
||||
HamsterFact.select(HamsterFact, HamsterActivity, HamsterCategory)
|
||||
.join(HamsterActivity, JOIN.LEFT_OUTER)
|
||||
.join(HamsterCategory, JOIN.LEFT_OUTER)
|
||||
.where(
|
||||
(HamsterFact.start_time > datetime.strptime(DATE_FROM, "%Y-%m-%d"))
|
||||
& (HamsterFact.start_time < datetime.strptime(DATE_TO, "%Y-%m-%d"))
|
||||
& HamsterCategory.name.contains(SEARCH)
|
||||
)
|
||||
)
|
||||
|
||||
has_errors = False
|
||||
@ -35,15 +33,24 @@ has_errors = False
|
||||
for f in facts:
|
||||
mappings = f.activity.mappings
|
||||
if len(mappings) == 0:
|
||||
print(f'fact {f.id}: @{f.activity.category.id} {f.activity.category.name} » @{f.activity.id} {f.activity.name} has no mapping')
|
||||
print(
|
||||
f"fact {f.id}: @{f.activity.category.id} {f.activity.category.name} » @{f.activity.id} {f.activity.name} has no mapping"
|
||||
)
|
||||
has_errors = True
|
||||
continue
|
||||
if len(mappings) > 1:
|
||||
print(f'fact {f.id}: activity @{f.activity.id} {f.activity.name} has multiple mappings')
|
||||
print(
|
||||
f"fact {f.id}: activity @{f.activity.id} {f.activity.name} has multiple mappings"
|
||||
)
|
||||
has_errors = True
|
||||
continue
|
||||
if mappings[0].kimai_activity.project is None and not mappings[0].kimai_project.allow_global_activities:
|
||||
print(f'fact {f.id}: project @{mappings[0].kimai_project.id} {mappings[0].kimai_project.name} does not allow global activity {mappings[0].kimai_activity}')
|
||||
if (
|
||||
mappings[0].kimai_activity.project is None
|
||||
and not mappings[0].kimai_project.allow_global_activities
|
||||
):
|
||||
print(
|
||||
f"fact {f.id}: project @{mappings[0].kimai_project.id} {mappings[0].kimai_project.name} does not allow global activity {mappings[0].kimai_activity}"
|
||||
)
|
||||
has_errors = True
|
||||
continue
|
||||
|
||||
@ -55,25 +62,27 @@ for f in facts:
|
||||
try:
|
||||
mapping = f.activity.mappings[0]
|
||||
except IndexError:
|
||||
print(f"no mapping, skipping {f.id} ({f.activity.category.name} » {f.activity.name})")
|
||||
print(
|
||||
f"no mapping, skipping {f.id} ({f.activity.category.name} » {f.activity.name})"
|
||||
)
|
||||
continue
|
||||
t = Timesheet(api,
|
||||
t = Timesheet(
|
||||
api,
|
||||
activity=mapping.kimai_activity,
|
||||
project=mapping.kimai_project,
|
||||
begin=f.start_time,
|
||||
end=f.end_time,
|
||||
description=f.description if f.description != '' else mapping.kimai_description,
|
||||
description=f.description if f.description != "" else mapping.kimai_description,
|
||||
# tags=f.tags if f.tags != '' else mapping.kimai_tags
|
||||
)
|
||||
r = t.upload().json()
|
||||
if r.get("code", 200) != 200:
|
||||
print(r)
|
||||
print(f"{f.id} ({f.activity.category.name} » {f.activity.name})")
|
||||
from pdb import set_trace; set_trace()
|
||||
from pdb import set_trace
|
||||
|
||||
set_trace()
|
||||
|
||||
else:
|
||||
HamsterFactKimaiImport.create(
|
||||
hamster_fact=f,
|
||||
kimai_id=r['id']
|
||||
).save()
|
||||
HamsterFactKimaiImport.create(hamster_fact=f, kimai_id=r["id"]).save()
|
||||
print(f'Created Kimai timesheet {r["id"]}')
|
||||
|
Reference in New Issue
Block a user