# HG changeset patch # User nishanth # Date 1275141949 -19800 # Node ID 30baf3c635c54372ac3c2fbd46764d637a1446f0 # Parent f79be1dd4a22dc6735261651f0bdecdddd23b853 added list statiscs page diff -r f79be1dd4a22 -r 30baf3c635c5 sdi/forms.py --- a/sdi/forms.py Sat May 29 18:41:04 2010 +0530 +++ b/sdi/forms.py Sat May 29 19:35:49 2010 +0530 @@ -61,14 +61,13 @@ range_str = self.cleaned_data['knowledge_of_python'].strip() if not range_str: - return (1,5) + return ("","") start_stop = range_str.split("-") if len(start_stop) == 1: if start_stop[0].isdigit(): - print "only one" - return (start_stop[0], 5) + return (start_stop[0], "") else: raise forms.ValidationError("Invalid range for knowledge of Python") @@ -88,14 +87,13 @@ range_str = self.cleaned_data['knowledge_of_sage'].strip() if not range_str: - return (1,5) + return ("","") start_stop = range_str.split("-") if len(start_stop) == 1: if start_stop[0].isdigit(): - print "only one" - return (start_stop[0], 5) + return (start_stop[0], "") else: raise forms.ValidationError("Invalid range for knowledge of Sage") @@ -115,14 +113,13 @@ range_str = self.cleaned_data['likeliness_of_attending'].strip() if not range_str: - return (1,5) + return ("","") start_stop = range_str.split("-") if len(start_stop) == 1: if start_stop[0].isdigit(): - print "only one" - return (start_stop[0], 5) + return (start_stop[0], "") else: raise forms.ValidationError("Invalid range for Likeliness of attending the workshop") 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: diff -r f79be1dd4a22 -r 30baf3c635c5 templates/list_stats.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/templates/list_stats.html Sat May 29 19:35:49 2010 +0530 @@ -0,0 +1,42 @@ + + +
+ +{{form.as_p}} + +
+No.of candidates found: {{matches.count}}
+
+ + + + + + + + + + + + +{% for user in matches %} + + + + + + + + + + +{% endfor %} +
NameE MailGenderProfessionInstitution/CompanyKnowledge of other toolsPhone NumberAddress
{{user.first_name.title}} {{user.last_name.title}}{{user.email}}{{user.gender}}{{user.profession}}{{user.affiliated_to}}{{user.tools_used}}{{user.phone_num}}{{user.address|linebreaksbr}}
+ + +