Sha256: fdeeefe2c73de2f2a19d081ba8336ebfecbb1f13337b17cc8ed2c590efbec4f5

Contents?: true

Size: 944 Bytes

Versions: 10

Compression:

Stored size: 944 Bytes

Contents

module Gaku
  class Course < ActiveRecord::Base

    include Notes, Gradable, Enrollmentable, Semesterable

    has_many :course_group_enrollments
    has_many :course_groups, through: :course_group_enrollments

    has_many :exam_schedules

    belongs_to :syllabus
    belongs_to :class_group

    delegate :name, :code, to: :syllabus, prefix: true, allow_nil: true

    # accepts_nested_attributes_for :enrollments

    validates :code, presence: true

    def to_s
      if syllabus_name
        "#{syllabus_name}-#{code}"
      else
        code
      end
    end

    def to_selectbox
      [to_s, id]
    end

    # def enroll_class_group(class_group)
    #   unless class_group.blank?
    #     ActiveRecord::Base.transaction do
    #       class_group.student_ids.each do |student_id|
    #         CourseEnrollment.find_or_create_by(student_id: student_id, course_id: id)
    #      end
    #     end
    #   end
    # end

  end
end

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
gaku-0.2.4 core/app/models/gaku/course.rb
gaku_core-0.2.4 app/models/gaku/course.rb
gaku-0.2.3 core/app/models/gaku/course.rb
gaku_core-0.2.3 app/models/gaku/course.rb
gaku-0.2.2 core/app/models/gaku/course.rb
gaku_core-0.2.2 app/models/gaku/course.rb
gaku-0.2.1 core/app/models/gaku/course.rb
gaku_core-0.2.1 app/models/gaku/course.rb
gaku-0.2.0 core/app/models/gaku/course.rb
gaku_core-0.2.0 app/models/gaku/course.rb