data = []
if len(data) < limit:
authors = catalogue.models.Tag.objects.filter(
- category='author', name_pl__iregex='\m' + prefix).only('name', 'id', 'slug', 'category')
+ category='author', name_pl__iregex=r'\m' + prefix).only('name', 'id', 'slug', 'category')
data.extend([
{
'type': 'author',
'url': author.get_absolute_url(),
'img': get_thumbnail(author.photo, '72x72', crop='top').url if author.photo else '',
'slug': author.slug,
+ 'id': author.id,
}
for author in authors[:limit - len(data)]
])
if user is not None and user.is_authenticated and len(data) < limit:
tags = social.models.UserList.objects.filter(
- user=user, name__iregex='\m' + prefix).only('name', 'id', 'slug')
+ user=user, name__iregex=r'\m' + prefix).only('name', 'id', 'slug')
data.extend([
{
'type': 'userlist',
])
if len(data) < limit:
tags = catalogue.models.Tag.objects.filter(
- category__in=('theme', 'genre', 'epoch', 'kind'), name_pl__iregex='\m' + prefix).only('name', 'id', 'slug', 'category')
+ category__in=('theme', 'genre', 'epoch', 'kind'), name_pl__iregex=r'\m' + prefix).only('name', 'id', 'slug', 'category')
data.extend([
{
'type': tag.category,
'label': tag.name,
'url': tag.get_absolute_url(),
'slug': tag.slug,
+ 'id': tag.id,
}
for tag in tags[:limit - len(data)]
])
if len(data) < limit:
collections = catalogue.models.Collection.objects.filter(
- title_pl__iregex='\m' + prefix).only('title', 'slug')
+ title_pl__iregex=r'\m' + prefix).only('title', 'slug')
data.extend([
{
'type': 'collection',
for collection in collections[:limit - len(data)]
])
if len(data) < limit:
- for b in catalogue.models.Book.objects.filter(findable=True, title__iregex='\m' + prefix)[:limit-len(data)]:
+ for b in catalogue.models.Book.objects.filter(findable=True, title__iregex=r'\m' + prefix)[:limit-len(data)]:
author_str = b.author_unicode()
translator = b.translator()
if translator:
'author': author_str,
'url': b.get_absolute_url(),
'img': get_thumbnail(b.cover_clean, '72x72').url if b.cover_clean else '',
- 'slug': book.slug,
+ 'slug': b.slug,
}
)
if len(data) < limit:
infos = infopages.models.InfoPage.objects.filter(
published=True,
findable=True,
- title_pl__iregex='\m' + prefix).only('title', 'id', 'slug')
+ title_pl__iregex=r'\m' + prefix).only('title', 'id', 'slug')
data.extend([
{
'type': 'info',