Example #1
0
 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')
Example #2
0
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")
Example #3
0
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")
Example #4
0
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
Example #5
0
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))
Example #6
0
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")
Example #7
0
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