From 490d6f0195276033001b489261248092eb49e54f Mon Sep 17 00:00:00 2001
From: Manny Dinssa <44172848+Dinssa@users.noreply.github.com>
Date: Thu, 8 Aug 2024 15:54:42 +0100
Subject: [PATCH] Create merge request list
---
app/controllers/merge_requests_controller.rb | 2 +-
app/controllers/organisations_controller.rb | 1 +
app/helpers/tag_helper.rb | 8 +++
app/models/merge_request.rb | 17 +++++-
.../_merge_request_list.html.erb | 55 +++++++++++++++++++
app/views/organisations/index.html.erb | 27 ++++++---
6 files changed, 100 insertions(+), 10 deletions(-)
create mode 100644 app/views/organisations/_merge_request_list.html.erb
diff --git a/app/controllers/merge_requests_controller.rb b/app/controllers/merge_requests_controller.rb
index d717f6ee7..5d1e2550e 100644
--- a/app/controllers/merge_requests_controller.rb
+++ b/app/controllers/merge_requests_controller.rb
@@ -25,7 +25,7 @@ class MergeRequestsController < ApplicationController
def create
ActiveRecord::Base.transaction do
- @merge_request = MergeRequest.create!(merge_request_params.merge(status: :unsubmitted))
+ @merge_request = MergeRequest.create!(merge_request_params.merge(status: :incomplete))
MergeRequestOrganisation.create!({ merge_request: @merge_request, merging_organisation: @merge_request.requesting_organisation })
end
redirect_to organisations_merge_request_path(@merge_request)
diff --git a/app/controllers/organisations_controller.rb b/app/controllers/organisations_controller.rb
index dfe50fa22..16887232c 100644
--- a/app/controllers/organisations_controller.rb
+++ b/app/controllers/organisations_controller.rb
@@ -16,6 +16,7 @@ class OrganisationsController < ApplicationController
all_organisations = Organisation.order(:name)
@pagy, @organisations = pagy(filtered_collection(all_organisations.visible, search_term))
+ @merge_requests = MergeRequest.visible.order(:new_organisation_name)
@searched = search_term.presence
@total_count = all_organisations.visible.size
end
diff --git a/app/helpers/tag_helper.rb b/app/helpers/tag_helper.rb
index c389942dc..3c2e332f6 100644
--- a/app/helpers/tag_helper.rb
+++ b/app/helpers/tag_helper.rb
@@ -15,6 +15,10 @@ module TagHelper
deleted: "Deleted",
merged: "Merged",
unconfirmed: "Unconfirmed",
+ merge_issues: "Merge issues",
+ request_merged: "Merged",
+ ready_to_merge: "Ready to merge",
+ processing: "Processing",
}.freeze
COLOUR = {
@@ -31,6 +35,10 @@ module TagHelper
deleted: "red",
merged: "orange",
unconfirmed: "blue",
+ merge_issues: "orange",
+ request_merged: "green",
+ ready_to_merge: "blue",
+ processing: "yellow",
}.freeze
def status_tag(status, classes = [])
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index e62b1d39d..0124575b0 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -7,11 +7,24 @@ class MergeRequest < ApplicationRecord
validates :new_telephone_number, presence: true, if: -> { telephone_number_correct == false }
STATUS = {
- "unsubmitted" => 0,
- "submitted" => 1,
+ "merge_issues" => 0,
+ "incomplete" => 1,
+ "ready_to_merge" => 2,
+ "processing" => 3,
+ "request_merged" => 4,
}.freeze
enum status: STATUS
+ scope :not_merged, -> { where.not(status: "request_merged") }
+ scope :visible, lambda {
+ open_collection_period_start_date = FormHandler.instance.start_date_of_earliest_open_collection_period
+ where(
+ "(status != :merged_status) OR (status = :merged_status AND merge_date >= :open_collection_period_start_date)",
+ merged_status: 4,
+ open_collection_period_start_date:,
+ )
+ }
+
def organisation_name_uniqueness
if Organisation.where("lower(name) = ?", new_organisation_name&.downcase).exists?
errors.add(:new_organisation_name, :invalid)
diff --git a/app/views/organisations/_merge_request_list.html.erb b/app/views/organisations/_merge_request_list.html.erb
new file mode 100644
index 000000000..91d339b7d
--- /dev/null
+++ b/app/views/organisations/_merge_request_list.html.erb
@@ -0,0 +1,55 @@
+