@@ -146,6 +146,7 @@ def _generate_demo_data(self, fake):
146146 have_head_member = False
147147 new_group_name = False
148148 for _ in range (num_members ):
149+ head_membership = self .head_member_getter (group )
149150 is_head_member = random .choice ([True , False ]) if not have_head_member else False
150151
151152 # Check if last member and no head member assigned yet
@@ -154,15 +155,20 @@ def _generate_demo_data(self, fake):
154155
155156 individual = self .generate_individuals (fake )
156157 membership_vals = self .get_group_membership_vals (fake , group , individual )
157- if is_head_member :
158- # Check if the group doesn't have a head member before proceeding
159- if not group . group_membership_ids . filtered ( lambda x : x . kind in [ self . env . ref ( "g2p_registry_membership.group_membership_kind_head" ). id ]):
160- have_head_member = True
161- new_group_name = individual . family_name
162- group . name = new_group_name
163- membership_vals [ "kind" ] = [( 4 , self . env . ref ( "g2p_registry_membership.group_membership_kind_head" ). id )]
158+ if is_head_member and not head_membership :
159+ have_head_member = True
160+ new_group_name = individual . family_name
161+ group . name = new_group_name
162+ membership_vals [ "kind" ] = [( 4 , self . env . ref ( "g2p_registry_membership.group_membership_kind_head" ). id )]
163+
164+ have_head_member = True if head_membership else False
164165
165166 self .env ["g2p.group.membership" ].create (membership_vals )
167+
168+ def head_member_getter (self , group ):
169+ memberships = self .env ["g2p.group.membership" ].search ([("group" , "=" , group .id )])
170+ head_membership = memberships .filtered (lambda x : x .kind in [self .env .ref ("g2p_registry_membership.group_membership_kind_head" ).id ])
171+ return head_membership
166172
167173 def _async_generate_demo_data (self ):
168174 jobs = []
0 commit comments