Beispiel #1
0
    def toggle_membership(self, user: User) -> bool:
        """Toggles the membership of a `User` for this `Team`.

        :param user: The `User` to toggle.
        :return: `True` if the `User`'s membership was successfully toggled,
            `False` otherwise (e.g. if the `Team` is full)
        """
        try:
            my_team = user.teams.get(pk=self.id)
        except Team.DoesNotExist:
            my_team = None

        if my_team is not None:
            user.memberships.filter(team__id=self.id).delete()
            return True

        if self.is_full:
            return False

        from main.models import TeamMembership
        membership = TeamMembership()
        membership.member = user
        membership.team = self
        membership.save()
        return True
Beispiel #2
0
    def toggle_membership(self, user: User) -> bool:
        """Toggles the membership of a `User` for this `Team`.

        :param user: The `User` to toggle.
        :return: `True` if the `User`'s membership was successfully toggled,
            `False` otherwise (e.g. if the `Team` is full)
        """
        try:
            my_team = user.teams.get(pk=self.id)
        except Team.DoesNotExist:
            my_team = None

        if my_team is not None:
            user.memberships.filter(team__id=self.id).delete()
            return True

        if self.is_full:
            return False

        from main.models import TeamMembership
        membership = TeamMembership()
        membership.member = user
        membership.team = self
        membership.save()
        return True
Beispiel #3
0
def toggle_membership(request: HttpRequest, team_id: int) -> HttpResponse:
    team = Team.objects.get(pk=team_id)
    try:
        my_team = request.user.teams.get(pk=team_id)
    except Team.DoesNotExist:
        my_team = None

    if my_team is None:
        membership = TeamMembership()
        membership.member = request.user
        membership.team = team
        membership.save()
    else:
        request.user.memberships.filter(team__id=team_id).delete()

    return redirect(get, team_id)