12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- # -*- coding: utf-8 -*-
- from openerp import http
- from openerp.http import request
- from werkzeug.wrappers import Response
- from werkzeug.datastructures import Headers
- from werkzeug.utils import redirect
- from gzip import GzipFile
- from StringIO import StringIO as IO
- import json
- import logging
- LOGGER = logging.getLogger(__name__)
- GZIP_COMPRESSION_LEVEL = 9
- class PrintEngineController(http.Controller):
- '''
- '''
- def make_info_log(self, log):
- LOGGER.info('[INFO] {}'.format(log))
- '''
- Make GZIP to JSON response
- '''
- def make_gzip_response(self, data=None, status=200):
- gzip_buffer = IO()
- with GzipFile(mode='wb', compresslevel=GZIP_COMPRESSION_LEVEL, fileobj=gzip_buffer) as gzip_file:
- gzip_file.write(json.dumps(data))
-
- contents = gzip_buffer.getvalue()
- gzip_buffer.close()
- headers = Headers()
- headers.add('Content-Encoding', 'gzip')
- headers.add('Vary', 'Accept-Encoding')
- headers.add('Content-Length', len(contents))
- return Response(contents, status=status, headers=headers, content_type='application/json')
-
- '''
- '''
- @http.route('/print_engine/update', auth='user', type='json', methods=['POST'], cors='*')
- def printers_update(self, **kw):
- printer_obj = request.env['print.engine.printer']
- for printer in request.env.user.socket_ids.printer_ids:
- printer.unlink()
- for printer_name in json.loads(kw.get('data'))['printers']:
- printer_obj.create({
- 'name': printer_name,
- 'socket_id': request.env.user.socket_ids.id
- })
- return True
- '''
- '''
- def get_sockets(self):
- socket_obj = request.env['print.engine.socket']
- return [{
- 'protocol': socket.protocol,
- 'host': socket.host,
- 'port': socket.port,
- 'path': socket.path
- } for socket in socket_obj.search([('active', '=', True)])]
- '''
- '''
- @http.route('/print_engine/sockets', auth='user', methods=['GET'], cors='*')
- def printers_get_sockets(self, **kw):
- return self.make_gzip_response({
- 'sockets': self.get_sockets()
- })
-
|