def process_advanced(request): """ Runs advanced searches. """ form = AdvancedSearch(request.GET) if not form.is_valid(): return render_to_response('gcd/search/advanced.html', { 'form': form, 'style': 'default' }, context_instance=RequestContext(request)) data = form.cleaned_data template = None context = {} op = str(data['method'] or 'iregex') try: stq_obj = search_stories(data, op) iq_obj = search_issues(data, op) sq_obj = search_series(data, op) pq_obj = search_publishers(data, op) query = combine_q(data, stq_obj, iq_obj, sq_obj, pq_obj) terms = compute_order(data) except SearchError, se: return render_to_response( 'gcd/search/advanced.html', { 'form': form, 'style': 'default', 'error_text': '%s' % se, }, context_instance=RequestContext(request))
def do_advanced_search(request): """ Runs advanced searches. """ form = AdvancedSearch(request.GET) if not form.is_valid(): raise ViewTerminationError(response = render_to_response( 'gcd/search/advanced.html', { 'form': form }, context_instance=RequestContext(request))) data = form.cleaned_data op = str(data['method'] or 'iregex') try: stq_obj = search_stories(data, op) iq_obj = search_issues(data, op) sq_obj = search_series(data, op) if data['target'] != 'brand': ipq_obj = search_indicia_publishers(data, op) else: ipq_obj = None if data['target'] != 'indicia_publisher': bq_obj = search_brands(data, op) else: bq_obj = None pq_obj = search_publishers(data, op) # if there are sequence searches limit to type cover if data['target'] == 'cover' and stq_obj != None: cq_obj = Q(**{ 'issue__story__type': StoryType.objects\ .get(name='cover') }) else: cq_obj = None query = combine_q(data, stq_obj, iq_obj, sq_obj, pq_obj, bq_obj, ipq_obj, cq_obj) terms = compute_order(data) except SearchError, se: raise ViewTerminationError, render_to_response( 'gcd/search/advanced.html', { 'form': form, 'error_text': '%s' % se, }, context_instance=RequestContext(request))
def do_advanced_search(request): """ Runs advanced searches. """ form = AdvancedSearch(request.GET) if not form.is_valid(): raise ViewTerminationError(response=render_to_response( 'gcd/search/advanced.html', {'form': form}, context_instance=RequestContext(request))) data = form.cleaned_data op = str(data['method'] or 'iregex') try: stq_obj = search_stories(data, op) iq_obj = search_issues(data, op) sq_obj = search_series(data, op) ipq_obj = search_indicia_publishers(data, op) bq_obj = search_brands(data, op) pq_obj = search_publishers(data, op) # if there are sequence searches limit to type cover if data['target'] == 'cover' and stq_obj != None: cq_obj = Q(**{ 'issue__story__type': StoryType.objects\ .get(name='cover') }) else: cq_obj = None query = combine_q(data, stq_obj, iq_obj, sq_obj, pq_obj, bq_obj, ipq_obj, cq_obj) terms = compute_order(data) except SearchError, se: raise ViewTerminationError, render_to_response( 'gcd/search/advanced.html', { 'form': form, 'error_text': '%s' % se, }, context_instance=RequestContext(request))