Lagt til søkeside. Mye flikking på url-configen.
This commit is contained in:
parent
e185f784c6
commit
56dd7b67c8
|
@ -208,7 +208,7 @@ class BookPerson(models.Model):
|
||||||
return self.person.first_name +u' '+ self.person.last_name+ u' '+ self.relation.name+ u' of '+self.book.title
|
return self.person.first_name +u' '+ self.person.last_name+ u' '+ self.relation.name+ u' of '+self.book.title
|
||||||
|
|
||||||
class Placement(models.Model):
|
class Placement(models.Model):
|
||||||
category = models.ForeignKey(Category)
|
category = models.ForeignKey(Category,related_name='placement')
|
||||||
shelf = models.CharField(max_length=10)
|
shelf = models.CharField(max_length=10)
|
||||||
|
|
||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
|
|
|
@ -1,11 +1,8 @@
|
||||||
from web.library.models import *
|
from web.library.models import *
|
||||||
from django.http import HttpResponse, HttpResponseRedirect, Http404
|
from django.http import HttpResponse, HttpResponseRedirect, Http404
|
||||||
from django.shortcuts import render_to_response, get_object_or_404
|
from django.shortcuts import render_to_response, get_object_or_404
|
||||||
|
from django.db.models import Q
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Create your views here.
|
|
||||||
def BookView(request,book_identifier):
|
def BookView(request,book_identifier):
|
||||||
book=get_object_or_404(Book,isbn=book_identifier)
|
book=get_object_or_404(Book,isbn=book_identifier)
|
||||||
people = book.persons.all()
|
people = book.persons.all()
|
||||||
|
@ -25,3 +22,28 @@ def MapView(request,shelf_identifier):
|
||||||
raise Http404()
|
raise Http404()
|
||||||
shelf_list = Placement.shelf_as_list_row_then_col(shelf_identifier)
|
shelf_list = Placement.shelf_as_list_row_then_col(shelf_identifier)
|
||||||
return render_to_response('map/view.html', {'shelf': shelf_list})
|
return render_to_response('map/view.html', {'shelf': shelf_list})
|
||||||
|
|
||||||
|
def IndexView(request):
|
||||||
|
return render_to_response('index.html')
|
||||||
|
|
||||||
|
def SearchView(request):
|
||||||
|
search_string=request.GET['searchterm']
|
||||||
|
results=search(search_string)
|
||||||
|
return render_to_response('search/search.html',{'search_string' : search_string, 'books' : results[0], 'people' : results[1], 'categories' : results[2]})
|
||||||
|
|
||||||
|
def search(string):
|
||||||
|
book_q=Book.objects.select_related('id','alt_titles')
|
||||||
|
person_q=Person.objects
|
||||||
|
category_q=Category.objects
|
||||||
|
for word in string.split(" "):
|
||||||
|
book_q=book_q.filter(Q(title__icontains=word) | Q(subtitle__icontains=word) |
|
||||||
|
Q(alt_titles__alt_title__icontains=word) | Q(id__id__icontains=word))
|
||||||
|
person_q=person_q.filter(Q(first_name__icontains=word) | Q(last_name__icontains=word) | Q(id__icontains=word))
|
||||||
|
category_q=category_q.filter(Q(id__icontains=word)|Q(name__icontains=word))
|
||||||
|
return [book_q.all(),person_q.all(),category_q.all()]
|
||||||
|
|
||||||
|
def remove_duplicates(list):
|
||||||
|
d={}
|
||||||
|
for i in list:
|
||||||
|
d[i]=None
|
||||||
|
return d.keys()
|
||||||
|
|
|
@ -69,7 +69,7 @@ TEMPLATE_DIRS = (
|
||||||
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
|
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
|
||||||
# Always use forward slashes, even on Windows.
|
# Always use forward slashes, even on Windows.
|
||||||
# Don't forget to use absolute paths, not relative paths.
|
# Don't forget to use absolute paths, not relative paths.
|
||||||
'/web/templates/'
|
'web/templates/'
|
||||||
)
|
)
|
||||||
|
|
||||||
INSTALLED_APPS = (
|
INSTALLED_APPS = (
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
{% extends "base/main.html" %}
|
||||||
|
|
||||||
|
{% block title %}
|
||||||
|
Worblehat 0.1. Heisann!!
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
Velkommen til PVVs bokdatabase, Worblehat.<br>
|
||||||
|
Her kan du søke etter bøker til din hjertens lyst.<br>
|
||||||
|
<form action="/let/" method="get">
|
||||||
|
<input type="text" name="searchterm"> <input type="submit" value="Søk!"><br>
|
||||||
|
</form>
|
||||||
|
{% endblock %}
|
|
@ -7,6 +7,6 @@ Worblehat 0.1: {{ person.first_name }} {{ person.last_name }}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<span class="key">Name:</span> {{person.first_name}} {{person.last_name}}<br>
|
<span class="key">Name:</span> {{person.first_name}} {{person.last_name}}<br>
|
||||||
{% for book in books %}
|
{% for book in books %}
|
||||||
<span class="key">{{ book.relation.name }} of:</span> <a href=/book/{{ book.book.isbn }}>{{ book.book.title }}</a> <br>
|
<span class="key">{{ book.relation.name }} of:</span> <a href=/bok/{{ book.book.isbn }}>{{ book.book.title }}</a> <br>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
{% extends "base/main.html" %}
|
||||||
|
|
||||||
|
{% block title %}
|
||||||
|
Worblehat 0.1: Søk!
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
Du søkte på {{ search_string }}.<br>
|
||||||
|
{% if people %}
|
||||||
|
Personer:<br>
|
||||||
|
{% for person in people %}
|
||||||
|
<a href="/person/{{ person.id }}/">{{ person.first_name }} {{ person.last_name }}</a><br>
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% if books %}
|
||||||
|
Bøker:<br>
|
||||||
|
{% for book in books %}
|
||||||
|
<a href="/bok/{{ book.isbn }}/">{{ book.title }}</a><br>
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
{% endblock %}
|
|
@ -18,4 +18,6 @@ urlpatterns = patterns('',
|
||||||
(r'^kart/(?P<shelf_identifier>\S+)/$', 'web.library.views.MapView'),
|
(r'^kart/(?P<shelf_identifier>\S+)/$', 'web.library.views.MapView'),
|
||||||
# Uncomment the next line to enable the admin:
|
# Uncomment the next line to enable the admin:
|
||||||
(r'^admin/', include(admin.site.urls)),
|
(r'^admin/', include(admin.site.urls)),
|
||||||
|
(r'^let/','web.library.views.SearchView'),
|
||||||
|
(r'^$','web.library.views.IndexView'),
|
||||||
)
|
)
|
||||||
|
|
Reference in New Issue