Skip to content

Commit

Permalink
Fix revoke button doing nothing (#2001)
Browse files Browse the repository at this point in the history
* Fix fetch assigned members

* remove empty spaces

* Fix linting issue

* fix linting

* add latest and status filter for get assigned engagements
  • Loading branch information
jadmsaadaot authored Aug 11, 2023
1 parent 9766fa9 commit cfa5462
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 10 deletions.
12 changes: 10 additions & 2 deletions met-api/src/met_api/models/engagement.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
11 changes: 6 additions & 5 deletions met-api/src/met_api/models/membership.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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)

Expand All @@ -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:
Expand All @@ -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()
Expand Down
2 changes: 1 addition & 1 deletion met-api/src/met_api/services/membership_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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,
},
],
Expand Down

0 comments on commit cfa5462

Please sign in to comment.