Commit 7bb4334f by benjaoming

Merge branch 'master' of github.com:kilrogg/django-wiki into kilrogg-master

Conflicts:
	wiki/plugins/haystack/views.py
parents f100e698 aded5116
from __future__ import absolute_import from __future__ import absolute_import
from __future__ import unicode_literals from __future__ import unicode_literals
from haystack.backends import SQ
from wiki.views.article import SearchView from wiki.views.article import SearchView
from haystack.query import SearchQuerySet from haystack.query import SearchQuerySet
from haystack.inputs import AutoQuery from haystack.inputs import AutoQuery
from wiki.core import permissions from wiki.core import permissions
from wiki import models from wiki import models
class HaystackSearchView(SearchView): class HaystackSearchView(SearchView):
template_name = 'wiki/plugins/haystack/search.html' template_name = 'wiki/plugins/haystack/search.html'
...@@ -13,20 +15,18 @@ class HaystackSearchView(SearchView): ...@@ -13,20 +15,18 @@ class HaystackSearchView(SearchView):
def get_queryset(self): def get_queryset(self):
qs = SearchQuerySet().all() qs = SearchQuerySet().all()
if self.request.user.is_authenticated(): if self.request.user.is_authenticated():
# TODO: This has a leak! It should say: if not permissions.can_moderate(models.URLPath.root().article, self.request.user):
# group=self.request.group.id AND group_read=True qs = qs.filter(
if not permissions.can_moderate(models.URLPath.root().article, SQ(owner_id=self.request.user.id) |
self.request.user): (
qs = qs.filter_or( SQ(group_id__in=self.request.user.groups.values_list('id', flat=True))
owner=self.request.user.id, & SQ(group_read=True)
group=self.request.group.id, ) |
other_read=True SQ(other_read=True)
) )
else: else:
qs = qs.exclude(other_read=False) qs = qs.exclude(other_read=False)
qs = qs.filter(content=AutoQuery(self.query)) qs = qs.filter(content=AutoQuery(self.query))
qs = qs.exclude(other_read=False)
qs = qs.load_all() qs = qs.load_all()
return qs return qs
\ No newline at end of file
...@@ -39,7 +39,7 @@ class SettingsModelForm(forms.ModelForm): ...@@ -39,7 +39,7 @@ class SettingsModelForm(forms.ModelForm):
if instance: if instance:
self.__editing_instance = True self.__editing_instance = True
self.fields['delete_subscriptions'] = ArticleSubscriptionModelMultipleChoiceField( self.fields['delete_subscriptions'] = ArticleSubscriptionModelMultipleChoiceField(
models.ArticleSubscription.objects.filter(settings=instance), models.ArticleSubscription.objects.filter(subscription__settings=instance),
label=_("Remove subscriptions"), label=_("Remove subscriptions"),
required=False, required=False,
help_text=_("Select article subscriptions to remove from notifications"), help_text=_("Select article subscriptions to remove from notifications"),
......
...@@ -24,7 +24,7 @@ class NotificationSettings(FormView): ...@@ -24,7 +24,7 @@ class NotificationSettings(FormView):
settings = form.save() settings = form.save()
from . import models from . import models
article_subscriptions = models.ArticleSubscription.objects.filter( article_subscriptions = models.ArticleSubscription.objects.filter(
settings = form.instance, subscription_settings = form.instance,
article__current_revision__deleted=False, article__current_revision__deleted=False,
).select_related('article', 'article__current_revision') ).select_related('article', 'article__current_revision')
messages.info( messages.info(
...@@ -51,7 +51,7 @@ class NotificationSettings(FormView): ...@@ -51,7 +51,7 @@ class NotificationSettings(FormView):
if form.instance: if form.instance:
setattr(form.instance, 'articlesubscriptions', setattr(form.instance, 'articlesubscriptions',
models.ArticleSubscription.objects.filter( models.ArticleSubscription.objects.filter(
settings = form.instance, subscription__settings = form.instance,
article__current_revision__deleted=False, article__current_revision__deleted=False,
).select_related('article', 'article__current_revision') ).select_related('article', 'article__current_revision')
) )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment