diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2013-12-26 19:09:09 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2013-12-26 19:09:09 +0100 |
commit | 82bec7af1d41ea884fa4961fee017fbbc7f99470 (patch) | |
tree | d69858ce6408508fc2661a04e75d0a5b32d33f5a /archaeological_operations/views.py | |
parent | 4e5b0b837027a76ab54fdf78329b7feccfa49638 (diff) | |
download | Ishtar-82bec7af1d41ea884fa4961fee017fbbc7f99470.tar.bz2 Ishtar-82bec7af1d41ea884fa4961fee017fbbc7f99470.zip |
Manage archaeological sites into forms (refs #1586)
* create new widget: multiple autocomplete field
* move JS autocomplete to template
* archaeological site reference made unique
Diffstat (limited to 'archaeological_operations/views.py')
-rw-r--r-- | archaeological_operations/views.py | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py index d6e97b1d9..f48c55f57 100644 --- a/archaeological_operations/views.py +++ b/archaeological_operations/views.py @@ -26,7 +26,7 @@ from django.shortcuts import render_to_response from django.template.defaultfilters import slugify from django.utils.translation import ugettext_lazy as _ -from ishtar_common.views import get_item, show_item, revert_item +from ishtar_common.views import get_item, show_item, revert_item, new_item from ishtar_common.wizards import SearchWizard from wizards import * from forms import * @@ -54,6 +54,32 @@ def autocomplete_patriarche(request, non_closed=True): for operation in operations]) return HttpResponse(data, mimetype='text/plain') +def autocomplete_archaeologicalsite(request): + if (not request.user.has_perm( + 'archaeological_operations.view_archaeologicalsite', + models.ArchaeologicalSite) + and not request.user.has_perm( + 'archaeological_operations.view_own_archaeologicalsite', + models.ArchaeologicalSite)): + return HttpResponse(mimetype='text/plain') + if not request.GET.get('term'): + return HttpResponse(mimetype='text/plain') + q = request.GET.get('term') + query = Q() + for q in q.split(' '): + qt = Q(reference__icontains=q) | Q(name__icontains=q) + query = query & qt + limit = 15 + sites = models.ArchaeologicalSite.objects.filter(query + ).order_by('reference')[:limit] + data = json.dumps([{'id':site.pk, + 'value':unicode(site)[:60]} + for site in sites]) + return HttpResponse(data, mimetype='text/plain') + +new_archaeologicalsite = new_item(models.ArchaeologicalSite, + ArchaeologicalSiteForm) + def autocomplete_operation(request, non_closed=True): person_types = request.user.ishtaruser.person.person_type if (not request.user.has_perm('ishtar_common.view_operation', |