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): |