transferred Code Ocean from original repository to GitHub
This commit is contained in:
0
app/models/concerns/.keep
Normal file
0
app/models/concerns/.keep
Normal file
20
app/models/concerns/context.rb
Normal file
20
app/models/concerns/context.rb
Normal file
@@ -0,0 +1,20 @@
|
||||
module Context
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
included do
|
||||
has_many :files, as: :context, class: CodeOcean::File
|
||||
accepts_nested_attributes_for :files
|
||||
end
|
||||
|
||||
def add_file(file_attributes)
|
||||
file = files.create(file_attributes)
|
||||
save
|
||||
file
|
||||
end
|
||||
|
||||
def add_file!(file_attributes)
|
||||
file = files.create!(file_attributes)
|
||||
save!
|
||||
file
|
||||
end
|
||||
end
|
12
app/models/concerns/creation.rb
Normal file
12
app/models/concerns/creation.rb
Normal file
@@ -0,0 +1,12 @@
|
||||
module Creation
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
included do
|
||||
belongs_to :user, polymorphic: true
|
||||
alias_method :author, :user
|
||||
alias_method :creator, :user
|
||||
|
||||
validates :user_id, presence: true
|
||||
validates :user_type, presence: true
|
||||
end
|
||||
end
|
30
app/models/concerns/user.rb
Normal file
30
app/models/concerns/user.rb
Normal file
@@ -0,0 +1,30 @@
|
||||
module User
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
ROLES = %w[admin teacher]
|
||||
|
||||
included do
|
||||
belongs_to :consumer
|
||||
has_many :exercises, as: :user
|
||||
has_many :file_types, as: :user
|
||||
has_many :submissions, as: :user
|
||||
|
||||
scope :with_submissions, -> { where('id IN (SELECT user_id FROM submissions)') }
|
||||
end
|
||||
|
||||
ROLES.each do |role|
|
||||
define_method("#{role}?") { self.try(:role) == role }
|
||||
end
|
||||
|
||||
def external?
|
||||
is_a?(ExternalUser)
|
||||
end
|
||||
|
||||
def internal?
|
||||
is_a?(InternalUser)
|
||||
end
|
||||
|
||||
def to_s
|
||||
name
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user