def user_project_badges_list(request,username,projectname,rendertype='html'): user = get_object_or_404(User, username=username) project_names = projectname.split(',') projects = Project.objects.filter(name__in=project_names) total_points = 0 badges = [] tags = {} for project in projects: #Find all badges from the project projbadges = ProjectBadge.objects.filter(project=project).order_by('badge__level') prefix = 'https://' if request.is_secure() else 'http://' url = prefix + request.get_host() + settings.STATIC_URL #TODO: Find list of points for Leaderboard #Get list of badges user has badges = badges + project_badge_count(user,project,projbadges,url) for pb in projbadges: tag_list = pb.tags if tag_list: tag_list = tag_list.lower().split(",") for tag in tag_list: tag = tag.strip() if tags.has_key(tag): tags[tag] += 1 else: tags[tag] = 1 #Count all the values of user's points pbtu = ProjectBadgeToUser.objects.filter(user__username=username,projectbadge__project=project) for userbadge in pbtu: total_points += userbadge.projectbadge.awardLevel rendertype = rendertype or request.accepted_renderer.format if rendertype == 'html': data = {'profile': badges, 'points':total_points, 'tags':tags} return Response(data, template_name='core/badge_list.html') #JSON badge_detail_list = [] for bi in badges: bstr = '{ "name":"%s", "awarded":%d, "url":"%s" }' % \ ( bi['projectbadge__name'], bi['count'], bi['projectbadge__badge__icon']) badge_detail_list.append(json.loads(bstr)) return Response(badge_detail_list)
def projects(request, *args, **kwargs): if request.method == 'GET': try: user = get_object_or_404(User,username=kwargs['username']) project = get_object_or_404(Project,name=kwargs['projectname']) except Http404, e: context = { 'message' : e.__str__().split()[1] + ' not found' } return HttpResponse(json.dumps(context),'application/json',404) projbadges = ProjectBadge.objects.filter(project=project) badge_info = project_badge_count(user,project,projbadges) badge_detail_list = [] for bi in badge_info: bstr = '{ "name":"%s", "awarded":%d, "url":"%s"}' % \ ( bi['projectbadge__name'], bi['count'], bi['projectbadge__badge__icon']) badge_detail_list.append(json.loads(bstr)) resp = '{"username":"******", "badges":%s}' % (user.username, json.dumps(badge_detail_list)) return HttpResponse(resp, mimetype="application/json")
def user_project_badges_list(request,username,projectname): user = get_object_or_404(User, username=username) project = get_object_or_404(Project, name=projectname) projbadges = ProjectBadge.objects.filter(project=project).order_by('badge__level') prefix = 'https://' if request.is_secure() else 'http://' url = prefix + request.get_host() + settings.STATIC_URL badges = project_badge_count(user,project,projbadges,url) if request.accepted_renderer.format == 'html': data = {'profile': badges} return Response(data, template_name='core/badge_list.html') #JSON badge_detail_list = [] for bi in badges: bstr = '{ "name":"%s", "awarded":%d, "url":"%s"}' % \ ( bi['projectbadge__name'], bi['count'], bi['projectbadge__badge__icon']) badge_detail_list.append(json.loads(bstr)) return Response(badge_detail_list)