def get_stream(self, req, method, filename, stream, original_data): chrome = Chrome(self.env) data = original_data data['components'] = [component.name for component in trac.ticket.model.Component.select(self.env)] data['logs'] = WorkLogTable.getByTicketId(self.env, data['ticket'].id) template = chrome.load_template('work_log.html') content_stream = template.generate(**(chrome.populate_data(req, data))) chrome.add_jquery_ui(req) add_stylesheet(req, 'trac/css/work-log.css') return Transformer('//div[@id="ticket"]').after(content_stream)
def process_request(self, req): context = Context.from_request(req) db = self.env.get_db_cnx() context.cursor = db.cursor() if req.args.get('fromDMY') and req.args.get('toDMY'): fromDMY = int(time.mktime(time.strptime(req.args.get('fromDMY'), '%d-%m-%Y'))).__str__() toDMY = int(time.mktime(time.strptime(req.args.get('toDMY'), '%d-%m-%Y'))).__str__() all_tickets_with_worklogs=[] tickets_id = self._get_tickets_for_period(fromDMY, toDMY) for ticket in tickets_id: worked_time=0 worklogByTicket=WorkLogTable.getByTicketId(self.env, ticket['ticketId']) for worklog in worklogByTicket: worked_time+=worklog['time_spent'] worklog = { 'ticketId': ticket['ticketId'], 'summary':ticket['summary'], 'worked_time':worked_time, 'worked_time_hours':worked_time/60, 'worked_time_minutes':worked_time%60, 'worklogs': worklogByTicket } if worklog['worklogs']!=[]: all_tickets_with_worklogs.append(worklog) total_time=0 for tickets in all_tickets_with_worklogs: total_time+=tickets['worked_time'] req.data = { 'fromDMY': req.args.get('fromDMY'), 'toDMY': req.args.get('toDMY'), 'tickets_with_worklogs':all_tickets_with_worklogs, 'total_time_hours':total_time/60, 'total_time_minutes':total_time%60 } add_stylesheet(req, 'trac/css/tracker.css') add_stylesheet(req, 'trac/css/work-log.css') return "period_report.html", req.data, None else: req.data = {} add_script(req, 'common/js/jquery-ui.js') add_stylesheet(req, 'common/css/jquery-ui/jquery-ui.css') add_script(req, 'common/js/jquery-ui-addons.js') add_stylesheet(req, 'common/css/jquery-ui-addons.css') add_stylesheet(req, 'trac/css/tracker.css') return "report_date_picker.html", req.data, None