timetable_info.py
2.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# See LICENSE file for full copyright and licensing details.
from odoo import api, models
class ReportTimetableInfo(models.AbstractModel):
_name = 'report.timetable.timetable'
_description = "Timetable details"
def _get_timetable(self, timetable_id):
"""Method to combain values for timetable"""
timetable_detail = []
self._cr.execute('''select t.start_time,t.end_time,s.name,week_day,
st.employee_id, hr.name as
teacher from time_table_line t,
subject_subject s, resource_resource r, school_teacher
st, hr_employee
hr where t.subject_id= s.id and t.teacher_id=st.id and
st.employee_id= hr.id
and t.table_id = %s
group by start_time,end_time,s.name,week_day,
st.employee_id,hr.name
order by start_time''', tuple([timetable_id.id]))
res = self._cr.dictfetchall()
self._cr.execute('''select start_time,end_time from time_table_line
where table_id=%s group by start_time,end_time
order by start_time''', tuple([timetable_id.id]))
time_data = self._cr.dictfetchall()
for time_detail in time_data:
for data in res:
if ((time_detail.get('start_time') == data.get('start_time'))
and (time_detail.get('end_time') == data.get('end_time'))):
if (data.get('name') == 'Recess'):
time_detail[data['week_day']] = data.get('name')
else:
td = data.get('name') + '\n(' + data.get(
'teacher') + ')'
time_detail[data['week_day']] = td
timetable_detail.append(time_detail)
return timetable_detail
@api.model
def _get_report_values(self, docids, data=None):
"""Inherited method to get report data"""
timetable_report = self.env['ir.actions.report']._get_report_from_name(
'timetable.timetable')
docs = self.env['time.table'].browse(docids)
return {
'doc_ids': docids,
'docs': docs,
'doc_model': timetable_report.model,
'data': data,
'get_timetable': self._get_timetable
}