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 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

View File

@ -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,)

View File

@ -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'

View File

@ -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