Merge lp:~vauxoo/addons-vauxoo/7.0_report_for_user_stories_added_dev_Sergio into lp:addons-vauxoo/7.0
- 7.0_report_for_user_stories_added_dev_Sergio
- Merge into 7.0
Status: | Merged |
---|---|
Approved by: | Jorge Angel Naranjo Rogel - http://www.vauxoo.com |
Approved revision: | 1093 |
Merged at revision: | 1109 |
Proposed branch: | lp:~vauxoo/addons-vauxoo/7.0_report_for_user_stories_added_dev_Sergio |
Merge into: | lp:addons-vauxoo/7.0 |
Diff against target: |
716 lines (+555/-10) 9 files modified
user_story/__openerp__.py (+4/-5) user_story/data/data_us_report.xml (+378/-0) user_story/i18n/es.po (+18/-0) user_story/i18n/user_story.pot (+4/-1) user_story/report/__init__.py (+2/-1) user_story/report/parse_report.py (+8/-3) user_story/report/user_story_report.mako (+59/-0) user_story/report/user_story_report_mako.py (+61/-0) user_story/report/user_story_report_view.xml (+21/-0) |
To merge this branch: | bzr merge lp:~vauxoo/addons-vauxoo/7.0_report_for_user_stories_added_dev_Sergio |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Jorge Angel Naranjo Rogel - http://www.vauxoo.com | Needs Fixing | ||
Juan Carlos Hernandez | Needs Resubmitting | ||
Luis Ernesto García Medina - http://www.vauxoo.com | Pending | ||
Review via email:
|
Commit message
Description of the change
Se agrego al módulo user_story los archivos necesarios y las modificaciones a código contenido en el mismo para generar reportes de historias de usuario, utilizando la herramienta WEBKIT.
- 1076. By Sergio Ernesto Tostado Sánchez - http://www.vauxoo.com
-
[ADD][user_story] The report_webkit module was added like a dependency for this module
- 1077. By Sergio Ernesto Tostado Sánchez - http://www.vauxoo.com
-
[REF][user_story] I overwrote the depends list in the __openerp__.py file to add the report_webkit dependency
- 1078. By Luis Ernesto García Medina - http://www.vauxoo.com
-
[REF][user_story] is added to the description of the module, the command to install python-html2text to print reports
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Jorge Angel Naranjo Rogel - http://www.vauxoo.com (jorge-nr) wrote : | # |
- 1079. By Luis Ernesto García Medina - http://www.vauxoo.com
-
[REF][user_story] change indentation on files for white space, change background color of tables.
- 1080. By Luis Ernesto García Medina - http://www.vauxoo.com
-
[MERGE] merge with lp:addons-vauxoo/7.0
- 1081. By Juan Carlos Hernandez
-
[IMP][user_
story]improve report user story - 1082. By Juan Carlos Hernandez
-
[IMP][user_
story]improve print
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Juan Carlos Hernandez (openerp1) wrote : | # |
@Jorge
Podrias checar la tarea, ya quedó bien la impresión del campo descripción
- 1083. By Juan Carlos Hernandez
-
[IMP][user_
story]change size title
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Jorge Angel Naranjo Rogel - http://www.vauxoo.com (jorge-nr) wrote : | # |
@Carlos
Puedes revisar el comentario que te hice
- 1084. By Juan Carlos Hernandez
-
[IMP][user_
story]validatio n for string empty
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Jorge Angel Naranjo Rogel - http://www.vauxoo.com (jorge-nr) wrote : | # |
@Carlos
Hacen falta agregar las traducciones del reporte
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Jorge Angel Naranjo Rogel - http://www.vauxoo.com (jorge-nr) wrote : | # |
@Carlos
Puedes revisar los conflictos que marca
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Juan Carlos Hernandez (openerp1) wrote : | # |
@Jorge
Ya resolví los conflictos de traducción
- 1085. By Juan Carlos Hernandez
-
[IMP][user_
story]validatio n for string empty and add setLang to report - 1086. By Juan Carlos Hernandez
-
[IMP][user_
story]improve traslation for roseta - 1087. By Juan Carlos Hernandez
-
[IMP][user_
story]improve code - 1088. By Juan Carlos Hernandez
-
[IMP][user_
story]improve traslation - 1089. By Juan Carlos Hernandez
-
[IMP][user_
story]traslatio n title of report - 1090. By Juan Carlos Hernandez
-
[IMP][user_
story]add traslation for planned hours
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Jorge Angel Naranjo Rogel - http://www.vauxoo.com (jorge-nr) : | # |
- 1091. By Juan Carlos Hernandez
-
[REF][user_
story]deprecate d ir_report.xml ofr report sxw
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Jorge Angel Naranjo Rogel - http://www.vauxoo.com (jorge-nr) : | # |
- 1092. By Juan Carlos Hernandez
-
[FIX][user_
story]delete library html2text
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Jorge Angel Naranjo Rogel - http://www.vauxoo.com (jorge-nr) : | # |
- 1093. By Juan Carlos Hernandez
-
[FIX][user_
story]fix copyrigth - 1094. By Juan Carlos Hernandez
-
[MERGE]merge with lp:addons-vauxoo/7.0 because there was a error in test
Preview Diff
1 | === modified file 'user_story/__openerp__.py' | |||
2 | --- user_story/__openerp__.py 2014-07-25 06:11:04 +0000 | |||
3 | +++ user_story/__openerp__.py 2014-08-12 14:42:57 +0000 | |||
4 | @@ -33,6 +33,7 @@ | |||
5 | 33 | "sprint_kanban", | 33 | "sprint_kanban", |
6 | 34 | "project_timesheet", | 34 | "project_timesheet", |
7 | 35 | "project_conf", | 35 | "project_conf", |
8 | 36 | "report_webkit", | ||
9 | 36 | ], | 37 | ], |
10 | 37 | "author" : "Vauxoo", | 38 | "author" : "Vauxoo", |
11 | 38 | "description" : """ | 39 | "description" : """ |
12 | @@ -47,22 +48,20 @@ | |||
13 | 47 | siguientes: | 48 | siguientes: |
14 | 48 | 49 | ||
15 | 49 | .. Story: http://dannorth.net/whats-in-a-story/ | 50 | .. Story: http://dannorth.net/whats-in-a-story/ |
18 | 50 | .. fuentes: http://adrianmoya.com/2012/08/que-hay-en-una-historia/ | 51 | .. fuentes: http://adrianmoya.com/2012/08/que-hay-en-una-historia/""", |
17 | 51 | """, | ||
19 | 52 | "website" : "http://vauxoo.com", | 52 | "website" : "http://vauxoo.com", |
20 | 53 | "category" : "Generic Modules", | 53 | "category" : "Generic Modules", |
21 | 54 | "demo" : [ | 54 | "demo" : [ |
22 | 55 | 'demo/demo.xml', | 55 | 'demo/demo.xml', |
23 | 56 | ], | 56 | ], |
24 | 57 | "data" : [ | 57 | "data" : [ |
26 | 58 | "report/ir_report.xml", | 58 | "data/data_us_report.xml", |
27 | 59 | "report/user_story_report_view.xml", | ||
28 | 59 | "security/userstory_security.xml", | 60 | "security/userstory_security.xml", |
29 | 60 | "security/ir.model.access.csv", | 61 | "security/ir.model.access.csv", |
30 | 61 | "view/userstory_view.xml", | 62 | "view/userstory_view.xml", |
31 | 62 | "view/project_view.xml", | 63 | "view/project_view.xml", |
32 | 63 | "view/hr_timesheet_view.xml", | 64 | "view/hr_timesheet_view.xml", |
33 | 64 | "view/hr_timesheet_all_view.xml", | ||
34 | 65 | "view/custom_project_task_view.xml", | ||
35 | 66 | "data/data.xml", | 65 | "data/data.xml", |
36 | 67 | "data/user_story_template.xml", | 66 | "data/user_story_template.xml", |
37 | 68 | ], | 67 | ], |
38 | 69 | 68 | ||
39 | === added file 'user_story/data/data_us_report.xml' | |||
40 | --- user_story/data/data_us_report.xml 1970-01-01 00:00:00 +0000 | |||
41 | +++ user_story/data/data_us_report.xml 2014-08-12 14:42:57 +0000 | |||
42 | @@ -0,0 +1,378 @@ | |||
43 | 1 | <?xml version="1.0" ?> | ||
44 | 2 | <openerp> | ||
45 | 3 | <data noupdate="0"> | ||
46 | 4 | <record id="ir_header_webkit_user_story_report" model="ir.header_webkit"> | ||
47 | 5 | <field name="footer_html"><![CDATA[<!DOCTYPE> | ||
48 | 6 | <html> | ||
49 | 7 | <head> | ||
50 | 8 | <meta content="text/html; charset=UTF-8" http-equiv="content-type"/> | ||
51 | 9 | <script> | ||
52 | 10 | function subst() { | ||
53 | 11 | var vars={}; | ||
54 | 12 | var x=document.location.search.substring(1).split('&'); | ||
55 | 13 | for(var i in x) {var z=x[i].split('=',2);vars[z[0]] = unescape(z[1]);} | ||
56 | 14 | var x=['frompage','topage','page','webpage','section','subsection','subsubsection']; | ||
57 | 15 | for(var i in x) { | ||
58 | 16 | var y = document.getElementsByClassName(x[i]); | ||
59 | 17 | for(var j=0; j<y.length; ++j) y[j].textContent = vars[x[i]]; | ||
60 | 18 | } | ||
61 | 19 | } | ||
62 | 20 | </script> | ||
63 | 21 | </head> | ||
64 | 22 | <body style="border:0; margin: 0;" onload="subst()"> | ||
65 | 23 | <table style="border-top: 1px solid black; width: 100%"> | ||
66 | 24 | <tr > | ||
67 | 25 | <td style="text-align:left;font-size:7;" width="50%">Generado con software libre en OpenERP y Webkit por http://www.vauxoo.com</td> | ||
68 | 26 | <td style="text-align:right;font-size:11;" width="45%">Page <span class="page"/></td><td style="text-align:left;font-size:11;" width="5%"> of <span class="topage"/></td> | ||
69 | 27 | </tr> | ||
70 | 28 | </table> | ||
71 | 29 | </body> | ||
72 | 30 | </html>]]> | ||
73 | 31 | </field> | ||
74 | 32 | <field name="orientation">Portrait</field> | ||
75 | 33 | <field name="format">Letter</field> | ||
76 | 34 | <field name="html"><![CDATA[<!DOCTYPE> | ||
77 | 35 | <html> | ||
78 | 36 | <head> | ||
79 | 37 | <meta content="text/html; charset=UTF-8" http-equiv="content-type"/> | ||
80 | 38 | <script> | ||
81 | 39 | function subst() { | ||
82 | 40 | var vars={}; | ||
83 | 41 | var x=document.location.search.substring(1).split('&'); | ||
84 | 42 | for(var i in x) {var z=x[i].split('=',2);vars[z[0]] = unescape(z[1]);} | ||
85 | 43 | var x=['frompage','topage','page','webpage','section','subsection','subsubsection']; | ||
86 | 44 | for(var i in x) { | ||
87 | 45 | var y = document.getElementsByClassName(x[i]); | ||
88 | 46 | for(var j=0; j<y.length; ++j) y[j].textContent = vars[x[i]]; | ||
89 | 47 | } | ||
90 | 48 | } | ||
91 | 49 | </script> | ||
92 | 50 | <style type="text/css"> | ||
93 | 51 | ${css} | ||
94 | 52 | </style> | ||
95 | 53 | </head> | ||
96 | 54 | <body style="border:0; margin: 0;" onload="subst()"> | ||
97 | 55 | ${_debug or ''|n} </body> | ||
98 | 56 | </html>]]> | ||
99 | 57 | </field> | ||
100 | 58 | <field eval="0.0" name="margin_top"/> | ||
101 | 59 | <field name="css" ><![CDATA[ | ||
102 | 60 | .table_all_border { | ||
103 | 61 | border-collapse: collapse; | ||
104 | 62 | width: 100%; | ||
105 | 63 | border: 1px solid #f2f2f2; } | ||
106 | 64 | .table_all_border > thead > tr > th, | ||
107 | 65 | .table_all_border > thead > tr > td, | ||
108 | 66 | .table_all_border > tbody > tr > th, | ||
109 | 67 | .table_all_border > tbody > tr > td, | ||
110 | 68 | .table_all_border > tfoot > tr > th, | ||
111 | 69 | .table_all_border > tfoot > tr > td { | ||
112 | 70 | border: 1px solid #f2f2f2; } | ||
113 | 71 | .table_all_border > thead > tr > th, | ||
114 | 72 | .table_all_border > thead > tr > td { | ||
115 | 73 | border-bottom-width: 1px solid #f2f2f2; } | ||
116 | 74 | |||
117 | 75 | .table_title_bg_color { | ||
118 | 76 | border-collapse: collapse; } | ||
119 | 77 | .table_title_bg_color > thead > tr > th, | ||
120 | 78 | .table_title_bg_color > tbody > tr > th, | ||
121 | 79 | .table_title_bg_color > tfoot > tr > th { | ||
122 | 80 | border-bottom: 1px solid #f2f2f2; | ||
123 | 81 | border-top: 1px solid #f2f2f2; | ||
124 | 82 | background-color: #A41D35; | ||
125 | 83 | font-size: 7; | ||
126 | 84 | color: white; } | ||
127 | 85 | |||
128 | 86 | .table_title { | ||
129 | 87 | border-collapse: collapse; | ||
130 | 88 | width: 100%; } | ||
131 | 89 | .table_title > thead > tr > th, | ||
132 | 90 | .table_title > tbody > tr > th, | ||
133 | 91 | .table_title > tfoot > tr > th { | ||
134 | 92 | border-bottom: 2px solid #f2f2f2; | ||
135 | 93 | font-size: 7; | ||
136 | 94 | color: white; } | ||
137 | 95 | |||
138 | 96 | .table_row_border { | ||
139 | 97 | border-collapse: collapse; | ||
140 | 98 | width: 100%; } | ||
141 | 99 | .table_row_border > thead > tr > th, | ||
142 | 100 | .table_row_border > thead > tr > td, | ||
143 | 101 | .table_row_border > tbody > tr > th, | ||
144 | 102 | .table_row_border > tbody > tr > td, | ||
145 | 103 | .table_row_border > tfoot > tr > th, | ||
146 | 104 | .table_row_border > tfoot > tr > td { | ||
147 | 105 | border-bottom: 1px solid #f2f2f2; } | ||
148 | 106 | .table_row_border > thead > tr > th, | ||
149 | 107 | .table_row_border > thead > tr > td { | ||
150 | 108 | border-bottom-width: 1px; } | ||
151 | 109 | |||
152 | 110 | .table_column_border { | ||
153 | 111 | border-collapse: collapse; | ||
154 | 112 | } | ||
155 | 113 | .table_column_border > thead > tr > td, | ||
156 | 114 | .table_column_border > tbody > tr > td, | ||
157 | 115 | .table_column_border > tfoot > tr > td { | ||
158 | 116 | border: 1px solid #f2f2f2; | ||
159 | 117 | border-width: 0 1px; } | ||
160 | 118 | .table_column_border > thead > tr > td:first-child, .table_column_border > thead > tr td + td, | ||
161 | 119 | .table_column_border > tbody > tr > td:first-child, | ||
162 | 120 | .table_column_border > tbody > tr td + td, | ||
163 | 121 | .table_column_border > tfoot > tr > td:first-child, | ||
164 | 122 | .table_column_border > tfoot > tr td + td { | ||
165 | 123 | border-left: 0; } | ||
166 | 124 | .table_column_border > thead > tr > td:last-child, | ||
167 | 125 | .table_column_border > tbody > tr > td:last-child, | ||
168 | 126 | .table_column_border > tfoot > tr > td:last-child { | ||
169 | 127 | padding-right: 0; | ||
170 | 128 | border-right: 0; } | ||
171 | 129 | |||
172 | 130 | .table_alter_color_row { | ||
173 | 131 | border-collapse: collapse; } | ||
174 | 132 | .table_alter_color_row > tbody > tr:nth-child(2n+1) > td { | ||
175 | 133 | background-color: gainsboro ; } | ||
176 | 134 | .table_alter_color_row > tbody > tr:nth-child(2n+2) > td { | ||
177 | 135 | background-color: whitesmoke; } | ||
178 | 136 | |||
179 | 137 | .table_alter_color_column { | ||
180 | 138 | border-collapse: collapse; | ||
181 | 139 | width: 100%; } | ||
182 | 140 | .table_alter_color_column > tbody | ||
183 | 141 | > tr | ||
184 | 142 | > td:nth-child(2n+1) { | ||
185 | 143 | background-color: gainsboro; } | ||
186 | 144 | .table_alter_color_column > tbody | ||
187 | 145 | > tr | ||
188 | 146 | > td:nth-child(2n+2) { | ||
189 | 147 | background-color: whitesmoke; } | ||
190 | 148 | |||
191 | 149 | .table_only_border_top { | ||
192 | 150 | border-collapse: collapse; | ||
193 | 151 | width: 100%; } | ||
194 | 152 | .table_only_border_top > tbody | ||
195 | 153 | > tr { | ||
196 | 154 | border-top: 1px solid #f2f2f2; } | ||
197 | 155 | |||
198 | 156 | .table_only_border_bottom { | ||
199 | 157 | border-collapse: collapse; | ||
200 | 158 | width: 100%; } | ||
201 | 159 | .table_only_border_bottom > tbody | ||
202 | 160 | > tr { | ||
203 | 161 | border-bottom: 1px solid #f2f2f2; } | ||
204 | 162 | |||
205 | 163 | .panel { | ||
206 | 164 | padding: 8px 8px; | ||
207 | 165 | background-color: #5bc0de; } | ||
208 | 166 | |||
209 | 167 | .panel_radius_color { | ||
210 | 168 | border: 2px solid #ee8f9e; | ||
211 | 169 | border-radius: 15px; | ||
212 | 170 | padding: 8px 8px; } | ||
213 | 171 | |||
214 | 172 | .panel_radius_trans { | ||
215 | 173 | border: 2px solid transparent; | ||
216 | 174 | border-radius: 15px; | ||
217 | 175 | padding: 8px 8px; } | ||
218 | 176 | |||
219 | 177 | .panel_bg_color { | ||
220 | 178 | padding: 5px 5px; | ||
221 | 179 | background: #f2f2f2; | ||
222 | 180 | font-size: 6pt; } | ||
223 | 181 | |||
224 | 182 | .panel_bg_color_title { | ||
225 | 183 | padding: 5px 5px; | ||
226 | 184 | background: #A41D35; | ||
227 | 185 | color: white; | ||
228 | 186 | font-size: 6pt; | ||
229 | 187 | font-family: "Helvetica Neue", Helvetica, Arial, sans_serif; } | ||
230 | 188 | |||
231 | 189 | .panel_box_shadow { | ||
232 | 190 | box-shadow: 5px 5px 10px #222222; } | ||
233 | 191 | |||
234 | 192 | .panel_bg_color_gradient { | ||
235 | 193 | background: -webkit-linear-gradient(#333333, gainsboro); | ||
236 | 194 | /* For Safari */ | ||
237 | 195 | background: -o-linear-gradient(#333333, gainsboro); | ||
238 | 196 | /* For Opera 11.1 to 12.0 */ | ||
239 | 197 | background: -moz-linear-gradient(#333333, gainsboro); | ||
240 | 198 | /* For Firefox 3.6 to 15 */ | ||
241 | 199 | background: linear-gradient(#333333, gainsboro); | ||
242 | 200 | /* Standard syntax (must be last) */ } | ||
243 | 201 | |||
244 | 202 | .panel_border_radius_top { | ||
245 | 203 | border-top-right-radius: 15px; | ||
246 | 204 | border-top-left-radius: 15px; | ||
247 | 205 | border: 2px solid #ee8f9e; | ||
248 | 206 | padding: 5px; } | ||
249 | 207 | |||
250 | 208 | .panel_radius_top { | ||
251 | 209 | border-top-right-radius: 15px; | ||
252 | 210 | border-top-left-radius: 15px; | ||
253 | 211 | padding: 5px; } | ||
254 | 212 | |||
255 | 213 | .panel_border_radius_top_right { | ||
256 | 214 | border-top-right-radius: 15px; | ||
257 | 215 | border: 2px solid #ee8f9e; | ||
258 | 216 | padding: 5px; } | ||
259 | 217 | |||
260 | 218 | .panel_border_radius_top_left { | ||
261 | 219 | border-top-left-radius: 15px; | ||
262 | 220 | border: 2px solid #ee8f9e; | ||
263 | 221 | padding: 5px; } | ||
264 | 222 | |||
265 | 223 | .panel_border_radius_bottom { | ||
266 | 224 | border-bottom-right-radius: 15px; | ||
267 | 225 | border-bottom-left-radius: 15px; | ||
268 | 226 | border: 2px solid #ee8f9e; | ||
269 | 227 | padding: 5px; } | ||
270 | 228 | |||
271 | 229 | .panel_radius_bottom { | ||
272 | 230 | border-bottom-right-radius: 15px; | ||
273 | 231 | border-bottom-left-radius: 15px; | ||
274 | 232 | padding: 5px; } | ||
275 | 233 | |||
276 | 234 | .panel_border_radius_bottom_right { | ||
277 | 235 | border-bottom-right-radius: 15px; | ||
278 | 236 | border: 2px solid #ee8f9e; | ||
279 | 237 | padding: 5px; } | ||
280 | 238 | |||
281 | 239 | .panel_border_radius_bottom_left { | ||
282 | 240 | border-bottom-left-radius: 15px; | ||
283 | 241 | border: 2px solid #ee8f9e; | ||
284 | 242 | padding: 5px; } | ||
285 | 243 | |||
286 | 244 | body { | ||
287 | 245 | color: black; | ||
288 | 246 | font-family: "Helvetica Neue", Helvetica, Arial, sans_serif; | ||
289 | 247 | font-size: 7; | ||
290 | 248 | margin: 0; | ||
291 | 249 | padding: 0; | ||
292 | 250 | height: 100%; | ||
293 | 251 | line-height: 12px; } | ||
294 | 252 | |||
295 | 253 | table.basic_table { | ||
296 | 254 | border-collapse: collapse; | ||
297 | 255 | width: 100%; } | ||
298 | 256 | |||
299 | 257 | .imagen_company { | ||
300 | 258 | vertical-align: top; | ||
301 | 259 | width: 35%; } | ||
302 | 260 | |||
303 | 261 | .data_emitter { | ||
304 | 262 | vertical-align: top; | ||
305 | 263 | color: black; | ||
306 | 264 | text-align: right; | ||
307 | 265 | font-size: 7; } | ||
308 | 266 | |||
309 | 267 | .data_customer { | ||
310 | 268 | vertical-align: top; | ||
311 | 269 | color: black; | ||
312 | 270 | text-align: left; | ||
313 | 271 | font-size: 7; } | ||
314 | 272 | |||
315 | 273 | th { | ||
316 | 274 | padding-right: 2px; | ||
317 | 275 | padding-left: 2px; | ||
318 | 276 | text-align: center; | ||
319 | 277 | font-size: 7; } | ||
320 | 278 | |||
321 | 279 | strong{ | ||
322 | 280 | font-size: 18; | ||
323 | 281 | font-weight: bold; | ||
324 | 282 | } | ||
325 | 283 | |||
326 | 284 | .data_company{ | ||
327 | 285 | font-size: 10; | ||
328 | 286 | } | ||
329 | 287 | |||
330 | 288 | |||
331 | 289 | pre { | ||
332 | 290 | font-size: 12pt; | ||
333 | 291 | font-family: helvetica; | ||
334 | 292 | white-space: pre-wrap; | ||
335 | 293 | white-space: -moz-pre-wrap !important; | ||
336 | 294 | white-space: -pre-wrap; | ||
337 | 295 | white-space: -o-pre-wrap; | ||
338 | 296 | word-wrap: break-word; } | ||
339 | 297 | |||
340 | 298 | |||
341 | 299 | .pre_description { | ||
342 | 300 | font-size: 6pt; | ||
343 | 301 | font-family: helvetica; | ||
344 | 302 | white-space: pre-wrap; | ||
345 | 303 | white-space: -moz-pre-wrap !important; | ||
346 | 304 | white-space: -pre-wrap; | ||
347 | 305 | white-space: -o-pre-wrap; | ||
348 | 306 | word-wrap: break-word; | ||
349 | 307 | background: #f2f2f2; } | ||
350 | 308 | |||
351 | 309 | hr{ | ||
352 | 310 | width:95%; | ||
353 | 311 | color:lightgrey; | ||
354 | 312 | } | ||
355 | 313 | |||
356 | 314 | td{ | ||
357 | 315 | font-size:7; | ||
358 | 316 | } | ||
359 | 317 | |||
360 | 318 | .td_without_bottom{ | ||
361 | 319 | border-bottom: 1px solid #FFFFFF; | ||
362 | 320 | } | ||
363 | 321 | |||
364 | 322 | .td_amount{ | ||
365 | 323 | text-align:right | ||
366 | 324 | } | ||
367 | 325 | |||
368 | 326 | .td_center { | ||
369 | 327 | text-align: center; } | ||
370 | 328 | |||
371 | 329 | .th_center { | ||
372 | 330 | text-align: center; } | ||
373 | 331 | |||
374 | 332 | .td_bold { | ||
375 | 333 | font-weight: bold; } | ||
376 | 334 | |||
377 | 335 | .th_widht { | ||
378 | 336 | width: 33%; } | ||
379 | 337 | |||
380 | 338 | .td_condiciones{ | ||
381 | 339 | font-size:6; | ||
382 | 340 | } | ||
383 | 341 | |||
384 | 342 | table.fixed { | ||
385 | 343 | table-layout:fixed; | ||
386 | 344 | width:33%; | ||
387 | 345 | word-break:break-all; | ||
388 | 346 | } | ||
389 | 347 | |||
390 | 348 | td.total_td { | ||
391 | 349 | border-top: solid 1.5px #A41D35; | ||
392 | 350 | font-size: 8; | ||
393 | 351 | padding-right: 2px; | ||
394 | 352 | padding-left: 2px; | ||
395 | 353 | font-weight: bold; | ||
396 | 354 | color: black; } | ||
397 | 355 | |||
398 | 356 | td.sub_total_td { | ||
399 | 357 | border-top: solid 1.5px #A41D35; | ||
400 | 358 | font-size: 8; | ||
401 | 359 | padding-right: 2px; | ||
402 | 360 | padding-left: 2px; | ||
403 | 361 | color: black; } | ||
404 | 362 | |||
405 | 363 | |||
406 | 364 | .td_vertical_middle { | ||
407 | 365 | vertical-align: middle; } | ||
408 | 366 | p.td_margin_botton { | ||
409 | 367 | margin-bottom:20px; | ||
410 | 368 | } | ||
411 | 369 | |||
412 | 370 | ]]> </field> | ||
413 | 371 | <field name="name">User Story Report Vauxoo Webkit</field> | ||
414 | 372 | </record> | ||
415 | 373 | <record id="ir_header_img_companylogo0" model="ir.header_img"> | ||
416 | 374 | <field eval=""""jpg"""" name="type"/> | ||
417 | 375 | <field eval=""""company_logo"""" name="name"/> | ||
418 | 376 | </record> | ||
419 | 377 | </data> | ||
420 | 378 | </openerp> | ||
421 | 0 | 379 | ||
422 | === modified file 'user_story/i18n/es.po' | |||
423 | --- user_story/i18n/es.po 2014-08-09 05:43:24 +0000 | |||
424 | +++ user_story/i18n/es.po 2014-08-12 14:42:57 +0000 | |||
425 | @@ -110,6 +110,7 @@ | |||
426 | 110 | #. module: user_story | 110 | #. module: user_story |
427 | 111 | #: field:acceptability.criteria,scenario:0 | 111 | #: field:acceptability.criteria,scenario:0 |
428 | 112 | #: view:user.story:0 | 112 | #: view:user.story:0 |
429 | 113 | #: report:addons/user_story/report/user_story_report.mako:47 | ||
430 | 113 | msgid "Scenario" | 114 | msgid "Scenario" |
431 | 114 | msgstr "Escenario" | 115 | msgstr "Escenario" |
432 | 115 | 116 | ||
433 | @@ -190,6 +191,7 @@ | |||
434 | 190 | #. module: user_story | 191 | #. module: user_story |
435 | 191 | #: view:project.task:0 | 192 | #: view:project.task:0 |
436 | 192 | #: field:user.story,planned_hours:0 | 193 | #: field:user.story,planned_hours:0 |
437 | 194 | #: report:addons/user_story/report/user_story_report.mako:26 | ||
438 | 193 | msgid "Planned Hours" | 195 | msgid "Planned Hours" |
439 | 194 | msgstr "Horas Estimadas" | 196 | msgstr "Horas Estimadas" |
440 | 195 | 197 | ||
441 | @@ -352,6 +354,7 @@ | |||
442 | 352 | #. module: user_story | 354 | #. module: user_story |
443 | 353 | #: view:user.story:0 | 355 | #: view:user.story:0 |
444 | 354 | #: field:user.story,owner:0 | 356 | #: field:user.story,owner:0 |
445 | 357 | #: report:addons/user_story/report/user_story_report.mako:22 | ||
446 | 355 | msgid "Owner" | 358 | msgid "Owner" |
447 | 356 | msgstr "Dueño" | 359 | msgstr "Dueño" |
448 | 357 | 360 | ||
449 | @@ -416,6 +419,7 @@ | |||
450 | 416 | #: view:project.task:0 | 419 | #: view:project.task:0 |
451 | 417 | #: field:project.task,userstory_id:0 | 420 | #: field:project.task,userstory_id:0 |
452 | 418 | #: view:user.story:0 | 421 | #: view:user.story:0 |
453 | 422 | #: report:addons/user_story/report/user_story_report.mako:10 | ||
454 | 419 | msgid "User Story" | 423 | msgid "User Story" |
455 | 420 | msgstr "Historia de Usuario" | 424 | msgstr "Historia de Usuario" |
456 | 421 | 425 | ||
457 | @@ -616,6 +620,7 @@ | |||
458 | 616 | #: view:project.project:0 | 620 | #: view:project.project:0 |
459 | 617 | #: field:project.project,descriptions:0 | 621 | #: field:project.project,descriptions:0 |
460 | 618 | #: field:user.story,description:0 | 622 | #: field:user.story,description:0 |
461 | 623 | #: report:addons/user_story/report/user_story_report.mako:33 | ||
462 | 619 | msgid "Description" | 624 | msgid "Description" |
463 | 620 | msgstr "Descripción" | 625 | msgstr "Descripción" |
464 | 621 | 626 | ||
465 | @@ -670,6 +675,7 @@ | |||
466 | 670 | 675 | ||
467 | 671 | #. module: user_story | 676 | #. module: user_story |
468 | 672 | #: field:user.story.priority,name:0 | 677 | #: field:user.story.priority,name:0 |
469 | 678 | #: report:addons/user_story/report/user_story_report.mako:46 | ||
470 | 673 | msgid "Name" | 679 | msgid "Name" |
471 | 674 | msgstr "Nombre" | 680 | msgstr "Nombre" |
472 | 675 | 681 | ||
473 | @@ -680,6 +686,7 @@ | |||
474 | 680 | 686 | ||
475 | 681 | #. module: user_story | 687 | #. module: user_story |
476 | 682 | #: view:acceptability.criteria:0 | 688 | #: view:acceptability.criteria:0 |
477 | 689 | #: report:addons/user_story/report/user_story_report.mako:41 | ||
478 | 683 | msgid "Acceptability Criterion" | 690 | msgid "Acceptability Criterion" |
479 | 684 | msgstr "Criterio de Aceptación" | 691 | msgstr "Criterio de Aceptación" |
480 | 685 | 692 | ||
481 | @@ -738,3 +745,14 @@ | |||
482 | 738 | #: view:user.story:0 | 745 | #: view:user.story:0 |
483 | 739 | msgid "Sprint" | 746 | msgid "Sprint" |
484 | 740 | msgstr "Sprint" | 747 | msgstr "Sprint" |
485 | 748 | |||
486 | 749 | #. module: user_story | ||
487 | 750 | #: view:user.story:0 | ||
488 | 751 | #: report:addons/user_story/report/user_story_report.mako:18 | ||
489 | 752 | msgid "Related Project" | ||
490 | 753 | msgstr "Proyecto Relacionado" | ||
491 | 754 | |||
492 | 755 | #. module: user_story | ||
493 | 756 | #: model:ir.actions.report.xml,name:user_story.user_story_report_webkit | ||
494 | 757 | msgid "User Story Report" | ||
495 | 758 | msgstr "Reporte de Historia de Usuario" | ||
496 | 741 | \ No newline at end of file | 759 | \ No newline at end of file |
497 | 742 | 760 | ||
498 | === modified file 'user_story/i18n/user_story.pot' | |||
499 | --- user_story/i18n/user_story.pot 2014-05-09 21:51:34 +0000 | |||
500 | +++ user_story/i18n/user_story.pot 2014-08-12 14:42:57 +0000 | |||
501 | @@ -104,6 +104,7 @@ | |||
502 | 104 | 104 | ||
503 | 105 | #. module: user_story | 105 | #. module: user_story |
504 | 106 | #: field:acceptability.criteria,scenario:0 | 106 | #: field:acceptability.criteria,scenario:0 |
505 | 107 | #: report:addons/user_story/report/user_story_report.mako:47 | ||
506 | 107 | #: view:user.story:0 | 108 | #: view:user.story:0 |
507 | 108 | msgid "Scenario" | 109 | msgid "Scenario" |
508 | 109 | msgstr "" | 110 | msgstr "" |
509 | @@ -514,6 +515,8 @@ | |||
510 | 514 | msgid "sc 1.2" | 515 | msgid "sc 1.2" |
511 | 515 | msgstr "" | 516 | msgstr "" |
512 | 516 | 517 | ||
513 | 518 | |||
514 | 519 | |||
515 | 517 | #. module: user_story | 520 | #. module: user_story |
516 | 518 | #: model:acceptability.criteria,scenario:user_story.ac_11 | 521 | #: model:acceptability.criteria,scenario:user_story.ac_11 |
517 | 519 | msgid "sc 1.1" | 522 | msgid "sc 1.1" |
518 | @@ -608,6 +611,7 @@ | |||
519 | 608 | 611 | ||
520 | 609 | #. module: user_story | 612 | #. module: user_story |
521 | 610 | #: field:user.story.priority,name:0 | 613 | #: field:user.story.priority,name:0 |
522 | 614 | #: report:addons/user_story/report/user_story_report.mako:46 | ||
523 | 611 | msgid "Name" | 615 | msgid "Name" |
524 | 612 | msgstr "" | 616 | msgstr "" |
525 | 613 | 617 | ||
526 | @@ -674,4 +678,3 @@ | |||
527 | 674 | #: view:user.story:0 | 678 | #: view:user.story:0 |
528 | 675 | msgid "Sprint" | 679 | msgid "Sprint" |
529 | 676 | msgstr "" | 680 | msgstr "" |
530 | 677 | |||
531 | 678 | 681 | ||
532 | === modified file 'user_story/report/__init__.py' | |||
533 | --- user_story/report/__init__.py 2014-05-31 22:07:48 +0000 | |||
534 | +++ user_story/report/__init__.py 2014-08-12 14:42:57 +0000 | |||
535 | @@ -1,1 +1,2 @@ | |||
537 | 1 | import parse_report | 1 | #~ import parse_report |
538 | 2 | import user_story_report_mako | ||
539 | 2 | 3 | ||
540 | === modified file 'user_story/report/parse_report.py' | |||
541 | --- user_story/report/parse_report.py 2014-08-02 05:34:10 +0000 | |||
542 | +++ user_story/report/parse_report.py 2014-08-12 14:42:57 +0000 | |||
543 | @@ -36,9 +36,14 @@ | |||
544 | 36 | self.context = context | 36 | self.context = context |
545 | 37 | 37 | ||
546 | 38 | def _parse_html_field(self, data): | 38 | def _parse_html_field(self, data): |
550 | 39 | tree = html.fromstring(data) | 39 | if data: |
551 | 40 | text_data = tree.text_content() | 40 | data_str = data.encode('ascii', 'xmlcharrefreplace') |
552 | 41 | return text_data | 41 | data_str = data_str.replace('<br>', '\n') |
553 | 42 | root = html.fromstring(data_str) | ||
554 | 43 | text_data = html.tostring(root, encoding='unicode', method='text') | ||
555 | 44 | text_data = text_data.encode('ascii', 'xmlcharrefreplace') | ||
556 | 45 | return text_data | ||
557 | 46 | return '' | ||
558 | 42 | 47 | ||
559 | 43 | report_sxw.report_sxw('report.user.story.report', | 48 | report_sxw.report_sxw('report.user.story.report', |
560 | 44 | 'user.story', | 49 | 'user.story', |
561 | 45 | 50 | ||
562 | === added file 'user_story/report/user_story_report.mako' | |||
563 | --- user_story/report/user_story_report.mako 1970-01-01 00:00:00 +0000 | |||
564 | +++ user_story/report/user_story_report.mako 2014-08-12 14:42:57 +0000 | |||
565 | @@ -0,0 +1,59 @@ | |||
566 | 1 | <html> | ||
567 | 2 | <head> | ||
568 | 3 | <style type="text/css">${css}</style> | ||
569 | 4 | </head> | ||
570 | 5 | <body> | ||
571 | 6 | <% setLang(user.lang) %> | ||
572 | 7 | % for user.story in objects: | ||
573 | 8 | <table width="100%"> | ||
574 | 9 | <tr> | ||
575 | 10 | <th class="panel_bg_color_title">${_("User Story")}</th> | ||
576 | 11 | </tr> | ||
577 | 12 | <tr> | ||
578 | 13 | <td class="td_center"><h5><p class="td_margin">${user and user.story and user.story.name}</p></h5></td> | ||
579 | 14 | </tr> | ||
580 | 15 | </table> | ||
581 | 16 | <table width="100%"> | ||
582 | 17 | <tr> | ||
583 | 18 | <th class="th_center panel_bg_color_title">${_("Related Project")}</th> | ||
584 | 19 | <td class="panel_bg_color">${user and user.story and user.story.project_id and user.story.project_id.name}</td> | ||
585 | 20 | </tr> | ||
586 | 21 | <tr> | ||
587 | 22 | <th class="th_center panel_bg_color_title">${_("Owner")}</th> | ||
588 | 23 | <td class="panel_bg_color">${user and user.story and user.story.owner_id and user.story.owner_id.name}</td> | ||
589 | 24 | </tr> | ||
590 | 25 | <tr> | ||
591 | 26 | <th class="th_center panel_bg_color_title">${_("Planned Hours")}</th> | ||
592 | 27 | <td class="panel_bg_color">${user and user.story and user.story.planned_hours}</td> | ||
593 | 28 | </tr> | ||
594 | 29 | </table> | ||
595 | 30 | <p class="td_margin"></br></p> | ||
596 | 31 | <table width="100%"> | ||
597 | 32 | <tr> | ||
598 | 33 | <th class="panel_bg_color_title">${_("Description")}</th> | ||
599 | 34 | </tr> | ||
600 | 35 | <tr> | ||
601 | 36 | <td class="pre_description">${parse_html_field(user.story.description)}</td> | ||
602 | 37 | </tr> | ||
603 | 38 | </table> | ||
604 | 39 | <table width="100%"> | ||
605 | 40 | <tr> | ||
606 | 41 | <th class="panel_bg_color_title">${_("Acceptability Criterion")}</th> | ||
607 | 42 | </tr> | ||
608 | 43 | </table> | ||
609 | 44 | <table width="100%"> | ||
610 | 45 | <tr> | ||
611 | 46 | <th class="th_center panel_bg_color_title">${_("Name")}</th> | ||
612 | 47 | <th class="th_center panel_bg_color_title">${_("Scenario")}</th> | ||
613 | 48 | </tr> | ||
614 | 49 | % for criteria in (user and user.story and user.story.accep_crit_ids): | ||
615 | 50 | <tr> | ||
616 | 51 | <td class="panel_bg_color">${criteria.name}</td> | ||
617 | 52 | <td class="panel_bg_color">${criteria.scenario}</td> | ||
618 | 53 | </tr> | ||
619 | 54 | % endfor | ||
620 | 55 | </table> | ||
621 | 56 | <p style="page-break-before: always;"></p> | ||
622 | 57 | % endfor | ||
623 | 58 | </body> | ||
624 | 59 | </html> | ||
625 | 0 | 60 | ||
626 | === added file 'user_story/report/user_story_report_mako.py' | |||
627 | --- user_story/report/user_story_report_mako.py 1970-01-01 00:00:00 +0000 | |||
628 | +++ user_story/report/user_story_report_mako.py 2014-08-12 14:42:57 +0000 | |||
629 | @@ -0,0 +1,61 @@ | |||
630 | 1 | #!/usr/bin/python | ||
631 | 2 | # -*- encoding: utf-8 -*- | ||
632 | 3 | # | ||
633 | 4 | # Module Writen to OpenERP, Open Source Management Solution | ||
634 | 5 | # | ||
635 | 6 | # Copyright (c) 2014 Vauxoo - http://www.vauxoo.com/ | ||
636 | 7 | # All Rights Reserved. | ||
637 | 8 | # info Vauxoo (info@vauxoo.com) | ||
638 | 9 | # | ||
639 | 10 | # Coded by: vauxoo consultores (info@vauxoo.com) | ||
640 | 11 | # | ||
641 | 12 | # | ||
642 | 13 | # This program is free software: you can redistribute it and/or modify | ||
643 | 14 | # it under the terms of the GNU Affero General Public License as | ||
644 | 15 | # published by the Free Software Foundation, either version 3 of the | ||
645 | 16 | # License, or (at your option) any later version. | ||
646 | 17 | # | ||
647 | 18 | # This program is distributed in the hope that it will be useful, | ||
648 | 19 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
649 | 20 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
650 | 21 | # GNU Affero General Public License for more details. | ||
651 | 22 | # | ||
652 | 23 | # You should have received a copy of the GNU Affero General Public License | ||
653 | 24 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
654 | 25 | # | ||
655 | 26 | |||
656 | 27 | from openerp.osv import fields, osv | ||
657 | 28 | from openerp.tools.translate import _ | ||
658 | 29 | from report_webkit import webkit_report | ||
659 | 30 | from report import report_sxw | ||
660 | 31 | from lxml import html | ||
661 | 32 | import xml | ||
662 | 33 | |||
663 | 34 | class user_story_report(report_sxw.rml_parse): | ||
664 | 35 | |||
665 | 36 | def __init__(self, cr, uid, name, context=None): | ||
666 | 37 | if context is None: | ||
667 | 38 | context = {} | ||
668 | 39 | super(user_story_report, self).__init__( | ||
669 | 40 | cr, uid, name, context=context) | ||
670 | 41 | self.localcontext.update({ | ||
671 | 42 | 'parse_html_field' : self._parse_html_field, | ||
672 | 43 | }) | ||
673 | 44 | self.context = context | ||
674 | 45 | |||
675 | 46 | def _parse_html_field(self, data): | ||
676 | 47 | if data: | ||
677 | 48 | data_str = data.encode('ascii', 'xmlcharrefreplace') | ||
678 | 49 | data_str = data_str.replace('<br>', '\n') | ||
679 | 50 | root = html.fromstring(data_str) | ||
680 | 51 | text_data = html.tostring(root, encoding='unicode', method='text') | ||
681 | 52 | text_data = text_data.encode('ascii', 'xmlcharrefreplace') | ||
682 | 53 | return text_data | ||
683 | 54 | return '' | ||
684 | 55 | |||
685 | 56 | webkit_report.WebKitParser('report.user.story.report', | ||
686 | 57 | 'user.story', | ||
687 | 58 | 'addons/user_story/report/user_story_report.mako', | ||
688 | 59 | parser=user_story_report) | ||
689 | 60 | |||
690 | 61 | # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: | ||
691 | 0 | 62 | ||
692 | === added file 'user_story/report/user_story_report_view.xml' | |||
693 | --- user_story/report/user_story_report_view.xml 1970-01-01 00:00:00 +0000 | |||
694 | +++ user_story/report/user_story_report_view.xml 2014-08-12 14:42:57 +0000 | |||
695 | @@ -0,0 +1,21 @@ | |||
696 | 1 | <?xml version="1.0" encoding="UTF-8" ?> | ||
697 | 2 | <openerp> | ||
698 | 3 | <data> | ||
699 | 4 | <report auto="False" | ||
700 | 5 | id="user_story_report_webkit" | ||
701 | 6 | model="user.story" | ||
702 | 7 | name="user.story.report" | ||
703 | 8 | file="user_story/report/user_story_report.mako" | ||
704 | 9 | string="User Story Report" | ||
705 | 10 | report_type="webkit" | ||
706 | 11 | attachment_use="0" | ||
707 | 12 | attachment="" | ||
708 | 13 | menu="True"/> | ||
709 | 14 | <record id="property_sale_order_vauxoo_report_webkit" model="ir.property"> | ||
710 | 15 | <field name="name">webkit_header</field> | ||
711 | 16 | <field name="fields_id" ref="report_webkit.field_ir_act_report_xml_webkit_header"/> | ||
712 | 17 | <field eval="'ir.header_webkit,'+str(ref('user_story.ir_header_webkit_user_story_report'))" model="ir.header_webkit" name="value"/> | ||
713 | 18 | <field eval="'ir.actions.report.xml,'+str(ref('user_story.user_story_report_webkit'))" model="ir.actions.report.xml" name="res_id"/> | ||
714 | 19 | </record> | ||
715 | 20 | </data> | ||
716 | 21 | </openerp> |
@Sergio @Wicho
Pueden realizar las correcciones al reporte.