@@ -66,34 +66,43 @@ def update
6666 end
6767
6868 def check_in
69- redirect_to_checkins = params [ :redirect_to_checkins ] || false
70- show_redirect_path = redirect_to_checkins ? manage_checkin_path ( @questionnaire ) : manage_questionnaire_path ( @questionnaire )
71- index_redirect_path = redirect_to_checkins ? manage_checkins_path : manage_questionnaires_path
72- if params [ :check_in ] == "true"
73- if params [ :questionnaire ]
74- q_params = params . require ( :questionnaire ) . permit ( :phone , :can_share_info , :email )
75- email = q_params . delete ( :email )
76- @questionnaire . update_attributes ( q_params )
77- @questionnaire . user . update_attributes ( email : email )
69+ respond_to do |format |
70+ format . json do
71+ if params [ :check_in ] == "true"
72+ check_in_attendee
73+ elsif params [ :check_in ] == "false"
74+ check_out_attendee
75+ end
7876 end
79- unless @questionnaire . valid?
80- flash [ :alert ] = @questionnaire . errors . full_messages . join ( ", " )
81- redirect_to show_redirect_path
82- return
77+ format . html do
78+ redirect_to_checkins = params [ :redirect_to_checkins ] || false
79+ show_redirect_path = redirect_to_checkins ? manage_checkin_path ( @questionnaire ) : manage_questionnaire_path ( @questionnaire )
80+ index_redirect_path = redirect_to_checkins ? manage_checkins_path : manage_questionnaires_path
81+ if params [ :check_in ] == "true"
82+ if params [ :questionnaire ]
83+ q_params = params . require ( :questionnaire ) . permit ( :phone , :can_share_info , :email )
84+ email = q_params . delete ( :email )
85+ @questionnaire . update_attributes ( q_params )
86+ @questionnaire . user . update_attributes ( email : email )
87+ end
88+ unless @questionnaire . valid?
89+ flash [ :alert ] = @questionnaire . errors . full_messages . join ( ", " )
90+ redirect_to show_redirect_path
91+ return
92+ end
93+ check_in_attendee
94+ flash [ :notice ] = t ( :checked_in , scope : 'messages' , user_full_name : @questionnaire . user . full_name )
95+ elsif params [ :check_in ] == "false"
96+ check_out_attendee
97+ flash [ :notice ] = t ( :checked_out , scope : 'messages' , user_full_name : @questionnaire . user . full_name )
98+ else
99+ flash [ :alert ] = t ( :missing_check_in , scope : 'messages' )
100+ redirect_to show_redirect_path
101+ return
102+ end
103+ redirect_to index_redirect_path
83104 end
84- @questionnaire . update_attribute ( :checked_in_at , Time . now )
85- @questionnaire . update_attribute ( :checked_in_by_id , current_user . id )
86- flash [ :notice ] = "Checked in #{ @questionnaire . user . full_name } ."
87- elsif params [ :check_in ] == "false"
88- @questionnaire . update_attribute ( :checked_in_at , nil )
89- @questionnaire . update_attribute ( :checked_in_by_id , current_user . id )
90- flash [ :notice ] = "#{ @questionnaire . user . full_name } no longer checked in."
91- else
92- flash [ :alert ] = "No check-in action provided!"
93- redirect_to show_redirect_path
94- return
95105 end
96- redirect_to index_redirect_path
97106 end
98107
99108 def destroy
@@ -147,6 +156,16 @@ def bulk_apply
147156
148157 private
149158
159+ def check_in_attendee
160+ @questionnaire . update_attribute ( :checked_in_at , Time . now )
161+ @questionnaire . update_attribute ( :checked_in_by_id , current_user . id )
162+ end
163+
164+ def check_out_attendee
165+ @questionnaire . update_attribute ( :checked_in_at , nil )
166+ @questionnaire . update_attribute ( :checked_in_by_id , current_user . id )
167+ end
168+
150169 def questionnaire_params
151170 # Note that this ONLY considers parameters for the questionnaire, not the user.
152171 # TODO: Refactor "email" out to user as first_name and last_name were
0 commit comments