本文整理汇总了Python中website.util.rubeus.collect_addon_assets函数的典型用法代码示例。如果您正苦于以下问题:Python collect_addon_assets函数的具体用法?Python collect_addon_assets怎么用?Python collect_addon_assets使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了collect_addon_assets函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: addon_deleted_file
def addon_deleted_file(auth, node, **kwargs):
"""Shows a nice error message to users when they try to view
a deleted file
"""
# Allow file_node to be passed in so other views can delegate to this one
trashed = kwargs.get('file_node') or TrashedFileNode.load(kwargs.get('trashed_id'))
if not trashed:
raise HTTPError(httplib.NOT_FOUND, {
'message_short': 'Not Found',
'message_long': 'This file does not exist'
})
ret = serialize_node(node, auth, primary=True)
ret.update(rubeus.collect_addon_assets(node))
ret.update({
'urls': {
'render': None,
'sharejs': None,
'mfr': settings.MFR_SERVER_URL,
'gravatar': get_gravatar(auth.user, 25),
'files': node.web_url_for('collect_file_trees'),
},
'extra': {},
'size': 9966699, # Prevent file from being editted, just in case
'sharejs_uuid': None,
'file_name': trashed.name,
'file_path': trashed.path,
'provider': trashed.provider,
'materialized_path': trashed.materialized_path,
'error': FILE_GONE_ERROR_MESSAGE.format(file_name=trashed.name),
'private': getattr(node.get_addon(trashed.provider), 'is_private', False),
})
return ret, httplib.GONE
开发者ID:kms6bn,项目名称:osf.io,代码行数:34,代码来源:views.py
示例2: addon_view_file
def addon_view_file(auth, node, file_node, version):
# TODO: resolve circular import issue
from website.addons.wiki import settings as wiki_settings
if isinstance(version, tuple):
version, error = version
error = error.replace('\n', '').strip()
else:
error = None
ret = serialize_node(node, auth, primary=True)
if file_node._id + '-' + version._id not in node.file_guid_to_share_uuids:
node.file_guid_to_share_uuids[file_node._id + '-' + version._id] = uuid.uuid4()
node.save()
if ret['user']['can_edit']:
sharejs_uuid = str(node.file_guid_to_share_uuids[file_node._id + '-' + version._id])
else:
sharejs_uuid = None
download_url = furl.furl(request.url.encode('utf-8')).set(args=dict(request.args, **{
'direct': None,
'mode': 'render',
'action': 'download',
}))
render_url = furl.furl(settings.MFR_SERVER_URL).set(
path=['render'],
args={'url': download_url.url}
)
ret.update({
'urls': {
'render': render_url.url,
'mfr': settings.MFR_SERVER_URL,
'sharejs': wiki_settings.SHAREJS_URL,
'gravatar': get_gravatar(auth.user, 25),
'files': node.web_url_for('collect_file_trees'),
'archived_from': get_archived_from_url(node, file_node) if node.is_registration else None,
},
'error': error,
'file_name': file_node.name,
'file_name_title': os.path.splitext(file_node.name)[0],
'file_name_ext': os.path.splitext(file_node.name)[1],
'file_path': file_node.path,
'sharejs_uuid': sharejs_uuid,
'provider': file_node.provider,
'materialized_path': file_node.materialized_path,
'extra': version.metadata.get('extra', {}),
'size': version.size if version.size is not None else 9966699,
'private': getattr(node.get_addon(file_node.provider), 'is_private', False),
'file_tags': [tag._id for tag in file_node.tags],
'file_guid': file_node.get_guid()._id,
'file_id': file_node._id,
'allow_comments': file_node.provider in settings.ADDONS_COMMENTABLE
})
ret.update(rubeus.collect_addon_assets(node))
return ret
开发者ID:caspinelli,项目名称:osf.io,代码行数:60,代码来源:views.py
示例3: get_mako_return
def get_mako_return(self):
ret = serialize_node(self.project, Auth(self.user), primary=True)
ret.update({
'error': '',
'provider': '',
'file_path': '',
'sharejs_uuid': '',
'private': '',
'urls': {
'files': '',
'render': '',
'sharejs': '',
'mfr': '',
'profile_image': '',
'external': '',
'archived_from': '',
},
'size': '',
'extra': '',
'file_name': '',
'materialized_path': '',
'file_id': '',
})
ret.update(rubeus.collect_addon_assets(self.project))
return ret
开发者ID:leb2dg,项目名称:osf.io,代码行数:25,代码来源:test_addons.py
示例4: get_mako_return
def get_mako_return(self):
ret = serialize_node(self.project, Auth(self.user), primary=True)
ret.update(
{
"error": "",
"provider": "",
"file_path": "",
"sharejs_uuid": "",
"private": "",
"urls": {
"files": "",
"render": "",
"sharejs": "",
"mfr": "",
"gravatar": "",
"external": "",
"archived_from": "",
},
"size": "",
"extra": "",
"file_name": "",
"materialized_path": "",
"file_id": "",
}
)
ret.update(rubeus.collect_addon_assets(self.project))
return ret
开发者ID:ycchen1989,项目名称:osf.io,代码行数:27,代码来源:test_addons.py
示例5: addon_view_file
def addon_view_file(auth, node, node_addon, file_guid, extras):
render_url = node.api_url_for(
'addon_render_file',
path=file_guid.waterbutler_path.lstrip('/'),
provider=file_guid.provider,
render=True,
**extras
)
ret = serialize_node(node, auth, primary=True)
# Disable OSF Storage file deletion in DISK_SAVING_MODE
if settings.DISK_SAVING_MODE and node_addon.config.short_name == 'osfstorage':
ret['user']['can_edit'] = False
ret.update({
'provider': file_guid.provider,
'render_url': render_url,
'file_path': file_guid.waterbutler_path,
'files_url': node.web_url_for('collect_file_trees'),
'rendered': get_or_start_render(file_guid),
# Note: must be called after get_or_start_render. This is really only for github
'extra': json.dumps(getattr(file_guid, 'extra', {})),
#NOTE: get_or_start_render must be called first to populate name
'file_name': getattr(file_guid, 'name', os.path.split(file_guid.waterbutler_path)[1]),
})
ret.update(rubeus.collect_addon_assets(node))
return ret
开发者ID:erinmayhood,项目名称:osf.io,代码行数:29,代码来源:views.py
示例6: addon_deleted_file
def addon_deleted_file(auth, node, **kwargs):
"""Shows a nice error message to users when they try to view
a deleted file
"""
# Allow file_node to be passed in so other views can delegate to this one
trashed = kwargs.get("file_node") or TrashedFileNode.load(kwargs.get("trashed_id"))
if not trashed:
raise HTTPError(httplib.NOT_FOUND, {"message_short": "Not Found", "message_long": "This file does not exist"})
ret = serialize_node(node, auth, primary=True)
ret.update(rubeus.collect_addon_assets(node))
ret.update(
{
"urls": {
"render": None,
"sharejs": None,
"mfr": settings.MFR_SERVER_URL,
"gravatar": get_gravatar(auth.user, 25),
"files": node.web_url_for("collect_file_trees"),
},
"extra": {},
"size": 9966699, # Prevent file from being editted, just in case
"sharejs_uuid": None,
"file_name": trashed.name,
"file_path": trashed.path,
"provider": trashed.provider,
"materialized_path": trashed.materialized_path,
"error": FILE_GONE_ERROR_MESSAGE.format(file_name=trashed.name),
"private": getattr(node.get_addon(trashed.provider), "is_private", False),
}
)
return ret, httplib.GONE
开发者ID:mattspitzer,项目名称:osf.io,代码行数:33,代码来源:views.py
示例7: view_project
def view_project(auth, node, **kwargs):
primary = "/api/v1" not in request.path
ret = _view_project(node, auth, primary=primary)
ret["addon_capabilities"] = settings.ADDON_CAPABILITIES
# Collect the URIs to the static assets for addons that have widgets
ret["addon_widget_js"] = list(collect_addon_js(node, filename="widget-cfg.js", config_entry="widget"))
ret.update(rubeus.collect_addon_assets(node))
return ret
开发者ID:njantrania,项目名称:osf.io,代码行数:8,代码来源:node.py
示例8: collect_file_trees
def collect_file_trees(auth, node, **kwargs):
"""Collect file trees for all add-ons implementing HGrid views, then
format data as appropriate.
"""
serialized = _view_project(node, auth, primary=True)
# Add addon static assets
serialized.update(rubeus.collect_addon_assets(node))
return serialized
开发者ID:CenterForOpenScience,项目名称:osf.io,代码行数:8,代码来源:file.py
示例9: addon_view_file
def addon_view_file(auth, node, node_addon, guid_file, extras):
# TODO: resolve circular import issue
from website.addons.wiki import settings as wiki_settings
ret = serialize_node(node, auth, primary=True)
# Disable OSF Storage file deletion in DISK_SAVING_MODE
if settings.DISK_SAVING_MODE and node_addon.config.short_name == 'osfstorage':
ret['user']['can_edit'] = False
try:
guid_file.enrich()
except exceptions.AddonEnrichmentError as e:
error = e.as_html()
else:
error = None
if guid_file._id not in node.file_guid_to_share_uuids:
node.file_guid_to_share_uuids[guid_file._id] = uuid.uuid4()
node.save()
if ret['user']['can_edit']:
sharejs_uuid = str(node.file_guid_to_share_uuids[guid_file._id])
else:
sharejs_uuid = None
size = getattr(guid_file, 'size', None)
if size is None: # Size could be 0 which is a falsey value
size = 9966699 # if we dont know the size assume its to big to edit
ret.update({
'error': error.replace('\n', '') if error else None,
'provider': guid_file.provider,
'file_path': guid_file.waterbutler_path,
'panels_used': ['edit', 'view'],
'private': getattr(node_addon, 'is_private', False),
'sharejs_uuid': sharejs_uuid,
'urls': {
'files': node.web_url_for('collect_file_trees'),
'render': guid_file.mfr_render_url,
'sharejs': wiki_settings.SHAREJS_URL,
'mfr': settings.MFR_SERVER_URL,
'gravatar': get_gravatar(auth.user, 25),
'external': getattr(guid_file, 'external_url', None)
},
# Note: must be called after get_or_start_render. This is really only for github
'size': size,
'extra': getattr(guid_file, 'extra', {}),
#NOTE: get_or_start_render must be called first to populate name
'file_name': getattr(guid_file, 'name', os.path.split(guid_file.waterbutler_path)[1]),
'materialized_path': getattr(guid_file, 'materialized', guid_file.waterbutler_path),
})
ret.update(rubeus.collect_addon_assets(node))
return ret
开发者ID:XTech2K,项目名称:osf.io,代码行数:55,代码来源:views.py
示例10: collect_file_trees
def collect_file_trees(**kwargs):
"""Collect file trees for all add-ons implementing HGrid views, then
format data as appropriate.
"""
node = kwargs['node'] or kwargs['project']
auth = kwargs['auth']
serialized = _view_project(node, auth)
# Add addon static assets
serialized.update(rubeus.collect_addon_assets(node))
return serialized
开发者ID:saradbowman,项目名称:osf.io,代码行数:11,代码来源:file.py
示例11: addon_view_file
def addon_view_file(auth, node, file_node, version):
# TODO: resolve circular import issue
from website.addons.wiki import settings as wiki_settings
if isinstance(version, tuple):
version, error = version
error = error.replace("\n", "").strip()
else:
error = None
ret = serialize_node(node, auth, primary=True)
if file_node._id not in node.file_guid_to_share_uuids:
node.file_guid_to_share_uuids[file_node._id] = uuid.uuid4()
node.save()
if ret["user"]["can_edit"]:
sharejs_uuid = str(node.file_guid_to_share_uuids[file_node._id])
else:
sharejs_uuid = None
download_url = furl.furl(request.url.encode("utf-8")).set(
args=dict(request.args, **{"direct": None, "mode": "render", "action": "download"})
)
render_url = furl.furl(settings.MFR_SERVER_URL).set(path=["render"], args={"url": download_url.url})
ret.update(
{
"urls": {
"render": render_url.url,
"mfr": settings.MFR_SERVER_URL,
"sharejs": wiki_settings.SHAREJS_URL,
"gravatar": get_gravatar(auth.user, 25),
"files": node.web_url_for("collect_file_trees"),
},
"error": error,
"file_name": file_node.name,
"file_name_title": os.path.splitext(file_node.name)[0],
"file_name_ext": os.path.splitext(file_node.name)[1],
"file_path": file_node.path,
"sharejs_uuid": sharejs_uuid,
"provider": file_node.provider,
"materialized_path": file_node.materialized_path,
"extra": version.metadata.get("extra", {}),
"size": version.size if version.size is not None else 9966699,
"private": getattr(node.get_addon(file_node.provider), "is_private", False),
"file_tags": [tag._id for tag in file_node.tags],
}
)
ret.update(rubeus.collect_addon_assets(node))
return ret
开发者ID:mattspitzer,项目名称:osf.io,代码行数:53,代码来源:views.py
示例12: get_mako_return
def get_mako_return(self):
ret = serialize_node(self.project, Auth(self.user), primary=True)
ret.update({
'extra': '',
'provider': '',
'rendered': '',
'file_path': '',
'files_url': '',
'file_name': '',
'render_url': '',
})
ret.update(rubeus.collect_addon_assets(self.project))
return ret
开发者ID:akrit19,项目名称:osf.io,代码行数:13,代码来源:test_addons.py
示例13: view_project
def view_project(**kwargs):
auth = kwargs['auth']
node = kwargs['node'] or kwargs['project']
primary = '/api/v1' not in request.path
ret = _view_project(node, auth, primary=primary)
ret['addon_capabilities'] = settings.ADDON_CAPABILITIES
# Collect the URIs to the static assets for addons that have widgets
ret['addon_widget_js'] = list(collect_addon_js(
node,
filename='widget-cfg.js',
config_entry='widget'
))
ret.update(rubeus.collect_addon_assets(node))
return ret
开发者ID:akrit19,项目名称:osf.io,代码行数:14,代码来源:node.py
示例14: view_project
def view_project(auth, node, **kwargs):
primary = '/api/v1' not in request.path
ret = _view_project(node, auth,
primary=primary,
embed_contributors=True,
embed_descendants=True
)
ret['addon_capabilities'] = settings.ADDON_CAPABILITIES
# Collect the URIs to the static assets for addons that have widgets
ret['addon_widget_js'] = list(collect_addon_js(
node,
filename='widget-cfg.js',
config_entry='widget'
))
ret.update(rubeus.collect_addon_assets(node))
access_request = node.requests.filter(creator=auth.user).exclude(machine_state='accepted')
ret['user']['access_request_state'] = access_request.get().machine_state if access_request else None
addons_widget_data = {
'wiki': None,
'mendeley': None,
'zotero': None,
'forward': None,
'dataverse': None
}
if 'wiki' in ret['addons']:
addons_widget_data['wiki'] = serialize_wiki_widget(node)
if 'dataverse' in ret['addons']:
addons_widget_data['dataverse'] = serialize_dataverse_widget(node)
if 'forward' in ret['addons']:
addons_widget_data['forward'] = serialize_forward_widget(node)
if 'zotero' in ret['addons']:
node_addon = node.get_addon('zotero')
zotero_widget_data = ZoteroCitationsProvider().widget(node_addon)
addons_widget_data['zotero'] = zotero_widget_data
if 'mendeley' in ret['addons']:
node_addon = node.get_addon('mendeley')
mendeley_widget_data = MendeleyCitationsProvider().widget(node_addon)
addons_widget_data['mendeley'] = mendeley_widget_data
ret.update({'addons_widget_data': addons_widget_data})
return ret
开发者ID:aaxelb,项目名称:osf.io,代码行数:49,代码来源:node.py
示例15: view_project
def view_project(auth, node, **kwargs):
primary = '/api/v1' not in request.path
ret = _view_project(node, auth,
primary=primary,
embed_contributors=True,
embed_descendants=True
)
ret['addon_capabilities'] = settings.ADDON_CAPABILITIES
# Collect the URIs to the static assets for addons that have widgets
ret['addon_widget_js'] = list(collect_addon_js(
node,
filename='widget-cfg.js',
config_entry='widget'
))
ret.update(rubeus.collect_addon_assets(node))
return ret
开发者ID:adlius,项目名称:osf.io,代码行数:17,代码来源:node.py
示例16: addon_deleted_file
def addon_deleted_file(auth, node, **kwargs):
"""Shows a nice error message to users when they try to view
a deleted file
"""
# Allow file_node to be passed in so other views can delegate to this one
trashed = kwargs.get('file_node') or TrashedFileNode.load(kwargs.get('trashed_id'))
if not trashed:
raise HTTPError(httplib.NOT_FOUND, {
'message_short': 'Not Found',
'message_long': 'This file does not exist'
})
ret = serialize_node(node, auth, primary=True)
ret.update(rubeus.collect_addon_assets(node))
error_template = FILE_SUSPENDED_ERROR_MESSAGE if getattr(trashed, 'suspended', False) else FILE_GONE_ERROR_MESSAGE
error = error_template.format(file_name=trashed.name)
ret.update({
'urls': {
'render': None,
'sharejs': None,
'mfr': settings.MFR_SERVER_URL,
'gravatar': get_gravatar(auth.user, 25),
'files': node.web_url_for('collect_file_trees'),
},
'extra': {},
'size': 9966699, # Prevent file from being editted, just in case
'sharejs_uuid': None,
'file_name': trashed.name,
'file_path': trashed.path,
'provider': trashed.provider,
'materialized_path': trashed.materialized_path,
'error': error,
'private': getattr(node.get_addon(trashed.provider), 'is_private', False),
'file_id': trashed._id,
# For the off chance that there is no GUID
'file_guid': getattr(trashed.get_guid(create=False), '_id', None),
'file_tags': [tag._id for tag in trashed.tags],
'file_name_ext': os.path.splitext(trashed.name)[1],
'file_name_title': os.path.splitext(trashed.name)[0],
'allow_comments': trashed.provider in settings.ADDONS_COMMENTABLE,
})
return ret, httplib.GONE
开发者ID:545zhou,项目名称:osf.io,代码行数:45,代码来源:views.py
示例17: addon_view_file
def addon_view_file(auth, node, node_addon, file_guid, extras):
render_url = node.api_url_for(
'addon_render_file',
path=file_guid.waterbutler_path.lstrip('/'),
provider=file_guid.provider,
render=True,
**extras
)
ret = serialize_node(node, auth, primary=True)
ret.update({
'provider': file_guid.provider,
'render_url': render_url,
'file_path': file_guid.waterbutler_path,
'files_url': node.web_url_for('collect_file_trees'),
'rendered': get_or_start_render(file_guid),
# Note: must be called after get_or_start_render. This is really only for github
'extra': json.dumps(getattr(file_guid, 'extra', {})),
#NOTE: get_or_start_render must be called first to populate name
'file_name': getattr(file_guid, 'name', os.path.split(file_guid.waterbutler_path)[1]),
})
ret.update(rubeus.collect_addon_assets(node))
return ret
开发者ID:crystallss,项目名称:osf.io,代码行数:24,代码来源:views.py
示例18: addon_view_file
def addon_view_file(auth, node, file_node, version):
# TODO: resolve circular import issue
from addons.wiki import settings as wiki_settings
if isinstance(version, tuple):
version, error = version
error = error.replace('\n', '').strip()
else:
error = None
ret = serialize_node(node, auth, primary=True)
if file_node._id + '-' + version._id not in node.file_guid_to_share_uuids:
node.file_guid_to_share_uuids[file_node._id + '-' + version._id] = uuid.uuid4()
node.save()
if ret['user']['can_edit']:
sharejs_uuid = str(node.file_guid_to_share_uuids[file_node._id + '-' + version._id])
else:
sharejs_uuid = None
internal_furl = furl.furl(settings.INTERNAL_DOMAIN)
download_url = furl.furl(request.url.encode('utf-8')).set(
netloc=internal_furl.netloc,
args=dict(request.args, **{
'direct': None,
'mode': 'render',
'action': 'download',
'public_file': node.is_public,
})
)
mfr_url = get_mfr_url(node, file_node.provider)
render_url = furl.furl(mfr_url).set(
path=['render'],
args={'url': download_url.url}
)
ret.update({
'urls': {
'render': render_url.url,
'mfr': mfr_url,
'sharejs': wiki_settings.SHAREJS_URL,
'profile_image': get_profile_image_url(auth.user, 25),
'files': node.web_url_for('collect_file_trees'),
'archived_from': get_archived_from_url(node, file_node) if node.is_registration else None,
},
'error': error,
'file_name': file_node.name,
'file_name_title': os.path.splitext(file_node.name)[0],
'file_name_ext': os.path.splitext(file_node.name)[1],
'version_id': version.identifier,
'file_path': file_node.path,
'sharejs_uuid': sharejs_uuid,
'provider': file_node.provider,
'materialized_path': file_node.materialized_path,
'extra': version.metadata.get('extra', {}),
'size': version.size if version.size is not None else 9966699,
'private': getattr(node.get_addon(file_node.provider), 'is_private', False),
'file_tags': list(file_node.tags.filter(system=False).values_list('name', flat=True)) if not file_node._state.adding else [], # Only access ManyRelatedManager if saved
'file_guid': file_node.get_guid()._id,
'file_id': file_node._id,
'allow_comments': file_node.provider in settings.ADDONS_COMMENTABLE,
'checkout_user': file_node.checkout._id if file_node.checkout else None,
'pre_reg_checkout': is_pre_reg_checkout(node, file_node),
})
ret.update(rubeus.collect_addon_assets(node))
return ret
开发者ID:aaxelb,项目名称:osf.io,代码行数:69,代码来源:views.py
示例19: addon_deleted_file
def addon_deleted_file(auth, target, error_type='BLAME_PROVIDER', **kwargs):
"""Shows a nice error message to users when they try to view a deleted file
"""
# Allow file_node to be passed in so other views can delegate to this one
file_node = kwargs.get('file_node') or TrashedFileNode.load(kwargs.get('trashed_id'))
deleted_by, deleted_on = None, None
if isinstance(file_node, TrashedFileNode):
deleted_by = file_node.deleted_by
deleted_by_guid = file_node.deleted_by._id if deleted_by else None
deleted_on = file_node.deleted_on.strftime('%c') + ' UTC'
if getattr(file_node, 'suspended', False):
error_type = 'FILE_SUSPENDED'
elif file_node.deleted_by is None or (auth.private_key and auth.private_link.anonymous):
if file_node.provider == 'osfstorage':
error_type = 'FILE_GONE_ACTOR_UNKNOWN'
else:
error_type = 'BLAME_PROVIDER'
else:
error_type = 'FILE_GONE'
else:
error_type = 'DONT_KNOW'
file_path = kwargs.get('path', file_node.path)
file_name = file_node.name or os.path.basename(file_path)
file_name_title, file_name_ext = os.path.splitext(file_name)
provider_full = settings.ADDONS_AVAILABLE_DICT[file_node.provider].full_name
try:
file_guid = file_node.get_guid()._id
except AttributeError:
file_guid = None
format_params = dict(
file_name=markupsafe.escape(file_name),
deleted_by=markupsafe.escape(getattr(deleted_by, 'fullname', None)),
deleted_on=markupsafe.escape(deleted_on),
provider=markupsafe.escape(provider_full)
)
if deleted_by:
format_params['deleted_by_guid'] = markupsafe.escape(deleted_by_guid)
error_msg = ERROR_MESSAGES[error_type].format(**format_params)
if isinstance(target, AbstractNode):
error_msg += format_last_known_metadata(auth, target, file_node, error_type)
ret = serialize_node(target, auth, primary=True)
ret.update(rubeus.collect_addon_assets(target))
ret.update({
'error': error_msg,
'urls': {
'render': None,
'sharejs': None,
'mfr': get_mfr_url(target, file_node.provider),
'profile_image': get_profile_image_url(auth.user, 25),
'files': target.web_url_for('collect_file_trees'),
},
'extra': {},
'size': 9966699, # Prevent file from being edited, just in case
'sharejs_uuid': None,
'file_name': file_name,
'file_path': file_path,
'file_name_title': file_name_title,
'file_name_ext': file_name_ext,
'target_deleted': getattr(target, 'is_deleted', False),
'version_id': None,
'file_guid': file_guid,
'file_id': file_node._id,
'provider': file_node.provider,
'materialized_path': file_node.materialized_path or file_path,
'private': getattr(target.get_addon(file_node.provider), 'is_private', False),
'file_tags': list(file_node.tags.filter(system=False).values_list('name', flat=True)) if not file_node._state.adding else [], # Only access ManyRelatedManager if saved
'allow_comments': file_node.provider in settings.ADDONS_COMMENTABLE,
})
else:
# TODO - serialize deleted metadata for future types of deleted file targets
ret = {'error': error_msg}
return ret, httplib.GONE
开发者ID:aaxelb,项目名称:osf.io,代码行数:77,代码来源:views.py
示例20: addon_deleted_file
def addon_deleted_file(auth, node, error_type='BLAME_PROVIDER', **kwargs):
"""Shows a nice error message to users when they try to view a deleted file
"""
# Allow file_node to be passed in so other views can delegate to this one
file_node = kwargs.get('file_node') or TrashedFileNode.load(kwargs.get('trashed_id'))
deleted_by, deleted_on = None, None
if isinstance(file_node, TrashedFileNode):
deleted_by = file_node.deleted_by
deleted_by_guid = file_node.deleted_by._id if deleted_by else None
deleted_on = file_node.deleted_on.strftime('%c') + ' UTC'
if file_node.suspended:
error_type = 'FILE_SUSPENDED'
elif file_node.deleted_by is None:
if file_node.provider == 'osfstorage':
error_type = 'FILE_GONE_ACTOR_UNKNOWN'
else:
error_type = 'BLAME_PROVIDER'
else:
error_type = 'FILE_GONE'
else:
error_type = 'DONT_KNOW'
file_path = kwargs.get('path', file_node.path)
file_name = file_node.name or os.path.basename(file_path)
file_name_title, file_name_ext = os.path.splitext(file_name)
provider_full = settings.ADDONS_AVAILABLE_DICT[file_node.provider].full_name
try:
file_guid = file_node.get_guid()._id
except AttributeError:
file_guid = None
format_params = dict(
file_name=markupsafe.escape(file_name),
deleted_by=markupsafe.escape(deleted_by),
deleted_on=markupsafe.escape(deleted_on),
provider=markupsafe.escape(provider_full)
)
if deleted_by:
format_params['deleted_by_guid'] = markupsafe.escape(deleted_by_guid)
ret = serialize_node(node, auth, primary=True)
ret.update(rubeus.collect_addon_assets(node))
ret.update({
'error': ERROR_MESSAGES[error_type].format(**format_params),
'urls': {
'render': None,
'sharejs': None,
'mfr': settings.MFR_SERVER_URL,
'gravatar': get_gravatar(auth.user, 25),
'files': node.web_url_for('collect_file_trees'),
},
'extra': {},
'size': 9966699, # Prevent file from being edited, just in case
'sharejs_uuid': None,
'file_name': file_name,
'file_path': file_path,
'file_name_title': file_name_title,
'file_name_ext': file_name_ext,
'version_id': None,
'file_guid': file_guid,
'file_id': file_node._id,
'provider': file_node.provider,
'materialized_path': file_node.materialized_path or file_path,
'private': getattr(node.get_addon(file_node.provider), 'is_private', False),
'file_tags': [tag._id for tag in file_node.tags],
'allow_comments': file_node.provider in settings.ADDONS_COMMENTABLE,
})
return ret, httplib.GONE
开发者ID:baylee-d,项目名称:osf.io,代码行数:70,代码来源:views.py
注:本文中的website.util.rubeus.collect_addon_assets函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论