Added the search page in the accounting application.
This commit is contained in:
@ -22,7 +22,7 @@ import random
|
||||
import urllib.parse
|
||||
|
||||
from django.conf import settings
|
||||
from django.db.models import Model
|
||||
from django.db.models import Model, Q
|
||||
from django.utils.translation import pgettext, get_language
|
||||
|
||||
|
||||
@ -104,6 +104,27 @@ def get_multi_lingual_attr(model, name, default=None):
|
||||
return getattr(model, name + Language.default().db)
|
||||
|
||||
|
||||
def get_multi_lingual_search(attr, query):
|
||||
"""Returns the query condition on a multi-lingual attribute.
|
||||
|
||||
Args:
|
||||
attr (str): The base name of the multi-lingual attribute.
|
||||
query (str): The query.
|
||||
|
||||
Returns:
|
||||
Q: The query condition
|
||||
"""
|
||||
language = Language.current()
|
||||
if language.is_default:
|
||||
return Q(**{attr + language.db + "__icontains": query})
|
||||
default = Language.default()
|
||||
q = (Q(**{attr + language.db + "__isnull": False})
|
||||
& Q(**{attr + language.db + "__icontains": query}))\
|
||||
| (Q(**{attr + language.db + "__isnull": True})
|
||||
& Q(**{attr + default.db + "__icontains": query}))
|
||||
return q
|
||||
|
||||
|
||||
class UrlBuilder:
|
||||
"""The URL builder.
|
||||
|
||||
|
Reference in New Issue
Block a user