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):
|
||||
serializer_class = serializers.ProjectDetailSerializer
|
||||
admin_serializer_class = serializers.ProjectDetailAdminSerializer
|
||||
list_serializer_class = serializers.ProjectSerializer
|
||||
permission_classes = (permissions.ProjectPermission, )
|
||||
filter_backends = (filters.CanViewProjectObjFilterBackend,)
|
||||
|
@ -61,6 +62,21 @@ class ProjectViewSet(ModelCrudViewSet):
|
|||
qs = models.Project.objects.all()
|
||||
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"])
|
||||
def by_slug(self, request):
|
||||
slug = request.QUERY_PARAMS.get("slug", None)
|
||||
|
|
|
@ -269,7 +269,8 @@ class ProjectSerializer(ModelSerializer):
|
|||
class Meta:
|
||||
model = models.Project
|
||||
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):
|
||||
# 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")
|
||||
return attrs
|
||||
|
||||
|
||||
class ProjectDetailSerializer(ProjectSerializer):
|
||||
roles = serializers.SerializerMethodField("get_roles")
|
||||
memberships = serializers.SerializerMethodField("get_memberships")
|
||||
|
@ -331,6 +333,13 @@ class ProjectDetailSerializer(ProjectSerializer):
|
|||
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
|
||||
######################################################
|
||||
|
|
Loading…
Reference in New Issue