示例#1
0
def get_preview_generic_image_tag(revision, alt_text):
    img_class = 'cover_img'
    if revision.image_file:
        width = min(revision.image_file.width, 400)
        return mark_safe('<img src="' + revision.scaled_image.url + '" alt="' + esc(alt_text) \
                + '" ' + ' class="' + img_class + '" width="' + str(width) + '"/>')
    elif revision.deleted:
        return get_generic_image_tag(revision.image, esc(alt_text))
    else:
        last_revision = ImageRevision.objects.filter(image=revision.image,
          changeset__change_type=CTYPES['image'],
          changeset__state=states.APPROVED).order_by('-created')[0]
        if revision==last_revision:
            # Current cover is the one from this revision, show it.
            return get_generic_image_tag(revision.image, esc(alt_text))
        else:
            if settings.BETA:
                return 'no old images on BETA'
def get_preview_generic_image_tag(revision, alt_text):
    img_class = 'cover_img'
    if revision.image_file:
        width = min(revision.image_file.width, 400)
        return mark_safe('<img src="' + revision.scaled_image.url + '" alt="' + esc(alt_text) \
                + '" ' + ' class="' + img_class + '" width="' + str(width) + '"/>')
    elif revision.deleted:
        return get_generic_image_tag(revision.image, esc(alt_text))
    else:
        last_revision = ImageRevision.objects.filter(image=revision.image,
          changeset__change_type=CTYPES['image'],
          changeset__state=states.APPROVED).order_by('-created')[0]
        if revision==last_revision:
            # Current cover is the one from this revision, show it.
            return get_generic_image_tag(revision.image, esc(alt_text))
        else:
            if settings.BETA:
                return 'no old images on BETA'
示例#3
0
def upload_image(request, model_name, id, image_type, image=None):
    from apps.oi.views import DISPLAY_CLASSES, REVISION_CLASSES
    """
    Handles uploading of supporting images
    """

    display_obj = get_object_or_404(DISPLAY_CLASSES[model_name], id=id,
                                    deleted=False)

    kwargs = None
    # replacement
    if image:
        if image.object != display_obj:
            return render_error(request,
              'Image and object id do not match.',
              redirect=False, is_safe=True)
        kwargs = {'upload_type': 'replacement', 'current_image': image,
          'current_image_tag': get_generic_image_tag(image, 'current image')}
    # check if there is an image if image_type.unique is set
    else:
        img_type = get_object_or_404(ImageType, name=image_type)
        if img_type.unique:
            if Image.objects.filter(content_type=\
              ContentType.objects.get_for_model(display_obj),
              object_id=display_obj.id, type=img_type, deleted=False).count():
                return render_error(request,
                  ('%s has an image. Further images cannot be added, '
                  'only replaced.') % (esc(display_obj)),
                  redirect=False, is_safe=True)

    # check if there is a pending object deletion
    filter_dict = {model_name : display_obj, 'deleted' : True,
                   'changeset__state__in' : states.ACTIVE}
    revision = REVISION_CLASSES[model_name].objects.filter(**filter_dict)
    if revision:
        revision = revision.get()
        return render_error(request,
          ('%s is <a href="%s">pending deletion</a>. Images '
          'cannot be added or modified.') % (esc(display_obj),
          urlresolvers.reverse('compare', kwargs={'id': revision.changeset.id})),
          redirect=False, is_safe=True)

    # current request is an upload
    if request.method == 'POST':
        if image:
            return handle_uploaded_image(request, display_obj, model_name,
                                         image_type, current_image=image)
        else:
            return handle_uploaded_image(request, display_obj, model_name,
                                         image_type)
    # request is a GET for the form
    else:
        form = UploadImageForm()
        # display the form
        return _display_image_upload_form(request, form, display_obj,
                                          model_name, image_type, kwargs=kwargs)
