diff --git a/room/__init__.py b/room/__init__.py index 7d34c7c05..887107072 100644 --- a/room/__init__.py +++ b/room/__init__.py @@ -3,3 +3,4 @@ from . import controllers from . import models +from . import wizard diff --git a/room/__manifest__.py b/room/__manifest__.py index 62ded7856..25522f044 100644 --- a/room/__manifest__.py +++ b/room/__manifest__.py @@ -18,6 +18,7 @@ 'data/ir_module_category_data.xml', 'security/ir_rule.xml', 'security/ir.model.access.csv', + 'wizard/room_booking_sign_wizard.xml', ], 'demo': [ 'demo/room_office.xml', diff --git a/room/models/room_booking.py b/room/models/room_booking.py index 04dd62544..630dba721 100644 --- a/room/models/room_booking.py +++ b/room/models/room_booking.py @@ -1,6 +1,8 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. - +import qrcode +import base64 +from io import BytesIO from odoo import api, fields, models, _ from odoo.exceptions import ValidationError @@ -58,7 +60,23 @@ class RoomBooking(models.Model): self.sudo().with_context(lang=self.env.lang)._message_auto_subscribe_notify(partner_ids, 'room.message_yuthon_room_users_data') # odoo发通知 def meeting_sign_in(self): - pass + code_url = "" # 制作填写表单的地址 + qrcode_url = qrcode.make(code_url) + buffer = BytesIO() + qrcode_url.save(buffer, format='PNG') + qrcode_image = base64.b64encode(buffer.getvalue()).decode('utf-8') + pay_qrcode = "data:image/png;base64,{}".format(qrcode_image) + # 返回给向导试图的字段 + action = { + 'type': 'ir.actions.act_window', + 'name': _("签到二维码"), + 'res_model': 'room.booking.sign.wizard', + 'views': [(False, 'form')], + 'context': { + 'default_pay_qrcode': pay_qrcode, + } + } + return action @api.constrains("start_datetime", "stop_datetime") def _check_date_boundaries(self): diff --git a/room/security/ir.model.access.csv b/room/security/ir.model.access.csv index 39e5ec78d..4174b62f5 100644 --- a/room/security/ir.model.access.csv +++ b/room/security/ir.model.access.csv @@ -9,3 +9,5 @@ access_room_meeting_sign,access.room.meeting.sign,model_room_meeting_sign,base.g access_party_document,party_document,model_party_document,base.group_user,1,1,1,1 access_class_document,class_document,model_class_document,base.group_user,1,1,1,1 access_boss_document,boss_document,model_boss_document,base.group_user,1,1,1,1 + +access_room_booking_sign_wizard,room.booking.sign.wizard,model_room_booking_sign_wizard,,1,1,1,1 \ No newline at end of file diff --git a/room/wizard/__init__.py b/room/wizard/__init__.py new file mode 100644 index 000000000..e7c2e4664 --- /dev/null +++ b/room/wizard/__init__.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- + +from . import room_booking_sign_wizard + + + + diff --git a/room/wizard/room_booking_sign_wizard.py b/room/wizard/room_booking_sign_wizard.py new file mode 100644 index 000000000..cc912ac78 --- /dev/null +++ b/room/wizard/room_booking_sign_wizard.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- +import datetime +import calendar +from odoo import models, api, fields, _ +from odoo.exceptions import UserError + + +class RoombBookingSignWizard(models.Model): + _name = "room.booking.sign.wizard" + + pay_qrcode = fields.Image(string='二维码') \ No newline at end of file diff --git a/room/wizard/room_booking_sign_wizard.xml b/room/wizard/room_booking_sign_wizard.xml new file mode 100644 index 000000000..82d4da60f --- /dev/null +++ b/room/wizard/room_booking_sign_wizard.xml @@ -0,0 +1,14 @@ + + + + 签到二维码 + room.booking.sign.wizard + +
+ + + +
+
+
+
\ No newline at end of file