summaryrefslogtreecommitdiff
path: root/archaeological_operations/views.py
diff options
context:
space:
mode:
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
commit82bec7af1d41ea884fa4961fee017fbbc7f99470 (patch)
treed69858ce6408508fc2661a04e75d0a5b32d33f5a /archaeological_operations/views.py
parent4e5b0b837027a76ab54fdf78329b7feccfa49638 (diff)
downloadIshtar-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.py28
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',