summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMagnus Hagander2019-08-07 13:08:25 +0000
committerMagnus Hagander2019-08-07 13:08:25 +0000
commitaf69b756ac9806620df835b979739bdfa447344c (patch)
tree3cb51370d20a4fa09aa827b988b836250ac6b7ed
parente0b0e3fc368569d57371634192724d3a0e4b4ce1 (diff)
Allow bulk assignment of rooms and cross schedule for sessions
-rw-r--r--postgresqleu/confreg/backendforms.py10
-rw-r--r--postgresqleu/util/backendviews.py14
2 files changed, 21 insertions, 3 deletions
diff --git a/postgresqleu/confreg/backendforms.py b/postgresqleu/confreg/backendforms.py
index ade63560..6aae5c35 100644
--- a/postgresqleu/confreg/backendforms.py
+++ b/postgresqleu/confreg/backendforms.py
@@ -488,6 +488,16 @@ class BackendConferenceSessionForm(BackendForm):
'title': 'Track',
'options': [(t.id, t.trackname) for t in Track.objects.filter(conference=conference)],
},
+ {
+ 'name': 'room',
+ 'title': 'Room',
+ 'options': [(r.id, r.roomname) for r in Room.objects.filter(conference=conference)],
+ },
+ {
+ 'name': 'cross_schedule',
+ 'title': 'Cross schedule',
+ 'options': [(1, 'Yes'), (0, 'No'), ]
+ },
]
def clean(self):
diff --git a/postgresqleu/util/backendviews.py b/postgresqleu/util/backendviews.py
index 1d95723e..3158db91 100644
--- a/postgresqleu/util/backendviews.py
+++ b/postgresqleu/util/backendviews.py
@@ -233,10 +233,18 @@ def backend_list_editor(request, urlname, formclass, resturl, allow_new=True, al
raise PermissionDenied()
with transaction.atomic():
for obj in objects.filter(id__in=request.POST.get('idlist').split(',')):
- if setval:
- setattr(obj, what, related.objects.get(pk=setval))
+ if isinstance(getattr(obj, what), bool):
+ # Special-case booleans, they can only be set to true or false, and clearfing
+ # means the same as set to false.
+ if setval:
+ setattr(obj, what, True)
+ else:
+ setattr(obj, what, False)
else:
- setattr(obj, what, None)
+ if setval:
+ setattr(obj, what, related.objects.get(pk=setval))
+ else:
+ setattr(obj, what, None)
obj.save()
return HttpResponseRedirect('.')
else: