diff options
Diffstat (limited to 'ishtar/furnitures/views.py')
| -rw-r--r-- | ishtar/furnitures/views.py | 43 |
1 files changed, 39 insertions, 4 deletions
diff --git a/ishtar/furnitures/views.py b/ishtar/furnitures/views.py index 995eafea9..bee8a305e 100644 --- a/ishtar/furnitures/views.py +++ b/ishtar/furnitures/views.py @@ -31,7 +31,7 @@ from django.core import serializers from ishtar import settings from menus import menu -from forms import Step, FileForm1, FileForm2, FileWizard +from forms import Step, FileForm1, FileForm2, FileForm3, FileWizard import models def index(request): @@ -60,13 +60,46 @@ def autocomplete_person(request): return HttpResponseBadRequest() query = Q() for q in q.split(' '): - query = query | Q(name__istartswith=q) | Q(surname__istartswith=q) | \ - Q(email__icontains=q) + query = query & (Q(name__istartswith=q) | Q(surname__istartswith=q) | \ + Q(email__icontains=q)) + limit = 15 persons = models.Person.objects.filter(query)[:limit] data = json.dumps([{'id':person.pk, 'value':unicode(person)} for person in persons]) return HttpResponse(data, mimetype='text/plain') +def autocomplete_town(request): + if not request.GET.get('term'): + return HttpResponse(mimetype='text/plain') + q = request.GET.get('term') + query = Q() + for q in q.split(' '): + extra = Q(name__icontains=q) + if settings.COUNTRY == 'fr': + extra = extra | (Q(canton__name__istartswith=q) | \ + Q(canton__arrondissement__name__istartswith=q) | \ + Q(canton__arrondissement__department__label__istartswith=q)) + query = query & extra + limit = 15 + towns = models.Town.objects.filter(query)[:limit] + data = json.dumps([{'id':town.pk, 'value':unicode(town)} + for town in towns]) + return HttpResponse(data, mimetype='text/plain') + +def autocomplete_organization(request): + if not request.GET.get('term'): + return HttpResponse(mimetype='text/plain') + q = request.GET.get('term') + query = Q() + for q in q.split(' '): + extra = Q(name__icontains=q) + query = query & extra + limit = 15 + organizations = models.Organization.objects.filter(query)[:limit] + data = json.dumps([{'id':org.pk, 'value':unicode(org)} + for org in organizations]) + return HttpResponse(data, mimetype='text/plain') + def action(request, action_slug, obj_id=None, *args, **kwargs): """ Action management @@ -100,7 +133,9 @@ def action(request, action_slug, obj_id=None, *args, **kwargs): file_creation_wizard = FileWizard([ Step('general', _(u"General"), FileForm1), - Step('localisation', _(u"Localisation"), FileForm2)]) + Step('localisation', _(u"Localisation"), FileForm2), + Step('preventive', _(u"Preventive informations"), FileForm3)]) + def file_creation(request, dct, obj_id, *args, **kwargs): return file_creation_wizard(request, *args, **kwargs) |
