Use a picture format for ticketing
Instead of analyzing image size using the local file, rely on a processed image of the appropriate dimensions. Resolves #1828
This commit is contained in:
parent
e01d849374
commit
710010cb76
3 changed files with 14 additions and 15 deletions
|
|
@ -1,3 +1,5 @@
|
||||||
|
require 'open-uri'
|
||||||
|
|
||||||
class TicketPdf < Prawn::Document
|
class TicketPdf < Prawn::Document
|
||||||
def initialize(conference, user, physical_ticket, ticket_layout, file_name)
|
def initialize(conference, user, physical_ticket, ticket_layout, file_name)
|
||||||
super(page_layout: ticket_layout, page_size: 'A4', filename: file_name)
|
super(page_layout: ticket_layout, page_size: 'A4', filename: file_name)
|
||||||
|
|
@ -43,11 +45,17 @@ class TicketPdf < Prawn::Document
|
||||||
def draw_second_square
|
def draw_second_square
|
||||||
move_up 150
|
move_up 150
|
||||||
if @conference.picture?
|
if @conference.picture?
|
||||||
if 7 * @conference.picture.image[:width] > 12 * @conference.picture.image[:height]
|
conference_image = case @conference.picture.ticket.url[0, 4]
|
||||||
image "#{Rails.root}/public#{@conference.picture_url}", at: [@mid_horizontal + 30, cursor], width: 120
|
when 'http', 'ftp:' # CDNs
|
||||||
else
|
open(@conference.picture.ticket.url)
|
||||||
image "#{Rails.root}/public#{@conference.picture_url}", at: [@mid_horizontal + 30, cursor], height: 70
|
when '/sys' # local storage
|
||||||
end
|
open([
|
||||||
|
Rails.root,
|
||||||
|
'/public',
|
||||||
|
@conference.picture.ticket.url
|
||||||
|
].join)
|
||||||
|
end
|
||||||
|
image conference_image, at: [@mid_horizontal + 30, cursor]
|
||||||
else
|
else
|
||||||
image "#{Rails.root}/public/img/osem-logo.png", at: [@mid_horizontal + 30, cursor], height: 70
|
image "#{Rails.root}/public/img/osem-logo.png", at: [@mid_horizontal + 30, cursor], height: 70
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -52,10 +52,6 @@ class PictureUploader < CarrierWave::Uploader::Base
|
||||||
"system/#{object_class_name}/#{mounted_as}/#{model.id}"
|
"system/#{object_class_name}/#{mounted_as}/#{model.id}"
|
||||||
end
|
end
|
||||||
|
|
||||||
def image
|
|
||||||
@image ||= MiniMagick::Image.open(file.file)
|
|
||||||
end
|
|
||||||
|
|
||||||
# Create different versions of your uploaded files:
|
# Create different versions of your uploaded files:
|
||||||
version :large do
|
version :large do
|
||||||
process resize_to_fit: [300, 300]
|
process resize_to_fit: [300, 300]
|
||||||
|
|
|
||||||
|
|
@ -31,12 +31,7 @@
|
||||||
= @user.email
|
= @user.email
|
||||||
.col-md-5.col-md-offset-2.box.well
|
.col-md-5.col-md-offset-2.box.well
|
||||||
- if @conference.picture?
|
- if @conference.picture?
|
||||||
- width = @conference.picture.image[:width]
|
= image_tag(@conference.picture.ticket.url, class: 'img-responsive')
|
||||||
- height = @conference.picture.image[:height]
|
|
||||||
- if 10 * width > 15 * height
|
|
||||||
= image_tag(@conference.picture_url, width: '150')
|
|
||||||
- else
|
|
||||||
= image_tag(@conference.picture_url, height: '100')
|
|
||||||
- else
|
- else
|
||||||
= image_tag('/img/osem-logo.png', class: 'img-responsive')
|
= image_tag('/img/osem-logo.png', class: 'img-responsive')
|
||||||
%p.text-left
|
%p.text-left
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue