Exemplo n.º 1
0
    def get_documents(self):
        """ Return the documents accordingly to specific search field """
        documents = Document.objects.all()
        if self.request.user.is_authenticated():
            permited_docs = get_objects_for_user(
                self.request.user,
                'documents.access_document',
                Document,
                use_groups=True).values_list('id', flat=True)
            documents = \
                documents.filter(Q(id__in=permited_docs) | Q(public=True))
        else:
            documents = documents.filter(public=True)
        form = SearchDocumentForm(self.request.GET)
        if form.is_valid():
            opts = {}
            for key in form.cleaned_data:
                if form.cleaned_data[key] != '':
                    opts[key + '__icontains'] = form.cleaned_data[key]
                    self.vs_query += " " + key + ":" + form.cleaned_data[key]
            documents = documents.filter(**opts)

#        references = self.get_references()
#        if references:
#            documents = documents.filter(reference__in=references)

        return documents