diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-09-12 21:19:19 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-09-12 21:19:58 +0200 |
commit | 7eaddb898570caaf19e94e3b2c889572eaf7a59c (patch) | |
tree | 9501168bcf42a290b63a6008faa75651e9fd61eb /ishtar_common/views_item.py | |
parent | 70f0fa29fac15c03f1c7af0f185b70be480b2d45 (diff) | |
download | Ishtar-7eaddb898570caaf19e94e3b2c889572eaf7a59c.tar.bz2 Ishtar-7eaddb898570caaf19e94e3b2c889572eaf7a59c.zip |
New management of popup for new items - manage author and persons
Diffstat (limited to 'ishtar_common/views_item.py')
-rw-r--r-- | ishtar_common/views_item.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/ishtar_common/views_item.py b/ishtar_common/views_item.py index c40b2c75f..b0ec0bdce 100644 --- a/ishtar_common/views_item.py +++ b/ishtar_common/views_item.py @@ -166,6 +166,35 @@ def new_item(model, frm, many=False): return func +def new_qa_item(model, frm, many=False): + def func(request, parent_name, limits=''): + template = "ishtar/forms/qa_new_item.html" + model_name = model._meta.object_name + if not check_permission(request, 'add_' + model_name.lower()): + not_permitted_msg = ugettext(u"Operation not permitted.") + return HttpResponse(not_permitted_msg) + dct = {'page_name': str(_(u'New %s' % model_name.lower())), + 'url': reverse("new-" + model.SLUG, args=[parent_name]), + 'slug': model.SLUG, + 'parent_name': parent_name, + 'many': many} + if request.method == 'POST': + dct['form'] = frm(request.POST, limits=limits) + if dct['form'].is_valid(): + new_item = dct['form'].save(request.user) + dct['new_item_label'] = str(new_item) + dct['new_item_pk'] = new_item.pk + dct['parent_pk'] = parent_name + if dct['parent_pk'] and '_select_' in dct['parent_pk']: + parents = dct['parent_pk'].split('_') + dct['parent_pk'] = "_".join([parents[0]] + parents[2:]) + return render(request, template, dct) + else: + dct['form'] = frm(limits=limits) + return render(request, template, dct) + return func + + def display_item(model, extra_dct=None, show_url=None): def func(request, pk, **dct): if show_url: |