Skip to content

Commit

Permalink
Merge branch 'master' of github.com:brack3t/djangopeople.me
Browse files Browse the repository at this point in the history
  • Loading branch information
kennethlove committed Jun 8, 2012
2 parents 0d7b712 + 59b0a0b commit bb3252b
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 11 deletions.
5 changes: 3 additions & 2 deletions dp/generic/templates/generic/search.html
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ <h1>Search</h>
{% crispy form %} {% crispy form %}
</div> </div>
<div class="span8" id="searchResults"> <div class="span8" id="searchResults">
{% if object_list %}
<h1>Results</h1> <h1>Results</h1>
{% if users %} {% for user in object_list %}
{% for user in users %}
{% if units == "mi" %} {% if units == "mi" %}
<p>{{ user.user.first_name }} - {{ user.distance.mi }}</p> <p>{{ user.user.first_name }} - {{ user.distance.mi }}</p>
{% else %} {% else %}
Expand All @@ -25,6 +25,7 @@ <h1>Results</h1>
{% endif %} {% endif %}
</div> </div>
</div> </div>
{% include "_partials/_pagination.html" %}
{% endblock %} {% endblock %}


{% block extra_js %} {% block extra_js %}
Expand Down
21 changes: 12 additions & 9 deletions dp/generic/views.py
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from django.contrib.gis.measure import D from django.contrib.gis.measure import D
from django.views.generic import RedirectView, TemplateView, FormView from django.views.generic import RedirectView, TemplateView, FormView


from braces.views import LoginRequiredMixin, SelectRelatedMixin from braces.views import LoginRequiredMixin


from generic.forms import SearchForm from generic.forms import SearchForm
from generic.geocoder import Geocoder from generic.geocoder import Geocoder
Expand All @@ -31,34 +31,37 @@ def get(self, request, *args, **kwargs):


class SearchView(FormView): class SearchView(FormView):
form_class = SearchForm form_class = SearchForm
model = UserProfile
template_name = "generic/search.html" template_name = "generic/search.html"
point = u"POINT(%s %s)" % (-115.300516,36.136818)


def form_valid(self, form): def form_valid(self, form):
location = form.cleaned_data["location"] location = form.cleaned_data["location"]
distance = form.cleaned_data["distance"] distance = form.cleaned_data["distance"]
units = form.cleaned_data["units"] units = form.cleaned_data["units"]
skills = form.cleaned_data.get("skills", None) skills = form.cleaned_data.get("skills", None)
skills = [s.strip() for s in skills.split(",")]
if skills:
skills = [s.strip() for s in skills.split(",")]

point = Geocoder().mapquest_geocode(location) point = Geocoder().mapquest_geocode(location)


if point["status"]: if point["status"]:
qs = UserProfile.objects.select_related("user").exclude( queryset = self.model.objects.select_related("user").exclude(
point__isnull=True).distance(point["point"]) point__isnull=True).distance(point["point"])


if units == "km": if units == "km":
qs = qs.filter(point__distance_lte=( queryset = queryset.filter(point__distance_lte=(
point["point"], D(km=distance) point["point"], D(km=distance)
)) ))
else: else:
qs = qs.filter(point__distance_lte=( queryset = queryset.filter(point__distance_lte=(
point["point"], D(mi=distance) point["point"], D(mi=distance)
)) ))


qs = qs.order_by("distance") queryset = queryset.order_by("distance")
qs = self._filter_by_skills(qs, skills) queryset = self._filter_by_skills(queryset, skills)


return self.render_to_response({"users": qs, "form": form, return self.render_to_response({"object_list": queryset, "form": form,
"units": units}) "units": units})


def _filter_by_skills(self, queryset, skills): def _filter_by_skills(self, queryset, skills):
Expand Down

0 comments on commit bb3252b

Please sign in to comment.