From 69e30e7ba941fe316da76e846f6b95a2a54f3bdb Mon Sep 17 00:00:00 2001 From: siddhantbajaj Date: Tue, 22 Aug 2017 14:57:42 +0530 Subject: [PATCH 01/26] Improving check-in process mark user as present for the conference when user's registration ticket for that conference is scanned --- app/models/ticket_scanning.rb | 10 ++++++++++ app/models/user.rb | 12 ++++++++++- .../admin/ticket_scannings_controller_spec.rb | 4 +++- spec/factories/ticket_scanning.rb | 5 +++++ spec/models/ticket_scanning_spec.rb | 20 +++++++++++++++++++ 5 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 spec/factories/ticket_scanning.rb create mode 100644 spec/models/ticket_scanning_spec.rb diff --git a/app/models/ticket_scanning.rb b/app/models/ticket_scanning.rb index 6ce9d00c..350d4f9b 100644 --- a/app/models/ticket_scanning.rb +++ b/app/models/ticket_scanning.rb @@ -1,3 +1,13 @@ class TicketScanning < ActiveRecord::Base belongs_to :physical_ticket + + before_create :mark_user_present + + private + + def mark_user_present + if physical_ticket.ticket.registration_ticket? + physical_ticket.user.mark_attendance_for_conference(physical_ticket.conference) + end + end end diff --git a/app/models/user.rb b/app/models/user.rb index ccdb488d..231e1c11 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -47,7 +47,11 @@ class User < ActiveRecord::Base has_many :event_users, dependent: :destroy has_many :events, -> { uniq }, through: :event_users has_many :presented_events, -> { joins(:event_users).where(event_users: {event_role: 'speaker'}).uniq }, through: :event_users, source: :event - has_many :registrations, dependent: :destroy + has_many :registrations, dependent: :destroy do + def for_conference conference + where(conference: conference).first + end + end has_many :events_registrations, through: :registrations has_many :ticket_purchases, dependent: :destroy has_many :payments, dependent: :destroy @@ -93,6 +97,12 @@ class User < ActiveRecord::Base event_registration.attended end + def mark_attendance_for_conference conference + registration = registrations.for_conference(conference) + registration.attended = true + registration.save + end + def name self[:name].blank? ? username : self[:name] end diff --git a/spec/controllers/admin/ticket_scannings_controller_spec.rb b/spec/controllers/admin/ticket_scannings_controller_spec.rb index 245bd885..2eb2e4ed 100644 --- a/spec/controllers/admin/ticket_scannings_controller_spec.rb +++ b/spec/controllers/admin/ticket_scannings_controller_spec.rb @@ -4,7 +4,9 @@ describe Admin::TicketScanningsController do let(:admin) { create(:admin) } let(:conference) { create(:conference) } let(:user) { create(:user) } - let(:paid_ticket_purchase) { create(:ticket_purchase, conference: conference, user: user) } + let!(:registration) { create(:registration, conference: conference, user: user) } + let(:registration_ticket) { create(:registration_ticket, conference: conference) } + let(:paid_ticket_purchase) { create(:ticket_purchase, conference: conference, user: user, ticket: registration_ticket, quantity: 1) } let(:physical_ticket) { create(:physical_ticket, ticket_purchase: paid_ticket_purchase) } context 'logged in as user with no role' do diff --git a/spec/factories/ticket_scanning.rb b/spec/factories/ticket_scanning.rb new file mode 100644 index 00000000..540d1fd0 --- /dev/null +++ b/spec/factories/ticket_scanning.rb @@ -0,0 +1,5 @@ +FactoryGirl.define do + factory :ticket_scanning do + physical_ticket + end +end diff --git a/spec/models/ticket_scanning_spec.rb b/spec/models/ticket_scanning_spec.rb new file mode 100644 index 00000000..3d978f4f --- /dev/null +++ b/spec/models/ticket_scanning_spec.rb @@ -0,0 +1,20 @@ +require 'spec_helper' + +describe TicketScanning do + let(:conference) { create(:conference) } + let(:user) { create(:user) } + let(:registration) { create(:registration, conference: conference, user: user) } + let(:registration_ticket) { create(:registration_ticket, conference: conference) } + let(:paid_ticket_purchase) { create(:ticket_purchase, conference: conference, user: user, ticket: registration_ticket, quantity: 1) } + let(:physical_ticket) { create(:physical_ticket, ticket_purchase: paid_ticket_purchase) } + let(:ticket_scanning) { create(:ticket_scanning, physical_ticket: physical_ticket) } + + describe 'before_create' do + it 'marks user as present' do + expect(registration.attended).to eq(false) + ticket_scanning + registration.reload + expect(registration.attended).to eq(true) + end + end +end From c929d8e68b0b238fe1f65ed5ba674e331d7262bb Mon Sep 17 00:00:00 2001 From: ViditChitkara Date: Fri, 15 Sep 2017 15:13:55 +0530 Subject: [PATCH 02/26] fixed schedule-page error closes #1693 --- app/controllers/schedules_controller.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/controllers/schedules_controller.rb b/app/controllers/schedules_controller.rb index eeb272e0..eb145730 100644 --- a/app/controllers/schedules_controller.rb +++ b/app/controllers/schedules_controller.rb @@ -21,10 +21,10 @@ class SchedulesController < ApplicationController # the schedule takes you to today if it is a date of the schedule @current_day = @conference.current_conference_day @day = @current_day.present? ? @current_day : @dates.first - return unless @current_day - # the schedule takes you to the current time if it is beetween the start and the end time. - @hour_column = @conference.hours_from_start_time(@conf_start, @conference.end_hour) - + unless @current_day + # the schedule takes you to the current time if it is beetween the start and the end time. + @hour_column = @conference.hours_from_start_time(@conf_start, @conference.end_hour) + end # Ids of the schedules of confrmed self_organized tracks along with the selected_schedule_id @selected_schedules_ids = [@conference.program.selected_schedule_id] @conference.program.tracks.self_organized.confirmed.each do |track| From 82b5f9083abdee4e954d0197a3c80621a0df9554 Mon Sep 17 00:00:00 2001 From: rahul Date: Mon, 18 Sep 2017 19:07:13 +0530 Subject: [PATCH 03/26] Fix total price for tickets While buying the ticket, user was only able to see the integer part in total.So in javascript parseInt was replaced with parseFloat to show the decimal part too Fixes https://github.com/openSUSE/osem/issues/1702 --- app/assets/javascripts/osem-tickets.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/javascripts/osem-tickets.js b/app/assets/javascripts/osem-tickets.js index ea99a349..3c915f03 100644 --- a/app/assets/javascripts/osem-tickets.js +++ b/app/assets/javascripts/osem-tickets.js @@ -9,7 +9,7 @@ function update_price($this){ // Calculate total price var total = 0; $('.total_row').each(function( index ) { - total += parseInt($(this).text()); + total += parseFloat($(this).text()); }); $('#total_price').text(total); } From a07df4bdb0692fc289d2b89e8e1a634bddb5153d Mon Sep 17 00:00:00 2001 From: rahul Date: Wed, 20 Sep 2017 21:38:34 +0530 Subject: [PATCH 04/26] Fix decimal numbers limit to 2 while calculating the row total, javascript was called and on some quantity, a number with a big decimal part was appearing.In this PR it is fixed Fixes https://github.com/opensuse/osem/issues/1709 --- app/assets/javascripts/osem-tickets.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/javascripts/osem-tickets.js b/app/assets/javascripts/osem-tickets.js index 3c915f03..51881055 100644 --- a/app/assets/javascripts/osem-tickets.js +++ b/app/assets/javascripts/osem-tickets.js @@ -4,7 +4,7 @@ function update_price($this){ // Calculate price for row var value = $this.val(); var price = $('#price_' + id).text(); - $('#total_row_' + id).text(value * price); + $('#total_row_' + id).text((value * price).toFixed(2)); // Calculate total price var total = 0; From 2247231d6eb6a74c9a4f62738d3a3b69bdf0662f Mon Sep 17 00:00:00 2001 From: rishabhptr Date: Mon, 25 Sep 2017 21:30:46 +0530 Subject: [PATCH 05/26] Added amount check for payments#new --- app/controllers/payments_controller.rb | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/controllers/payments_controller.rb b/app/controllers/payments_controller.rb index b5e2c193..bee58f6c 100644 --- a/app/controllers/payments_controller.rb +++ b/app/controllers/payments_controller.rb @@ -3,6 +3,7 @@ class PaymentsController < ApplicationController load_and_authorize_resource load_resource :conference, find_by: :short_title authorize_resource :conference_registrations, class: Registration + before_action :check_amount, only: [:new] def index @payments = current_user.payments @@ -28,6 +29,11 @@ class PaymentsController < ApplicationController end end + def check_amount + @total_amount_to_pay = Ticket.total_price(@conference, current_user, paid: false) + redirect_to root_path if @total_amount_to_pay.zero? + end + private def payment_params From 568d89b6202c0ae1f377ff4290f6b7a5dc1cca7a Mon Sep 17 00:00:00 2001 From: rishabhptr Date: Tue, 26 Sep 2017 21:43:18 +0530 Subject: [PATCH 06/26] Changed physical_ticket to plural --- ...al_ticket_controller.rb => physical_tickets_controller.rb} | 2 +- app/controllers/payments_controller.rb | 2 +- ...al_ticket_controller.rb => physical_tickets_controller.rb} | 2 +- app/controllers/ticket_purchases_controller.rb | 2 +- .../{physical_ticket => physical_tickets}/index.html.haml | 0 app/views/admin/tickets/index.html.haml | 2 +- app/views/conferences/_conference_details.html.haml | 2 +- .../{physical_ticket => physical_tickets}/index.html.haml | 0 .../{physical_ticket => physical_tickets}/show.html.haml | 0 config/routes.rb | 4 ++-- spec/controllers/physical_ticket_controller_spec.rb | 2 +- spec/features/ticket_purchases_spec.rb | 2 +- 12 files changed, 10 insertions(+), 10 deletions(-) rename app/controllers/admin/{physical_ticket_controller.rb => physical_tickets_controller.rb} (88%) rename app/controllers/{physical_ticket_controller.rb => physical_tickets_controller.rb} (94%) rename app/views/admin/{physical_ticket => physical_tickets}/index.html.haml (100%) rename app/views/{physical_ticket => physical_tickets}/index.html.haml (100%) rename app/views/{physical_ticket => physical_tickets}/show.html.haml (100%) diff --git a/app/controllers/admin/physical_ticket_controller.rb b/app/controllers/admin/physical_tickets_controller.rb similarity index 88% rename from app/controllers/admin/physical_ticket_controller.rb rename to app/controllers/admin/physical_tickets_controller.rb index d43c5c33..0fb26ad8 100644 --- a/app/controllers/admin/physical_ticket_controller.rb +++ b/app/controllers/admin/physical_tickets_controller.rb @@ -1,5 +1,5 @@ module Admin - class PhysicalTicketController < Admin::BaseController + class PhysicalTicketsController < Admin::BaseController before_action :authenticate_user! load_resource :conference, find_by: :short_title load_and_authorize_resource diff --git a/app/controllers/payments_controller.rb b/app/controllers/payments_controller.rb index bee58f6c..8faebef7 100644 --- a/app/controllers/payments_controller.rb +++ b/app/controllers/payments_controller.rb @@ -19,7 +19,7 @@ class PaymentsController < ApplicationController if @payment.purchase && @payment.save update_purchased_ticket_purchases - redirect_to conference_physical_ticket_index_path, + redirect_to conference_physical_tickets_path, notice: 'Thanks! Your ticket is booked successfully.' else @total_amount_to_pay = Ticket.total_price(@conference, current_user, paid: false) diff --git a/app/controllers/physical_ticket_controller.rb b/app/controllers/physical_tickets_controller.rb similarity index 94% rename from app/controllers/physical_ticket_controller.rb rename to app/controllers/physical_tickets_controller.rb index af02155c..2f6f18ec 100644 --- a/app/controllers/physical_ticket_controller.rb +++ b/app/controllers/physical_tickets_controller.rb @@ -1,4 +1,4 @@ -class PhysicalTicketController < ApplicationController +class PhysicalTicketsController < ApplicationController before_action :authenticate_user! load_resource :conference, find_by: :short_title load_and_authorize_resource find_by: :token diff --git a/app/controllers/ticket_purchases_controller.rb b/app/controllers/ticket_purchases_controller.rb index a53a3cf5..3eb8b68d 100644 --- a/app/controllers/ticket_purchases_controller.rb +++ b/app/controllers/ticket_purchases_controller.rb @@ -12,7 +12,7 @@ class TicketPurchasesController < ApplicationController redirect_to new_conference_payment_path, notice: 'Please pay here to get tickets.' elsif current_user.ticket_purchases.by_conference(@conference).paid.any? - redirect_to conference_physical_ticket_index_path, + redirect_to conference_physical_tickets_path, notice: 'You have free tickets for the conference.' else redirect_to conference_tickets_path(@conference.short_title), diff --git a/app/views/admin/physical_ticket/index.html.haml b/app/views/admin/physical_tickets/index.html.haml similarity index 100% rename from app/views/admin/physical_ticket/index.html.haml rename to app/views/admin/physical_tickets/index.html.haml diff --git a/app/views/admin/tickets/index.html.haml b/app/views/admin/tickets/index.html.haml index b8cdb505..42154ae7 100644 --- a/app/views/admin/tickets/index.html.haml +++ b/app/views/admin/tickets/index.html.haml @@ -40,4 +40,4 @@ .row .col-md-12 = link_to 'Add Ticket', new_admin_conference_ticket_path, class: 'btn btn-success pull-right' - = link_to 'Tickets Sold', admin_conference_physical_ticket_index_path, class: 'button btn btn-default btn-info pull-right' + = link_to 'Tickets Sold', admin_conference_physical_tickets_path, class: 'button btn btn-default btn-info pull-right' diff --git a/app/views/conferences/_conference_details.html.haml b/app/views/conferences/_conference_details.html.haml index ebf80ef6..84a87303 100644 --- a/app/views/conferences/_conference_details.html.haml +++ b/app/views/conferences/_conference_details.html.haml @@ -47,4 +47,4 @@ - else = link_to 'Unsubscribe', conference_subscriptions_path(conference.short_title), method: :delete, class: 'btn btn-default' - if current_user && current_user.physical_tickets.by_conference(conference).any? - = link_to "My Tickets", conference_physical_ticket_index_path(conference.short_title), class: 'btn btn-default' + = link_to "My Tickets", conference_physical_tickets_path(conference.short_title), class: 'btn btn-default' diff --git a/app/views/physical_ticket/index.html.haml b/app/views/physical_tickets/index.html.haml similarity index 100% rename from app/views/physical_ticket/index.html.haml rename to app/views/physical_tickets/index.html.haml diff --git a/app/views/physical_ticket/show.html.haml b/app/views/physical_tickets/show.html.haml similarity index 100% rename from app/views/physical_ticket/show.html.haml rename to app/views/physical_tickets/show.html.haml diff --git a/config/routes.rb b/config/routes.rb index 0d7e7aec..99f716e4 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -122,7 +122,7 @@ Osem::Application.routes.draw do resources :targets, except: [:show] resources :campaigns, except: [:show] resources :emails, only: [:show, :update, :index] - resources :physical_ticket, only: [:index] + resources :physical_tickets, only: [:index] resources :roles, except: [:new, :create] do member do post :toggle_user @@ -184,7 +184,7 @@ Osem::Application.routes.draw do resources :tickets, only: [:index] resources :ticket_purchases, only: [:create, :destroy, :index] resources :payments, only: [:index, :new, :create] - resources :physical_ticket, only: [:index, :show] + resources :physical_tickets, only: [:index, :show] resource :subscriptions, only: [:create, :destroy] resource :schedule, only: [:show] do member do diff --git a/spec/controllers/physical_ticket_controller_spec.rb b/spec/controllers/physical_ticket_controller_spec.rb index 863e27af..476a1717 100644 --- a/spec/controllers/physical_ticket_controller_spec.rb +++ b/spec/controllers/physical_ticket_controller_spec.rb @@ -1,6 +1,6 @@ require 'spec_helper' -describe PhysicalTicketController do +describe PhysicalTicketsController do let(:conference) { create(:conference) } let(:user) { create(:user) } let(:paid_ticket_purchase) { create(:ticket_purchase, conference: conference, user: user) } diff --git a/spec/features/ticket_purchases_spec.rb b/spec/features/ticket_purchases_spec.rb index c76b84a6..9cace981 100644 --- a/spec/features/ticket_purchases_spec.rb +++ b/spec/features/ticket_purchases_spec.rb @@ -103,7 +103,7 @@ feature Registration do click_button 'Continue' - expect(current_path).to eq(conference_physical_ticket_index_path(conference.short_title)) + expect(current_path).to eq(conference_physical_tickets_path(conference.short_title)) purchase = TicketPurchase.where(user_id: participant.id, ticket_id: free_ticket.id).first expect(purchase.quantity).to eq(5) expect(purchase.paid).to be true From 407b1838cfa49a0430f30ecceaec2a21741cce31 Mon Sep 17 00:00:00 2001 From: rahul Date: Sat, 9 Sep 2017 16:13:17 +0530 Subject: [PATCH 07/26] Add cfp type in admin/cfp#show @cfp.cfp_type is added to booths, events & tracks to show the cfp type. Closes https://github.com/openSUSE/osem/issues/1679 --- app/views/admin/cfps/_booths_cfp.html.haml | 4 ++++ app/views/admin/cfps/_events_cfp.html.haml | 4 ++++ app/views/admin/cfps/_tracks_cfp.html.haml | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/app/views/admin/cfps/_booths_cfp.html.haml b/app/views/admin/cfps/_booths_cfp.html.haml index 89012336..98943cec 100644 --- a/app/views/admin/cfps/_booths_cfp.html.haml +++ b/app/views/admin/cfps/_booths_cfp.html.haml @@ -1,3 +1,7 @@ +%dt + Type +%dd + = @cfp.cfp_type.capitalize %dt Start Date %dd diff --git a/app/views/admin/cfps/_events_cfp.html.haml b/app/views/admin/cfps/_events_cfp.html.haml index 51bc2079..572ffb2d 100644 --- a/app/views/admin/cfps/_events_cfp.html.haml +++ b/app/views/admin/cfps/_events_cfp.html.haml @@ -1,3 +1,7 @@ +%dt + Type: +%dd + = @cfp.cfp_type.capitalize %dt Start Date: %dd#start_date diff --git a/app/views/admin/cfps/_tracks_cfp.html.haml b/app/views/admin/cfps/_tracks_cfp.html.haml index e381df96..bcc2df43 100644 --- a/app/views/admin/cfps/_tracks_cfp.html.haml +++ b/app/views/admin/cfps/_tracks_cfp.html.haml @@ -1,3 +1,7 @@ +%dt + Type: +%dd + = @cfp.cfp_type.capitalize %dt Start Date: %dd#start_date From be6bfb6aaddc5f2926f5b01ce3d8c2c5675e0fe2 Mon Sep 17 00:00:00 2001 From: rahul Date: Sun, 10 Sep 2017 20:03:18 +0530 Subject: [PATCH 08/26] Add missing : to booths and events_cfp --- app/views/admin/cfps/_booths_cfp.html.haml | 8 ++++---- app/views/admin/cfps/_events_cfp.html.haml | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/views/admin/cfps/_booths_cfp.html.haml b/app/views/admin/cfps/_booths_cfp.html.haml index 98943cec..7cdc6db4 100644 --- a/app/views/admin/cfps/_booths_cfp.html.haml +++ b/app/views/admin/cfps/_booths_cfp.html.haml @@ -1,16 +1,16 @@ %dt - Type + Type: %dd = @cfp.cfp_type.capitalize %dt - Start Date + Start Date: %dd = @cfp.start_date.strftime('%A, %B %e. %Y') %dt - End Date + End Date: %dd = @cfp.end_date.strftime('%A, %B %e. %Y') %dt - Days Left + Days Left: %dd = pluralize(@cfp.remaining_days, 'day') diff --git a/app/views/admin/cfps/_events_cfp.html.haml b/app/views/admin/cfps/_events_cfp.html.haml index 572ffb2d..f06aa6ca 100644 --- a/app/views/admin/cfps/_events_cfp.html.haml +++ b/app/views/admin/cfps/_events_cfp.html.haml @@ -23,7 +23,7 @@ %dd = tracks(@conference) %dt - Public Schedule + Public Schedule: %dd#schedule_public - if @program.schedule_public Yes @@ -37,6 +37,6 @@ - else No %dt - Rating Levels + Rating Levels: %dd#rating = @program.rating From ec91db86f90f4706c36573f1ff3ce9814ff40032 Mon Sep 17 00:00:00 2001 From: rahul Date: Mon, 11 Sep 2017 23:01:28 +0530 Subject: [PATCH 09/26] Fix error while generating pdf when venue is nil Error in generating pdf for ticket when venue is not set is fixed.Showing venue in pdf only if venue exist. Closes https://github.com/opensuse/osem/issues/1683 --- app/pdfs/ticket_pdf.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/pdfs/ticket_pdf.rb b/app/pdfs/ticket_pdf.rb index ecb4cd2c..48f26fe3 100644 --- a/app/pdfs/ticket_pdf.rb +++ b/app/pdfs/ticket_pdf.rb @@ -51,7 +51,9 @@ class TicketPdf < Prawn::Document move_down 70 draw_text @conference.title.to_s, at: [@mid_horizontal + 30, cursor - 30], size: 12 draw_text @conference.organization.name.to_s, at: [@mid_horizontal + 30, cursor - 50], size: 12 - draw_text @conference.venue.name.to_s, at: [@mid_horizontal + 30, cursor - 70] + if @conference.venue + draw_text @conference.venue.name.to_s, at: [@mid_horizontal + 30, cursor - 70] + end move_up 130 move_down @mid_vertical end From 8dd5a14b237a6957fb70e9fb077fccf930a16a4a Mon Sep 17 00:00:00 2001 From: rahul Date: Tue, 12 Sep 2017 17:52:01 +0530 Subject: [PATCH 10/26] Remove to_s from conference.venue.name name is already a string so to_s in not required --- app/pdfs/ticket_pdf.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/pdfs/ticket_pdf.rb b/app/pdfs/ticket_pdf.rb index 48f26fe3..41af54ef 100644 --- a/app/pdfs/ticket_pdf.rb +++ b/app/pdfs/ticket_pdf.rb @@ -52,7 +52,7 @@ class TicketPdf < Prawn::Document draw_text @conference.title.to_s, at: [@mid_horizontal + 30, cursor - 30], size: 12 draw_text @conference.organization.name.to_s, at: [@mid_horizontal + 30, cursor - 50], size: 12 if @conference.venue - draw_text @conference.venue.name.to_s, at: [@mid_horizontal + 30, cursor - 70] + draw_text @conference.venue.name, at: [@mid_horizontal + 30, cursor - 70] end move_up 130 move_down @mid_vertical From 99e5af32174c4fe0294d622b8de1099aa8d59f00 Mon Sep 17 00:00:00 2001 From: rahul Date: Tue, 12 Sep 2017 18:10:16 +0530 Subject: [PATCH 11/26] Add full address to the ticket Full address is added to the ticket as earlier it was showing venue name only --- app/pdfs/ticket_pdf.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/pdfs/ticket_pdf.rb b/app/pdfs/ticket_pdf.rb index 41af54ef..3691fb04 100644 --- a/app/pdfs/ticket_pdf.rb +++ b/app/pdfs/ticket_pdf.rb @@ -53,6 +53,8 @@ class TicketPdf < Prawn::Document draw_text @conference.organization.name.to_s, at: [@mid_horizontal + 30, cursor - 50], size: 12 if @conference.venue draw_text @conference.venue.name, at: [@mid_horizontal + 30, cursor - 70] + draw_text @conference.venue.street, at: [@mid_horizontal + 30, cursor - 90] + draw_text @conference.venue.city, at: [@mid_horizontal + 30, cursor - 110] end move_up 130 move_down @mid_vertical From d6c7e8d97fbc7989a14d53cf431740ea845fa005 Mon Sep 17 00:00:00 2001 From: ViditChitkara Date: Tue, 26 Sep 2017 18:30:36 +0530 Subject: [PATCH 12/26] Fixed email overflow bug in tickets pdf closes #1691 minor changes --- app/pdfs/ticket_pdf.rb | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/app/pdfs/ticket_pdf.rb b/app/pdfs/ticket_pdf.rb index 3691fb04..9a09f9fe 100644 --- a/app/pdfs/ticket_pdf.rb +++ b/app/pdfs/ticket_pdf.rb @@ -25,20 +25,23 @@ class TicketPdf < Prawn::Document move_up @mid_vertical draw_text 'TICKET HOLDER', at: [@x, cursor - 30], size: 17 dash(2, space: 0) - stroke_rectangle [@x, cursor - 50], 230, 150 - move_down 80 - draw_text 'NAME', at: [@x + 10, cursor], size: 13 - fill_color '808080' - draw_text @user.name.to_s, at: [@x + 10, cursor - 25], size: 20 - fill_color '000000' - draw_text 'EMAIL', at: [@x + 10, cursor - 50], size: 13 - fill_color '808080' - draw_text @user.email.to_s, at: [@x + 10, cursor - 75], size: 20 - fill_color '000000' - move_up 20 + bounding_box [@x, cursor - 50], width: 230, height: 150 do + pad(15) do + text_box 'NAME', at: [@x + 10, cursor], size: 13 + fill_color '808080' + text_box @user.name.to_s, at: [@x + 10, cursor - 20], size: 18 + fill_color '000000' + text_box 'EMAIL', at: [@x + 10, cursor - 60], size: 13 + fill_color '808080' + text_box @user.email.to_s, at: [@x + 10, cursor - 80], size: 18, overflow: :shrink_to_fit + fill_color '000000' + end + stroke_bounds + end end def draw_second_square + move_up 150 if @conference.picture? if 7 * @conference.picture.image[:width] > 12 * @conference.picture.image[:height] image "#{Rails.root}/public#{@conference.picture_url}", at: [@mid_horizontal + 30, cursor], width: 120 From f4a084ec541f503d9807c7a5201208077ea91aa7 Mon Sep 17 00:00:00 2001 From: ViditChitkara Date: Mon, 2 Oct 2017 22:11:23 +0530 Subject: [PATCH 13/26] added byebug_history to gitignore closes #1736 --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 75a1bdc6..5c08fcff 100644 --- a/.gitignore +++ b/.gitignore @@ -38,3 +38,4 @@ pickle-email-*.html .env.local docker-compose.env docker-compose.yml +.byebug_history From 72afae6f2f374a48d933ecb98b08462e1b74b0ed Mon Sep 17 00:00:00 2001 From: ViditChitkara Date: Sat, 7 Oct 2017 02:34:46 +0530 Subject: [PATCH 14/26] fixed error in nested comments closes #1738 --- app/views/admin/events/_nested_comments.html.haml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/admin/events/_nested_comments.html.haml b/app/views/admin/events/_nested_comments.html.haml index 8ab3cabb..0bfb440c 100644 --- a/app/views/admin/events/_nested_comments.html.haml +++ b/app/views/admin/events/_nested_comments.html.haml @@ -6,9 +6,9 @@ %div %a.pull-right.comment-reply-link{ href: '#' } Reply .comment-reply - = semantic_form_for :comment, url: '#{comment_admin_conference_program_event_path(@conference.short_title, comment.commentable_id)}', method: :post do |f| + = semantic_form_for :comment, url: comment_admin_conference_program_event_path(@conference.short_title, comment.commentable_id), method: :post do |f| = f.input :body - %input{ name: 'parent', type: 'hidden', value: '#{comment.id}' } + %input{ name: 'parent', type: 'hidden', value: comment.id } %input{ name: 'authenticity_token', type: 'hidden', value: '#{form_authenticity_token}' } %button.btn.btn-primary.pull-right{ name: 'button', type: 'submit' } Add Reply - comment.children.each do |child| From 3b27a2a8fbded28ef9d173f932ee294c6aa0bb42 Mon Sep 17 00:00:00 2001 From: rishabhptr Date: Mon, 2 Oct 2017 20:08:30 +0530 Subject: [PATCH 15/26] Added amount check for payments#new --- app/controllers/payments_controller.rb | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/app/controllers/payments_controller.rb b/app/controllers/payments_controller.rb index 8faebef7..322ed397 100644 --- a/app/controllers/payments_controller.rb +++ b/app/controllers/payments_controller.rb @@ -3,7 +3,6 @@ class PaymentsController < ApplicationController load_and_authorize_resource load_resource :conference, find_by: :short_title authorize_resource :conference_registrations, class: Registration - before_action :check_amount, only: [:new] def index @payments = current_user.payments @@ -11,6 +10,9 @@ class PaymentsController < ApplicationController def new @total_amount_to_pay = Ticket.total_price(@conference, current_user, paid: false) + if @total_amount_to_pay.zero? + raise CanCan::AccessDenied.new('Nothing to pay for!', :new, Payment) + end @unpaid_ticket_purchases = current_user.ticket_purchases.unpaid.by_conference(@conference) end @@ -29,11 +31,6 @@ class PaymentsController < ApplicationController end end - def check_amount - @total_amount_to_pay = Ticket.total_price(@conference, current_user, paid: false) - redirect_to root_path if @total_amount_to_pay.zero? - end - private def payment_params From 78eb58c93eb766505dd12319d0502c10b40a811f Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 8 Oct 2017 20:06:06 +0530 Subject: [PATCH 16/26] event export options are grouped --- app/views/admin/events/index.html.haml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/app/views/admin/events/index.html.haml b/app/views/admin/events/index.html.haml index 50d7acd5..f8b58b63 100644 --- a/app/views/admin/events/index.html.haml +++ b/app/views/admin/events/index.html.haml @@ -9,13 +9,14 @@ =link_to 'Add Event', new_admin_conference_program_event_path(@conference.short_title), class: 'button btn btn-default btn-info' - if can? :read, Event .btn-group - %button.btn.btn-default.dropdown-toggle{ 'data-toggle' => 'dropdown', type: 'button', class: 'btn btn-success' } - Export PDF - %span.caret - %ul.dropdown-menu{ role: 'menu' } - %li= link_to 'All Events', admin_conference_program_events_path(@conference.short_title, format: :pdf, event_export_option: 'all') - %li= link_to 'Confirmed Events', admin_conference_program_events_path(@conference.short_title, format: :pdf, event_export_option: 'confirmed') - %li= link_to 'All Events with Comments', admin_conference_program_events_path(@conference.short_title, format: :pdf, event_export_option: 'all_with_comments') + .btn-group + %button.btn.btn-default.dropdown-toggle{ 'data-toggle' => 'dropdown', type: 'button', class: 'btn btn-success' } + Export PDF + %span.caret + %ul.dropdown-menu{ role: 'menu' } + %li= link_to 'All Events', admin_conference_program_events_path(@conference.short_title, format: :pdf, event_export_option: 'all') + %li= link_to 'Confirmed Events', admin_conference_program_events_path(@conference.short_title, format: :pdf, event_export_option: 'confirmed') + %li= link_to 'All Events with Comments', admin_conference_program_events_path(@conference.short_title, format: :pdf, event_export_option: 'all_with_comments') .btn-group %button.btn.btn-default.dropdown-toggle{ 'data-toggle' => 'dropdown', type: 'button', class: 'btn btn-success' } Export CSV From 36133a995a611638e3f954125264c97b1ff992df Mon Sep 17 00:00:00 2001 From: Your Name <01namangupta@gmail.com> Date: Mon, 9 Oct 2017 18:37:45 +0530 Subject: [PATCH 17/26] DS_Store file is added into the gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 75a1bdc6..20614643 100644 --- a/.gitignore +++ b/.gitignore @@ -38,3 +38,4 @@ pickle-email-*.html .env.local docker-compose.env docker-compose.yml +.DS_Store From d95a786d9f4aedf6ce7e22fdbcfbd77f780c4171 Mon Sep 17 00:00:00 2001 From: James Mason Date: Tue, 10 Oct 2017 20:23:54 -0700 Subject: [PATCH 18/26] Fix intermittent failures in track tests Boostrap's off-screen rendering was interfering with finding links in the page layout. The included approach should be bulletproof. --- spec/features/tracks_spec.rb | 11 ++++++++--- spec/spec_helper.rb | 10 +++++++++- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/spec/features/tracks_spec.rb b/spec/features/tracks_spec.rb index 934f28ba..f753abc2 100644 --- a/spec/features/tracks_spec.rb +++ b/spec/features/tracks_spec.rb @@ -36,8 +36,11 @@ feature Track do expected = expect do visit admin_conference_program_tracks_path(conference_id: conference.short_title) - - click_link 'Delete' + within('#tracks', visible: true) do + page.accept_confirm do + find_link('Delete').click + end + end end expected.to change { Track.count }.by(-1) @@ -53,7 +56,9 @@ feature Track do expected = expect do visit admin_conference_program_tracks_path(conference_id: conference.short_title) - click_link 'Edit' + within('#tracks', visible: true) do + find_link('Edit').trigger('click') + end fill_in 'track_name', with: 'Distribution' fill_in 'track_short_name', with: 'Distribution' diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index fc56e829..d9283117 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -59,7 +59,7 @@ RSpec.configure do |config| Capybara.javascript_driver = :poltergeist Capybara.register_driver :poltergeist do |app| - Capybara::Poltergeist::Driver.new(app, phantomjs: Phantomjs.path, js_errors: false) + Capybara::Poltergeist::Driver.new(app, phantomjs: Phantomjs.path, js_errors: false, window_size: [1920, 1080]) end # Includes helpers and connect them to specific types of tests @@ -82,6 +82,14 @@ RSpec.configure do |config| # Types of tests (controller, feature, model) will # be inferred from subfolder name config.infer_spec_type_from_file_location! + + # Enable this if you like to see what you're debugging + # config.after(:example) do |example| + # if example.exception + # save_and_open_screenshot + # save_and_open_page + # end + # end end OmniAuth.config.test_mode = true From fc48769abb78f6470382e551719bf22c30c65ce1 Mon Sep 17 00:00:00 2001 From: Akshit Ahluwalia Date: Thu, 12 Oct 2017 04:40:57 +0530 Subject: [PATCH 19/26] fixed hakiri xss warnings. Fixed Hakiri XSS Warnings. --- app/views/conferences/_venue.html.haml | 2 +- app/views/conferences/_venue_map.html.haml | 6 +++--- app/views/conferences/show.html.haml | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/views/conferences/_venue.html.haml b/app/views/conferences/_venue.html.haml index 62af90c7..4436b0fe 100644 --- a/app/views/conferences/_venue.html.haml +++ b/app/views/conferences/_venue.html.haml @@ -32,4 +32,4 @@ = @conference.venue.country_name - if @conference.venue.website %br - =link_to @conference.venue.website, @conference.venue.website + =link_to(h(@conference.venue.website), h(@conference.venue.website)).html_safe diff --git a/app/views/conferences/_venue_map.html.haml b/app/views/conferences/_venue_map.html.haml index b58b3053..717069d5 100644 --- a/app/views/conferences/_venue_map.html.haml +++ b/app/views/conferences/_venue_map.html.haml @@ -3,15 +3,15 @@ - content_for(:script_body) do :javascript // create a map in the "map" div, set the view to a given place and zoom - var map = L.map('map', { scrollWheelZoom: false }).setView([#{@conference.venue.latitude}, #{@conference.venue.longitude}], 11); + var map = L.map('map', { scrollWheelZoom: false }).setView([#{h(@conference.venue.latitude)}, #{h(@conference.venue.longitude)}], 11); // add an OpenStreetMap tile layer L.tileLayer('//{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: 'Map data © OpenStreetMap contributors, CC-BY-SA, Imagery © Mapbox', maxZoom: 18 }).addTo(map); // add a marker in the given location, attach some popup content to it and open the popup - L.marker([#{@conference.venue.latitude}, #{@conference.venue.longitude}]).addTo(map) - .bindPopup("#{popup}") + L.marker([#{h(@conference.venue.latitude)}, #{h(@conference.venue.longitude)}]).addTo(map) + .bindPopup("#{h(popup)}") .openPopup(); // Turn scrollwheel on when user clicks map.on('focus', function(e) { diff --git a/app/views/conferences/show.html.haml b/app/views/conferences/show.html.haml index f94b8ee4..dd6b2d62 100644 --- a/app/views/conferences/show.html.haml +++ b/app/views/conferences/show.html.haml @@ -82,7 +82,7 @@ - content_for :script_head do :javascript - var triangle_tcs = tinycolor("#{@conference.color}").monochromatic(); + var triangle_tcs = tinycolor("#{h(@conference.color)}").monochromatic(); var triangle_colors = triangle_tcs.map(function(t) { return t.toHexString(); }); $(function () { $(document).ready(function() { From 49503444e119f016f2905640fb668e10e753825c Mon Sep 17 00:00:00 2001 From: rishabhptr Date: Thu, 12 Oct 2017 21:17:23 +0530 Subject: [PATCH 20/26] Fixed roles link in revision_history --- app/views/admin/versions/_object_desc_and_link.html.haml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/admin/versions/_object_desc_and_link.html.haml b/app/views/admin/versions/_object_desc_and_link.html.haml index a924a4cf..8c717900 100644 --- a/app/views/admin/versions/_object_desc_and_link.html.haml +++ b/app/views/admin/versions/_object_desc_and_link.html.haml @@ -19,7 +19,7 @@ - else - conference = Conference.find_by(id: version.conference_id) - conference_short_title = conference.try(:short_title) || current_or_last_object_state('Conference', version.conference_id).try(:short_title) || ' ' - = link_if_alive version, role.try(:name), admin_conference_role_path(role.try(:name) || ' ', conference_short_title), conference + = link_if_alive version, role.try(:name), admin_conference_role_path(conference_short_title,role.try(:name) || ' '), conference = version.event == 'create' ? 'to' : 'from' user From f2b5c2627cb0f3f1b9690c6102e504ee2126fc18 Mon Sep 17 00:00:00 2001 From: James Mason Date: Tue, 10 Oct 2017 10:34:16 -0700 Subject: [PATCH 21/26] Require a version of nokogiri with known vulnerabilities resolved re: https://hakiri.io/github/openSUSE/osem/master/78eb58c93eb766505dd12319d0502c10b40a811f/warnings/b532fbd10b687d --- Gemfile | 5 +++++ Gemfile.lock | 9 +++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 7f25aa46..22dc5f6e 100644 --- a/Gemfile +++ b/Gemfile @@ -200,6 +200,11 @@ gem 'sprockets-rails' # for multiple speakers select on proposal/event forms gem 'selectize-rails' +# Nokogiri < 1.8.1 is subject to: +# CVE-2017-0663, CVE-2017-7375, CVE-2017-7376, CVE-2017-9047, CVE-2017-9048, +# CVE-2017-9049, CVE-2017-9050 +gem 'nokogiri', '>= 1.8.1' + # Use guard and spring for testing in development group :development do # to launch specs when files are modified diff --git a/Gemfile.lock b/Gemfile.lock index c6b4faa8..dc730e82 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -270,7 +270,7 @@ GEM open4 (~> 1.3.4) rake mini_magick (4.5.1) - mini_portile2 (2.2.0) + mini_portile2 (2.3.0) minitest (5.10.2) momentjs-rails (2.8.1) railties (>= 3.1) @@ -290,8 +290,8 @@ GEM mysql2 (0.4.9) nenv (0.3.0) netrc (0.11.0) - nokogiri (1.8.0) - mini_portile2 (~> 2.2.0) + nokogiri (1.8.1) + mini_portile2 (~> 2.3.0) notiffany (0.1.1) nenv (~> 0.1) shellany (~> 0.0) @@ -609,6 +609,7 @@ DEPENDENCIES mini_magick money-rails mysql2 + nokogiri (>= 1.8.1) omniauth omniauth-facebook omniauth-github @@ -662,4 +663,4 @@ DEPENDENCIES whenever BUNDLED WITH - 1.15.1 + 1.15.4 From fc64542202e370fad180f68508d7151ed80d5d70 Mon Sep 17 00:00:00 2001 From: James Mason Date: Thu, 12 Oct 2017 14:06:02 -0700 Subject: [PATCH 22/26] Stabilizing a randomly failing test --- spec/features/sponsor_spec.rb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/spec/features/sponsor_spec.rb b/spec/features/sponsor_spec.rb index c6b5009e..b12ee90d 100644 --- a/spec/features/sponsor_spec.rb +++ b/spec/features/sponsor_spec.rb @@ -36,7 +36,14 @@ feature Sponsor do end # Remove sponsor - click_link 'Delete' + visit admin_conference_sponsors_path( + conference_id: conference.short_title + ) + within('table#sponsors') do + page.accept_confirm do + click_link 'Delete' + end + end expect(flash).to eq('Sponsor successfully deleted.') expect(page).to_not have_selector('table#sponsors') end From 33bfb3d3c2383e0ed34b0317c20ce5258d923cfb Mon Sep 17 00:00:00 2001 From: rahul Date: Sat, 14 Oct 2017 20:41:41 +0530 Subject: [PATCH 23/26] Add link to venue when venue is not set Link to create rooms is removed from schedules#show when venue is not set as creating room without venue will show error Closes https://github.com/openSUSE/osem/issues/1729 --- app/views/admin/schedules/show.html.haml | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/app/views/admin/schedules/show.html.haml b/app/views/admin/schedules/show.html.haml index 9009fcbb..258b4d87 100644 --- a/app/views/admin/schedules/show.html.haml +++ b/app/views/admin/schedules/show.html.haml @@ -40,11 +40,23 @@ .tab-pane{ class: "#{ (@dates.first == date) ? 'active' : '' }", id: "#{date}" } = render partial: 'day_tab', locals: { date: date } - else - .h3 - No Rooms! - %small - = link_to 'Create rooms', admin_conference_venue_rooms_path - before creating the schedule. + - if @venue.try(:rooms).present? + .text-right + - if can? :create, @program.schedules.new + = link_to 'Add Schedule', admin_conference_schedules_path(@conference.short_title), + method: :post, class: 'btn btn-primary' + - elsif @venue + .h3 + No Rooms! + %small + = link_to 'Create rooms', admin_conference_venue_rooms_path + before creating the schedule. + - else + .h3 + No Venue! + %small + = link_to 'Create a venue with rooms', new_admin_conference_venue_path + before creating the schedule. :javascript $(document).ready( function() { From 8ddcd695f02bd6ad23058bdce437306e72e155bb Mon Sep 17 00:00:00 2001 From: James Mason Date: Wed, 11 Oct 2017 16:47:51 -0700 Subject: [PATCH 24/26] Add vendor picture interface; include in splash Vendor has a picture atrribute, and was displayed in one form of the splashpage, but it wasn't exposed in the vendor editing form, nor was it included in the "map view" on the splash page. Additionally, the map popup was rendered inline. This commit: * Adds a from input for editing Venue#picture, consistent with other form elements * Displays the picture on the splash page in either style (map or static) * Moves the splash page map popup from inline HTML to it's own partial --- app/views/admin/venues/_form.html.haml | 6 ++++++ app/views/conferences/_venue_map.html.haml | 5 ++--- app/views/conferences/_venue_map_marker.html.haml | 13 +++++++++++++ 3 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 app/views/conferences/_venue_map_marker.html.haml diff --git a/app/views/admin/venues/_form.html.haml b/app/views/admin/venues/_form.html.haml index 7dd08a2c..6674305b 100644 --- a/app/views/admin/venues/_form.html.haml +++ b/app/views/admin/venues/_form.html.haml @@ -15,6 +15,12 @@ = semantic_form_for(@venue, url: admin_conference_venue_path(@conference.short_title)) do |f| = f.inputs :name, :website = f.input :description, input_html: { rows: 5, cols: 20, data: { provide: 'markdown-editable' } }, hint: markdown_hint + = f.label 'Venue Logo' + %br + - if @venue.picture? + = image_tag @venue.picture.thumb.url + = f.input :picture, label: false, hint: 'This will be displayed on the venue are of the splash page.' + = f.hidden_field :picture_cache = f.inputs :street, :postalcode, :city, :country, :latitude, :longitude = f.action :submit, as: :button, button_html: { class: 'btn btn-primary' } diff --git a/app/views/conferences/_venue_map.html.haml b/app/views/conferences/_venue_map.html.haml index 717069d5..9f34117f 100644 --- a/app/views/conferences/_venue_map.html.haml +++ b/app/views/conferences/_venue_map.html.haml @@ -1,5 +1,4 @@ #map{style: "height: 500px;" } -- popup = "

