From caedf84a1c19fd1c3786f88e390aae5f4a658c25 Mon Sep 17 00:00:00 2001 From: Chad Whitacre Date: Wed, 20 Jul 2016 15:48:13 -0400 Subject: [PATCH] Bring back UI for removing members from teams --- gratipay/models/team/mixins/membership.py | 2 +- js/gratipay/team.js | 6 +++--- tests/ttw/test_team_distributing.py | 19 +++++++++++++++++++ 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/gratipay/models/team/mixins/membership.py b/gratipay/models/team/mixins/membership.py index d597e0c105..009ac1c438 100644 --- a/gratipay/models/team/mixins/membership.py +++ b/gratipay/models/team/mixins/membership.py @@ -59,7 +59,7 @@ def get_memberships(self, current_participant=None): member['balance'] = take['balance'] member['percentage'] = take['percentage'] - member['removal_allowed'] = current_participant == self + member['removal_allowed'] = current_participant.username == self.owner member['editing_allowed'] = False member['is_current_user'] = False if current_participant is not None: diff --git a/js/gratipay/team.js b/js/gratipay/team.js index 86b7414207..fabec14336 100644 --- a/js/gratipay/team.js +++ b/js/gratipay/team.js @@ -33,7 +33,7 @@ Gratipay.team = (function() { ]; if (member.removal_allowed) - return ['span', {'class': 'remove', 'data-username': member.username}, take]; + return ['span', {'class': 'remove', 'data-id': member.participant_id}, take]; return take; } @@ -133,8 +133,8 @@ Gratipay.team = (function() { function remove(e) { e.preventDefault(); e.stopPropagation(); - var membername = $(e.target).attr('data-username'); - setTake(membername, '0.00'); + var participantId = $(e.target).data('id'); + setTake(participantId, '0.00'); return false; } diff --git a/tests/ttw/test_team_distributing.py b/tests/ttw/test_team_distributing.py index a98d8fd4b0..13b3a59c47 100644 --- a/tests/ttw/test_team_distributing.py +++ b/tests/ttw/test_team_distributing.py @@ -22,6 +22,25 @@ def test_owner_can_add_a_member(self): self.css('#lookup-container button').first.click() assert [a.text for a in self.css('table#team a')] == ['alice'] + + def test_owner_can_remove_a_member(self): + enterprise = self.make_team(available=500) + alice = self.make_participant( 'alice' + , claimed_time='now' + , email_address='alice@example.com' + , verified_in='TT' + ) + enterprise.add_member(alice, P('picard')) + + self.sign_in('picard') + self.visit('/TheEnterprise/distributing/') + self.css('table#team span.remove').first.click() + time.sleep(0.1) + self.get_alert().accept() + time.sleep(0.2) + assert enterprise.get_memberships() == [] + + def test_totals_are_as_expected(self): enterprise = self.make_team(available=500) alice = self.make_participant( 'alice'