示例#1
0
文件: views.py 项目: ejaury/connectus
def detail(req, course_id):
  default_url = req.GET.get('url')
  default_selected_id = "view_grades"
  if not default_url:
    default_url = reverse('connectus.courses.views.grades',
                          args=[course_id])
    if Util.is_in_group(req.user, 'Student'):
      default_url = reverse('connectus.courses.views.view_own_grades',
                            args=[course_id])

  try:
    view_func, args, kwargs = resolve(default_url)
    view_name = Util.construct_module_name(view_func)
    selected_cls_menu_id = \
      ViewMenuMapping.class_submenu_mapping.get(view_name, default_selected_id)
  except:
    selected_cls_menu_id = default_selected_id 

  course = Course.objects.get(id=course_id)
  #TODO: change default by passing view name through GET param
  permitted_actions = NavigationTree.get_class_detail(req.user.groups.all())
  return render_to_response('courses/grades.html', {
                              'course_id': course_id,
                              'course_title': course.title,
                              'default_url': default_url,
                              'permitted_actions': permitted_actions,
                              'selected_cls_menu_id': selected_cls_menu_id,
                            },
                            context_instance=RequestContext(req))
示例#2
0
def navigation_view_solver(request):
  view_func, args, kwargs = resolve(request.path)
  view_name = Util.construct_module_name(view_func)
  selected_id = ViewMenuMapping.mapping.get(view_name, '')
  # construct navigation tree path
  tree_path = NavigationTree.get_nav_tree_path(view_name)
  reversed_tree_path = reverse_path(tree_path, kwargs.values())
  # presumably, if we can't find a path for this view, we're actually
  # coming from a view that we recognize 
  if not reversed_tree_path:
    last = NavTreeState.get_last()
    # worse case, we can't recognize a view name and we dont have any prev state
    # use Home in tree 
    reversed_tree_path = last if last else [('Home', '/')] 
  else:
    NavTreeState.save(reversed_tree_path)
  if kwargs and selected_id.endswith('_'):
    if len(kwargs) == 1:
      selected_id += kwargs.values()[0]
  return {
    'selected_id': selected_id,
    'tree_path': reversed_tree_path,
  }