diff -r f79be1dd4a22 -r 30baf3c635c5 sdi/views.py --- a/sdi/views.py Sat May 29 18:41:04 2010 +0530 +++ b/sdi/views.py Sat May 29 19:35:49 2010 +0530 @@ -31,7 +31,40 @@ if request.method == "POST": form = SearchForm(request.POST) if form.is_valid(): - pass + data = form.cleaned_data + need_workshop = data['need_for_python_workshop'] + db_query = "Registrant.objects.filter(need_for_python_workshop=%s)"%need_workshop + + topics_include, topics_exclude = data['topics_interested'] + for number in topics_include: + db_query += '.filter(topics_interested__contains="%s")'%number + + for number in topics_exclude: + db_query += '.exclude(topics_interested__contains="%s")'%number + + start_python, stop_python = data['knowledge_of_python'] + if start_python and stop_python: + db_query += '.filter(knowledge_of_python__gte="%s")'%start_python + db_query += '.filter(knowledge_of_python__lte="%s")'%stop_python + elif start_python: + db_query += '.filter(knowledge_of_python__exact="%s")'%start_python + + start_sage, stop_sage = data['knowledge_of_sage'] + if start_sage and stop_sage: + db_query += '.filter(knowledge_of_sage__gte="%s")'%start_sage + db_query += '.filter(knowledge_of_sage__lte="%s")'%stop_sage + elif start_sage: + db_query += '.filter(knowledge_of_sage__exact="%s")'%start_sage + + start_likeliness, stop_likeliness = data['likeliness_of_attending'] + if start_likeliness and stop_likeliness: + db_query += '.filter(likeliness_of_attending__gte="%s")'%start_likeliness + db_query += '.filter(likeliness_of_attending__lte="%s")'%stop_likeliness + elif start_likeliness: + db_query += '.filter(likeliness_of_attending__exact="%s")'%start_likeliness + + matches = eval(db_query) + return render_to_response("list_stats.html", {"form":form, 'matches':matches}) else: return render_to_response("list_stats.html", {"form":form}) else: