本文整理汇总了Python中website.models.Node.find_for_user方法的典型用法代码示例。如果您正苦于以下问题:Python Node.find_for_user方法的具体用法?Python Node.find_for_user怎么用?Python Node.find_for_user使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类website.models.Node
的用法示例。
在下文中一共展示了Node.find_for_user方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: find_dashboard
# 需要导入模块: from website.models import Node [as 别名]
# 或者: from website.models.Node import find_for_user [as 别名]
def find_dashboard(user):
dashboard_folder = Node.find_for_user(user, subquery=Q("is_dashboard", "eq", True))
if dashboard_folder.count() == 0:
new_dashboard(user)
dashboard_folder = Node.find_for_user(user, Q("is_dashboard", "eq", True))
return dashboard_folder[0]
示例2: get_dashboard_nodes
# 需要导入模块: from website.models import Node [as 别名]
# 或者: from website.models.Node import find_for_user [as 别名]
def get_dashboard_nodes(auth):
"""Get summary information about the current user's dashboard nodes.
:param-query no_components: Exclude components from response.
NOTE: By default, components will only be shown if the current user
is contributor on a comonent but not its parent project. This query
parameter forces ALL components to be excluded from the request.
:param-query permissions: Filter upon projects for which the current user
has the specified permissions. Examples: 'write', 'admin'
"""
user = auth.user
nodes = Node.find_for_user(
user,
subquery=(
Q("category", "eq", "project")
& Q("is_deleted", "eq", False)
& Q("is_registration", "eq", False)
& Q("is_folder", "eq", False)
),
)
if request.args.get("no_components") not in [True, "true", "True", "1", 1]:
comps = Node.find_for_user( # NOTE - this used to be a find on nodes above. Does this mess it up?
user,
(
# components only
Q("category", "ne", "project")
&
# exclude deleted nodes
Q("is_deleted", "eq", False)
&
# exclude registrations
Q("is_registration", "eq", False)
),
)
else:
comps = []
nodes = list(nodes) + list(comps)
if request.args.get("permissions"):
perm = request.args["permissions"].strip().lower()
if perm not in permissions.PERMISSIONS:
raise HTTPError(
http.BAD_REQUEST,
dict(
message_short="Invalid query parameter",
message_long="{0} is not in {1}".format(perm, permissions.PERMISSIONS),
),
)
response_nodes = [node for node in nodes if node.has_permission(user, permission=perm)]
else:
response_nodes = nodes
return _render_nodes(response_nodes, auth)
示例3: count_user_nodes
# 需要导入模块: from website.models import Node [as 别名]
# 或者: from website.models.Node import find_for_user [as 别名]
def count_user_nodes(users=None):
users = users or get_active_users()
return [
Node.find_for_user(
user,
subquery=CONTENT_NODE_QUERY
).count()
for user in users
]
示例4: get_all_projects_smart_folder
# 需要导入模块: from website.models import Node [as 别名]
# 或者: from website.models.Node import find_for_user [as 别名]
def get_all_projects_smart_folder(auth, **kwargs):
# TODO: Unit tests
user = auth.user
contributed = Node.find_for_user(
user, subquery=(Q("is_deleted", "eq", False) & Q("is_registration", "eq", False) & Q("is_folder", "eq", False))
)
nodes = contributed.sort("title")
keys = nodes.get_keys()
return [rubeus.to_project_root(node, auth, **kwargs) for node in nodes if node.parent_id not in keys]
示例5: get_all_registrations_smart_folder
# 需要导入模块: from website.models import Node [as 别名]
# 或者: from website.models.Node import find_for_user [as 别名]
def get_all_registrations_smart_folder(auth, **kwargs):
# TODO: Unit tests
user = auth.user
contributed = Node.find_for_user(
user, subquery=(Q("is_deleted", "eq", False) & Q("is_registration", "eq", True) & Q("is_folder", "eq", False))
)
nodes = contributed.sort("-title")
# Note(hrybacki): is_retracted and is_pending_embargo are property methods
# and cannot be directly queried
nodes = filter(lambda node: not node.is_retracted and not node.is_pending_embargo, nodes)
keys = [node._id for node in nodes]
return [rubeus.to_project_root(node, auth, **kwargs) for node in nodes if node.ids_above.isdisjoint(keys)]
示例6: count_user_nodes
# 需要导入模块: from website.models import Node [as 别名]
# 或者: from website.models.Node import find_for_user [as 别名]
def count_user_nodes(users=None):
users = users or get_active_users()
return [
len(
Node.find_for_user(
user,
(
Q('is_deleted', 'eq', False) &
Q('is_collection', 'ne', True)
)
)
)
for user in users
]