@@ -250,7 +250,37 @@ def filter(request, category=None, tutorial=None, minute_range=None, second_rang
250250 if 'qid' in request .GET :
251251 context ['qid' ] = int (request .GET ['qid' ])
252252
253- context ['questions' ] = questions .order_by ('category' , 'tutorial' , 'minute_range' , 'second_range' )
253+ #context['questions'] = questions.order_by('category', 'tutorial', 'minute_range', 'second_range')
254+ questions = questions .annotate (total_answers = Count ('answer' ))
255+ raw_get_data = request .GET .get ('o' , None )
256+
257+ header = {
258+ 1 : SortableHeader ('category' , True , 'Foss' ),
259+ 2 : SortableHeader ('tutorial' , True , 'Tutorial Name' ),
260+ 3 : SortableHeader ('minute_range' , True , 'Mins' ),
261+ 4 : SortableHeader ('second_range' , True , 'Secs' ),
262+ 5 : SortableHeader ('title' , True , 'Title' ),
263+ 6 : SortableHeader ('date_created' , True , 'Date' ),
264+ 7 : SortableHeader ('views' , True , 'Views' ),
265+ 8 : SortableHeader ('total_answers' , 'True' , 'Answers' ),
266+ 9 : SortableHeader ('username' , False , 'User' )
267+ }
268+
269+ tmp_recs = get_sorted_list (request , questions , header , raw_get_data )
270+ ordering = get_field_index (raw_get_data )
271+ paginator = Paginator (tmp_recs , 20 )
272+ page = request .GET .get ('page' )
273+ try :
274+ questions = paginator .page (page )
275+ except PageNotAnInteger :
276+ questions = paginator .page (1 )
277+ except EmptyPage :
278+ questions = paginator .page (paginator .num_pages )
279+ context = {
280+ 'questions' : questions ,
281+ 'header' : header ,
282+ 'ordering' : ordering
283+ }
254284 return render (request , 'website/templates/filter.html' , context )
255285
256286
@@ -560,7 +590,19 @@ def ajax_keyword_search(request):
560590 key = request .POST ['key' ]
561591 questions = Question .objects .filter (
562592 Q (title__icontains = key ) | Q (category__icontains = key ) |
563- Q (tutorial__icontains = key ) | Q (body__icontains = key ), status = 1 )
593+ Q (tutorial__icontains = key ) | Q (body__icontains = key ), status = 1
594+ ).order_by ('-date_created' )
595+ paginator = Paginator (questions , 20 )
596+ page = request .POST .get ('page' )
597+ if page :
598+ page = int (request .POST .get ('page' ))
599+ questions = paginator .page (page )
600+ try :
601+ questions = paginator .page (page )
602+ except PageNotAnInteger :
603+ questions = paginator .page (1 )
604+ except EmptyPage :
605+ questions = paginator .page (paginator .num_pages )
564606 context = {
565607 'questions' : questions
566608 }
0 commit comments