|
|
|
|
@ -1,8 +1,8 @@
|
|
|
|
|
class MergeRequestOrganisation < ApplicationRecord |
|
|
|
|
belongs_to :merge_request, class_name: "MergeRequest" |
|
|
|
|
belongs_to :merging_organisation, class_name: "Organisation" |
|
|
|
|
validates :merge_request_id, presence: { message: I18n.t("validations.merge_request.merge_request_id.blank") } |
|
|
|
|
validates :merging_organisation_id, presence: { message: I18n.t("validations.merge_request.merging_organisation_id.blank") } |
|
|
|
|
validates :merge_request, presence: { message: I18n.t("validations.merge_request.merge_request_id.blank") } |
|
|
|
|
validates :merging_organisation, presence: { message: I18n.t("validations.merge_request.merging_organisation_id.blank") } |
|
|
|
|
validate :validate_merging_organisations |
|
|
|
|
|
|
|
|
|
has_paper_trail |
|
|
|
|
@ -10,16 +10,16 @@ class MergeRequestOrganisation < ApplicationRecord
|
|
|
|
|
private |
|
|
|
|
|
|
|
|
|
def validate_merging_organisations |
|
|
|
|
if MergeRequestOrganisation.where(merge_request_id:, merging_organisation_id:).count.positive? |
|
|
|
|
if MergeRequestOrganisation.where(merge_request:, merging_organisation:).count.positive? |
|
|
|
|
errors.add(:merging_organisation, I18n.t("validations.merge_request.organisation_part_of_another_merge")) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
if MergeRequestOrganisation.where.not(merge_request_id:).where(merging_organisation_id:).count.positive? |
|
|
|
|
if MergeRequestOrganisation.where.not(merge_request:).where(merging_organisation:).count.positive? |
|
|
|
|
errors.add(:merging_organisation, I18n.t("validations.merge_request.organisation_part_of_another_merge")) |
|
|
|
|
merge_request.errors.add(:merging_organisation, I18n.t("validations.merge_request.organisation_part_of_another_merge")) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
if MergeRequest.where(requesting_organisation_id: merging_organisation_id).count.positive? |
|
|
|
|
if MergeRequest.where(requesting_organisation: merging_organisation).count.positive? |
|
|
|
|
errors.add(:merging_organisation, I18n.t("validations.merge_request.organisation_part_of_another_merge")) |
|
|
|
|
merge_request.errors.add(:merging_organisation, I18n.t("validations.merge_request.organisation_part_of_another_merge")) |
|
|
|
|
end |
|
|
|
|
|