From 91926cffd727394adca1ecce771b2e2b8d9a082e Mon Sep 17 00:00:00 2001 From: Richard Schreiber Date: Tue, 23 Jun 2026 07:42:17 +0200 Subject: [PATCH] Seating: fix handling optional position attribute --- src/pretix/base/models/seating.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/pretix/base/models/seating.py b/src/pretix/base/models/seating.py index 49b7c4b5f8..133e6c85af 100644 --- a/src/pretix/base/models/seating.py +++ b/src/pretix/base/models/seating.py @@ -118,7 +118,10 @@ class SeatingPlan(LoggedModel): for zi, z in enumerate(self.layout_data['zones']): zpos = (z['position']['x'], z['position']['y']) for ri, r in enumerate(z['rows']): - rpos = (zpos[0] + r['position']['x'], zpos[1] + r['position']['y']) + rpos = ( + zpos[0] + r.get('position', {}).get('x', 0), + zpos[1] + r.get('position', {}).get('y', 0), + ) row_label = None if r.get('row_label'): row_label = r['row_label'].replace("%s", r.get('row_number', str(ri))) @@ -147,8 +150,8 @@ class SeatingPlan(LoggedModel): zone=z['name'], category=s['category'], sorting_rank=rank, - x=rpos[0] + s['position']['x'], - y=rpos[1] + s['position']['y'], + x=rpos[0] + s.get('position', {}).get('x', 0), + y=rpos[1] + s.get('position', {}).get('y', 0), )