def test_publish_badge(self): badge = badge_api.create_badge(*self.badge_values) badges = badge_api.get_published_badges() self.assertTrue(len(badges) == 0) badges = badge_api.get_user_draft_badges(badge['author_uri']) self.assertTrue(len(badges) == 1) badge_api.publish_badge(badge['uri']) self.assertRaises(Exception, badge_api.update_badge, [badge['uri']], {'title':'Updated title'}) badges = badge_api.get_published_badges() self.assertTrue(len(badges) == 1) badges = badge_api.get_user_draft_badges(badge['uri']) self.assertTrue(len(badges) == 0)
def review(request): """ This view shows a list of projects for a user that he/she can submit feedback on """ user = request.session.get('user') projects = [] if user: user_badges = badge_api.get_user_earned_badges(user['uri']) for badge in user_badges: projects += project_api.get_projects_ready_for_feedback(badge['uri']) badges = [] feedback_list = [] if len(projects) == 0: badges = badge_api.get_published_badges() else: for project in projects: feedback_list = project_api.get_project_feedback(project['uri']) fetch_resources(project, feedback_list) return render_to_response( 'project/review.html', { 'projects': map(fetch_resources, projects), 'badges': map(fetch_badge_resources, badges) }, context_instance=RequestContext(request) )
def home(request): context = {} context['badges'] = map(fetch_badge_resources, badge_api.get_published_badges())[-5:] context['projects'] = map(fetch_project_resources, project_api.get_projects())[-10:] context['users'] = p2pu_user_api.get_users()[-20:] return render_to_response('landing/home.html', context, context_instance=RequestContext(request))
def browse_all_badges(request): badges = badge_api.get_published_badges() for badge in badges: fetch_badge_resources(badge) paginator = Paginator(badges, 10) # Show 10 badges per page page = request.GET.get('page') try: badges = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. badges = paginator.page(1) except EmptyPage: return HttpResponse(status=404) if request.is_ajax(): return render_to_response('landing/browse_badges.html',{'badges': badges}, context_instance=RequestContext(request)) return render_to_response( 'landing/list_badges.html',{ 'badges': badges, }, context_instance=RequestContext(request) )
def test_publish_badge(self): badge = badge_api.create_badge(**self.BADGE_MOCK_ATTRIBUTES) badges = badge_api.get_published_badges() self.assertTrue(len(badges) == 0) badges = badge_api.get_user_draft_badges(badge['author_uri']) self.assertTrue(len(badges) == 1) badge_api.publish_badge(badge['uri']) self.assertRaises(Exception, badge_api.update_badge, [badge['uri']], {'title':'Updated title'}) badges = badge_api.get_published_badges() self.assertEqual(len(badges), 1) badges = badge_api.get_user_draft_badges(badge['author_uri']) self.assertEqual(len(badges), 0) badges = badge_api.get_user_created_badges(badge['author_uri']) self.assertEqual(len(badges), 1)
def get_filtered_badges(option): if option == 'popular': badges = [] items = sort_badge_uris_by_attached_projects()[:12] for item in items: badges.append(get_badge(item['badge_uri'])) elif option == 'new': badges = last_n_published_badges(12) elif option == 'featured': badges = get_featured_badges() else: badges = get_published_badges() return map(fetch_badge_resources, badges)