diff options
author | Magnus Hagander | 2024-05-06 14:15:32 +0000 |
---|---|---|
committer | Magnus Hagander | 2024-05-06 14:15:32 +0000 |
commit | 64642edd1129243c7225e65ec493f8da9ead6208 (patch) | |
tree | 3eda3c944103dcd4592ed65a583a48565dec65e6 /postgresqleu/util/backendviews.py | |
parent | 774c893f419527b2902453b7d1d680fbaa855481 (diff) |
Add ability to copy linked objects in backend forms
And use this to make it possible to copy individual sponsorship benefits
inside a conference.
Diffstat (limited to 'postgresqleu/util/backendviews.py')
-rw-r--r-- | postgresqleu/util/backendviews.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/postgresqleu/util/backendviews.py b/postgresqleu/util/backendviews.py index 72836633..371e8c29 100644 --- a/postgresqleu/util/backendviews.py +++ b/postgresqleu/util/backendviews.py @@ -373,6 +373,28 @@ def backend_list_editor(request, urlname, formclass, resturl, allow_new=True, al if restpieces[2] == 'new': subid = None subobj = None + elif restpieces[2] == 'copy': + if request.method == 'POST': + form = handler.get_copy_form()(conference, request.POST) + if form.is_valid(): + id = handler.copy_instance(masterobj, form) + return HttpResponseRedirect("../{}/".format(id)) + else: + form = handler.get_copy_form()(conference) + return render(request, 'confreg/admin_backend_form.html', { + 'conference': conference, + 'basetemplate': basetemplate, + 'topadmin': topadmin, + 'form': form, + 'whatverb': 'Copy', + 'what': formclass._verbose_name(), + 'savebutton': 'Copy', + 'cancelurl': '../../', + 'breadcrumbs': breadcrumbs + [ + ('../../../', formclass._verbose_name_plural().capitalize()), + ('../../', masterobj), + ], + }) else: try: subid = int(restpieces[2]) |