diff --git a/.rvmrc b/.rvmrc deleted file mode 100644 index 58cb66f7..00000000 --- a/.rvmrc +++ /dev/null @@ -1,62 +0,0 @@ -#!/usr/bin/env bash - -# This is an RVM Project .rvmrc file, used to automatically load the ruby -# development environment upon cd'ing into the directory - -# First we specify our desired [@], the @gemset name is optional, -# Only full ruby name is supported here, for short names use: -# echo "rvm use 2.1.2@fedena" > .rvmrc -environment_id="ruby-2.1.2@fedena" - -# Uncomment the following lines if you want to verify rvm version per project -# rvmrc_rvm_version="1.25.28 (stable)" # 1.10.1 seems like a safe start -# eval "$(echo ${rvm_version}.${rvmrc_rvm_version} | __rvm_awk -F. '{print "[[ "$1*65536+$2*256+$3" -ge "$4*65536+$5*256+$6" ]]"}' )" || { -# echo "This .rvmrc file requires at least RVM ${rvmrc_rvm_version}, aborting loading." -# return 1 -# } - -# First we attempt to load the desired environment directly from the environment -# file. This is very fast and efficient compared to running through the entire -# CLI and selector. If you want feedback on which environment was used then -# insert the word 'use' after --create as this triggers verbose mode. -if [[ -d "${rvm_path:-$HOME/.rvm}/environments" - && -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]] -then - \. "${rvm_path:-$HOME/.rvm}/environments/$environment_id" - for __hook in "${rvm_path:-$HOME/.rvm}/hooks/after_use"* - do - if [[ -f "${__hook}" && -x "${__hook}" && -s "${__hook}" ]] - then \. "${__hook}" || true - fi - done - unset __hook - if (( ${rvm_use_flag:=1} >= 2 )) # display only when forced - then - if [[ $- == *i* ]] # check for interactive shells - then printf "%b" "Using: $(tput setaf 2 2>/dev/null)$GEM_HOME$(tput sgr0 2>/dev/null) -" # show the user the ruby and gemset they are using in green - else printf "%b" "Using: $GEM_HOME -" # don't use colors in non-interactive shells - fi - fi -else - # If the environment file has not yet been created, use the RVM CLI to select. - rvm --create "$environment_id" || { - echo "Failed to create RVM environment '${environment_id}'." - return 1 - } -fi - -# If you use bundler, this might be useful to you: -# if [[ -s Gemfile ]] && { -# ! builtin command -v bundle >/dev/null || -# builtin command -v bundle | GREP_OPTIONS="" \grep $rvm_path/bin/bundle >/dev/null -# } -# then -# printf "%b" "The rubygem 'bundler' is not installed. Installing it now.\n" -# gem install bundler -# fi -# if [[ -s Gemfile ]] && builtin command -v bundle >/dev/null -# then -# bundle install | GREP_OPTIONS="" \grep -vE '^Using|Your bundle is complete' -# fi diff --git a/Gemfile b/Gemfile index 045ac9c9..097e799e 100644 --- a/Gemfile +++ b/Gemfile @@ -42,6 +42,7 @@ gem 'ransack' # gem 'debugger', group: [:development, :test] gem 'wicked_pdf' +gem 'wkhtmltopdf-binary' gem 'declarative_authorization' gem 'ruby_parser' gem "iconv", "~> 1.0.3" @@ -62,6 +63,8 @@ gem 'annotate', '~> 2.6.6' group :development do gem 'pry' gem 'spring' + gem "better_errors" + gem 'quiet_assets' end group :test do diff --git a/Gemfile.lock b/Gemfile.lock index 905b0529..1ebe7c60 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -51,6 +51,10 @@ GEM activerecord (>= 3.2, <= 4.3) rake (~> 10.4) arel (6.0.0) + better_errors (2.0.0) + coderay (>= 1.0.0) + erubis (>= 2.6.6) + rack (>= 0.9.0) builder (3.2.2) capybara (2.4.4) mime-types (>= 1.16) @@ -136,6 +140,8 @@ GEM coderay (~> 1.1.0) method_source (~> 0.8.1) slop (~> 3.4) + quiet_assets (1.0.3) + railties (>= 3.1, < 5.0) rack (1.6.0) rack-test (0.6.3) rack (>= 1.0) @@ -240,6 +246,7 @@ GEM wicked_pdf (0.11.0) rails will_paginate (3.0.7) + wkhtmltopdf-binary (0.9.9.3) xpath (2.0.0) nokogiri (~> 1.3) @@ -248,6 +255,7 @@ PLATFORMS DEPENDENCIES annotate (~> 2.6.6) + better_errors capybara capybara-webkit ckeditor @@ -266,6 +274,7 @@ DEPENDENCIES parallel_tests pg pry + quiet_assets rails (= 4.2) ransack responders (~> 2.0) @@ -281,3 +290,4 @@ DEPENDENCIES uglifier (>= 1.3.0) wicked_pdf will_paginate + wkhtmltopdf-binary diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index a51d1ad7..31069ade 100755 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -131,6 +131,7 @@ def block_unauthorised_entry def initialize @title = FedenaSetting.company_details[:company_name] + super end def message_user diff --git a/app/controllers/students_controller.rb b/app/controllers/students_controller.rb index e25bca88..cd32e9fb 100755 --- a/app/controllers/students_controller.rb +++ b/app/controllers/students_controller.rb @@ -54,7 +54,7 @@ def admission1 @categories = StudentCategory.active if request.post? if @config.config_value.to_i == 1 - @exist = Student.where(admission_no: student_params[:admission_no]) + @exist = Student.where(admission_no: params[:admission_no]).take if @exist.nil? @status = @student.save else @@ -77,117 +77,112 @@ def admission1 Delayed::Job.enqueue(SmsManager.new(message,recipients)) end end - flash[:notice] = "#{t('student.flash8')}" + flash[:notice] = "#{t('student.flash8')}" redirect_to:action => "admission2", :id => @student end - else - render layout: 'application_sms_active' - end + # else + # render layout: 'application_sms_active' end +end - def admission2 - @student = Student.where(id: params[:id]).includes(:guardians).first - @guardian = Guardian.new(guardian_params) - if request.post? and @guardian.save - redirect_to action: :admission2, id: @student - else - render layout: 'application' - end - +def admission2 + @student = Student.where(id: params[:id]).includes(:guardians).first + @guardian = Guardian.new(guardian_params) + if request.post? and @guardian.save + redirect_to action: :admission2, id: @student + else + render layout: 'application' end - def admission3 - @student = Student.find(params[:id]) - @parents = @student.guardians - if @parents.empty? - redirect_to action: :previous_data, id: @student.id - end - if params[:immediate_contact].nil? - render layout: 'application' - else - if request.post? - sms_setting = SmsSetting.new() - @student = Student.update(@student.id, :immediate_contact_id => params[:immediate_contact][:contact]) - if sms_setting.application_sms_active and sms_setting.student_admission_sms_active and @student.is_sms_enabled - recipients = [] - message = "#{t('student_admission_done')} #{@student.admission_no} #{t('password_is')} #{@student.admission_no}123" - if sms_setting.parent_sms_active - guardian = Guardian.find(@student.immediate_contact_id) - recipients.push guardian.mobile_phone unless guardian.mobile_phone.nil? - end - unless recipients.empty? - Delayed::Job.enqueue(SmsManager.new(message,recipients)) - end - end - redirect_to :action => "previous_data", :id => @student.id - else - render layout: 'application' +end + +def admission3 + @student = Student.find(params[:id]) + @parents = @student.guardians + if @parents.empty? + redirect_to action: :previous_data, id: @student.id + end + return if params[:immediate_contact].nil? + if request.post? + sms_setting = SmsSetting.new() + @student = Student.update(@student.id, :immediate_contact_id => params[:immediate_contact][:contact]) + if sms_setting.application_sms_active and sms_setting.student_admission_sms_active and @student.is_sms_enabled + recipients = [] + message = "#{t('student_admission_done')} #{@student.admission_no} #{t('password_is')} #{@student.admission_no}123" + if sms_setting.parent_sms_active + guardian = Guardian.find(@student.immediate_contact_id) + recipients.push guardian.mobile_phone unless guardian.mobile_phone.nil? + end + unless recipients.empty? + Delayed::Job.enqueue(SmsManager.new(message,recipients)) end end + redirect_to :action => "previous_data", :id => @student.id end +end - def admission3_1 - @student = Student.find(params[:id]) - @parents = @student.guardians - if @parents.blank? - redirect_to action: :admission4, id: @student - end - - if params[:immediate_contact].blank? - render layout: 'application' - else - if request.post? - sms_setting = SmsSetting.new() - @student = Student.update(@student.id, :immediate_contact_id => params[:immediate_contact][:contact]) - if sms_setting.application_sms_active and sms_setting.student_admission_sms_active and @student.is_sms_enabled - recipients = [] - message = "#{t('student_admission_done')} #{@student.admission_no} #{t('password_is')}#{@student.admission_no}123" - if sms_setting.parent_sms_active - guardian = @student.immediate_guardian - recipients.push guardian.mobile_phone unless guardian.mobile_phone.blank? - end - unless recipients.blank? - Delayed::Job.enqueue(SmsManager.new(message,recipients)) - end - end - redirect_to action: :profile, id: @student.id - else - render layout: 'application' - end - end +def admission3_1 + @student = Student.find(params[:id]) + @parents = @student.guardians + if @parents.blank? + redirect_to action: :admission4, id: @student end - def previous_data - @student = Student.find(params[:id]) - @previous_data = StudentPreviousData.new student_previous_details_params - @previous_subject = StudentPreviousSubjectMark.where(:student_id => @student) + if params[:immediate_contact].blank? + render layout: 'application' + else if request.post? - @previous_data.save - redirect_to action: :admission4, id: @student.id + sms_setting = SmsSetting.new() + @student = Student.update(@student.id, :immediate_contact_id => params[:immediate_contact][:contact]) + if sms_setting.application_sms_active and sms_setting.student_admission_sms_active and @student.is_sms_enabled + recipients = [] + message = "#{t('student_admission_done')} #{@student.admission_no} #{t('password_is')}#{@student.admission_no}123" + if sms_setting.parent_sms_active + guardian = @student.immediate_guardian + recipients.push guardian.mobile_phone unless guardian.mobile_phone.blank? + end + unless recipients.blank? + Delayed::Job.enqueue(SmsManager.new(message,recipients)) + end + end + redirect_to action: :profile, id: @student.id else render layout: 'application' end end +end - def previous_data_edit - @student = Student.find(params[:id]) - @previous_data = StudentPreviousData.find_by_student_id(params[:id]) - @previous_subject = StudentPreviousSubjectMark.find_all_by_student_id(@student) - if request.post? - @previous_data.update_attributes(params[:previous_data]) - redirect_to :action => "show_previous_details", :id => @student.id - end +def previous_data + @student = Student.find(params[:id]) + @previous_data = StudentPreviousData.new student_previous_details_params + @previous_subject = StudentPreviousSubjectMark.where(:student_id => @student) + if request.post? + @previous_data.save + redirect_to action: :admission4, id: @student.id + else + render layout: 'application' end +end - def previous_subject - @student = Student.find(params[:id]) - @student_previous_subject_details=StudentPreviousSubjectMark.new +def previous_data_edit + @student = Student.find(params[:id]) + @previous_data = StudentPreviousData.find_by_student_id(params[:id]) + @previous_subject = StudentPreviousSubjectMark.find_all_by_student_id(@student) + if request.post? + @previous_data.update_attributes(params[:previous_data]) + redirect_to :action => "show_previous_details", :id => @student.id end +end - def save_previous_subject - @student_previous_subject_details = StudentPreviousSubjectMark.new student_previous_subject_details_params - @student_previous_subject_details.save - @previous_subject = StudentPreviousSubjectMark.where(:student_id => @student) +def previous_subject + @student = Student.find(params[:id]) + @student_previous_subject_details=StudentPreviousSubjectMark.new +end + +def save_previous_subject + @student_previous_subject_details = StudentPreviousSubjectMark.new student_previous_subject_details_params + @student_previous_subject_details.save + @previous_subject = StudentPreviousSubjectMark.where(:student_id => @student) #@all_previous_subject = StudentPreviousSubjectMark.find(:all,:conditions=>"student_id = #{@previous_subject.student_id}") end @@ -212,7 +207,7 @@ def admission4 @errors = [] mandatory_fields = StudentAdditionalField.where(is_mandatory: true, status: true) mandatory_fields.each do|m| - unless params[:student_additional_details].blank? + unless params[:student_additional_details].blank? unless params[:student_additional_details][m.id.to_s.to_sym].present? @errors << "#{m.name} must contain atleast one selected option." @error=true @@ -222,136 +217,136 @@ def admission4 @error=true end end - end - end - unless @error==true - unless params[:student_additional_details].blank? - params[:student_additional_details].each_pair do |k, v| - addl_info = v['additional_info'] - addl_field = StudentAdditionalField.find_by_id(k) - if addl_field.input_type == "has_many" - addl_info = addl_info.join(", ") - end - prev_record = StudentAdditionalDetail.find_by_student_id_and_additional_field_id(params[:id], k) - unless prev_record.nil? - prev_record.update_attributes(:additional_info => addl_info) - else - addl_detail = StudentAdditionalDetail.new(:student_id => params[:id], - :additional_field_id => k,:additional_info => addl_info) - addl_detail.save if addl_detail.valid? - end - end - end - flash[:notice] = "#{t('student.flash9')} #{@student.first_name} #{@student.last_name}. #{t('new_admission_link')} Click Here".html_safe - redirect_to profile_student_path(@student) end end - end - - def edit_admission4 - @student = Student.find(params[:id]) - @additional_fields = StudentAdditionalField.where(status: true) - @additional_details = StudentAdditionalDetail.find_all_by_student_id(@student) - - if @additional_details.empty? - redirect_to admission4_student_path(@student) - end - if request.post? - + unless @error==true + unless params[:student_additional_details].blank? params[:student_additional_details].each_pair do |k, v| - row_id=StudentAdditionalDetail.find_by_student_id_and_additional_field_id(@student.id,k) - unless row_id.nil? - additional_detail = StudentAdditionalDetail.find_by_student_id_and_additional_field_id(@student.id,k) - StudentAdditionalDetail.update(additional_detail.id,:additional_info => v['additional_info']) + addl_info = v['additional_info'] + addl_field = StudentAdditionalField.find_by_id(k) + if addl_field.input_type == "has_many" + addl_info = addl_info.join(", ") + end + prev_record = StudentAdditionalDetail.find_by_student_id_and_additional_field_id(params[:id], k) + unless prev_record.nil? + prev_record.update_attributes(:additional_info => addl_info) else - StudentAdditionalDetail.create(:student_id=>@student.id,:additional_field_id=>k,:additional_info=>v['additional_info']) + addl_detail = StudentAdditionalDetail.new(:student_id => params[:id], + :additional_field_id => k,:additional_info => addl_info) + addl_detail.save if addl_detail.valid? end end - flash[:notice] = "#{t('student_text')} #{@student.first_name} #{t('flash2')}" - redirect_to profile_student_path(@student) - end - end - def add_additional_details - @additional_details = StudentAdditionalField.where(status: true).order("priority ASC") - @inactive_additional_details = StudentAdditionalField.where(status: false).order("priority ASC") - @additional_field = StudentAdditionalField.new - @student_additional_field_option = @additional_field.student_additional_field_options.build - if request.post? - priority = 1 - unless @additional_details.empty? - last_priority = @additional_details.map{|r| r.priority}.compact.sort.last - priority = last_priority + 1 - end - @additional_field = StudentAdditionalField.new(student_additional_field_params) - @additional_field.priority = priority - if @additional_field.save - flash[:notice] = t('student.flash1') - redirect_to controller: :students, action: :add_additional_details - end end + flash[:notice] = "#{t('student.flash9')} #{@student.first_name} #{@student.last_name}. #{t('new_admission_link')} Click Here".html_safe + redirect_to profile_student_path(@student) end +end +end - def change_field_priority - @additional_field = StudentAdditionalField.find(params[:id]) - priority = @additional_field.priority - @additional_fields = StudentAdditionalField.where(status: true).order("priority ASC").map{|b| b.priority.to_i} - position = @additional_fields.index(priority) - if params[:order]=="up" - prev_field = StudentAdditionalField.find_by_priority(@additional_fields[position - 1]) - else - prev_field = StudentAdditionalField.find_by_priority(@additional_fields[position + 1]) - end - @additional_field.update_attributes(:priority=>prev_field.priority) - prev_field.update_attributes(:priority=>priority.to_i) - @additional_field = StudentAdditionalField.new - @additional_details = StudentAdditionalField.where(status: true).order("priority ASC") - @inactive_additional_details = StudentAdditionalField.where(status: false).order("priority ASC") +def edit_admission4 + @student = Student.find(params[:id]) + @additional_fields = StudentAdditionalField.where(status: true) + @additional_details = StudentAdditionalDetail.find_all_by_student_id(@student) + + if @additional_details.empty? + redirect_to admission4_student_path(@student) end + if request.post? - def edit_additional_details - @additional_details = StudentAdditionalField.where(status: true).order("priority ASC") - @inactive_additional_details = StudentAdditionalField.where(status: false).order("priority ASC") - @additional_field = StudentAdditionalField.find(params[:id]) - @student_additional_field_option = @additional_field.student_additional_field_options - if request.get? - render :action=>'add_additional_details' - else - if @additional_field.update_attributes(student_additional_field_params) - flash[:notice] = "#{t('student.flash2')}" - redirect_to :action => "add_additional_details" + params[:student_additional_details].each_pair do |k, v| + row_id=StudentAdditionalDetail.find_by_student_id_and_additional_field_id(@student.id,k) + unless row_id.nil? + additional_detail = StudentAdditionalDetail.find_by_student_id_and_additional_field_id(@student.id,k) + StudentAdditionalDetail.update(additional_detail.id,:additional_info => v['additional_info']) else - render :action=>"add_additional_details" + StudentAdditionalDetail.create(:student_id=>@student.id,:additional_field_id=>k,:additional_info=>v['additional_info']) end end + flash[:notice] = "#{t('student_text')} #{@student.first_name} #{t('flash2')}" + redirect_to profile_student_path(@student) end +end +def add_additional_details + @additional_details = StudentAdditionalField.where(status: true).order("priority ASC") + @inactive_additional_details = StudentAdditionalField.where(status: false).order("priority ASC") + @additional_field = StudentAdditionalField.new + @student_additional_field_option = @additional_field.student_additional_field_options.build + if request.post? + priority = 1 + unless @additional_details.empty? + last_priority = @additional_details.map{|r| r.priority}.compact.sort.last + priority = last_priority + 1 + end + @additional_field = StudentAdditionalField.new(student_additional_field_params) + @additional_field.priority = priority + if @additional_field.save + flash[:notice] = t('student.flash1') + redirect_to controller: :students, action: :add_additional_details + end + end +end - def delete_additional_details - students = StudentAdditionalDetail.where(additional_field_id: params[:id]) - if students.blank? - StudentAdditionalField.find(params[:id]).destroy - @additional_details = StudentAdditionalField.where(status: true).order("priority ASC") - @inactive_additional_details = StudentAdditionalField.where(status: false).order("priority ASC") - flash[:notice]="#{t('student.flash13')}" +def change_field_priority + @additional_field = StudentAdditionalField.find(params[:id]) + priority = @additional_field.priority + @additional_fields = StudentAdditionalField.where(status: true).order("priority ASC").map{|b| b.priority.to_i} + position = @additional_fields.index(priority) + if params[:order]=="up" + prev_field = StudentAdditionalField.find_by_priority(@additional_fields[position - 1]) + else + prev_field = StudentAdditionalField.find_by_priority(@additional_fields[position + 1]) + end + @additional_field.update_attributes(:priority=>prev_field.priority) + prev_field.update_attributes(:priority=>priority.to_i) + @additional_field = StudentAdditionalField.new + @additional_details = StudentAdditionalField.where(status: true).order("priority ASC") + @inactive_additional_details = StudentAdditionalField.where(status: false).order("priority ASC") +end + +def edit_additional_details + @additional_details = StudentAdditionalField.where(status: true).order("priority ASC") + @inactive_additional_details = StudentAdditionalField.where(status: false).order("priority ASC") + @additional_field = StudentAdditionalField.find(params[:id]) + @student_additional_field_option = @additional_field.student_additional_field_options + if request.get? + render :action=>'add_additional_details' + else + if @additional_field.update_attributes(student_additional_field_params) + flash[:notice] = "#{t('student.flash2')}" redirect_to :action => "add_additional_details" else - flash[:notice]="#{t('student.flash14')}" - redirect_to :action => "add_additional_details" + render :action=>"add_additional_details" end end +end - def change_to_former - @dependency = @student.former_dependency - if request.post? - @student.archive_student(params[:remove][:status_description]) - end +def delete_additional_details + students = StudentAdditionalDetail.where(additional_field_id: params[:id]) + if students.blank? + StudentAdditionalField.find(params[:id]).destroy + @additional_details = StudentAdditionalField.where(status: true).order("priority ASC") + @inactive_additional_details = StudentAdditionalField.where(status: false).order("priority ASC") + flash[:notice]="#{t('student.flash13')}" + redirect_to :action => "add_additional_details" + else + flash[:notice]="#{t('student.flash14')}" + redirect_to :action => "add_additional_details" + end +end + +def change_to_former + @dependency = @student.former_dependency + if request.post? + @student.archive_student(params[:remove][:status_description]) end +end - def generate_tc_pdf - @student = ArchivedStudent.find_by_admission_no(params[:id]) - @father = ArchivedGuardian.find_by_ward_id(@student.id, :conditions=>"relation = 'father'") - @mother = ArchivedGuardian.find_by_ward_id(@student.id, :conditions=>"relation = 'mother'") - @immediate_contact = ArchivedGuardian.find_by_ward_id(@student.immediate_contact_id) \ - unless @student.immediate_contact_id.nil? or @student.immediate_contact_id == '' +def generate_tc_pdf + @student = ArchivedStudent.find_by_admission_no(params[:id]) + @father = ArchivedGuardian.find_by_ward_id(@student.id, :conditions=>"relation = 'father'") + @mother = ArchivedGuardian.find_by_ward_id(@student.id, :conditions=>"relation = 'mother'") + @immediate_contact = ArchivedGuardian.find_by_ward_id(@student.immediate_contact_id) \ + unless @student.immediate_contact_id.nil? or @student.immediate_contact_id == '' render :pdf=>'generate_tc_pdf' # respond_to do |format| # format.pdf { render :layout => false } @@ -524,74 +519,74 @@ def search_ajax @active = true if params[:query].length>= 3 @students = Student.where("first_name LIKE ? OR middle_name LIKE ? OR last_name LIKE ? - OR admission_no = ? ", - "#{params[:query]}%","#{params[:query]}%","#{params[:query]}%", - "#{params[:query]}").order("batch_id asc,first_name asc").includes([{:batch=>:course}]) unless params[:query] == '' + OR admission_no = ? ", + "#{params[:query]}%","#{params[:query]}%","#{params[:query]}%", + "#{params[:query]}").order("batch_id asc,first_name asc").includes([{:batch=>:course}]) unless params[:query] == '' else @students = Student.where("admission_no = ? " , params[:query]). - order("batch_id asc,first_name asc").includes([{:batch=>:course}]) unless params[:query] == '' + order("batch_id asc,first_name asc").includes([{:batch=>:course}]) unless params[:query] == '' end render :layout => false else if params[:query].length>= 3 @archived_students = ArchivedStudent.where("first_name LIKE ? OR middle_name LIKE ? OR last_name LIKE ? - OR admission_no = ? ", - "#{params[:query]}%","#{params[:query]}%","#{params[:query]}%", - "#{params[:query]}").order("batch_id asc,first_name asc").includes([{:batch=>:course}]) unless params[:query] == '' + OR admission_no = ? ", + "#{params[:query]}%","#{params[:query]}%","#{params[:query]}%", + "#{params[:query]}").order("batch_id asc,first_name asc").includes([{:batch=>:course}]) unless params[:query] == '' else @archived_students = ArchivedStudent.find("admission_no = ? " , params[:query]).order("batch_id asc,first_name asc").includes([{:batch=>:course}]) unless params[:query] == '' end # render :partial => "search_ajax" - end - end +end +end - def student_annual_overview - @graph = open_flash_chart_object(770, 350, "/student/graph_for_student_annual_overview?student=#{params[:student]}&year=#{params[:year]}") - end +def student_annual_overview + @graph = open_flash_chart_object(770, 350, "/student/graph_for_student_annual_overview?student=#{params[:student]}&year=#{params[:year]}") +end - def subject_wise_report - @student = Student.find(params[:student]) - @subject = Subject.find(params[:subject]) - @examtypes = @subject.examination_types - @graph = open_flash_chart_object(770, 350, "/student/graph_for_subject_wise_report_for_one_subject?student=#{params[:student]}&subject=#{params[:subject]}") - end +def subject_wise_report + @student = Student.find(params[:student]) + @subject = Subject.find(params[:subject]) + @examtypes = @subject.examination_types + @graph = open_flash_chart_object(770, 350, "/student/graph_for_subject_wise_report_for_one_subject?student=#{params[:student]}&subject=#{params[:subject]}") +end - def add_guardian - @parent_info = Guardian.new(guardian_params) - @countries = Country.all - if request.post? and @parent_info.save - flash[:notice] = "#{t('student.flash5')} #{@parent_info.ward.full_name}" - redirect_to :action => "admission3_1", :id => @parent_info.ward_id - else - render layout: 'application' - end +def add_guardian + @parent_info = Guardian.new(guardian_params) + @countries = Country.all + if request.post? and @parent_info.save + flash[:notice] = "#{t('student.flash5')} #{@parent_info.ward.full_name}" + redirect_to :action => "admission3_1", :id => @parent_info.ward_id + else + render layout: 'application' end +end - def list_students_by_course - @students = Student.where(:batch_id => params[:batch_id]).order('first_name ASC') - end +def list_students_by_course + @students = Student.where(:batch_id => params[:batch_id]).order('first_name ASC') +end - def profile - @current_user = current_user - @address = "#{@student.address_line1} #{@student.address_line2}" - @additional_fields = StudentAdditionalField.where(status: true) - @sms_module = Settings.available_modules - @sms_setting = SmsSetting.new - @previous_data = StudentPreviousData.find_by_student_id(@student.id) - @immediate_contact = @student.immediate_guardian - render layout: 'application' - end +def profile + @current_user = current_user + @address = "#{@student.address_line1} #{@student.address_line2}" + @additional_fields = StudentAdditionalField.where(status: true) + @sms_module = Settings.available_modules + @sms_setting = SmsSetting.new + @previous_data = StudentPreviousData.find_by_student_id(@student.id) + @immediate_contact = @student.immediate_guardian + render layout: 'application' +end - def profile_pdf - @current_user = current_user - @student = Student.find(params[:id]) - @address = @student.address_line1.to_s + ' ' + @student.address_line2.to_s - @additional_fields = StudentAdditionalField.where(:status => true) - @sms_module = Settings.available_modules - @sms_setting = SmsSetting.new - @previous_data = StudentPreviousData.find_by_student_id(@student.id) - @immediate_contact = Guardian.find(@student.immediate_contact_id) \ - unless @student.immediate_contact_id.nil? or @student.immediate_contact_id == '' +def profile_pdf + @current_user = current_user + @student = Student.find(params[:id]) + @address = @student.address_line1.to_s + ' ' + @student.address_line2.to_s + @additional_fields = StudentAdditionalField.where(:status => true) + @sms_module = Settings.available_modules + @sms_setting = SmsSetting.new + @previous_data = StudentPreviousData.find_by_student_id(@student.id) + @immediate_contact = Guardian.find(@student.immediate_contact_id) \ + unless @student.immediate_contact_id.nil? or @student.immediate_contact_id == '' render :pdf=>'profile_pdf' end @@ -1386,13 +1381,13 @@ def fee_details private - def student_params - params.require(:student).permit(:admission_no, :admission_date, :first_name, :middle_name, :last_name, :batch_id, :date_of_birth, :gender, :blood_group, :birth_place, :nationality_id, :language, :student_category_id, :religion, :address_line1, :address_line2, :city, :state, :pin_code, :country_id, :phone1, :phone2, :email, :photo) - end + def student_params + params.require(:student).permit(:admission_no, :admission_date, :first_name, :middle_name, :last_name, :batch_id, :date_of_birth, :gender, :blood_group, :birth_place, :nationality_id, :language, :student_category_id, :religion, :address_line1, :address_line2, :city, :state, :pin_code, :country_id, :phone1, :phone2, :email, :photo) + end - def find_student - @student = Student.find params[:id] - end + def find_student + @student = Student.find params[:id] + end # This method set permit the user params def student_additional_field_params @@ -1403,17 +1398,17 @@ def guardian_params params[:guardian] = params[:parent_detail] if params[:parent_detail] params.require(:guardian).permit(:ward_id, :first_name, :last_name, :relation, :email, :office_phone1, :office_phone2, :mobile_phone, :office_address_line1, :office_address_line2, :city, :state, :country_id, :dob, :occupation, :income, :education, :user_id) if params[:guardian] # params.require(:parent_detail).permit(:ward_id, :first_name, :last_name, :relation, :email, :office_phone1, :office_phone2, :mobile_phone, :office_address_line1, :office_address_line2, :city, :state, :country_id, :dob, :occupation, :income, :education, :user_id) if params[:parent_detail] - end +end - def student_previous_details_params - params.require(:student_previous_details).permit(:student_id, :institution, :year, :course, :total_mark) if params[:student_previous_details] - end +def student_previous_details_params + params.require(:student_previous_details).permit(:student_id, :institution, :year, :course, :total_mark) if params[:student_previous_details] +end - def student_previous_subject_details_params - params.require(:student_previous_subject_details).permit(:student_id, :subject, :mark) if params[:student_previous_subject_details] - end +def student_previous_subject_details_params + params.require(:student_previous_subject_details).permit(:student_id, :subject, :mark) if params[:student_previous_subject_details] +end - def student_category_params - params.require(:student_category).permit(:name, :is_deleted) if params[:student_category] - end +def student_category_params + params.require(:student_category).permit(:name, :is_deleted) if params[:student_category] +end end diff --git a/app/models/settings.rb b/app/models/settings.rb index de3d7e26..5334c0fb 100755 --- a/app/models/settings.rb +++ b/app/models/settings.rb @@ -74,10 +74,15 @@ def set_config_values(values_hash) end def set_value(key, value) + if key.upcase == "GPA" || key.upcase == "CWA" || key.upcase == "CCE" + key = key.upcase + else + key=key + end config = find_by_config_key(key) config.nil? ? - Settings.create(config_key: key, config_value: value) : - config.update_attribute(:config_value, value) + Settings.create(config_key: key, config_value: value) : + config.update_attribute(:config_value, value) end def get_multiple_configs_as_hash(keys) @@ -100,6 +105,7 @@ def default_country def set_grading_types(updates) #expects an array of integers types grading_types = Course::GRADINGTYPES + updates.inject({}){|caps_hash,og_hash| caps_hash.merge(og_hash[0].upcase => og_hash[1] ) } deletions = grading_types.keys - updates updates.each do |t| find_or_create_by_config_key(grading_types[t]).update_attribute(:config_value, 1) diff --git a/app/views/finance/master_category_create.js.haml b/app/views/finance/master_category_create.js.haml new file mode 100644 index 00000000..49b396da --- /dev/null +++ b/app/views/finance/master_category_create.js.haml @@ -0,0 +1,6 @@ +- if @error.blank? + $('#form-errors').html(''); + $('#flash_box').html("#{j content_tag :p, t('master_category_created_sucessfully'), class: 'flash-msg'}") + $('#modal-box').modalBox('close'); +- else + $('#form-errors').html("#{j render 'errors', errors: @finance_fee_category}") diff --git a/app/views/finance/master_category_update.js.haml b/app/views/finance/master_category_update.js.haml new file mode 100644 index 00000000..b8228cf0 --- /dev/null +++ b/app/views/finance/master_category_update.js.haml @@ -0,0 +1,8 @@ +- if @finance_fee_category.errors.any? + $('#form-errors').html("#{escape_javascript(render 'class_timings/errors', object: @finance_fee_category )}") + \// # page.visual_effect(:highlight, 'form-errors') +- else + $('#form-errors').html(''); + $('#modal-box').modalBox('close'); + $('#categories').html("#{escape_javascript(render 'master_category_list')}"); + $('#flash_box').append(#{escape_javascript("