#{@conference.venue.name}


#{@conference.venue.street}
#{@conference.venue.city}
#{@conference.venue.country_name}" - content_for(:script_body) do :javascript // create a map in the "map" div, set the view to a given place and zoom @@ -10,8 +9,8 @@ maxZoom: 18 }).addTo(map); // add a marker in the given location, attach some popup content to it and open the popup - L.marker([#{h(@conference.venue.latitude)}, #{h(@conference.venue.longitude)}]).addTo(map) - .bindPopup("#{h(popup)}") + L.marker([#{h @conference.venue.latitude}, #{h @conference.venue.longitude}]).addTo(map) + .bindPopup("#{escape_javascript(render '/conferences/venue_map_marker', venue: @conference.venue)}") .openPopup(); // Turn scrollwheel on when user clicks map.on('focus', function(e) { diff --git a/app/views/conferences/_venue_map_marker.html.haml b/app/views/conferences/_venue_map_marker.html.haml new file mode 100644 index 00000000..c5f78345 --- /dev/null +++ b/app/views/conferences/_venue_map_marker.html.haml @@ -0,0 +1,13 @@ +- if venue.picture? + = image_tag venue.picture.thumb.url, + alt: venue.name, + class: 'img-responsive pull-right' +%h3= venue.name +%p + = venue.street + %br + = venue.city + %br + = venue.country_name +- if venue.website + %p.text-center.clearfix= sanitize(link_to venue.website, venue.website) From e96a5338e2030b4094152d103b9f744a043bec09 Mon Sep 17 00:00:00 2001 From: James Mason Date: Fri, 13 Oct 2017 10:39:10 -0700 Subject: [PATCH 25/26] Attempting to stabilize another flaky test. --- app/views/proposals/index.html.haml | 2 +- spec/features/versions_spec.rb | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/views/proposals/index.html.haml b/app/views/proposals/index.html.haml index 06154d47..5ed332dc 100644 --- a/app/views/proposals/index.html.haml +++ b/app/views/proposals/index.html.haml @@ -55,7 +55,7 @@ %p Knowing the number of visitors for the conference helps the organizers plan better. - %table.table.table-striped + %table.table.table-striped#events - @events.each do |event| %tr %td{style: "padding:20px 8px 20px 8px;"} diff --git a/spec/features/versions_spec.rb b/spec/features/versions_spec.rb index 0db2d1f9..1bf114a0 100644 --- a/spec/features/versions_spec.rb +++ b/spec/features/versions_spec.rb @@ -193,7 +193,9 @@ feature 'Version' do click_link 'Reject event' visit conference_program_proposals_path(conference_id: conference.short_title) - click_link 'Re-Submit' + within('#events') do + click_link 'Re-Submit' + end visit admin_conference_program_events_path(conference.short_title) click_button 'New' From f44e6e5ca5d683de4678c395d0c9edca8a86c342 Mon Sep 17 00:00:00 2001 From: ViditChitkara Date: Fri, 13 Oct 2017 22:30:08 +0530 Subject: [PATCH 26/26] fixed openid username closes #1747 minor changes for styling issue --- app/controllers/users/omniauth_callbacks_controller.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/users/omniauth_callbacks_controller.rb b/app/controllers/users/omniauth_callbacks_controller.rb index cf6eb6a8..ed7ce011 100644 --- a/app/controllers/users/omniauth_callbacks_controller.rb +++ b/app/controllers/users/omniauth_callbacks_controller.rb @@ -11,13 +11,13 @@ module Users def handle(provider) auth_hash = request.env['omniauth.auth'] - uid = auth_hash[:uid] + username = auth_hash.info.email.split('@')[0] openid = Openid.find_for_oauth(auth_hash) # Get or create openid # If openid exists and is associated with a user, sign in with associated user, # even if the email of the associated user and the email of the provided openid are different unless (user = openid.user) user = User.find_for_auth(auth_hash, current_user) # Get or create users - user.username = "#{uid}@#{provider}" if user.username.blank? + user.username = "#{username}@#{provider}" if user.username.blank? end begin