diff options
Diffstat (limited to 'ishtar/furnitures/views.py')
| -rw-r--r-- | ishtar/furnitures/views.py | 58 | 
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']:  | 
