From 7ca28262569fec37197a8a5e5c3dd1dd98b17e12 Mon Sep 17 00:00:00 2001
From: Lucas Brandstaetter <lucas@brandstaetter.tech>
Date: Mon, 28 Oct 2024 20:43:49 +0100
Subject: [PATCH] Fix assembly team member state transition

When a team member of an assembly is editing the assembly, the state
transition from 'planned' to 'registered' should be allowed, even if
the user is a staff member.
---
 src/backoffice/views/assemblies.py | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/backoffice/views/assemblies.py b/src/backoffice/views/assemblies.py
index 04f3360b4..d5c894fbc 100644
--- a/src/backoffice/views/assemblies.py
+++ b/src/backoffice/views/assemblies.py
@@ -260,10 +260,10 @@ class EditAssemblyView(AssemblyMixin, UpdateView):
             changes[fld] = change
 
         # auto-advance assembly/channel states from 'planned' to 'registered' on (first) save
-        if assembly.state_assembly == Assembly.State.PLANNED and not self.staff_mode:
+        if assembly.state_assembly == Assembly.State.PLANNED and (assembly.user_can_manage(self.request.user) or not self.staff_mode):
             assembly.state_assembly = Assembly.State.REGISTERED
             changes['state_assembly'] = (Assembly.State.PLANNED, Assembly.State.REGISTERED)
-        if assembly.state_channel == Assembly.State.PLANNED and not self.staff_mode:
+        if assembly.state_channel == Assembly.State.PLANNED and (assembly.user_can_manage(self.request.user) or not self.staff_mode):
             assembly.state_channel = Assembly.State.REGISTERED
             changes['state_channel'] = (Assembly.State.PLANNED, Assembly.State.REGISTERED)
 
@@ -317,7 +317,7 @@ class EditAssemblyView(AssemblyMixin, UpdateView):
                 del changes['parent_id']
 
         # log latest update timestamp
-        if self.staff_access:
+        if self.staff_mode and not assembly.user_can_manage(self.request.user):
             assembly.last_update_staff = timezone.now()
             changes['last_update_staff'] = str(assembly.last_update_staff)
         else:
-- 
GitLab