htdocs/examples/2008-03-22-multiple-timeseries/models.py

Go to the documentation of this file.
00001 class PlayerManager(models.Manager):
00002     def get_ts_data(self):
00003         return [
00004             dict(P.win_percent_plot_args(),name=P.name)
00005             for P in self.plotable()]
00006 
00007 class Player(models.Model):
00008     name=models.CharField(
00009         max_length=100,null=False,blank=True,default='',unique=True)
00010 
00011     objects=PlayerManager()
00012     
00013     MANAGER_DATAPLOTS=[
00014         (R.multi_time_series,{'get_plot_args':{
00015         'x':'get_ts_data',
00016         'main':"Win percent over time",
00017         'ylab':"Win percent",
00018         'xlab':"Game date",
00019         },'init_args':{'h':9,'w':6.5}}),
00020         ]
00021     
00022     DATAPLOTS=[
00023         (R.TimeSeries,{'qs':'scores_ordered','attribute':'win_percent_plot',
00024                        'get_plot_args':{
00025         'd':'game_seconds',
00026         'y':'win_percent_until_now',
00027         }}),
00028         ]
00029 
00030 class Score(models.Model):
00031     player=models.ForeignKey(Player)
00032     team=models.ForeignKey(Team)
00033 
00034     def game_seconds(self):
00035         return self.team.game.date.strftime("%s")
00036 
00037     def win_percent_until_now(self):
00038         qs=self.player.score_set.filter(
00039             team__game__date__lte=self.team.game.date)
00040         wins=qs.filter(team__won__exact=True).count()
00041         games=qs.count()
00042         return float(wins)/games
00043                                             

Generated on Tue Apr 22 23:16:22 2008 for django-dataplot by  doxygen 1.4.6