Minor fixes on wiki pages.
parent
164e45b4b0
commit
2ea5a94de2
|
@ -2,6 +2,8 @@
|
||||||
|
|
||||||
from rest_framework.permissions import IsAuthenticated
|
from rest_framework.permissions import IsAuthenticated
|
||||||
|
|
||||||
|
import reversion
|
||||||
|
|
||||||
from greenmine.base import filters
|
from greenmine.base import filters
|
||||||
from greenmine.base.api import ModelCrudViewSet, ModelListViewSet
|
from greenmine.base.api import ModelCrudViewSet, ModelListViewSet
|
||||||
from greenmine.base.notifications.api import NotificationSenderMixin
|
from greenmine.base.notifications.api import NotificationSenderMixin
|
||||||
|
|
|
@ -7,31 +7,26 @@ from django.http import Http404
|
||||||
from rest_framework import generics
|
from rest_framework import generics
|
||||||
from rest_framework.permissions import IsAuthenticated
|
from rest_framework.permissions import IsAuthenticated
|
||||||
|
|
||||||
|
from greenmine.base.api import ModelCrudViewSet
|
||||||
|
|
||||||
from . import models
|
from . import models
|
||||||
from . import serializers
|
from . import serializers
|
||||||
from . import permissions
|
from . import permissions
|
||||||
|
|
||||||
|
|
||||||
class WikiPageList(generics.ListCreateAPIView):
|
class WikiViewSet(ModelCrudViewSet):
|
||||||
model = models.WikiPage
|
model = models.WikiPage
|
||||||
serializer_class = serializers.WikiPageSerializer
|
serializer_class = serializers.WikiPageSerializer
|
||||||
permission_classes = (IsAuthenticated,)
|
permission_classes = (IsAuthenticated,)
|
||||||
filter_fields = ["project"]
|
filter_fields = ["project"]
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
qs = super(WikiPageList, self).get_queryset()
|
qs = super(WikiViewSet, self).get_queryset()
|
||||||
return qs.filter(project__members=self.request.user)
|
return qs.filter(project__members=self.request.user)
|
||||||
|
|
||||||
def pre_save(self, obj):
|
def pre_save(self, obj):
|
||||||
obj.owner = self.request.user
|
obj.owner = self.request.user
|
||||||
|
|
||||||
|
|
||||||
class WikiPageDetail(generics.RetrieveUpdateDestroyAPIView):
|
|
||||||
model = models.WikiPage
|
|
||||||
serializer_class = serializers.WikiPageSerializer
|
|
||||||
permission_classes = (IsAuthenticated, permissions.WikiPagePermission,)
|
|
||||||
|
|
||||||
def get_object(self, queryset=None):
|
def get_object(self, queryset=None):
|
||||||
if queryset is None:
|
if queryset is None:
|
||||||
queryset = self.get_queryset()
|
queryset = self.get_queryset()
|
||||||
|
@ -45,17 +40,3 @@ class WikiPageDetail(generics.RetrieveUpdateDestroyAPIView):
|
||||||
raise Http404(_("No {verbose_name} found matching the query").format(
|
raise Http404(_("No {verbose_name} found matching the query").format(
|
||||||
verbose_name=queryset.model._meta.verbose_name))
|
verbose_name=queryset.model._meta.verbose_name))
|
||||||
return obj
|
return obj
|
||||||
|
|
||||||
|
|
||||||
#class WikiPageAttachmentList(generics.ListCreateAPIView):
|
|
||||||
# model = WikiPageAttachment
|
|
||||||
# serializer_class = WikiPageAttachmentSerializer
|
|
||||||
#
|
|
||||||
# def get_queryset(self):
|
|
||||||
# return self.model.objects.filter(wikipage__project__members=self.request.user)
|
|
||||||
#
|
|
||||||
#
|
|
||||||
#class WikiPageAttachmentDetail(generics.RetrieveUpdateDestroyAPIView):
|
|
||||||
# model = WikiPageAttachment
|
|
||||||
# serializer_class = WikiPageAttachmentSerializer
|
|
||||||
# permission_classes = (WikiPageAttachmentPermission,)
|
|
||||||
|
|
|
@ -7,22 +7,20 @@ from django.utils.translation import ugettext_lazy as _
|
||||||
|
|
||||||
class WikiPage(models.Model):
|
class WikiPage(models.Model):
|
||||||
project = models.ForeignKey('projects.Project', null=False, blank=False,
|
project = models.ForeignKey('projects.Project', null=False, blank=False,
|
||||||
related_name='wiki_pages',
|
related_name='wiki_pages', verbose_name=_('project'))
|
||||||
verbose_name=_('project'))
|
|
||||||
slug = models.SlugField(max_length=500, db_index=True, null=False, blank=False,
|
slug = models.SlugField(max_length=500, db_index=True, null=False, blank=False,
|
||||||
verbose_name=_('slug'))
|
verbose_name=_('slug'))
|
||||||
content = models.TextField(null=False, blank=True,
|
content = models.TextField(null=False, blank=True,
|
||||||
verbose_name=_('content'))
|
verbose_name=_('content'))
|
||||||
owner = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True,
|
owner = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True,
|
||||||
related_name='owned_wiki_pages',
|
related_name='owned_wiki_pages', verbose_name=_('owner'))
|
||||||
verbose_name=_('owner'))
|
|
||||||
watchers = models.ManyToManyField(settings.AUTH_USER_MODEL, null=True, blank=True,
|
watchers = models.ManyToManyField(settings.AUTH_USER_MODEL, null=True, blank=True,
|
||||||
related_name='watched_wiki_pages',
|
related_name='watched_wiki_pages',
|
||||||
verbose_name=_('watchers'))
|
verbose_name=_('watchers'))
|
||||||
created_date = models.DateTimeField(auto_now_add=True, null=False, blank=False,
|
created_date = models.DateTimeField(auto_now_add=True, null=False, blank=False,
|
||||||
verbose_name=_('created date'))
|
verbose_name=_('created date'))
|
||||||
modified_date = models.DateTimeField(auto_now=True, null=False, blank=False,
|
modified_date = models.DateTimeField(auto_now=True, null=False, blank=False,
|
||||||
verbose_name=_('modified date'))
|
verbose_name=_('modified date'))
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
verbose_name = u'wiki page'
|
verbose_name = u'wiki page'
|
||||||
|
|
|
@ -11,6 +11,7 @@ from greenmine.projects.tasks.api import TaskStatusViewSet, TaskViewSet, TasksAt
|
||||||
from greenmine.projects.issues.api import (PriorityViewSet, SeverityViewSet,
|
from greenmine.projects.issues.api import (PriorityViewSet, SeverityViewSet,
|
||||||
IssueStatusViewSet, IssueTypeViewSet,
|
IssueStatusViewSet, IssueTypeViewSet,
|
||||||
IssueViewSet, IssuesAttachmentViewSet,)
|
IssueViewSet, IssuesAttachmentViewSet,)
|
||||||
|
from greenmine.projects.wiki.api import WikiViewSet
|
||||||
|
|
||||||
|
|
||||||
router = routers.DefaultRouter(trailing_slash=False)
|
router = routers.DefaultRouter(trailing_slash=False)
|
||||||
|
@ -47,9 +48,10 @@ 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", IssuesAttachmentViewSet, base_name="issue-attachments")
|
||||||
router.register(r"issues", IssueViewSet, base_name="issues")
|
router.register(r"issues", IssueViewSet, base_name="issues")
|
||||||
|
|
||||||
|
# greenmine.projects.wiki
|
||||||
|
router.register(r"wiki", WikiViewSet, base_name="wiki")
|
||||||
|
|
||||||
#greenmine.projects.questions
|
#greenmine.projects.questions
|
||||||
# TODO
|
# TODO
|
||||||
#greenmine.projects.wiki
|
|
||||||
# TODO
|
|
||||||
#greenmine.projects.documents
|
#greenmine.projects.documents
|
||||||
# TODO
|
# TODO
|
||||||
|
|
Loading…
Reference in New Issue