diff --git a/room/__manifest__.py b/room/__manifest__.py
index 7e607ded5..ccc09b6df 100644
--- a/room/__manifest__.py
+++ b/room/__manifest__.py
@@ -7,7 +7,7 @@
'description': 'Experience the Ease of Booking Meeting Rooms with Real-Time Availability Display.',
'category': 'Services/Room',
'version': '1.0',
- 'depends': ['mail', 'hr'],
+ 'depends': ['mail', 'hr', 'documents'],
'data': [
'views/room_booking_views.xml',
'views/room_room_views.xml',
diff --git a/room/models/room_booking.py b/room/models/room_booking.py
index 1fb35c915..367e184c3 100644
--- a/room/models/room_booking.py
+++ b/room/models/room_booking.py
@@ -21,19 +21,43 @@ class RoomBooking(models.Model):
office_id = fields.Many2one(related="room_id.office_id", string="Office", readonly=True, store=True)
company_id = fields.Many2one(related="room_id.company_id", string="Company", readonly=True, store=True)
# pengyuthon
- meeting_type = fields.Selection([('up', '线上'), ('down', '线下')], string="会议类型", required=True)
- room_users_id = fields.Many2many('res.users', string="会议参加人员")
- meeting_note = fields.Text(string="会议纪要")
+ is_notice = fields.Boolean(string="是否发布通知", default=True)
+ meeting_type = fields.Selection([('up', '线上'), ('down', '线下')], default='down', string="会议类型", required=True)
+ room_users_ids = fields.Many2many('res.users', string="会议参加人员")
+ meeting_party_note = fields.Text(string="党之委会议纪要")
+ party_documents_ids = fields.Many2many('documents.document', string="党之委会议纪要文件")
+ meeting_class_note = fields.Text(string="班子会议纪要")
+ class_documents_ids = fields.Many2many('documents.document', string="班子会议纪要文件")
+ meeting_boss_note = fields.Text(string="董事会议纪要")
+ boss_documents_ids = fields.Many2many('documents.document', string="董事会议纪要文件")
meeting_sing_ids = fields.One2many('room.meeting.sign', 'room_booking_id', string="签到详情")
meeting_data = fields.Html(string="会议说明")
-
def meet_notice(self):
- pass
-
- def meet_change_notice(self):
- pass
-
+ if self.is_notice:
+ for user in self.room_users_ids:
+ self.env['room.meeting.sign'].create({
+ 'room_booking_id': self.id,
+ 'sign_user_id': user.id,
+ 'sign_user_name': user.name,
+ 'user_type': 'insiders',
+ 'sign_type': 'no',
+ })
+ self.env['project.task'].create({
+ 'name': '您有新的预定的会议' + self.name + "请知晓",
+ 'user_ids': [(4, user.id)],
+ })
+ event = self.env['calendar.event'].create({
+ 'name': self.name,
+ 'start': self.start_datetime,
+ 'stop': self.stop_datetime,
+ })
+ for partner in self.room_users_ids.employee_ids:
+ self.env['calendar.attendee'].create({
+ 'event_id': event.id,
+ 'partner_id': partner.address_id.id,
+ })
+ # 企业用户发送通知
def meeting_sign_in(self):
pass
diff --git a/room/models/room_meeting_sign.py b/room/models/room_meeting_sign.py
index bbd5adc89..a72c8a054 100644
--- a/room/models/room_meeting_sign.py
+++ b/room/models/room_meeting_sign.py
@@ -10,7 +10,7 @@ class RoomMeetingSign(models.Model):
_description = "会议签到"
room_booking_id = fields.Many2one('room.booking', string="会议")
-
sign_user_id = fields.Many2one('res.users', string="人员")
+ sign_user_name = fields.Char(string="人员")
user_type = fields.Selection([('insiders', '内部人员'), ('outsiders', '外部人员')], default='no', string="人员类型")
sign_type = fields.Selection([('no', '未签到'), ('yes', '已签到')], default='no', string="签到状态")
diff --git a/room/models/room_room.py b/room/models/room_room.py
index 8c5171200..5dc54b100 100644
--- a/room/models/room_room.py
+++ b/room/models/room_room.py
@@ -49,11 +49,11 @@ class Room(models.Model):
for room in self:
room.bookings_count = bookings_count_by_room.get(room, 0)
- @api.depends("office_id")
- def _compute_display_name(self):
- super()._compute_display_name()
- for room in self:
- room.display_name = f"{room.office_id.name} - {room.name}"
+ # @api.depends("office_id")
+ # def _compute_display_name(self):
+ # super()._compute_display_name()
+ # for room in self:
+ # room.display_name = f"{room.office_id.name} - {room.name}"
@api.depends("room_booking_ids")
def _compute_is_available(self):
diff --git a/room/security/ir_rule.xml b/room/security/ir_rule.xml
index a9afe351c..f92da61dd 100644
--- a/room/security/ir_rule.xml
+++ b/room/security/ir_rule.xml
@@ -7,15 +7,15 @@
-
- Room Room MC Rule
-
- [('company_id', 'in', company_ids)]
-
+
+
+
+
+
-
- Room Office MC Rule
-
- [('company_id', 'in', company_ids)]
-
+
+
+
+
+
diff --git a/room/static/description/icon.png b/room/static/description/icon.png
index a305f8f72..5068a3d9d 100644
Binary files a/room/static/description/icon.png and b/room/static/description/icon.png differ
diff --git a/room/static/description/icon.svg b/room/static/description/icon.svg
index 41f9e0413..8992cc3fc 100644
--- a/room/static/description/icon.svg
+++ b/room/static/description/icon.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/room/views/room_booking_views.xml b/room/views/room_booking_views.xml
index 609623179..cc27467fe 100644
--- a/room/views/room_booking_views.xml
+++ b/room/views/room_booking_views.xml
@@ -23,21 +23,21 @@
room.booking
+ date_start="start_datetime"
+ date_stop="stop_datetime"
+ default_group_by="room_id"
+ precision="{'day': 'hour:quarter', 'week': 'day:half', 'month': 'day:half', 'year': 'day:full'}"
+ default_scale="day"
+ dynamic_range="1"
+ color="organizer_id"
+ string="Bookings"
+ plan="0">
-
- Organizer:
+ Organizer:
-
@@ -57,7 +57,8 @@
room.booking.view.calendar
room.booking
-
+
@@ -93,11 +94,11 @@
-
- Room:
+ Room:
-
- Date:
+ Date:
@@ -125,8 +126,8 @@
@@ -138,11 +139,14 @@
-
+
-
+
+
+
@@ -150,14 +154,22 @@
-
+
+
-
+
+
+
+
+
+
+
+
diff --git a/yuthon_issue/models/issue_library.py b/yuthon_issue/models/issue_library.py
index c7f7281d4..81ccf98c6 100644
--- a/yuthon_issue/models/issue_library.py
+++ b/yuthon_issue/models/issue_library.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
from odoo import api, fields, models, tools
-from odoo.exceptions import ValidationError
+from odoo.exceptions import UserError, ValidationError
class IssueLibrary(models.Model):
@@ -12,7 +12,8 @@ class IssueLibrary(models.Model):
name = fields.Char(string='议题事项')
code = fields.Char(string='编号', required=True, copy=False,
default=lambda self: self.env['ir.sequence'].next_by_code('issue_library_code'))
- statu = fields.Selection([('will', '待上会'), ('done', '已上会'), ('cancel', '已取消')], default='will', string="议题状态")
+ statu = fields.Selection([('draft', '草稿'), ('approval', '审批中'), ('done', '已通过'), ('stop', '已拒绝'),
+ ('will', '待上会'), ('done', '已上会'), ('cancel', '已取消')], default='draft', string="议题状态")
is_party = fields.Boolean(string="党之委会")
is_class = fields.Boolean(string="班子会")
is_boss = fields.Boolean(string="董事会")
@@ -25,5 +26,23 @@ class IssueLibrary(models.Model):
def issue_cancel(self):
self.write({"statu": "cancel"})
- def all_meting_issue(self):
- self.write({"statu": "done"})
+ def all_meeting_issue(self):
+ for meet in self:
+ if meet.statu == 'done':
+ raise UserError('不可重复上会')
+ meet.write({"statu": "done"})
+ issue_active_ids = self.env["issue.library"].browse(self._context.get('active_ids', self._context.get('active_id')))
+ issue_library_data = [(0, 0, {'name': issue.name}) for issue in issue_active_ids]
+ form_id = self.env.ref("room.room_booking_view_form").id
+ return {
+ "type": "ir.actions.act_window",
+ "name": "会议安排",
+ "res_model": "room.booking",
+ "target": 'new',
+ "views": [[form_id, "form"]],
+ "context": {
+ 'default_issue_room_booking_ids': issue_library_data,
+ }
+ }
+
+
diff --git a/yuthon_issue/views/issue_library_views.xml b/yuthon_issue/views/issue_library_views.xml
index 29e32b943..6cad6ed32 100644
--- a/yuthon_issue/views/issue_library_views.xml
+++ b/yuthon_issue/views/issue_library_views.xml
@@ -90,11 +90,11 @@
- 上会
+ 批量上会
code
- records.all_meting_issue()
+ action = model.all_meeting_issue()