Add default query set filtering to public objects.
Also add in signals to search to allow filtering there.programming-language-support
parent
f543b35aae
commit
ef80f5469c
|
@ -59,7 +59,7 @@ class Command(BaseCommand):
|
|||
record=False,
|
||||
version_pk=version.pk)
|
||||
else:
|
||||
p = Project.objects.get(slug=slug)
|
||||
p = Project.all_objects.get(slug=slug)
|
||||
log.info("Building %s" % p)
|
||||
trigger_build(project=p, force=force)
|
||||
else:
|
||||
|
|
|
@ -8,6 +8,9 @@ from projects import constants
|
|||
|
||||
class ProjectManager(models.Manager):
|
||||
|
||||
def get_query_set(self):
|
||||
return super(CorporateProjectManager, self).get_query_set().filter(privacy_level='public')
|
||||
|
||||
def _filter_queryset(self, user, privacy_level):
|
||||
# Avoid circular import
|
||||
from projects.models import Project
|
||||
|
|
|
@ -30,7 +30,6 @@ class ProjectAdmin(GuardedModelAdmin):
|
|||
inlines = [ProjectRelationshipInline, RedirectInline, VersionInline]
|
||||
raw_id_fields = ('users', 'main_language_project')
|
||||
|
||||
|
||||
class ImportedFileAdmin(admin.ModelAdmin):
|
||||
list_display = ('path', 'name', 'version')
|
||||
list_filter = ('project',)
|
||||
|
|
|
@ -202,6 +202,7 @@ class Project(models.Model):
|
|||
|
||||
tags = TaggableManager(blank=True)
|
||||
objects = ProjectManager()
|
||||
all_objects = models.Manager()
|
||||
|
||||
class Meta:
|
||||
ordering = ('slug',)
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
from .indexes import ProjectIndex, PageIndex
|
||||
|
||||
from elasticsearch import Elasticsearch, exceptions
|
||||
from elasticsearch.helpers import bulk_index
|
||||
|
||||
from django.conf import settings
|
||||
|
||||
from search.indexes import ProjectIndex, PageIndex
|
||||
# Hack around django requiring a specific import path for signals >:x
|
||||
try:
|
||||
from readthedocs.search.signals import before_project_search, before_file_search
|
||||
except:
|
||||
from search.signals import before_file_search
|
||||
|
||||
|
||||
def search_project(query, language):
|
||||
|
@ -35,7 +35,9 @@ def search_project(query, language):
|
|||
|
||||
if language:
|
||||
body['facets']['language']['facet_filter'] = {"term": {"lang": language}}
|
||||
body['filter'] = {"term": {"lang": language}}
|
||||
body['filter'] = {"term": {"lang": language}}
|
||||
|
||||
before_project_search.send(sender=ProjectIndex, body=body)
|
||||
|
||||
return ProjectIndex().search(body)
|
||||
|
||||
|
@ -95,5 +97,7 @@ def search_file(query, project=None, version='latest', taxonomy=None):
|
|||
body['facets']['version']['facet_filter'] = final_filter
|
||||
body['facets']['taxonomy']['facet_filter'] = final_filter
|
||||
|
||||
before_file_search.send(sender=PageIndex, body=body)
|
||||
|
||||
results = PageIndex().search(body, **kwargs)
|
||||
return results
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
import django.dispatch
|
||||
|
||||
before_project_search = django.dispatch.Signal(providing_args=["body"])
|
||||
before_file_search = django.dispatch.Signal(providing_args=["body"])
|
Loading…
Reference in New Issue