summaryrefslogtreecommitdiff
path: root/maconomy_hours.py
diff options
context:
space:
mode:
Diffstat (limited to 'maconomy_hours.py')
-rw-r--r--maconomy_hours.py14
1 files changed, 5 insertions, 9 deletions
diff --git a/maconomy_hours.py b/maconomy_hours.py
index 1efcc7c..b41cd06 100644
--- a/maconomy_hours.py
+++ b/maconomy_hours.py
@@ -1,7 +1,9 @@
from maconomy import cli, create_db, TimeRegistrationRepository, Mailer
from maconomy.views import EmployeeEmailView, ManagerEmailView, CEOEmailView
+from maconomy import utils
from collections import defaultdict
+
def main(config, options):
db = create_db(config)
timereg_repo = TimeRegistrationRepository(db)
@@ -43,12 +45,8 @@ def normal(timesheets, config, mailer):
def manager(timesheets, config, mailer):
view = ManagerEmailView(config)
# extract employees for manager email lookup
- employees = dict([(t.employee.id, t.employee) for t in timesheets])
- per_manager = defaultdict(list)
- # filter timesheets per manager
- for timesheet in [t for t in timesheets if need_manager_mail(t)]:
- manager_id = timesheet.approver
- per_manager[manager_id].append(timesheet)
+ employees = utils.employees(timesheets)
+ per_manager = utils.per_manager(timesheets)
# send mails to managers
for manager_id, relevant_timesheets in per_manager.items():
mail = view.render(relevant_timesheets)
@@ -66,7 +64,7 @@ def manager(timesheets, config, mailer):
def ceo(timesheets, config, mailer):
to = config.get("mail", "ceo")
# Filter only "bad" entries
- relevant = [t for t in timesheets if need_manager_mail(t)]
+ relevant = [t for t in timesheets if utils.need_manager_mail(t)]
view = CEOEmailView()
mail = view.render(relevant)
subject = "Warning: Timesheet overdue for {} employees".format(len(relevant))
@@ -75,8 +73,6 @@ def ceo(timesheets, config, mailer):
else:
print mail
-def need_manager_mail(timesheet):
- return not timesheet.is_submitted() or not timesheet.is_approved()
def summary(timesheets):
for timesheet in timesheets: