You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
2.2 KiB
61 lines
2.2 KiB
# -*- encoding: utf-8 -*-
|
|
############################################################################
|
|
#
|
|
# OpenERP, Open Source Web Color
|
|
# Copyright (C) 2012 Savoir-faire Linux (<http://www.savoirfairelinux.com>).
|
|
# Copyright (C) 2014 Anybox <http://anybox.fr>
|
|
# Copyright (C) 2015 Taktik SA <http://taktik.be>
|
|
#
|
|
# This program is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as
|
|
# published by the Free Software Foundation, either version 3 of the
|
|
# License, or (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
#
|
|
# @author Étienne Beaudry Auger <etienne.b.auger@savoirfairelinux.com>
|
|
# @author Adil Houmadi <ah@taktik.be>
|
|
#
|
|
##############################################################################
|
|
import openerp.http as http
|
|
from openerp.http import request
|
|
from os.path import join, abspath, exists
|
|
import mimetypes
|
|
|
|
|
|
class JsColor(http.Controller):
|
|
@http.route("/jscolor/<string:image>", type="http", auth="user")
|
|
def jscolor(self, image):
|
|
addons_path = http.addons_manifest['web_widget_color']['addons_path']
|
|
path = join(
|
|
addons_path,
|
|
'web_widget_color',
|
|
'static',
|
|
'lib',
|
|
'jscolor',
|
|
image
|
|
)
|
|
if not exists(path):
|
|
return request.not_found()
|
|
try:
|
|
image_file = open(abspath(path))
|
|
image_data = image_file.read()
|
|
image_file.close()
|
|
mime_type = mimetypes.guess_type(path)
|
|
if len(mime_type) > 1:
|
|
mime_type = mime_type[0]
|
|
else:
|
|
return request.not_found()
|
|
except:
|
|
return request.not_found()
|
|
headers = [
|
|
('Content-Type', '%s' % mime_type),
|
|
('Content-Length', len(image_data)),
|
|
]
|
|
return request.make_response(image_data, headers)
|