Limit programming groups to two people
* adapt text on programming_groups/new site * in German change from 'Sie' to 'du'
This commit is contained in:

committed by
Sebastian Serth

parent
0e4a239960
commit
97764bd02e
@ -11,7 +11,8 @@ class ProgrammingGroup < ApplicationRecord
|
||||
has_many :runners, as: :contributor, dependent: :destroy
|
||||
belongs_to :exercise
|
||||
|
||||
validate :group_size
|
||||
validate :min_group_size
|
||||
validate :max_group_size
|
||||
validate :no_erroneous_users
|
||||
accepts_nested_attributes_for :programming_group_memberships
|
||||
|
||||
@ -71,12 +72,18 @@ class ProgrammingGroup < ApplicationRecord
|
||||
|
||||
private
|
||||
|
||||
def group_size
|
||||
def min_group_size
|
||||
if users.size < 2
|
||||
errors.add(:base, :size_too_small)
|
||||
end
|
||||
end
|
||||
|
||||
def max_group_size
|
||||
if users.size > 2
|
||||
errors.add(:base, :size_too_large)
|
||||
end
|
||||
end
|
||||
|
||||
def no_erroneous_users
|
||||
@erroneous_users.each do |partner_id|
|
||||
errors.add(:base, :invalid_partner_id, partner_id:)
|
||||
|
@ -1,7 +1,7 @@
|
||||
= form_for(@programming_group, url: exercise_programming_groups_path) do |f|
|
||||
= render('shared/form_errors', object: @programming_group)
|
||||
.mb-3
|
||||
= f.label(:programming_partner_ids, class: 'form-label')
|
||||
= f.label(:programming_partner_id, class: 'form-label')
|
||||
= f.text_field(:programming_partner_ids, class: 'form-control', required: true, value: (@programming_group.programming_partner_ids - [current_user.id_with_type]).join(', '))
|
||||
.help-block.form-text = t('.hints.programming_partner_ids')
|
||||
/.help-block.form-text = t('.hints.programming_partner_ids')
|
||||
.actions.mb-0 = render('shared/submit_button', f: f, object: @programming_group)
|
||||
|
@ -1,4 +1,4 @@
|
||||
h1 = t('shared.new_model', model: ProgrammingGroup.model_name.human)
|
||||
h1 = t('programming_groups.new.create_programming_pair')
|
||||
.row
|
||||
.col-md-6
|
||||
p
|
||||
|
Reference in New Issue
Block a user