@@ -128,6 +128,7 @@ class Match(models.Model):
128128 Submission , on_delete = models .CASCADE , related_name = "matches_as_player2"
129129 )
130130 num_games = models .IntegerField (default = 5 )
131+ is_ranked = models .BooleanField (default = True )
131132 status = models .CharField (max_length = 20 , choices = STATUS_CHOICES , default = "pending" )
132133 created_at = models .DateTimeField (auto_now_add = True )
133134
@@ -199,36 +200,37 @@ def calculate_results(self) -> None:
199200 user1 = self .player1 .user
200201 user2 = self .player2 .user
201202
202- rating1 = Decimal (str (user1 .rating ))
203- rating2 = Decimal (str (user2 .rating ))
203+ if self .is_ranked :
204+ rating1 = Decimal (str (user1 .rating ))
205+ rating2 = Decimal (str (user2 .rating ))
204206
205- change1 , change2 = calculate_match_rating_change (
206- rating1 = rating1 ,
207- rating2 = rating2 ,
208- player1_wins = player1_wins ,
209- player2_wins = player2_wins ,
210- ties = ties ,
211- )
207+ change1 , change2 = calculate_match_rating_change (
208+ rating1 = rating1 ,
209+ rating2 = rating2 ,
210+ player1_wins = player1_wins ,
211+ player2_wins = player2_wins ,
212+ ties = ties ,
213+ )
212214
213- user1 .rating = rating1 + change1
214- user2 .rating = rating2 + change2
215+ user1 .rating = rating1 + change1
216+ user2 .rating = rating2 + change2
215217
216- user1 .save (update_fields = ["rating" ])
217- user2 .save (update_fields = ["rating" ])
218+ user1 .save (update_fields = ["rating" ])
219+ user2 .save (update_fields = ["rating" ])
218220
219- RatingHistory .objects .create (
220- user = user1 ,
221- rating = user1 .rating ,
222- match = self ,
223- )
224- RatingHistory .objects .create (
225- user = user2 ,
226- rating = user2 .rating ,
227- match = self ,
228- )
221+ RatingHistory .objects .create (
222+ user = user1 ,
223+ rating = user1 .rating ,
224+ match = self ,
225+ )
226+ RatingHistory .objects .create (
227+ user = user2 ,
228+ rating = user2 .rating ,
229+ match = self ,
230+ )
229231
230- task_logger .info (f"User { user1 } new rating: { user1 .rating } " )
231- task_logger .info (f"User { user2 } new rating: { user2 .rating } " )
232+ task_logger .info (f"User { user1 } new rating: { user1 .rating } " )
233+ task_logger .info (f"User { user2 } new rating: { user2 .rating } " )
232234
233235 def __str__ (self ) -> str :
234236 return f"{ self .player1 .get_game_name ()} vs { self .player2 .get_game_name ()} ({ self .num_games } games)"
0 commit comments