Files
gzth/room/controllers/main_room_yuthon.py
T

144 lines
6.9 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
import json
import logging
import odoo
import odoo.modules.registry
from odoo import http
from odoo.exceptions import AccessError
from odoo.http import request
from odoo.addons.web.controllers.utils import ensure_db
_logger = logging.getLogger(__name__)
class Home(http.Controller):
@http.route('/web/room', type='http', auth="none")
def web_login(self, room_id=None, **kw):
ensure_db()
values = {k: v for k, v in request.params.items()}
if not room_id:
values['error'] = "缺少会议号"
response = request.render('room.website_form_room', values)
response.headers['X-Frame-Options'] = 'SAMEORIGIN'
response.headers['Content-Security-Policy'] = "frame-ancestors 'self'"
return response
if request.session.uid is not None:
user_obj = request.env['res.users'].browse(request.session.uid)
if user_obj:
request.env["room.meeting.sign"].sudo().create({
"room_booking_id": room_id,
"sign_user_name": user_obj.name,
"user_type": "insiders",
"sign_type": 'yes'
})
values["message"] = "签到成功"
response = request.render('room.website_form_room', values)
response.headers['X-Frame-Options'] = 'SAMEORIGIN'
response.headers['Content-Security-Policy'] = "frame-ancestors 'self'"
return response
values['room_id'] = int(room_id)
record = request.env['room.booking'].sudo().browse(values['room_id'])
new_partner = request.env["res.partner"].sudo().browse(record.other_company_id.id)
values['child_ids'] = new_partner.child_ids
if request.httprequest.method == 'POST':
try:
record = request.env['room.booking'].sudo().browse(values['room_id'])
request.env["room.meeting.sign"].sudo().create({
"room_booking_id": record.id,
"sign_user_name": values.get("name", ""),
"user_type": "outsiders",
"sign_type": 'yes'
})
# pass
values["message"] = "签到成功"
except odoo.exceptions.AccessDenied as e:
if e.args == odoo.exceptions.AccessDenied().args:
values['error'] = "重复签到"
else:
values['error'] = "签到失败"
response = request.render('room.website_form_room', values)
response.headers['X-Frame-Options'] = 'SAMEORIGIN'
response.headers['Content-Security-Policy'] = "frame-ancestors 'self'"
return response
@http.route('/web/room/partner/create', type='http', auth="none")
def web_room_partner_create(self, room_id=None, **kw):
ensure_db()
values = {k: v for k, v in request.params.items()}
if not (room_id or values['room_id']):
values['error'] = "缺少会议号"
response = request.render('room.partner_create_form_room', values)
response.headers['X-Frame-Options'] = 'SAMEORIGIN'
response.headers['Content-Security-Policy'] = "frame-ancestors 'self'"
return response
values['room_id'] = int(room_id)
if request.httprequest.method == 'POST':
record = request.env['room.booking'].sudo().browse(values['room_id'])
other_company_id = record.other_company_id
if not record.other_company_id:
new_partner = request.env["res.partner"].sudo().create({
"name": values.get("name", ""),
})
record.other_company_id = new_partner.id
other_company_id = new_partner
# pass
values["message"] = values.get("name", "") + ": 创建成功,请继续添加人员!"
values["partner_id"] = int(other_company_id.id)
values["partner_name"] = other_company_id.name
values.pop("name", "")
response = request.render('room.partner_create_user_room', values)
response.headers['X-Frame-Options'] = 'SAMEORIGIN'
response.headers['Content-Security-Policy'] = "frame-ancestors 'self'"
return response
if values['room_id']:
record = request.env['room.booking'].sudo().browse(values['room_id'])
other_company_id = record.other_company_id
if record.other_company_id:
values["partner_id"] = int(other_company_id.id)
values["partner_name"] = other_company_id.name
values["message"] = other_company_id.name + ": 已存在,请继续添加人员!"
new_partner = request.env["res.partner"].sudo().browse(int(values['partner_id']))
values["new_partner"] = new_partner.child_ids
response = request.render('room.partner_create_user_room', values)
response.headers['X-Frame-Options'] = 'SAMEORIGIN'
response.headers['Content-Security-Policy'] = "frame-ancestors 'self'"
return response
response = request.render('room.partner_create_form_room', values)
response.headers['X-Frame-Options'] = 'SAMEORIGIN'
response.headers['Content-Security-Policy'] = "frame-ancestors 'self'"
return response
@http.route('/web/room/partner/user/create', type='http', auth="none")
def web_room_partner_user_create(self, **kw):
ensure_db()
values = {k: v for k, v in request.params.items()}
if request.httprequest.method == 'POST':
new_obj = request.env["res.partner"].sudo().create({
"name": values.get("name", ""),
"type": "contact",
"parent_id": values['partner_id']
})
# pass
values["message"] = values.get("name", "") + ": 创建成功"
values["partner_id"] = int(values['partner_id'])
new_partner = request.env["res.partner"].sudo().browse(int(values['partner_id']))
new_ids = new_partner.child_ids.ids + [new_obj.id]
# record = request.env['room.booking'].sudo().browse(values['room_id'])
# record.other_user_ids = new_ids
new_all_obj = request.env["res.partner"].sudo().search([("id", "in", new_ids)])
values.pop("name", "")
values["new_partner"] = new_all_obj
response = request.render('room.partner_create_user_room', values)
response.headers['X-Frame-Options'] = 'SAMEORIGIN'
response.headers['Content-Security-Policy'] = "frame-ancestors 'self'"
return response
response = request.render('room.partner_create_form_room', values)
response.headers['X-Frame-Options'] = 'SAMEORIGIN'
response.headers['Content-Security-Policy'] = "frame-ancestors 'self'"
return response