@@ -219,68 +219,92 @@ class Event(models.Model):
219
219
team = models .ForeignKey ('Team' )
220
220
221
221
222
- def set_union_by_district (sender , instance , ** kwargs ):
222
+ def group_post_save (sender , instance , ** kwargs ):
223
223
# If district is set, set according union
224
224
if instance .district :
225
225
instance .union = instance .district .union
226
226
227
227
228
- def player_to_club_member (sender , instance , created , ** kwargs ):
228
+ def team_player_post_save (sender , instance , created , ** kwargs ):
229
+ # Add player to club if not member already
229
230
try :
230
231
ClubMemberRelation .objects .get (member = instance .player , club = instance .team .club )
231
232
except ClubMemberRelation .DoesNotExist :
232
- ClubMemberRelation .objects .create (member = instance .player , club = instance .team .club ,
233
- manager_confirmed = instance .manager_confirmed , member_confirmed = instance .player_confirmed )
233
+ ClubMemberRelation .objects .create (member = instance .player , club = instance .team .club , validated = instance .validated )
234
234
235
+ # If first team member, asign as manager
236
+ managers = TeamManagerRelation .objects .filter (team = instance .team )
237
+ if len (managers ) == 0 :
238
+ TeamManagerRelation .objects .create (team = instance .team , manager = instance .player )
235
239
236
- def coach_to_club_member (sender , instance , created , ** kwargs ):
240
+
241
+ def team_coach_post_save (sender , instance , created , ** kwargs ):
242
+ # Add coach to club if not member already
237
243
try :
238
244
ClubMemberRelation .objects .get (member = instance .coach , club = instance .team .club )
239
245
except ClubMemberRelation .DoesNotExist :
240
- ClubMemberRelation .objects .create (member = instance .coach , club = instance .team .club ,
241
- manager_confirmed = instance .manager_confirmed , member_confirmed = instance .coach_confirmed )
246
+ ClubMemberRelation .objects .create (member = instance .coach , club = instance .team .club , validated = instance .validated )
247
+
248
+ # If first team member, asign as manager
249
+ managers = TeamManagerRelation .objects .filter (team = instance .team )
250
+ if len (managers ) == 0 :
251
+ TeamManagerRelation .objects .create (team = instance .team , manager = instance .coach )
242
252
243
253
244
- def add_player_to_team (sender , instance , created , ** kwargs ):
254
+ def game_player_post_save (sender , instance , created , ** kwargs ):
245
255
try :
246
256
TeamPlayerRelation .objects .get (team = instance .team , player = instance .player )
247
257
except TeamPlayerRelation .DoesNotExist :
248
- TeamPlayerRelation .objects .create (team = instance .team , player = instance .player , manager_confirmed = True , player_confirmed = True )
258
+ TeamPlayerRelation .objects .create (team = instance .team , player = instance .player , validated = True )
249
259
250
260
251
- def club_member_to_manager (sender , instance , created , ** kwargs ):
261
+ def club_member_post_save (sender , instance , created , ** kwargs ):
262
+ # If first member, make manager
252
263
managers = ClubManagerRelation .objects .filter (club = instance .club )
253
264
if len (managers ) == 0 :
254
265
ClubManagerRelation .objects .create (club = instance .club , manager = instance .member , validated = True )
255
266
256
-
257
- def team_player_to_manager (sender , instance , created , ** kwargs ):
258
- managers = TeamManagerRelation .objects .filter (team = instance .team )
259
- if len (managers ) == 0 :
260
- TeamManagerRelation .objects .create (team = instance .team , manager = instance .player )
267
+ # If first club, make primary
268
+ clubs = ClubMemberRelation .objects .filter (member = instance .member )
269
+ if len (clubs ) == 0 :
270
+ instance .primary = True
261
271
262
272
263
- def team_coach_to_manager (sender , instance , created , ** kwargs ):
264
- managers = TeamManagerRelation .objects .filter (team = instance .team )
265
- if len (managers ) == 0 :
266
- TeamManagerRelation .objects .create (team = instance .team , manager = instance .coach )
273
+ def game_post_save (sender , instance , created , ** kwargs ):
274
+ if created :
275
+ winner_score = 1
276
+ home_score = winner_score if instance .winner and instance .home .id == instance .winner .id else 0
277
+ away_score = winner_score if instance .winner and instance .away .id == instance .winner .id else 0
267
278
279
+ # Set site as default home site if not set yet
280
+ if not instance .home .club .home_site :
281
+ instance .home .club .home_site = instance .site
282
+ instance .home .club .save ()
268
283
269
- def club_primary_check (sender , instance , ** kwargs ):
270
- clubs = ClubMemberRelation .objects .filter (member = instance .member )
284
+ # Add teams to group if not already in it,
285
+ # Add score to winner team
286
+ try :
287
+ rel = GroupTeamRelation .objects .get (team = instance .home , group = instance .group )
288
+ rel .score += home_score
289
+ rel .save ()
290
+ except GroupTeamRelation .DoesNotExist :
291
+ GroupTeamRelation .objects .create (team = instance .home , group = instance .group , score = home_score )
271
292
272
- if len (clubs ) == 0 :
273
- instance .primary = True
293
+ try :
294
+ rel = GroupTeamRelation .objects .get (team = instance .away , group = instance .group )
295
+ rel .score += away_score
296
+ rel .save ()
297
+ except GroupTeamRelation .DoesNotExist :
298
+ GroupTeamRelation .objects .create (team = instance .away , group = instance .group , score = away_score )
274
299
275
300
276
301
# Create API key for a new user
277
302
post_save .connect (create_api_key , sender = User )
278
- pre_save .connect (set_union_by_district , sender = Group )
279
- post_save .connect (player_to_club_member , sender = TeamPlayerRelation )
280
- post_save .connect (coach_to_club_member , sender = TeamCoachRelation )
281
- post_save .connect (add_player_to_team , sender = GamePlayerRelation )
282
- post_save .connect (club_member_to_manager , sender = ClubMemberRelation )
283
- post_save .connect (team_player_to_manager , sender = TeamPlayerRelation )
284
- post_save .connect (team_coach_to_manager , sender = TeamCoachRelation )
285
- pre_save .connect (club_primary_check , sender = ClubMemberRelation )
303
+
304
+ pre_save .connect (group_post_save , sender = Group )
305
+ post_save .connect (team_player_post_save , sender = TeamPlayerRelation )
306
+ post_save .connect (team_coach_post_save , sender = TeamCoachRelation )
307
+ post_save .connect (game_player_post_save , sender = GamePlayerRelation )
308
+ post_save .connect (club_member_post_save , sender = ClubMemberRelation )
309
+ post_save .connect (game_post_save , sender = Game )
286
310
# m2m_changed.connect(set_club_by_team, sender=Team.players.through)
0 commit comments