def show_group(request):
# a regular user will have their groups listed
# admin will see all groups
user = request.user
group = request.db_session.query(LedGroup).filter(LedGroup.id == request.matchdict['group_id']).first()
users = request.db_session.query(LedGroupUser).filter(LedGroupUser.led_group == group).all()
if not (user.admin or user.id in pluck(users, 'led_user_id')):
raise exc.HTTPForbidden("Only site admins or group members can view this")
schedule = request.db_session.query(LedSchedule).filter(LedSchedule.led_group == group).order_by(LedSchedule.position.asc()).all()
subquery = request.db_session.query(LedGroupUser.led_user_id).filter(LedGroupUser.led_group == group)
other_users = request.db_session.query(LedUser).filter(~LedUser.id.in_(subquery))
subquery = request.db_session.query(LedSchedule.led_plugin_id).filter(LedSchedule.led_group == group)
# other_plugins = request.db_session.query(LedPlugin).filter(~LedPlugin.id.in_(subquery))
other_plugins = request.db_session.query(LedPlugin)
return {
'group': group,
'users': users,
'schedule': schedule,
'other_users': other_users,
'other_plugins': other_plugins,
'group_admin': can_modify_group(request, group.id, False)
}
评论列表
文章目录