def folder(page=1): parent_id = 0 top = 0 success = True if request.method == 'POST': sub_folder = request.form.get('folder') parent_directory = request.form.get('parent_directory', '') # 验证目录 if sub_folder is None: return custom_response(False, gettext("Directory name isn't empty!")) sub_folder = parse.unquote(sub_folder) if not re.match(r'^[0-9a-zA-Z_]+$', sub_folder): return custom_response( False, gettext("Directory name only character or underline!")) if Directory.query.filter_by(site_id=Site.master_site_id(current_user), name=sub_folder).first(): return custom_response(False, gettext("Directory name is already exist!")) if parent_directory != '': directories = parent_directory.split('/') # pop last item last_directory_name = directories.pop() last_directory = Directory.query.filter_by( site_id=Site.master_site_id(current_user), name=last_directory_name).first() parent_id = last_directory.id top = 1 try: directory = Directory(name=sub_folder, master_uid=Master.master_uid(), site_id=Site.master_site_id(current_user), user_id=current_user.id, parent_id=parent_id, top=top) db.session.add(directory) db.session.commit() except Exception as ex: success = False return status_response(success)
def flupload(): saved_asset_ids = [] sub_folder = str(time.strftime('%y%m%d')) directory_id = 0 directory = _pop_last_directory() if directory: current_directory = Directory.query.filter_by(name=directory).first() directory_id = current_directory.id # for key, file in request.files.iteritems(): for f in request.files.getlist('file'): upload_name = f.filename # start to save name_prefix = 'admin' + str(time.time()) name_prefix = hashlib.md5(name_prefix.encode('utf-8')).hexdigest()[:15] filename = uploader.save(f, folder=sub_folder, name=name_prefix + '.') storage_filepath = uploader.path(filename) current_app.logger.warning('upload filename: %s, filepath: %s' % (filename, storage_filepath)) # get info of upload image im = Image.open(storage_filepath) size = os.path.getsize(storage_filepath) / 1024 # k new_asset = Asset(master_uid=Master.master_uid(), site_id=Site.master_site_id(current_user), user_id=current_user.id, filepath=filename, filename=upload_name, directory_id=directory_id, width=im.width, height=im.height, size=size) db.session.add(new_asset) db.session.commit() saved_asset_ids.append(new_asset.id) return jsonify({'status': 200, 'ids': saved_asset_ids})
def show_brands(page=1): per_page = request.args.get('per_page', 10, type=int) status = request.args.get('status', 0, type=int) # 获取所属站点 current_site_id = Site.master_site_id(current_user) builder = Brand.query.filter_by(site_id=current_site_id) if status: builder = builder.filter_by(status=status) paginated_brands = builder.order_by(Brand.created_at.desc()).paginate( page, per_page) if paginated_brands: paginated_brands.offset_start = 1 if page == 1 else (page - 1) * per_page paginated_brands.offset_end = paginated_brands.offset_start + len( paginated_brands.items) - 1 return render_template('admin/brands/show_list.html', paginated_brands=paginated_brands)