diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py index b01fc974bef..b37118c3baa 100644 --- a/addons/account/account_invoice.py +++ b/addons/account/account_invoice.py @@ -983,13 +983,13 @@ class account_invoice(osv.osv): for i in line: i[2]['period_id'] = period_id + ctx.update(invoice=inv) move_id = move_obj.create(cr, uid, move, context=ctx) new_move_name = move_obj.browse(cr, uid, move_id, context=ctx).name # make the invoice point to that move self.write(cr, uid, [inv.id], {'move_id': move_id,'period_id':period_id, 'move_name':new_move_name}, context=ctx) # Pass invoice in context in method post: used if you want to get the same # account move reference when creating the same invoice after a cancelled one: - ctx.update({'invoice':inv}) move_obj.post(cr, uid, [move_id], context=ctx) self._log_event(cr, uid, ids) return True diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py index 9012b930641..3ca45a1dd80 100644 --- a/addons/account/account_move_line.py +++ b/addons/account/account_move_line.py @@ -208,7 +208,7 @@ class account_move_line(osv.osv): if type(period_id) == str: ids = period_obj.search(cr, uid, [('name', 'ilike', period_id)]) context.update({ - 'period_id': ids[0] + 'period_id': ids and ids[0] or False }) return context @@ -917,7 +917,7 @@ class account_move_line(osv.osv): if lines and lines[0]: partner_id = lines[0].partner_id and lines[0].partner_id.id or False - if not partner_obj.has_something_to_reconcile(cr, uid, partner_id, context=context): + if partner_id and not partner_obj.has_something_to_reconcile(cr, uid, partner_id, context=context): partner_obj.mark_as_reconciled(cr, uid, [partner_id], context=context) return r_id diff --git a/addons/account/account_report.xml b/addons/account/account_report.xml index d258bb0b140..0017409f416 100644 --- a/addons/account/account_report.xml +++ b/addons/account/account_report.xml @@ -41,13 +41,5 @@ groups="group_account_user,group_account_manager" parent="account.menu_finance_generic_reporting" sequence="3"/> - - diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml index 1c7c268e905..4ef50a3a62d 100644 --- a/addons/account/account_view.xml +++ b/addons/account/account_view.xml @@ -306,7 +306,7 @@ Unrealized Gain or Loss account.account - + @@ -2159,7 +2159,8 @@ - + + diff --git a/addons/account/partner_view.xml b/addons/account/partner_view.xml index 4bee2002ffd..d17f8c18eee 100644 --- a/addons/account/partner_view.xml +++ b/addons/account/partner_view.xml @@ -6,7 +6,7 @@ account.fiscal.position.form account.fiscal.position -
+ @@ -114,7 +114,7 @@ context="{'search_default_partner_id':[active_id], 'default_partner_id': active_id}" src_model="res.partner" view_type="form" - view_mode="tree,form,calendar"/> + view_mode="tree,form"/> diff --git a/addons/account/report/account_financial_report.rml b/addons/account/report/account_financial_report.rml index 6f0ddd0d625..1ee8d5b1858 100644 --- a/addons/account/report/account_financial_report.rml +++ b/addons/account/report/account_financial_report.rml @@ -170,12 +170,12 @@ Chart of Accounts Fiscal Year - Filter By [[ get_filter(data)!='No Filter' and get_filter(data) ]] + Filter By [[ get_filter(data)!='No Filters' and get_filter(data) ]] [[ get_account(data) or removeParentNode('para') ]] [[ get_fiscalyear(data) or '' ]] - [[ get_filter(data)=='No Filter' and get_filter(data) or removeParentNode('para') ]] + [[ get_filter(data)=='No Filters' and get_filter(data) or removeParentNode('para') ]] [[ get_filter(data)=='Date' or removeParentNode('blockTable') ]] Start Date diff --git a/addons/account/report/account_general_ledger.py b/addons/account/report/account_general_ledger.py index 294c7fa99cf..38f2392f740 100644 --- a/addons/account/report/account_general_ledger.py +++ b/addons/account/report/account_general_ledger.py @@ -299,10 +299,10 @@ class general_ledger(report_sxw.rml_parse, common_report_header): def _get_sortby(self, data): if self.sortby == 'sort_date': - return 'Date' + return self._translate('Date') elif self.sortby == 'sort_journal_partner': - return 'Journal & Partner' - return 'Date' + return self._translate('Journal & Partner') + return self._translate('Date') report_sxw.report_sxw('report.account.general.ledger', 'account.account', 'addons/account/report/account_general_ledger.rml', parser=general_ledger, header='internal') report_sxw.report_sxw('report.account.general.ledger_landscape', 'account.account', 'addons/account/report/account_general_ledger_landscape.rml', parser=general_ledger, header='internal landscape') diff --git a/addons/account/report/common_report_header.py b/addons/account/report/common_report_header.py index c93c3e02ee3..c5719d98b96 100644 --- a/addons/account/report/common_report_header.py +++ b/addons/account/report/common_report_header.py @@ -94,10 +94,10 @@ class common_report_header(object): def _get_filter(self, data): if data.get('form', False) and data['form'].get('filter', False): if data['form']['filter'] == 'filter_date': - return 'Date' + return self._translate('Date') elif data['form']['filter'] == 'filter_period': - return 'Periods' - return 'No Filter' + return self._translate('Periods') + return self._translate('No Filters') def _sum_debit_period(self, period_id, journal_id=None): journals = journal_id or self.journal_ids diff --git a/addons/account/wizard/account_fiscalyear_close.py b/addons/account/wizard/account_fiscalyear_close.py index 196c14d3792..dbf815d5218 100644 --- a/addons/account/wizard/account_fiscalyear_close.py +++ b/addons/account/wizard/account_fiscalyear_close.py @@ -226,7 +226,7 @@ class account_fiscalyear_close(osv.osv_memory): for account in obj_acc_account.browse(cr, uid, account_ids, context={'fiscalyear': fy_id}): balance_in_currency = 0.0 if account.currency_id: - cr.execute('SELECT sum(amount_currency) as balance_in_currency FROM account_move_line ' \ + cr.execute('SELECT sum(COALESCE(amount_currency,0.0)) as balance_in_currency FROM account_move_line ' \ 'WHERE account_id = %s ' \ 'AND ' + query_line + ' ' \ 'AND currency_id = %s', (account.id, account.currency_id.id)) diff --git a/addons/account/wizard/account_report_common.py b/addons/account/wizard/account_report_common.py index 9acc09e9026..eea0650b6ff 100644 --- a/addons/account/wizard/account_report_common.py +++ b/addons/account/wizard/account_report_common.py @@ -119,7 +119,11 @@ class account_common_report(osv.osv_memory): def _get_fiscalyear(self, cr, uid, context=None): now = time.strftime('%Y-%m-%d') - fiscalyears = self.pool.get('account.fiscalyear').search(cr, uid, [('date_start', '<', now), ('date_stop', '>', now)], limit=1 ) + company_id = None + ids = context.get('active_ids', []) + for wiz in self.browse(cr, uid, ids, context=context): + company_id = wiz.company_id + fiscalyears = self.pool.get('account.fiscalyear').search(cr, uid, [('date_start', '<', now), ('date_stop', '>', now), ('company_id', '=', company_id)], limit=1 ) return fiscalyears and fiscalyears[0] or False def _get_all_journal(self, cr, uid, context=None): diff --git a/addons/account_analytic_plans/account_analytic_plans_view.xml b/addons/account_analytic_plans/account_analytic_plans_view.xml index 76d6aeed7b8..0b0142ef223 100644 --- a/addons/account_analytic_plans/account_analytic_plans_view.xml +++ b/addons/account_analytic_plans/account_analytic_plans_view.xml @@ -21,17 +21,17 @@ - + - + - + diff --git a/addons/account_anglo_saxon/invoice.py b/addons/account_anglo_saxon/invoice.py index 693283b870b..26271015b7e 100644 --- a/addons/account_anglo_saxon/invoice.py +++ b/addons/account_anglo_saxon/invoice.py @@ -40,7 +40,7 @@ class account_invoice_line(osv.osv): if inv.type in ('out_invoice','out_refund'): for i_line in inv.invoice_line: - if i_line.product_id: + if i_line.product_id and i_line.product_id.valuation == 'real_time': if inv.type == 'out_invoice': # debit account dacc will be the output account # first check the product, if empty check the category @@ -87,7 +87,7 @@ class account_invoice_line(osv.osv): }) elif inv.type in ('in_invoice','in_refund'): for i_line in inv.invoice_line: - if i_line.product_id: + if i_line.product_id and i_line.product_id.valuation == 'real_time': if i_line.product_id.type != 'service': # get the price difference account at the product acc = i_line.product_id.property_account_creditor_price_difference and i_line.product_id.property_account_creditor_price_difference.id diff --git a/addons/account_check_writing/i18n/es.po b/addons/account_check_writing/i18n/es.po index 81932642524..c473e077210 100644 --- a/addons/account_check_writing/i18n/es.po +++ b/addons/account_check_writing/i18n/es.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-02-09 19:28+0000\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2012-11-09 12:09+0000\n" +"Last-Translator: Pedro Manuel Baeza \n" "Language-Team: Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-10-30 05:36+0000\n" -"X-Generator: Launchpad (build 16206)\n" +"X-Launchpad-Export-Date: 2012-11-10 04:59+0000\n" +"X-Generator: Launchpad (build 16251)\n" #. module: account_check_writing #: selection:res.company,check_layout:0 @@ -154,7 +154,7 @@ msgstr "Compañías" #. module: account_check_writing #: view:res.company:0 msgid "Default Check Layout" -msgstr "" +msgstr "Comprobar formato por defecto" #. module: account_check_writing #: constraint:account.journal:0 diff --git a/addons/account_sequence/account_sequence_data.xml b/addons/account_sequence/account_sequence_data.xml index 1ad362b3979..b2d40412d0d 100644 --- a/addons/account_sequence/account_sequence_data.xml +++ b/addons/account_sequence/account_sequence_data.xml @@ -43,6 +43,18 @@ + + Account Journal + account.journal + + + + Account journal sequence + account.journal + AJ + + + diff --git a/addons/account_voucher/account_voucher.py b/addons/account_voucher/account_voucher.py index 8bd9a48b1f4..650496e110e 100644 --- a/addons/account_voucher/account_voucher.py +++ b/addons/account_voucher/account_voucher.py @@ -953,6 +953,9 @@ class account_voucher(osv.osv): if voucher_brw.number: name = voucher_brw.number elif voucher_brw.journal_id.sequence_id: + if not voucher_brw.journal_id.sequence_id.active: + raise osv.except_osv(_('Configuration Error !'), + _('Please activate the sequence of selected journal !')) name = seq_obj.next_by_id(cr, uid, voucher_brw.journal_id.sequence_id.id, context=context) else: raise osv.except_osv(_('Error!'), diff --git a/addons/account_voucher/voucher_payment_receipt_view.xml b/addons/account_voucher/voucher_payment_receipt_view.xml index 881a5e38f1c..5eb98162d5f 100644 --- a/addons/account_voucher/voucher_payment_receipt_view.xml +++ b/addons/account_voucher/voucher_payment_receipt_view.xml @@ -54,6 +54,8 @@ + + account.voucher form [('journal_id.type', 'in', ['bank', 'cash']), ('type','=','receipt'), ('partner_id','=',partner_id)] - {'type':'receipt', 'partner_id': partner_id, 'default_reference':reference} + {'default_type':'receipt', 'type':'receipt', 'partner_id': partner_id, 'default_reference':reference} current diff --git a/addons/analytic/analytic.py b/addons/analytic/analytic.py index 78c7e103946..1c9a095d6ed 100644 --- a/addons/analytic/analytic.py +++ b/addons/analytic/analytic.py @@ -98,6 +98,10 @@ class account_analytic_account(osv.osv): def name_get(self, cr, uid, ids, context=None): res = [] + if not ids: + return res + if isinstance(ids, (int, long)): + ids = [ids] for id in ids: elmt = self.browse(cr, uid, id, context=context) res.append((id, self._get_one_full_name(elmt))) diff --git a/addons/audittrail/audittrail.py b/addons/audittrail/audittrail.py index 9232a696da8..45ab0c4fbb1 100644 --- a/addons/audittrail/audittrail.py +++ b/addons/audittrail/audittrail.py @@ -388,6 +388,8 @@ class audittrail_objects_proxy(object_proxy): } # loop on all the fields for field_name, field_definition in pool.get(model.model)._all_columns.items(): + if field_name in ('__last_update', 'id'): + continue #if the field_list param is given, skip all the fields not in that list if field_list and field_name not in field_list: continue diff --git a/addons/audittrail/audittrail_view.xml b/addons/audittrail/audittrail_view.xml index c26e1b5b570..5d5bdcc6c21 100644 --- a/addons/audittrail/audittrail_view.xml +++ b/addons/audittrail/audittrail_view.xml @@ -99,7 +99,7 @@ - diff --git a/addons/base_action_rule/i18n/es.po b/addons/base_action_rule/i18n/es.po index ae917d28ca1..5efae77d99b 100644 --- a/addons/base_action_rule/i18n/es.po +++ b/addons/base_action_rule/i18n/es.po @@ -8,15 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-05-10 17:24+0000\n" -"Last-Translator: Jordi Esteve (www.zikzakmedia.com) " -"\n" +"PO-Revision-Date: 2012-11-09 12:09+0000\n" +"Last-Translator: Pedro Manuel Baeza \n" "Language-Team: Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-10-30 05:32+0000\n" -"X-Generator: Launchpad (build 16206)\n" +"X-Launchpad-Export-Date: 2012-11-10 04:59+0000\n" +"X-Generator: Launchpad (build 16251)\n" #. module: base_action_rule #: help:base.action.rule,act_mail_to_user:0 @@ -340,7 +339,7 @@ msgstr "Activo" #: code:addons/base_action_rule/base_action_rule.py:329 #, python-format msgid "No Email ID Found for your Company address!" -msgstr "" +msgstr "¡No se ha encontrado Id del e-mail para la dirección de su compañía!" #. module: base_action_rule #: field:base.action.rule,act_remind_user:0 diff --git a/addons/crm/i18n/es.po b/addons/crm/i18n/es.po index fe2f139f682..a72a6ec2305 100644 --- a/addons/crm/i18n/es.po +++ b/addons/crm/i18n/es.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-02-10 17:48+0000\n" -"Last-Translator: Carlos Ch. \n" +"PO-Revision-Date: 2012-11-09 12:10+0000\n" +"Last-Translator: Pedro Manuel Baeza \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-10-30 04:57+0000\n" -"X-Generator: Launchpad (build 16206)\n" +"X-Launchpad-Export-Date: 2012-11-10 04:59+0000\n" +"X-Generator: Launchpad (build 16251)\n" #. module: crm #: view:crm.lead.report:0 @@ -172,7 +172,7 @@ msgstr "Mes esperado de cierre" #. module: crm #: view:crm.lead2opportunity.partner.mass:0 msgid "Assigned Opportunities to" -msgstr "" +msgstr "Oportunidades asignadas a" #. module: crm #: view:crm.lead:0 field:crm.lead,partner_id:0 view:crm.lead.report:0 @@ -598,7 +598,7 @@ msgstr "Fecha de fin" #. module: crm #: view:crm.opportunity2phonecall:0 view:crm.phonecall2phonecall:0 msgid "Schedule/Log a Call" -msgstr "" +msgstr "Planificar/Registrar una llamada" #. module: crm #: constraint:base.action.rule:0 @@ -792,7 +792,7 @@ msgstr "Siguiente" #. module: crm #: field:crm.segmentation,som_interval:0 msgid "Days per Period" -msgstr "" +msgstr "Días por periodo" #. module: crm #: field:crm.meeting,byday:0 @@ -959,7 +959,7 @@ msgstr "Días para abrir" #. module: crm #: view:crm.meeting:0 msgid "Show Time as" -msgstr "" +msgstr "Mostrar hora como" #. module: crm #: view:crm.phonecall2partner:0 @@ -1342,7 +1342,7 @@ msgstr "Fecha escritura" #. module: crm #: view:crm.meeting:0 msgid "End of Recurrency" -msgstr "" +msgstr "Fin de recurrencia" #. module: crm #: view:crm.meeting:0 @@ -1392,6 +1392,12 @@ msgid "" " \n" "If the call needs to be done then the state is set to 'Not Held'." msgstr "" +"El estado se establece a 'Para hacer' cuando se crea el caso.\n" +"Si es caso está en marcha, el estado se establece a 'Abierto.\n" +"Cuando la llamada se termina, el estado se establece en 'Realizada'. " +" \n" +"Si la llamada está pendiente de ser realizada, entonces el estado se " +"establece en 'Pendiente'." #. module: crm #: selection:crm.meeting,week_list:0 @@ -1449,7 +1455,7 @@ msgstr "Oportunidades por categorías" #. module: crm #: model:crm.case.section,name:crm.section_sales_marketing_department msgid "Sales Marketing Department" -msgstr "" +msgstr "Departamento de ventas y marketing" #. module: crm #: view:crm.phonecall.report:0 @@ -1900,7 +1906,7 @@ msgstr "Responder a" #. module: crm #: view:crm.case.section:0 msgid "Select Stages for this Sales Team" -msgstr "" +msgstr "Seleccione etapas para este equipo de ventas" #. module: crm #: view:board.board:0 @@ -2015,7 +2021,7 @@ msgstr "Ubicación" #. module: crm #: model:ir.model,name:crm.model_crm_lead2opportunity_partner_mass msgid "Mass Lead To Opportunity Partner" -msgstr "" +msgstr "Transformación masiva de iniciativa a oportunidad" #. module: crm #: view:crm.lead:0 @@ -2777,7 +2783,7 @@ msgstr "e-mail del contacto" #. module: crm #: field:crm.lead,referred:0 msgid "Referred by" -msgstr "" +msgstr "Referido por" #. module: crm #: view:crm.lead:0 model:ir.model,name:crm.model_crm_add_note @@ -3541,7 +3547,7 @@ msgstr "Nuevas oportunidades" #: code:addons/crm/crm_action_rule.py:61 #, python-format msgid "No E-Mail Found for your Company address!" -msgstr "" +msgstr "No se encontró dirección de e-mail para el contacto de su compañía" #. module: crm #: field:crm.lead.report,email:0 @@ -3561,7 +3567,7 @@ msgstr "Oportunidades por usuario y equipo" #. module: crm #: view:crm.phonecall:0 msgid "Reset to Todo" -msgstr "" +msgstr "Cambiar a 'Para hacer'" #. module: crm #: field:crm.case.section,working_hours:0 @@ -3643,6 +3649,10 @@ msgid "" "partner. From the phone call form, you can trigger a request for another " "call, a meeting or an opportunity." msgstr "" +"Esta herramienta permite registrar sus llamadas entrantes sobre la marcha. " +"Cada llamada que recibe aparecerá en el formulario de la empresa para trazar " +"cada contacto que tiene con una empresa. Desde el formulario de llamadas, " +"puede lanzar una petición para otra llamada, una reunión u oportunidad." #. module: crm #: selection:crm.lead.report,creation_month:0 @@ -3673,6 +3683,10 @@ msgid "" "channels that will be maintained at the creation of a document in the " "system. Some examples of channels can be: Website, Phone Call, Reseller, etc." msgstr "" +"Controle el origen de sus iniciativas y oportunidades de venta mediante la " +"creación de canales específicos que se usarán en la creación de documentos " +"en el sistema. Algunos ejemplos de canales son: Sitio web, llamada " +"telefónica, distribuidores, ..." #. module: crm #: selection:crm.lead2opportunity.partner,name:0 @@ -3740,7 +3754,7 @@ msgstr "Año" #. module: crm #: constraint:res.partner:0 msgid "Error ! You cannot create recursive associated members." -msgstr "" +msgstr "¡Error! No puede crear miembros asociados recursivamente." #. module: crm #: model:crm.case.resource.type,name:crm.type_lead8 diff --git a/addons/crm/report/crm_phonecall_report_view.xml b/addons/crm/report/crm_phonecall_report_view.xml index a2120aef6ab..1f1a4f91046 100644 --- a/addons/crm/report/crm_phonecall_report_view.xml +++ b/addons/crm/report/crm_phonecall_report_view.xml @@ -91,7 +91,7 @@ crm.phonecall.report form tree,graph - {"search_default_year":1,"search_default_User":1,"search_default_This Month":1,'group_by_no_leaf':1,'group_by':[]} + {"search_default_year":1,"search_default_Salesperson":1,"search_default_This Month":1,'group_by_no_leaf':1,'group_by':[]} From this report, you can analyse the performance of your sales team, based on their phone calls. You can group or filter the information according to several criteria and drill down the information, by adding more groups in the report. diff --git a/addons/crm_claim/crm_claim.py b/addons/crm_claim/crm_claim.py index e4d5f5999cb..8308e5420d0 100644 --- a/addons/crm_claim/crm_claim.py +++ b/addons/crm_claim/crm_claim.py @@ -105,7 +105,7 @@ class crm_claim(base_stage, osv.osv): 'email_from': fields.char('Email', size=128, help="Destination email for email gateway."), 'partner_phone': fields.char('Phone', size=32), 'stage_id': fields.many2one ('crm.claim.stage', 'Stage', - domain="['|', ('section_ids', '=', section_id), ('case_default', '=', True)]"), + domain="['&',('fold', '=', False),'|', ('section_ids', '=', section_id), ('case_default', '=', True)]"), 'cause': fields.text('Root Cause'), 'state': fields.related('stage_id', 'state', type="selection", store=True, selection=crm.AVAILABLE_STATES, string="Status", readonly=True, diff --git a/addons/crm_claim/crm_claim_data.xml b/addons/crm_claim/crm_claim_data.xml index 33bd280c364..ed0558f72e9 100644 --- a/addons/crm_claim/crm_claim_data.xml +++ b/addons/crm_claim/crm_claim_data.xml @@ -43,38 +43,32 @@ --> - Draft claim + New draft 26 - Actions Defined + In Progress open 27 - Actions Done + Settled done 28 - Refused - done + Rejected + cancel 29 - - Cancelled - cancel - 30 - - - + diff --git a/addons/crm_claim/crm_claim_view.xml b/addons/crm_claim/crm_claim_view.xml index 2b5ca4b1556..aa4243a6838 100644 --- a/addons/crm_claim/crm_claim_view.xml +++ b/addons/crm_claim/crm_claim_view.xml @@ -102,16 +102,11 @@
-
diff --git a/addons/crm_partner_assign/i18n/es.po b/addons/crm_partner_assign/i18n/es.po index 1f1fb3dee6f..4f6521a6421 100644 --- a/addons/crm_partner_assign/i18n/es.po +++ b/addons/crm_partner_assign/i18n/es.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2011-01-16 17:13+0000\n" -"Last-Translator: mgaja (GrupoIsep.com) \n" +"PO-Revision-Date: 2012-11-09 12:10+0000\n" +"Last-Translator: Pedro Manuel Baeza \n" "Language-Team: Spanish \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-10-30 05:33+0000\n" -"X-Generator: Launchpad (build 16206)\n" +"X-Launchpad-Export-Date: 2012-11-10 04:59+0000\n" +"X-Generator: Launchpad (build 16251)\n" #. module: crm_partner_assign #: field:crm.lead.forward.to.partner,send_to:0 @@ -25,12 +25,12 @@ msgstr "Enviar a" #. module: crm_partner_assign #: field:crm.lead.forward.to.partner,subtype:0 msgid "Message type" -msgstr "" +msgstr "Tipo de mensaje" #. module: crm_partner_assign #: help:crm.lead.forward.to.partner,auto_delete:0 msgid "Permanently delete emails after sending" -msgstr "" +msgstr "Eliminar permanentemente los emails depués de su envío" #. module: crm_partner_assign #: field:crm.lead.report.assign,delay_close:0 @@ -40,7 +40,7 @@ msgstr "Retraso para cerrar" #. module: crm_partner_assign #: help:crm.lead.forward.to.partner,email_to:0 msgid "Message recipients" -msgstr "" +msgstr "Destinatarios del mensaje" #. module: crm_partner_assign #: field:crm.lead.report.assign,planned_revenue:0 @@ -61,7 +61,7 @@ msgstr "Agrupar por..." #. module: crm_partner_assign #: field:crm.lead.forward.to.partner,template_id:0 msgid "Template" -msgstr "" +msgstr "Plantilla" #. module: crm_partner_assign #: view:crm.lead:0 @@ -76,12 +76,12 @@ msgstr "Geo localizar" #. module: crm_partner_assign #: help:crm.lead.forward.to.partner,body:0 msgid "Plain-text version of the message" -msgstr "" +msgstr "Versión en texto plano del mensaje" #. module: crm_partner_assign #: view:crm.lead.forward.to.partner:0 msgid "Body" -msgstr "" +msgstr "Cuerpo" #. module: crm_partner_assign #: selection:crm.lead.report.assign,month:0 @@ -101,7 +101,7 @@ msgstr "Demora cierre" #. module: crm_partner_assign #: view:crm.partner.report.assign:0 msgid "#Partner" -msgstr "" +msgstr "Nº empresa" #. module: crm_partner_assign #: selection:crm.lead.forward.to.partner,history:0 @@ -137,7 +137,7 @@ msgstr "Más alta" #. module: crm_partner_assign #: field:crm.lead.forward.to.partner,body:0 msgid "Text contents" -msgstr "" +msgstr "Contenido del texto" #. module: crm_partner_assign #: view:crm.lead.report.assign:0 @@ -148,7 +148,7 @@ msgstr "Día" #. module: crm_partner_assign #: help:crm.lead.forward.to.partner,message_id:0 msgid "Message unique identifier" -msgstr "" +msgstr "Identificador único del mensaje" #. module: crm_partner_assign #: selection:crm.lead.forward.to.partner,history:0 @@ -167,6 +167,8 @@ msgid "" "Add here all attachments of the current document you want to include in the " "Email." msgstr "" +"Añada aquí todos los datos adjuntos del documento que quiere incluir en el " +"correo." #. module: crm_partner_assign #: selection:crm.lead.report.assign,state:0 @@ -195,17 +197,17 @@ msgstr "" #. module: crm_partner_assign #: help:crm.lead.forward.to.partner,body_html:0 msgid "Rich-text/HTML version of the message" -msgstr "" +msgstr "Versión en texto enriquecido / HTML del mensaje" #. module: crm_partner_assign #: field:crm.lead.forward.to.partner,auto_delete:0 msgid "Auto Delete" -msgstr "" +msgstr "Auto eliminar" #. module: crm_partner_assign #: help:crm.lead.forward.to.partner,email_bcc:0 msgid "Blind carbon copy message recipients" -msgstr "" +msgstr "Destinatarios de la copia oculta" #. module: crm_partner_assign #: field:crm.lead.forward.to.partner,partner_id:0 @@ -254,7 +256,7 @@ msgstr "Sección" #. module: crm_partner_assign #: view:crm.lead.forward.to.partner:0 msgid "Send" -msgstr "" +msgstr "Enviar" #. module: crm_partner_assign #: view:res.partner:0 @@ -286,7 +288,7 @@ msgstr "Tipo" #. module: crm_partner_assign #: view:crm.partner.report.assign:0 msgid "Name" -msgstr "" +msgstr "Nombre" #. module: crm_partner_assign #: selection:crm.lead.report.assign,priority:0 @@ -299,11 +301,13 @@ msgid "" "Type of message, usually 'html' or 'plain', used to select plaintext or rich " "text contents accordingly" msgstr "" +"Tipo de mensaje, normalmente 'html' o 'plano', utilizado para seleccionar " +"contenidos en texto plano o en texto enriquecido" #. module: crm_partner_assign #: view:crm.lead.report.assign:0 msgid "Assign Date" -msgstr "" +msgstr "Fecha de asignación" #. module: crm_partner_assign #: view:crm.lead.report.assign:0 @@ -318,7 +322,7 @@ msgstr "Fecha creación" #. module: crm_partner_assign #: field:crm.lead.forward.to.partner,res_id:0 msgid "Related Document ID" -msgstr "" +msgstr "ID del docuemtno relacionado" #. module: crm_partner_assign #: view:crm.lead.report.assign:0 @@ -349,7 +353,7 @@ msgstr "Etapa" #. module: crm_partner_assign #: field:crm.lead.forward.to.partner,model:0 msgid "Related Document model" -msgstr "" +msgstr "Modelo del documento relacionado" #. module: crm_partner_assign #: code:addons/crm_partner_assign/wizard/crm_forward_to_partner.py:192 @@ -392,7 +396,7 @@ msgstr "Cerrar" #. module: crm_partner_assign #: field:crm.lead.forward.to.partner,use_template:0 msgid "Use Template" -msgstr "" +msgstr "Usar plantilla" #. module: crm_partner_assign #: model:ir.actions.act_window,name:crm_partner_assign.action_report_crm_opportunity_assign @@ -464,12 +468,12 @@ msgstr "nº oportunidades" #. module: crm_partner_assign #: view:crm.lead:0 msgid "Team" -msgstr "" +msgstr "Equipo" #. module: crm_partner_assign #: view:crm.lead:0 msgid "Referred Partner" -msgstr "" +msgstr "Empresa referida" #. module: crm_partner_assign #: selection:crm.lead.report.assign,state:0 @@ -490,7 +494,7 @@ msgstr "Cerrado" #. module: crm_partner_assign #: model:ir.actions.act_window,name:crm_partner_assign.action_crm_send_mass_forward msgid "Mass forward to partner" -msgstr "" +msgstr "Envío masivo a empresa" #. module: crm_partner_assign #: view:res.partner:0 @@ -570,7 +574,7 @@ msgstr "Longitud Geo" #. module: crm_partner_assign #: field:crm.partner.report.assign,opp:0 msgid "# of Opportunity" -msgstr "" +msgstr "Nº oportunidad" #. module: crm_partner_assign #: view:crm.lead.report.assign:0 @@ -600,12 +604,12 @@ msgstr "Empresa a la que este caso ha sido reenviado/asignado." #. module: crm_partner_assign #: field:crm.lead.forward.to.partner,date:0 msgid "Date" -msgstr "" +msgstr "Fecha" #. module: crm_partner_assign #: field:crm.lead.forward.to.partner,body_html:0 msgid "Rich-text contents" -msgstr "" +msgstr "Contenido en texto enriquecido" #. module: crm_partner_assign #: view:crm.lead.report.assign:0 @@ -620,18 +624,18 @@ msgstr "res.empresa.nivel" #. module: crm_partner_assign #: field:crm.lead.forward.to.partner,message_id:0 msgid "Message-Id" -msgstr "" +msgstr "Id del mensaje" #. module: crm_partner_assign #: view:crm.lead.forward.to.partner:0 #: field:crm.lead.forward.to.partner,attachment_ids:0 msgid "Attachments" -msgstr "" +msgstr "Adjuntos" #. module: crm_partner_assign #: field:crm.lead.forward.to.partner,email_cc:0 msgid "Cc" -msgstr "" +msgstr "Cc" #. module: crm_partner_assign #: selection:crm.lead.report.assign,month:0 @@ -641,7 +645,7 @@ msgstr "Septiembre" #. module: crm_partner_assign #: field:crm.lead.forward.to.partner,references:0 msgid "References" -msgstr "" +msgstr "Referencias" #. module: crm_partner_assign #: view:crm.lead.report.assign:0 @@ -668,7 +672,7 @@ msgstr "Abierto" #. module: crm_partner_assign #: help:crm.lead.forward.to.partner,email_cc:0 msgid "Carbon copy message recipients" -msgstr "" +msgstr "Destinatarios de la copia" #. module: crm_partner_assign #: help:crm.lead.forward.to.partner,headers:0 @@ -676,6 +680,8 @@ msgid "" "Full message headers, e.g. SMTP session headers (usually available on " "inbound messages only)" msgstr "" +"Cabeceras completas del mensaje, por ejemplo las cabeceras de sesión SMTP " +"(normalmente disponibles sólo en mensajes entrantes)" #. module: crm_partner_assign #: field:res.partner,date_localization:0 @@ -698,11 +704,13 @@ msgid "" "Message sender, taken from user preferences. If empty, this is not a mail " "but a message." msgstr "" +"Remitente del mensaje, proveniente de las preferencias del usuario. Si está " +"vacío, esto no es correo electrónico, sino un mensaje." #. module: crm_partner_assign #: field:crm.partner.report.assign,nbr:0 msgid "# of Partner" -msgstr "" +msgstr "Nº empresa" #. module: crm_partner_assign #: view:crm.lead.forward.to.partner:0 @@ -713,7 +721,7 @@ msgstr "Reenviar a empresa" #. module: crm_partner_assign #: field:crm.partner.report.assign,name:0 msgid "Partner name" -msgstr "" +msgstr "Nombre de la empresa" #. module: crm_partner_assign #: selection:crm.lead.report.assign,month:0 @@ -728,7 +736,7 @@ msgstr "Ingreso estimado" #. module: crm_partner_assign #: field:crm.lead.forward.to.partner,reply_to:0 msgid "Reply-To" -msgstr "" +msgstr "Responder a" #. module: crm_partner_assign #: field:crm.lead,partner_assigned_id:0 @@ -748,7 +756,7 @@ msgstr "Oportunidad" #. module: crm_partner_assign #: view:crm.lead.forward.to.partner:0 msgid "Send Mail" -msgstr "" +msgstr "Enviar correo" #. module: crm_partner_assign #: field:crm.lead.report.assign,partner_id:0 @@ -776,7 +784,7 @@ msgstr "País" #. module: crm_partner_assign #: field:crm.lead.forward.to.partner,headers:0 msgid "Message headers" -msgstr "" +msgstr "Cabeceras del mensaje" #. module: crm_partner_assign #: view:res.partner:0 @@ -786,7 +794,7 @@ msgstr "Convertir en oportunidad" #. module: crm_partner_assign #: field:crm.lead.forward.to.partner,email_bcc:0 msgid "Bcc" -msgstr "" +msgstr "Cco" #. module: crm_partner_assign #: view:crm.lead:0 @@ -802,7 +810,7 @@ msgstr "Abril" #: model:ir.actions.act_window,name:crm_partner_assign.action_report_crm_partner_assign #: model:ir.ui.menu,name:crm_partner_assign.menu_report_crm_partner_assign_tree msgid "Partnership Analysis" -msgstr "" +msgstr "Análisis de la relación" #. module: crm_partner_assign #: model:ir.model,name:crm_partner_assign.model_crm_lead @@ -817,7 +825,7 @@ msgstr "Pendiente" #. module: crm_partner_assign #: view:crm.partner.report.assign:0 msgid "Partner assigned Analysis" -msgstr "" +msgstr "Análisis de la empresa asignada" #. module: crm_partner_assign #: model:ir.model,name:crm_partner_assign.model_crm_lead_report_assign @@ -828,11 +836,12 @@ msgstr "Informe de iniciativas CRM" #: help:crm.lead.forward.to.partner,references:0 msgid "Message references, such as identifiers of previous messages" msgstr "" +"Referencias del mensaje, tales como identificadores de mensajes anteriores" #. module: crm_partner_assign #: constraint:res.partner:0 msgid "Error ! You cannot create recursive associated members." -msgstr "" +msgstr "¡Error! No puede crear miembros asociados recursivamente." #. module: crm_partner_assign #: selection:crm.lead.forward.to.partner,history:0 @@ -847,12 +856,12 @@ msgstr "Secuencia" #. module: crm_partner_assign #: model:ir.model,name:crm_partner_assign.model_crm_partner_report_assign msgid "CRM Partner Report" -msgstr "" +msgstr "Informe de la empresa CRM" #. module: crm_partner_assign #: model:ir.model,name:crm_partner_assign.model_crm_lead_forward_to_partner msgid "Email composition wizard" -msgstr "" +msgstr "Asistente de composición de e-mail" #. module: crm_partner_assign #: selection:crm.lead.report.assign,priority:0 @@ -873,7 +882,7 @@ msgstr "Fecha de creación" #. module: crm_partner_assign #: field:crm.lead.forward.to.partner,filter_id:0 msgid "Filters" -msgstr "" +msgstr "Filtros" #. module: crm_partner_assign #: view:crm.lead.report.assign:0 @@ -884,7 +893,7 @@ msgstr "Año" #. module: crm_partner_assign #: help:crm.lead.forward.to.partner,reply_to:0 msgid "Preferred response address for the message" -msgstr "" +msgstr "Dirección de correo de respuesta preferida para este mensaje" #~ msgid "Reply-to of the Sales team defined on this case" #~ msgstr "\"Responder a\" del equipo de ventas definido en este caso" @@ -941,3 +950,6 @@ msgstr "" #~ "partners o asesores,\n" #~ "basándose en geo-localización.\n" #~ " " + +#~ msgid "E-mail composition wizard" +#~ msgstr "Asistente de composición de e-mail" diff --git a/addons/document/nodes.py b/addons/document/nodes.py index 6bcb2237a9e..aeb2e64fc97 100644 --- a/addons/document/nodes.py +++ b/addons/document/nodes.py @@ -823,6 +823,7 @@ class node_res_dir(node_class): uid = self.context.uid ctx = self.context.context.copy() ctx.update(self.dctx) + ctx.update(self.context.extra_ctx) where = [] if self.domain: app = safe_eval(self.domain, ctx) diff --git a/addons/document_page/wizard/document_page_show_diff.py b/addons/document_page/wizard/document_page_show_diff.py index ab5572768f4..13e8e79b3b7 100644 --- a/addons/document_page/wizard/document_page_show_diff.py +++ b/addons/document_page/wizard/document_page_show_diff.py @@ -43,7 +43,7 @@ class showdiff(osv.osv_memory): elif len(ids) == 1: old = history.browse(cr, uid, ids[0]) - nids = history.search(cr, uid, [('document_id', '=', old.document_id.id)]) + nids = history.search(cr, uid, [('page_id', '=', old.page_id.id)]) nids.sort() diff = history.getDiff(cr, uid, ids[0], nids[-1]) else: diff --git a/addons/document_webdav/document_webdav.py b/addons/document_webdav/document_webdav.py index 3b604d6cffb..ad44a58ac26 100644 --- a/addons/document_webdav/document_webdav.py +++ b/addons/document_webdav/document_webdav.py @@ -51,9 +51,10 @@ class document_davdir(osv.osv): # that might be not worth preparing. nctx.extra_ctx['webdav_path'] = '/'+config.get_misc('webdav','vdir','webdav') usr_obj = self.pool.get('res.users') - res = usr_obj.read(cr, uid, uid, ['login']) + res = usr_obj.read(cr, uid, uid, ['login','context_lang']) if res: nctx.extra_ctx['username'] = res['login'] + nctx.extra_ctx['lang'] = res['context_lang'] # TODO group return diff --git a/addons/fleet/fleet.py b/addons/fleet/fleet.py index d531b00bc43..9b9986a0b01 100644 --- a/addons/fleet/fleet.py +++ b/addons/fleet/fleet.py @@ -56,7 +56,10 @@ class fleet_vehicle_cost(osv.Model): def _year_get_fnc(self, cr, uid, ids, name, unknow_none, context=None): res = {} for record in self.browse(cr, uid, ids, context=context): - res[record.id] = str(time.strptime(record.date, tools.DEFAULT_SERVER_DATE_FORMAT).tm_year) + if (record.date): + res[record.id] = str(time.strptime(record.date, tools.DEFAULT_SERVER_DATE_FORMAT).tm_year) + else: + res[record.id] = _('Unknown') return res def _cost_name_get_fnc(self, cr, uid, ids, name, unknow_none, context=None): @@ -253,7 +256,6 @@ class fleet_vehicle(osv.Model): def _search_get_overdue_contract_reminder(self, cr, uid, obj, name, args, context): res = [] - today = fields.date.today(self, cr, uid, context=context) for field, operator, value in args: assert operator in ('=', '!=', '<>') and value in (True, False), 'Operation not supported' if (operator == '=' and value == True) or (operator in ('<>', '!=') and value == False): @@ -343,7 +345,7 @@ class fleet_vehicle(osv.Model): 'seats': fields.integer('Seats Number', help='Number of seats of the vehicle'), 'doors': fields.integer('Doors Number', help='Number of doors of the vehicle'), 'tag_ids' :fields.many2many('fleet.vehicle.tag', 'fleet_vehicle_vehicle_tag_rel', 'vehicle_tag_id','tag_id', 'Tags'), - 'odometer': fields.function(_get_odometer, fnct_inv=_set_odometer, type='float', string='Odometer Value', help='Odometer measure of the vehicle at the moment of this log'), + 'odometer': fields.function(_get_odometer, fnct_inv=_set_odometer, type='float', string='Last Odometer', help='Odometer measure of the vehicle at the moment of this log'), 'odometer_unit': fields.selection([('kilometers', 'Kilometers'),('miles','Miles')], 'Odometer Unit', help='Unit of the odometer ',required=True), 'transmission': fields.selection([('manual', 'Manual'), ('automatic', 'Automatic')], 'Transmission', help='Transmission Used by the vehicle'), 'fuel_type': fields.selection([('gasoline', 'Gasoline'), ('diesel', 'Diesel'), ('electric', 'Electric'), ('hybrid', 'Hybrid')], 'Fuel Type', help='Fuel Used by the vehicle'), @@ -769,8 +771,8 @@ class fleet_vehicle_log_contract(osv.Model): 'start_date': fields.date('Contract Start Date', help='Date when the coverage of the contract begins'), 'expiration_date': fields.date('Contract Expiration Date', help='Date when the coverage of the contract expirates (by default, one year after begin date)'), 'days_left': fields.function(get_days_left, type='integer', string='Warning Date'), - 'insurer_id' :fields.many2one('res.partner', 'Supplier', domain="[('supplier','=',True)]"), - 'purchaser_id': fields.many2one('res.partner', 'Contractor', domain="['|', ('customer','=',True), ('employee','=',True)]",help='Person to which the contract is signed for'), + 'insurer_id' :fields.many2one('res.partner', 'Supplier'), + 'purchaser_id': fields.many2one('res.partner', 'Contractor', help='Person to which the contract is signed for'), 'ins_ref': fields.char('Contract Reference', size=64), 'state': fields.selection([('open', 'In Progress'), ('toclose','To Close'), ('closed', 'Terminated')], 'Status', readonly=True, help='Choose wheter the contract is still valid or not'), 'notes': fields.text('Terms and Conditions', help='Write here all supplementary informations relative to this contract'), diff --git a/addons/fleet/fleet_board_view.xml b/addons/fleet/fleet_board_view.xml index 425d5c5b8eb..760fc1cf583 100644 --- a/addons/fleet/fleet_board_view.xml +++ b/addons/fleet/fleet_board_view.xml @@ -43,7 +43,7 @@ form tree - ['|',('contract_renewal_due_soon','>',0),('contract_renewal_overdue','>',0)] + ['|',('contract_renewal_due_soon','=',True),('contract_renewal_overdue','=',True)]

Here are displayed vehicles for which one or more contracts need to be renewed. If you see this message, then there is no contracts to renew. diff --git a/addons/fleet/fleet_view.xml b/addons/fleet/fleet_view.xml index bb15440ba37..ecec39f22d8 100644 --- a/addons/fleet/fleet_view.xml +++ b/addons/fleet/fleet_view.xml @@ -256,7 +256,7 @@ - + diff --git a/addons/hr/i18n/es_EC.po b/addons/hr/i18n/es_EC.po index 32e81b6d14d..bfbbb7fa180 100644 --- a/addons/hr/i18n/es_EC.po +++ b/addons/hr/i18n/es_EC.po @@ -8,15 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 01:37+0100\n" -"PO-Revision-Date: 2012-01-03 02:55+0000\n" -"Last-Translator: Christopher Ormaza - (Ecuadorenlinea.net) " -"\n" +"PO-Revision-Date: 2012-11-10 17:20+0000\n" +"Last-Translator: Cristian Salamea (Gnuthink) \n" "Language-Team: Spanish (Ecuador) \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-10-30 05:17+0000\n" -"X-Generator: Launchpad (build 16206)\n" +"X-Launchpad-Export-Date: 2012-11-11 04:57+0000\n" +"X-Generator: Launchpad (build 16251)\n" #. module: hr #: model:process.node,name:hr.process_node_openerpuser0 @@ -199,6 +198,8 @@ msgstr "Mujer" msgid "" "Expected number of employees for this job position after new recruitment." msgstr "" +"Número de Empleados para este puesto de trabajo después de las nuevas " +"contrataciones" #. module: hr #: model:ir.ui.menu,name:hr.menu_open_view_attendance_reason_new_config @@ -291,7 +292,7 @@ msgstr "Categorías" #. module: hr #: field:hr.job,expected_employees:0 msgid "Total Employees" -msgstr "" +msgstr "Total de Empleados" #. module: hr #: selection:hr.employee,marital:0 @@ -435,7 +436,7 @@ msgstr "Estado" #: model:ir.actions.act_window,name:hr.open_view_categ_tree #: model:ir.ui.menu,name:hr.menu_view_employee_category_tree msgid "Categories Structure" -msgstr "" +msgstr "Estructura de categorías" #. module: hr #: field:hr.employee,partner_id:0 @@ -465,7 +466,7 @@ msgstr "¡Error! No se puede crear una jerarquía recursiva de empleados." #. module: hr #: model:ir.actions.act_window,name:hr.action2 msgid "Subordinate Hierarchy" -msgstr "" +msgstr "Jerarquía subirdinada" #. module: hr #: model:ir.actions.act_window,help:hr.view_department_form_installer @@ -715,12 +716,12 @@ msgstr "Subordinados" #. module: hr #: field:hr.job,no_of_employee:0 msgid "Number of employees currently occupying this job position." -msgstr "" +msgstr "Número de empleados ocupando actualmente este puesto de trabajo" #. module: hr #: field:hr.job,no_of_recruitment:0 msgid "Number of new employees you expect to recruit." -msgstr "" +msgstr "Número de empleados que espera contratar" #~ msgid "Working Time Categories" #~ msgstr "Categorías de Horarios de Trabajo" diff --git a/addons/hr_attendance/report/attendance_by_month.py b/addons/hr_attendance/report/attendance_by_month.py index f104b9c287a..6d41869ff23 100644 --- a/addons/hr_attendance/report/attendance_by_month.py +++ b/addons/hr_attendance/report/attendance_by_month.py @@ -31,6 +31,7 @@ from report.interface import toxml from report import report_sxw from tools import ustr from tools.translate import _ +from tools import to_xml one_day = relativedelta(days=1) month2name = [0, 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] @@ -111,7 +112,7 @@ class report_custom(report_rml): %s %s - ''' % (str(rml_obj.formatLang(time.strftime("%Y-%m-%d"),date=True))+' ' + str(time.strftime("%H:%M")),pooler.get_pool(cr.dbname).get('res.users').browse(cr,uid,uid).company_id.name) + ''' % (str(rml_obj.formatLang(time.strftime("%Y-%m-%d"),date=True))+' ' + str(time.strftime("%H:%M")),to_xml(pooler.get_pool(cr.dbname).get('res.users').browse(cr,uid,uid).company_id.name)) first_date = str(month) som = datetime.strptime(first_date, '%Y-%m-%d %H:%M:%S') diff --git a/addons/hr_expense/hr_expense.py b/addons/hr_expense/hr_expense.py index c9961fa8a1d..96a37c0e448 100644 --- a/addons/hr_expense/hr_expense.py +++ b/addons/hr_expense/hr_expense.py @@ -236,16 +236,6 @@ class product_product(osv.osv): 'hr_expense_ok': fields.boolean('Can be Expensed', help="Specify if the product can be selected in an HR expense line."), } - def on_change_hr_expense_ok(self, cr, uid, id, hr_expense_ok): - - if not hr_expense_ok: - return {} - data_obj = self.pool.get('ir.model.data') - cat_id = data_obj._get_id(cr, uid, 'hr_expense', 'cat_expense') - categ_id = data_obj.browse(cr, uid, cat_id).res_id - res = {'value' : {'type':'service','sale_ok' :False,'categ_id':categ_id }} - return res - product_product() class hr_expense_line(osv.osv): diff --git a/addons/hr_expense/hr_expense_view.xml b/addons/hr_expense/hr_expense_view.xml index 74b77009aae..d4b7cbae1ce 100644 --- a/addons/hr_expense/hr_expense_view.xml +++ b/addons/hr_expense/hr_expense_view.xml @@ -195,7 +195,7 @@

- +
diff --git a/addons/hr_holidays/hr_holidays.py b/addons/hr_holidays/hr_holidays.py index 419b1bb8335..92b1d57ce15 100644 --- a/addons/hr_holidays/hr_holidays.py +++ b/addons/hr_holidays/hr_holidays.py @@ -90,6 +90,18 @@ class hr_holidays_status(osv.osv): 'color_name': 'red', 'active': True, } + + def name_get(self, cr, uid, ids, context=None): + if not ids: + return [] + res = [] + for record in self.browse(cr, uid, ids, context=context): + name = record.name + if not record.limit: + name = name + (' (%d/%d)' % (record.leaves_taken or 0.0, record.max_leaves or 0.0)) + res.append((record.id, name)) + return res + hr_holidays_status() class hr_holidays(osv.osv): diff --git a/addons/hr_holidays/report/holidays_summary_report.py b/addons/hr_holidays/report/holidays_summary_report.py index 8a782075853..cadd3a22ce6 100644 --- a/addons/hr_holidays/report/holidays_summary_report.py +++ b/addons/hr_holidays/report/holidays_summary_report.py @@ -31,6 +31,7 @@ import time from report import report_sxw from tools import ustr from tools.translate import _ +from tools import to_xml def lengthmonth(year, month): if month == 2 and ((year % 4 == 0) and ((year % 100 != 0) or (year % 400 == 0))): @@ -240,7 +241,7 @@ class report_custom(report_rml): %s %s - ''' % (str(rml_obj.formatLang(time.strftime("%Y-%m-%d"),date=True))+' ' + str(time.strftime("%H:%M")),pooler.get_pool(cr.dbname).get('res.users').browse(cr,uid,uid).company_id.name) + ''' % (str(rml_obj.formatLang(time.strftime("%Y-%m-%d"),date=True))+' ' + str(time.strftime("%H:%M")),to_xml(pooler.get_pool(cr.dbname).get('res.users').browse(cr,uid,uid).company_id.name)) # Computing the xml xml=''' diff --git a/addons/hr_payroll/hr_payroll.py b/addons/hr_payroll/hr_payroll.py index 53c84c65ee6..640d4ed3cfd 100644 --- a/addons/hr_payroll/hr_payroll.py +++ b/addons/hr_payroll/hr_payroll.py @@ -326,6 +326,7 @@ class hr_payslip(osv.osv): return self.write(cr, uid, ids, {'paid': True, 'state': 'done'}, context=context) def hr_verify_sheet(self, cr, uid, ids, context=None): + self.compute_sheet(cr, uid, ids, context) return self.write(cr, uid, ids, {'state': 'verify'}, context=context) def refund_sheet(self, cr, uid, ids, context=None): diff --git a/addons/hr_timesheet/report/user_timesheet.py b/addons/hr_timesheet/report/user_timesheet.py index 7699f94f41b..8d2a7d35678 100644 --- a/addons/hr_timesheet/report/user_timesheet.py +++ b/addons/hr_timesheet/report/user_timesheet.py @@ -28,6 +28,7 @@ import time import pooler from report import report_sxw from tools import ustr +from tools import to_xml def lengthmonth(year, month): if month == 2 and ((year % 4 == 0) and ((year % 100 != 0) or (year % 400 == 0))): @@ -94,7 +95,7 @@ class report_custom(report_rml): %s %s - ''' % (str(rml_obj.formatLang(time.strftime("%Y-%m-%d"),date=True))+' ' + str(time.strftime("%H:%M")),pooler.get_pool(cr.dbname).get('res.users').browse(cr,uid,user_id).company_id.name) + ''' % (str(rml_obj.formatLang(time.strftime("%Y-%m-%d"),date=True))+' ' + str(time.strftime("%H:%M")),to_xml(pooler.get_pool(cr.dbname).get('res.users').browse(cr,uid,user_id).company_id.name)) account_xml = [] for account, telems in accounts.iteritems(): diff --git a/addons/hr_timesheet/wizard/hr_timesheet_print_employee.py b/addons/hr_timesheet/wizard/hr_timesheet_print_employee.py index 75bb089bbc7..96ce23fb855 100644 --- a/addons/hr_timesheet/wizard/hr_timesheet_print_employee.py +++ b/addons/hr_timesheet/wizard/hr_timesheet_print_employee.py @@ -27,8 +27,9 @@ class analytical_timesheet_employee(osv.osv_memory): _name = 'hr.analytical.timesheet.employee' _description = 'Print Employee Timesheet & Print My Timesheet' _columns = { - 'month': fields.selection([(x, datetime.date(2000, x, 1).strftime('%B')) for x in range(1, 13)], - 'Month', required=True), + 'month': fields.selection([(1,'January'), (2,'February'), (3,'March'), (4,'April'), + (5,'May'), (6,'June'), (7,'July'), (8,'August'), (9,'September'), + (10,'October'), (11,'November'), (12,'December')], 'Month', required=True), 'year': fields.integer('Year', required=True), 'employee_id': fields.many2one('hr.employee', 'Employee', required=True) diff --git a/addons/hr_timesheet/wizard/hr_timesheet_print_users.py b/addons/hr_timesheet/wizard/hr_timesheet_print_users.py index 865ccacb393..2a91bb607a4 100644 --- a/addons/hr_timesheet/wizard/hr_timesheet_print_users.py +++ b/addons/hr_timesheet/wizard/hr_timesheet_print_users.py @@ -27,8 +27,9 @@ class analytical_timesheet_employees(osv.osv_memory): _name = 'hr.analytical.timesheet.users' _description = 'Print Employees Timesheet' _columns = { - 'month': fields.selection([(x, datetime.date(2000, x, 1).strftime('%B')) for x in range(1, 13)], - 'Month', required=True), + 'month': fields.selection([(1,'January'), (2,'February'), (3,'March'), (4,'April'), + (5,'May'), (6,'June'), (7,'July'), (8,'August'), (9,'September'), + (10,'October'), (11,'November'), (12,'December')], 'Month', required=True), 'year': fields.integer('Year', required=True), 'employee_ids': fields.many2many('hr.employee', 'timesheet_employee_rel', 'timesheet_id', 'employee_id', 'employees', required=True) } diff --git a/addons/l10n_ch/bank.py b/addons/l10n_ch/bank.py index 79dcb1a6834..4e4c0e0aa8c 100644 --- a/addons/l10n_ch/bank.py +++ b/addons/l10n_ch/bank.py @@ -52,21 +52,6 @@ class ResPartnerBank(osv.osv): 'my_bank': fields.boolean('Use my account to print BVR ?', help="Check to print BVR invoices"), } - def name_get(self, cursor, uid, ids, context=None): - if not len(ids): - return [] - bank_type_obj = self.pool.get('res.partner.bank.type') - - type_ids = bank_type_obj.search(cursor, uid, []) - bank_type_names = {} - for bank_type in bank_type_obj.browse(cursor, uid, type_ids, - context=context): - bank_type_names[bank_type.code] = bank_type.name - res = [] - for r in self.read(cursor, uid, ids, ['name','state'], context): - res.append((r['id'], r['name']+' : '+bank_type_names.get(r['state'], ''))) - return res - def _prepare_name(self, bank): "Hook to get bank number of bank account" res = u'' diff --git a/addons/l10n_it/data/account.tax.code.template.csv b/addons/l10n_it/data/account.tax.code.template.csv index 290396052f4..d6d6667f43b 100644 --- a/addons/l10n_it/data/account.tax.code.template.csv +++ b/addons/l10n_it/data/account.tax.code.template.csv @@ -60,6 +60,3 @@ IVC21det40,template_ivacode_pagata_21det40,IVA a credito 21% detraibile 40%,temp IVC21Idet40,template_impcode_pagata_21det40,IVA a credito 21% detraibile 40% (imponibile),template_impcode_pagata IVC21det50,template_ivacode_pagata_21det50,IVA a credito 21% detraibile 50%,template_ivacode_pagata IVC21Idet50,template_impcode_pagata_21det50,IVA a credito 21% detraibile 50% (imponibile),template_impcode_pagata -Rit,template_ra,Ritenute d'acconto,vat_code_chart_root -RitD20,template_ritcode_20,Ritenute a debito 20%,template_ra -RitD20I,template_ritimpcode_20,Ritenute a debito 20% (imponibile),template_ra diff --git a/addons/l10n_it/data/account.tax.template.csv b/addons/l10n_it/data/account.tax.template.csv index 36c4f99db79..641f495dd72 100644 --- a/addons/l10n_it/data/account.tax.template.csv +++ b/addons/l10n_it/data/account.tax.template.csv @@ -62,4 +62,3 @@ id,description,chart_template_id:id,name,sequence,amount,parent_id:id,child_depe 21I5,21I5,l10n_it_chart_template_generic,IVA al 21% detraibile al 50%,,0.21,,True,percent,,,purchase,template_impcode_pagata_21det50,,template_impcode_pagata_21det50,,,,False,-1,-1 21I5b,21I5b,l10n_it_chart_template_generic,IVA al 21% detraibile al 50% (I),1,0.5,21I5,False,percent,,,purchase,,,,,,,False,, 21I5a,21I5a,l10n_it_chart_template_generic,IVA al 21% detraibile al 50% (D),2,0,21I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det50,,template_ivacode_pagata_21det50,,,False,, -rit-20,rit-20,l10n_it_chart_template_generic,Ritenuta d'acconto al 20% (debito),,-0.2,,False,percent,2602,2602,purchase,template_ritimpcode_20,template_ritcode_20,template_ritimpcode_20,template_ritcode_20,-1,1,False,1,-1 diff --git a/addons/mrp/report/price.py b/addons/mrp/report/price.py index 527505d8ea5..b1e04749ab2 100644 --- a/addons/mrp/report/price.py +++ b/addons/mrp/report/price.py @@ -111,7 +111,7 @@ class report_custom(report_rml): 595.27 841.88 55.00mm,58.00mm,29.00mm,29.00mm,29.00mm - """ % (user_pool.browse(cr, uid, uid).company_id.name) + """ % to_xml(user_pool.browse(cr, uid, uid).company_id.name) config_stop = """ Generated by OpenERP diff --git a/addons/mrp/res_config.py b/addons/mrp/res_config.py index c1712b81a26..ec3deb524a3 100644 --- a/addons/mrp/res_config.py +++ b/addons/mrp/res_config.py @@ -28,10 +28,6 @@ class mrp_config_settings(osv.osv_memory): _inherit = 'res.config.settings' _columns = { - 'module_stock_planning': fields.boolean('Manage master production shedule', - help ="""This allows to create a manual procurement plan apart of the normal MRP scheduling, - which works automatically based on minimum stock rules. - This installs the module stock_planning."""), 'module_mrp_repair': fields.boolean("Manage repairs of products ", help="""Allows to manage all product repairs. * Add/remove products in the reparation diff --git a/addons/mrp/res_config_view.xml b/addons/mrp/res_config_view.xml index 6b4058fb7b4..2c7047380a8 100644 --- a/addons/mrp/res_config_view.xml +++ b/addons/mrp/res_config_view.xml @@ -56,10 +56,6 @@
diff --git a/addons/mrp_repair/mrp_repair.py b/addons/mrp_repair/mrp_repair.py index bc9b9413c65..d79620ce93c 100644 --- a/addons/mrp_repair/mrp_repair.py +++ b/addons/mrp_repair/mrp_repair.py @@ -690,7 +690,7 @@ class mrp_repair_line(osv.osv, ProductChangeMixin): 'repair_id': fields.many2one('mrp.repair', 'Repair Order Reference',ondelete='cascade', select=True), 'type': fields.selection([('add','Add'),('remove','Remove')],'Type', required=True), 'to_invoice': fields.boolean('To Invoice'), - 'product_id': fields.many2one('product.product', 'Product', domain=[('sale_ok','=',True)], required=True), + 'product_id': fields.many2one('product.product', 'Product', required=True), 'invoiced': fields.boolean('Invoiced',readonly=True), 'price_unit': fields.float('Unit Price', required=True, digits_compute= dp.get_precision('Product Price')), 'price_subtotal': fields.function(_amount_line, string='Subtotal',digits_compute= dp.get_precision('Account')), diff --git a/addons/note/static/src/css/note.css b/addons/note/static/src/css/note.css index 1b7e9315e74..16d71e28aa5 100644 --- a/addons/note/static/src/css/note.css +++ b/addons/note/static/src/css/note.css @@ -49,8 +49,8 @@ padding: 8px; margin-left: 3px; margin-right: 3px; - padding-bottom: 16px; - margin-bottom: 16px; + padding-bottom: 8px; + margin-bottom: 10px; -webkit-transform: rotate(-2deg); -o-transform: rotate(-2deg); -moz-transform: rotate(-2deg); diff --git a/addons/note/static/src/css/note.sass b/addons/note/static/src/css/note.sass index b5bc28a2593..6f0c0883ae7 100644 --- a/addons/note/static/src/css/note.sass +++ b/addons/note/static/src/css/note.sass @@ -53,8 +53,8 @@ padding: 8px margin-left: 3px margin-right: 3px - padding-bottom: 16px - margin-bottom: 16px + padding-bottom: 8px + margin-bottom: 10px @include rotate(-2deg) @include transition(all, 300ms) .oe_kanban_record:nth-of-type(even) diff --git a/addons/point_of_sale/report/pos_receipt.py b/addons/point_of_sale/report/pos_receipt.py index 2ee6b2e3360..58044c28c77 100644 --- a/addons/point_of_sale/report/pos_receipt.py +++ b/addons/point_of_sale/report/pos_receipt.py @@ -34,7 +34,7 @@ class order(report_sxw.rml_parse): def __init__(self, cr, uid, name, context): super(order, self).__init__(cr, uid, name, context=context) - user = pooler.get_pool(cr.dbname).get('res.users').browse(cr, uid, uid) + user = pooler.get_pool(cr.dbname).get('res.users').browse(cr, uid, uid, context=context) partner = user.company_id.partner_id self.localcontext.update({ diff --git a/addons/point_of_sale/static/src/js/screens.js b/addons/point_of_sale/static/src/js/screens.js index c823350cdfd..0b8ab70a9c0 100644 --- a/addons/point_of_sale/static/src/js/screens.js +++ b/addons/point_of_sale/static/src/js/screens.js @@ -941,8 +941,10 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa var self = this; var x = new module.PaymentlineWidget(null, { payment_line: newPaymentLine - }); - x.on('delete_payment_line', self, self.deleteLine); + }); + x.on('delete_payment_line', self, function(r) { + self.deleteLine(r); + }); x.appendTo(this.$('#paymentlines')); }, renderElement: function() { diff --git a/addons/point_of_sale/static/src/js/widgets.js b/addons/point_of_sale/static/src/js/widgets.js index fe86c9dc163..c7874a4bd5c 100644 --- a/addons/point_of_sale/static/src/js/widgets.js +++ b/addons/point_of_sale/static/src/js/widgets.js @@ -315,7 +315,7 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa this._super(); this.$('input').keyup(_.bind(this.changeAmount, this)); this.$('.delete-payment-line').click(function() { - self.trigger('delete_payment_line'); + self.trigger('delete_payment_line', self); }); }, }); @@ -1051,7 +1051,8 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa this.pos.barcode_reader.disconnect(); return new instance.web.Model("ir.model.data").get_func("search_read")([['name', '=', 'action_client_pos_menu']], ['res_id']).pipe( _.bind(function(res) { - return this.rpc('/web/action/load', {'action_id': res[0]['res_id']}).pipe(_.bind(function(action) { + return this.rpc('/web/action/load', {'action_id': res[0]['res_id']}).pipe(_.bind(function(result) { + var action = result; action.context = _.extend(action.context || {}, {'cancel_action': {type: 'ir.actions.client', tag: 'reload'}}); //self.destroy(); this.do_action(action); diff --git a/addons/portal/wizard/share_wizard.py b/addons/portal/wizard/share_wizard.py index b1b6e980dec..51e5e59eb0e 100644 --- a/addons/portal/wizard/share_wizard.py +++ b/addons/portal/wizard/share_wizard.py @@ -35,8 +35,8 @@ class share_wizard_portal(osv.TransientModel): def _user_type_selection(self, cr, uid, context=None): selection = super(share_wizard_portal, self)._user_type_selection(cr, uid, context=context) - selection.extend([('existing','Users you already shared with'), - ('groups','Existing Groups (e.g Portal Groups)')]) + selection.extend([('existing',_('Users you already shared with')), + ('groups',_('Existing Groups (e.g Portal Groups)'))]) return selection _columns = { diff --git a/addons/project/project.py b/addons/project/project.py index 741cae4b91b..42df632851a 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -166,17 +166,17 @@ class project(osv.osv): res[id]['progress_rate'] = 0.0 return res - def unlink(self, cr, uid, ids, *args, **kwargs): + def unlink(self, cr, uid, ids, context=None): alias_ids = [] mail_alias = self.pool.get('mail.alias') - for proj in self.browse(cr, uid, ids): + for proj in self.browse(cr, uid, ids, context=context): if proj.tasks: raise osv.except_osv(_('Invalid Action!'), _('You cannot delete a project containing tasks. You can either delete all the project\'s tasks and then delete the project or simply deactivate the project.')) elif proj.alias_id: alias_ids.append(proj.alias_id.id) - res = super(project, self).unlink(cr, uid, ids, *args, **kwargs) - mail_alias.unlink(cr, uid, alias_ids, *args, **kwargs) + res = super(project, self).unlink(cr, uid, ids, context=context) + mail_alias.unlink(cr, uid, alias_ids, context=context) return res def _get_attached_docs(self, cr, uid, ids, field_name, arg, context): @@ -204,8 +204,8 @@ class project(osv.osv): def attachment_tree_view(self, cr, uid, ids, context): task_ids = self.pool.get('project.task').search(cr, uid, [('project_id', 'in', ids)]) domain = [ - ('|', - '&', 'res_model', '=', 'project.project'), ('res_id', 'in', ids), + '|', + '&', ('res_model', '=', 'project.project'), ('res_id', 'in', ids), '&', ('res_model', '=', 'project.task'), ('res_id', 'in', task_ids) ] res_id = ids and ids[0] or False diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 58f0ae17962..e7f12ff3797 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -164,7 +164,7 @@ project.project - + diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py index 7d17364f369..0227e74905f 100644 --- a/addons/purchase/purchase.py +++ b/addons/purchase/purchase.py @@ -46,7 +46,7 @@ class purchase_order(osv.osv): cur = order.pricelist_id.currency_id for line in order.order_line: val1 += line.price_subtotal - for c in self.pool.get('account.tax').compute_all(cr, uid, line.taxes_id, line.price_unit, line.product_qty, line.product_id.id, order.partner_id)['taxes']: + for c in self.pool.get('account.tax').compute_all(cr, uid, line.taxes_id, line.price_unit, line.product_qty, line.product_id, order.partner_id)['taxes']: val += c.get('amount', 0.0) res[order.id]['amount_tax']=cur_obj.round(cr, uid, cur, val) res[order.id]['amount_untaxed']=cur_obj.round(cr, uid, cur, val1) @@ -293,6 +293,27 @@ class purchase_order(osv.osv): fiscal_position = supplier.property_account_position and supplier.property_account_position.id or False return {'value':{'pricelist_id': pricelist, 'fiscal_position': fiscal_position}} + def invoice_open(self, cr, uid, ids, context=None): + mod_obj = self.pool.get('ir.model.data') + act_obj = self.pool.get('ir.actions.act_window') + + result = mod_obj.get_object_reference(cr, uid, 'account', 'action_invoice_tree2') + id = result and result[1] or False + result = act_obj.read(cr, uid, [id], context=context)[0] + inv_ids = [] + for po in self.browse(cr, uid, ids, context=context): + inv_ids+= [invoice.id for invoice in po.invoice_ids] + if not inv_ids: + raise osv.except_osv(_('Error!'), _('Please create Invoices.')) + #choose the view_mode accordingly + if len(inv_ids)>1: + result['domain'] = "[('id','in',["+','.join(map(str, inv_ids))+"])]" + else: + res = mod_obj.get_object_reference(cr, uid, 'account', 'invoice_supplier_form') + result['views'] = [(res and res[1] or False, 'form')] + result['res_id'] = inv_ids and inv_ids[0] or False + return result + def view_invoice(self, cr, uid, ids, context=None): ''' This function returns an action that display existing invoices of given sale order ids. It can either be a in a list or in a form view, if there is only one invoice to show. @@ -547,7 +568,6 @@ class purchase_order(osv.osv): 'invoice_state': '2binvoiced' if order.invoice_method == 'picking' else 'none', 'type': 'in', 'partner_id': order.dest_address_id.id or order.partner_id.id, - 'invoice_state': '2binvoiced' if order.invoice_method == 'picking' else 'none', 'purchase_id': order.id, 'company_id': order.company_id.id, 'move_lines' : [], @@ -803,7 +823,7 @@ class purchase_order_line(osv.osv): cur_obj=self.pool.get('res.currency') tax_obj = self.pool.get('account.tax') for line in self.browse(cr, uid, ids, context=context): - taxes = tax_obj.compute_all(cr, uid, line.taxes_id, line.price_unit, line.product_qty) + taxes = tax_obj.compute_all(cr, uid, line.taxes_id, line.price_unit, line.product_qty, line.product_id, line.order_id.partner_id) cur = line.order_id.pricelist_id.currency_id res[line.id] = cur_obj.round(cr, uid, cur, taxes['total']) return res diff --git a/addons/purchase/purchase_view.xml b/addons/purchase/purchase_view.xml index cff258e3017..db71a969fbe 100644 --- a/addons/purchase/purchase_view.xml +++ b/addons/purchase/purchase_view.xml @@ -282,8 +282,6 @@
- - diff --git a/addons/purchase/stock_view.xml b/addons/purchase/stock_view.xml index 9e5aa2e074e..188baeccd69 100644 --- a/addons/purchase/stock_view.xml +++ b/addons/purchase/stock_view.xml @@ -48,6 +48,8 @@