@@ -944,16 +944,13 @@ def order_authors(self, entries, list_return=False, combined=False):
944944 def get_typeahead (self , database , query , replace = ('' , '' ), tag_filter = true ()):
945945 query = query or ''
946946 self .create_functions ()
947- # self.session.connection().connection.connection.create_function("lower", 1, lcase)
948947 entries = self .session .query (database ).filter (tag_filter ). \
949948 filter (func .lower (database .name ).ilike ("%" + query + "%" )).all ()
950- # json_dumps = json.dumps([dict(name=escape(r.name.replace(*replace))) for r in entries])
951949 json_dumps = json .dumps ([dict (name = r .name .replace (* replace )) for r in entries ])
952950 return json_dumps
953951
954952 def check_exists_book (self , authr , title ):
955953 self .create_functions ()
956- # self.session.connection().connection.connection.create_function("lower", 1, lcase)
957954 q = list ()
958955 author_terms = re .split (r'\s*&\s*' , authr )
959956 for author_term in author_terms :
@@ -1111,7 +1108,7 @@ def speaking_language(self, languages=None, return_all_languages=False, with_cou
11111108 .group_by (text ('books_languages_link.lang_code' )).all ()
11121109 tags = list ()
11131110 for lang in languages :
1114- tag = Category (isoLanguages .get_language_name (get_locale (), lang [0 ].lang_code ), lang [0 ].lang_code )
1111+ tag = Category (isoLanguages .get_language_name (get_locale (), None , lang [0 ].lang_code ), lang [0 ].lang_code )
11151112 tags .append ([tag , lang [1 ]])
11161113 # Append all books without language to list
11171114 if not return_all_languages :
@@ -1121,7 +1118,7 @@ def speaking_language(self, languages=None, return_all_languages=False, with_cou
11211118 .filter (self .common_filters ())
11221119 .count ())
11231120 if no_lang_count :
1124- tags .append ([Category (_ ("None" ), "none" ), no_lang_count ])
1121+ tags .append ([Category (_ ("None" ), None , "none" ), no_lang_count ])
11251122 return sorted (tags , key = lambda x : x [0 ].name .lower (), reverse = reverse_order )
11261123 else :
11271124 if not languages :
@@ -1175,14 +1172,25 @@ def lcase(s):
11751172 return s .lower ()
11761173
11771174
1175+ def title_sort (title , config ):
1176+ # calibre sort stuff
1177+ title_pat = re .compile (config .config_title_regex , re .IGNORECASE )
1178+ match = title_pat .search (title )
1179+ if match :
1180+ prep = match .group (1 )
1181+ title = title [len (prep ):] + ', ' + prep
1182+ return strip_whitespaces (title )
1183+
11781184class Category :
11791185 name = None
1186+ sort = None
11801187 id = None
11811188 count = None
11821189 rating = None
11831190
11841191 def __init__ (self , name , cat_id , rating = None ):
11851192 self .name = name
1193+ self .sort = name
11861194 self .id = cat_id
11871195 self .rating = rating
11881196 self .count = 1
0 commit comments