def upload_image(request, model_name, id, image_type, image=None):
    from apps.oi.views import DISPLAY_CLASSES, REVISION_CLASSES
    """
    Handles uploading of supporting images
    """

    display_obj = get_object_or_404(DISPLAY_CLASSES[model_name], id=id,
                                    deleted=False)

    kwargs = None
    # replacement
    if image:
        if image.object != display_obj:
            return render_error(request,
              'Image and object id do not match.',
              redirect=False, is_safe=True)
        kwargs = {'upload_type': 'replacement', 'current_image': image,
          'current_image_tag': get_generic_image_tag(image, 'current image')}
    # check if there is an image if image_type.unique is set
    else:
        img_type = get_object_or_404(ImageType, name=image_type)
        if img_type.unique:
            if Image.objects.filter(content_type=\
              ContentType.objects.get_for_model(display_obj),
              object_id=display_obj.id, type=img_type, deleted=False).count():
                return render_error(request,
                  ('%s has an image. Further images cannot be added, '
                  'only replaced.') % (esc(display_obj)),
                  redirect=False, is_safe=True)

    # check if there is a pending object deletion
    filter_dict = {model_name : display_obj, 'deleted' : True,
                   'changeset__state__in' : states.ACTIVE}
    revision = REVISION_CLASSES[model_name].objects.filter(**filter_dict)
    if revision:
        revision = revision.get()
        return render_error(request,
          ('%s is <a href="%s">pending deletion</a>. Images '
          'cannot be added or modified.') % (esc(display_obj),
          urlresolvers.reverse('compare', kwargs={'id': revision.changeset.id})),
          redirect=False, is_safe=True)

    # current request is an upload
    if request.method == 'POST':
        if image:
            return handle_uploaded_image(request, display_obj, model_name,
                                         image_type, current_image=image)
        else:
            return handle_uploaded_image(request, display_obj, model_name,
                                         image_type)
    # request is a GET for the form
    else:
        form = UploadImageForm()
        # display the form
        return _display_image_upload_form(request, form, display_obj,
                                          model_name, image_type, kwargs=kwargs)
示例#5
0
def issue_images(request, issue_id):
    """
    Display the images for a single issue on its own page.
    """

    issue = get_object_or_404(Issue, id=issue_id)

    if issue.deleted:
        return HttpResponseRedirect(
            urlresolvers.reverse('change_history',
                                 kwargs={
                                     'model_name': 'issue',
                                     'id': issue_id
                                 }))

    [prev_issue, next_issue] = issue.get_prev_next_issue()

    indicia_image = issue.indicia_image
    if indicia_image:
        indicia_tag = get_generic_image_tag(indicia_image, 'indicia scan')
    else:
        indicia_tag = None

    soo_image = issue.soo_image
    if soo_image:
        soo_tag = get_generic_image_tag(soo_image,
                                        'statement of ownership scan')
    else:
        soo_tag = None

    return render_to_response('gcd/details/issue_images.html', {
        'issue': issue,
        'prev_issue': prev_issue,
        'next_issue': next_issue,
        'indicia_tag': indicia_tag,
        'indicia_image': indicia_image,
        'soo_tag': soo_tag,
        'soo_image': soo_image,
        'extra': 'image/'
    },
                              context_instance=RequestContext(request))
示例#6
0
def issue_images(request, issue_id):
    """
    Display the images for a single issue on its own page.
    """

    issue = get_object_or_404(Issue, id=issue_id)

    if issue.deleted:
        return HttpResponseRedirect(
            urlresolvers.reverse("change_history", kwargs={"model_name": "issue", "id": issue_id})
        )

    [prev_issue, next_issue] = issue.get_prev_next_issue()

    indicia_image = issue.indicia_image
    if indicia_image:
        indicia_tag = get_generic_image_tag(indicia_image, "indicia scan")
    else:
        indicia_tag = None

    soo_image = issue.soo_image
    if soo_image:
        soo_tag = get_generic_image_tag(soo_image, "statement of ownership scan")
    else:
        soo_tag = None

    return render_to_response(
        "gcd/details/issue_images.html",
        {
            "issue": issue,
            "prev_issue": prev_issue,
            "next_issue": next_issue,
            "indicia_tag": indicia_tag,
            "indicia_image": indicia_image,
            "soo_tag": soo_tag,
            "soo_image": soo_image,
            "extra": "image/",
        },
        context_instance=RequestContext(request),
    )
示例#7
0
def issue_images(request, issue_id):
    """
    Display the images for a single issue on its own page.
    """

    issue = get_object_or_404(Issue, id = issue_id)

    if issue.deleted:
        return HttpResponseRedirect(urlresolvers.reverse('change_history',
          kwargs={'model_name': 'issue', 'id': issue_id}))

    [prev_issue, next_issue] = issue.get_prev_next_issue()

    indicia_image = issue.indicia_image
    if indicia_image:
        indicia_tag = get_generic_image_tag(indicia_image, 'indicia scan')
    else:
        indicia_tag = None

    soo_image = issue.soo_image
    if soo_image:
        soo_tag = get_generic_image_tag(soo_image, 'statement of ownership scan')
    else:
        soo_tag = None

    return render_to_response(
      'gcd/details/issue_images.html',
      {
        'issue': issue,
        'prev_issue': prev_issue,
        'next_issue': next_issue,
        'indicia_tag': indicia_tag,
        'indicia_image': indicia_image,
        'soo_tag': soo_tag,
        'soo_image': soo_image,
        'extra': 'image/'
      },
      context_instance=RequestContext(request)
    )