Merge branch 'master' of https://gitlab.sunarctechnologies.com/prakash.jain/cor-odoo into timesheet_report_sorting
This commit is contained in:
commit
23b6b4d764
|
@ -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,
|
||||
|
|
|
@ -14,6 +14,8 @@
|
|||
<field name="task_id"/>
|
||||
<field name="duration"/>
|
||||
<field name="timestamp"/>
|
||||
<field name="start_time"/>
|
||||
<field name="end_time"/>
|
||||
<field name="description"/>
|
||||
<field name="start_datetime" invisible="1"/>
|
||||
<field name="end_datetime" invisible="1"/>
|
||||
|
|
Loading…
Reference in New Issue