1 # -*- coding: utf-8 -*-
5 from openerp
.addons
.web
.controllers
.main
import manifest_list
, module_boot
, html_template
6 from openerp
.addons
.point_of_sale
.controllers
.main
import PointOfSaleController
8 class PointOfSaleController(PointOfSaleController
):
10 @openerp.addons
.web
.http
.httprequest
11 def app(self
, req
, s_action
=None, **kw
):
12 js
= "\n ".join('<script type="text/javascript" src="%s"></script>' % i
for i
in manifest_list(req
, None, 'js'))
13 css
= "\n ".join('<link rel="stylesheet" href="%s">' % i
for i
in manifest_list(req
, None, 'css'))
15 cookie
= req
.httprequest
.cookies
.get("instance0|session_id")
16 session_id
= cookie
.replace("%22","")
17 template
= html_template
.replace('<html','<html manifest="/pos/manifest?session_id=%s"'%session
_id
)
21 'modules': simplejson
.dumps(module_boot(req
)),
22 'init': 'var wc = new s.web.WebClient();wc.appendTo($(document.body));'
24 print ("DEV: [pos_membership] [controllers] [main] [app] return=%s" % str(r
))
27 @openerp.addons
.web
.http
.httprequest
28 def manifest(self
, req
, **kwargs
):
29 """ This generates a HTML5 cache manifest files that preloads the categories and products thumbnails
30 and other ressources necessary for the point of sale to work offline """
31 ml
= ["CACHE MANIFEST"]
33 # loading all the images in the static/src/img/* directories
34 def load_css_img(srcdir
,dstdir
):
35 for f
in os
.listdir(srcdir
):
36 path
= os
.path
.join(srcdir
,f
)
37 dstpath
= os
.path
.join(dstdir
,f
)
38 if os
.path
.isdir(path
) :
39 load_css_img(path
,dstpath
)
40 elif f
.endswith(('.png','.PNG','.jpg','.JPG','.jpeg','.JPEG','.gif','.GIF')):
43 imgdir
= openerp
.modules
.get_module_resource('point_of_sale','static/src/img');
44 load_css_img(imgdir
,'/point_of_sale/static/src/img')
46 products
= req
.session
.model('product.product')
47 for p
in products
.search_read([('pos_categ_id','!=',False)], ['name']):
49 url
= "/web/binary/image?session_id=%s&model=product.product&field=image&id=%s" % (req
.session_id
, product_id
)
52 categories
= req
.session
.model('pos.category')
53 for c
in categories
.search_read([],['name']):
55 url
= "/web/binary/image?session_id=%s&model=pos.category&field=image&id=%s" % (req
.session_id
, category_id
)
58 partners
= req
.session
.model('res.partner')
59 for c
in partners
.search_read([],['name']):
61 url
= "/web/binary/image?session_id=%s&model=res.partner&field=image&id=%s" % (req
.session_id
, partner_id
)
64 ml
+= ["NETWORK:","*"]
67 print ("DEV: [pos_membership] [controllers] [main] [manifest] return=%s" % m
)
70 PointOfSaleController()