diff options
Diffstat (limited to 'ishtar_common')
| -rw-r--r-- | ishtar_common/migrations/0208_unaccent.py | 17 | ||||
| -rw-r--r-- | ishtar_common/models.py | 8 | ||||
| -rw-r--r-- | ishtar_common/views.py | 16 | 
3 files changed, 34 insertions, 7 deletions
diff --git a/ishtar_common/migrations/0208_unaccent.py b/ishtar_common/migrations/0208_unaccent.py new file mode 100644 index 000000000..57aa9ea9e --- /dev/null +++ b/ishtar_common/migrations/0208_unaccent.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.27 on 2020-12-29 11:50 +from __future__ import unicode_literals + +from django.db import migrations + +from django.contrib.postgres.operations import UnaccentExtension + +class Migration(migrations.Migration): + +    dependencies = [ +        ('ishtar_common', '0207_auto_20201207_2337'), +    ] + +    operations = [ +        UnaccentExtension() +    ] diff --git a/ishtar_common/models.py b/ishtar_common/models.py index c178b187f..807bbc64f 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -1862,6 +1862,14 @@ def get_publisher_label():      return _("Error: publisher type is missing") +def get_operator_label(): +    if apps.ready: +        lbl = get_general_type_label(OrganizationType, "operator") +        if lbl: +            return lbl +    return _("Error: operator type is missing") + +  class TitleType(GenderedType):      long_title = models.TextField(_("Long title"), default="", blank=True) diff --git a/ishtar_common/views.py b/ishtar_common/views.py index e445cb44d..d5b38ebed 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -613,9 +613,9 @@ def autocomplete_ishtaruser(request):          return HttpResponseBadRequest()      query = Q()      for q in q.split(' '): -        qu = (Q(person__name__icontains=q) | -              Q(person__surname__icontains=q) | -              Q(person__raw_name__icontains=q)) +        qu = (Q(person__name__unaccent__icontains=q) | +              Q(person__surname__unaccent__icontains=q) | +              Q(person__raw_name__unaccent__icontains=q))          query = query & qu      users = models.IshtarUser.objects.filter(query).distinct()[:limit]      data = json.dumps([ @@ -643,10 +643,12 @@ def autocomplete_person(request, person_types=None, attached_to=None,          return HttpResponseBadRequest()      query = Q()      for q in q.split(' '): -        qu = (Q(name__icontains=q) | Q(surname__icontains=q) | -              Q(email__icontains=q) | Q(attached_to__name__icontains=q)) +        qu = (Q(name__unaccent__icontains=q) | +              Q(surname__unaccent__icontains=q) | +              Q(email__unaccent__icontains=q) | +              Q(attached_to__name__unaccent__icontains=q))          if permissive: -            qu = qu | Q(raw_name__icontains=q) +            qu = qu | Q(raw_name__unaccent__icontains=q)          query = query & qu      if attached_to:          query = query & Q(attached_to__pk__in=attached_to.split('_')) @@ -780,7 +782,7 @@ def autocomplete_organization(request, orga_type=None):      q = request.GET.get('term')      query = Q()      for q in q.split(' '): -        extra = Q(cached_label__icontains=q) +        extra = Q(cached_label__unaccent__icontains=q)          query = query & extra      if orga_type:          try:  | 
