switch to multi-table inheritance for posts; remove qcombine that is no more needed; add and integrate post.downcast + as template filter

This commit is contained in:
bkfox
2016-07-06 16:27:30 +02:00
parent cfce035527
commit ff02258d8b
7 changed files with 49 additions and 189 deletions

View File

@@ -6,8 +6,6 @@ from django.utils.translation import ugettext as _, ugettext_lazy
from taggit.models import Tag
import aircox.cms.qcombine as qcombine
class Route:
"""
@@ -189,7 +187,8 @@ class SearchRoute(Route):
]
@classmethod
def __search(cl, model, q):
def get_queryset(cl, model, request, q = None, **kwargs):
q = request.GET.get('q') or q or ''
qs = None
for search_field in model.search_fields or []:
r = models.Q(**{ search_field + '__icontains': q })
@@ -197,17 +196,6 @@ class SearchRoute(Route):
else: qs = r
return model.objects.filter(qs).distinct()
@classmethod
def get_queryset(cl, model, request, q = None, **kwargs):
q = request.GET.get('q') or q or ''
if issubclass(model, qcombine.GenericModel):
models = model.models
return qcombine.QCombine(
*(cl.__search(model, q) for model in models)
)
return cl.__search(model, q)
@classmethod
def get_title(cl, model, request, q = None, **kwargs):
return _('Search <i>%(search)s</i> in %(model)s') % {