Add ProgrammingGroup & ProgrammingGroupMembership
* User can create programming group with other users for exercise * Submission is shared in a group * Also adjust specs
This commit is contained in:

committed by
Sebastian Serth

parent
0234414bae
commit
319c3ab3b4
15
app/models/programming_group_membership.rb
Normal file
15
app/models/programming_group_membership.rb
Normal file
@ -0,0 +1,15 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class ProgrammingGroupMembership < ApplicationRecord
|
||||
belongs_to :user, polymorphic: true
|
||||
belongs_to :programming_group
|
||||
|
||||
validate :unique_membership_for_exercise
|
||||
validates :user_id, uniqueness: {scope: %i[programming_group_id user_type]}
|
||||
|
||||
def unique_membership_for_exercise
|
||||
if user.programming_groups.where(exercise: programming_group.exercise).any?
|
||||
errors.add(:base, :already_exists, id_with_type: user.id_with_type)
|
||||
end
|
||||
end
|
||||
end
|
Reference in New Issue
Block a user