Smallfixes in the attachment of the objects
parent
de28c23403
commit
7af3f25596
|
@ -49,7 +49,7 @@ class IssueStatusViewSet(ModelListViewSet):
|
|||
filter_fields = ("project",)
|
||||
|
||||
|
||||
class IssuesAttachmentViewSet(ModelCrudViewSet):
|
||||
class IssueAttachmentViewSet(ModelCrudViewSet):
|
||||
model = Attachment
|
||||
serializer_class = AttachmentSerializer
|
||||
permission_classes = (IsAuthenticated, AttachmentPermission)
|
||||
|
@ -58,14 +58,14 @@ class IssuesAttachmentViewSet(ModelCrudViewSet):
|
|||
|
||||
def get_queryset(self):
|
||||
ct = ContentType.objects.get_for_model(models.Issue)
|
||||
qs = super(IssuesAttachmentViewSet, self).get_queryset()
|
||||
qs = super(IssueAttachmentViewSet, self).get_queryset()
|
||||
qs = qs.filter(content_type=ct)
|
||||
return qs.distinct()
|
||||
|
||||
def pre_save(self, obj):
|
||||
super(IssuesAttachmentViewSet, self).pre_save(obj)
|
||||
super(IssueAttachmentViewSet, self).pre_save(obj)
|
||||
if not obj.id:
|
||||
obj.content_type = ContentType.objects.get_for_model(Issue)
|
||||
obj.content_type = ContentType.objects.get_for_model(models.Issue)
|
||||
obj.owner = self.request.user
|
||||
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ class QuestionStatusViewSet(ModelListViewSet):
|
|||
filter_fields = ("project",)
|
||||
|
||||
|
||||
class QuestionsAttachmentViewSet(ModelCrudViewSet):
|
||||
class QuestionAttachmentViewSet(ModelCrudViewSet):
|
||||
model = Attachment
|
||||
serializer_class = AttachmentSerializer
|
||||
permission_classes = (IsAuthenticated, AttachmentPermission)
|
||||
|
@ -35,14 +35,14 @@ class QuestionsAttachmentViewSet(ModelCrudViewSet):
|
|||
|
||||
def get_queryset(self):
|
||||
ct = ContentType.objects.get_for_model(models.Question)
|
||||
qs = super(QuestionsAttachmentViewSet, self).get_queryset()
|
||||
qs = super(QuestionAttachmentViewSet, self).get_queryset()
|
||||
qs = qs.filter(content_type=ct)
|
||||
return qs.distinct()
|
||||
|
||||
def pre_save(self, obj):
|
||||
super(QuestionsAttachmentViewSet, self).pre_save(obj)
|
||||
super(QuestionAttachmentViewSet, self).pre_save(obj)
|
||||
if not obj.id:
|
||||
obj.content_type = ContentType.objects.get_for_model(Question)
|
||||
obj.content_type = ContentType.objects.get_for_model(models.Question)
|
||||
obj.owner = self.request.user
|
||||
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ class TaskStatusViewSet(ModelListViewSet):
|
|||
filter_fields = ("project",)
|
||||
|
||||
|
||||
class TasksAttachmentViewSet(ModelCrudViewSet):
|
||||
class TaskAttachmentViewSet(ModelCrudViewSet):
|
||||
model = Attachment
|
||||
serializer_class = AttachmentSerializer
|
||||
permission_classes = (IsAuthenticated, AttachmentPermission,)
|
||||
|
@ -33,14 +33,14 @@ class TasksAttachmentViewSet(ModelCrudViewSet):
|
|||
|
||||
def get_queryset(self):
|
||||
ct = ContentType.objects.get_for_model(models.Task)
|
||||
qs = super(TasksAttachmentViewSet, self).get_queryset()
|
||||
qs = super(TaskAttachmentViewSet, self).get_queryset()
|
||||
qs = qs.filter(content_type=ct)
|
||||
return qs.distinct()
|
||||
|
||||
def pre_save(self, obj):
|
||||
super(TasksAttachmentViewSet, self).pre_save(obj)
|
||||
super(TaskAttachmentViewSet, self).pre_save(obj)
|
||||
if not obj.id:
|
||||
obj.content_type = ContentType.objects.get_for_model(Task)
|
||||
obj.content_type = ContentType.objects.get_for_model(models.Task)
|
||||
obj.owner = self.request.user
|
||||
|
||||
|
||||
|
|
|
@ -1,17 +1,22 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from rest_framework.permissions import IsAuthenticated
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
|
||||
import reversion
|
||||
from rest_framework.permissions import IsAuthenticated
|
||||
|
||||
from greenmine.base import filters
|
||||
from greenmine.base.api import ModelCrudViewSet, ModelListViewSet
|
||||
from greenmine.base.notifications.api import NotificationSenderMixin
|
||||
from greenmine.projects.permissions import AttachmentPermission
|
||||
from greenmine.projects.serializers import AttachmentSerializer
|
||||
from greenmine.projects.models import Attachment
|
||||
|
||||
from . import serializers
|
||||
from . import models
|
||||
from . import permissions
|
||||
|
||||
import reversion
|
||||
|
||||
|
||||
class PointsViewSet(ModelListViewSet):
|
||||
model = models.Points
|
||||
|
@ -29,6 +34,26 @@ class UserStoryStatusViewSet(ModelListViewSet):
|
|||
filter_fields = ('project',)
|
||||
|
||||
|
||||
class UserStoryAttachmentViewSet(ModelCrudViewSet):
|
||||
model = Attachment
|
||||
serializer_class = AttachmentSerializer
|
||||
permission_classes = (IsAuthenticated, AttachmentPermission,)
|
||||
filter_backends = (filters.IsProjectMemberFilterBackend,)
|
||||
filter_fields = ["project", "object_id"]
|
||||
|
||||
def get_queryset(self):
|
||||
ct = ContentType.objects.get_for_model(models.UserStory)
|
||||
qs = super(UserStoryAttachmentViewSet, self).get_queryset()
|
||||
qs = qs.filter(content_type=ct)
|
||||
return qs.distinct()
|
||||
|
||||
def pre_save(self, obj):
|
||||
super(UserStoryAttachmentViewSet, self).pre_save(obj)
|
||||
if not obj.id:
|
||||
obj.content_type = ContentType.objects.get_for_model(models.UserStory)
|
||||
obj.owner = self.request.user
|
||||
|
||||
|
||||
class UserStoryViewSet(NotificationSenderMixin, ModelCrudViewSet):
|
||||
model = models.UserStory
|
||||
serializer_class = serializers.UserStorySerializer
|
||||
|
|
|
@ -1,32 +1,48 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
from django.core.exceptions import ImproperlyConfigured, ObjectDoesNotExist
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.http import Http404
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
|
||||
from rest_framework import generics
|
||||
from rest_framework import filters
|
||||
from rest_framework.permissions import IsAuthenticated
|
||||
|
||||
from greenmine.base import api as api_views
|
||||
from greenmine.base import filters
|
||||
from greenmine.base.api import ModelCrudViewSet, ModelListViewSet
|
||||
from greenmine.base.notifications.api import NotificationSenderMixin
|
||||
from greenmine.projects.permissions import AttachmentPermission
|
||||
from greenmine.projects.serializers import AttachmentSerializer
|
||||
from greenmine.projects.models import Attachment
|
||||
|
||||
from . import models
|
||||
from . import serializers
|
||||
from . import permissions
|
||||
from . import serializers
|
||||
|
||||
|
||||
class WikiViewSet(api_views.ModelCrudViewSet):
|
||||
class WikiAttachmentViewSet(ModelCrudViewSet):
|
||||
model = Attachment
|
||||
serializer_class = AttachmentSerializer
|
||||
permission_classes = (IsAuthenticated, AttachmentPermission)
|
||||
filter_backends = (filters.IsProjectMemberFilterBackend,)
|
||||
filter_fields = ["project", "object_id"]
|
||||
|
||||
def get_queryset(self):
|
||||
ct = ContentType.objects.get_for_model(models.Wiki)
|
||||
qs = super(WikiAttachmentViewSet, self).get_queryset()
|
||||
qs = qs.filter(content_type=ct)
|
||||
return qs.distinct()
|
||||
|
||||
def pre_save(self, obj):
|
||||
super(WikiAttachmentViewSet, self).pre_save(obj)
|
||||
if not obj.id:
|
||||
obj.content_type = ContentType.objects.get_for_model(models.Wiki)
|
||||
obj.owner = self.request.user
|
||||
|
||||
|
||||
class WikiViewSet(ModelCrudViewSet):
|
||||
model = models.WikiPage
|
||||
serializer_class = serializers.WikiPageSerializer
|
||||
permission_classes = (IsAuthenticated,)
|
||||
filter_backends = (filters.IsProjectMemberFilterBackend,)
|
||||
filter_fields = ["project", "slug"]
|
||||
|
||||
def get_queryset(self):
|
||||
qs = super(WikiViewSet, self).get_queryset()
|
||||
return qs.filter(project__members=self.request.user)
|
||||
|
||||
def pre_save(self, obj):
|
||||
if not obj.owner:
|
||||
obj.owner = self.request.user
|
||||
|
|
|
@ -6,14 +6,14 @@ from greenmine.base.searches.api import SearchViewSet
|
|||
from greenmine.projects.api import ProjectViewSet
|
||||
from greenmine.projects.milestones.api import MilestoneViewSet
|
||||
from greenmine.projects.userstories.api import (PointsViewSet, UserStoryStatusViewSet,
|
||||
UserStoryViewSet,)
|
||||
from greenmine.projects.tasks.api import TaskStatusViewSet, TaskViewSet, TasksAttachmentViewSet
|
||||
UserStoryAttachmentViewSet, UserStoryViewSet,)
|
||||
from greenmine.projects.tasks.api import TaskStatusViewSet, TaskViewSet, TaskAttachmentViewSet
|
||||
from greenmine.projects.issues.api import (PriorityViewSet, SeverityViewSet,
|
||||
IssueStatusViewSet, IssueTypeViewSet,
|
||||
IssueViewSet, IssuesAttachmentViewSet,)
|
||||
IssueViewSet, IssueAttachmentViewSet,)
|
||||
from greenmine.projects.questions.api import (QuestionStatusViewSet, QuestionViewSet,
|
||||
QuestionsAttachmentViewSet,)
|
||||
from greenmine.projects.wiki.api import WikiViewSet
|
||||
QuestionAttachmentViewSet,)
|
||||
from greenmine.projects.wiki.api import (WikiViewSet, WikiAttachmentViewSet,)
|
||||
|
||||
|
||||
router = routers.DefaultRouter(trailing_slash=False)
|
||||
|
@ -35,11 +35,12 @@ router.register(r"milestones", MilestoneViewSet, base_name="milestones")
|
|||
# greenmine.projects.userstories
|
||||
router.register(r"points", PointsViewSet, base_name="points")
|
||||
router.register(r"userstory-statuses", UserStoryStatusViewSet, base_name="userstory-statuses")
|
||||
router.register(r"userstory-attachments", UserStoryAttachmentViewSet, base_name="userstory-attachments")
|
||||
router.register(r"userstories", UserStoryViewSet, base_name="userstories")
|
||||
|
||||
# greenmine.projects.tasks
|
||||
router.register(r"task-statuses", TaskStatusViewSet, base_name="task-statuses")
|
||||
router.register(r"task-attachments", TasksAttachmentViewSet, base_name="task-attachments")
|
||||
router.register(r"task-attachments", TaskAttachmentViewSet, base_name="task-attachments")
|
||||
router.register(r"tasks", TaskViewSet, base_name="tasks")
|
||||
|
||||
# greenmine.projects.issues
|
||||
|
@ -47,12 +48,12 @@ router.register(r"severities", SeverityViewSet, base_name="severities")
|
|||
router.register(r"priorities", PriorityViewSet, base_name="priorities")
|
||||
router.register(r"issue-statuses", IssueStatusViewSet, base_name="issue-statuses")
|
||||
router.register(r"issue-types", IssueTypeViewSet, base_name="issue-types")
|
||||
router.register(r"issue-attachments", IssuesAttachmentViewSet, base_name="issue-attachments")
|
||||
router.register(r"issue-attachments", IssueAttachmentViewSet, base_name="issue-attachments")
|
||||
router.register(r"issues", IssueViewSet, base_name="issues")
|
||||
|
||||
#greenmine.projects.questions
|
||||
router.register(r"question-statuses", QuestionStatusViewSet, base_name="question-statuses")
|
||||
router.register(r"question-attachments", QuestionsAttachmentViewSet,
|
||||
router.register(r"question-attachments", QuestionAttachmentViewSet,
|
||||
base_name="question-attachments")
|
||||
router.register(r"questions", QuestionViewSet, base_name="questions")
|
||||
|
||||
|
@ -61,4 +62,5 @@ router.register(r"questions", QuestionViewSet, base_name="questions")
|
|||
|
||||
# greenmine.projects.wiki
|
||||
router.register(r"wiki", WikiViewSet, base_name="wiki")
|
||||
router.register(r"wiki-attachments", WikiAttachmentViewSet, base_name="wiki-attachments")
|
||||
|
||||
|
|
Loading…
Reference in New Issue