Lagt til søkeside. Mye flikking på url-configen.
This commit is contained in:
@@ -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
|
||||
|
||||
class Placement(models.Model):
|
||||
category = models.ForeignKey(Category)
|
||||
category = models.ForeignKey(Category,related_name='placement')
|
||||
shelf = models.CharField(max_length=10)
|
||||
|
||||
def __unicode__(self):
|
||||
|
@@ -1,11 +1,8 @@
|
||||
from web.library.models import *
|
||||
from django.http import HttpResponse, HttpResponseRedirect, Http404
|
||||
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):
|
||||
book=get_object_or_404(Book,isbn=book_identifier)
|
||||
people = book.persons.all()
|
||||
@@ -21,7 +18,32 @@ def PersonView(request,person_identifier):
|
||||
return render_to_response('person/view.html', {'title' : 'Worblehat: person '+person.first_name+' '+person.last_name,'person' : person, 'books' : books})
|
||||
|
||||
def MapView(request,shelf_identifier):
|
||||
if shelf_identifier not in Placement.get_all_shelves():
|
||||
raise Http404()
|
||||
shelf_list = Placement.shelf_as_list_row_then_col(shelf_identifier)
|
||||
return render_to_response('map/view.html', {'shelf': shelf_list})
|
||||
if shelf_identifier not in Placement.get_all_shelves():
|
||||
raise Http404()
|
||||
shelf_list = Placement.shelf_as_list_row_then_col(shelf_identifier)
|
||||
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()
|
||||
|
Reference in New Issue
Block a user