[Backport] Issue #3856: Show if I am a member of a project

remotes/origin/issue/4795/notification_even_they_are_disabled
David Barragán Merino 2016-02-02 19:33:26 +01:00 committed by Alejandro Alonso
parent 5899a63912
commit a47f1240cd
1 changed files with 8 additions and 0 deletions

View File

@ -312,6 +312,7 @@ class ProjectSerializer(FanResourceSerializerMixin, WatchedResourceModelSerializ
public_permissions = PgArrayField(required=False)
my_permissions = serializers.SerializerMethodField("get_my_permissions")
i_am_owner = serializers.SerializerMethodField("get_i_am_owner")
i_am_member = serializers.SerializerMethodField("get_i_am_member")
tags = TagsField(default=[], required=False)
tags_colors = TagsColorsField(required=False)
@ -339,6 +340,13 @@ class ProjectSerializer(FanResourceSerializerMixin, WatchedResourceModelSerializ
return is_project_owner(self.context["request"].user, obj)
return False
def get_i_am_member(self, obj):
if "request" in self.context:
user = self.context["request"].user
if not user.is_anonymous() and user.cached_membership_for_project(obj):
return True
return False
def get_total_closed_milestones(self, obj):
# The "closed_milestone" attribute can be attached in the get_queryset method of the viewset.
qs_closed_milestones = getattr(obj, "closed_milestones", None)