Skip to content
Snippets Groups Projects
Unverified Commit b537f970 authored by Jarka Kadlecova's avatar Jarka Kadlecova Committed by GitLab
Browse files

Merge branch '462751-ignore-column-last-activity-on' into 'master'

Ignore last_activity_on column on members table

See merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168982



Merged-by: Jarka Kadlecova's avatarJarka Košanová <jarka@gitlab.com>
Approved-by: Jarka Kadlecova's avatarJarka Košanová <jarka@gitlab.com>
Reviewed-by: default avatarBishwa Hang Rai <bhrai@gitlab.com>
Co-authored-by: default avatarBishwa Hang Rai <bhrai@gitlab.com>
parents 22ab1376 5481b722
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -77,7 +77,7 @@ def members_from_project_group_shares
members_per_batch << link.group.authorizable_members_with_parents.select(*user_id_and_access_level_for_project_group_shares(link))
end
 
members << Member.from_union(members_per_batch)
members << Member.from_union(members_per_batch).select(:user_id, :access_level)
end
 
Member.from_union(members)
Loading
Loading
@@ -91,6 +91,7 @@ def project_owner
 
Member
.from(generate_from_statement([[user_id, access_level]])) # rubocop: disable CodeReuse/ActiveRecord
.select(:user_id, :access_level)
.limit(1)
end
 
Loading
Loading
Loading
Loading
@@ -15,6 +15,9 @@ class Member < ApplicationRecord
include UpdateHighestRole
include RestrictedSignup
include Gitlab::Experiment::Dsl
include IgnorableColumns
ignore_column :last_activity_on, remove_with: '17.8', remove_after: '2024-12-23'
 
AVATAR_SIZE = 40
ACCESS_REQUEST_APPROVERS_TO_BE_NOTIFIED_LIMIT = 10
Loading
Loading
@@ -306,7 +309,6 @@ class Member < ApplicationRecord
scope :order_updated_desc, -> { order(updated_at: :desc) }
scope :on_project_and_ancestors, ->(project) { where(source: [project] + project.ancestors) }
scope :with_static_role, -> { where(member_role_id: nil) }
scope :no_activity_today, -> { where('last_activity_on < ?', Date.today) }
 
before_validation :set_member_namespace_id, on: :create
before_validation :generate_invite_token, on: :create, if: ->(member) { member.invite_email.present? && !member.invite_accepted_at? }
Loading
Loading
Loading
Loading
@@ -50,7 +50,7 @@ def map_attributes(member, membershipable, parent_groups)
membership_source: member.source.full_path,
access_granted: member.created_at.to_fs(:csv),
access_expired: member.expires_at,
last_activity: member.last_activity_on
last_activity: member.user_last_activity_on
)
end
end
Loading
Loading
Loading
Loading
@@ -41,7 +41,7 @@ def all_members_unique_by_user(group)
group.members_with_descendants.select(:user_id)
],
remove_duplicates: true
)
).select(:user_id)
end
end
end
Loading
Loading
@@ -170,7 +170,7 @@ def user_data(user_id)
end
 
def member_data(member)
[member.created_at.to_fs(:csv), nil, member.reload.last_activity_on.to_fs(:csv)]
[member.created_at.to_fs(:csv), nil, member.reload.user_last_activity_on&.to_fs(:csv)]
end
 
context 'when members_permissions_detailed_export feature flag is disabled' do
Loading
Loading
Loading
Loading
@@ -859,16 +859,6 @@
expect(group.members.excluding_users(active_group_member.user_id)).not_to include active_group_member
end
end
describe '.no_activity_today' do
let_it_be(:active_group_member) { create(:group_member, group: group) }
let_it_be(:inactive_group_member) { create(:group_member, group: group, last_activity_on: 1.month.ago) }
it 'returns members with no activity today' do
expect(group.members.no_activity_today).to include inactive_group_member
expect(group.members.no_activity_today).not_to include active_group_member
end
end
end
 
describe 'Delegate methods' do
Loading
Loading
Loading
Loading
@@ -16,7 +16,14 @@
create(:group_group_link, shared_group: sub_group_1, shared_with_group: shared_group)
end
 
let_it_be(:users) { create_list(:user, 6) }
let_it_be(:users) do
create_list(:user, 6).tap do |result|
# setting last_activity_on for some users in the list
result[0].update!(last_activity_on: 1.day.ago)
result[2].update!(last_activity_on: 3.days.ago)
result[5].update!(last_activity_on: 4.days.ago)
end
end
 
let_it_be(:group_owner_1) { create(:group_member, :owner, group: group, user: users[0]) }
let_it_be(:group_maintainer_2) { create(:group_member, :maintainer, group: group, user: users[1]) }
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment