diff options
Diffstat (limited to 'ishtar/furnitures/views.py')
| -rw-r--r-- | ishtar/furnitures/views.py | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/ishtar/furnitures/views.py b/ishtar/furnitures/views.py index c4dd517fb..4e0001287 100644 --- a/ishtar/furnitures/views.py +++ b/ishtar/furnitures/views.py @@ -30,6 +30,7 @@ from django.template import RequestContext from django.shortcuts import render_to_response, redirect from django.utils.translation import ugettext, ugettext_lazy as _ from django.core.exceptions import ObjectDoesNotExist +from django.core.urlresolvers import reverse from django.db.models import Q from django.core import serializers @@ -182,10 +183,14 @@ def get_item(model, func_name, default_name, extra_request_keys=[]): else: data.append(val and unicode(val) or u"") datas.append(data) + link_template = "<a href='#' onclick='load_window(\"%%s\")'>%s</a>" % \ + (unicode(_("Details"))) if data_type == "json": rows = [] for data in datas: - res = {'id':data[0]} + res = {'id':data[0], + 'link':link_template % reverse('show-'+default_name, + args=[data[0]])} for idx, value in enumerate(data[1:]): if value: res[model.TABLE_COLS[idx].split('.')[-1]] = value @@ -218,7 +223,19 @@ def get_item(model, func_name, default_name, extra_request_keys=[]): return func +def show_item(model, name): + def func(request, pk, **dct): + try: + item = model.objects.get(pk=pk) + except ObjectDoesNotExist: + return HttpResponse(None) + dct['item'] = item + return render_to_response('sheet_%s.html' % name, dct, + context_instance=RequestContext(request)) + return func + get_file = get_item(models.File, 'get_file', 'file') +show_file = show_item(models.File, 'file') def autocomplete_operation(request, non_closed=True): if not request.user.has_perm('furnitures.view_operation', models.Operation)\ |
