cone.app的jQuery File Upload集成
项目描述
此软件包将jQueryFileUpload集成到cone中。
目前包含版本10.32.0。
jQuery File Upload包含的文件
jquery.iframe-transport.js
jquery.fileupload.js
jquery.fileupload-process.js
jquery.fileupload-ui.js
jquery.fileupload-validate.js
此外,还包含Javascript-Templates的v3.20.0版本。
用法
由于cone.app不了解底层数据,cone.fileupload只提供抽象服务器实现。
因此,我们首先需要提供一个模型。
from cone.app.model import BaseNode
from pyramid.security import ALL_PERMISSIONS
from pyramid.security import Allow
from pyramid.security import Deny
from pyramid.security import Everyone
ACL = [
(Allow, 'role:manager', ['add', 'delete']),
(Allow, Everyone, ['login']),
(Deny, Everyone, ALL_PERMISSIONS),
]
class Container(BaseNode):
__acl__ = ACL
def __call__(self):
"""Persistence happens here.
"""
class File(BaseNode):
__acl__ = ACL
# allow setting any value types
allow_non_node_children = True
现在我们需要为我们的模型提供一个具体的FileUploadHandle实现。
from cone.fileupload.browser.fileupload import FileUploadHandle
from pyramid.view import view_config
@view_config(
name='fileupload_handle',
context=Container, # <- here the view gets bound to our model
accept='application/json',
renderer='json',
permission='add')
class ContainerFileUploadHandle(FileUploadHandle):
def create_file(self, stream, filename, mimetype):
# this function gets called for persisting uploaded files
file = self.model[filename] = File()
file['body'] = stream.read()
return {
'name': filename,
'size': len(file['body']),
'view_url': '/{0}'.format(file.name),
'download_url': '/{0}/download'.format(file.name),
'delete_url': '/{0}/filedelete_handle'.format(file.name),
'delete_type': 'GET',
}
def read_existing(self):
# this function gets called for initial reading of existing files
files = list()
for node in self.model.values():
files.append({
'name': node.name,
'size': len(node['body']),
'view_url': '/{0}'.format(node.name),
'download_url': '/{0}/download'.format(node.name),
'delete_url': '/{0}/filedelete_handle'.format(node.name),
'delete_type': 'GET',
})
return files
可选地,我们可能想要为我们的模型提供一个定制的文件上传面板。
from cone.tile import tile
from cone.fileupload.browser.fileupload import FileUploadTile
@tile(
name='fileupload',
path='cone.fileupload:browser/fileupload.pt',
interface=Container,
permission='add')
class ContainerFileUploadTile(FileUploadTile):
accept_file_types = r'/(\.|\/)(gif|jpg)$/i'
文件上传操作要么以名称fileupload_toolbar的专用面板形式呈现,要么集成到上下文菜单中。如果希望在上下文菜单中显示操作,则必须在模型属性上设置fileupload_contextmenu_actions标志。
贡献者
Robert Niederreiter
更改
0.7 (2022-01-19)
现代化JavaScript设置。
将i18n_messages_src、upload_template_src和download_template_src属性添加到FileUploadTile。
将可选的download_url添加到文件数据字典中。
从文件数据字典中删除thumbnailUrl。
重大更改
在文件data字典中将url重命名为view_url。
在文件data字典中将deleteUrl重命名为delete_url。
在文件data字典中将deleteType重命名为delete_type。
0.6 (2021-11-21)
文件上传动作可选地从右键菜单中工作。[rnix]
将按钮工具栏移动到专用瓷砖中进行自定义。[rnix]
将jquery fileupload的包含文件和插件减少到所需的那些。[rnix]
将jquery fileupload更新到版本10.32.0。[rnix]
0.5 (2021-11-08)
在测试和文档中将废弃的allow_non_node_childs重命名为allow_non_node_children。[rnix]
0.4 (2020-05-30)
初始pypi发布 [rnix]
0.3
Python 3兼容性。[rnix]
将doctests转换为unittests。[rnix]
使用cone.app.main_hook装饰器。[rnix]
将资源注册移动到主钩子。[rnix]
升级到cone.app 1.0b1。[rnix]
0.2
代码组织。[rnix]
0.1
让它工作 [rnix]
许可协议
版权所有(c)2013-2021,BlueDynamics Alliance,奥地利 版权所有(c)2021,Cone贡献者。保留所有权利。
在不违反以下条件的情况下,允许重新分配和使用源代码和二进制形式,无论是否修改:
源代码重新分配必须保留上述版权声明、本条件列表和以下免责声明。
二进制形式的重新分配必须复制上述版权声明、本条件列表和以下免责声明在提供的文档和其他材料中。
本软件由版权所有者和贡献者提供“按原样”并且不提供任何明示或暗示的保证,包括但不限于适销性和适用于特定目的的隐含保证。在任何情况下,版权所有者或贡献者均不对任何直接、间接、偶然、特殊、示范性或后果性的损害(包括但不限于替代商品或服务的采购;使用、数据或利润的丧失;或业务中断)承担责任,无论这种损害是否由本软件的使用或本软件的任何缺陷、错误或疏忽引起,即使已被告知此类损害的可能性。
项目详情
cone.fileupload-0.7.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | f15fa592145d73d5c090254fabb5edef96a7542d09d93f23a878d363c82f8d01 |
|
MD5 | 2ad35a1ea06c96f919fdbb3eb1b6c660 |
|
BLAKE2b-256 | 9860b061303a6fd0d9af8c1066bd361812a4c88dcc40869e66cb4f0bc3bbc994 |