Пример #1
0
	def OnPrintPage(self, page):
		race = Model.race
		if not race:
			return
		
		try:
			externalInfo = race.excelLink.read()
		except:
			externalInfo = {}
		
		GetTranslation = _
		allZeroStarters = True
		with UnstartedRaceWrapper():
			catMap = dict( (c.fullname, c) for c in race.getCategories( startWaveOnly=False ) )
			catDetails = GetCategoryDetails( ignoreEmptyCategories=False, publishOnly=True )
			catDetailsMap = dict( (cd['name'], cd) for cd in catDetails )
			
			title = u'\n'.join( [_('Categories'), race.name, race.scheduledStart + u' ' + _('Start on') + u' ' + Utils.formatDate(race.date)] )
			colnames = [_('Start Time'), _('Category'), _('Gender'), _('Numbers'), _('Laps'), _('Distance'), _('Starters')]
			
			raceStart = Utils.StrToSeconds( race.scheduledStart + ':00' )
			catData = []
			for catInfo in catDetails:
				c = catMap.get( catInfo['name'], None )
				if not c:
					continue
				
				starters = race.catCount(c)
				if starters:
					allZeroStarters = False
				else:
					starters = ''
				
				laps = catInfo.get( 'laps', '' ) or ''
				raceDistance = catInfo.get( 'raceDistance', '' )
				raceDistanceUnit = catInfo.get( 'distanceUnit', '')
				
				if raceDistance:
					raceDistance = '%.2f' % raceDistance
					
				if c.catType == c.CatWave:
					catStart = Utils.SecondsToStr( raceStart + c.getStartOffsetSecs() )
				elif c.catType == c.CatCustom:
					catStart = Utils.SecondsToStr( raceStart )
				else:
					catStart = ''
					
				catData.append( [
					catStart,
					u' - ' + c.name if c.catType == c.CatComponent else c.name,
					GetTranslation(catInfo.get('gender', 'Open')),
					c.catStr,
					u'{}'.format(laps),
					u' '.join([raceDistance, raceDistanceUnit]) if raceDistance else '',
					u'{}'.format(starters)
				])
		
		if allZeroStarters:
			colnames.remove( _('Starters') )
		data = [[None] * len(catData) for i in xrange(len(colnames))]
		for row in xrange(len(catData)):
			for col in xrange(len(colnames)):
				data[col][row] = catData[row][col]
				
		exportGrid = ExportGrid( title = title, colnames = colnames, data = data )
		exportGrid.leftJustifyCols = { 1, 2, 3 }
		exportGrid.drawToFitDC( self.GetDC() )
		return True
Пример #2
0
 def OnPrintPage(self, page):
     exportGrid = ExportGrid(self.title, self.grid)
     dc = self.GetDC()
     exportGrid.drawToFitDC(dc)
     return True
Пример #3
0
	def OnPrintPage(self, page):
		exportGrid = ExportGrid( self.title, self.grid )
		dc = self.GetDC()
		exportGrid.drawToFitDC( dc )
		return True
Пример #4
0
    def OnPrintPage(self, page):
        race = Model.race
        if not race:
            return

        try:
            externalInfo = race.excelLink.read()
        except:
            externalInfo = {}

        GetTranslation = _
        allZeroStarters = True
        with UnstartedRaceWrapper():
            catMap = dict((c.fullname, c)
                          for c in race.getCategories(startWaveOnly=False))
            catDetails = GetCategoryDetails(False, True)
            catDetailsMap = dict((cd['name'], cd) for cd in catDetails)

            title = u'\n'.join([
                _('Categories'), race.name, race.scheduledStart + u' ' +
                _('Start on') + u' ' + Utils.formatDate(race.date)
            ])
            colnames = [
                _('Start Time'),
                _('Category'),
                _('Gender'),
                _('Numbers'),
                _('Laps'),
                _('Distance'),
                _('Starters')
            ]

            raceStart = Utils.StrToSeconds(race.scheduledStart + ':00')
            catData = []
            for catInfo in catDetails:
                c = catMap.get(catInfo['name'], None)
                if not c:
                    continue

                starters = race.catCount(c)
                if starters:
                    allZeroStarters = False
                else:
                    starters = ''

                laps = catInfo.get('laps', '') or ''
                raceDistance = catInfo.get('raceDistance', '')
                raceDistanceUnit = catInfo.get('distanceUnit', '')

                if raceDistance:
                    raceDistance = '%.2f' % raceDistance

                if c.catType == c.CatWave:
                    catStart = Utils.SecondsToStr(raceStart +
                                                  c.getStartOffsetSecs())
                elif c.catType == c.CatCustom:
                    catStart = Utils.SecondsToStr(raceStart)
                else:
                    catStart = ''

                catData.append([
                    catStart,
                    u' - ' + c.name if c.catType == c.CatComponent else c.name,
                    GetTranslation(catInfo.get('gender', 'Open')), c.catStr,
                    u'{}'.format(laps),
                    u' '.join([raceDistance, raceDistanceUnit])
                    if raceDistance else '', u'{}'.format(starters)
                ])

        if allZeroStarters:
            colnames.remove(_('Starters'))
        data = [[None] * len(catData) for i in xrange(len(colnames))]
        for row in xrange(len(catData)):
            for col in xrange(len(colnames)):
                data[col][row] = catData[row][col]

        exportGrid = ExportGrid(title=title, colnames=colnames, data=data)
        exportGrid.leftJustifyCols = {1, 2, 3}
        exportGrid.drawToFitDC(self.GetDC())
        return True