Пример #1
0
 def finalise_results(self):
     """
     Calculate RunningGameParticipant's result, under each scheme
     """
     for rgp in self.game.rgps:
         payments = self.session.query(PaymentToPlayer)  \
             .filter(PaymentToPlayer.gameid == self.game.gameid)  \
             .filter(PaymentToPlayer.userid == rgp.userid).all()
         for scheme, include in  \
                 RunningGameParticipantResult.SCHEME_DETAILS.iteritems():  # @UndefinedVariable
             rgpr = RunningGameParticipantResult()
             rgpr.gameid = rgp.gameid
             rgpr.userid = rgp.userid
             rgpr.scheme = scheme
             rgpr.result = sum(payment.amount for payment in payments
                               if payment.reason in include)
             self.session.add(rgpr)
             logging.debug("gameid %d, userid %d, scheme %s: result %0.4f",
                 rgpr.gameid, rgpr.userid, rgpr.scheme, rgpr.result)