From ff3841f6774718f0dcab2964fde5ab500375c75c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= Date: Tue, 3 Feb 2026 17:15:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=93=E5=8D=B0=EF=BC=8C=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- room/__manifest__.py | 2 + room/models/room_booking.py | 16 +++ room/report/room_booking_agenda_report.xml | 23 ++++ room/report/room_booking_agenda_template.xml | 126 +++++++++++++++++++ room/views/room_booking_views.xml | 1 + yuthon_work_brand/views/executive_manage.xml | 19 +++ yuthon_work_brand/views/hr_menus.xml | 12 +- 7 files changed, 193 insertions(+), 6 deletions(-) create mode 100644 room/report/room_booking_agenda_report.xml create mode 100644 room/report/room_booking_agenda_template.xml 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 @@