PageRenderTime 1339ms CodeModel.GetById 1ms RepoModel.GetById 0ms app.codeStats 0ms

/app/controllers/faculties/courses_controller.rb

https://gitlab.com/cd2/developingexperts
Ruby | 77 lines | 62 code | 15 blank | 0 comment | 3 complexity | 13499032f5e6a3ddb3277595adf42d50 MD5 | raw file
  1. class Faculties::CoursesController < FacultyController
  2. before_action :set_course, only: [:show, :edit, :update, :duplicate, :destroy]
  3. def index
  4. if signed_in_as_administrator?
  5. @q = @school.courses.ransack(params[:q])
  6. else
  7. @q = current_user.courses.ransack(params[:q])
  8. end
  9. @courses = @q.result(distinct: true)
  10. end
  11. def show
  12. respond_to do |format|
  13. format.html
  14. format.json
  15. end
  16. end
  17. def select_years
  18. end
  19. def new
  20. @year = StudyYear.find(params[:year])
  21. @course = @school.courses.build
  22. end
  23. def create
  24. @year = StudyYear.find(params[:course][:year])
  25. @course = @school.courses.new(course_params)
  26. if @course.save
  27. @school.notify("#{view_context.link_to(@course.name, faculty_course_path(@course))} has been created")
  28. flash[:success] = 'Course Created'
  29. redirect_to edit_faculty_course_path(@course)
  30. else
  31. render :new
  32. end
  33. end
  34. def edit
  35. end
  36. def update
  37. if @course.update(course_params)
  38. @school.notify("#{view_context.link_to(@course.name, faculty_course_path(@course))} has been updated")
  39. flash[:success] = 'Course Updated'
  40. redirect_to [:edit, :faculty, @course]
  41. else
  42. render :edit
  43. end
  44. end
  45. def duplicate
  46. new_course = @course.dup
  47. new_course.lessons << @course.lessons.collect {|l| l.dup }
  48. new_course.save
  49. render :edit
  50. end
  51. def destroy
  52. @course.destroy
  53. redirect_to faculty_courses_path
  54. end
  55. private
  56. def set_course
  57. @course = Course.find(params[:id])
  58. end
  59. def course_params
  60. params.require(:course).permit(:name, :start_date, lessons_attributes: [:lesson_template_id, :disabled])
  61. end
  62. end