From 2ea5a94de284c38ee930d803c25b90eafb9f11c9 Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Thu, 3 Oct 2013 18:20:12 +0200 Subject: [PATCH] Minor fixes on wiki pages. --- greenmine/projects/userstories/api.py | 2 ++ greenmine/projects/wiki/api.py | 25 +++---------------------- greenmine/projects/wiki/models.py | 18 ++++++++---------- greenmine/routers.py | 6 ++++-- 4 files changed, 17 insertions(+), 34 deletions(-) diff --git a/greenmine/projects/userstories/api.py b/greenmine/projects/userstories/api.py index 7ca332c8..2c07c69f 100644 --- a/greenmine/projects/userstories/api.py +++ b/greenmine/projects/userstories/api.py @@ -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 diff --git a/greenmine/projects/wiki/api.py b/greenmine/projects/wiki/api.py index a10adbac..d5ac7cb5 100644 --- a/greenmine/projects/wiki/api.py +++ b/greenmine/projects/wiki/api.py @@ -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,) diff --git a/greenmine/projects/wiki/models.py b/greenmine/projects/wiki/models.py index 2c190b61..658db2cd 100644 --- a/greenmine/projects/wiki/models.py +++ b/greenmine/projects/wiki/models.py @@ -7,22 +7,20 @@ 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')) + verbose_name=_('slug')) content = models.TextField(null=False, blank=True, - verbose_name=_('content')) + 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')) + related_name='watched_wiki_pages', + verbose_name=_('watchers')) 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, - verbose_name=_('modified date')) + verbose_name=_('modified date')) class Meta: verbose_name = u'wiki page' diff --git a/greenmine/routers.py b/greenmine/routers.py index 6ebbb760..78ed6139 100644 --- a/greenmine/routers.py +++ b/greenmine/routers.py @@ -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