Minor fixes on wiki pages.

remotes/origin/enhancement/email-actions
Andrey Antukh 2013-10-03 18:20:12 +02:00
parent 164e45b4b0
commit 2ea5a94de2
4 changed files with 17 additions and 34 deletions

View File

@ -2,6 +2,8 @@
from rest_framework.permissions import IsAuthenticated
import reversion
from greenmine.base import filters
from greenmine.base.api import ModelCrudViewSet, ModelListViewSet
from greenmine.base.notifications.api import NotificationSenderMixin

View File

@ -7,31 +7,26 @@ from django.http import Http404
from rest_framework import generics
from rest_framework.permissions import IsAuthenticated
from greenmine.base.api import ModelCrudViewSet
from . import models
from . import serializers
from . import permissions
class WikiPageList(generics.ListCreateAPIView):
class WikiViewSet(ModelCrudViewSet):
model = models.WikiPage
serializer_class = serializers.WikiPageSerializer
permission_classes = (IsAuthenticated,)
filter_fields = ["project"]
def get_queryset(self):
qs = super(WikiPageList, self).get_queryset()
qs = super(WikiViewSet, self).get_queryset()
return qs.filter(project__members=self.request.user)
def pre_save(self, obj):
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):
if queryset is None:
queryset = self.get_queryset()
@ -45,17 +40,3 @@ class WikiPageDetail(generics.RetrieveUpdateDestroyAPIView):
raise Http404(_("No {verbose_name} found matching the query").format(
verbose_name=queryset.model._meta.verbose_name))
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,)

View File

@ -7,15 +7,13 @@ from django.utils.translation import ugettext_lazy as _
class WikiPage(models.Model):
project = models.ForeignKey('projects.Project', null=False, blank=False,
related_name='wiki_pages',
verbose_name=_('project'))
related_name='wiki_pages', verbose_name=_('project'))
slug = models.SlugField(max_length=500, db_index=True, null=False, blank=False,
verbose_name=_('slug'))
content = models.TextField(null=False, blank=True,
verbose_name=_('content'))
owner = models.ForeignKey(settings.AUTH_USER_MODEL, null=True, blank=True,
related_name='owned_wiki_pages',
verbose_name=_('owner'))
related_name='owned_wiki_pages', verbose_name=_('owner'))
watchers = models.ManyToManyField(settings.AUTH_USER_MODEL, null=True, blank=True,
related_name='watched_wiki_pages',
verbose_name=_('watchers'))

View File

@ -11,6 +11,7 @@ from greenmine.projects.tasks.api import TaskStatusViewSet, TaskViewSet, TasksAt
from greenmine.projects.issues.api import (PriorityViewSet, SeverityViewSet,
IssueStatusViewSet, IssueTypeViewSet,
IssueViewSet, IssuesAttachmentViewSet,)
from greenmine.projects.wiki.api import WikiViewSet
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"issues", IssueViewSet, base_name="issues")
# greenmine.projects.wiki
router.register(r"wiki", WikiViewSet, base_name="wiki")
#greenmine.projects.questions
# TODO
#greenmine.projects.wiki
# TODO
#greenmine.projects.documents
# TODO