From e0b91256e292583c5bd25e39b198914cc157f850 Mon Sep 17 00:00:00 2001 From: Nick Sergeant Date: Sun, 22 Apr 2012 23:03:50 -0400 Subject: [PATCH] Working on search --- media/css/style.css | 42 +++++++++------ media/css/style.scss | 53 +++++++++---------- .../snipts/snipt-edit-js-template.html | 4 +- snipts/templates/snipts/snipt-list.html | 2 +- snipts/templatetags/snipt_tags.py | 10 +++- snipts/views.py | 4 -- templates/base.html | 11 ++-- templates/search/search.html | 25 ++++++--- urls.py | 12 ++++- 9 files changed, 100 insertions(+), 63 deletions(-) diff --git a/media/css/style.css b/media/css/style.css index e3afe61..320e98b 100644 --- a/media/css/style.css +++ b/media/css/style.css @@ -69,20 +69,7 @@ header.main div.inner form.search { position: relative; z-index: 50; } -header.main div.inner form.search div.infield { - position: relative; -} -header.main div.inner form.search div.infield label { - color: #72979C; - cursor: text; - float: none; - font: normal 12px "Helvetica Neue", Helvetica, Arial, "Liberation Sans", FreeSans, sans-serif; - left: 30px; - position: absolute; - top: 8px; - width: auto; -} -header.main div.inner form.search div.infield input { +header.main div.inner form.search input { background: #17484f url("/static/images/search-icon.png") top left no-repeat; background: rgba(43, 82, 93, 0.5) url("/static/images/search-icon.png") 8px center no-repeat; border: 1px solid #3A5E67; @@ -102,9 +89,15 @@ header.main div.inner form.search div.infield input { -moz-box-shadow: inset 0 1px 0px #1d4249; box-shadow: inset 0 1px 0px #1d4249; } -header.main div.inner form.search div.infield input:focus { +header.main div.inner form.search input:focus { border-color: #62D5E1; } +header.main div.inner form.search input::-webkit-input-placeholder { + color: #72979C; +} +header.main div.inner form.search input:-moz-placeholder { + color: #72979C; +} header.main div.inner nav.public { float: left; } @@ -1129,9 +1122,26 @@ body.error div.rochester-made { body.search div.empty-snipts { margin-top: 20px; } +body.search div.static-box { + border-left: 0; + margin-left: 0; + margin-right: 30px; + -webkit-border-top-left-radius: 0px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-border-bottom-left-radius: 0px; + -moz-border-radius-topleft: 0px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 4px; + -moz-border-radius-bottomleft: 0px; + border-top-left-radius: 0px; + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 0px; +} body.search div.static-box form { margin-bottom: 0; } body.search div.static-box form input.search-query { - width: 571px; + width: 570px; } diff --git a/media/css/style.scss b/media/css/style.scss index 84755e7..de415ec 100644 --- a/media/css/style.scss +++ b/media/css/style.scss @@ -128,35 +128,27 @@ header.main { position: relative; z-index: 50; - div.infield { - position: relative; + input { + background: #17484F url('/static/images/search-icon.png') top left no-repeat; + background: rgba(43, 82, 93, .5) url('/static/images/search-icon.png') 8px center no-repeat; + border: 1px solid #3A5E67; + color: #FFF; + font: normal 12px $Helvetica; + height: auto; + margin: 0; + padding: 7px 7px 7px 28px; + width: 154px; + @include border-radius(3px); + @include inset-box-shadow(0, 1px, 0px, #1D4249); - label { - color: #72979C; - cursor: text; - float: none; - font: normal 12px $Helvetica; - left: 30px; - position: absolute; - top: 8px; - width: auto; + &:focus { + border-color: #62D5E1; } - input { - background: #17484F url('/static/images/search-icon.png') top left no-repeat; - background: rgba(43, 82, 93, .5) url('/static/images/search-icon.png') 8px center no-repeat; - border: 1px solid #3A5E67; - color: #FFF; - font: normal 12px $Helvetica; - height: auto; - margin: 0; - padding: 7px 7px 7px 28px; - width: 154px; - @include border-radius(3px); - @include inset-box-shadow(0, 1px, 0px, #1D4249); - - &:focus { - border-color: #62D5E1; - } + &::-webkit-input-placeholder { + color: #72979C; + } + &:-moz-placeholder { + color: #72979C; } } } @@ -1276,11 +1268,16 @@ body.search { margin-top: 20px; } div.static-box { + border-left: 0; + margin-left: 0; + margin-right: 30px; + @include multi-border-radius(0px, 4px, 4px, 0px); + form { margin-bottom: 0; input.search-query { - width: 571px; + width: 570px; } } } diff --git a/snipts/templates/snipts/snipt-edit-js-template.html b/snipts/templates/snipts/snipt-edit-js-template.html index d9790f4..595bd86 100644 --- a/snipts/templates/snipts/snipt-edit-js-template.html +++ b/snipts/templates/snipts/snipt-edit-js-template.html @@ -1,4 +1,6 @@ -{% load verbatim %} +{% load verbatim snipt_tags %} + +{% get_lexers as 'lexers' %} {% verbatim %} {% endblock %} @@ -67,9 +71,8 @@

Snipt

diff --git a/templates/search/search.html b/templates/search/search.html index 79990c0..7425e0d 100644 --- a/templates/search/search.html +++ b/templates/search/search.html @@ -1,31 +1,44 @@ {% extends "base.html" %} -{% block page-title %}/ search {% if query %}/ {{ query }}{% endif %}{% endblock %} +{% block page-title %}/ search {% if query %}/ “{{ query }}”{% endif %}{% endblock %} {% block html-class %}search{% endblock %} {% block body-class %}search static{% endblock %} +{% block js %} + {{ block.super }} + window.detail = false; +{% endblock %} + {% block breadcrumb %}
  • search
  • {% if query %} -
  • / {{ query }}
  • +
  • / “{{ query }}”
  • {% endif %} {% endblock %} {% block content %} -
    +
    {% if query %} + {% if page.object_list|length > 0 %} +
    + {% endif %} {% for result in page.object_list %} - {{ result.object.title }}
    + {% with result.object as snipt %} + {% include "snipts/snipt-list.html" %} + {% endwith %} {% empty %}
    No snipts found for “{{ query }}”.
    {% endfor %} + {% if page.object_list|length > 0 %} +
    + {% endif %} {% if page.has_previous or page.has_next %} {% endif %} - {% else %} - {# Show some example queries to run, maybe query syntax, something else? #} {% endif %} {% endblock %} diff --git a/urls.py b/urls.py index ba39ea1..976b306 100644 --- a/urls.py +++ b/urls.py @@ -1,8 +1,12 @@ from django.views.generic.simple import direct_to_template from registration.forms import RegistrationFormUniqueEmail +from haystack.views import SearchView, search_view_factory from django.http import HttpResponseRedirect +from haystack.forms import ModelSearchForm +from haystack.query import SearchQuerySet from django.conf.urls.defaults import * from django.contrib import admin +from django.db.models import Q from tastypie.api import Api from snipts.api import * @@ -22,6 +26,8 @@ private_api.register(PrivateTagResource()) private_api.register(PrivateUserResource()) private_api.register(PrivateFavoriteResource()) +sqs = SearchQuerySet().filter(Q(public=True)) + urlpatterns = patterns('', url(r'^admin/', include(admin.site.urls)), @@ -36,7 +42,11 @@ urlpatterns = patterns('', url(r'^api/', include(public_api.urls)), url(r'^api/', include(private_api.urls)), - url(r'^search/', include('haystack.urls')), + url(r'^search/$', search_view_factory( + view_class=SearchView, + searchqueryset=sqs, + form_class=ModelSearchForm, + ), name='haystack_search'), url(r'^register/$', lambda x: HttpResponseRedirect('/signup/')), url(r'^signup/$',