diff --git a/room/__manifest__.py b/room/__manifest__.py index 85edf8534..fca87726a 100644 --- a/room/__manifest__.py +++ b/room/__manifest__.py @@ -26,6 +26,8 @@ 'views/inherit_calendar_event_views.xml', 'views/other_meet_employee_views.xml', 'report/meet_check_report.xml', + 'report/room_booking_agenda_report.xml', + 'report/room_booking_agenda_template.xml', 'wizard/room_booking_sign_wizard.xml', 'wizard/room_booking_partner_create_wizard.xml', ], diff --git a/room/models/room_booking.py b/room/models/room_booking.py index ab3c4a8c4..507cd85d6 100644 --- a/room/models/room_booking.py +++ b/room/models/room_booking.py @@ -21,6 +21,7 @@ class RoomBooking(models.Model): room_id = fields.Many2one("room.room", string="Room", required=True, ondelete="cascade", group_expand="_read_group_room_id", tracking=4) start_datetime = fields.Datetime(string="Start Datetime", required=True, tracking=2) + start_datetime_local = fields.Datetime(string="本地开始时间", compute="_compute_start_datetime_local", store=False) stop_datetime = fields.Datetime(string="End Datetime", required=True, tracking=3) organizer_id = fields.Many2one("res.users", string="Organizer", default=lambda self: self.env.user.id if not self.env.user._is_public() else False, @@ -378,3 +379,18 @@ class RoomBooking(models.Model): room_ids = rooms._search([], order="office_id," + order) return rooms.browse(room_ids) return rooms + + def action_print_room_booking_agenda(self): + """打印会议议程安排表""" + self.ensure_one() + report = self.env.ref('room.action_room_booking_agenda_report') + return report.report_action(self) + + @api.depends('start_datetime') + def _compute_start_datetime_local(self): + """计算本地时区时间(UTC+8)""" + for record in self: + if record.start_datetime: + record.start_datetime_local = record.start_datetime + timedelta(hours=8) + else: + record.start_datetime_local = False diff --git a/room/report/room_booking_agenda_report.xml b/room/report/room_booking_agenda_report.xml new file mode 100644 index 000000000..9bbec2b3a --- /dev/null +++ b/room/report/room_booking_agenda_report.xml @@ -0,0 +1,23 @@ + + + + + Room Booking Agenda Small Top Margin + A4 + 5 + Portrait + + + + 会议议程安排表 + + room.booking + qweb-pdf + room.room_booking_agenda_template + room.room_booking_agenda_template + + report + '会议议程安排表_%s_%s' % (object.meeting_type_id.name or '', (object.start_datetime and object.start_datetime.strftime('%Y-%m-%d') or '')) + + + diff --git a/room/report/room_booking_agenda_template.xml b/room/report/room_booking_agenda_template.xml new file mode 100644 index 000000000..527f917a2 --- /dev/null +++ b/room/report/room_booking_agenda_template.xml @@ -0,0 +1,126 @@ + + + + diff --git a/room/views/room_booking_views.xml b/room/views/room_booking_views.xml index e33a960ce..7cb93d3a9 100644 --- a/room/views/room_booking_views.xml +++ b/room/views/room_booking_views.xml @@ -136,6 +136,7 @@