Пример #1
0
 def render(self, context):
     try:
         manager = self.manager.resolve(context)
         user = self.user.resolve(context)
         if user.__class__ == cUser and manager.__class__ == cUser:
             context[self.varname] = is_manager(manager, user)
         return ''
     except template.VariableDoesNotExist:
         return ''
Пример #2
0
def user_metrics(request, username):
    """display user metrics page"""
#    TODO: only group administrators can view user metrics
    mm = MessageManager(request)
    try:
        u = cUser.objects.get(username=username)
    except cUser.DoesNotExist:    
        u = get_object_or_404(User, username=username)
    has_permission_to_see_metrics = False
    if request.user.is_authenticated() and request.user.username == username:
        has_permission_to_see_metrics = True
    elif is_manager(request.user, u):
        has_permission_to_see_metrics = True
    if has_permission_to_see_metrics:
        return render(request, 'accounts/user/metrics.html', {'profile_user':u}, mm.messages())
    else:
        #raise Http404
        mm.set_notice("you do not have permission to view that page")
        return redirect(request.META.get('HTTP_REFERER','/'))
Пример #3
0
def users(request, username):
    """display the user account page"""
    # prepare messages
    mm = MessageManager(request)
    try:
        u = cUser.objects.get(username=username)
        fav = u.favorites
    except cUser.DoesNotExist:
        u = get_object_or_404(User, username=username)
        fav = None
    dict_content = {}
    dict_content['links'] = Link.objects.filter(user=u)
    dict_content['discussions'] = Discussion.objects.filter(user=u)
    dict_content['code_packages'] = CodePackage.objects.filter(user=u)
    dict_content['groups'] = u.groups.all()
    dict_content['curriculums'] = Curriculum.objects.filter(user=u)
    manager = is_manager(request.user, u)
    tasks = None
    if request.user.username == u.username:
        tasks = Task.objects.filter(author=u)
    return render(request, 'accounts/user/profile.html', {'tasks':tasks, 'profile_user':u, 'profile_favorites':fav, 'profile_content':dict_content, 'is_user_manager':manager}, mm.messages())