#t('flash_msg13')}

" )}) diff --git a/app/views/users/first_login_change_password.haml b/app/views/users/first_login_change_password.haml index cf6b5619..4742a7ed 100644 --- a/app/views/users/first_login_change_password.haml +++ b/app/views/users/first_login_change_password.haml @@ -30,8 +30,7 @@ #errorExplanation.errorExplanation = flash[:warn_notice] #changepw-form - = form_for :user,@user do |u| - = u.error_messages + = form_for :user,url:first_login_change_password_user_path do |u| .label-field-pair %label{:for => "course_section"}= t('new_password') .text-input-bg diff --git a/app/views/users/list_employee_user.js.haml b/app/views/users/list_employee_user.js.haml new file mode 100644 index 00000000..1b5c82e7 --- /dev/null +++ b/app/views/users/list_employee_user.js.haml @@ -0,0 +1 @@ +$('#users').html("#{escape_javascript(render 'users')}") diff --git a/app/views/users/list_student_user.js.haml b/app/views/users/list_student_user.js.haml new file mode 100644 index 00000000..1b5c82e7 --- /dev/null +++ b/app/views/users/list_student_user.js.haml @@ -0,0 +1 @@ +$('#users').html("#{escape_javascript(render 'users')}") diff --git a/app/views/users/list_user.js.haml b/app/views/users/list_user.js.haml new file mode 100644 index 00000000..70fcb55c --- /dev/null +++ b/app/views/users/list_user.js.haml @@ -0,0 +1,30 @@ +- case params[:user_type] +- when 'Admin' + - @users = User.active.where(admin: true).order('first_name ASC') + $('#users').html("#{escape_javascript(render partial: 'users')}"); + $('#employee_user').html(''); + $('#student_user').html(''); +- when 'Employee' + - hr = Settings.find_by_config_value("HR") + - unless hr.nil? + $('#employee_user').html("#{escape_javascript(render partial: 'employee_user')}"); + $('#users').html(''); + $('#student_user').html(''); + - else + - @users = User.active.find_all_by_employee(1) + $('#users').html("#{escape_javascript(render partial: 'users')}"); + $('#employee_user').html(''); + $('#student_user').html(''); +- when 'Student' + $('#student_user').html("#{escape_javascript(render partial: 'student_user')}"); + $('#users').html(''); + $('#employee_user').html(''); +- when "Parent" + $('#student_user').html("#{escape_javascript(render partial: 'parent_user')}"); + $('#users').html(''); + $('#employee_user').html(''); +- when '' + - @users = "" + $('#users').html("#{escape_javascript(render partial: 'users')}"); + $('#employee_user').html(''); + $('#student_user').html(''); diff --git a/config/initializers/wicked_pdf.rb b/config/initializers/wicked_pdf.rb index 1a57d4e9..42098559 100644 --- a/config/initializers/wicked_pdf.rb +++ b/config/initializers/wicked_pdf.rb @@ -1,5 +1,4 @@ WickedPdf.config = { - :wkhtmltopdf => '/opt/wkhtmltopdf', :layout => "pdf.html", :margin => { :top=> 40, :bottom => 20, diff --git a/config/routes.rb b/config/routes.rb index 98e266d9..de7f2341 100755 --- a/config/routes.rb +++ b/config/routes.rb @@ -70,7 +70,7 @@ get :show_event_tooltip end end - + resources :cce_reports resources :cce_exam_categories resources :cce_grade_sets do @@ -937,6 +937,7 @@ get :change_password post :change_password get :first_login_change_password + post :first_login_change_password end end