diff --git a/project_report/report/project_timesheet_report.py b/project_report/report/project_timesheet_report.py index 5c9b424..29acf75 100755 --- a/project_report/report/project_timesheet_report.py +++ b/project_report/report/project_timesheet_report.py @@ -5,15 +5,17 @@ from odoo import fields, models, tools, api from datetime import datetime, time, timedelta from odoo.tools.float_utils import float_round -class ProjectTimelineReport(models.Model): +class ProjectTimesheetReport(models.Model): _name = "project.timesheet.report" _description = "Project Timesheet Report" #_order = 'start_date desc, duration, project_id desc' - _order = 'start_datetime desc, end_datetime desc, duration, project_id desc' + _order = 'start_datetime desc, end_datetime asc' _auto = False - start_date = fields.Date(string='Start Time', readonly=True) + start_date = fields.Date(string='Start Date', readonly=True) + start_time = fields.Char(string='Start Time', readonly=True) + end_time = fields.Char(string='End Time', readonly=True) start_datetime = fields.Datetime("Start DateTime", required=True) end_datetime = fields.Datetime("End DateTime", required=True) employee_id = fields.Many2one('hr.employee', string='Employee', readonly=True) @@ -33,23 +35,26 @@ class ProjectTimelineReport(models.Model): @api.model def search_read(self, domain=None, fields=None, offset=0,limit=None, order=None): - if order and isinstance(order, str): - order = order.replace("timestamp ", "start_datetime ") - order = order.replace("timestamp ", "end_datetime ") - res = super(ProjectTimelineReport, self).search_read(domain, fields, offset, limit, order) + if order and isinstance(order, str) and order=='timestamp ASC': + #order = order.replace("timestamp ", "start_datetime ") + order = "start_datetime asc, end_datetime asc" + if order and isinstance(order, str) and order=='timestamp DESC': + #order = order.replace("timestamp ", "start_datetime ") + order = "start_datetime desc, end_datetime asc" + res = super(ProjectTimesheetReport, self).search_read(domain, fields, offset, limit, order) return res @api.model def export_data(self, fields): index = range(len(fields)) fields_name = dict(zip(fields, index)) - res = super(ProjectTimelineReport, self).export_data(fields) + res = super(ProjectTimesheetReport, self).export_data(fields) for index, val in enumerate(res['datas']): - if fields_name.get('start_date') is not None: + """if fields_name.get('start_date') is not None: tdateindex = fields_name.get('start_date') tdate = res['datas'][index][tdateindex] if tdate: - res['datas'][index][tdateindex] = datetime.strftime(tdate, "%d/%m/%Y") + res['datas'][index][tdateindex] = datetime.strftime(tdate, "%d/%m/%Y")""" if fields_name.get('task_id') is not None: taskindex = fields_name.get('task_id') ttask = res['datas'][index][taskindex] @@ -83,6 +88,8 @@ class ProjectTimelineReport(models.Model): SELECT ROW_NUMBER() OVER() as id, aal.start_datetime::date as start_date, + to_char(start_datetime at time zone 'utc' at time zone 'Asia/Jerusalem', 'HH24:MI') as start_time, + to_char(end_datetime at time zone 'utc' at time zone 'Asia/Jerusalem', 'HH24:MI') as end_time, aal.start_datetime as start_datetime, aal.end_datetime as end_datetime, aal.employee_id, diff --git a/project_report/report/project_timesheet_report_views.xml b/project_report/report/project_timesheet_report_views.xml index 19d340a..4217c81 100755 --- a/project_report/report/project_timesheet_report_views.xml +++ b/project_report/report/project_timesheet_report_views.xml @@ -14,6 +14,8 @@ + +