from cStringIO import StringIO
from .._activitybase import Analysis, parse_rows
DAY_TEMPLATE_TOP = """
{day}
Project |
Time Spent |
"""
DAY_TEMPLATE_BOTTOM = """\
"""
ROW_TEMPLATE = '\t{task} | {time} |
\n'
class Parser:
def __init__(self, raw, request, **kw):
self.request = request
self.analysis = Analysis(parse_rows(raw))
self.analysis.process()
def format(self, formatter, **kw):
output = StringIO()
for day, rows in self.analysis:
output.write(DAY_TEMPLATE_TOP.format(day=day.strftime('%A %B %d, %Y')))
for task, (time, still_active) in rows.items():
output.write(ROW_TEMPLATE.format(task=task, time=time,
active='active' if still_active else ''))
output.write(DAY_TEMPLATE_BOTTOM)
self.request.write(output.getvalue())