Files
gzth/yuthon_issue/models/inherit_room_booking.py
T
2025-04-19 21:38:53 +08:00

66 lines
2.8 KiB
Python

from odoo import api, fields, models, _
from odoo.exceptions import UserError
class RoomBooking(models.Model):
_inherit = 'room.booking'
is_issue = fields.Boolean(string="是否关联议题", default=True)
issue_meeting_line_ids = fields.One2many('issue.meeting.line', 'meeting_booking_id', string="关联议题明细行")
number_of_meetings = fields.Integer(string='会议次数')
def bottom_meeting_approval(self):
library_data = []
for library in self.issue_meeting_line_ids:
if library.state == 'done':
raise UserError('当前纪要不允许重复提交')
library.state = 'done'
library_data.append((0, 0, {
'minutes_id': library.issue_library_id.id,
'decision_results': library.decision_results,
'overview': library.decision_details,
}))
return {
'name': '会议纪要审批',
'type': 'ir.actions.act_window',
'view_mode': "form",
'res_model': 'issue.meeting.minutes',
'context': {
'default_meeting_id': self.id,
'default_meeting_type_id': self.meeting_type_id.id,
'default_meeting_date': self.start_datetime,
'default_number_of_meetings': self.number_of_meetings,
'default_meeting_minutes_ids': library_data
}}
@api.model_create_multi
def create(self, vals_list):
res = super().create(vals_list)
for vals in vals_list:
if vals['issue_meeting_line_ids']:
for line in vals['issue_meeting_line_ids']:
self.env['issue.library.room.line'].create({
'issue_library_id': line[2]['issue_library_id'],
'room_booking_id': res.id,
'room_id': vals['room_id'],
'meeting_type_id': vals['meeting_type_id'],
'approval_date': vals['start_datetime'],
})
return res
class IssueMeetingLine(models.Model):
_name = 'issue.meeting.line'
_description = '关联议题明细行'
_order = 'sequence asc'
meeting_booking_id = fields.Many2one('room.booking', string='关联会议室')
sequence = fields.Char(string='序号', store=True)
issue_library_id = fields.Many2one('issue.library', string='议题')
issue_library_name = fields.Char(related='issue_library_id.name', string='议题')
employee_id = fields.Many2one('hr.employee', string='传达人')
attendees = fields.Char(string='列席人员')
is_sanda = fields.Boolean(string="三重一大")
decision_results = fields.Selection([('agree', '通过'), ('disagree', '未通过')], string="决策结果")
decision_details = fields.Text(string="决策详情")