Add Ajax method to return work in last 7 days
This can be used to build graphs
This commit is contained in:
parent
3de846091a
commit
9daf274daa
36
project.py
36
project.py
|
@ -1099,6 +1099,42 @@ class Project(ModelSQL, ModelView):
|
|||
)
|
||||
return jsonify(day_totals=day_totals, lines=lines, work_week=work_week)
|
||||
|
||||
@login_required
|
||||
def get_7_day_performance(self):
|
||||
"""
|
||||
Returns the hours worked in the last 7 days.
|
||||
"""
|
||||
employee_obj = Pool().get('company.employee')
|
||||
timesheet_obj = Pool().get('timesheet.line')
|
||||
date_obj = Pool().get('ir.date')
|
||||
|
||||
if not request.nereid_user.employee:
|
||||
return jsonify({})
|
||||
|
||||
end_date = date_obj.today()
|
||||
start_date = end_date - relativedelta(days=7)
|
||||
|
||||
timesheet_line_ids = timesheet_obj.search([
|
||||
('date', '>=', start_date),
|
||||
('date', '<=', end_date),
|
||||
('employee', '=', request.nereid_user.employee.id),
|
||||
])
|
||||
timesheet_lines = timesheet_obj.browse(timesheet_line_ids)
|
||||
|
||||
hours_by_day = {}
|
||||
|
||||
for line in timesheet_lines:
|
||||
hours_by_day[line.date] = \
|
||||
hours_by_day.setdefault(line.date, 0.0) + line.hours
|
||||
|
||||
days = hours_by_day.keys()
|
||||
days.sort()
|
||||
|
||||
return jsonify({
|
||||
'categories': map(lambda d:d.strftime('%d-%b'), days),
|
||||
'series': ['%.2f' % hours_by_day[day] for day in days]
|
||||
})
|
||||
|
||||
@login_required
|
||||
@permissions_required(['project.admin'])
|
||||
def render_global_timesheet(self):
|
||||
|
|
7
urls.xml
7
urls.xml
|
@ -265,5 +265,12 @@
|
|||
<field name="methods">("POST",)</field>
|
||||
<field name="url_map" ref="nereid.default_url_map" />
|
||||
</record>
|
||||
<record id="project_work_last_7_days" model="nereid.url_rule">
|
||||
<field name="rule">/<language>/-project/-my-last-7-days</field>
|
||||
<field name="endpoint">project.work.get_7_day_performance</field>
|
||||
<field name="sequence" eval="60" />
|
||||
<field name="methods">("GET",)</field>
|
||||
<field name="url_map" ref="nereid.default_url_map" />
|
||||
</record>
|
||||
</data>
|
||||
</tryton>
|
||||
|
|
Loading…
Reference in New Issue