From cfa546269dcd012c449d255a385d2b94cb2ea3cb Mon Sep 17 00:00:00 2001 From: jadmsaadaot <91914654+jadmsaadaot@users.noreply.github.com> Date: Fri, 11 Aug 2023 16:26:01 -0700 Subject: [PATCH] Fix revoke button doing nothing (#2001) * Fix fetch assigned members * remove empty spaces * Fix linting issue * fix linting * add latest and status filter for get assigned engagements --- met-api/src/met_api/models/engagement.py | 12 ++++++++++-- met-api/src/met_api/models/membership.py | 11 ++++++----- met-api/src/met_api/services/membership_service.py | 2 +- .../UserManagement/ActionsDropDown.tsx | 4 ++-- 4 files changed, 19 insertions(+), 10 deletions(-) diff --git a/met-api/src/met_api/models/engagement.py b/met-api/src/met_api/models/engagement.py index 3fddbb0e1..64b336da5 100644 --- a/met-api/src/met_api/models/engagement.py +++ b/met-api/src/met_api/models/engagement.py @@ -22,6 +22,7 @@ from met_api.models.engagement_scope_options import EngagementScopeOptions from met_api.schemas.engagement import EngagementSchema from met_api.utils.datetime import local_datetime +from met_api.utils.enums import MembershipStatus from .base_model import BaseModel from .db import db from .engagement_status import EngagementStatus @@ -296,6 +297,13 @@ def _filter_by_statuses(query, statuses: list[int]): @staticmethod def get_assigned_engagements(user_id: int) -> List[Engagement]: """Get engagements assigned to the given user id.""" - engagements = db.session.query(Engagement).join(MembershipModel).filter( - MembershipModel.user_id == user_id).all() + engagements = db.session.query(Engagement) \ + .join(MembershipModel) \ + .filter( + and_( + MembershipModel.user_id == user_id, + MembershipModel.is_latest.is_(True), + MembershipModel.status == MembershipStatus.ACTIVE.value + )) \ + .all() return engagements diff --git a/met-api/src/met_api/models/membership.py b/met-api/src/met_api/models/membership.py index 47dd3aee9..8c39e69ce 100644 --- a/met-api/src/met_api/models/membership.py +++ b/met-api/src/met_api/models/membership.py @@ -40,8 +40,7 @@ def find_by_engagement(cls, engagement_id, status=None) -> List[Membership]: query = db.session.query(Membership) \ .filter(and_( Membership.engagement_id == engagement_id, - Membership.status == status, - bool(Membership.is_latest) + Membership.is_latest.is_(True) )) if status: query = query.filter(Membership.status == status) @@ -60,7 +59,9 @@ def find_by_user_id(cls, user_external_id, status=None) -> List[Membership]: Membership.type == MembershipType.TEAM_MEMBER, Membership.type == MembershipType.REVIEWER ), - bool(Membership.is_latest))) + Membership.is_latest.is_(True) + )) + if status: query = query.filter(Membership.status == status) @@ -75,7 +76,7 @@ def find_by_engagement_and_user_id(cls, eng_id, userid, status=None) \ .join(StaffUser, StaffUser.id == Membership.user_id) \ .filter(and_(Membership.engagement_id == eng_id, Membership.user_id == userid, - bool(Membership.is_latest) + Membership.is_latest.is_(True) ) ) if status: @@ -89,7 +90,7 @@ def create_new_version(cls, engagement_id, user_id, new_membership: dict) -> Mem latest_membership = db.session.query(Membership) \ .filter(and_(Membership.engagement_id == engagement_id, Membership.user_id == user_id, - bool(Membership.is_latest) + Membership.is_latest.is_(True) ) ) \ .first() diff --git a/met-api/src/met_api/services/membership_service.py b/met-api/src/met_api/services/membership_service.py index 2a8629dcf..38fdb40e8 100644 --- a/met-api/src/met_api/services/membership_service.py +++ b/met-api/src/met_api/services/membership_service.py @@ -117,7 +117,7 @@ def get_memberships(engagement_id): """Get memberships by engagement id.""" # get user to be added from request json - memberships = MembershipModel.find_by_engagement(engagement_id, status=MembershipStatus.ACTIVE.value) + memberships = MembershipModel.find_by_engagement(engagement_id) return memberships @staticmethod diff --git a/met-web/src/components/engagement/form/EngagementFormTabs/UserManagement/ActionsDropDown.tsx b/met-web/src/components/engagement/form/EngagementFormTabs/UserManagement/ActionsDropDown.tsx index a60f0c162..0dc3f203e 100644 --- a/met-web/src/components/engagement/form/EngagementFormTabs/UserManagement/ActionsDropDown.tsx +++ b/met-web/src/components/engagement/form/EngagementFormTabs/UserManagement/ActionsDropDown.tsx @@ -46,13 +46,13 @@ export const ActionsDropDown = ({ membership }: { membership: EngagementTeamMemb { value: 1, label: 'Revoke', - action: handleRevoke, + action: () => handleRevoke(), condition: membership.status !== ENGAGEMENT_MEMBERSHIP_STATUS.Revoked, }, { value: 2, label: 'Reinstate', - action: handleReinstate, + action: () => handleReinstate(), condition: membership.status !== ENGAGEMENT_MEMBERSHIP_STATUS.Active, }, ],