Merge lp:~camptocamp/contract-management/7.0-block-send-email-lep into lp:~contract-management-core-editors/contract-management/7.0
- 7.0-block-send-email-lep
- Merge into 7.0
Status: | Merged |
---|---|
Approved by: | Yannick Vaucher @ Camptocamp |
Approved revision: | 10 |
Merged at revision: | 8 |
Proposed branch: | lp:~camptocamp/contract-management/7.0-block-send-email-lep |
Merge into: | lp:~contract-management-core-editors/contract-management/7.0 |
Diff against target: |
659 lines (+571/-38) 5 files modified
analytic_hours_block/__openerp__.py (+1/-0) analytic_hours_block/hours_block.py (+41/-0) analytic_hours_block/hours_block_data.xml (+24/-0) analytic_hours_block/hours_block_view.xml (+45/-38) analytic_hours_block/i18n/analytic_hours_block.pot (+460/-0) |
To merge this branch: | bzr merge lp:~camptocamp/contract-management/7.0-block-send-email-lep |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Matthieu Dietrich @ camptocamp (community) | Approve | ||
Guewen Baconnier @ Camptocamp | Approve | ||
Pedro Manuel Baeza | Abstain | ||
Review via email: mp+200812@code.launchpad.net |
Commit message
Description of the change
- 9. By Leonardo Pistone
-
[add] analytic_
hours_block: pot file
Leonardo Pistone (lepistone) wrote : | # |
Pedro, I added the pot file.
Best
Guewen Baconnier @ Camptocamp (gbaconnier-c2c) wrote : | # |
l50ff it seems to me that it is dangerous to return a new action with the current context. I encountered subtle bugs because the active_ids, active_model etc are propagated to the new action when they shouldn't. I think it should just be a new dict.
Leonardo Pistone (lepistone) wrote : | # |
Thanks Guewen.
but what about lang, timezone..
Maybe I could pop out the active_* from ctx?
Guewen Baconnier @ Camptocamp (gbaconnier-c2c) wrote : | # |
The timezone and lang are automatically set from the user. When one click on a menu item, this is also what happens: the context is empty (or as defined in the action) and the user's configuration is set again.
Pedro Manuel Baeza (pedro.baeza) wrote : | # |
I can't review this module more than the check of the pot file for now, so I'm going to abstain to not disturb review status.
Regards.
- 10. By Leonardo Pistone
-
[imp] create a new context, as suggested by Guewen
Leonardo Pistone (lepistone) wrote : | # |
Good to know Guewen. Done.
Guewen Baconnier @ Camptocamp (gbaconnier-c2c) wrote : | # |
Thanks! LGTM
Matthieu Dietrich @ camptocamp (mdietrich-c2c) wrote : | # |
Hi Leonardo,
LGTM.
Matthieu Dietrich @ camptocamp (mdietrich-c2c) : | # |
Preview Diff
1 | === modified file 'analytic_hours_block/__openerp__.py' |
2 | --- analytic_hours_block/__openerp__.py 2012-12-17 14:42:58 +0000 |
3 | +++ analytic_hours_block/__openerp__.py 2014-01-31 14:46:22 +0000 |
4 | @@ -44,6 +44,7 @@ |
5 | ], |
6 | "data": [ |
7 | "hours_block_view.xml", |
8 | + "hours_block_data.xml", |
9 | "hours_block_menu.xml", |
10 | "report.xml", |
11 | "security/hours_block_security.xml", |
12 | |
13 | === modified file 'analytic_hours_block/hours_block.py' |
14 | --- analytic_hours_block/hours_block.py 2012-12-18 11:05:03 +0000 |
15 | +++ analytic_hours_block/hours_block.py 2014-01-31 14:46:22 +0000 |
16 | @@ -24,6 +24,7 @@ |
17 | |
18 | class AccountHoursBlock(orm.Model): |
19 | _name = "account.hours.block" |
20 | + _inherit = ['mail.thread'] |
21 | |
22 | def _get_last_action(self, cr, uid, ids, name, arg, context=None): |
23 | """ Return the last analytic line date for an invoice""" |
24 | @@ -163,6 +164,46 @@ |
25 | block_ids.update([inv.id for inv in invoice.account_hours_block_ids]) |
26 | return list(block_ids) |
27 | |
28 | + def action_send_block(self, cr, uid, ids, context=None): |
29 | + """Open a form to send by email. Return an action dict.""" |
30 | + |
31 | + assert len(ids) == 1, '''\ |
32 | + This option should only be used for a single ID at a time.''' |
33 | + |
34 | + ir_model_data = self.pool.get('ir.model.data') |
35 | + |
36 | + try: |
37 | + template_id = ir_model_data.get_object_reference( |
38 | + cr, uid, 'analytic_hours_block', 'email_template_hours_block' |
39 | + )[1] |
40 | + except ValueError: |
41 | + template_id = False |
42 | + |
43 | + try: |
44 | + compose_form_id = ir_model_data.get_object_reference( |
45 | + cr, uid, 'mail', 'email_compose_message_wizard_form' |
46 | + )[1] |
47 | + except ValueError: |
48 | + compose_form_id = False |
49 | + |
50 | + ctx = { |
51 | + 'default_model': self._name, |
52 | + 'default_res_id': ids[0], |
53 | + 'default_use_template': bool(template_id), |
54 | + 'default_template_id': template_id, |
55 | + 'default_composition_mode': 'comment', |
56 | + } |
57 | + return { |
58 | + 'type': 'ir.actions.act_window', |
59 | + 'view_type': 'form', |
60 | + 'view_mode': 'form', |
61 | + 'res_model': 'mail.compose.message', |
62 | + 'views': [(compose_form_id, 'form')], |
63 | + 'view_id': compose_form_id, |
64 | + 'target': 'new', |
65 | + 'context': ctx, |
66 | + } |
67 | + |
68 | _recompute_triggers = { |
69 | 'account.hours.block': (lambda self, cr, uid, ids, c=None: |
70 | ids, ['invoice_id', 'type'], 10), |
71 | |
72 | === added file 'analytic_hours_block/hours_block_data.xml' |
73 | --- analytic_hours_block/hours_block_data.xml 1970-01-01 00:00:00 +0000 |
74 | +++ analytic_hours_block/hours_block_data.xml 2014-01-31 14:46:22 +0000 |
75 | @@ -0,0 +1,24 @@ |
76 | +<?xml version="1.0" ?> |
77 | +<openerp> |
78 | + <!-- Mail template are declared in a NOUPDATE block |
79 | + so users can freely customize/delete them --> |
80 | + <data noupdate="1"> |
81 | + <record id="email_template_hours_block" model="email.template"> |
82 | + <field name="name">Hours Block - Send by Email</field> |
83 | + <field name="email_from">${(object.user_id.email or object.company_id.email or 'noreply@localhost')|safe}</field> |
84 | + <field name="subject">${object.company_id.name} Hours Block (Ref ${object.number or 'n/a'})</field> |
85 | + <field name="email_recipients">${object.partner_id.id}</field> |
86 | + <field name="model_id" ref="analytic_hours_block.model_account_hours_block"/> |
87 | + <field name="auto_delete" eval="True"/> |
88 | + <field name="report_template" ref="block_hours_report"/> |
89 | + <field name="report_name">Hours_Block_${(object.number or '').replace('/','_')}_${object.state == 'draft' and 'draft' or ''}</field> |
90 | + <field name="lang">${object.partner_id.lang}</field> |
91 | + <field name="body_html"><![CDATA[ |
92 | + <p>Hello ${object.partner_id.name},</p> |
93 | + |
94 | + <p>Please find attached your Hours Block Report.</p> |
95 | + <p>Best regards.</p> |
96 | + ]]></field> |
97 | + </record> |
98 | + </data> |
99 | +</openerp> |
100 | |
101 | === modified file 'analytic_hours_block/hours_block_view.xml' |
102 | --- analytic_hours_block/hours_block_view.xml 2012-12-18 08:46:36 +0000 |
103 | +++ analytic_hours_block/hours_block_view.xml 2014-01-31 14:46:22 +0000 |
104 | @@ -41,44 +41,51 @@ |
105 | <field name="model">account.hours.block</field> |
106 | <field name="arch" type="xml"> |
107 | <form string="Hours Blocks" version="7.0"> |
108 | - <sheet> |
109 | - <h1> |
110 | - <field name="invoice_id" placeholder="Choose an invoice..."/> |
111 | - <label for="type" string="Based on:" class="oe_inline"/> |
112 | - <field name="type" class="oe_inline"/> |
113 | - </h1> |
114 | - |
115 | - <group> |
116 | - <field name="last_action_date" /> |
117 | - <field name="close_date" /> |
118 | - </group> |
119 | - |
120 | - <group> |
121 | - <separator colspan="4" string="Hours Quantity / Amount"/> |
122 | - <field name="amount_hours_block" string="Bought"/> |
123 | - <field name="amount_hours_block_done" string="Used"/> |
124 | - <field name="amount_hours_block_delta" string="Difference"/> |
125 | - </group> |
126 | - |
127 | - <group> |
128 | - <separator colspan="4" string="Invoice's related information"/> |
129 | - <field name="date_invoice"/> |
130 | - <field name="name"/> |
131 | - <field name="number"/> |
132 | - <field name="partner_id" groups="base.group_user"/> |
133 | - <field name="user_id"/> |
134 | - <field name="company_id" groups="base.group_multi_company" widget="selection"/> |
135 | - |
136 | - <field name="journal_id" invisible="1"/> |
137 | - <field name="period_id" invisible="1" groups="account.group_account_user"/> |
138 | - |
139 | - <field name="currency_id"/> |
140 | - <newline/> |
141 | - <field name="residual" sum="Residual Amount"/> |
142 | - <field name="amount_total" sum="Total Amount"/> |
143 | - <field name="state"/> |
144 | - </group> |
145 | - </sheet> |
146 | + <header> |
147 | + <button name="action_send_block" type="object" string="Send by Email" class="oe_highlight"/> |
148 | + </header> |
149 | + <sheet> |
150 | + <h1> |
151 | + <field name="invoice_id" placeholder="Choose an invoice..."/> |
152 | + <label for="type" string="Based on:" class="oe_inline"/> |
153 | + <field name="type" class="oe_inline"/> |
154 | + </h1> |
155 | + |
156 | + <group> |
157 | + <field name="last_action_date" /> |
158 | + <field name="close_date" /> |
159 | + </group> |
160 | + |
161 | + <group> |
162 | + <separator colspan="4" string="Hours Quantity / Amount"/> |
163 | + <field name="amount_hours_block" string="Bought"/> |
164 | + <field name="amount_hours_block_done" string="Used"/> |
165 | + <field name="amount_hours_block_delta" string="Difference"/> |
166 | + </group> |
167 | + |
168 | + <group> |
169 | + <separator colspan="4" string="Invoice's related information"/> |
170 | + <field name="date_invoice"/> |
171 | + <field name="name"/> |
172 | + <field name="number"/> |
173 | + <field name="partner_id" groups="base.group_user"/> |
174 | + <field name="user_id"/> |
175 | + <field name="company_id" groups="base.group_multi_company" widget="selection"/> |
176 | + |
177 | + <field name="journal_id" invisible="1"/> |
178 | + <field name="period_id" invisible="1" groups="account.group_account_user"/> |
179 | + |
180 | + <field name="currency_id"/> |
181 | + <newline/> |
182 | + <field name="residual" sum="Residual Amount"/> |
183 | + <field name="amount_total" sum="Total Amount"/> |
184 | + <field name="state"/> |
185 | + </group> |
186 | + </sheet> |
187 | + <div class="oe_chatter"> |
188 | + <field name="message_follower_ids" widget="mail_followers"/> |
189 | + <field name="message_ids" widget="mail_thread"/> |
190 | + </div> |
191 | </form> |
192 | </field> |
193 | </record> |
194 | |
195 | === added directory 'analytic_hours_block/i18n' |
196 | === added file 'analytic_hours_block/i18n/analytic_hours_block.pot' |
197 | --- analytic_hours_block/i18n/analytic_hours_block.pot 1970-01-01 00:00:00 +0000 |
198 | +++ analytic_hours_block/i18n/analytic_hours_block.pot 2014-01-31 14:46:22 +0000 |
199 | @@ -0,0 +1,460 @@ |
200 | +# Translation of OpenERP Server. |
201 | +# This file contains the translation of the following modules: |
202 | +# * analytic_hours_block |
203 | +# |
204 | +msgid "" |
205 | +msgstr "" |
206 | +"Project-Id-Version: OpenERP Server 7.0\n" |
207 | +"Report-Msgid-Bugs-To: \n" |
208 | +"POT-Creation-Date: 2014-01-08 12:49+0000\n" |
209 | +"PO-Revision-Date: 2014-01-08 12:49+0000\n" |
210 | +"Last-Translator: <>\n" |
211 | +"Language-Team: \n" |
212 | +"MIME-Version: 1.0\n" |
213 | +"Content-Type: text/plain; charset=UTF-8\n" |
214 | +"Content-Transfer-Encoding: \n" |
215 | +"Plural-Forms: \n" |
216 | + |
217 | +#. module: analytic_hours_block |
218 | +#: report:account.hours.block:0 |
219 | +msgid "Maintenance And Support Summary" |
220 | +msgstr "" |
221 | + |
222 | +#. module: analytic_hours_block |
223 | +#: report:account.hours.block:0 |
224 | +msgid "Invoice Date:" |
225 | +msgstr "" |
226 | + |
227 | +#. module: analytic_hours_block |
228 | +#: view:account.hours.block:0 |
229 | +msgid "Group By..." |
230 | +msgstr "" |
231 | + |
232 | +#. module: analytic_hours_block |
233 | +#: view:account.hours.block:0 |
234 | +msgid "Bought" |
235 | +msgstr "" |
236 | + |
237 | +#. module: analytic_hours_block |
238 | +#: field:account.hours.block,close_date:0 |
239 | +msgid "Closed Date" |
240 | +msgstr "" |
241 | + |
242 | +#. module: analytic_hours_block |
243 | +#: field:account.hours.block,message_unread:0 |
244 | +msgid "Unread Messages" |
245 | +msgstr "" |
246 | + |
247 | +#. module: analytic_hours_block |
248 | +#: field:account.hours.block,company_id:0 |
249 | +msgid "Company" |
250 | +msgstr "" |
251 | + |
252 | +#. module: analytic_hours_block |
253 | +#: field:account.hours.block,date_invoice:0 |
254 | +msgid "Invoice Date" |
255 | +msgstr "" |
256 | + |
257 | +#. module: analytic_hours_block |
258 | +#: field:account.hours.block,residual:0 |
259 | +msgid "Residual" |
260 | +msgstr "" |
261 | + |
262 | +#. module: analytic_hours_block |
263 | +#: help:account.hours.block,amount_hours_block:0 |
264 | +msgid "Amount bought by the customer. This amount is expressed in the base Unit of Measure (factor=1.0)" |
265 | +msgstr "" |
266 | + |
267 | +#. module: analytic_hours_block |
268 | +#: view:account.hours.block:0 |
269 | +msgid "Based on:" |
270 | +msgstr "" |
271 | + |
272 | +#. module: analytic_hours_block |
273 | +#: field:account.hours.block,message_ids:0 |
274 | +msgid "Messages" |
275 | +msgstr "" |
276 | + |
277 | +#. module: analytic_hours_block |
278 | +#: selection:account.hours.block,type:0 |
279 | +msgid "Amount" |
280 | +msgstr "" |
281 | + |
282 | +#. module: analytic_hours_block |
283 | +#: selection:account.hours.block,state:0 |
284 | +msgid "Cancelled" |
285 | +msgstr "" |
286 | + |
287 | +#. module: analytic_hours_block |
288 | +#: help:account.hours.block,message_unread:0 |
289 | +msgid "If checked new messages require your attention." |
290 | +msgstr "" |
291 | + |
292 | +#. module: analytic_hours_block |
293 | +#: model:email.template,body_html:analytic_hours_block.email_template_hours_block |
294 | +msgid "\n" |
295 | +" Here is your Hours Block Report\n" |
296 | +" " |
297 | +msgstr "" |
298 | + |
299 | +#. module: analytic_hours_block |
300 | +#: view:account.hours.block:0 |
301 | +msgid "Hours Quantity / Amount" |
302 | +msgstr "" |
303 | + |
304 | +#. module: analytic_hours_block |
305 | +#: report:account.hours.block:0 |
306 | +msgid "Remaining hours:" |
307 | +msgstr "" |
308 | + |
309 | +#. module: analytic_hours_block |
310 | +#: report:account.hours.block:0 |
311 | +msgid "Quantity of hours bought:" |
312 | +msgstr "" |
313 | + |
314 | +#. module: analytic_hours_block |
315 | +#: help:account.hours.block,message_summary:0 |
316 | +msgid "Holds the Chatter summary (number of messages, ...). This summary is directly in html format in order to be inserted in kanban views." |
317 | +msgstr "" |
318 | + |
319 | +#. module: analytic_hours_block |
320 | +#: view:account.hours.block:0 |
321 | +msgid "Quantity of hours bought" |
322 | +msgstr "" |
323 | + |
324 | +#. module: analytic_hours_block |
325 | +#: view:account.hours.block:0 |
326 | +#: field:account.hours.block,partner_id:0 |
327 | +msgid "Partner" |
328 | +msgstr "" |
329 | + |
330 | +#. module: analytic_hours_block |
331 | +#: view:account.hours.block:0 |
332 | +msgid "Quantity of hours difference" |
333 | +msgstr "" |
334 | + |
335 | +#. module: analytic_hours_block |
336 | +#: field:account.hours.block,period_id:0 |
337 | +msgid "Period" |
338 | +msgstr "" |
339 | + |
340 | +#. module: analytic_hours_block |
341 | +#: field:account.hours.block,state:0 |
342 | +msgid "State" |
343 | +msgstr "" |
344 | + |
345 | +#. module: analytic_hours_block |
346 | +#: field:account.hours.block,message_follower_ids:0 |
347 | +msgid "Followers" |
348 | +msgstr "" |
349 | + |
350 | +#. module: analytic_hours_block |
351 | +#: view:account.hours.block:0 |
352 | +msgid "Send by Email" |
353 | +msgstr "" |
354 | + |
355 | +#. module: analytic_hours_block |
356 | +#: view:account.hours.block:0 |
357 | +msgid "All Running Hours Block" |
358 | +msgstr "" |
359 | + |
360 | +#. module: analytic_hours_block |
361 | +#: field:account.hours.block,last_action_date:0 |
362 | +msgid "Last action date" |
363 | +msgstr "" |
364 | + |
365 | +#. module: analytic_hours_block |
366 | +#: selection:account.hours.block,type:0 |
367 | +msgid "Hours" |
368 | +msgstr "" |
369 | + |
370 | +#. module: analytic_hours_block |
371 | +#: report:account.hours.block:0 |
372 | +msgid "Description:" |
373 | +msgstr "" |
374 | + |
375 | +#. module: analytic_hours_block |
376 | +#: help:account.hours.block,type:0 |
377 | +msgid "The block is based on the quantity of hours or on the amount." |
378 | +msgstr "" |
379 | + |
380 | +#. module: analytic_hours_block |
381 | +#: model:email.template,report_name:analytic_hours_block.email_template_hours_block |
382 | +msgid "Hours_Block_${(object.number or '').replace('/','_')}_${object.state == 'draft' and 'draft' or ''}" |
383 | +msgstr "" |
384 | + |
385 | +#. module: analytic_hours_block |
386 | +#: report:account.hours.block:0 |
387 | +msgid "Remaining amount:" |
388 | +msgstr "" |
389 | + |
390 | +#. module: analytic_hours_block |
391 | +#: model:ir.model,name:analytic_hours_block.model_account_hours_block |
392 | +msgid "account.hours.block" |
393 | +msgstr "" |
394 | + |
395 | +#. module: analytic_hours_block |
396 | +#: field:account.hours.block,amount_hours_block:0 |
397 | +msgid "Quantity / Amount bought" |
398 | +msgstr "" |
399 | + |
400 | +#. module: analytic_hours_block |
401 | +#: model:ir.actions.report.xml,name:analytic_hours_block.block_hours_report |
402 | +msgid "Block Hours State" |
403 | +msgstr "" |
404 | + |
405 | +#. module: analytic_hours_block |
406 | +#: view:account.hours.block:0 |
407 | +msgid "Choose an invoice..." |
408 | +msgstr "" |
409 | + |
410 | +#. module: analytic_hours_block |
411 | +#: selection:account.hours.block,state:0 |
412 | +msgid "Open" |
413 | +msgstr "" |
414 | + |
415 | +#. module: analytic_hours_block |
416 | +#: view:account.hours.block:0 |
417 | +msgid "My invoices" |
418 | +msgstr "" |
419 | + |
420 | +#. module: analytic_hours_block |
421 | +#: view:account.hours.block:0 |
422 | +msgid "Draft Hours Blocks" |
423 | +msgstr "" |
424 | + |
425 | +#. module: analytic_hours_block |
426 | +#: field:account.hours.block,currency_id:0 |
427 | +msgid "Currency" |
428 | +msgstr "" |
429 | + |
430 | +#. module: analytic_hours_block |
431 | +#: view:account.hours.block:0 |
432 | +#: field:account.hours.block,user_id:0 |
433 | +msgid "Salesman" |
434 | +msgstr "" |
435 | + |
436 | +#. module: analytic_hours_block |
437 | +#: view:account.hours.block:0 |
438 | +msgid "Quantity of hours used" |
439 | +msgstr "" |
440 | + |
441 | +#. module: analytic_hours_block |
442 | +#: view:account.hours.block:0 |
443 | +#: selection:account.hours.block,state:0 |
444 | +msgid "Draft" |
445 | +msgstr "" |
446 | + |
447 | +#. module: analytic_hours_block |
448 | +#: view:account.hours.block:0 |
449 | +#: model:ir.actions.act_window,name:analytic_hours_block.action_all_block_hour |
450 | +msgid "Hours Blocks" |
451 | +msgstr "" |
452 | + |
453 | +#. module: analytic_hours_block |
454 | +#: field:account.hours.block,type:0 |
455 | +msgid "Type of Block" |
456 | +msgstr "" |
457 | + |
458 | +#. module: analytic_hours_block |
459 | +#: view:account.hours.block:0 |
460 | +msgid "Used" |
461 | +msgstr "" |
462 | + |
463 | +#. module: analytic_hours_block |
464 | +#: view:account.hours.block:0 |
465 | +msgid "Total Amount" |
466 | +msgstr "" |
467 | + |
468 | +#. module: analytic_hours_block |
469 | +#: selection:account.hours.block,state:0 |
470 | +msgid "Paid" |
471 | +msgstr "" |
472 | + |
473 | +#. module: analytic_hours_block |
474 | +#: report:account.hours.block:0 |
475 | +msgid "Page" |
476 | +msgstr "" |
477 | + |
478 | +#. module: analytic_hours_block |
479 | +#: field:account.hours.block,message_is_follower:0 |
480 | +msgid "Is a Follower" |
481 | +msgstr "" |
482 | + |
483 | +#. module: analytic_hours_block |
484 | +#: report:account.hours.block:0 |
485 | +msgid "Date" |
486 | +msgstr "" |
487 | + |
488 | +#. module: analytic_hours_block |
489 | +#: field:account.invoice,account_hours_block_ids:0 |
490 | +#: model:ir.actions.act_window,name:analytic_hours_block.act_hours_block_from_invoice |
491 | +#: model:ir.ui.menu,name:analytic_hours_block.action_all_block_hour_account |
492 | +msgid "Hours Block" |
493 | +msgstr "" |
494 | + |
495 | +#. module: analytic_hours_block |
496 | +#: help:account.hours.block,last_action_date:0 |
497 | +msgid "Date of the last analytic line linked to the invoice related to this block hours." |
498 | +msgstr "" |
499 | + |
500 | +#. module: analytic_hours_block |
501 | +#: report:account.hours.block:0 |
502 | +msgid "Report Date:" |
503 | +msgstr "" |
504 | + |
505 | +#. module: analytic_hours_block |
506 | +#: model:email.template,subject:analytic_hours_block.email_template_hours_block |
507 | +msgid "${object.company_id.name} Hours Block (Ref ${object.number or 'n/a'})" |
508 | +msgstr "" |
509 | + |
510 | +#. module: analytic_hours_block |
511 | +#: view:account.hours.block:0 |
512 | +msgid "Invoice's related information" |
513 | +msgstr "" |
514 | + |
515 | +#. module: analytic_hours_block |
516 | +#: view:account.hours.block:0 |
517 | +msgid "Search Invoice" |
518 | +msgstr "" |
519 | + |
520 | +#. module: analytic_hours_block |
521 | +#: report:account.hours.block:0 |
522 | +msgid "Quantity" |
523 | +msgstr "" |
524 | + |
525 | +#. module: analytic_hours_block |
526 | +#: help:account.hours.block,amount_hours_block_delta:0 |
527 | +msgid "Difference between bought and used. This amount is expressed in the base Unit of Measure (factor=1.0)" |
528 | +msgstr "" |
529 | + |
530 | +#. module: analytic_hours_block |
531 | +#: report:account.hours.block:0 |
532 | +msgid "0.6cm 27.9cm 20.3cm 27.9cm" |
533 | +msgstr "" |
534 | + |
535 | +#. module: analytic_hours_block |
536 | +#: view:account.hours.block:0 |
537 | +msgid "Residual Amount" |
538 | +msgstr "" |
539 | + |
540 | +#. module: analytic_hours_block |
541 | +#: view:account.hours.block:0 |
542 | +msgid "Overdue Hours Block" |
543 | +msgstr "" |
544 | + |
545 | +#. module: analytic_hours_block |
546 | +#: report:account.hours.block:0 |
547 | +msgid "Amount used:" |
548 | +msgstr "" |
549 | + |
550 | +#. module: analytic_hours_block |
551 | +#: field:account.hours.block,number:0 |
552 | +msgid "Number" |
553 | +msgstr "" |
554 | + |
555 | +#. module: analytic_hours_block |
556 | +#: view:account.hours.block:0 |
557 | +#: field:account.hours.block,invoice_id:0 |
558 | +#: model:ir.actions.act_window,name:analytic_hours_block.act_invoice_from_hours_block |
559 | +#: model:ir.model,name:analytic_hours_block.model_account_invoice |
560 | +msgid "Invoice" |
561 | +msgstr "" |
562 | + |
563 | +#. module: analytic_hours_block |
564 | +#: selection:account.hours.block,state:0 |
565 | +msgid "Pro-forma" |
566 | +msgstr "" |
567 | + |
568 | +#. module: analytic_hours_block |
569 | +#: view:account.hours.block:0 |
570 | +msgid "Responsible" |
571 | +msgstr "" |
572 | + |
573 | +#. module: analytic_hours_block |
574 | +#: report:account.hours.block:0 |
575 | +#: field:account.hours.block,name:0 |
576 | +msgid "Description" |
577 | +msgstr "" |
578 | + |
579 | +#. module: analytic_hours_block |
580 | +#: report:account.hours.block:0 |
581 | +msgid "Amount bought:" |
582 | +msgstr "" |
583 | + |
584 | +#. module: analytic_hours_block |
585 | +#: help:account.hours.block,amount_hours_block_done:0 |
586 | +msgid "Amount done by the staff. This amount is expressed in the base Unit of Measure (factor=1.0)" |
587 | +msgstr "" |
588 | + |
589 | +#. module: analytic_hours_block |
590 | +#: report:account.hours.block:0 |
591 | +msgid "Quantity of hours used:" |
592 | +msgstr "" |
593 | + |
594 | +#. module: analytic_hours_block |
595 | +#: report:account.hours.block:0 |
596 | +msgid "Invoicing" |
597 | +msgstr "" |
598 | + |
599 | +#. module: analytic_hours_block |
600 | +#: field:account.hours.block,amount_hours_block_done:0 |
601 | +msgid "Quantity / Amount used" |
602 | +msgstr "" |
603 | + |
604 | +#. module: analytic_hours_block |
605 | +#: field:account.hours.block,journal_id:0 |
606 | +msgid "Journal" |
607 | +msgstr "" |
608 | + |
609 | +#. module: analytic_hours_block |
610 | +#: view:account.hours.block:0 |
611 | +msgid "Running" |
612 | +msgstr "" |
613 | + |
614 | +#. module: analytic_hours_block |
615 | +#: view:account.hours.block:0 |
616 | +#: field:account.hours.block,amount_hours_block_delta:0 |
617 | +msgid "Difference" |
618 | +msgstr "" |
619 | + |
620 | +#. module: analytic_hours_block |
621 | +#: model:ir.actions.act_window,name:analytic_hours_block.act_block_hour_from_partner |
622 | +msgid "All blocks hours" |
623 | +msgstr "" |
624 | + |
625 | +#. module: analytic_hours_block |
626 | +#: report:account.hours.block:0 |
627 | +msgid "Deduced" |
628 | +msgstr "" |
629 | + |
630 | +#. module: analytic_hours_block |
631 | +#: model:ir.actions.act_window,name:analytic_hours_block.act_analytic_lines_from_hours_block |
632 | +msgid "Analytic Lines" |
633 | +msgstr "" |
634 | + |
635 | +#. module: analytic_hours_block |
636 | +#: view:account.hours.block:0 |
637 | +msgid "Invoice State" |
638 | +msgstr "" |
639 | + |
640 | +#. module: analytic_hours_block |
641 | +#: field:account.hours.block,message_summary:0 |
642 | +msgid "Summary" |
643 | +msgstr "" |
644 | + |
645 | +#. module: analytic_hours_block |
646 | +#: help:account.hours.block,message_ids:0 |
647 | +msgid "Messages and communication history" |
648 | +msgstr "" |
649 | + |
650 | +#. module: analytic_hours_block |
651 | +#: view:account.hours.block:0 |
652 | +msgid "Overdue" |
653 | +msgstr "" |
654 | + |
655 | +#. module: analytic_hours_block |
656 | +#: field:account.hours.block,amount_total:0 |
657 | +msgid "Total" |
658 | +msgstr "" |
659 | + |
Hi, Leonardo, very appreciated the improvement!
Could you please add updated translation template to allow translation of the mail?
Regards.