Commit f18f7d09 authored by Shelepnev Dmitry's avatar Shelepnev Dmitry
Browse files

Add <e> searchtype for authors (equal)

parent b9a0e592
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -532,6 +532,8 @@ class SearchAuthorsFeed(AuthFeed):
            authors = Author.objects.extra(where=["upper(last_name) like %s"], params=["%%%s%%"%searchterms.upper()])
        elif searchtype == 'b':
            authors = Author.objects.extra(where=["upper(last_name) like %s"], params=["%s%%"%searchterms.upper()])  
        elif searchtype == 'e':
            authors = Author.objects.extra(where=["upper(last_name)=%s"], params=["%s"%searchterms.upper()])                       
        return {"authors":authors, "searchterms":searchterms, "searchtype":searchtype, "page":page}

    def link(self, obj):
@@ -732,13 +734,13 @@ class BooksFeed(AuthFeed):
    def items(self, obj):
        length, chars = obj
        if self.lang_code:
            sql="""select upper(substring(title,1,%(length)s)) as id, count(*) as cnt 
            sql="""select %(length)s as l, upper(substring(title,1,%(length)s)) as id, count(*) as cnt 
                   from opds_catalog_book 
                   where lang_code=%(lang_code)s and upper(title) like '%(chars)s%%'
                   group by upper(substring(title,1,%(length)s)) 
                   order by id"""%{'length':length, 'lang_code':self.lang_code, 'chars':chars}
        else:
            sql="""select upper(substring(title,1,%(length)s)) as id, count(*) as cnt 
            sql="""select %(length)s as l, upper(substring(title,1,%(length)s)) as id, count(*) as cnt 
                   from opds_catalog_book 
                   where upper(title) like '%(chars)s%%'
                   group by upper(substring(title,1,%(length)s)) 
@@ -757,7 +759,8 @@ class BooksFeed(AuthFeed):
        if item.cnt>=settings.SPLITITEMS:
            return reverse("opds_catalog:chars_books", kwargs={"lang_code":self.lang_code,"chars":item.id})
        else:
            return reverse("opds_catalog:searchbooks", kwargs={"searchtype":'b', "searchterms":item.id})
            return reverse("opds_catalog:searchbooks", \
                           kwargs={"searchtype":'b' if len(item.id)==item.l else 'e', "searchterms":item.id})
        
    def item_enclosures(self, item):
        return (opdsEnclosure(self.item_link(item),"application/atom+xml;profile=opds-catalog;kind=navigation", "subsection"),)
+2 −2
Original line number Diff line number Diff line
@@ -34,8 +34,8 @@ urlpatterns = [
    url(r'^search/books/(?P<searchtype>as)/(?P<searchterms>.+)/',feeds.SelectSeriesFeed(), name='searchbooks'), 
    url(r'^search/books/u/0/',feeds.SearchBooksFeed(), name='bookshelf'),
                 
    url(r'^search/authors/(?P<searchtype>[bm])/(?P<searchterms>.+)/(?P<page>\d+)/',feeds.SearchAuthorsFeed(), name='searchauthors'),
    url(r'^search/authors/(?P<searchtype>[bm])/(?P<searchterms>.+)/',feeds.SearchAuthorsFeed(), name='searchauthors'),       
    url(r'^search/authors/(?P<searchtype>[bme])/(?P<searchterms>.+)/(?P<page>\d+)/',feeds.SearchAuthorsFeed(), name='searchauthors'),
    url(r'^search/authors/(?P<searchtype>[bme])/(?P<searchterms>.+)/',feeds.SearchAuthorsFeed(), name='searchauthors'),       
       
    url(r'^search/series/(?P<searchtype>[bma])/(?P<searchterms>.+)/(?P<page>\d+)/',feeds.SearchSeriesFeed(), name='searchseries'),
    url(r'^search/series/(?P<searchtype>[bma])/(?P<searchterms>.+)/',feeds.SearchSeriesFeed(), name='searchseries'),