Refactored livechat
bzr revid: nicolas.vanhoren@openerp.com-20130621133310-a68iiqy9wpu40iws
This commit is contained in:
parent
8cc30e00e6
commit
dcf20f9871
|
@ -26,6 +26,8 @@ import random
|
||||||
import jinja2
|
import jinja2
|
||||||
from openerp.osv import osv, fields
|
from openerp.osv import osv, fields
|
||||||
from openerp import tools
|
from openerp import tools
|
||||||
|
import openerp.addons.web.http as http
|
||||||
|
from openerp.addons.web.http import request
|
||||||
|
|
||||||
env = jinja2.Environment(
|
env = jinja2.Environment(
|
||||||
loader=jinja2.PackageLoader('openerp.addons.im_livechat', "."),
|
loader=jinja2.PackageLoader('openerp.addons.im_livechat', "."),
|
||||||
|
@ -33,48 +35,38 @@ env = jinja2.Environment(
|
||||||
)
|
)
|
||||||
env.filters["json"] = json.dumps
|
env.filters["json"] = json.dumps
|
||||||
|
|
||||||
class LiveChatController(openerp.addons.web.http.Controller):
|
class LiveChatController(http.Controller):
|
||||||
_cp_path = '/im_livechat'
|
|
||||||
|
|
||||||
@openerp.addons.web.http.httprequest
|
@http.route('/im_livechat/loader')
|
||||||
def loader(self, req, **kwargs):
|
def loader(self, **kwargs):
|
||||||
p = json.loads(kwargs["p"])
|
p = json.loads(kwargs["p"])
|
||||||
db = p["db"]
|
db = p["db"]
|
||||||
channel = p["channel"]
|
channel = p["channel"]
|
||||||
user_name = p.get("user_name", None)
|
user_name = p.get("user_name", None)
|
||||||
req.session._db = db
|
request.session.authenticate(db=db, login="anonymous", password="anonymous")
|
||||||
req.session._uid = None
|
info = request.session.model('im_livechat.channel').get_info_for_chat_src(channel)
|
||||||
req.session._login = "anonymous"
|
|
||||||
req.session._password = "anonymous"
|
|
||||||
info = req.session.model('im_livechat.channel').get_info_for_chat_src(channel)
|
|
||||||
info["db"] = db
|
info["db"] = db
|
||||||
info["channel"] = channel
|
info["channel"] = channel
|
||||||
info["userName"] = user_name
|
info["userName"] = user_name
|
||||||
return req.make_response(env.get_template("loader.js").render(info),
|
return request.make_response(env.get_template("loader.js").render(info),
|
||||||
headers=[('Content-Type', "text/javascript")])
|
headers=[('Content-Type', "text/javascript")])
|
||||||
|
|
||||||
@openerp.addons.web.http.httprequest
|
@http.route('/im_livechat/web_page')
|
||||||
def web_page(self, req, **kwargs):
|
def web_page(self, **kwargs):
|
||||||
p = json.loads(kwargs["p"])
|
p = json.loads(kwargs["p"])
|
||||||
db = p["db"]
|
db = p["db"]
|
||||||
channel = p["channel"]
|
channel = p["channel"]
|
||||||
req.session._db = db
|
request.session.authenticate(db=db, login="anonymous", password="anonymous")
|
||||||
req.session._uid = None
|
script = request.session.model('im_livechat.channel').read(channel, ["script"])["script"]
|
||||||
req.session._login = "anonymous"
|
info = request.session.model('im_livechat.channel').get_info_for_chat_src(channel)
|
||||||
req.session._password = "anonymous"
|
|
||||||
script = req.session.model('im_livechat.channel').read(channel, ["script"])["script"]
|
|
||||||
info = req.session.model('im_livechat.channel').get_info_for_chat_src(channel)
|
|
||||||
info["script"] = script
|
info["script"] = script
|
||||||
return req.make_response(env.get_template("web_page.html").render(info),
|
return request.make_response(env.get_template("web_page.html").render(info),
|
||||||
headers=[('Content-Type', "text/html")])
|
headers=[('Content-Type', "text/html")])
|
||||||
|
|
||||||
@openerp.addons.web.http.jsonrequest
|
@http.route('/im_livechat/available', type='json')
|
||||||
def available(self, req, db, channel):
|
def available(self, db, channel):
|
||||||
req.session._db = db
|
request.session.authenticate(db=db, login="anonymous", password="anonymous")
|
||||||
req.session._uid = None
|
return request.session.model('im_livechat.channel').get_available_user(channel) > 0
|
||||||
req.session._login = "anonymous"
|
|
||||||
req.session._password = "anonymous"
|
|
||||||
return req.session.model('im_livechat.channel').get_available_user(channel) > 0
|
|
||||||
|
|
||||||
class im_livechat_channel(osv.osv):
|
class im_livechat_channel(osv.osv):
|
||||||
_name = 'im_livechat.channel'
|
_name = 'im_livechat.channel'
|
||||||
|
|
Loading…
Reference in New Issue