web/views/baseviews.py
changeset 978 536c748e7b3f
parent 964 a711c7c185d1
child 985 6a25c58a1c23
child 988 b73f3cd23d43
equal deleted inserted replaced
977:d8bb6209edcd 978:536c748e7b3f
    56 class FinalView(AnyRsetView):
    56 class FinalView(AnyRsetView):
    57     """display values without any transformation (i.e. get a number for
    57     """display values without any transformation (i.e. get a number for
    58     entities) 
    58     entities) 
    59     """
    59     """
    60     id = 'final'
    60     id = 'final'
       
    61     # record generated i18n catalog messages
       
    62     _('%d years')
       
    63     _('%d months')
       
    64     _('%d weeks')
       
    65     _('%d days')
       
    66     _('%d hours')
       
    67     _('%d minutes')
       
    68     _('%d seconds')
       
    69     _('%d years')
       
    70     _('%d months')
       
    71     _('%d weeks')
       
    72     _('%d days')
       
    73     _('%d hours')
       
    74     _('%d minutes')
       
    75     _('%d seconds')
    61             
    76             
    62     def cell_call(self, row, col, props=None, displaytime=False, format='text/html'):
    77     def cell_call(self, row, col, props=None, displaytime=False, format='text/html'):
    63         etype = self.rset.description[row][col]
    78         etype = self.rset.description[row][col]
    64         value = self.rset.rows[row][col]
    79         value = self.rset.rows[row][col]
    65         if etype == 'String':
    80         if etype == 'String':
    67             if entity is not None:
    82             if entity is not None:
    68                 # yes !
    83                 # yes !
    69                 self.w(entity.printable_value(rtype, value, format=format))
    84                 self.w(entity.printable_value(rtype, value, format=format))
    70                 return
    85                 return
    71         if etype in ('Time', 'Interval'):
    86         if etype in ('Time', 'Interval'):
    72             _ = self.req._
       
    73             # value is DateTimeDelta but we have no idea about what is the 
    87             # value is DateTimeDelta but we have no idea about what is the 
    74             # reference date here, so we can only approximate years and months
    88             # reference date here, so we can only approximate years and months
       
    89             if format == 'text/html':
       
    90                 space = ' '
       
    91             else:
       
    92                 space = ' '
    75             if value.days > 730: # 2 years
    93             if value.days > 730: # 2 years
    76                 self.w(_('%d years') % (value.days // 365))
    94                 self.w(self.req.__('%%d%syears' % space) % (value.days // 365))
    77             elif value.days > 60: # 2 months
    95             elif value.days > 60: # 2 months
    78                 self.w(_('%d months') % (value.days // 30))
    96                 self.w(self.req.__('%%d%smonths' % space) % (value.days // 30))
    79             elif value.days > 14: # 2 weeks
    97             elif value.days > 14: # 2 weeks
    80                 self.w(_('%d weeks') % (value.days // 7))
    98                 self.w(self.req.__('%%d%sweeks' % space) % (value.days // 7))
    81             elif value.days > 2:
    99             elif value.days > 2:
    82                 self.w(_('%s days') % int(value.days))
   100                 self.w(self.req.__('%%d%sdays' % space) % int(value.days))
    83             elif value.hours > 2:
   101             elif value.hours > 2:
    84                 self.w(_('%s hours') % int(value.hours))
   102                 self.w(self.req.__('%%d%shours' % space) % int(value.hours))
    85             elif value.minutes >= 2:
   103             elif value.minutes >= 2:
    86                 self.w(_('%s minutes') % int(value.minutes))
   104                 self.w(self.req.__('%%d%sminutes' % space) % int(value.minutes))
    87             else:
   105             else:
    88                 self.w(_('%s seconds') % int(value.seconds))
   106                 self.w(self.req.__('%%d%sseconds' % space) % int(value.seconds))
    89             return
   107             return
    90         self.wdata(printable_value(self.req, etype, value, props, displaytime=displaytime))
   108         self.wdata(printable_value(self.req, etype, value, props, displaytime=displaytime))
    91 
   109 
    92 
   110 
    93 class EditableFinalView(FinalView):
   111 class EditableFinalView(FinalView):