Cleaning wiki application.
parent
f81aee8f14
commit
6794d06036
|
@ -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)
|
|
||||||
|
|
|
@ -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
|
|
||||||
|
|
|
@ -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)
|
|
||||||
|
|
|
@ -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
|
|
||||||
|
|
Loading…
Reference in New Issue