Cleaning wiki application.

remotes/origin/enhancement/email-actions
Andrey Antukh 2013-10-03 20:19:14 +02:00
parent f81aee8f14
commit 6794d06036
4 changed files with 11 additions and 57 deletions

View File

@ -2,16 +2,10 @@
from django.contrib import admin from django.contrib import admin
from greenmine.projects.wiki.models import WikiPage, WikiPageAttachment from greenmine.projects.wiki.models import WikiPage
class WikiPageAdmin(admin.ModelAdmin): class WikiPageAdmin(admin.ModelAdmin):
list_display = ["slug", "project", "owner"] list_display = ["slug", "project", "owner"]
admin.site.register(WikiPage, WikiPageAdmin) admin.site.register(WikiPage, WikiPageAdmin)
class WikiPageAttachmentAdmin(admin.ModelAdmin):
list_display = ["id", "wikipage", "owner"]
admin.site.register(WikiPageAttachment, WikiPageAttachmentAdmin)

View File

@ -5,38 +5,28 @@ from django.utils.translation import ugettext as _
from django.http import Http404 from django.http import Http404
from rest_framework import generics from rest_framework import generics
from rest_framework import filters
from rest_framework.permissions import IsAuthenticated from rest_framework.permissions import IsAuthenticated
from greenmine.base.api import ModelCrudViewSet from greenmine.base import api as api_views
from greenmine.base import filters
from . import models from . import models
from . import serializers from . import serializers
from . import permissions from . import permissions
class WikiViewSet(ModelCrudViewSet): class WikiViewSet(api_views.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_backends = (filters.IsProjectMemberFilterBackend,)
filter_fields = ["project", "slug"]
def get_queryset(self): def get_queryset(self):
qs = super(WikiViewSet, 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):
if not obj.owner:
obj.owner = self.request.user obj.owner = self.request.user
def get_object(self, queryset=None):
if queryset is None:
queryset = self.get_queryset()
queryset = queryset.filter(project=self.kwargs["projectid"],
slug=self.kwargs["slug"])
try:
# Get the single item from the filtered queryset
obj = queryset.get()
except ObjectDoesNotExist:
raise Http404(_("No {verbose_name} found matching the query").format(
verbose_name=queryset.model._meta.verbose_name))
return obj

View File

@ -33,30 +33,5 @@ class WikiPage(models.Model):
('change_owned_wikipage', 'Can modify owned wiki pages'), ('change_owned_wikipage', 'Can modify owned wiki pages'),
) )
def __unicode__(self): def __str__(self):
return u'project {0} - {1}'.format(self.project_id, self.subject) return u'project {0} - {1}'.format(self.project_id, self.slug)
class WikiPageAttachment(models.Model):
wikipage = models.ForeignKey('WikiPage', null=False, blank=False,
related_name='attachments',
verbose_name=_('wiki page'))
owner = models.ForeignKey(settings.AUTH_USER_MODEL, null=False, blank=False,
related_name='owned_wiki_attachments',
verbose_name=_('owner'))
created_date = models.DateTimeField(auto_now_add=True, null=False, blank=False,
verbose_name=_('created date'))
modified_date = models.DateTimeField(auto_now=True, null=False, blank=False,
verbose_name=_('modified date'))
attached_file = models.FileField(max_length=500, null=True, blank=True,
upload_to='files/wiki',
verbose_name=_('attached file'))
class Meta:
verbose_name = u'wiki page attachment'
verbose_name_plural = u'wiki page attachments'
ordering = ['wikipage', 'created_date']
def __unicode__(self):
return u'project {0} - page {1} - attachment {2}'.format(self.wikipage.project_id,
self.wikipage.subject, self.id)

View File

@ -8,8 +8,3 @@ from . import models
class WikiPageSerializer(serializers.ModelSerializer): class WikiPageSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = models.WikiPage model = models.WikiPage
class WikiPageAttachmentSerializer(serializers.ModelSerializer):
class Meta:
model = models.WikiPageAttachment