Coverage for modules/resource/view.py : 77%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1import json
2import os
4from flask import Blueprint
5from flask import current_app
6from flask import send_from_directory
8# from flask import render_template
9# from flask import redirect
11# from flask import url_for
13# from flask_login import login_required
14# from PIL import Image as PILimage
16# from shopyo.api.enhance import get_setting
17# from shopyo.api.file import delete_file
19# from modules.box__ecommerce.product.models import Product
20# from modules.resource.models import Image
22# from modules.resource.models import Resource
24# from flask import flash
25# from flask import request#
26# from shopyo.api.html import notify_success
27# from shopyo.api.forms import flash_errors
30dirpath = os.path.dirname(os.path.abspath(__file__))
31module_info = {}
33with open(dirpath + "/info.json") as f:
34 module_info = json.load(f)
36globals()["{}_blueprint".format(module_info["module_name"])] = Blueprint(
37 "{}".format(module_info["module_name"]),
38 __name__,
39 template_folder="templates",
40 url_prefix=module_info["url_prefix"],
41)
44module_blueprint = globals()["{}_blueprint".format(module_info["module_name"])]
47@module_blueprint.route("/")
48def index():
49 return module_info["display_string"]
52@module_blueprint.route("/theme/front/<active_theme>/styles.css", methods=["GET"])
53def active_front_theme_css(active_theme):
54 theme_dir = os.path.join(
55 current_app.config["BASE_DIR"],
56 "static",
57 "themes",
58 "front",
59 active_theme,
60 )
61 # return theme_dir
62 return send_from_directory(theme_dir, "styles.css")
65@module_blueprint.route("/theme/back/<active_theme>/styles.css", methods=["GET"])
66def active_back_theme_css(active_theme):
67 theme_dir = os.path.join(
68 current_app.config["BASE_DIR"],
69 "static",
70 "themes",
71 "back",
72 active_theme,
73 )
74 # return theme_dir
75 return send_from_directory(theme_dir, "styles.css")
78# # Handles javascript image uploads from tinyMCE
79# @module_blueprint.route("/upload/tinymce/image", methods=["POST"])
80# @login_required
81# def upload_tinymce_image():
82# # Kevin Foong
83# file = request.files.get("file")
84# if file:
85# filename = file.filename.lower()
86# fn, ext = filename.split(".")
87# # truncate filename (excluding extension) to 30 characters
88# fn = fn[:30]
89# filename = fn + "." + ext
90# if ext in ["jpg", "gif", "png", "jpeg"]:
91# try:
92# # everything looks good, save file
93# img_fullpath = os.path.join(
94# current_app.config["UPLOADED_PATH_IMAGE"], filename
95# )
96# file.save(img_fullpath)
97# # get the file size to save to db
98# file_size = os.stat(img_fullpath).st_size
99# size = 160, 160
100# # read image into pillow
101# im = PILimage.open(img_fullpath)
102# # get image dimension to save to db
103# file_width, file_height = im.size
104# # convert to thumbnail
105# im.thumbnail(size)
106# thumbnail = fn + "-thumb.jpg"
107# tmb_fullpath = os.path.join(
108# current_app.config["UPLOADED_PATH_THUMB"], thumbnail
109# )
110# # PNG is index while JPG needs RGB
111# if not im.mode == "RGB":
112# im = im.convert("RGB")
113# # save thumbnail
114# im.save(tmb_fullpath, "JPEG")
116# # save to db
117# img = Image(
118# filename=filename,
119# thumbnail=thumbnail,
120# file_size=file_size,
121# file_width=file_width,
122# file_height=file_height,
123# )
124# db.session.add(img)
125# db.session.commit()
126# except IOError:
127# output = make_response(404)
128# output.headers["Error"] = (
129# "Cannot create thumbnail for " + filename
130# )
131# return output
132# return jsonify({"location": filename})
134# # fail, image did not upload
135# output = make_response(404)
136# output.headers["Error"] = "Filename needs to be JPG, JPEG, GIF or PNG"
137# return output