summaryrefslogtreecommitdiff
path: root/postgresqleu/util/backendviews.py
diff options
context:
space:
mode:
authorMagnus Hagander2024-05-06 14:15:32 +0000
committerMagnus Hagander2024-05-06 14:15:32 +0000
commit64642edd1129243c7225e65ec493f8da9ead6208 (patch)
tree3eda3c944103dcd4592ed65a583a48565dec65e6 /postgresqleu/util/backendviews.py
parent774c893f419527b2902453b7d1d680fbaa855481 (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.py22
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])