Skip to content

Commit

Permalink
Merge pull request #314 from cs169/187460464/bugfix/tooltip
Browse files Browse the repository at this point in the history
CS169L SP24: Iter 2-4 Changes
  • Loading branch information
cycomachead authored May 11, 2024
2 parents 2f7823d + 34208a6 commit e0df660
Show file tree
Hide file tree
Showing 67 changed files with 2,153 additions and 270 deletions.
3 changes: 3 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -96,4 +96,7 @@ group :test do
# Accessibility Testing
gem "axe-core-rspec"
gem "axe-core-cucumber"

# Test suite speedup
gem "rails-controller-testing"
end
5 changes: 5 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -399,6 +399,10 @@ GEM
bundler (>= 1.15.0)
railties (= 6.1.7.7)
sprockets-rails (>= 2.0.0)
rails-controller-testing (1.0.5)
actionpack (>= 5.0.1.rc1)
actionview (>= 5.0.1.rc1)
activesupport (>= 5.0.1.rc1)
rails-dom-testing (2.2.0)
activesupport (>= 5.0.0)
minitest
Expand Down Expand Up @@ -595,6 +599,7 @@ DEPENDENCIES
puma (~> 5)
rack-mini-profiler (~> 2.0)
rails (= 6.1.7.7)
rails-controller-testing
rspec-rails
rubocop
rubocop-faker
Expand Down
2 changes: 1 addition & 1 deletion app/controllers/application_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,6 @@ def check_teacher_admin
end

def set_sentry_user
Sentry.set_user(id: session[:user_id], email: current_user&.email)
Sentry.set_user(id: session[:user_id], email: current_user&.primary_email)
end
end
46 changes: 46 additions & 0 deletions app/controllers/email_addresses_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# frozen_string_literal: true

class EmailAddressesController < ApplicationController
before_action :require_login
before_action :require_admin
before_action :set_teacher

def edit
end

def update
if update_personal_emails
redirect_to teacher_path(@teacher), notice: "Personal email addresses updated successfully."
else
flash.now[:alert] = "An error occurred: " + (@error_messages || "Unknown error")
render :edit
end
end

private
def set_teacher
@teacher = Teacher.find(params[:teacher_id])
end

def update_personal_emails
EmailAddress.transaction do
params[:teacher][:email_addresses_attributes].each do |_, email_attr|
if email_attr[:id].present?
email = EmailAddress.find(email_attr[:id])
if email_attr[:_destroy] == "1"
email.destroy!
else
email.update!(email: email_attr[:email])
end
else
@teacher.email_addresses.create!(email: email_attr[:email]) unless email_attr[:email].blank?
end
end
end
true
rescue ActiveRecord::RecordInvalid => e
@error_messages = e.record&.errors&.full_messages&.join(", ")
@error_messages ||= "A validation error occurred, but no specific error details are available."
false
end
end
72 changes: 72 additions & 0 deletions app/controllers/pd_registrations_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# frozen_string_literal: true

class PdRegistrationsController < ApplicationController
before_action :require_login
before_action :require_admin
before_action :set_pd_registration, only: [:show, :edit, :update, :destroy]
before_action :set_professional_development, only: [:new, :create, :edit, :update, :destroy]

def index
end

def show
end

def new
@pd_registration = PdRegistration.new
end

def edit
end

def create
@pd_registration = PdRegistration.new(pd_registration_params.merge(
professional_development_id: @professional_development.id))

if @pd_registration.save
redirect_to professional_development_path(@professional_development),
notice: "Registration for professional development was successfully created."
else
flash.now[:alert] = @pd_registration.errors.full_messages.to_sentence
render "professional_developments/show"
end
end

def update
if @pd_registration.update(pd_registration_params)
redirect_to professional_development_path(@professional_development),
notice: "Registration was successfully updated."
else
flash.now[:alert] = @pd_registration.errors.full_messages.to_sentence
render "professional_developments/show"
end
end

def destroy
if @pd_registration.destroy
redirect_to professional_development_path(@professional_development),
notice: "Registration was successfully cancelled."
else
flash.now[:alert] = @pd_registration.errors.full_messages.to_sentence
render "professional_developments/show"
end
end

private
def set_pd_registration
@pd_registration = PdRegistration.find(params[:id])
rescue ActiveRecord::RecordNotFound
redirect_to professional_development_path, alert: "Registration not found."
end

def set_professional_development
@professional_development = ProfessionalDevelopment.find_by(id: params[:professional_development_id])
unless @professional_development
redirect_to professional_developments_path, alert: "Professional Development not found."
end
end

def pd_registration_params
params.require(:pd_registration).permit(:teacher_id, :attended, :role, :professional_development_id)
end
end
61 changes: 61 additions & 0 deletions app/controllers/professional_developments_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# frozen_string_literal: true

class ProfessionalDevelopmentsController < ApplicationController
before_action :set_professional_development, only: [:show, :edit, :update, :destroy]
before_action :require_login
before_action :require_admin

def index
@professional_developments = ProfessionalDevelopment.all
end

def show
end

def new
@professional_development = ProfessionalDevelopment.new
end

def edit
end

def create
@professional_development = ProfessionalDevelopment.new(professional_development_params)

if @professional_development.save
redirect_to @professional_development, notice: "Professional development created successfully."
else
flash.now[:alert] = @professional_development.errors.full_messages.to_sentence
render :new
end
end

def update
if @professional_development.update(professional_development_params)
redirect_to @professional_development, notice: "Professional development updated successfully."
else
flash.now[:alert] = @professional_development.errors.full_messages.to_sentence
render :edit
end
end

def destroy
if @professional_development.destroy
redirect_to professional_developments_url, notice: "Professional development deleted successfully."
else
redirect_to professional_developments_url, alert: "Failed to delete professional development."
end
end

private
def set_professional_development
@professional_development = ProfessionalDevelopment.find(params[:id])
rescue ActiveRecord::RecordNotFound
redirect_to professional_developments_url, alert: "Professional development not found."
end

def professional_development_params
params.require(:professional_development).permit(:name, :city, :state, :country, :start_date, :end_date,
:grade_level)
end
end
Loading

0 comments on commit e0df660

Please sign in to comment.