Skip to content

Commit 15ae3ef

Browse files
authored
Merge pull request #22823 from opf/fix/harmonize-meetings-widget
[73684] Harmonize the meeting module on home page and project overview
2 parents 71deba7 + 9b032fe commit 15ae3ef

2 files changed

Lines changed: 20 additions & 10 deletions

File tree

modules/meeting/app/components/meetings/widgets/meetings.rb

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,11 @@ def next_meetings
4545
def meetings
4646
@meetings ||=
4747
if project_scoped?
48-
project.meetings.visible(current_user).upcoming
48+
project
49+
.meetings
50+
.visible(current_user)
51+
.participated_by(current_user)
52+
.upcoming
4953
else
5054
::Meeting
5155
.visible(current_user)
@@ -56,7 +60,7 @@ def meetings
5660
end
5761

5862
def title
59-
global_scoped? ? t(:label_my_meetings) : t(:label_meeting_plural)
63+
t(:label_my_meetings)
6064
end
6165

6266
def render?
@@ -99,7 +103,7 @@ def all_meetings_link
99103
if global_scoped?
100104
meetings_path
101105
else
102-
project_meetings_path(project, filters: [{ invited_user_id: { operator: "*", values: [] } }].to_json)
106+
project_meetings_path(project)
103107
end
104108
end
105109

modules/meeting/spec/components/meetings/widgets/meetings_spec.rb

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -110,17 +110,25 @@ def render_component(...)
110110

111111
context "with project" do
112112
let(:project) { project_red }
113-
# these meetings from another project should not be visible
114-
let!(:other_project_meeting) { create(:meeting, project: project_blue, author:) }
113+
# this meeting from another project should not be visible
114+
let!(:other_project_meeting) do
115+
create(:meeting, project: project_blue, author:, start_time: 1.week.from_now, duration: 1) do |meeting|
116+
create(:meeting_participant, meeting:, user: admin, invited: true)
117+
end
118+
end
115119

116120
context "with no meetings in this project" do
117121
it_behaves_like "empty-state with action"
118122
end
119123

120124
context "with meetings" do
121-
let!(:meeting_red) { create(:meeting, project: project_red, author:, start_time: 1.week.from_now, duration: 1) }
125+
let!(:meeting_red) do
126+
create(:meeting, project: project_red, author:, start_time: 1.week.from_now, duration: 1).tap do |meeting|
127+
create(:meeting_participant, meeting:, user: admin, invited: true)
128+
end
129+
end
122130

123-
it "renders only this project’s meetings" do
131+
it "renders only this project’s meetings which the user participates in" do
124132
expect(rendered_component).to have_list_item(count: 2)
125133
expect(rendered_component).to have_list_item(position: 1) do |item|
126134
expect(item).to have_link href: project_meeting_path(project_red, meeting_red)
@@ -129,9 +137,7 @@ def render_component(...)
129137
end
130138

131139
expect(rendered_component).to have_list_item(position: 2) do |item|
132-
expect(item).to have_link href: project_meetings_path(project_red,
133-
filters: [{ invited_user_id: { operator: "*",
134-
values: [] } }].to_json)
140+
expect(item).to have_link href: project_meetings_path(project_red)
135141
expect(item).to have_content("View all meetings")
136142
end
137143
end

0 commit comments

Comments
 (0)