def test_get_not_existant_image(self): image_uri = media_api._get_image_uri(99999) try: media_api.get_image(image_uri) except media_api.GetImageError: return except: pass self.assertTrue(False, 'GetImageError not raised')
def oembed(request): # Extract GET parameters url = request.GET.get('url', None) if not settings.DEBUG: valid_url = check_if_url_is_valid(url) if not valid_url: return HttpResponseNotFound(status=404) url = set_url_to_relative(url) maxwidth = request.GET.get('maxwidth', '100%') maxheight = request.GET.get('maxheight', 180) username = request.GET.get('username', None) badge_id = get_badge_id_from_parameter_url(url) badge = get_badge_by_id(badge_id) author_url = badge['author_uri'] author_name = uri2username(badge['author_uri']) image_url = get_image(badge['image_uri'])['url'].split('/')[-1] response_badge = create_response_from_template( id=badge['id'], title=badge['title'], badge_url=url, badge_image=image_url, badge_description=badge['description'], badge_requirements=badge['requirements'], author_url=author_url, author_name=author_name, maxwidth=maxwidth, maxheight=maxheight, username=username, ) json_badge = json.dumps(response_badge) return HttpResponse(json_badge, mimetype="application/json")
def get_assertion(request, uid): """ Handle badge assertion requests. """ award = get_object_or_404(Award, pk=uid) if award.ob_state=='REVOKED': return HttpResponseGone('{"revoked": true}', mimetype="application/json") badge = award.badge recipient_email = get_user(award.user_uri)['email'] image = get_image(badge.image_uri) assertion = create_assertion_from_template( uid=uid, recipient_email=recipient_email, image=image['url'], evidence=award.evidence_url, issued_on=award.date_awarded, badge_id=badge.pk, ) json_assertion = json.dumps(assertion) return HttpResponse(json_assertion, mimetype="application/json")
def fetch_resources(project, feedback_list=None): project['image'] = get_image(project['image_uri']) project['author'] = get_user(project['author_uri']) project['badge'] = get_badge(project['badge_uri']) fetch_badge_resources(project['badge']) if feedback_list: add_feedback_to_project(feedback_list, project) return project
def edit(request, badge_id): user_uri = request.session['user']['uri'] user = p2pu_user_api.get_user(user_uri) user_partner = user['partner'] badge = badge_api.get_badge(badge_api.id2uri(badge_id)) if not user_uri == badge['author_uri']: messages.error(request, _('You cannot edit someone elses badge!')) return http.HttpResponseRedirect(reverse( 'badge_preview', args=(badge_id,) )) if request.method == 'POST': form = BadgeForm(request.POST, request.FILES, user_uri=user_uri, editing=True, published=badge['published']) else: form = BadgeForm(badge, user_uri=user_uri, editing=True, published=badge['published']) if request.method == 'POST' and form.is_valid(): try: updated = {} if 'image_uri' in request.FILES: image = media_api.upload_image( request.FILES['image_uri'], request.session['user']['uri'], media_root=settings.MEDIA_ROOT, ) updated['image_uri'] = image['uri'] for attr in ['title', 'description', 'requirements']: if not badge[attr] == form.cleaned_data[attr]: updated[attr] = form.cleaned_data[attr] badge = badge_api.update_badge(badge['uri'], **updated) if badge['published']: return http.HttpResponseRedirect( reverse('badge_view', args=(badge_api.uri2id(badge['uri']),)) ) return http.HttpResponseRedirect( reverse('badge_preview', args=(badge_api.uri2id(badge['uri']),)) ) except badge_api.DuplicateTitleError: form.errors['title'] = [_('Badge title needs to be unique'), ] return render_to_response( 'badge/badge_info/edit.html', { 'badge': badge, 'form': form, 'user_is_partner': user_partner, 'existing_img': media_api.get_image(badge['image_uri']), }, context_instance=RequestContext(request))
def get_badge(request, badge_id): """ Handles badge requests. """ badge = get_object_or_404(Badge, pk=badge_id) image = get_image(badge.image_uri) criteria = reverse_url('badge_view', args=[badge_id]) badge = create_badge_from_template( name = badge.title, description = badge.description, image = image['url'], criteria = criteria, ) json_badge = json.dumps(badge) return HttpResponse(json_badge, mimetype="application/json")
def fetch_badge_resources(badge): badge['image'] = get_image(badge['image_uri']) badge['author'] = get_user(badge['author_uri']) badge['url'] = settings.ORGANISATION_URL + reverse('badge_view', args=(badge['id'],)) return badge