Fix the show of csv exports uuid on project serialized data
parent
4e9d4610fe
commit
9908d4307a
|
@ -53,6 +53,7 @@ from .votes.utils import attach_votescount_to_queryset
|
||||||
|
|
||||||
class ProjectViewSet(ModelCrudViewSet):
|
class ProjectViewSet(ModelCrudViewSet):
|
||||||
serializer_class = serializers.ProjectDetailSerializer
|
serializer_class = serializers.ProjectDetailSerializer
|
||||||
|
admin_serializer_class = serializers.ProjectDetailAdminSerializer
|
||||||
list_serializer_class = serializers.ProjectSerializer
|
list_serializer_class = serializers.ProjectSerializer
|
||||||
permission_classes = (permissions.ProjectPermission, )
|
permission_classes = (permissions.ProjectPermission, )
|
||||||
filter_backends = (filters.CanViewProjectObjFilterBackend,)
|
filter_backends = (filters.CanViewProjectObjFilterBackend,)
|
||||||
|
@ -61,6 +62,21 @@ class ProjectViewSet(ModelCrudViewSet):
|
||||||
qs = models.Project.objects.all()
|
qs = models.Project.objects.all()
|
||||||
return attach_votescount_to_queryset(qs, as_field="stars_count")
|
return attach_votescount_to_queryset(qs, as_field="stars_count")
|
||||||
|
|
||||||
|
def get_serializer_class(self):
|
||||||
|
if self.action == "list":
|
||||||
|
return self.list_serializer_class
|
||||||
|
|
||||||
|
if self.action == "by_slug":
|
||||||
|
slug = self.request.QUERY_PARAMS.get("slug", None)
|
||||||
|
project = get_object_or_404(models.Project, slug=slug)
|
||||||
|
else:
|
||||||
|
project = self.get_object()
|
||||||
|
|
||||||
|
if permissions_service.is_project_owner(self.request.user, project):
|
||||||
|
return self.admin_serializer_class
|
||||||
|
|
||||||
|
return self.serializer_class
|
||||||
|
|
||||||
@list_route(methods=["GET"])
|
@list_route(methods=["GET"])
|
||||||
def by_slug(self, request):
|
def by_slug(self, request):
|
||||||
slug = request.QUERY_PARAMS.get("slug", None)
|
slug = request.QUERY_PARAMS.get("slug", None)
|
||||||
|
|
|
@ -269,7 +269,8 @@ class ProjectSerializer(ModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = models.Project
|
model = models.Project
|
||||||
read_only_fields = ("created_date", "modified_date", "owner")
|
read_only_fields = ("created_date", "modified_date", "owner")
|
||||||
exclude = ("last_us_ref", "last_task_ref", "last_issue_ref")
|
exclude = ("last_us_ref", "last_task_ref", "last_issue_ref",
|
||||||
|
"issues_csv_uuid", "tasks_csv_uuid", "userstories_csv_uuid")
|
||||||
|
|
||||||
def get_stars_number(self, obj):
|
def get_stars_number(self, obj):
|
||||||
# The "stars_count" attribute is attached in the get_queryset of the viewset.
|
# The "stars_count" attribute is attached in the get_queryset of the viewset.
|
||||||
|
@ -301,6 +302,7 @@ class ProjectSerializer(ModelSerializer):
|
||||||
raise serializers.ValidationError("Total milestones must be major or equal to zero")
|
raise serializers.ValidationError("Total milestones must be major or equal to zero")
|
||||||
return attrs
|
return attrs
|
||||||
|
|
||||||
|
|
||||||
class ProjectDetailSerializer(ProjectSerializer):
|
class ProjectDetailSerializer(ProjectSerializer):
|
||||||
roles = serializers.SerializerMethodField("get_roles")
|
roles = serializers.SerializerMethodField("get_roles")
|
||||||
memberships = serializers.SerializerMethodField("get_memberships")
|
memberships = serializers.SerializerMethodField("get_memberships")
|
||||||
|
@ -331,6 +333,13 @@ class ProjectDetailSerializer(ProjectSerializer):
|
||||||
return serializer.data
|
return serializer.data
|
||||||
|
|
||||||
|
|
||||||
|
class ProjectDetailAdminSerializer(ProjectDetailSerializer):
|
||||||
|
class Meta:
|
||||||
|
model = models.Project
|
||||||
|
read_only_fields = ("created_date", "modified_date", "owner")
|
||||||
|
exclude = ("last_us_ref", "last_task_ref", "last_issue_ref")
|
||||||
|
|
||||||
|
|
||||||
######################################################
|
######################################################
|
||||||
## Starred
|
## Starred
|
||||||
######################################################
|
######################################################
|
||||||
|
|
Loading…
Reference in New Issue