diff options
| author | Magnus Hagander | 2019-08-07 13:08:25 +0000 |
|---|---|---|
| committer | Magnus Hagander | 2019-08-07 13:08:25 +0000 |
| commit | af69b756ac9806620df835b979739bdfa447344c (patch) | |
| tree | 3cb51370d20a4fa09aa827b988b836250ac6b7ed | |
| parent | e0b0e3fc368569d57371634192724d3a0e4b4ce1 (diff) | |
Allow bulk assignment of rooms and cross schedule for sessions
| -rw-r--r-- | postgresqleu/confreg/backendforms.py | 10 | ||||
| -rw-r--r-- | postgresqleu/util/backendviews.py | 14 |
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: |
