summaryrefslogtreecommitdiff
path: root/ishtar/furnitures/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar/furnitures/views.py')
-rw-r--r--ishtar/furnitures/views.py58
1 files changed, 25 insertions, 33 deletions
diff --git a/ishtar/furnitures/views.py b/ishtar/furnitures/views.py
index 5ea71cc86..f9157d9d6 100644
--- a/ishtar/furnitures/views.py
+++ b/ishtar/furnitures/views.py
@@ -21,14 +21,18 @@
Furnitures views
"""
+import json
from django.http import HttpResponse
from django.template import RequestContext
from django.shortcuts import render_to_response, redirect
from django.utils.translation import ugettext, ugettext_lazy as _
+from django.db.models import Q
+from django.core import serializers
from ishtar import settings
from menus import menu
from forms import Step, FileForm1, FileForm2, FileWizard
+import models
def index(request):
"""
@@ -43,38 +47,26 @@ def check_permission(request, action_slug, obj_id=None):
return menu.items[action_slug].is_available(request.user, obj_id)
return menu.items[action_slug].can_be_available(request.user)
-'''
-def base_action(request, action_slug, obj_id=None, *args, **kwargs):
- """
- Basic action management
- """
- if not check_permission(request, action_slug, obj_id):
- not_permitted_msg = ugettext(u"Operation not permitted.")
- return HttpResponse(not_permitted_msg)
- request.session['CURRENT_ACTION'] = action_slug
- associated_wizard = action_slug + '_wizard'
- dct = {}
- print base_action
- globals_dct = globals()
- if associated_wizard in globals_dct:
- wizard = globals_dct[associated_wizard]
- current_step = None
- if wizard.id in request.session \
- and 'current_step' in request.session[wizard.id] \
- and request.session[wizard.id]['current_step']:
- current_step = request.session[wizard.id]['current_step'].slug
- else:
- current_step = wizard.base_steps[0].slug
- return action(request, action_slug, obj_id=obj_id, *args, **kwargs)
- if obj_id:
- return redirect('action', action_slug, current_step, obj_id)
- return redirect('action', action_slug, current_step)
-
- if action_slug in globals_dct:
- return globals_dct[action](request, dct, obj_id, *args, **kwargs)
- return render_to_response('index.html', dct,
- context_instance=RequestContext(request))
-'''
+def autocomplete_person(request):
+ if not request.user.has_perm('furnitures.view_person'):
+ return HttpResponse(mimetype='text/plain')
+ if not request.GET.get('term'):
+ return HttpResponse(mimetype='text/plain')
+ q = request.GET.get('term')
+ limit = request.GET.get('limit', 15)
+ try:
+ limit = int(limit)
+ except ValueError:
+ return HttpResponseBadRequest()
+ query = Q()
+ for q in q.split(' '):
+ query = query | Q(name__istartswith=q) | Q(surname__istartswith=q) | \
+ Q(email__icontains=q)
+ persons = models.Person.objects.filter(query)[:limit]
+ data = json.dumps([{'id':person.pk,
+ 'value':"%s %s - %s" % (person.name, person.surname, person.email)}
+ for person in persons])
+ return HttpResponse(data, mimetype='text/plain')
def action(request, action_slug, obj_id=None, *args, **kwargs):
"""
@@ -97,7 +89,7 @@ def action(request, action_slug, obj_id=None, *args, **kwargs):
current_step = request.session[wizard.id]['current_step'].slug
else:
current_step = wizard.base_steps[0].slug
- return redirect('action_form', action_slug, current_step)
+ return redirect('action-form', action_slug, current_step)
elif wizard.id in request.session:
for step in wizard.base_steps:
if step.slug == kwargs['slug']: