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 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 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))
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), )
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) )