diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py index a1c53eff4b1..c543b493831 100644 --- a/addons/account/account_invoice.py +++ b/addons/account/account_invoice.py @@ -1308,17 +1308,19 @@ class account_invoice(osv.osv): def create_send_note(self, cr, uid, ids, context=None): for obj in self.browse(cr, uid, ids, context=context): - self.message_post(cr, uid, [obj.id], body=_("%s created.") % (_(self._get_document_type(obj.type))), context=context) + self.message_post(cr, uid, [obj.id], body=_("%s created.") % (self._get_document_type(obj.type)), + subtype="account.mt_invoice_new", context=context) def confirm_paid_send_note(self, cr, uid, ids, context=None): - for obj in self.browse(cr, uid, ids, context=context): - self.message_post(cr, uid, [obj.id], body=_("%s paid.") % (_(self._get_document_type(obj.type))), context=context) + for obj in self.browse(cr, uid, ids, context=context): + self.message_post(cr, uid, [obj.id], body=_("%s paid.") % (self._get_document_type(obj.type)), + subtype="account.mt_invoice_paid", context=context) def invoice_cancel_send_note(self, cr, uid, ids, context=None): for obj in self.browse(cr, uid, ids, context=context): - self.message_post(cr, uid, [obj.id], body=_("%s cancelled.") % (_(self._get_document_type(obj.type))), context=context) + self.message_post(cr, uid, [obj.id], body=_("%s cancelled.") % (self._get_document_type(obj.type)), + context=context) -account_invoice() class account_invoice_line(osv.osv): diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml index 4a587eee6fe..26e18271dc2 100644 --- a/addons/account/account_invoice_view.xml +++ b/addons/account/account_invoice_view.xml @@ -189,7 +189,7 @@ - + @@ -278,7 +278,6 @@
-
@@ -438,7 +437,6 @@
-
diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml index 1fbda80a0fe..1c40bebba52 100644 --- a/addons/account/account_view.xml +++ b/addons/account/account_view.xml @@ -1549,10 +1549,7 @@ account_reconciliation_list

- Good job! -

- There is nothing to reconcile. All invoices and payments - have been reconciled, your partner balance is clean. + No journal items found.

diff --git a/addons/account/data/account_data.xml b/addons/account/data/account_data.xml index e8899d0348a..dd27cfbab4e 100644 --- a/addons/account/data/account_data.xml +++ b/addons/account/data/account_data.xml @@ -518,7 +518,6 @@ - Account Reconcile account.reconcile @@ -554,8 +553,6 @@ - - @@ -564,7 +561,14 @@ account.invoice - - + + + created + account.invoice + + + paid + account.invoice + diff --git a/addons/account/static/src/xml/account_move_reconciliation.xml b/addons/account/static/src/xml/account_move_reconciliation.xml index c266e819198..d7b5301238d 100644 --- a/addons/account/static/src/xml/account_move_reconciliation.xml +++ b/addons/account/static/src/xml/account_move_reconciliation.xml @@ -3,10 +3,17 @@ + +
+

+ Good job! +

+ There is nothing to reconcile. All invoices and payments + have been reconciled, your partner balance is clean. +

+
+
+
+ + +
diff --git a/addons/hr_expense/hr_expense_view.xml b/addons/hr_expense/hr_expense_view.xml index f35547927fa..388e5262f6e 100644 --- a/addons/hr_expense/hr_expense_view.xml +++ b/addons/hr_expense/hr_expense_view.xml @@ -139,7 +139,6 @@
-
diff --git a/addons/hr_holidays/hr_holidays.py b/addons/hr_holidays/hr_holidays.py index 76d4e42818a..306e5201829 100644 --- a/addons/hr_holidays/hr_holidays.py +++ b/addons/hr_holidays/hr_holidays.py @@ -350,46 +350,43 @@ class hr_holidays(osv.osv): # ----------------------------- def needaction_domain_get(self, cr, uid, ids, context=None): - # to be tested, otherwise convert into employee_id in ... emp_obj = self.pool.get('hr.employee') - empids = emp_obj.search(cr, uid, [('parent_id.user_id','=',uid)], context=context) - dom = [ - '&', ('state','=','confirm'),('employee_id', 'in', empids) - ] + empids = emp_obj.search(cr, uid, [('parent_id.user_id', '=', uid)], context=context) + dom = ['&', ('state', '=', 'confirm'), ('employee_id', 'in', empids)] # if this user is a hr.manager, he should do second validations if self.pool.get('res.users').has_group(cr, uid, 'base.group_hr_manager'): - dom = ['|'] + dom + [ ('state','=','validate1') ] + dom = ['|'] + dom + [('state', '=', 'validate1')] return dom def create_notificate(self, cr, uid, ids, context=None): for obj in self.browse(cr, uid, ids, context=context): - self.message_post(cr, uid, ids, - _("The request has been created and is waiting confirmation."), context=context) + self.message_post(cr, uid, ids, + _("Request created, waiting confirmation."), context=context) return True - + def holidays_confirm_notificate(self, cr, uid, ids, context=None): for obj in self.browse(cr, uid, ids): self.message_post(cr, uid, [obj.id], - _("The request has been submitted and is waiting for validation by the manager."), context=context) - + _("Request submitted, waiting for validation by the manager."), context=context) + def holidays_first_validate_notificate(self, cr, uid, ids, context=None): for obj in self.browse(cr, uid, ids, context=context): self.message_post(cr, uid, [obj.id], - _("The request has been approved. A second validation is necessary and is now pending."), context=context) - + _("Request approved, waiting second validation."), context=context) + def holidays_validate_notificate(self, cr, uid, ids, context=None): for obj in self.browse(cr, uid, ids): if obj.double_validation: - self.message_post(cr, uid, [obj.id], - _("The request has been double validated. The validation process is now over."), context=context) + self.message_post(cr, uid, [obj.id], + _("Request validated."), context=context) else: self.message_post(cr, uid, [obj.id], - _("The request has been approved. The validation process is now over."), context=context) - + _("The request has been approved."), context=context) + def holidays_refuse_notificate(self, cr, uid, ids, context=None): for obj in self.browse(cr, uid, ids): self.message_post(cr, uid, [obj.id], - _("The request has been refused. The validation process is now over."), context=context) + _("Request refused"), context=context) class resource_calendar_leaves(osv.osv): diff --git a/addons/hr_holidays/hr_holidays_view.xml b/addons/hr_holidays/hr_holidays_view.xml index 0a2054b14d2..347e2b17ca5 100644 --- a/addons/hr_holidays/hr_holidays_view.xml +++ b/addons/hr_holidays/hr_holidays_view.xml @@ -121,7 +121,6 @@
-
@@ -159,7 +158,6 @@
-
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py index 902b436ed29..31959d7e9c7 100644 --- a/addons/hr_recruitment/hr_recruitment.py +++ b/addons/hr_recruitment/hr_recruitment.py @@ -461,7 +461,7 @@ class hr_applicant(base_stage, osv.Model): """ Override of the (void) default notification method. """ if not stage_id: return True stage_name = self.pool.get('hr.recruitment.stage').name_get(cr, uid, [stage_id], context=context)[0][1] - return self.message_post(cr, uid, ids, body= _("Stage changed to %s.") % (stage_name), context=context) + return self.message_post(cr, uid, ids, body=_("Stage changed to %s.") % (stage_name), context=context) def case_get_note_msg_prefix(self, cr, uid, id, context=None): return 'Applicant' @@ -474,6 +474,8 @@ class hr_applicant(base_stage, osv.Model): if context is None: context = {} for applicant in self.browse(cr, uid, ids, context=context): + if applicant.job_id: + self.pool.get('hr.job').message_post(cr, uid, [applicant.job_id.id], body=_('New employee joined the company %s.')%(applicant.name,), subtype="hr_recruitment.mt_hired", context=context) if applicant.emp_id: message = _("Applicant has been hired and created as an employee.") self.message_post(cr, uid, [applicant.id], body=message, context=context) @@ -492,6 +494,9 @@ class hr_applicant(base_stage, osv.Model): def create_send_note(self, cr, uid, ids, context=None): message = _("Applicant has been created.") + for applicant in self.browse(cr, uid, ids, context=context): + if applicant.job_id: + self.pool.get('hr.job').message_post(cr, uid, [applicant.job_id.id], body=message, subtype="hr_recruitment.mt_applicant_new", context=context) return self.message_post(cr, uid, ids, body=message, context=context) class hr_job(osv.osv): diff --git a/addons/hr_recruitment/hr_recruitment_data.xml b/addons/hr_recruitment/hr_recruitment_data.xml index 84289da7bae..288231a4000 100644 --- a/addons/hr_recruitment/hr_recruitment_data.xml +++ b/addons/hr_recruitment/hr_recruitment_data.xml @@ -460,6 +460,15 @@ You can automatically receive job application though an email gateway, see the H - + + + + Employee Hired + hr.job + + + New Applicant + hr.job + diff --git a/addons/hr_recruitment/hr_recruitment_view.xml b/addons/hr_recruitment/hr_recruitment_view.xml index 32c26573e8c..08e5f31a2d2 100644 --- a/addons/hr_recruitment/hr_recruitment_view.xml +++ b/addons/hr_recruitment/hr_recruitment_view.xml @@ -183,7 +183,6 @@
-
diff --git a/addons/hr_timesheet_invoice/hr_timesheet_invoice.py b/addons/hr_timesheet_invoice/hr_timesheet_invoice.py index 53a90aa26ed..b9574b553d1 100644 --- a/addons/hr_timesheet_invoice/hr_timesheet_invoice.py +++ b/addons/hr_timesheet_invoice/hr_timesheet_invoice.py @@ -85,7 +85,7 @@ class account_analytic_account(osv.osv): return res def on_change_partner_id(self, cr, uid, ids, partner_id, name, context=None): - res = super(account_analytic_account,self).on_change_partner_id(cr, uid, ids,partner_id, name, context=context) + res = super(account_analytic_account, self).on_change_partner_id(cr, uid, ids, partner_id, name, context=context) part = self.pool.get('res.partner').browse(cr, uid, partner_id, context=context) pricelist = part.property_product_pricelist and part.property_product_pricelist.id or False if pricelist: @@ -93,25 +93,25 @@ class account_analytic_account(osv.osv): return res def set_close(self, cr, uid, ids, context=None): - self.write(cr, uid, ids, {'state':'close'}, context=context) + self.write(cr, uid, ids, {'state': 'close'}, context=context) message = _("Contract has been closed.") - self.message_post(cr, uid, ids, body=message, context=context) + self.message_post(cr, uid, ids, body=message, subtype="mt_account_closed", context=context) return True def set_cancel(self, cr, uid, ids, context=None): - self.write(cr, uid, ids, {'state':'cancelled'}, context=context) - message = _("Contract has been cancelled.") - self.message_post(cr, uid, ids, body=message, context=context) + self.write(cr, uid, ids, {'state': 'cancelled'}, context=context) + message = _("Contract has been canceled.") + self.message_post(cr, uid, ids, body=message, subtype="mt_account_canceled", context=context) return True def set_open(self, cr, uid, ids, context=None): - self.write(cr, uid, ids, {'state':'open'}, context=context) + self.write(cr, uid, ids, {'state': 'open'}, context=context) message = _("Contract has been opened.") self.message_post(cr, uid, ids, body=message, context=context) return True def set_pending(self, cr, uid, ids, context=None): - self.write(cr, uid, ids, {'state':'pending'}, context=context) + self.write(cr, uid, ids, {'state': 'pending'}, context=context) message = _("Contract has been set as pending.") self.message_post(cr, uid, ids, body=message, context=context) return True diff --git a/addons/idea/__openerp__.py b/addons/idea/__openerp__.py index 3c7a3fca1b0..8f32e1e91c4 100644 --- a/addons/idea/__openerp__.py +++ b/addons/idea/__openerp__.py @@ -35,7 +35,7 @@ The managers can obtain an easy view of best ideas from all the users. Once installed, check the menu 'Ideas' in the 'Tools' main menu.""", 'author': 'OpenERP SA', 'website': 'http://openerp.com', - 'depends': ['base_tools','mail'], + 'depends': ['mail'], 'data': [ 'security/idea_security.xml', 'security/ir.model.access.csv', diff --git a/addons/idea/idea.py b/addons/idea/idea.py index 9b4a9c580a9..a382948e15c 100644 --- a/addons/idea/idea.py +++ b/addons/idea/idea.py @@ -71,19 +71,17 @@ class idea_idea(osv.osv): self.message_post(cr, uid, ids, body=_('Idea canceled.'), context=context) return True - def idea_open(self, cr, uid, ids, context=None): - self.write(cr, uid, ids, { 'state': 'open'}) + def idea_open(self, cr, uid, ids, context={}): + self.write(cr, uid, ids, {'state': 'open'}, context=context) self.message_post(cr, uid, ids, body=_('Idea accepted.'), context=context) return True - def idea_close(self, cr, uid, ids, context=None): - self.message_post(cr, uid, ids, body=_('Idea done.'), context=context) - self.write(cr, uid, ids, { 'state': 'close' }) + def idea_close(self, cr, uid, ids, context={}): + self.write(cr, uid, ids, {'state': 'close'}, context=context) + self.message_post(cr, uid, ids, body=_('Idea closed.'), context=context) return True - def idea_draft(self, cr, uid, ids, context=None): + def idea_draft(self, cr, uid, ids, context={}): + self.write(cr, uid, ids, {'state': 'draft'}, context=context) self.message_post(cr, uid, ids, body=_('Idea reset to draft.'), context=context) - self.write(cr, uid, ids, { 'state': 'draft' }) return True - -idea_idea() diff --git a/addons/idea/idea_data.xml b/addons/idea/idea_data.xml index d63eb907ef8..421cb6a9eef 100644 --- a/addons/idea/idea_data.xml +++ b/addons/idea/idea_data.xml @@ -15,6 +15,7 @@ + diff --git a/addons/idea/idea_view.xml b/addons/idea/idea_view.xml index 1b7cc5446b8..5a1482830e1 100644 --- a/addons/idea/idea_view.xml +++ b/addons/idea/idea_view.xml @@ -1,6 +1,8 @@ + + idea.category.search @@ -77,7 +79,6 @@
-
diff --git a/addons/import_base/__init__.py b/addons/import_base/__init__.py deleted file mode 100644 index 52366e5128a..00000000000 --- a/addons/import_base/__init__.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Openerp sa (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -import import_framework -import mapper - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/import_base/__openerp__.py b/addons/import_base/__openerp__.py deleted file mode 100644 index 72c4759f735..00000000000 --- a/addons/import_base/__openerp__.py +++ /dev/null @@ -1,40 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -{ - 'name': 'Framework for Complex Import', - 'version': '0.9', - 'category': 'Hidden/Dependency', - 'description': """ -This module provide a class import_framework to help importing complex data from other software. -================================================================================================ - """, - 'author': 'OpenERP SA', - 'website': 'http://www.openerp.com', - 'depends': ['base','mail'], - 'data': ['import_base_view.xml'], - 'demo': [], - 'test': [], #TODO provide test - 'installable': True, - 'auto_install': False, -} - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/import_base/i18n/ar.po b/addons/import_base/i18n/ar.po deleted file mode 100644 index fd1e7b117f7..00000000000 --- a/addons/import_base/i18n/ar.po +++ /dev/null @@ -1,100 +0,0 @@ -# Arabic translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-04-06 07:49+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Arabic \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:434 -#, python-format -msgid "Import failed due to an unexpected error" -msgstr "" - -#. module: import_base -#: code:addons/import_base/import_framework.py:461 -#, python-format -msgid "started at %s and finished at %s \n" -msgstr "" - -#. module: import_base -#: code:addons/import_base/import_framework.py:448 -#, python-format -msgid "Import of your data finished at %s" -msgstr "" - -#. module: import_base -#: code:addons/import_base/import_framework.py:463 -#, python-format -msgid "" -"but failed, in consequence no data were imported to keep database " -"consistency \n" -" error : \n" -msgstr "" - -#. module: import_base -#: code:addons/import_base/import_framework.py:477 -#, python-format -msgid "" -"The import of data \n" -" instance name : %s \n" -msgstr "" - -#. module: import_base -#: code:addons/import_base/import_framework.py:470 -#, python-format -msgid "%s has been successfully imported from %s %s, %s \n" -msgstr "" - -#. module: import_base -#: code:addons/import_base/import_framework.py:447 -#, python-format -msgid "Data Import failed at %s due to an unexpected error" -msgstr "" - -#. module: import_base -#: code:addons/import_base/import_framework.py:436 -#, python-format -msgid "Import finished, notification email sended" -msgstr "" - -#. module: import_base -#: code:addons/import_base/import_framework.py:190 -#, python-format -msgid "%s is not a valid model name" -msgstr "" - -#. module: import_base -#: model:ir.ui.menu,name:import_base.menu_import_crm -msgid "Import" -msgstr "إستيراد" - -#. module: import_base -#: code:addons/import_base/import_framework.py:467 -#, python-format -msgid "with no warning" -msgstr "" - -#. module: import_base -#: code:addons/import_base/import_framework.py:469 -#, python-format -msgid "with warning : %s" -msgstr "" - -#. module: import_base -#: code:addons/import_base/import_framework.py:191 -#, python-format -msgid " fields imported : " -msgstr "" diff --git a/addons/import_base/i18n/de.po b/addons/import_base/i18n/de.po deleted file mode 100644 index dc9beeb2104..00000000000 --- a/addons/import_base/i18n/de.po +++ /dev/null @@ -1,105 +0,0 @@ -# German translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-02-09 15:22+0000\n" -"Last-Translator: Ferdinand @ Camptocamp \n" -"Language-Team: German \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:434 -#, python-format -msgid "Import failed due to an unexpected error" -msgstr "Der Import schlug fehl - unerwarteter Fehler" - -#. module: import_base -#: code:addons/import_base/import_framework.py:461 -#, python-format -msgid "started at %s and finished at %s \n" -msgstr "begann um %s und eendete um %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:448 -#, python-format -msgid "Import of your data finished at %s" -msgstr "Der Import Ihrer Daten endete um %s" - -#. module: import_base -#: code:addons/import_base/import_framework.py:463 -#, python-format -msgid "" -"but failed, in consequence no data were imported to keep database " -"consistency \n" -" error : \n" -msgstr "" -"schlug aber fehl, keine Daten wurden importiert um Inkonsistenzen zu " -"vermeiden.\n" -"Fehler : \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:477 -#, python-format -msgid "" -"The import of data \n" -" instance name : %s \n" -msgstr "" -"Der Import der Daten\n" -" Instanz Name : %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:470 -#, python-format -msgid "%s has been successfully imported from %s %s, %s \n" -msgstr "%s wurde erfolgreich importiert von: %s %s, %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:447 -#, python-format -msgid "Data Import failed at %s due to an unexpected error" -msgstr "Der Datenimport schlug fehl %s infolge eines unvorhergesehen Fehlers" - -#. module: import_base -#: code:addons/import_base/import_framework.py:436 -#, python-format -msgid "Import finished, notification email sended" -msgstr "Import abgeschlossen, Benachrichtigung per Mail versandt" - -#. module: import_base -#: code:addons/import_base/import_framework.py:190 -#, python-format -msgid "%s is not a valid model name" -msgstr "%s ist kein gültiger Modellname" - -#. module: import_base -#: model:ir.ui.menu,name:import_base.menu_import_crm -msgid "Import" -msgstr "Import" - -#. module: import_base -#: code:addons/import_base/import_framework.py:467 -#, python-format -msgid "with no warning" -msgstr "ohne Warnung" - -#. module: import_base -#: code:addons/import_base/import_framework.py:469 -#, python-format -msgid "with warning : %s" -msgstr "mit Warnung : %s" - -#. module: import_base -#: code:addons/import_base/import_framework.py:191 -#, python-format -msgid " fields imported : " -msgstr " importierte Felder : " diff --git a/addons/import_base/i18n/es_CR.po b/addons/import_base/i18n/es_CR.po deleted file mode 100644 index 5c8fd805801..00000000000 --- a/addons/import_base/i18n/es_CR.po +++ /dev/null @@ -1,105 +0,0 @@ -# Spanish (Costa Rica) translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-02-17 15:38+0000\n" -"Last-Translator: Freddy Gonzalez \n" -"Language-Team: Spanish (Costa Rica) \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:434 -#, python-format -msgid "Import failed due to an unexpected error" -msgstr "Importación ha fallado debido a un error inesperado" - -#. module: import_base -#: code:addons/import_base/import_framework.py:461 -#, python-format -msgid "started at %s and finished at %s \n" -msgstr "iniciado en %s y finalizado en %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:448 -#, python-format -msgid "Import of your data finished at %s" -msgstr "La importación de los datos a finalizado en %s" - -#. module: import_base -#: code:addons/import_base/import_framework.py:463 -#, python-format -msgid "" -"but failed, in consequence no data were imported to keep database " -"consistency \n" -" error : \n" -msgstr "" -"pero no pudo, en consecuencia, no hay datos fueron importados a mantener la " -"coherencia de base de datos\n" -" error: \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:477 -#, python-format -msgid "" -"The import of data \n" -" instance name : %s \n" -msgstr "" -"La importación de los datos\n" -" nombre de la instancia: %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:470 -#, python-format -msgid "%s has been successfully imported from %s %s, %s \n" -msgstr "%s asido exitosamente importados desde %s %s, %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:447 -#, python-format -msgid "Data Import failed at %s due to an unexpected error" -msgstr "Importación de datos falló en% s debido a un error inesperado" - -#. module: import_base -#: code:addons/import_base/import_framework.py:436 -#, python-format -msgid "Import finished, notification email sended" -msgstr "Importar a finalizado, notificación de correo electrónico enviado" - -#. module: import_base -#: code:addons/import_base/import_framework.py:190 -#, python-format -msgid "%s is not a valid model name" -msgstr "%s no es un nombre de modelo válido" - -#. module: import_base -#: model:ir.ui.menu,name:import_base.menu_import_crm -msgid "Import" -msgstr "Importar" - -#. module: import_base -#: code:addons/import_base/import_framework.py:467 -#, python-format -msgid "with no warning" -msgstr "sin previo aviso" - -#. module: import_base -#: code:addons/import_base/import_framework.py:469 -#, python-format -msgid "with warning : %s" -msgstr "con aviso : %s" - -#. module: import_base -#: code:addons/import_base/import_framework.py:191 -#, python-format -msgid " fields imported : " -msgstr " Archivos importados : " diff --git a/addons/import_base/i18n/fi.po b/addons/import_base/i18n/fi.po deleted file mode 100644 index e71bd392766..00000000000 --- a/addons/import_base/i18n/fi.po +++ /dev/null @@ -1,104 +0,0 @@ -# Finnish translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-03-26 06:59+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Finnish \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:434 -#, python-format -msgid "Import failed due to an unexpected error" -msgstr "Tuonti epäonnistui tuntemattoman virheen takia" - -#. module: import_base -#: code:addons/import_base/import_framework.py:461 -#, python-format -msgid "started at %s and finished at %s \n" -msgstr "aloitettu %s ja valmistui %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:448 -#, python-format -msgid "Import of your data finished at %s" -msgstr "Tietojen tuonti valmistui %s" - -#. module: import_base -#: code:addons/import_base/import_framework.py:463 -#, python-format -msgid "" -"but failed, in consequence no data were imported to keep database " -"consistency \n" -" error : \n" -msgstr "" -"mutta epäonnistui, tietojen yhtenäisyyden säilyttämiseksi tietoja ei tuotu \n" -" virhe: \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:477 -#, python-format -msgid "" -"The import of data \n" -" instance name : %s \n" -msgstr "" -"Tietojen tuonti \n" -" Instanssin nimi: %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:470 -#, python-format -msgid "%s has been successfully imported from %s %s, %s \n" -msgstr "%s on onnistuneesti tuotu %s %s, %s :stä \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:447 -#, python-format -msgid "Data Import failed at %s due to an unexpected error" -msgstr "Tietojen tuonti epäonnistui %s:ssä tuntemattoman virheen takia" - -#. module: import_base -#: code:addons/import_base/import_framework.py:436 -#, python-format -msgid "Import finished, notification email sended" -msgstr "Tuonti valmis, muistutussähköposti on lähetety" - -#. module: import_base -#: code:addons/import_base/import_framework.py:190 -#, python-format -msgid "%s is not a valid model name" -msgstr "%s ei ole sallittu mallin nimi" - -#. module: import_base -#: model:ir.ui.menu,name:import_base.menu_import_crm -msgid "Import" -msgstr "Tuo" - -#. module: import_base -#: code:addons/import_base/import_framework.py:467 -#, python-format -msgid "with no warning" -msgstr "ei varoituksia" - -#. module: import_base -#: code:addons/import_base/import_framework.py:469 -#, python-format -msgid "with warning : %s" -msgstr "varoituksella : %s" - -#. module: import_base -#: code:addons/import_base/import_framework.py:191 -#, python-format -msgid " fields imported : " -msgstr " Tuodut kentät : " diff --git a/addons/import_base/i18n/fr.po b/addons/import_base/i18n/fr.po deleted file mode 100644 index ddead31a789..00000000000 --- a/addons/import_base/i18n/fr.po +++ /dev/null @@ -1,105 +0,0 @@ -# French translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-03-05 21:56+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: French \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:434 -#, python-format -msgid "Import failed due to an unexpected error" -msgstr "Échec de l'importation en raison d'une erreur inattendue" - -#. module: import_base -#: code:addons/import_base/import_framework.py:461 -#, python-format -msgid "started at %s and finished at %s \n" -msgstr "commencé à %s et terminé à %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:448 -#, python-format -msgid "Import of your data finished at %s" -msgstr "Import de vos données terminé à %s" - -#. module: import_base -#: code:addons/import_base/import_framework.py:463 -#, python-format -msgid "" -"but failed, in consequence no data were imported to keep database " -"consistency \n" -" error : \n" -msgstr "" -"mais n'a pas réussi, en conséquence aucune donnée n'a été importée pour " -"maintenir la cohérence de base de données \n" -" erreur : \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:477 -#, python-format -msgid "" -"The import of data \n" -" instance name : %s \n" -msgstr "" -"Import des données\n" -" nom de l'instance : %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:470 -#, python-format -msgid "%s has been successfully imported from %s %s, %s \n" -msgstr "%s a été correctement importé de %s %s, %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:447 -#, python-format -msgid "Data Import failed at %s due to an unexpected error" -msgstr "Échec de l'importation à %s en raison d'une erreur inattendue" - -#. module: import_base -#: code:addons/import_base/import_framework.py:436 -#, python-format -msgid "Import finished, notification email sended" -msgstr "Importation terminée, un courriel de notification a été envoyé" - -#. module: import_base -#: code:addons/import_base/import_framework.py:190 -#, python-format -msgid "%s is not a valid model name" -msgstr "%s n'est pas un nom de modèle valide" - -#. module: import_base -#: model:ir.ui.menu,name:import_base.menu_import_crm -msgid "Import" -msgstr "" - -#. module: import_base -#: code:addons/import_base/import_framework.py:467 -#, python-format -msgid "with no warning" -msgstr "sans avertissement" - -#. module: import_base -#: code:addons/import_base/import_framework.py:469 -#, python-format -msgid "with warning : %s" -msgstr "avec avertissement : %s" - -#. module: import_base -#: code:addons/import_base/import_framework.py:191 -#, python-format -msgid " fields imported : " -msgstr " champs importés : " diff --git a/addons/import_base/i18n/import_base.pot b/addons/import_base/i18n/import_base.pot deleted file mode 100644 index cc227de8993..00000000000 --- a/addons/import_base/i18n/import_base.pot +++ /dev/null @@ -1,100 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * import_base -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 6.1rc1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-02-08 00:36+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:434 -#, python-format -msgid "Import failed due to an unexpected error" -msgstr "" - -#. module: import_base -#: code:addons/import_base/import_framework.py:461 -#, python-format -msgid "started at %s and finished at %s \n" -"" -msgstr "" - -#. module: import_base -#: code:addons/import_base/import_framework.py:448 -#, python-format -msgid "Import of your data finished at %s" -msgstr "" - -#. module: import_base -#: code:addons/import_base/import_framework.py:463 -#, python-format -msgid "but failed, in consequence no data were imported to keep database consistency \n" -" error : \n" -"" -msgstr "" - -#. module: import_base -#: code:addons/import_base/import_framework.py:477 -#, python-format -msgid "The import of data \n" -" instance name : %s \n" -"" -msgstr "" - -#. module: import_base -#: code:addons/import_base/import_framework.py:470 -#, python-format -msgid "%s has been successfully imported from %s %s, %s \n" -"" -msgstr "" - -#. module: import_base -#: code:addons/import_base/import_framework.py:447 -#, python-format -msgid "Data Import failed at %s due to an unexpected error" -msgstr "" - -#. module: import_base -#: code:addons/import_base/import_framework.py:436 -#, python-format -msgid "Import finished, notification email sended" -msgstr "" - -#. module: import_base -#: code:addons/import_base/import_framework.py:190 -#, python-format -msgid "%s is not a valid model name" -msgstr "" - -#. module: import_base -#: model:ir.ui.menu,name:import_base.menu_import_crm -msgid "Import" -msgstr "" - -#. module: import_base -#: code:addons/import_base/import_framework.py:467 -#, python-format -msgid "with no warning" -msgstr "" - -#. module: import_base -#: code:addons/import_base/import_framework.py:469 -#, python-format -msgid "with warning : %s" -msgstr "" - -#. module: import_base -#: code:addons/import_base/import_framework.py:191 -#, python-format -msgid " fields imported : " -msgstr "" - diff --git a/addons/import_base/i18n/ja.po b/addons/import_base/i18n/ja.po deleted file mode 100644 index 6c1d5aef0c7..00000000000 --- a/addons/import_base/i18n/ja.po +++ /dev/null @@ -1,104 +0,0 @@ -# Japanese translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-24 18:29+0000\n" -"Last-Translator: Akira Hiyama \n" -"Language-Team: Japanese \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:434 -#, python-format -msgid "Import failed due to an unexpected error" -msgstr "予期しないエラーでインポートが失敗しました。" - -#. module: import_base -#: code:addons/import_base/import_framework.py:461 -#, python-format -msgid "started at %s and finished at %s \n" -msgstr "%s で起動し %s で終了 \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:448 -#, python-format -msgid "Import of your data finished at %s" -msgstr "データのインポートは %s で終了しました。" - -#. module: import_base -#: code:addons/import_base/import_framework.py:463 -#, python-format -msgid "" -"but failed, in consequence no data were imported to keep database " -"consistency \n" -" error : \n" -msgstr "" -"失敗しました。結果としてデータベースの整合性維持のためデータはインポートされませんでした。 \n" -" エラー: \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:477 -#, python-format -msgid "" -"The import of data \n" -" instance name : %s \n" -msgstr "" -"データのインポート\n" -" インスタンス名:%s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:470 -#, python-format -msgid "%s has been successfully imported from %s %s, %s \n" -msgstr "%s は正常にインポートされました。元:%s %s、%s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:447 -#, python-format -msgid "Data Import failed at %s due to an unexpected error" -msgstr "データインポートは %s で予期しないエラーのため失敗しました。" - -#. module: import_base -#: code:addons/import_base/import_framework.py:436 -#, python-format -msgid "Import finished, notification email sended" -msgstr "インポートが完了しました。通知メールが送信されました。" - -#. module: import_base -#: code:addons/import_base/import_framework.py:190 -#, python-format -msgid "%s is not a valid model name" -msgstr "%s は有効なモデル名ではありません。" - -#. module: import_base -#: model:ir.ui.menu,name:import_base.menu_import_crm -msgid "Import" -msgstr "インポート" - -#. module: import_base -#: code:addons/import_base/import_framework.py:467 -#, python-format -msgid "with no warning" -msgstr "警告なしで" - -#. module: import_base -#: code:addons/import_base/import_framework.py:469 -#, python-format -msgid "with warning : %s" -msgstr "警告付きで:%s" - -#. module: import_base -#: code:addons/import_base/import_framework.py:191 -#, python-format -msgid " fields imported : " -msgstr " 項目がインポートされました: " diff --git a/addons/import_base/i18n/nb.po b/addons/import_base/i18n/nb.po deleted file mode 100644 index 62b30d04da6..00000000000 --- a/addons/import_base/i18n/nb.po +++ /dev/null @@ -1,105 +0,0 @@ -# Norwegian Bokmal translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-09-08 19:39+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Norwegian Bokmal \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-09-09 04:52+0000\n" -"X-Generator: Launchpad (build 15914)\n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:434 -#, python-format -msgid "Import failed due to an unexpected error" -msgstr "Import mislyktes på grunn av en uventet feil." - -#. module: import_base -#: code:addons/import_base/import_framework.py:461 -#, python-format -msgid "started at %s and finished at %s \n" -msgstr "Startet på% s og ferdig på% s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:448 -#, python-format -msgid "Import of your data finished at %s" -msgstr "Import av dine data ferdig på% s" - -#. module: import_base -#: code:addons/import_base/import_framework.py:463 -#, python-format -msgid "" -"but failed, in consequence no data were imported to keep database " -"consistency \n" -" error : \n" -msgstr "" -"Men mislyktes, i følge ingen data ble importert for å holde databasen " -"konsistens\n" -"  feil: \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:477 -#, python-format -msgid "" -"The import of data \n" -" instance name : %s \n" -msgstr "" -"Import av data\n" -" Eksempel navn:% s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:470 -#, python-format -msgid "%s has been successfully imported from %s %s, %s \n" -msgstr "% s har blitt importert fra% s% s,% s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:447 -#, python-format -msgid "Data Import failed at %s due to an unexpected error" -msgstr "Dataimport mislyktes ved% s på grunn av en uventet feil." - -#. module: import_base -#: code:addons/import_base/import_framework.py:436 -#, python-format -msgid "Import finished, notification email sended" -msgstr "Import ferdig, e-postmelding sendt." - -#. module: import_base -#: code:addons/import_base/import_framework.py:190 -#, python-format -msgid "%s is not a valid model name" -msgstr "% s er ikke en gyldig modellnavn." - -#. module: import_base -#: model:ir.ui.menu,name:import_base.menu_import_crm -msgid "Import" -msgstr "Import" - -#. module: import_base -#: code:addons/import_base/import_framework.py:467 -#, python-format -msgid "with no warning" -msgstr "Uten advarsel." - -#. module: import_base -#: code:addons/import_base/import_framework.py:469 -#, python-format -msgid "with warning : %s" -msgstr "Med advarsel :%s" - -#. module: import_base -#: code:addons/import_base/import_framework.py:191 -#, python-format -msgid " fields imported : " -msgstr " Felt importert: " diff --git a/addons/import_base/i18n/nl.po b/addons/import_base/i18n/nl.po deleted file mode 100644 index d4f898f4f10..00000000000 --- a/addons/import_base/i18n/nl.po +++ /dev/null @@ -1,106 +0,0 @@ -# Dutch translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-02-21 18:42+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Dutch \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:434 -#, python-format -msgid "Import failed due to an unexpected error" -msgstr "Import is mislukt door een onverwachte fout" - -#. module: import_base -#: code:addons/import_base/import_framework.py:461 -#, python-format -msgid "started at %s and finished at %s \n" -msgstr "gestart op %s en geëindigd op %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:448 -#, python-format -msgid "Import of your data finished at %s" -msgstr "Import van uw gegevens geëindigd op %s" - -#. module: import_base -#: code:addons/import_base/import_framework.py:463 -#, python-format -msgid "" -"but failed, in consequence no data were imported to keep database " -"consistency \n" -" error : \n" -msgstr "" -"maar mislukt, waardoor geen gegevens zijn geïmporteerd, zodat de database " -"consistent blijft \n" -" fout: \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:477 -#, python-format -msgid "" -"The import of data \n" -" instance name : %s \n" -msgstr "" -"De import van gegevens \n" -"\n" -" instantie naam: %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:470 -#, python-format -msgid "%s has been successfully imported from %s %s, %s \n" -msgstr "%s is succesvol geïmporteerd van %s %s, %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:447 -#, python-format -msgid "Data Import failed at %s due to an unexpected error" -msgstr "Gegevens import mislukt op %s door een onverwachte fout" - -#. module: import_base -#: code:addons/import_base/import_framework.py:436 -#, python-format -msgid "Import finished, notification email sended" -msgstr "Import beëindigd. Notificatie e-mail is verzonden" - -#. module: import_base -#: code:addons/import_base/import_framework.py:190 -#, python-format -msgid "%s is not a valid model name" -msgstr "%s is geen geldige model naam" - -#. module: import_base -#: model:ir.ui.menu,name:import_base.menu_import_crm -msgid "Import" -msgstr "Importeren" - -#. module: import_base -#: code:addons/import_base/import_framework.py:467 -#, python-format -msgid "with no warning" -msgstr "met geen waarsschuwing" - -#. module: import_base -#: code:addons/import_base/import_framework.py:469 -#, python-format -msgid "with warning : %s" -msgstr "met waarschuwing: %s" - -#. module: import_base -#: code:addons/import_base/import_framework.py:191 -#, python-format -msgid " fields imported : " -msgstr " velden geïmporteerd: " diff --git a/addons/import_base/i18n/pl.po b/addons/import_base/i18n/pl.po deleted file mode 100644 index 41a324caa79..00000000000 --- a/addons/import_base/i18n/pl.po +++ /dev/null @@ -1,105 +0,0 @@ -# Polish translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-02-25 20:41+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Polish \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:434 -#, python-format -msgid "Import failed due to an unexpected error" -msgstr "Import nieudany z nieznanego powodu" - -#. module: import_base -#: code:addons/import_base/import_framework.py:461 -#, python-format -msgid "started at %s and finished at %s \n" -msgstr "rozpoczęty %s i zakończony %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:448 -#, python-format -msgid "Import of your data finished at %s" -msgstr "Import danych zakończony o %s" - -#. module: import_base -#: code:addons/import_base/import_framework.py:463 -#, python-format -msgid "" -"but failed, in consequence no data were imported to keep database " -"consistency \n" -" error : \n" -msgstr "" -"ale nieudany, w konsekwencji żadne dane nie zostały zaimportowane, aby " -"utrzymać spójność bazy danych \n" -" błąd : \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:477 -#, python-format -msgid "" -"The import of data \n" -" instance name : %s \n" -msgstr "" -"Import danych \n" -" nazwa instancji : %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:470 -#, python-format -msgid "%s has been successfully imported from %s %s, %s \n" -msgstr "%s zostało poprawnie zaimportowanych z %s %s, %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:447 -#, python-format -msgid "Data Import failed at %s due to an unexpected error" -msgstr "Import danych nie powiódł się o %s z nieznanego powodu" - -#. module: import_base -#: code:addons/import_base/import_framework.py:436 -#, python-format -msgid "Import finished, notification email sended" -msgstr "Import zakończony, mail informacyjny wysłany" - -#. module: import_base -#: code:addons/import_base/import_framework.py:190 -#, python-format -msgid "%s is not a valid model name" -msgstr "%s nie jest dozwoloną nazwą modelu" - -#. module: import_base -#: model:ir.ui.menu,name:import_base.menu_import_crm -msgid "Import" -msgstr "Importuj" - -#. module: import_base -#: code:addons/import_base/import_framework.py:467 -#, python-format -msgid "with no warning" -msgstr "bez ostrzeżeń" - -#. module: import_base -#: code:addons/import_base/import_framework.py:469 -#, python-format -msgid "with warning : %s" -msgstr "z ostrzeżeniami : %s" - -#. module: import_base -#: code:addons/import_base/import_framework.py:191 -#, python-format -msgid " fields imported : " -msgstr " zaimportowane pola : " diff --git a/addons/import_base/i18n/pt.po b/addons/import_base/i18n/pt.po deleted file mode 100644 index af93410892a..00000000000 --- a/addons/import_base/i18n/pt.po +++ /dev/null @@ -1,105 +0,0 @@ -# Portuguese translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-04-09 13:46+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Portuguese \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:434 -#, python-format -msgid "Import failed due to an unexpected error" -msgstr "A importação falhou devido a um erro inesperado" - -#. module: import_base -#: code:addons/import_base/import_framework.py:461 -#, python-format -msgid "started at %s and finished at %s \n" -msgstr "começado em %s e finalizado em %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:448 -#, python-format -msgid "Import of your data finished at %s" -msgstr "Importação de dados terminou em %s" - -#. module: import_base -#: code:addons/import_base/import_framework.py:463 -#, python-format -msgid "" -"but failed, in consequence no data were imported to keep database " -"consistency \n" -" error : \n" -msgstr "" -"mas não conseguiu, em consequência da não existência de dados, foram " -"importados para manter a consistência do banco de dados \n" -" erro: \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:477 -#, python-format -msgid "" -"The import of data \n" -" instance name : %s \n" -msgstr "" -"Importação de dados \n" -" nome da instância: %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:470 -#, python-format -msgid "%s has been successfully imported from %s %s, %s \n" -msgstr "%s foi importado com sucesso para %s %s,%s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:447 -#, python-format -msgid "Data Import failed at %s due to an unexpected error" -msgstr "Importação de dados falhada em %s devido a um erro inesperado" - -#. module: import_base -#: code:addons/import_base/import_framework.py:436 -#, python-format -msgid "Import finished, notification email sended" -msgstr "Importação concluída, notificação enviada para o email" - -#. module: import_base -#: code:addons/import_base/import_framework.py:190 -#, python-format -msgid "%s is not a valid model name" -msgstr "%s não é um nome de modelo válido" - -#. module: import_base -#: model:ir.ui.menu,name:import_base.menu_import_crm -msgid "Import" -msgstr "Importar" - -#. module: import_base -#: code:addons/import_base/import_framework.py:467 -#, python-format -msgid "with no warning" -msgstr "Sem avisos" - -#. module: import_base -#: code:addons/import_base/import_framework.py:469 -#, python-format -msgid "with warning : %s" -msgstr "com aviso: %s" - -#. module: import_base -#: code:addons/import_base/import_framework.py:191 -#, python-format -msgid " fields imported : " -msgstr " campos importados: " diff --git a/addons/import_base/i18n/pt_BR.po b/addons/import_base/i18n/pt_BR.po deleted file mode 100644 index 476a54ec7bb..00000000000 --- a/addons/import_base/i18n/pt_BR.po +++ /dev/null @@ -1,105 +0,0 @@ -# Brazilian Portuguese translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-08-01 01:59+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Brazilian Portuguese \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:434 -#, python-format -msgid "Import failed due to an unexpected error" -msgstr "A importação falhou devido a um erro inesperado" - -#. module: import_base -#: code:addons/import_base/import_framework.py:461 -#, python-format -msgid "started at %s and finished at %s \n" -msgstr "Início em %s e término em %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:448 -#, python-format -msgid "Import of your data finished at %s" -msgstr "A Importação de seus dados terminou em %s" - -#. module: import_base -#: code:addons/import_base/import_framework.py:463 -#, python-format -msgid "" -"but failed, in consequence no data were imported to keep database " -"consistency \n" -" error : \n" -msgstr "" -"mas falhou, por isso nenhum dado foi importado para manter a consistência do " -"banco de dados \n" -" erro: \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:477 -#, python-format -msgid "" -"The import of data \n" -" instance name : %s \n" -msgstr "" -"A importação de dados \n" -" nome da instância: %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:470 -#, python-format -msgid "%s has been successfully imported from %s %s, %s \n" -msgstr "%s foi importada com sucesso de %s %s, %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:447 -#, python-format -msgid "Data Import failed at %s due to an unexpected error" -msgstr "A importação falhou em %s devido a um erro inesperado" - -#. module: import_base -#: code:addons/import_base/import_framework.py:436 -#, python-format -msgid "Import finished, notification email sended" -msgstr "Importação Concluída, o email de notificação foi enviado" - -#. module: import_base -#: code:addons/import_base/import_framework.py:190 -#, python-format -msgid "%s is not a valid model name" -msgstr "%s não é um nome de modelo válido" - -#. module: import_base -#: model:ir.ui.menu,name:import_base.menu_import_crm -msgid "Import" -msgstr "Importar" - -#. module: import_base -#: code:addons/import_base/import_framework.py:467 -#, python-format -msgid "with no warning" -msgstr "sem nenhum erro" - -#. module: import_base -#: code:addons/import_base/import_framework.py:469 -#, python-format -msgid "with warning : %s" -msgstr "com avisos: %s" - -#. module: import_base -#: code:addons/import_base/import_framework.py:191 -#, python-format -msgid " fields imported : " -msgstr " campos importados: " diff --git a/addons/import_base/i18n/ro.po b/addons/import_base/i18n/ro.po deleted file mode 100644 index 3f873c90a09..00000000000 --- a/addons/import_base/i18n/ro.po +++ /dev/null @@ -1,104 +0,0 @@ -# Romanian translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-26 19:17+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Romanian \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:434 -#, python-format -msgid "Import failed due to an unexpected error" -msgstr "Importul a esuat datorita unei greseli neasteptate" - -#. module: import_base -#: code:addons/import_base/import_framework.py:461 -#, python-format -msgid "started at %s and finished at %s \n" -msgstr "inceput la %s si finalizat la %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:448 -#, python-format -msgid "Import of your data finished at %s" -msgstr "Importul datelor d-voastra s-a finalizat la %s" - -#. module: import_base -#: code:addons/import_base/import_framework.py:463 -#, python-format -msgid "" -"but failed, in consequence no data were imported to keep database " -"consistency \n" -" error : \n" -msgstr "" -"dar a esuat, in consecinta nu au fost importate datele pentru a mentine " -"consistenta bazei de date \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:477 -#, python-format -msgid "" -"The import of data \n" -" instance name : %s \n" -msgstr "" -"Importul datelor \n" -" nume instanta : %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:470 -#, python-format -msgid "%s has been successfully imported from %s %s, %s \n" -msgstr "%s a fost importat cu succes de la %s %s, %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:447 -#, python-format -msgid "Data Import failed at %s due to an unexpected error" -msgstr "Importul de date a esuat la %s datorita unei erori neasteptate" - -#. module: import_base -#: code:addons/import_base/import_framework.py:436 -#, python-format -msgid "Import finished, notification email sended" -msgstr "Importul s-a finalizat, a fost trimis e-mail-ul de instiintare" - -#. module: import_base -#: code:addons/import_base/import_framework.py:190 -#, python-format -msgid "%s is not a valid model name" -msgstr "%s nu este nu nume valid de model" - -#. module: import_base -#: model:ir.ui.menu,name:import_base.menu_import_crm -msgid "Import" -msgstr "Importati" - -#. module: import_base -#: code:addons/import_base/import_framework.py:467 -#, python-format -msgid "with no warning" -msgstr "fara avertizare" - -#. module: import_base -#: code:addons/import_base/import_framework.py:469 -#, python-format -msgid "with warning : %s" -msgstr "cu avertizare : %s" - -#. module: import_base -#: code:addons/import_base/import_framework.py:191 -#, python-format -msgid " fields imported : " -msgstr " campuri importate : " diff --git a/addons/import_base/i18n/sv.po b/addons/import_base/i18n/sv.po deleted file mode 100644 index 885b055355a..00000000000 --- a/addons/import_base/i18n/sv.po +++ /dev/null @@ -1,105 +0,0 @@ -# Swedish translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-06-04 10:28+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Swedish \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:434 -#, python-format -msgid "Import failed due to an unexpected error" -msgstr "Import misslyckades på grund av oväntat fel" - -#. module: import_base -#: code:addons/import_base/import_framework.py:461 -#, python-format -msgid "started at %s and finished at %s \n" -msgstr "Startade på %s och avslutade på %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:448 -#, python-format -msgid "Import of your data finished at %s" -msgstr "Importen av dina data avslutades på %s" - -#. module: import_base -#: code:addons/import_base/import_framework.py:463 -#, python-format -msgid "" -"but failed, in consequence no data were imported to keep database " -"consistency \n" -" error : \n" -msgstr "" -"men misslyckades, till följd att inga data importerades för att hålla " -"databasen konsistent\n" -"  fel: \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:477 -#, python-format -msgid "" -"The import of data \n" -" instance name : %s \n" -msgstr "" -"Importen av data \n" -" instans namn: %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:470 -#, python-format -msgid "%s has been successfully imported from %s %s, %s \n" -msgstr "%s har importerats från %s %s, %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:447 -#, python-format -msgid "Data Import failed at %s due to an unexpected error" -msgstr "Data import misslyckades vid %s på grund av ett oväntat fel" - -#. module: import_base -#: code:addons/import_base/import_framework.py:436 -#, python-format -msgid "Import finished, notification email sended" -msgstr "Import genomförd, e-post notifiering har skickats" - -#. module: import_base -#: code:addons/import_base/import_framework.py:190 -#, python-format -msgid "%s is not a valid model name" -msgstr "%s är inte ett tillåtet modellnamn" - -#. module: import_base -#: model:ir.ui.menu,name:import_base.menu_import_crm -msgid "Import" -msgstr "Import" - -#. module: import_base -#: code:addons/import_base/import_framework.py:467 -#, python-format -msgid "with no warning" -msgstr "utan varning" - -#. module: import_base -#: code:addons/import_base/import_framework.py:469 -#, python-format -msgid "with warning : %s" -msgstr "med varning: %s" - -#. module: import_base -#: code:addons/import_base/import_framework.py:191 -#, python-format -msgid " fields imported : " -msgstr " importerade fält: " diff --git a/addons/import_base/i18n/tr.po b/addons/import_base/i18n/tr.po deleted file mode 100644 index f8d023f06fb..00000000000 --- a/addons/import_base/i18n/tr.po +++ /dev/null @@ -1,106 +0,0 @@ -# Turkish translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-02-09 22:46+0000\n" -"Last-Translator: Ahmet Altınışık \n" -"Language-Team: Turkish \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:434 -#, python-format -msgid "Import failed due to an unexpected error" -msgstr "Beklenmeyen hata nedeniyle içeri aktarım yapılamadı" - -#. module: import_base -#: code:addons/import_base/import_framework.py:461 -#, python-format -msgid "started at %s and finished at %s \n" -msgstr "Başlama zamanı %s bitiş zamanı %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:448 -#, python-format -msgid "Import of your data finished at %s" -msgstr "Veri aktarımı bitiş zamanı %s" - -#. module: import_base -#: code:addons/import_base/import_framework.py:463 -#, python-format -msgid "" -"but failed, in consequence no data were imported to keep database " -"consistency \n" -" error : \n" -msgstr "" -"ama başarısız oldu, sonuç olarak veri tutarlılığını korumak için hiçbir veri " -"içeri aktarılmadı \n" -" hata: \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:477 -#, python-format -msgid "" -"The import of data \n" -" instance name : %s \n" -msgstr "" -"Veri Aktarımı \n" -" Kurulum adı: %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:470 -#, python-format -msgid "%s has been successfully imported from %s %s, %s \n" -msgstr "%s başarılı şekide içeri aktarıldı, kaynak %s %s, %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:447 -#, python-format -msgid "Data Import failed at %s due to an unexpected error" -msgstr "" -"beklenmeyen bir hata sebebiyle Veri aktarımı başarısız oldu, yer %s" - -#. module: import_base -#: code:addons/import_base/import_framework.py:436 -#, python-format -msgid "Import finished, notification email sended" -msgstr "Aktarım tamamlandı, bildirim e-postası gönderildi" - -#. module: import_base -#: code:addons/import_base/import_framework.py:190 -#, python-format -msgid "%s is not a valid model name" -msgstr "%s geçerli bir model adı değil" - -#. module: import_base -#: model:ir.ui.menu,name:import_base.menu_import_crm -msgid "Import" -msgstr "İçe aktar" - -#. module: import_base -#: code:addons/import_base/import_framework.py:467 -#, python-format -msgid "with no warning" -msgstr "Uyarı olmadan" - -#. module: import_base -#: code:addons/import_base/import_framework.py:469 -#, python-format -msgid "with warning : %s" -msgstr "Uyarılar ile birlikte: %s" - -#. module: import_base -#: code:addons/import_base/import_framework.py:191 -#, python-format -msgid " fields imported : " -msgstr " alan aktarıldı : " diff --git a/addons/import_base/i18n/zh_CN.po b/addons/import_base/i18n/zh_CN.po deleted file mode 100644 index 2545919e0e9..00000000000 --- a/addons/import_base/i18n/zh_CN.po +++ /dev/null @@ -1,104 +0,0 @@ -# Chinese (Simplified) translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-02-13 05:01+0000\n" -"Last-Translator: Jeff Wang \n" -"Language-Team: Chinese (Simplified) \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:434 -#, python-format -msgid "Import failed due to an unexpected error" -msgstr "导入失败,发生了未知的错误。" - -#. module: import_base -#: code:addons/import_base/import_framework.py:461 -#, python-format -msgid "started at %s and finished at %s \n" -msgstr "从 %s 开始, 到 %s 结束 \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:448 -#, python-format -msgid "Import of your data finished at %s" -msgstr "您的数据导入在 %s 完成" - -#. module: import_base -#: code:addons/import_base/import_framework.py:463 -#, python-format -msgid "" -"but failed, in consequence no data were imported to keep database " -"consistency \n" -" error : \n" -msgstr "但失败了,为了保证数据库的完整性,本次导入的数据被忽略。 \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:477 -#, python-format -msgid "" -"The import of data \n" -" instance name : %s \n" -msgstr "" -"数据导入\n" -" 实例名称:%s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:470 -#, python-format -msgid "%s has been successfully imported from %s %s, %s \n" -msgstr "" -"Copy text \t\n" -"成功导入了%s,来自 %s %s, %s \n" - -#. module: import_base -#: code:addons/import_base/import_framework.py:447 -#, python-format -msgid "Data Import failed at %s due to an unexpected error" -msgstr "导入数据失败在 %s,失败原因未知" - -#. module: import_base -#: code:addons/import_base/import_framework.py:436 -#, python-format -msgid "Import finished, notification email sended" -msgstr "导入完成,已发送通知邮件。" - -#. module: import_base -#: code:addons/import_base/import_framework.py:190 -#, python-format -msgid "%s is not a valid model name" -msgstr "%s 不是一个正确的模型名称" - -#. module: import_base -#: model:ir.ui.menu,name:import_base.menu_import_crm -msgid "Import" -msgstr "导入" - -#. module: import_base -#: code:addons/import_base/import_framework.py:467 -#, python-format -msgid "with no warning" -msgstr "没有警告" - -#. module: import_base -#: code:addons/import_base/import_framework.py:469 -#, python-format -msgid "with warning : %s" -msgstr "有警告:%s" - -#. module: import_base -#: code:addons/import_base/import_framework.py:191 -#, python-format -msgid " fields imported : " -msgstr " 已导入的字段: " diff --git a/addons/import_base/import_base_view.xml b/addons/import_base/import_base_view.xml deleted file mode 100644 index bcfbfa80c4b..00000000000 --- a/addons/import_base/import_base_view.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/addons/import_base/import_framework.py b/addons/import_base/import_framework.py deleted file mode 100644 index 95683129f35..00000000000 --- a/addons/import_base/import_framework.py +++ /dev/null @@ -1,501 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## -import pprint -import mapper -import pooler -import tools -from tools.translate import _ - -from threading import Thread -import datetime -import logging -import StringIO -import traceback -pp = pprint.PrettyPrinter(indent=4) -_logger = logging.getLogger(__name__) - - - -class import_framework(Thread): - """ - This class should be extends, - get_data and get_mapping have to extends - get_state_map and initialize can be extended - for advanced purpose get_default_hook can also be extended - @see dummy import for a minimal exemple - """ - - """ - for import_object, this domain will avoid to find an already existing object - """ - DO_NOT_FIND_DOMAIN = [('id', '=', 0)] - - #TODO don't use context to pass credential parameters - def __init__(self, obj, cr, uid, instance_name, module_name, email_to_notify=False, context=None): - Thread.__init__(self) - self.external_id_field = 'id' - self.obj = obj - self.cr = cr - self.uid = uid - self.instance_name = instance_name - self.module_name = module_name - self.context = context or {} - self.email = email_to_notify - self.table_list = [] - self.initialize() - - """ - Abstract Method to be implemented in - the real instance - """ - def initialize(self): - """ - init before import - usually for the login - """ - pass - - def init_run(self): - """ - call after intialize run in the thread, not in the main process - TO use for long initialization operation - """ - pass - - def get_data(self, table): - """ - @return: a list of dictionaries - each dictionnaries contains the list of pair external_field_name : value - """ - return [{}] - - def get_link(self, from_table, ids, to_table): - """ - @return: a dictionaries that contains the association between the id (from_table) - and the list (to table) of id linked - """ - return {} - - def get_external_id(self, data): - """ - @return the external id - the default implementation return self.external_id_field (that has 'id') by default - if the name of id field is different, you can overwrite this method or change the value - of self.external_id_field - """ - return data[self.external_id_field] - - def get_mapping(self): - """ - @return: { TABLE_NAME : { - 'model' : 'openerp.model.name', - #if true import the table if not just resolve dependencies, use for meta package, by default => True - #Not required - 'import' : True or False, - #Not required - 'dependencies' : [TABLE_1, TABLE_2], - #Not required - 'hook' : self.function_name, #get the val dict of the object, return the same val dict or False - 'map' : { @see mapper - 'openerp_field_name' : 'external_field_name', or val('external_field_name') - 'openerp_field_id/id' : ref(TABLE_1, 'external_id_field'), #make the mapping between the external id and the xml on the right - 'openerp_field2_id/id_parent' : ref(TABLE_1,'external_id_field') #indicate a self dependencies on openerp_field2_id - 'state' : map_val('state_equivalent_field', mapping), # use get_state_map to make the mapping between the value of the field and the value of the state - 'text_field' : concat('field_1', 'field_2', .., delimiter=':'), #concat the value of the list of field in one - 'description_field' : ppconcat('field_1', 'field_2', .., delimiter='\n\t'), #same as above but with a prettier formatting - 'field' : call(callable, arg1, arg2, ..), #call the function with all the value, the function should send the value : self.callable - 'field' : callable - 'field' : call(method, val('external_field') interface of method is self, val where val is the value of the field - 'field' : const(value) #always set this field to value - + any custom mapper that you will define - } - }, - - } - """ - return {} - - def default_hook(self, val): - """ - this hook will be apply on each table that don't have hook - here we define the identity hook - """ - return val - - def _import_table(self, table): - data = self.get_data(table) - map = self.get_mapping()[table]['map'] - hook = self.get_mapping()[table].get('hook', self.default_hook) - model = self.get_mapping()[table]['model'] - - final_data = [] - for val in data: - res = hook(val) - if res: - final_data.append(res) - return self._save_data(model, dict(map), final_data, table) - - def _save_data(self, model, mapping, datas, table): - """ - @param model: the model of the object to import - @param table : the external table where the data come from - @param mapping : definition of the mapping - @see: get_mapping - @param datas : list of dictionnaries - datas = [data_1, data_2, ..] - data_i is a map external field_name => value - and each data_i have a external id => in data_id['id'] - """ - _logger.info(' Importing %s into %s' % (table, model)) - if not datas: - return (0, 'No data found') - mapping['id'] = 'id_new' - res = [] - - - self_dependencies = [] - for k in mapping.keys(): - if '_parent' in k: - self_dependencies.append((k[:-7], mapping.pop(k))) - - for data in datas: - for k, field_name in self_dependencies: - data[k] = data.get(field_name) and self._generate_xml_id(data.get(field_name), table) - - data['id_new'] = self._generate_xml_id(self.get_external_id(data), table) - fields, values = self._fields_mapp(data, mapping, table) - res.append(values) - - model_obj = self.obj.pool.get(model) - if not model_obj: - raise ValueError(_("%s is not a valid model name.") % model) - _logger.debug(_(" fields imported : ") + str(fields)) - (p, r, warning, s) = model_obj.import_data(self.cr, self.uid, fields, res, mode='update', current_module=self.module_name, noupdate=True, context=self.context) - for (field, field_name) in self_dependencies: - self._import_self_dependencies(model_obj, field, datas) - return (len(res), warning) - - def _import_self_dependencies(self, obj, parent_field, datas): - """ - @param parent_field: the name of the field that generate a self_dependencies, we call the object referenced in this - field the parent of the object - @param datas: a list of dictionnaries - Dictionnaries need to contains - id_new : the xml_id of the object - field_new : the xml_id of the parent - """ - fields = ['id', parent_field] - for data in datas: - if data.get(parent_field): - values = [data['id_new'], data[parent_field]] - obj.import_data(self.cr, self.uid, fields, [values], mode='update', current_module=self.module_name, noupdate=True, context=self.context) - - def _preprocess_mapping(self, mapping): - """ - Preprocess the mapping : - after the preprocces, everything is - callable in the val of the dictionary - - use to allow syntaxical sugar like 'field': 'external_field' - instead of 'field' : value('external_field') - """ - map = dict(mapping) - for key, value in map.items(): - if isinstance(value, basestring): - map[key] = mapper.value(value) - #set parent for instance of dbmapper - elif isinstance(value, mapper.dbmapper): - value.set_parent(self) - return map - - - def _fields_mapp(self, dict_sugar, openerp_dict, table): - """ - call all the mapper and transform data - to be compatible with import_data - """ - fields=[] - data_lst = [] - mapping = self._preprocess_mapping(openerp_dict) - for key,val in mapping.items(): - if key not in fields and dict_sugar: - fields.append(key) - value = val(dict(dict_sugar)) - data_lst.append(value) - return fields, data_lst - - def _generate_xml_id(self, name, table): - """ - @param name: name of the object, has to be unique in for a given table - @param table : table where the record we want generate come from - @return: a unique xml id for record, the xml_id will be the same given the same table and same name - To be used to avoid duplication of data that don't have ids - """ - sugar_instance = self.instance_name - name = name.replace('.', '_').replace(',', '_') - return sugar_instance + "_" + table + "_" + name - - - """ - Public interface of the framework - those function can be use in the callable function defined in the mapping - """ - def xml_id_exist(self, table, external_id): - """ - Check if the external id exist in the openerp database - in order to check if the id exist the table where it come from - should be provide - @return the xml_id generated if the external_id exist in the database or false - """ - if not external_id: - return False - - xml_id = self._generate_xml_id(external_id, table) - id = self.obj.pool.get('ir.model.data').search(self.cr, self.uid, [('name', '=', xml_id), ('module', '=', self.module_name)]) - return id and xml_id or False - - def name_exist(self, table, name, model): - """ - Check if the object with the name exist in the openerp database - in order to check if the id exist the table where it come from - should be provide and the model of the object - """ - fields = ['name'] - data = [name] - return self.import_object(fields, data, model, table, name, [('name', '=', name)]) - - def get_mapped_id(self, table, external_id, context=None): - """ - @return return the databse id linked with the external_id - """ - if not external_id: - return False - - xml_id = self._generate_xml_id(external_id, table) - return self.obj.pool.get('ir.model.data').get_object_reference(self.cr, self.uid, self.module_name, xml_id)[1] - - def import_object_mapping(self, mapping, data, model, table, name, domain_search=False): - """ - same as import_objects but instead of two list fields and data, - this method take a dictionnaries : external_field : value - and the mapping similar to the one define in 'map' key - @see import_object, get_mapping - """ - fields, datas = self._fields_mapp(data, mapping, table) - return self.import_object(fields, datas, model, table, name, domain_search) - - def import_object(self, fields, data, model, table, name, domain_search=False): - """ - This method will import an object in the openerp, usefull for field that is only a char in sugar and is an object in openerp - use import_data that will take care to create/update or do nothing with the data - this method return the xml_id - - To be use, when you want to create an object or link if already exist - use DO_NOT_LINK_DOMAIN to create always a new object - @param fields: list of fields needed to create the object without id - @param data: the list of the data, in the same order as the field - ex : fields = ['firstname', 'lastname'] ; data = ['John', 'Mc donalds'] - @param model: the openerp's model of the create/update object - @param table: the table where data come from in sugarcrm, no need to fit the real name of openerp name, just need to be unique - @param unique_name: the name of the object that we want to create/update get the id - @param domain_search : the domain that should find the unique existing record - - @return: the xml_id of the ressources - """ - domain_search = not domain_search and [('name', 'ilike', name)] or domain_search - obj = self.obj.pool.get(model) - if not obj: #if the model doesn't exist - return False - - xml_id = self._generate_xml_id(name, table) - xml_ref = self.mapped_id_if_exist(model, domain_search, table, name) - fields.append('id') - data.append(xml_id) - obj.import_data(self.cr, self.uid, fields, [data], mode='update', current_module=self.module_name, noupdate=True, context=self.context) - return xml_ref or xml_id - - - def mapped_id_if_exist(self, model, domain, table, name): - """ - To be use when we want link with and existing object, if the object don't exist - just ignore. - @param domain : search domain to find existing record, should return a unique record - @param xml_id: xml_id give to the mapping - @param name: external_id or name of the object to create if there is no id - @param table: the name of the table of the object to map - @return : the xml_id if the record exist in the db, False otherwise - """ - obj = self.obj.pool.get(model) - ids = obj.search(self.cr, self.uid, domain, context=self.context) - if ids: - xml_id = self._generate_xml_id(name, table) - ir_model_data_obj = obj.pool.get('ir.model.data') - id = ir_model_data_obj._update(self.cr, self.uid, model, - self.module_name, {}, mode='update', xml_id=xml_id, - noupdate=True, res_id=ids[0], context=self.context) - return xml_id - return False - - - def set_table_list(self, table_list): - """ - Set the list of table to import, this method should be call before run - @param table_list: the list of external table to import - ['Leads', 'Opportunity'] - """ - self.table_list = table_list - - def run(self): - """ - Import all data into openerp, - this is the Entry point to launch the process of import - - - """ - self.data_started = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") - self.cr = pooler.get_db(self.cr.dbname).cursor() - error = False - result = [] - try: - self.init_run() - imported = set() #to invoid importing 2 times the sames modules - for table in self.table_list: - to_import = self.get_mapping()[table].get('import', True) - if not table in imported: - res = self._resolve_dependencies(self.get_mapping()[table].get('dependencies', []), imported) - result.extend(res) - if to_import: - (position, warning) = self._import_table(table) - result.append((table, position, warning)) - imported.add(table) - self.cr.commit() - - except Exception, err: - sh = StringIO.StringIO() - traceback.print_exc(file=sh) - error = sh.getvalue() - print error - - - self.date_ended = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") - self._send_notification_email(result, error) - - self.cr.close() - - def _resolve_dependencies(self, dep, imported): - """ - import dependencies recursively - and avoid to import twice the same table - """ - result = [] - for dependency in dep: - if not dependency in imported: - to_import = self.get_mapping()[dependency].get('import', True) - res = self._resolve_dependencies(self.get_mapping()[dependency].get('dependencies', []), imported) - result.extend(res) - if to_import: - r = self._import_table(dependency) - (position, warning) = r - result.append((dependency, position, warning)) - imported.add(dependency) - return result - - def _send_notification_email(self, result, error): - if not self.email: - return False - email_obj = self.obj.pool.get('mail.mail') - email_id = email_obj.create(self.cr, self.uid, { - 'email_from' : 'import@module.openerp', - 'email_to' : self.email, - 'body_html' : self.get_email_body(result, error), - 'subject' : self.get_email_subject(result, error), - 'auto_delete' : True}) - email_obj.send(self.cr, self.uid, [email_id]) - if error: - _logger.error(_("Import failed due to an unexpected error")) - else: - _logger.info(_("Import finished, notification email sended")) - - def get_email_subject(self, result, error=False): - """ - This method define the subject of the email send by openerp at the end of import - @param result: a list of tuple - (table_name, number_of_record_created/updated, warning) for each table - @return the subject of the mail - - """ - if error: - return _("Data Import failed at %s due to an unexpected error") % self.date_ended - return _("Import of your data finished at %s") % self.date_ended - - def get_email_body(self, result, error=False): - """ - This method define the body of the email send by openerp at the end of import. The body is separated in two part - the header (@see get_body_header), and the generate body with the list of table and number of record imported. - If you want to keep this it's better to overwrite get_body_header - @param result: a list of tuple - (table_name, number_of_record_created/updated, warning) for each table - @return the subject of the mail - - """ - - body = _("started at %s and finished at %s \n") % (self.data_started, self.date_ended) - if error: - body += _("but failed, in consequence no data were imported to keep database consistency \n error : \n") + error - - for (table, nb, warning) in result: - if not warning: - warning = _("with no warning") - else: - warning = _("with warning : %s") % warning - body += _("%s has been successfully imported from %s %s, %s \n") % (nb, self.instance_name, table, warning) - return self.get_body_header(result) + "\n\n" + body - - def get_body_header(self, result): - """ - @return the first sentences written in the mail's body - """ - return _("The import of data \n instance name : %s \n") % self.instance_name - - - #TODO documentation test - def run_test(self): - back_get_data = self.get_data - back_get_link = self.get_link - back_init = self.initialize - self.get_data = self.get_data_test - self.get_link = self.get_link_test - self.initialize = self.intialize_test - self.run() - self.get_data = back_get_data - self.get_link = back_get_link - self.initialize = back_init - - def get_data_test(self, table): - return [{}] - - def get_link_test(self, from_table, ids, to_table): - return {} - - def intialize_test(self): - pass - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/import_base/mapper.py b/addons/import_base/mapper.py deleted file mode 100644 index d68447ad3dd..00000000000 --- a/addons/import_base/mapper.py +++ /dev/null @@ -1,171 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## -import tools - -class mapper(object): - """ - super class for all mapper class - They are call before import data - to transform the mapping into real value that we - will import - - the call function receive a dictionary with external data - 'external_field' : value - """ - def __call__(self, external_values): - raise NotImplementedError() - -class dbmapper(mapper): - """ - Super class for mapper that need to access to - data base or any function of the import_framework - - self.parent contains a reference to the instance of - the import framework - """ - def set_parent(self, parent): - self.parent = parent - - -class concat(mapper): - """ - Use : contact('field_name1', 'field_name2', delimiter='_') - concat value of fields using the delimiter, delimiter is optional - and by default is a space - """ - def __init__(self, *arg, **delimiter): - self.arg = arg - self.delimiter = delimiter and delimiter.get('delimiter', ' ') or ' ' - - def __call__(self, external_values): - return self.delimiter.join(map(lambda x : tools.ustr(external_values.get(x,'')), self.arg)) - -class ppconcat(mapper): - """ - Use : contact('field_name1', 'field_name2', delimiter='_') - concat external field name and value of fields using the delimiter, - delimiter is optional and by default is a two line feeds - - """ - def __init__(self, *arg, **delimiter): - self.arg = arg - self.delimiter = delimiter and delimiter.get('delimiter', ' ') or '\n\n' - - def __call__(self, external_values): - return self.delimiter.join(map(lambda x : x + ": " + tools.ustr(external_values.get(x,'')), self.arg)) - -class const(mapper): - """ - Use : const(arg) - return always arg - """ - def __init__(self, val): - self.val = val - - def __call__(self, external_values): - return self.val - -class value(mapper): - """ - Use : value(external_field_name) - Return the value of the external field name - this is equivalent to the a single string - - usefull for call if you want your call get the value - and don't care about the name of the field - call(self.method, value('field1')) - """ - def __init__(self, val, default='', fallback=False): - self.val = val - self.default = default - self.fallback = fallback - - def __call__(self, external_values): - val = external_values.get(self.val, self.default) - if self.fallback and (not val or val == self.default): - val = external_values.get(self.fallback, self.default) - return val - - -class map_val(mapper): - """ - Use : map_val(external_field, val_mapping) - where val_mapping is a dictionary - with external_val : openerp_val - - usefull for selection field like state - to map value - """ - def __init__(self, val, map, default='draft'): - self.val = value(val) - self.map = map - self.default = default - - def __call__(self, external_values): - return self.map.get(self.val(external_values), self.default) - -class ref(dbmapper): - """ - Use : ref(table_name, external_id) - return the xml_id of the ressource - - to associate an already imported object with the current object - """ - def __init__(self, table, field_name): - self.table = table - self.field_name = field_name - - def __call__(self, external_values): - return self.parent.xml_id_exist(self.table, external_values.get(self.field_name)) - -class refbyname(dbmapper): - """ - Use : refbyname(table_name, external_name, res.model) - same as ref but use the name of the ressource to find it - """ - def __init__(self, table, field_name, model): - self.table = table - self.field_name = field_name - self.model = model - - def __call__(self, external_values): - v = external_values.get(self.field_name, '') - return self.parent.name_exist(self.table, v , self.model) - -class call(mapper): - """ - Use : call(function, arg1, arg2) - to call the function with external val follow by the arg specified - """ - def __init__(self, fun, *arg): - self.fun = fun - self.arg = arg - - def __call__(self, external_values): - args = [] - for arg in self.arg: - if isinstance(arg, mapper): - args.append(arg(external_values)) - else: - args.append(arg) - return self.fun(external_values, *args) - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/import_google/__init__.py b/addons/import_google/__init__.py deleted file mode 100644 index 7ca8ce67ab3..00000000000 --- a/addons/import_google/__init__.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -import partner -import wizard -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/import_google/__openerp__.py b/addons/import_google/__openerp__.py deleted file mode 100644 index b7e190325f1..00000000000 --- a/addons/import_google/__openerp__.py +++ /dev/null @@ -1,46 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -{ - 'name': 'Google Import', - 'version': '1.0', - 'category': 'Customer Relationship Management', - 'description': """ -The module adds google contact in partner address and add google calendar events details in Meeting. -==================================================================================================== -""", - 'author': 'OpenERP SA', - 'website': 'http://www.openerp.com', - 'depends': ['base', 'import_base', 'google_base_account', 'base_calendar'], - 'data': ['security/ir.model.access.csv', - 'sync_google_calendar_view.xml', - 'wizard/import_google_data_view.xml', - 'wizard/google_import_message_view.xml' - ], - 'demo': [], - 'test': [ - #'test/test_sync_google_contact_import_partner.yml', - #'test/test_sync_google_calendar.yml', - ], - 'installable': True, - 'auto_install': False, -} -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/import_google/i18n/ar.po b/addons/import_google/i18n/ar.po deleted file mode 100644 index 3e3064b6ccb..00000000000 --- a/addons/import_google/i18n/ar.po +++ /dev/null @@ -1,224 +0,0 @@ -# Arabic translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-07-07 15:59+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Arabic \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_google -#: help:synchronize.google.import,group_name:0 -msgid "Choose which group to import, By default it takes all." -msgstr "قم باختيار أي مجموعة لتقوم بجلبها، افتراضياً يقوم بأخذ الكل" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Google Calendar Events" -msgstr "قم بجلب أحداث تقويم جوجل" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Events" -msgstr "_جلب الأحداث" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "" -"No Google Username or password Defined for user.\n" -"Please define in user view" -msgstr "" -"لم يتم تعريف اسم مستخدم جوجل و لا كلمة مرور للمستخدم\n" -"رجاء قم بالتعريف في رؤية المستخدم" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#, python-format -msgid "" -"Invalid login detail !\n" -" Specify Username/Password." -msgstr "" -"تفاصيل الدخول غير صالحة!\n" -"* حدد اسم المستخدم/كلمة الرور ." - -#. module: import_google -#: field:synchronize.google.import,supplier:0 -msgid "Supplier" -msgstr "" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Options" -msgstr "" - -#. module: import_google -#: field:synchronize.google.import,group_name:0 -msgid "Group Name" -msgstr "" - -#. module: import_google -#: model:ir.model,name:import_google.model_crm_case_categ -msgid "Category of Case" -msgstr "" - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_contact_form -#: model:ir.ui.menu,name:import_google.menu_sync_contact -msgid "Import Google Contacts" -msgstr "جلب اتصالات قوقل" - -#. module: import_google -#: view:google.import.message:0 -msgid "Import Google Data" -msgstr "جلب معلومات جوجل" - -#. module: import_google -#: view:crm.meeting:0 -msgid "Meeting Type" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "" -"Please install gdata-python-client from http://code.google.com/p/gdata-" -"python-client/downloads/list" -msgstr "" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_login -msgid "Google Contact" -msgstr "" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import contacts from a google account" -msgstr "جلب الاتصالات من حساب جوجل" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Please specify correct user and password !" -msgstr "رجاء قم بتحديد الاسم وكلمة المرور الصحيحة !" - -#. module: import_google -#: field:synchronize.google.import,customer:0 -msgid "Customer" -msgstr "" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Cancel" -msgstr "" - -#. module: import_google -#: model:ir.model,name:import_google.model_synchronize_google_import -msgid "synchronize.google.import" -msgstr "synchronize.google.import" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Contacts" -msgstr "إستيراد جهة الإتصال" - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_form -#: model:ir.ui.menu,name:import_google.menu_sync_calendar -msgid "Import Google Calendar" -msgstr "‘ستيراد تقويم جوجل" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:50 -#, python-format -msgid "Import google" -msgstr "اجلب قوقل" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Error" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "Warning !" -msgstr "" - -#. module: import_google -#: field:synchronize.google.import,create_partner:0 -msgid "Options" -msgstr "" - -#. module: import_google -#: view:google.import.message:0 -msgid "_Ok" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "Google Contacts Import Error!" -msgstr "" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_import_message -msgid "Import Message" -msgstr "" - -#. module: import_google -#: field:synchronize.google.import,calendar_name:0 -msgid "Calendar Name" -msgstr "اسم التقويم" - -#. module: import_google -#: help:synchronize.google.import,supplier:0 -msgid "Check this box to set newly created partner as Supplier." -msgstr "قم باختيار هذا المربع لإنشاء شريك جديد كمورد" - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Import only address" -msgstr "اجلب فقط العنوان" - -#. module: import_google -#: field:crm.case.categ,user_id:0 -msgid "User" -msgstr "" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Partner Status for this Group:" -msgstr "" - -#. module: import_google -#: field:google.import.message,name:0 -msgid "Message" -msgstr "" - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Create partner for each contact" -msgstr "انشاء شريك لكل اتصال" - -#. module: import_google -#: help:synchronize.google.import,customer:0 -msgid "Check this box to set newly created partner as Customer." -msgstr "تحقق من هذا المربع ليتم وضع الشريك الجديد كمورد" - -#~ msgid "Partner status for this group:" -#~ msgstr "حالة الشريك لهذه المجموعة:" diff --git a/addons/import_google/i18n/de.po b/addons/import_google/i18n/de.po deleted file mode 100644 index 90dce948991..00000000000 --- a/addons/import_google/i18n/de.po +++ /dev/null @@ -1,226 +0,0 @@ -# German translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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:48+0000\n" -"Last-Translator: Ferdinand-camptocamp \n" -"Language-Team: German \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_google -#: help:synchronize.google.import,group_name:0 -msgid "Choose which group to import, By default it takes all." -msgstr "Wählen Sie die zu importierenden Gruppen, Standard sind alle" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Google Calendar Events" -msgstr "Importiere Goggle Kalender Termine" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Events" -msgstr "_Import Termine" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "" -"No Google Username or password Defined for user.\n" -"Please define in user view" -msgstr "" -"Kein Google Benutzer oder Passwort definiert.\n" -"Bitte diese in der Benuzter Sicht definieren" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#, python-format -msgid "" -"Invalid login detail !\n" -" Specify Username/Password." -msgstr "" -"Ungültiges Login Detail!\n" -" Geben Sie Benuztername und Passwort ein!" - -#. module: import_google -#: field:synchronize.google.import,supplier:0 -msgid "Supplier" -msgstr "Lieferant" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Options" -msgstr "Import-Einstellungen" - -#. module: import_google -#: field:synchronize.google.import,group_name:0 -msgid "Group Name" -msgstr "Gruppe Bezeichnung" - -#. module: import_google -#: model:ir.model,name:import_google.model_crm_case_categ -msgid "Category of Case" -msgstr "Fall Kategorie" - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_contact_form -#: model:ir.ui.menu,name:import_google.menu_sync_contact -msgid "Import Google Contacts" -msgstr "Import Google Kontakte" - -#. module: import_google -#: view:google.import.message:0 -msgid "Import Google Data" -msgstr "Import Google Data" - -#. module: import_google -#: view:crm.meeting:0 -msgid "Meeting Type" -msgstr "Terminart" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "" -"Please install gdata-python-client from http://code.google.com/p/gdata-" -"python-client/downloads/list" -msgstr "" -"Bitte installieren Sie gdata-python-client von " -"http://code.google.com/p/gdata-python-client/downloads/list" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_login -msgid "Google Contact" -msgstr "Google Kontakt" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import contacts from a google account" -msgstr "Importiere Kontakte von einem Google Konto" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Please specify correct user and password !" -msgstr "Bitte richtigen Namen und Passwort eingeben!" - -#. module: import_google -#: field:synchronize.google.import,customer:0 -msgid "Customer" -msgstr "Kunde" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Cancel" -msgstr "_Abbrechen" - -#. module: import_google -#: model:ir.model,name:import_google.model_synchronize_google_import -msgid "synchronize.google.import" -msgstr "synchronize.google.import" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Contacts" -msgstr "_Importiere Kontakte" - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_form -#: model:ir.ui.menu,name:import_google.menu_sync_calendar -msgid "Import Google Calendar" -msgstr "Import Google Kalender" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:50 -#, python-format -msgid "Import google" -msgstr "Import Google" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Error" -msgstr "Fehler" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "Warning !" -msgstr "Warnung !" - -#. module: import_google -#: field:synchronize.google.import,create_partner:0 -msgid "Options" -msgstr "Einstellungen" - -#. module: import_google -#: view:google.import.message:0 -msgid "_Ok" -msgstr "_OK" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "Google Contacts Import Error!" -msgstr "Google Kontakt Import Fehler!" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_import_message -msgid "Import Message" -msgstr "Importiere Nachricht" - -#. module: import_google -#: field:synchronize.google.import,calendar_name:0 -msgid "Calendar Name" -msgstr "Kalendername" - -#. module: import_google -#: help:synchronize.google.import,supplier:0 -msgid "Check this box to set newly created partner as Supplier." -msgstr "Anhaken, um den neuen Partner als Lieferant zu kennzeichnen" - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Import only address" -msgstr "Importiere nur Adressen" - -#. module: import_google -#: field:crm.case.categ,user_id:0 -msgid "User" -msgstr "Benutzer" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Partner Status for this Group:" -msgstr "Partner Status für diese Gruppe:" - -#. module: import_google -#: field:google.import.message,name:0 -msgid "Message" -msgstr "Mitteilung" - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Create partner for each contact" -msgstr "Erzeuge Partner für jeden Kontakt" - -#. module: import_google -#: help:synchronize.google.import,customer:0 -msgid "Check this box to set newly created partner as Customer." -msgstr "Anhaken, um den neuen Partner als Kunden zu kennzeichnen" - -#~ msgid "Partner status for this group:" -#~ msgstr "Partner Status für diese Gruppe:" diff --git a/addons/import_google/i18n/es.po b/addons/import_google/i18n/es.po deleted file mode 100644 index cf84796f165..00000000000 --- a/addons/import_google/i18n/es.po +++ /dev/null @@ -1,217 +0,0 @@ -# Spanish translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-07-21 21:08+0000\n" -"Last-Translator: FULL NAME \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-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_google -#: help:synchronize.google.import,group_name:0 -msgid "Choose which group to import, By default it takes all." -msgstr "" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Google Calendar Events" -msgstr "" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Events" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "" -"No Google Username or password Defined for user.\n" -"Please define in user view" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#, python-format -msgid "" -"Invalid login detail !\n" -" Specify Username/Password." -msgstr "" - -#. module: import_google -#: field:synchronize.google.import,supplier:0 -msgid "Supplier" -msgstr "" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Options" -msgstr "" - -#. module: import_google -#: field:synchronize.google.import,group_name:0 -msgid "Group Name" -msgstr "" - -#. module: import_google -#: model:ir.model,name:import_google.model_crm_case_categ -msgid "Category of Case" -msgstr "" - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_contact_form -#: model:ir.ui.menu,name:import_google.menu_sync_contact -msgid "Import Google Contacts" -msgstr "" - -#. module: import_google -#: view:google.import.message:0 -msgid "Import Google Data" -msgstr "" - -#. module: import_google -#: view:crm.meeting:0 -msgid "Meeting Type" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "" -"Please install gdata-python-client from http://code.google.com/p/gdata-" -"python-client/downloads/list" -msgstr "" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_login -msgid "Google Contact" -msgstr "" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import contacts from a google account" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Please specify correct user and password !" -msgstr "" - -#. module: import_google -#: field:synchronize.google.import,customer:0 -msgid "Customer" -msgstr "" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Cancel" -msgstr "" - -#. module: import_google -#: model:ir.model,name:import_google.model_synchronize_google_import -msgid "synchronize.google.import" -msgstr "" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Contacts" -msgstr "" - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_form -#: model:ir.ui.menu,name:import_google.menu_sync_calendar -msgid "Import Google Calendar" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:50 -#, python-format -msgid "Import google" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Error" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "Warning !" -msgstr "" - -#. module: import_google -#: field:synchronize.google.import,create_partner:0 -msgid "Options" -msgstr "" - -#. module: import_google -#: view:google.import.message:0 -msgid "_Ok" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "Google Contacts Import Error!" -msgstr "" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_import_message -msgid "Import Message" -msgstr "" - -#. module: import_google -#: field:synchronize.google.import,calendar_name:0 -msgid "Calendar Name" -msgstr "" - -#. module: import_google -#: help:synchronize.google.import,supplier:0 -msgid "Check this box to set newly created partner as Supplier." -msgstr "" - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Import only address" -msgstr "" - -#. module: import_google -#: field:crm.case.categ,user_id:0 -msgid "User" -msgstr "" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Partner Status for this Group:" -msgstr "" - -#. module: import_google -#: field:google.import.message,name:0 -msgid "Message" -msgstr "" - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Create partner for each contact" -msgstr "" - -#. module: import_google -#: help:synchronize.google.import,customer:0 -msgid "Check this box to set newly created partner as Customer." -msgstr "" diff --git a/addons/import_google/i18n/es_CR.po b/addons/import_google/i18n/es_CR.po deleted file mode 100644 index e44b45838ef..00000000000 --- a/addons/import_google/i18n/es_CR.po +++ /dev/null @@ -1,229 +0,0 @@ -# Spanish (Costa Rica) translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-02-17 15:57+0000\n" -"Last-Translator: Freddy Gonzalez \n" -"Language-Team: Spanish (Costa Rica) \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_google -#: help:synchronize.google.import,group_name:0 -msgid "Choose which group to import, By default it takes all." -msgstr "" -"Elija a qué grupo importar, de forma predeterminada se lo lleva todo." - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Google Calendar Events" -msgstr "Importar calendario de eventos calendar" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Events" -msgstr "_Importar Eventos" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "" -"No Google Username or password Defined for user.\n" -"Please define in user view" -msgstr "" -"No Nombre de usuario o contraseña definida por Google para el usuario.\n" -"Por favor, defina en el punto de vista del usuario" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#, python-format -msgid "" -"Invalid login detail !\n" -" Specify Username/Password." -msgstr "" -"¡Datos de acceso no válido!\n" -" Especifique nombre de usuario / contraseña." - -#. module: import_google -#: field:synchronize.google.import,supplier:0 -msgid "Supplier" -msgstr "Proveedor" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Options" -msgstr "Opciones de importación" - -#. module: import_google -#: field:synchronize.google.import,group_name:0 -msgid "Group Name" -msgstr "Nombre grupo" - -#. module: import_google -#: model:ir.model,name:import_google.model_crm_case_categ -msgid "Category of Case" -msgstr "Categoría de caso" - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_contact_form -#: model:ir.ui.menu,name:import_google.menu_sync_contact -msgid "Import Google Contacts" -msgstr "Importar contactos de google" - -#. module: import_google -#: view:google.import.message:0 -msgid "Import Google Data" -msgstr "Importar datos de google" - -#. module: import_google -#: view:crm.meeting:0 -msgid "Meeting Type" -msgstr "Tipo de reunión" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "" -"Please install gdata-python-client from http://code.google.com/p/gdata-" -"python-client/downloads/list" -msgstr "" -"Por favor instale gdata-python-client desde http://code.google.com/p/gdata-" -"python-client/downloads/list" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_login -msgid "Google Contact" -msgstr "Contacto Google" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import contacts from a google account" -msgstr "Importar contactos desde una cuenta de google" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Please specify correct user and password !" -msgstr "¡Por favor especifique el usuario y contraseña correctos!" - -#. module: import_google -#: field:synchronize.google.import,customer:0 -msgid "Customer" -msgstr "Cliente" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Cancel" -msgstr "_Cancelar" - -#. module: import_google -#: model:ir.model,name:import_google.model_synchronize_google_import -msgid "synchronize.google.import" -msgstr "synchronize.google.import" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Contacts" -msgstr "_Importar Contactos" - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_form -#: model:ir.ui.menu,name:import_google.menu_sync_calendar -msgid "Import Google Calendar" -msgstr "Importar calendario de google" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:50 -#, python-format -msgid "Import google" -msgstr "Importar google" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Error" -msgstr "Error" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "Warning !" -msgstr "¡ Advertencia !" - -#. module: import_google -#: field:synchronize.google.import,create_partner:0 -msgid "Options" -msgstr "Opciones" - -#. module: import_google -#: view:google.import.message:0 -msgid "_Ok" -msgstr "_Aceptar" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "Google Contacts Import Error!" -msgstr "¡Contactos de Google Error de importación!" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_import_message -msgid "Import Message" -msgstr "Importar mensaje" - -#. module: import_google -#: field:synchronize.google.import,calendar_name:0 -msgid "Calendar Name" -msgstr "Nombre de calendario" - -#. module: import_google -#: help:synchronize.google.import,supplier:0 -msgid "Check this box to set newly created partner as Supplier." -msgstr "" -"Marque esta casilla para establecer socios de nueva creación como proveedor." - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Import only address" -msgstr "Importar solo direcciones" - -#. module: import_google -#: field:crm.case.categ,user_id:0 -msgid "User" -msgstr "Usuario" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Partner Status for this Group:" -msgstr "" - -#. module: import_google -#: field:google.import.message,name:0 -msgid "Message" -msgstr "Mensaje" - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Create partner for each contact" -msgstr "Crear socio para cada contacto" - -#. module: import_google -#: help:synchronize.google.import,customer:0 -msgid "Check this box to set newly created partner as Customer." -msgstr "" -"Marque esta casilla para establecer pareja recién creado como cliente." - -#~ msgid "Partner status for this group:" -#~ msgstr "Socio de estado para este grupo:" diff --git a/addons/import_google/i18n/fr.po b/addons/import_google/i18n/fr.po deleted file mode 100644 index cedda7fc46c..00000000000 --- a/addons/import_google/i18n/fr.po +++ /dev/null @@ -1,230 +0,0 @@ -# French translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-03-21 18:30+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: French \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_google -#: help:synchronize.google.import,group_name:0 -msgid "Choose which group to import, By default it takes all." -msgstr "Choisisser le groupe a importer, par défaut il les prend tous" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Google Calendar Events" -msgstr "Importation des évènements du calendrier" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Events" -msgstr "_Importer les évènements" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "" -"No Google Username or password Defined for user.\n" -"Please define in user view" -msgstr "" -"Pas de nom et d'utilisateur Google définit pour cet utilisateur.\n" -"Veuillez en définir un pour la vue utilisateur" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#, python-format -msgid "" -"Invalid login detail !\n" -" Specify Username/Password." -msgstr "" -"Détail de connexion non valide!\n" -" Spécifier un Utilisateur/Mot de passe." - -#. module: import_google -#: field:synchronize.google.import,supplier:0 -msgid "Supplier" -msgstr "Fournisseur" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Options" -msgstr "Options d'importation" - -#. module: import_google -#: field:synchronize.google.import,group_name:0 -msgid "Group Name" -msgstr "Nom du groupe" - -#. module: import_google -#: model:ir.model,name:import_google.model_crm_case_categ -msgid "Category of Case" -msgstr "Catégorie de cas" - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_contact_form -#: model:ir.ui.menu,name:import_google.menu_sync_contact -msgid "Import Google Contacts" -msgstr "Importer les contacts Google" - -#. module: import_google -#: view:google.import.message:0 -msgid "Import Google Data" -msgstr "Importer les données Google" - -#. module: import_google -#: view:crm.meeting:0 -msgid "Meeting Type" -msgstr "Type de réunion" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "" -"Please install gdata-python-client from http://code.google.com/p/gdata-" -"python-client/downloads/list" -msgstr "" -"Merci d'installer gdata-python-client à partir de " -"http://code.google.com/p/gdata-python-client/downloads/list" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_login -msgid "Google Contact" -msgstr "Contact Google" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import contacts from a google account" -msgstr "Importer les contacts depuis un compte google" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Please specify correct user and password !" -msgstr "Veuiller spécifier un utilisateur et un mot de passe correct !" - -#. module: import_google -#: field:synchronize.google.import,customer:0 -msgid "Customer" -msgstr "Client" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Cancel" -msgstr "_Annuler" - -#. module: import_google -#: model:ir.model,name:import_google.model_synchronize_google_import -msgid "synchronize.google.import" -msgstr "synchronize.google.import" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Contacts" -msgstr "_Importer les contacts" - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_form -#: model:ir.ui.menu,name:import_google.menu_sync_calendar -msgid "Import Google Calendar" -msgstr "Importer les calendriers Google" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:50 -#, python-format -msgid "Import google" -msgstr "Import Google" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Error" -msgstr "Erreur" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "Warning !" -msgstr "Avertissement !" - -#. module: import_google -#: field:synchronize.google.import,create_partner:0 -msgid "Options" -msgstr "Options" - -#. module: import_google -#: view:google.import.message:0 -msgid "_Ok" -msgstr "_Ok" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "Google Contacts Import Error!" -msgstr "Erreur lors de l'import des contacts Google !" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_import_message -msgid "Import Message" -msgstr "Importer un message" - -#. module: import_google -#: field:synchronize.google.import,calendar_name:0 -msgid "Calendar Name" -msgstr "Nom du calendrier" - -#. module: import_google -#: help:synchronize.google.import,supplier:0 -msgid "Check this box to set newly created partner as Supplier." -msgstr "" -"Cocher cette case pour mettre les nouveaux partenaires crées comme " -"fournisseur." - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Import only address" -msgstr "Importer les adresses seulement" - -#. module: import_google -#: field:crm.case.categ,user_id:0 -msgid "User" -msgstr "utilisateur" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Partner Status for this Group:" -msgstr "" - -#. module: import_google -#: field:google.import.message,name:0 -msgid "Message" -msgstr "Message" - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Create partner for each contact" -msgstr "Créer un partenaire pour chaque contact" - -#. module: import_google -#: help:synchronize.google.import,customer:0 -msgid "Check this box to set newly created partner as Customer." -msgstr "" -"Cocher cette case pour mettre les nouveaux partenaires créer en tant que " -"client" - -#~ msgid "Partner status for this group:" -#~ msgstr "Statut du partenaire pour ce groupe" diff --git a/addons/import_google/i18n/import_google.pot b/addons/import_google/i18n/import_google.pot deleted file mode 100644 index 6693d75616f..00000000000 --- a/addons/import_google/i18n/import_google.pot +++ /dev/null @@ -1,212 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * import_google -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 6.1rc1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-02-08 00:36+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: import_google -#: help:synchronize.google.import,group_name:0 -msgid "Choose which group to import, By default it takes all." -msgstr "" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Google Calendar Events" -msgstr "" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Events" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "No Google Username or password Defined for user.\n" -"Please define in user view" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#, python-format -msgid "Invalid login detail !\n" -" Specify Username/Password." -msgstr "" - -#. module: import_google -#: field:synchronize.google.import,supplier:0 -msgid "Supplier" -msgstr "" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Options" -msgstr "" - -#. module: import_google -#: field:synchronize.google.import,group_name:0 -msgid "Group Name" -msgstr "" - -#. module: import_google -#: model:ir.model,name:import_google.model_crm_case_categ -msgid "Category of Case" -msgstr "" - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_contact_form -#: model:ir.ui.menu,name:import_google.menu_sync_contact -msgid "Import Google Contacts" -msgstr "" - -#. module: import_google -#: view:google.import.message:0 -msgid "Import Google Data" -msgstr "" - -#. module: import_google -#: view:crm.meeting:0 -msgid "Meeting Type" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "Please install gdata-python-client from http://code.google.com/p/gdata-python-client/downloads/list" -msgstr "" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_login -msgid "Google Contact" -msgstr "" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import contacts from a google account" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Please specify correct user and password !" -msgstr "" - -#. module: import_google -#: field:synchronize.google.import,customer:0 -msgid "Customer" -msgstr "" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Cancel" -msgstr "" - -#. module: import_google -#: model:ir.model,name:import_google.model_synchronize_google_import -msgid "synchronize.google.import" -msgstr "" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Contacts" -msgstr "" - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_form -#: model:ir.ui.menu,name:import_google.menu_sync_calendar -msgid "Import Google Calendar" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:50 -#, python-format -msgid "Import google" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Error" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "Warning !" -msgstr "" - -#. module: import_google -#: field:synchronize.google.import,create_partner:0 -msgid "Options" -msgstr "" - -#. module: import_google -#: view:google.import.message:0 -msgid "_Ok" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "Google Contacts Import Error!" -msgstr "" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_import_message -msgid "Import Message" -msgstr "" - -#. module: import_google -#: field:synchronize.google.import,calendar_name:0 -msgid "Calendar Name" -msgstr "" - -#. module: import_google -#: help:synchronize.google.import,supplier:0 -msgid "Check this box to set newly created partner as Supplier." -msgstr "" - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Import only address" -msgstr "" - -#. module: import_google -#: field:crm.case.categ,user_id:0 -msgid "User" -msgstr "" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Partner Status for this Group:" -msgstr "" - -#. module: import_google -#: field:google.import.message,name:0 -msgid "Message" -msgstr "" - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Create partner for each contact" -msgstr "" - -#. module: import_google -#: help:synchronize.google.import,customer:0 -msgid "Check this box to set newly created partner as Customer." -msgstr "" - diff --git a/addons/import_google/i18n/ja.po b/addons/import_google/i18n/ja.po deleted file mode 100644 index 01e67b90c35..00000000000 --- a/addons/import_google/i18n/ja.po +++ /dev/null @@ -1,223 +0,0 @@ -# Japanese translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-07-09 04:44+0000\n" -"Last-Translator: Akira Hiyama \n" -"Language-Team: Japanese \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_google -#: help:synchronize.google.import,group_name:0 -msgid "Choose which group to import, By default it takes all." -msgstr "インポートするグループを選択して下さい。デフォルトでは全てを取得します。1" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Google Calendar Events" -msgstr "Googleカレンダーイベントのインポート" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Events" -msgstr "イベントのインポート" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "" -"No Google Username or password Defined for user.\n" -"Please define in user view" -msgstr "" -"ユーザのGoogleユーザ名またはパスワードが定義されていません。\n" -"ユーザビューで定義して下さい。" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#, python-format -msgid "" -"Invalid login detail !\n" -" Specify Username/Password." -msgstr "" -"ログインの詳細が無効です。\n" -" ユーザ名 / パスワードを指定して下さい。" - -#. module: import_google -#: field:synchronize.google.import,supplier:0 -msgid "Supplier" -msgstr "仕入先" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Options" -msgstr "インポートオプション" - -#. module: import_google -#: field:synchronize.google.import,group_name:0 -msgid "Group Name" -msgstr "グループ名" - -#. module: import_google -#: model:ir.model,name:import_google.model_crm_case_categ -msgid "Category of Case" -msgstr "案件の分類" - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_contact_form -#: model:ir.ui.menu,name:import_google.menu_sync_contact -msgid "Import Google Contacts" -msgstr "Googleコンタクトのインポート" - -#. module: import_google -#: view:google.import.message:0 -msgid "Import Google Data" -msgstr "Googleデータのインポート" - -#. module: import_google -#: view:crm.meeting:0 -msgid "Meeting Type" -msgstr "ミーティングタイプ" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "" -"Please install gdata-python-client from http://code.google.com/p/gdata-" -"python-client/downloads/list" -msgstr "" -"gdata-python-client をインストールして下さい。URL:http://code.google.com/p/gdata-python-" -"client/downloads/list" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_login -msgid "Google Contact" -msgstr "Googleコンタクト" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import contacts from a google account" -msgstr "Googleアカウントからコンタクトのインポート" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Please specify correct user and password !" -msgstr "正しいユーザとパスワードを指定して下さい。" - -#. module: import_google -#: field:synchronize.google.import,customer:0 -msgid "Customer" -msgstr "顧客" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Cancel" -msgstr "キャンセル" - -#. module: import_google -#: model:ir.model,name:import_google.model_synchronize_google_import -msgid "synchronize.google.import" -msgstr "" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Contacts" -msgstr "コンタクトのインポート" - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_form -#: model:ir.ui.menu,name:import_google.menu_sync_calendar -msgid "Import Google Calendar" -msgstr "Googleカレンダーのインポート" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:50 -#, python-format -msgid "Import google" -msgstr "Googleのインポート" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Error" -msgstr "エラー" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "Warning !" -msgstr "警告" - -#. module: import_google -#: field:synchronize.google.import,create_partner:0 -msgid "Options" -msgstr "オプション" - -#. module: import_google -#: view:google.import.message:0 -msgid "_Ok" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "Google Contacts Import Error!" -msgstr "Googleコンタクトのインポートエラーです。" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_import_message -msgid "Import Message" -msgstr "メッセージのインポート" - -#. module: import_google -#: field:synchronize.google.import,calendar_name:0 -msgid "Calendar Name" -msgstr "カレンダー名" - -#. module: import_google -#: help:synchronize.google.import,supplier:0 -msgid "Check this box to set newly created partner as Supplier." -msgstr "仕入先として新しく作成したパートナを設定するにはこのボックスをチェックして下さい。" - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Import only address" -msgstr "住所のみをインポート" - -#. module: import_google -#: field:crm.case.categ,user_id:0 -msgid "User" -msgstr "ユーザ" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Partner Status for this Group:" -msgstr "このグループのパートナステータス:" - -#. module: import_google -#: field:google.import.message,name:0 -msgid "Message" -msgstr "メッセージ" - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Create partner for each contact" -msgstr "各コンタクトのパートナの作成" - -#. module: import_google -#: help:synchronize.google.import,customer:0 -msgid "Check this box to set newly created partner as Customer." -msgstr "顧客として新しく作成したパートナを設定するにはこのボックスをチェックして下さい。" diff --git a/addons/import_google/i18n/mn.po b/addons/import_google/i18n/mn.po deleted file mode 100644 index 9b0376c0d98..00000000000 --- a/addons/import_google/i18n/mn.po +++ /dev/null @@ -1,217 +0,0 @@ -# Mongolian translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-08-31 07:21+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Mongolian \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-09-01 04:55+0000\n" -"X-Generator: Launchpad (build 15890)\n" - -#. module: import_google -#: help:synchronize.google.import,group_name:0 -msgid "Choose which group to import, By default it takes all." -msgstr "" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Google Calendar Events" -msgstr "" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Events" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "" -"No Google Username or password Defined for user.\n" -"Please define in user view" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#, python-format -msgid "" -"Invalid login detail !\n" -" Specify Username/Password." -msgstr "" - -#. module: import_google -#: field:synchronize.google.import,supplier:0 -msgid "Supplier" -msgstr "" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Options" -msgstr "" - -#. module: import_google -#: field:synchronize.google.import,group_name:0 -msgid "Group Name" -msgstr "" - -#. module: import_google -#: model:ir.model,name:import_google.model_crm_case_categ -msgid "Category of Case" -msgstr "" - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_contact_form -#: model:ir.ui.menu,name:import_google.menu_sync_contact -msgid "Import Google Contacts" -msgstr "" - -#. module: import_google -#: view:google.import.message:0 -msgid "Import Google Data" -msgstr "" - -#. module: import_google -#: view:crm.meeting:0 -msgid "Meeting Type" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "" -"Please install gdata-python-client from http://code.google.com/p/gdata-" -"python-client/downloads/list" -msgstr "" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_login -msgid "Google Contact" -msgstr "" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import contacts from a google account" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Please specify correct user and password !" -msgstr "" - -#. module: import_google -#: field:synchronize.google.import,customer:0 -msgid "Customer" -msgstr "" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Cancel" -msgstr "" - -#. module: import_google -#: model:ir.model,name:import_google.model_synchronize_google_import -msgid "synchronize.google.import" -msgstr "" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Contacts" -msgstr "" - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_form -#: model:ir.ui.menu,name:import_google.menu_sync_calendar -msgid "Import Google Calendar" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:50 -#, python-format -msgid "Import google" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Error" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "Warning !" -msgstr "" - -#. module: import_google -#: field:synchronize.google.import,create_partner:0 -msgid "Options" -msgstr "Тохируулга" - -#. module: import_google -#: view:google.import.message:0 -msgid "_Ok" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "Google Contacts Import Error!" -msgstr "" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_import_message -msgid "Import Message" -msgstr "" - -#. module: import_google -#: field:synchronize.google.import,calendar_name:0 -msgid "Calendar Name" -msgstr "" - -#. module: import_google -#: help:synchronize.google.import,supplier:0 -msgid "Check this box to set newly created partner as Supplier." -msgstr "" - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Import only address" -msgstr "Зөвхөн хаяг оруулах" - -#. module: import_google -#: field:crm.case.categ,user_id:0 -msgid "User" -msgstr "" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Partner Status for this Group:" -msgstr "" - -#. module: import_google -#: field:google.import.message,name:0 -msgid "Message" -msgstr "" - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Create partner for each contact" -msgstr "" - -#. module: import_google -#: help:synchronize.google.import,customer:0 -msgid "Check this box to set newly created partner as Customer." -msgstr "" diff --git a/addons/import_google/i18n/nb.po b/addons/import_google/i18n/nb.po deleted file mode 100644 index a6414341f8f..00000000000 --- a/addons/import_google/i18n/nb.po +++ /dev/null @@ -1,226 +0,0 @@ -# Norwegian Bokmal translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-09-09 16:36+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Norwegian Bokmal \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-09-10 04:41+0000\n" -"X-Generator: Launchpad (build 15924)\n" - -#. module: import_google -#: help:synchronize.google.import,group_name:0 -msgid "Choose which group to import, By default it takes all." -msgstr "Velg hvilken gruppe du vil importere, standard tar alt." - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Google Calendar Events" -msgstr "Importer Google Kalender Hendelser." - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Events" -msgstr "_Importer hendelser." - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "" -"No Google Username or password Defined for user.\n" -"Please define in user view" -msgstr "" -"Ingen Google-brukernavn eller passord definert for brukeren.\n" -"Vennligst angi i brukerens visning." - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#, python-format -msgid "" -"Invalid login detail !\n" -" Specify Username/Password." -msgstr "" -"Ugyldig pålogging detalj!\n" -"  Angi brukernavn / passord." - -#. module: import_google -#: field:synchronize.google.import,supplier:0 -msgid "Supplier" -msgstr "Leverandør" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Options" -msgstr "Alternativer for import" - -#. module: import_google -#: field:synchronize.google.import,group_name:0 -msgid "Group Name" -msgstr "Gruppe Navn" - -#. module: import_google -#: model:ir.model,name:import_google.model_crm_case_categ -msgid "Category of Case" -msgstr "Kategori for hendelse" - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_contact_form -#: model:ir.ui.menu,name:import_google.menu_sync_contact -msgid "Import Google Contacts" -msgstr "Importer Google kontakter." - -#. module: import_google -#: view:google.import.message:0 -msgid "Import Google Data" -msgstr "Importer Google data." - -#. module: import_google -#: view:crm.meeting:0 -msgid "Meeting Type" -msgstr "Møtetype" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "" -"Please install gdata-python-client from http://code.google.com/p/gdata-" -"python-client/downloads/list" -msgstr "" -"Vennligst Installer gdata-python-client from http://code.google.com/p/gdata-" -"python-client/downloads/list" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_login -msgid "Google Contact" -msgstr "Google kontakt" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import contacts from a google account" -msgstr "Importer kontakter fra en Google-konto" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Please specify correct user and password !" -msgstr "Vennligst oppgi riktig bruker og passord!" - -#. module: import_google -#: field:synchronize.google.import,customer:0 -msgid "Customer" -msgstr "Kunde" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Cancel" -msgstr "_Avbryt" - -#. module: import_google -#: model:ir.model,name:import_google.model_synchronize_google_import -msgid "synchronize.google.import" -msgstr "Synkronisere.google.import" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Contacts" -msgstr "_Importer kontakter." - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_form -#: model:ir.ui.menu,name:import_google.menu_sync_calendar -msgid "Import Google Calendar" -msgstr "Importer Google kalender." - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:50 -#, python-format -msgid "Import google" -msgstr "Importer Google." - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Error" -msgstr "Feil" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "Warning !" -msgstr "Advarsel !" - -#. module: import_google -#: field:synchronize.google.import,create_partner:0 -msgid "Options" -msgstr "Valg" - -#. module: import_google -#: view:google.import.message:0 -msgid "_Ok" -msgstr "_Ok" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "Google Contacts Import Error!" -msgstr "Google kontakter Import Feil!" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_import_message -msgid "Import Message" -msgstr "Importer melding." - -#. module: import_google -#: field:synchronize.google.import,calendar_name:0 -msgid "Calendar Name" -msgstr "Kalendernavn" - -#. module: import_google -#: help:synchronize.google.import,supplier:0 -msgid "Check this box to set newly created partner as Supplier." -msgstr "Kryss av for å sette nyopprettede partner som leverandør." - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Import only address" -msgstr "Importer bare adresse." - -#. module: import_google -#: field:crm.case.categ,user_id:0 -msgid "User" -msgstr "Bruker" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Partner Status for this Group:" -msgstr "" - -#. module: import_google -#: field:google.import.message,name:0 -msgid "Message" -msgstr "Melding" - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Create partner for each contact" -msgstr "Opprett partner for hver kontakt." - -#. module: import_google -#: help:synchronize.google.import,customer:0 -msgid "Check this box to set newly created partner as Customer." -msgstr "Kryss av for å sette nyopprettede partner som Kunden." - -#~ msgid "Partner status for this group:" -#~ msgstr "Partner status for denne gruppen." diff --git a/addons/import_google/i18n/nl.po b/addons/import_google/i18n/nl.po deleted file mode 100644 index cf8d6ed14a2..00000000000 --- a/addons/import_google/i18n/nl.po +++ /dev/null @@ -1,229 +0,0 @@ -# Dutch translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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 18:15+0000\n" -"Last-Translator: Raphael Collet (OpenERP) \n" -"Language-Team: Dutch \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_google -#: help:synchronize.google.import,group_name:0 -msgid "Choose which group to import, By default it takes all." -msgstr "" -"Kies welke groep moet worden geïmporteerd. Standaard worden alle geroepen " -"genomen" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Google Calendar Events" -msgstr "Importeer Google agenda afspraken" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Events" -msgstr "_Importeer afspraken" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "" -"No Google Username or password Defined for user.\n" -"Please define in user view" -msgstr "" -"Geen Google gebruikersnaam of wachtwoord gedefinieerd bij de gebruiker.\n" -"Definieer deze in de gebruikersweergave" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#, python-format -msgid "" -"Invalid login detail !\n" -" Specify Username/Password." -msgstr "" -"Ongeldige login detail!\n" -" Specificeer gebruikersnaam en wachtwoord." - -#. module: import_google -#: field:synchronize.google.import,supplier:0 -msgid "Supplier" -msgstr "Leverancier" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Options" -msgstr "Importeeropties" - -#. module: import_google -#: field:synchronize.google.import,group_name:0 -msgid "Group Name" -msgstr "Groepsnaam" - -#. module: import_google -#: model:ir.model,name:import_google.model_crm_case_categ -msgid "Category of Case" -msgstr "Dossiercategorie" - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_contact_form -#: model:ir.ui.menu,name:import_google.menu_sync_contact -msgid "Import Google Contacts" -msgstr "Importeer Google contacten" - -#. module: import_google -#: view:google.import.message:0 -msgid "Import Google Data" -msgstr "Importeer Google gegevens" - -#. module: import_google -#: view:crm.meeting:0 -msgid "Meeting Type" -msgstr "Soort afspraak" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "" -"Please install gdata-python-client from http://code.google.com/p/gdata-" -"python-client/downloads/list" -msgstr "" -"Installeer a.u.b. gdata-python-client from http://code.google.com/p/gdata-" -"python-client/downloads/list" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_login -msgid "Google Contact" -msgstr "Google Contactpersoon" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import contacts from a google account" -msgstr "Importeer contacten van een Google account" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Please specify correct user and password !" -msgstr "Geef alstublieft een juiste gebruikersnaam en wachtwoord op!" - -#. module: import_google -#: field:synchronize.google.import,customer:0 -msgid "Customer" -msgstr "Klant" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Cancel" -msgstr "_Annuleren" - -#. module: import_google -#: model:ir.model,name:import_google.model_synchronize_google_import -msgid "synchronize.google.import" -msgstr "synchronize.google.import" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Contacts" -msgstr "_Importeer contacten" - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_form -#: model:ir.ui.menu,name:import_google.menu_sync_calendar -msgid "Import Google Calendar" -msgstr "Importeer Google agenda" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:50 -#, python-format -msgid "Import google" -msgstr "Importeer Google" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Error" -msgstr "Fout" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "Warning !" -msgstr "Waarschuwing !" - -#. module: import_google -#: field:synchronize.google.import,create_partner:0 -msgid "Options" -msgstr "Opties" - -#. module: import_google -#: view:google.import.message:0 -msgid "_Ok" -msgstr "_Ok" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "Google Contacts Import Error!" -msgstr "Google contactpersonen import fout!" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_import_message -msgid "Import Message" -msgstr "Bericht importeren" - -#. module: import_google -#: field:synchronize.google.import,calendar_name:0 -msgid "Calendar Name" -msgstr "Agendanaam" - -#. module: import_google -#: help:synchronize.google.import,supplier:0 -msgid "Check this box to set newly created partner as Supplier." -msgstr "" -"Vink deze optie aan om van de nieuwe relatie een leverancier te maken" - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Import only address" -msgstr "Importeer alleen adres" - -#. module: import_google -#: field:crm.case.categ,user_id:0 -msgid "User" -msgstr "Gebruiker" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Partner Status for this Group:" -msgstr "Relatiestatus voor deze groep" - -#. module: import_google -#: field:google.import.message,name:0 -msgid "Message" -msgstr "Bericht" - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Create partner for each contact" -msgstr "Maak relatie van ieder contact" - -#. module: import_google -#: help:synchronize.google.import,customer:0 -msgid "Check this box to set newly created partner as Customer." -msgstr "Vink deze optie aan om van de nieuwe relatie een klant te maken" - -#~ msgid "Partner status for this group:" -#~ msgstr "Relatiestatus voor deze groep" diff --git a/addons/import_google/i18n/pt.po b/addons/import_google/i18n/pt.po deleted file mode 100644 index 68ea42d7f42..00000000000 --- a/addons/import_google/i18n/pt.po +++ /dev/null @@ -1,227 +0,0 @@ -# Portuguese translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-21 12:19+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Portuguese \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_google -#: help:synchronize.google.import,group_name:0 -msgid "Choose which group to import, By default it takes all." -msgstr "Escolha qual o grupo a importar, por padrão, ele leva tudo." - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Google Calendar Events" -msgstr "Importar Os Eventos do Calendário Google" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Events" -msgstr "_Importar Eventos" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "" -"No Google Username or password Defined for user.\n" -"Please define in user view" -msgstr "" -"Nenhum nome de utilizador do Google ou password definida para o utilizador.\n" -"Por favor, defina na vista do utilizador" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#, python-format -msgid "" -"Invalid login detail !\n" -" Specify Username/Password." -msgstr "" -"Detalhe do Login Inválido !\n" -" Especifique Nome de Utilizador / Password." - -#. module: import_google -#: field:synchronize.google.import,supplier:0 -msgid "Supplier" -msgstr "Fornecedor" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Options" -msgstr "Opções da Importação" - -#. module: import_google -#: field:synchronize.google.import,group_name:0 -msgid "Group Name" -msgstr "Nome do Grupo" - -#. module: import_google -#: model:ir.model,name:import_google.model_crm_case_categ -msgid "Category of Case" -msgstr "Categoria do Caso" - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_contact_form -#: model:ir.ui.menu,name:import_google.menu_sync_contact -msgid "Import Google Contacts" -msgstr "Importar Contatos do Google" - -#. module: import_google -#: view:google.import.message:0 -msgid "Import Google Data" -msgstr "Importar Dados do Google" - -#. module: import_google -#: view:crm.meeting:0 -msgid "Meeting Type" -msgstr "Tipo de reunião" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "" -"Please install gdata-python-client from http://code.google.com/p/gdata-" -"python-client/downloads/list" -msgstr "" -"Por Favor instale gdata-python-client de http://code.google.com/p/gdata-" -"python-client/downloads/list" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_login -msgid "Google Contact" -msgstr "Contato Google" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import contacts from a google account" -msgstr "Importar Contatos de uma Conta Google" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Please specify correct user and password !" -msgstr "Por Favor Especifique um Utilizador e uma Password Correta !" - -#. module: import_google -#: field:synchronize.google.import,customer:0 -msgid "Customer" -msgstr "Cliente" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Cancel" -msgstr "_Cancelar" - -#. module: import_google -#: model:ir.model,name:import_google.model_synchronize_google_import -msgid "synchronize.google.import" -msgstr "synchronize.google.import" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Contacts" -msgstr "_Importar Contatos" - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_form -#: model:ir.ui.menu,name:import_google.menu_sync_calendar -msgid "Import Google Calendar" -msgstr "Importar Calendário Google" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:50 -#, python-format -msgid "Import google" -msgstr "Importar Google" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Error" -msgstr "Erro" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "Warning !" -msgstr "Aviso !" - -#. module: import_google -#: field:synchronize.google.import,create_partner:0 -msgid "Options" -msgstr "Opções" - -#. module: import_google -#: view:google.import.message:0 -msgid "_Ok" -msgstr "_Ok" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "Google Contacts Import Error!" -msgstr "Erro na importação dos contatos Google!" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_import_message -msgid "Import Message" -msgstr "Importar mensagem" - -#. module: import_google -#: field:synchronize.google.import,calendar_name:0 -msgid "Calendar Name" -msgstr "Nome do Calendário" - -#. module: import_google -#: help:synchronize.google.import,supplier:0 -msgid "Check this box to set newly created partner as Supplier." -msgstr "" -"Marque esta caixa para definir parceiro recém-criado como Fornecedor." - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Import only address" -msgstr "Importar apenas o endereço" - -#. module: import_google -#: field:crm.case.categ,user_id:0 -msgid "User" -msgstr "Utilizador" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Partner Status for this Group:" -msgstr "" - -#. module: import_google -#: field:google.import.message,name:0 -msgid "Message" -msgstr "Mensagem" - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Create partner for each contact" -msgstr "Criar parceiro para cada contato" - -#. module: import_google -#: help:synchronize.google.import,customer:0 -msgid "Check this box to set newly created partner as Customer." -msgstr "Marque esta caixa para definir parceiro recém-criado como cliente." - -#~ msgid "Partner status for this group:" -#~ msgstr "Estatuto de parceiro para este grupo:" diff --git a/addons/import_google/i18n/pt_BR.po b/addons/import_google/i18n/pt_BR.po deleted file mode 100644 index 8a33a1eb47b..00000000000 --- a/addons/import_google/i18n/pt_BR.po +++ /dev/null @@ -1,227 +0,0 @@ -# Brazilian Portuguese translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-07-28 21:30+0000\n" -"Last-Translator: Fábio Martinelli - http://zupy.com.br " -"\n" -"Language-Team: Brazilian Portuguese \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_google -#: help:synchronize.google.import,group_name:0 -msgid "Choose which group to import, By default it takes all." -msgstr "Escolha qual grupo importar, por padrão todos são importados." - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Google Calendar Events" -msgstr "Importar o Calendário de Eventos da Google" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Events" -msgstr "_Importar Eventos" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "" -"No Google Username or password Defined for user.\n" -"Please define in user view" -msgstr "" -"Não foi definido nome de usuário ou senha para o usuário Google.\n" -"Por favor definir na visão de usuário" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#, python-format -msgid "" -"Invalid login detail !\n" -" Specify Username/Password." -msgstr "" -"Detalhes de acesso inválidos!\n" -" Especificar Usuário/Senha." - -#. module: import_google -#: field:synchronize.google.import,supplier:0 -msgid "Supplier" -msgstr "Fornecedor" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Options" -msgstr "Opções de importação" - -#. module: import_google -#: field:synchronize.google.import,group_name:0 -msgid "Group Name" -msgstr "Nome do Grupo" - -#. module: import_google -#: model:ir.model,name:import_google.model_crm_case_categ -msgid "Category of Case" -msgstr "Categoria de Caso" - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_contact_form -#: model:ir.ui.menu,name:import_google.menu_sync_contact -msgid "Import Google Contacts" -msgstr "Importar Contatos do Google" - -#. module: import_google -#: view:google.import.message:0 -msgid "Import Google Data" -msgstr "Importar Dados do Google" - -#. module: import_google -#: view:crm.meeting:0 -msgid "Meeting Type" -msgstr "Tipo de Reunião" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "" -"Please install gdata-python-client from http://code.google.com/p/gdata-" -"python-client/downloads/list" -msgstr "" -"Por favor instale gdata-python-client de http://code.google.com/p/gdata-" -"python-client/downloads/list" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_login -msgid "Google Contact" -msgstr "Contatos do Google" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import contacts from a google account" -msgstr "Importar contatos de uma conta Google" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Please specify correct user and password !" -msgstr "Por favor especificar usuário e senha corretos !" - -#. module: import_google -#: field:synchronize.google.import,customer:0 -msgid "Customer" -msgstr "Cliente" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Cancel" -msgstr "_Cancelar" - -#. module: import_google -#: model:ir.model,name:import_google.model_synchronize_google_import -msgid "synchronize.google.import" -msgstr "sincronizar.importação.google" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Contacts" -msgstr "_Importar Contatos" - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_form -#: model:ir.ui.menu,name:import_google.menu_sync_calendar -msgid "Import Google Calendar" -msgstr "Importar Calendário do Google" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:50 -#, python-format -msgid "Import google" -msgstr "Importar do Google" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Error" -msgstr "Erro" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "Warning !" -msgstr "Aviso !" - -#. module: import_google -#: field:synchronize.google.import,create_partner:0 -msgid "Options" -msgstr "Opções" - -#. module: import_google -#: view:google.import.message:0 -msgid "_Ok" -msgstr "_Ok" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "Google Contacts Import Error!" -msgstr "Erro de importação dos contatos Google!" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_import_message -msgid "Import Message" -msgstr "Importar Mensagem" - -#. module: import_google -#: field:synchronize.google.import,calendar_name:0 -msgid "Calendar Name" -msgstr "Nome do Calendário" - -#. module: import_google -#: help:synchronize.google.import,supplier:0 -msgid "Check this box to set newly created partner as Supplier." -msgstr "Selecione para marcar este parceiro recém criado como Fornecedor." - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Import only address" -msgstr "Importar somente endereços" - -#. module: import_google -#: field:crm.case.categ,user_id:0 -msgid "User" -msgstr "Usuário" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Partner Status for this Group:" -msgstr "Situação do Parceiro para este grupo." - -#. module: import_google -#: field:google.import.message,name:0 -msgid "Message" -msgstr "Mensagem" - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Create partner for each contact" -msgstr "Criar um parceiro para cada contato" - -#. module: import_google -#: help:synchronize.google.import,customer:0 -msgid "Check this box to set newly created partner as Customer." -msgstr "Selecione para marcar o parceiro recém criado como Cliente" - -#~ msgid "Partner status for this group:" -#~ msgstr "Situação do Parceiro para este grupo" diff --git a/addons/import_google/i18n/ro.po b/addons/import_google/i18n/ro.po deleted file mode 100644 index 382ed4dc2c7..00000000000 --- a/addons/import_google/i18n/ro.po +++ /dev/null @@ -1,229 +0,0 @@ -# Romanian translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-26 19:22+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Romanian \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_google -#: help:synchronize.google.import,group_name:0 -msgid "Choose which group to import, By default it takes all." -msgstr "Alegeti grupul pe care sa il importati, implicit sunt alese toate." - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Google Calendar Events" -msgstr "Importati Evenimente Google Calendar" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Events" -msgstr "_Importati Evenimente" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "" -"No Google Username or password Defined for user.\n" -"Please define in user view" -msgstr "" -"Nu a fost definit(a) nici un nume de utilizator sau o parola pentru " -"utilizator.\n" -"Va rugam sa definiti in vizualizarea utilizatorului" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#, python-format -msgid "" -"Invalid login detail !\n" -" Specify Username/Password." -msgstr "" -"Detalii de autentificare nevalide !\n" -" Specificati Numele de utilizator/Parola." - -#. module: import_google -#: field:synchronize.google.import,supplier:0 -msgid "Supplier" -msgstr "Furnizor" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Options" -msgstr "Importati Optiuni" - -#. module: import_google -#: field:synchronize.google.import,group_name:0 -msgid "Group Name" -msgstr "Numele grupului" - -#. module: import_google -#: model:ir.model,name:import_google.model_crm_case_categ -msgid "Category of Case" -msgstr "Categoria Cazului" - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_contact_form -#: model:ir.ui.menu,name:import_google.menu_sync_contact -msgid "Import Google Contacts" -msgstr "Importati Contacte Google" - -#. module: import_google -#: view:google.import.message:0 -msgid "Import Google Data" -msgstr "Importati Date Google" - -#. module: import_google -#: view:crm.meeting:0 -msgid "Meeting Type" -msgstr "Tipul intalnirii" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "" -"Please install gdata-python-client from http://code.google.com/p/gdata-" -"python-client/downloads/list" -msgstr "" -"Va rugam sa instalati gdata-python-client de la adresa " -"http://code.google.com/p/gdata-python-client/downloads/list" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_login -msgid "Google Contact" -msgstr "Contact Google" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import contacts from a google account" -msgstr "Importati contacte dintr-un cont google" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Please specify correct user and password !" -msgstr "Va rugam sa specificati utilizatorul si parola corecte !" - -#. module: import_google -#: field:synchronize.google.import,customer:0 -msgid "Customer" -msgstr "Client" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Cancel" -msgstr "_Anulati" - -#. module: import_google -#: model:ir.model,name:import_google.model_synchronize_google_import -msgid "synchronize.google.import" -msgstr "sincronizati.import.google" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Contacts" -msgstr "_Importati Contacte" - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_form -#: model:ir.ui.menu,name:import_google.menu_sync_calendar -msgid "Import Google Calendar" -msgstr "Importati Google Calendar" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:50 -#, python-format -msgid "Import google" -msgstr "Import google" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Error" -msgstr "Eroare" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "Warning !" -msgstr "Avertizare !" - -#. module: import_google -#: field:synchronize.google.import,create_partner:0 -msgid "Options" -msgstr "Optiuni" - -#. module: import_google -#: view:google.import.message:0 -msgid "_Ok" -msgstr "_Ok" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "Google Contacts Import Error!" -msgstr "Eroare Import Contacte Google!" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_import_message -msgid "Import Message" -msgstr "Importati Mesajul" - -#. module: import_google -#: field:synchronize.google.import,calendar_name:0 -msgid "Calendar Name" -msgstr "Nume Calendar" - -#. module: import_google -#: help:synchronize.google.import,supplier:0 -msgid "Check this box to set newly created partner as Supplier." -msgstr "" -"Bifati aceasta casuta pentru a seta partenerul nou creat drept Furnizor." - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Import only address" -msgstr "Importati doar adresa" - -#. module: import_google -#: field:crm.case.categ,user_id:0 -msgid "User" -msgstr "Utilizator" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Partner Status for this Group:" -msgstr "" - -#. module: import_google -#: field:google.import.message,name:0 -msgid "Message" -msgstr "Mesaj" - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Create partner for each contact" -msgstr "Creati partenerul pentru fiecare contact" - -#. module: import_google -#: help:synchronize.google.import,customer:0 -msgid "Check this box to set newly created partner as Customer." -msgstr "" -"Bifati aceasta casuta pentru a seta partenerul nou creat drept Client." - -#~ msgid "Partner status for this group:" -#~ msgstr "Statusul partenerului acestui grup:" diff --git a/addons/import_google/i18n/sr@latin.po b/addons/import_google/i18n/sr@latin.po deleted file mode 100644 index 40b29b2458a..00000000000 --- a/addons/import_google/i18n/sr@latin.po +++ /dev/null @@ -1,226 +0,0 @@ -# Serbian Latin translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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 18:12+0000\n" -"Last-Translator: Raphael Collet (OpenERP) \n" -"Language-Team: Serbian Latin \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_google -#: help:synchronize.google.import,group_name:0 -msgid "Choose which group to import, By default it takes all." -msgstr "Izaberite grupu za uvoz, po defaultu, uzima ih sve" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Google Calendar Events" -msgstr "Uvezi događaje iz Google-ovog kalendara" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Events" -msgstr "_Uvezi događaje" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "" -"No Google Username or password Defined for user.\n" -"Please define in user view" -msgstr "" -"Nema određenog korisničkog imena ili lozinke za korisnika.\n" -"Molimo odredite ih u korisničkom pregledu" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#, python-format -msgid "" -"Invalid login detail !\n" -" Specify Username/Password." -msgstr "" -"Nevažeći detalji prijave !\n" -" Odredite korisničko ime/ lozinku." - -#. module: import_google -#: field:synchronize.google.import,supplier:0 -msgid "Supplier" -msgstr "Dobavljač" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Options" -msgstr "Opcije uvoza" - -#. module: import_google -#: field:synchronize.google.import,group_name:0 -msgid "Group Name" -msgstr "Ime grupe" - -#. module: import_google -#: model:ir.model,name:import_google.model_crm_case_categ -msgid "Category of Case" -msgstr "Kategorija slučaja" - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_contact_form -#: model:ir.ui.menu,name:import_google.menu_sync_contact -msgid "Import Google Contacts" -msgstr "Uvezi Google kontakte" - -#. module: import_google -#: view:google.import.message:0 -msgid "Import Google Data" -msgstr "Uvezi Google podatke" - -#. module: import_google -#: view:crm.meeting:0 -msgid "Meeting Type" -msgstr "Tip sastanka" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "" -"Please install gdata-python-client from http://code.google.com/p/gdata-" -"python-client/downloads/list" -msgstr "" -"Molimo instalirajte gdata-python-client from http://code.google.com/p/gdata-" -"python-client/downloads/list" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_login -msgid "Google Contact" -msgstr "Google kontakt" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import contacts from a google account" -msgstr "Uvezi kontakte s Google naloga" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Please specify correct user and password !" -msgstr "Molimo odredite tačnog korisnika i lozinku !" - -#. module: import_google -#: field:synchronize.google.import,customer:0 -msgid "Customer" -msgstr "Mušterija" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Cancel" -msgstr "_Otkaži" - -#. module: import_google -#: model:ir.model,name:import_google.model_synchronize_google_import -msgid "synchronize.google.import" -msgstr "synchronize.google.import" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Contacts" -msgstr "_Uvezi kontakte" - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_form -#: model:ir.ui.menu,name:import_google.menu_sync_calendar -msgid "Import Google Calendar" -msgstr "Uvezi Google-ov kalendar" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:50 -#, python-format -msgid "Import google" -msgstr "Uvezi Google" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Error" -msgstr "Greška" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "Warning !" -msgstr "Upozorenje !" - -#. module: import_google -#: field:synchronize.google.import,create_partner:0 -msgid "Options" -msgstr "Opcije" - -#. module: import_google -#: view:google.import.message:0 -msgid "_Ok" -msgstr "_Ok" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "Google Contacts Import Error!" -msgstr "Greška u uvozu kontakata s Google-a" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_import_message -msgid "Import Message" -msgstr "Uvezi poruku" - -#. module: import_google -#: field:synchronize.google.import,calendar_name:0 -msgid "Calendar Name" -msgstr "Ime kalendara" - -#. module: import_google -#: help:synchronize.google.import,supplier:0 -msgid "Check this box to set newly created partner as Supplier." -msgstr "Označite ovu kućicu da biste novog partnera odredili kao Dobavljača." - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Import only address" -msgstr "Uvezi samo adrese" - -#. module: import_google -#: field:crm.case.categ,user_id:0 -msgid "User" -msgstr "Korisnik" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Partner Status for this Group:" -msgstr "Stanje partnera za ovu grupu:" - -#. module: import_google -#: field:google.import.message,name:0 -msgid "Message" -msgstr "Poruka" - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Create partner for each contact" -msgstr "Napravi partnera za svaki kontakt" - -#. module: import_google -#: help:synchronize.google.import,customer:0 -msgid "Check this box to set newly created partner as Customer." -msgstr "Označite ovu kućicu da biste novog partnera odredili kao Mušteriju." - -#~ msgid "Partner status for this group:" -#~ msgstr "Stanje partnera za ovu grupu:" diff --git a/addons/import_google/i18n/sv.po b/addons/import_google/i18n/sv.po deleted file mode 100644 index 2e90bcf9ea7..00000000000 --- a/addons/import_google/i18n/sv.po +++ /dev/null @@ -1,219 +0,0 @@ -# Swedish translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-06-27 11:40+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Swedish \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_google -#: help:synchronize.google.import,group_name:0 -msgid "Choose which group to import, By default it takes all." -msgstr "" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Google Calendar Events" -msgstr "" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Events" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "" -"No Google Username or password Defined for user.\n" -"Please define in user view" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#, python-format -msgid "" -"Invalid login detail !\n" -" Specify Username/Password." -msgstr "" - -#. module: import_google -#: field:synchronize.google.import,supplier:0 -msgid "Supplier" -msgstr "Leverantör" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Options" -msgstr "Importalternativ" - -#. module: import_google -#: field:synchronize.google.import,group_name:0 -msgid "Group Name" -msgstr "Gruppnamn" - -#. module: import_google -#: model:ir.model,name:import_google.model_crm_case_categ -msgid "Category of Case" -msgstr "Ärendekategori" - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_contact_form -#: model:ir.ui.menu,name:import_google.menu_sync_contact -msgid "Import Google Contacts" -msgstr "Importera Googlekontakter" - -#. module: import_google -#: view:google.import.message:0 -msgid "Import Google Data" -msgstr "Importera Google-data" - -#. module: import_google -#: view:crm.meeting:0 -msgid "Meeting Type" -msgstr "Mötestyp" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "" -"Please install gdata-python-client from http://code.google.com/p/gdata-" -"python-client/downloads/list" -msgstr "" -"Vänligen installera gdata-python-client från http://code.google.com/p/gdata-" -"python-client/downloads/list" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_login -msgid "Google Contact" -msgstr "Google-kontakt" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import contacts from a google account" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Please specify correct user and password !" -msgstr "" - -#. module: import_google -#: field:synchronize.google.import,customer:0 -msgid "Customer" -msgstr "Kund" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Cancel" -msgstr "_Avbryt" - -#. module: import_google -#: model:ir.model,name:import_google.model_synchronize_google_import -msgid "synchronize.google.import" -msgstr "synchronize.google.import" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Contacts" -msgstr "" - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_form -#: model:ir.ui.menu,name:import_google.menu_sync_calendar -msgid "Import Google Calendar" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:50 -#, python-format -msgid "Import google" -msgstr "" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Error" -msgstr "Fel" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "Warning !" -msgstr "Varning !" - -#. module: import_google -#: field:synchronize.google.import,create_partner:0 -msgid "Options" -msgstr "Alternativ" - -#. module: import_google -#: view:google.import.message:0 -msgid "_Ok" -msgstr "_Ok" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "Google Contacts Import Error!" -msgstr "Google kontaktimportfel!" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_import_message -msgid "Import Message" -msgstr "" - -#. module: import_google -#: field:synchronize.google.import,calendar_name:0 -msgid "Calendar Name" -msgstr "Kalendernamn" - -#. module: import_google -#: help:synchronize.google.import,supplier:0 -msgid "Check this box to set newly created partner as Supplier." -msgstr "" - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Import only address" -msgstr "" - -#. module: import_google -#: field:crm.case.categ,user_id:0 -msgid "User" -msgstr "" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Partner Status for this Group:" -msgstr "" - -#. module: import_google -#: field:google.import.message,name:0 -msgid "Message" -msgstr "" - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Create partner for each contact" -msgstr "" - -#. module: import_google -#: help:synchronize.google.import,customer:0 -msgid "Check this box to set newly created partner as Customer." -msgstr "" diff --git a/addons/import_google/i18n/zh_CN.po b/addons/import_google/i18n/zh_CN.po deleted file mode 100644 index be02def559b..00000000000 --- a/addons/import_google/i18n/zh_CN.po +++ /dev/null @@ -1,222 +0,0 @@ -# Chinese (Simplified) translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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:51+0000\n" -"Last-Translator: Raphael Collet (OpenERP) \n" -"Language-Team: Chinese (Simplified) \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_google -#: help:synchronize.google.import,group_name:0 -msgid "Choose which group to import, By default it takes all." -msgstr "选择导入的组, 默认全部" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Google Calendar Events" -msgstr "导入google日历事件" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Events" -msgstr "导入事件" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "" -"No Google Username or password Defined for user.\n" -"Please define in user view" -msgstr "用户未定义google用户名和密码, 请在用户视图 定义" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#, python-format -msgid "" -"Invalid login detail !\n" -" Specify Username/Password." -msgstr "非法的登陆描述, 指定用户名/密码" - -#. module: import_google -#: field:synchronize.google.import,supplier:0 -msgid "Supplier" -msgstr "供应商" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import Options" -msgstr "导入选项" - -#. module: import_google -#: field:synchronize.google.import,group_name:0 -msgid "Group Name" -msgstr "组名" - -#. module: import_google -#: model:ir.model,name:import_google.model_crm_case_categ -msgid "Category of Case" -msgstr "业务类型" - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_contact_form -#: model:ir.ui.menu,name:import_google.menu_sync_contact -msgid "Import Google Contacts" -msgstr "导入google 联系人" - -#. module: import_google -#: view:google.import.message:0 -msgid "Import Google Data" -msgstr "导入google数据" - -#. module: import_google -#: view:crm.meeting:0 -msgid "Meeting Type" -msgstr "会议类型" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "" -"Please install gdata-python-client from http://code.google.com/p/gdata-" -"python-client/downloads/list" -msgstr "" -"请下载并安装gdata-python-client,地址是 http://code.google.com/p/gdata-python-" -"client/downloads/list" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_login -msgid "Google Contact" -msgstr "Google联系人" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Import contacts from a google account" -msgstr "从google账户导入联系人" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Please specify correct user and password !" -msgstr "请指定正确的用户和密码" - -#. module: import_google -#: field:synchronize.google.import,customer:0 -msgid "Customer" -msgstr "客户" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Cancel" -msgstr "取消(_C)" - -#. module: import_google -#: model:ir.model,name:import_google.model_synchronize_google_import -msgid "synchronize.google.import" -msgstr "synchronize.google.import" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "_Import Contacts" -msgstr "导入联系人" - -#. module: import_google -#: model:ir.actions.act_window,name:import_google.act_google_login_form -#: model:ir.ui.menu,name:import_google.menu_sync_calendar -msgid "Import Google Calendar" -msgstr "导入google日历" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:50 -#, python-format -msgid "Import google" -msgstr "导入 google" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:127 -#: code:addons/import_google/wizard/import_google_data.py:133 -#, python-format -msgid "Error" -msgstr "错误" - -#. module: import_google -#: code:addons/import_google/wizard/import_google_data.py:71 -#, python-format -msgid "Warning !" -msgstr "警告!" - -#. module: import_google -#: field:synchronize.google.import,create_partner:0 -msgid "Options" -msgstr "选项" - -#. module: import_google -#: view:google.import.message:0 -msgid "_Ok" -msgstr "确定(_O)" - -#. module: import_google -#: code:addons/import_google/wizard/import_google.py:38 -#: code:addons/import_google/wizard/import_google_data.py:28 -#, python-format -msgid "Google Contacts Import Error!" -msgstr "导入Google联系人失败!" - -#. module: import_google -#: model:ir.model,name:import_google.model_google_import_message -msgid "Import Message" -msgstr "导入信息" - -#. module: import_google -#: field:synchronize.google.import,calendar_name:0 -msgid "Calendar Name" -msgstr "日历名称" - -#. module: import_google -#: help:synchronize.google.import,supplier:0 -msgid "Check this box to set newly created partner as Supplier." -msgstr "选中此复选框设置为新建立的合作伙伴为供应商" - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Import only address" -msgstr "只导入地址" - -#. module: import_google -#: field:crm.case.categ,user_id:0 -msgid "User" -msgstr "用户名" - -#. module: import_google -#: view:synchronize.google.import:0 -msgid "Partner Status for this Group:" -msgstr "该组伙伴状态" - -#. module: import_google -#: field:google.import.message,name:0 -msgid "Message" -msgstr "信息" - -#. module: import_google -#: selection:synchronize.google.import,create_partner:0 -msgid "Create partner for each contact" -msgstr "为每个联系人创建合作伙伴" - -#. module: import_google -#: help:synchronize.google.import,customer:0 -msgid "Check this box to set newly created partner as Customer." -msgstr "选中此复选框设置新创建合作伙伴作为客户。" - -#~ msgid "Partner status for this group:" -#~ msgstr "该组伙伴状态" diff --git a/addons/import_google/partner.py b/addons/import_google/partner.py deleted file mode 100644 index e7aa4dd8ca7..00000000000 --- a/addons/import_google/partner.py +++ /dev/null @@ -1,31 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -from osv import fields,osv - -class crm_meeting_type(osv.osv): - """ Meeting Types """ - _inherit = "crm.meeting.type" - _columns = { - 'user_id': fields.many2one('res.users', 'User') - } - -# vim:expandtab:smartindent:toabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/import_google/security/ir.model.access.csv b/addons/import_google/security/ir.model.access.csv deleted file mode 100644 index cb0a8946d46..00000000000 --- a/addons/import_google/security/ir.model.access.csv +++ /dev/null @@ -1,4 +0,0 @@ -id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_res_users_partner_manager,google.res.partner.manager,base.model_ir_model_data,base.group_partner_manager,1,1,1,0 -access_ir_model_data_partner_manager,ir.model.data.partner.manager,base.model_res_users,base.group_partner_manager,1,1,0,0 -access_google_import_message_partner_manager,google.import.message.partner.manager,model_google_import_message,base.group_partner_manager,1,1,0,0 diff --git a/addons/import_google/sync_google_calendar_view.xml b/addons/import_google/sync_google_calendar_view.xml deleted file mode 100644 index e44c6ea8c21..00000000000 --- a/addons/import_google/sync_google_calendar_view.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - CRM - Meetings Form (Inherited) - crm.meeting - - - - [('user_id', 'in', [uid, False])] - - - - - diff --git a/addons/import_google/test/test_sync_google_calendar.yml b/addons/import_google/test/test_sync_google_calendar.yml deleted file mode 100644 index 28863f358bb..00000000000 --- a/addons/import_google/test/test_sync_google_calendar.yml +++ /dev/null @@ -1,36 +0,0 @@ -- - In order to test google calendar feature with OpenERP, I import events from - a google account and store them in Meetings. -- | - I create a record for the gmail account for which I want to import the contacts. -- - !record {model: google.login, id: google_login_id0}: - user: testmail.openerp@gmail.com - password: openerptiny -- | - I login into that account. -- - !python {model: google.login}: | - self.login(cr, uid, [ref('google_login_id0')], context) -- | - Now I want to import all the events from all the calendars in the user account. -- | - I select all calendars. -- - !record {model: synchronize.google.import, id: synchronize_google_import_id0}: - calendar_name: all -- | - I import the events from the google calendar. -- - !python {model: synchronize.google.import}: | - self.import_google(cr, uid, [ref('synchronize_google_import_id0')], context={'calendar':True}) -- | - Now I check my meetings are created or not. -- - !python {model: crm.meeting}: | - model_obj = self.pool.get('ir.model.data') - meeting_ids = self.search(cr, uid, []) - model_ids = model_obj.search(cr, uid, [('res_id','in',meeting_ids),('model','=','crm.meeting'),('module','=','synchronize_google')]) - assert model_ids, 'Meetings not created !' - - diff --git a/addons/import_google/test/test_sync_google_contact_import_partner.yml b/addons/import_google/test/test_sync_google_contact_import_partner.yml deleted file mode 100644 index 08aa0f30718..00000000000 --- a/addons/import_google/test/test_sync_google_contact_import_partner.yml +++ /dev/null @@ -1,35 +0,0 @@ -- - In order to test Importing contacts from any google account into OpenERP, - I use a gmail account and import the contact details and create Partners. -- | - I create a record for the gmail account for which I want to import the contacts. -- - !record {model: google.login, id: google_login_id1}: - user: testmail.openerp@gmail.com - password: openerptiny -- | - I login into that account. -- - !python {model: google.login}: | - self.login(cr, uid, [ref('google_login_id1')], context) -- | - Now I select from which group I want to get the contact details and I want to create partner for all contacts. -- - !record {model: synchronize.google.import, id: synchronize_google_import_id1}: - group_name: all -- | - I import the contacts. -- - !python {model: synchronize.google.import}: | - self.import_google(cr, uid, [ref('synchronize_google_import_id1')], context={'contact':True}) -- | - I check whether the Partners are created or not. -- - !python {model: res.partner }: | - addr_obj = self.pool.get('ir.model.data') - addr_ids = addr_obj.search(cr, uid, []) - data_ids = addr_obj.search(cr, uid, [('model','=','res.partner'),('module','=','synchronize_google')]) - address_ids = map(lambda x: x.res_id, [child for child in addr_obj.browse(cr, uid, data_ids) if child.res_id]) - partner_ids = map(lambda x: x.parent_id.id, [addr for addr in self.browse(cr, uid, address_ids) if addr.parent_id]) - assert partner_ids, 'Partners not created !' - diff --git a/addons/import_google/wizard/__init__.py b/addons/import_google/wizard/__init__.py deleted file mode 100644 index 41c118a0ef3..00000000000 --- a/addons/import_google/wizard/__init__.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## -import import_google -import import_google_data -import google_import_message -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/import_google/wizard/google_import_message.py b/addons/import_google/wizard/google_import_message.py deleted file mode 100644 index bba58cd2250..00000000000 --- a/addons/import_google/wizard/google_import_message.py +++ /dev/null @@ -1,44 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -from osv import osv -from osv import fields - - -class google_import_message(osv.osv): - """Import Message""" - - _name = "google.import.message" - _description = "Import Message" - _columns = { - 'name': fields.text('Message', readonly=True), - } - - def default_get(self, cr, uid, fields, context=None): - if context == None: - context = {} - res = super(google_import_message, self).default_get(cr, uid, fields, context=context) - res.update({'name': context.get('message')}) - return res - -google_import_message() - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/import_google/wizard/google_import_message_view.xml b/addons/import_google/wizard/google_import_message_view.xml deleted file mode 100644 index d44bd8e26ec..00000000000 --- a/addons/import_google/wizard/google_import_message_view.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - google.import.message.form - google.import.message - -
- - - -
-
-
-
-
-
-
diff --git a/addons/import_google/wizard/import_google.py b/addons/import_google/wizard/import_google.py deleted file mode 100644 index f8fc8991975..00000000000 --- a/addons/import_google/wizard/import_google.py +++ /dev/null @@ -1,367 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -import re -import urllib -import dateutil -import pytz -from dateutil import * -from pytz import timezone -from datetime import datetime -import time -import base64 -from osv import * -from tools.translate import _ - -try: - import gdata - import gdata.contacts.service - import gdata.calendar.service - import gdata.contacts - import gdata.calendar -except ImportError: - raise osv.except_osv(_('Google Contacts Import Error!'), _('Please install gdata-python-client from http://code.google.com/p/gdata-python-client/downloads/list')) -from import_base.import_framework import * -from import_base.mapper import * - -class google_import(import_framework): - - gd_client = False - calendars = False - contact = False - DATETIME_FORMAT = "%Y-%m-%d %H:%M:%S" - TABLE_CONTACT = 'Contact' - TABLE_ADDRESS ='Address' - TABLE_EVENT = 'Events' - - def initialize(self): - google = self.obj.pool.get('google.login') - self.gd_client = google.google_login(self.context.get('user'), - self.context.get('password'), - self.context.get('instance')) - - if self.context.get('instance') and self.context.get('instance') == 'contact': - self.contact = self.context.get('contact') - if self.context.get('instance') and self.context.get('instance') == 'calendar': - self.calendars = self.context.get('calendars') - - def get_mapping(self): - return { - self.TABLE_EVENT: self.get_event_mapping(), - self.TABLE_CONTACT: self.get_contact_mapping(), - self.TABLE_ADDRESS: self.get_address_mapping(), - } - - def get_data(self, table): - data_fetching_function = { - self.TABLE_CONTACT: self.get_contact, - self.TABLE_ADDRESS: self.get_contact, - self.TABLE_EVENT: self.get_events, - } - - return data_fetching_function.get(table)() - - - def _get_tinydates(self, stime, etime, au_tz): - stime = dateutil.parser.parse(stime) - etime = dateutil.parser.parse(etime) - try: - au_dt = au_tz.normalize(stime.replace(tzinfo=pytz.utc).astimezone(au_tz)) - timestring = datetime.datetime(*au_dt.timetuple()[:6]).strftime('%Y-%m-%d %H:%M:%S') - au_dt = au_tz.normalize(etime.replace(tzinfo=pytz.utc).astimezone(au_tz)) - timestring_end = datetime.datetime(*au_dt.timetuple()[:6]).strftime('%Y-%m-%d %H:%M:%S') - except: - timestring = datetime.datetime(*stime.timetuple()[:6]).strftime('%Y-%m-%d %H:%M:%S') - timestring_end = datetime.datetime(*etime.timetuple()[:6]).strftime('%Y-%m-%d %H:%M:%S') - return (timestring, timestring_end) - - def _get_rules(self, datas): - new_val = {} - if datas['FREQ'] == 'WEEKLY' and datas.get('BYDAY'): - for day in datas['BYDAY'].split(','): - new_val[day.lower()] = True - datas.pop('BYDAY') - - if datas.get('UNTIL'): - until = parser.parse(''.join((re.compile('\d')).findall(datas.get('UNTIL')))) - new_val['end_date'] = until.strftime('%Y-%m-%d') - new_val['end_type'] = 'end_date' - datas.pop('UNTIL') - - if datas.get('COUNT'): - new_val['count'] = datas.get('COUNT') - new_val['end_type'] = 'count' - datas.pop('COUNT') - - if datas.get('INTERVAL'): - new_val['interval'] = datas.get('INTERVAL') - else: - new_val['interval'] = 1 - - if datas.get('BYMONTHDAY'): - new_val['day'] = datas.get('BYMONTHDAY') - datas.pop('BYMONTHDAY') - new_val['select1'] = 'date' - - if datas.get('BYDAY'): - d = datas.get('BYDAY') - if '-' in d: - new_val['byday'] = d[:2] - new_val['week_list'] = d[2:4].upper() - else: - new_val['byday'] = d[:1] - new_val['week_list'] = d[1:3].upper() - new_val['select1'] = 'day' - - if datas.get('BYMONTH'): - new_val['month_list'] = datas.get('BYMONTH') - datas.pop('bymonth') - return new_val - - - def _get_repeat_status(self, str_google): - rrule = str_google[str_google.find('FREQ'):str_google.find('\nBEGIN')] - status = {} - for rule in rrule.split(';'): - status[rule.split('=')[0]] = rule.split('=')[-1:] and rule.split('=')[-1:][0] or '' - rules = self._get_rules(status) - if status.get('FREQ') == 'WEEKLY': - status.update({'rrule_type': 'weekly'}) - status.pop('FREQ') - elif status.get('FREQ') == 'DAILY': - status.update({'rrule_type': 'daily'}) - status.pop('FREQ') - elif status.get('FREQ') == 'MONTHLY': - status.update({'rrule_type': 'monthly'}) - status.pop('FREQ') - elif status.get('FREQ') == 'YEARLY': - status.update({'rrule_type': 'yearly'}) - status.pop('FREQ') - status.update(rules) - return status - - - def _get_repeat_dates(self, x): - if len(x) > 4: - if x[3].startswith('BY'): - zone_time = x[4].split('+')[-1:][0].split(':')[0][:4] - else: - zone_time = x[3].split('+')[-1:][0].split(':')[0][:4] - else: - zone_time = x[2].split('+')[-1:][0].split(':')[0][:4] - tz_format = zone_time[:2]+':'+zone_time[2:] - repeat_start = x[1].split('\n')[0].split(':')[1] - repeat_end = x[2].split('\n')[0].split(':')[1] - o = repeat_start.split('T') - repeat_start = str(o[0][:4]) + '-' + str(o[0][4:6]) + '-' + str(o[0][6:8]) - if len(o) == 2: - repeat_start += ' ' + str(o[1][:2]) + ':' + str(o[1][2:4]) + ':' + str(o[1][4:6]) - else: - repeat_start += ' ' + '00' + ':' + '00' + ':' + '00' - p = repeat_end.split('T') - repeat_end = str(p[0][:4]) + '-' + str(p[0][4:6]) + '-' + str(p[0][6:8]) - if len(p) == 2: - repeat_end += ' ' + str(p[1][:2]) + ':' + str(p[1][2:4]) + ':' + str(p[1][4:6]) - else: - repeat_end += ' ' + '00' + ':' + '00' + ':' + '00' - return (repeat_start, repeat_end, tz_format) - - def get_events(self): - if 'tz' in self.context and self.context['tz']: - time_zone = self.context['tz'] - else: - time_zone = tools.get_server_timezone() - au_tz = timezone(time_zone) - event_vals = [] - for cal in self.calendars: - events_query = gdata.calendar.service.CalendarEventQuery(user=urllib.unquote(cal.split('/')[~0])) - events_query.start_index = 1 - events_query.max_results = 1000 - event_feed = self.gd_client.GetCalendarEventFeed(events_query.ToUri()) - for feed in event_feed.entry: - event = { - 'recurrency': False, - 'end_date' : False, - 'end_type' : False, - 'byday': 0, - 'count' : 0, - 'interval': 1, - 'day': False, - 'select1': False, - 'week_list': "", - 'month_list': False, - 'rrule_type': False, - } - - timestring = timestring_end = datetime.datetime.now().strftime(self.DATETIME_FORMAT) - if feed.when: - timestring, timestring_end = self._get_tinydates(feed.when[0].start_time, feed.when[0].end_time, au_tz) - else: - x = feed.recurrence.text.split(';') - repeat_status = self._get_repeat_status(feed.recurrence.text) - repeat_start, repeat_end, zone_time = self._get_repeat_dates(x) - timestring = time.strftime('%Y-%m-%d %H:%M:%S', time.strptime(repeat_start, "%Y-%m-%d %H:%M:%S")) - timestring_end = time.strftime('%Y-%m-%d %H:%M:%S', time.strptime(repeat_end, "%Y-%m-%d %H:%M:%S")) - if repeat_status: - repeat_status.update({'recurrency': True}) - event.update(repeat_status) - - event.update({'id' : feed.id.text, - 'DateStart': timestring, - 'DateEnd': timestring_end, - 'Category':event_feed.title.text, - 'Name': feed.title.text or 'No title', - 'Description': feed.content.text, - }) - event_vals.append(event) - return event_vals - - - def get_event_category(self, val, name): - nameid = 'event_category_' + name - fields = ['name'] - data = [name] - return self.import_object(fields, data, 'crm.meeting.type', "crm_meeting_type", nameid, [('name', 'ilike', name)]) - - def get_rec(self, val): - if val.get("recurrency"): - return "1" - return "0" - - def get_event_mapping(self): - return { - 'model': 'crm.meeting', - 'map': { - 'id': 'id', - 'name': 'Name', - 'description': 'Description', - 'email_from': 'Email', - 'date': 'DateStart', - 'date_deadline': 'DateEnd', - 'categ_ids/id': call(self.get_event_category, value('Category')), - 'recurrency': self.get_rec, - 'end_date' : 'end_date', - 'end_type' : 'end_type', - 'byday':'byday', - 'count' : 'count', - 'interval': 'interval', - 'day': 'day', - 'select1': 'date', - 'week_list': 'week_list', - 'month_list':'month_list', - 'rrule_type': 'rrule_type', - } - } - - - def get_contact(self): - table = self.context.get('table')[0] - datas = [] - if self.context.get('group_name'): - query = gdata.contacts.service.ContactsQuery() - query.group = self.context.get('group_name') - self.contact = self.gd_client.GetContactsFeed(query.ToUri()) - else: - self.contact = self.gd_client.GetContactsFeed() - while self.contact: - for entry in self.contact.entry: - data = {} - data['id'] = entry.id.text - name = tools.ustr(entry.title.text) - if name == "None": - name = entry.email and entry.email[0].address or '' - data['name'] = name or _('Unknown') - emails = ','.join(email.address for email in entry.email) - data['email'] = emails - if self.gd_client.GetPhoto(entry): - data['image'] = base64.encodestring(self.gd_client.GetPhoto(entry)) - if table == 'Contact': - data.update({'customer': str(self.context.get('customer')), - 'supplier': str(self.context.get('supplier'))}) - if entry.organization: - if entry.organization.org_name: - data.update({'company': entry.organization.org_name.text}) - if entry.organization.org_title: - data.update ({'function': entry.organization.org_title.text}) - if entry.phone_number: - for phone in entry.phone_number: - if phone.rel == gdata.contacts.REL_WORK: - data['phone'] = phone.text - if phone.rel == gdata.contacts.PHONE_MOBILE: - data['mobile'] = phone.text - if phone.rel == gdata.contacts.PHONE_WORK_FAX: - data['fax'] = phone.text - datas.append(data) - next = self.contact.GetNextLink() - self.contact = next and self.gd_client.GetContactsFeed(next.href) or None - return datas - - - - def get_contact_mapping(self): - return { - 'model': 'res.partner', - #'dependencies': [self.TABLE_ADDRESS], - 'map': { - 'id':'id', - 'name': value('company', fallback='name'), - 'customer': 'customer', - 'supplier': 'supplier', - 'city': 'city', - 'phone': 'phone', - 'mobile': 'mobile', - 'email': 'email', - 'image': 'image', - 'fax': 'fax', - 'child_ids/id': ref(self.TABLE_ADDRESS, 'id'), - } - } - - def get_partner_id(self, val): - partner_id = False - company_pool = self.obj.pool.get('res.partner') - if 'company' in val: - partner_ids = company_pool.search(self.cr, self.uid, [('name', '=', val.get('company'))]) - return partner_ids and partner_ids[0] or False - contact = self.xml_id_exist(self.TABLE_CONTACT, val.get('id')) - if contact: - partner_id = self.get_mapped_id(self.TABLE_CONTACT, val.get('id')) - return partner_id - - def get_address_mapping(self): - return { - 'model': 'res.partner', - 'dependencies': [], - 'map': { - 'id':'id', - 'parent_id/.id': self.get_partner_id, - 'name': 'name', - 'city': 'city', - 'phone': 'phone', - 'mobile': 'mobile', - 'email': 'email', - 'fax': 'fax', - 'function': 'function' - } - - } - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/import_google/wizard/import_google_data.py b/addons/import_google/wizard/import_google_data.py deleted file mode 100644 index 5ce1d160f3e..00000000000 --- a/addons/import_google/wizard/import_google_data.py +++ /dev/null @@ -1,183 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## -import datetime - -try: - import gdata - import gdata.contacts.service - import gdata.contacts -except ImportError: - raise osv.except_osv(_('Google Contacts Import Error!'), _('Please install gdata-python-client from http://code.google.com/p/gdata-python-client/downloads/list')) -from osv import fields -from osv import osv -from tools.translate import _ -from import_google import google_import - - -class google_login_contact(osv.osv_memory): - - _inherit = 'google.login' - - def _get_next_action(self, cr, uid, context=None): - data_obj = self.pool.get('ir.model.data') - data_id = data_obj._get_id(cr, uid, 'import_google', 'view_synchronize_google_contact_import_form') - view_id = False - if context.get('contact'): - data_id = data_obj._get_id(cr, uid, 'import_google', 'view_synchronize_google_contact_import_form') - if context.get('calendar'): - data_id = data_obj._get_id(cr, uid, 'import_google', 'view_synchronize_google_calendar_import_form') - if data_id: - view_id = data_obj.browse(cr, uid, data_id, context=context).res_id - value = { - 'name': _('Import google'), - 'view_type': 'form', - 'view_mode': 'form,tree', - 'res_model': 'synchronize.google.import', - 'view_id': False, - 'context': context, - 'views': [(view_id, 'form')], - 'type': 'ir.actions.act_window', - 'target': 'new', - } - return value - -google_login_contact() - -class synchronize_google(osv.osv_memory): - _name = 'synchronize.google.import' - - def _get_group(self, cr, uid, context=None): - - # all the selection field which have method are called at load time. why ? - - res = [] - if context: - user_obj = self.pool.get('res.users').browse(cr, uid, uid,context=context) - google=self.pool.get('google.login') - if not user_obj.gmail_user or not user_obj.gmail_password: - raise osv.except_osv(_('Warning!'), _("No Google Username or password is defined for user.\nPlease define on user's form.")) - gd_client = google.google_login(user_obj.gmail_user,user_obj.gmail_password,type='group') - if not gd_client: - return [('failed', 'Connection to google fail')] - - res = [] - query = gdata.contacts.service.GroupsQuery(feed='/m8/feeds/groups/default/full') - if gd_client: - groups = gd_client.GetFeed(query.ToUri()) - for grp in groups.entry: - res.append((grp.id.text, grp.title.text)) - res.append(('all','All Groups')) - return res - - def _get_calendars(self, cr, uid, context=None): - user_obj = self.pool.get('res.users').browse(cr, uid, uid) - google = self.pool.get('google.login') - res = [] - try: - gd_client = google.google_login(user_obj.gmail_user, user_obj.gmail_password, type='calendar') - calendars = gd_client.GetAllCalendarsFeed() - for cal in calendars.entry: - res.append((cal.id.text, cal.title.text)) - except Exception, e: - return [('failed', 'Connection to google fail')] - res.append(('all', 'All Calendars')) - return res - - _columns = { - 'customer': fields.boolean('Customer', help="Check this box to set newly created partner as Customer."), - 'supplier': fields.boolean('Supplier', help="Check this box to set newly created partner as Supplier."), - 'group_name': fields.selection(_get_group, "Group Name", help="Choose which group to import, By default it takes all."), - 'calendar_name': fields.selection(_get_calendars, "Calendar Name"), - } - - _defaults = { - 'group_name': 'all', - 'customer': True, - 'supplier': True, - } - - def import_google(self, cr, uid, ids, context=None): - if context == None: - context = {} - if not ids: - return {'type': 'ir.actions.act_window_close'} - obj = self.browse(cr, uid, ids, context=context)[0] - cust = obj.customer - sup = obj.supplier - tables=[] - user_obj = self.pool.get('res.users').browse(cr, uid, uid) - - gmail_user = user_obj.gmail_user - gmail_pwd = user_obj.gmail_password - google = self.pool.get('google.login') - if not gmail_user or not gmail_pwd: - raise osv.except_osv(_('Error!'), _("Invalid login detail !\nPlease specify correct username and password.")) - - if context.get('contact'): - msg = " Your contacts are being imported in background, an email to %s will be sent when the process is over." % (user_obj.gmail_user) - gd_client = google.google_login(gmail_user, gmail_pwd, type='contact') - if not gd_client: - raise osv.except_osv(_('Error!'), _("Please specify correct username and password!")) - if obj.group_name not in ['all']: - context.update({ 'group_name': obj.group_name}) - tables.append('Contact') - context.update({'user': gmail_user, - 'password': gmail_pwd, - 'instance': 'contact', - 'table':tables, - 'customer':cust, - 'supplier':sup}) - - elif context.get('calendar'): - msg = " Your meetings are being imported in background, an email to %s will be sent when the process is over."%(user_obj.gmail_user) - - tables.append('Events') - current_rec = self.browse(cr, uid, ids, context=context) - calendars = False - for rec in current_rec: - if rec.calendar_name != 'all': - calendars = [rec.calendar_name] - else: - calendars = map(lambda x: x[0], [cal for cal in self._get_calendars(cr, uid, context) if cal[0] != 'all']) - context.update({'user': gmail_user, - 'password': gmail_pwd, - 'calendars': calendars, - 'instance': 'calendar'}) - imp = google_import(self, cr, uid,'import_google' , "synchronize_google", gmail_user, context) - imp.set_table_list(tables) - imp.start() - context.update({'message': msg}) - obj_model = self.pool.get('ir.model.data') - model_data_ids = obj_model.search(cr,uid,[('model','=','ir.ui.view'),('name','=','view_google_import_message_form')]) - resource_id = obj_model.read(cr, uid, model_data_ids, fields=['res_id'], context=context)[0]['res_id'] - return { - 'view_type': 'form', - 'view_mode': 'form', - 'res_model': 'google.import.message', - 'views': [(resource_id,'form')], - 'type': 'ir.actions.act_window', - 'target': 'new', - 'context': context, - } - -synchronize_google() - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/import_google/wizard/import_google_data_view.xml b/addons/import_google/wizard/import_google_data_view.xml deleted file mode 100644 index e11b5aa2d08..00000000000 --- a/addons/import_google/wizard/import_google_data_view.xml +++ /dev/null @@ -1,81 +0,0 @@ - - - - - synchronize.base.form - synchronize.google.import - -
- - - - - - - - - -
-
-
-
-
- - - - - synchronize.google.calendar.form - synchronize.google.import - -
- - - -
-
-
-
-
- - - Import Google Calendar - ir.actions.act_window - google.login - form - form - new - {'calendar':True} - - - - - Import Google Contacts - ir.actions.act_window - google.login - form - form - new - {'contact':True} - - - - - - - -
-
diff --git a/addons/import_sugarcrm/__init__.py b/addons/import_sugarcrm/__init__.py deleted file mode 100644 index 8fdd9aec302..00000000000 --- a/addons/import_sugarcrm/__init__.py +++ /dev/null @@ -1,27 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -import import_sugarcrm -import sugar -import wizard - - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/import_sugarcrm/__openerp__.py b/addons/import_sugarcrm/__openerp__.py deleted file mode 100644 index 343d0c663e7..00000000000 --- a/addons/import_sugarcrm/__openerp__.py +++ /dev/null @@ -1,43 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -{ - 'name': 'SugarCRM Import', - 'version': '1.0', - 'category': 'Customer Relationship Management', - 'description': """ -This Module Import SugarCRM Leads, Opportunities, Users, Accounts, Contacts, Employees, Meetings, Phonecalls, Emails, Project and Project Tasks Data into OpenERP Module. -========================================================================================================================================================================= -""", - 'author': 'OpenERP SA', - 'website': 'http://www.openerp.com', - 'depends': ['import_base','crm', 'document'], - 'data': [ - 'wizard/import_message_view.xml', - 'import_sugarcrm_view.xml', - 'security/ir.model.access.csv', - ], - 'demo': [], - 'test': [], - 'installable': True, - 'auto_install': False, -} -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/import_sugarcrm/doc/import_sugarcrm_installation_manual.odt b/addons/import_sugarcrm/doc/import_sugarcrm_installation_manual.odt deleted file mode 100644 index 2dfde16bc97..00000000000 Binary files a/addons/import_sugarcrm/doc/import_sugarcrm_installation_manual.odt and /dev/null differ diff --git a/addons/import_sugarcrm/doc/import_sugarcrm_user_manual.odt b/addons/import_sugarcrm/doc/import_sugarcrm_user_manual.odt deleted file mode 100644 index 2a16eeb566c..00000000000 Binary files a/addons/import_sugarcrm/doc/import_sugarcrm_user_manual.odt and /dev/null differ diff --git a/addons/import_sugarcrm/doc/import_sugarcrm_zsi_installation.txt b/addons/import_sugarcrm/doc/import_sugarcrm_zsi_installation.txt deleted file mode 100644 index e399d63120b..00000000000 --- a/addons/import_sugarcrm/doc/import_sugarcrm_zsi_installation.txt +++ /dev/null @@ -1,8 +0,0 @@ -Install the SOAP framwwork for Python : - 1. download the soap framework from http://pypi.python.org/pypi/ZSI/ - extract the file “ZSI-2.0-rc3.tar.gz” and run following 2 commands - ./setup.py build - ./setup.py install - this will install soap framework for python. - -or use the ZSI package of your distribution diff --git a/addons/import_sugarcrm/i18n/ar.po b/addons/import_sugarcrm/i18n/ar.po deleted file mode 100644 index fdb674fb25f..00000000000 --- a/addons/import_sugarcrm/i18n/ar.po +++ /dev/null @@ -1,404 +0,0 @@ -# Arabic translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-03-05 11:30+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Arabic \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1105 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1131 -#, python-format -msgid "Error !!" -msgstr "خطأ !!" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"Use the SugarSoap API URL (read tooltip) and a full access SugarCRM login." -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "(Coming Soon)" -msgstr "قريباً" - -#. module: import_sugarcrm -#: field:import.sugarcrm,document:0 -msgid "Documents" -msgstr "وثائق" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Import your data from SugarCRM :" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"Choose data you want to import. Click 'Import' to get data manually or " -"'Schedule Reccurent Imports' to get recurrently and automatically data." -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,contact:0 -msgid "Contacts" -msgstr "جهات الاتصال" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "HR" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,bug:0 -msgid "Check this box to import sugarCRM Bugs into OpenERP project issues" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,instance_name:0 -msgid "Instance's Name" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,project_task:0 -msgid "Project Tasks" -msgstr "مهام المشروع" - -#. module: import_sugarcrm -#: field:import.sugarcrm,email_from:0 -msgid "Notify End Of Import To:" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,user:0 -msgid "" -"Check this box to import sugarCRM Users into OpenERP users, warning if a " -"user with the same login exist in OpenERP, user information will be erase by " -"sugarCRM user information" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugarsoap_services.py:23 -#, python-format -msgid "Please install SOAP for python - ZSI-2.0-rc3.tar.gz - python-zci" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "_Schedule Recurrent Imports" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"Do not forget the email address to be notified of the success of the import." -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,call:0 -msgid "Check this box to import sugarCRM Calls into OpenERP calls" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"If you make recurrent or ponctual import, data already in OpenERP will be " -"updated by SugarCRM data." -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,employee:0 -msgid "Employee" -msgstr "الموظف" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Document" -msgstr "مستند" - -#. module: import_sugarcrm -#: help:import.sugarcrm,document:0 -msgid "Check this box to import sugarCRM Documents into OpenERP documents" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Import Data From SugarCRM" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "CRM" -msgstr "" - -#. module: import_sugarcrm -#: view:import.message:0 -msgid "" -"Data are importing, the process is running in the background, an email will " -"be sent to the given email address if it was defined." -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,call:0 -msgid "Calls" -msgstr "مكالمات" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Multi Instance Management" -msgstr "" - -#. module: import_sugarcrm -#: view:import.message:0 -msgid "_Ok" -msgstr "م_وافق" - -#. module: import_sugarcrm -#: help:import.sugarcrm,opportunity:0 -msgid "" -"Check this box to import sugarCRM Leads and Opportunities into OpenERP Leads " -"and Opportunities" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,email_history:0 -msgid "Email and Note" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,url:0 -msgid "" -"Webservice's url where to get the data. example : " -"'http://example.com/sugarcrm/soap.php', or copy the address of your sugarcrm " -"application " -"http://trial.sugarcrm.com/qbquyj4802/index.php?module=Home&action=index" -msgstr "" - -#. module: import_sugarcrm -#: model:ir.actions.act_window,name:import_sugarcrm.action_import_sugarcrm -#: model:ir.ui.menu,name:import_sugarcrm.menu_sugarcrm_import -msgid "Import SugarCRM" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "_Import" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,user:0 -msgid "User" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1105 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1131 -#, python-format -msgid "%s data required %s Module to be installed, Please install %s module" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,claim:0 -msgid "Cases" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,meeting:0 -msgid "" -"Check this box to import sugarCRM Meetings and Tasks into OpenERP meetings" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,email_history:0 -msgid "" -"Check this box to import sugarCRM Emails, Notes and Attachments into OpenERP " -"Messages and Attachments" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,project:0 -msgid "Projects" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugarsoap_services_types.py:14 -#, python-format -msgid "" -"Please install SOAP for python - ZSI-2.0-rc3.tar.gz from " -"http://pypi.python.org/pypi/ZSI/" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,project:0 -msgid "Check this box to import sugarCRM Projects into OpenERP projects" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1098 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1124 -#, python-format -msgid "Select Module to Import." -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,meeting:0 -msgid "Meetings" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,employee:0 -msgid "Check this box to import sugarCRM Employees into OpenERP employees" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,url:0 -msgid "SugarSoap Api url:" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Address Book" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugar.py:60 -#, python-format -msgid "" -"Authentication error !\n" -"Bad Username or Password bad SugarSoap Api url !" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,bug:0 -msgid "Bugs" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Project" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,project_task:0 -msgid "Check this box to import sugarCRM Project Tasks into OpenERP tasks" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,opportunity:0 -msgid "Leads & Opp" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:79 -#, python-format -msgid "" -"Authentication error !\n" -"Bad Username or Password or bad SugarSoap Api url !" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:79 -#: code:addons/import_sugarcrm/sugar.py:60 -#, python-format -msgid "Error !" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1098 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1124 -#, python-format -msgid "Warning !" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,instance_name:0 -msgid "" -"Prefix of SugarCRM id to differentiate xml_id of SugarCRM models datas come " -"from different server." -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,contact:0 -msgid "Check this box to import sugarCRM Contacts into OpenERP addresses" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,password:0 -msgid "Password" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Login Information" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,claim:0 -msgid "Check this box to import sugarCRM Cases into OpenERP claims" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Email Notification When Import is Finished" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,username:0 -msgid "User Name" -msgstr "" - -#. module: import_sugarcrm -#: view:import.message:0 -#: model:ir.model,name:import_sugarcrm.model_import_message -msgid "Import Message" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,account:0 -msgid "Check this box to import sugarCRM Accounts into OpenERP partners" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Online documentation:" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,account:0 -msgid "Accounts" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "_Cancel" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugarsoap_services.py:23 -#: code:addons/import_sugarcrm/sugarsoap_services_types.py:14 -#, python-format -msgid "ZSI Import Error!" -msgstr "" - -#. module: import_sugarcrm -#: model:ir.model,name:import_sugarcrm.model_import_sugarcrm -msgid "Import SugarCRM DATA" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Email Address to Notify" -msgstr "" diff --git a/addons/import_sugarcrm/i18n/de.po b/addons/import_sugarcrm/i18n/de.po deleted file mode 100644 index e47dc95b8dd..00000000000 --- a/addons/import_sugarcrm/i18n/de.po +++ /dev/null @@ -1,429 +0,0 @@ -# German translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-08-29 07:36+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: German \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-30 05:12+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1105 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1131 -#, python-format -msgid "Error !!" -msgstr "Fehler!" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"Use the SugarSoap API URL (read tooltip) and a full access SugarCRM login." -msgstr "" -"Nutzen Sie die SugarSoap API URL (siehe Tooltip) und eine SugarCRM-Anmeldung " -"mit Vollzugriff." - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "(Coming Soon)" -msgstr "(Bald erwartet)" - -#. module: import_sugarcrm -#: field:import.sugarcrm,document:0 -msgid "Documents" -msgstr "Dokumente" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Import your data from SugarCRM :" -msgstr "Importieren Sie Ihre Daten aus SugarCRM:" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"Choose data you want to import. Click 'Import' to get data manually or " -"'Schedule Reccurent Imports' to get recurrently and automatically data." -msgstr "" -"Wählen Sie die zu importierenden Daten aus. Drücken Sie \"Import\", um Daten " -"manuell zu holen oder \"Wiederkehrende Importe Terminieren\", um Daten " -"automatisch und wiederholt einzuholen." - -#. module: import_sugarcrm -#: field:import.sugarcrm,contact:0 -msgid "Contacts" -msgstr "Kontakte" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "HR" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,bug:0 -msgid "Check this box to import sugarCRM Bugs into OpenERP project issues" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,instance_name:0 -msgid "Instance's Name" -msgstr "Name der Instanz" - -#. module: import_sugarcrm -#: field:import.sugarcrm,project_task:0 -msgid "Project Tasks" -msgstr "Projekt Aufgaben" - -#. module: import_sugarcrm -#: field:import.sugarcrm,email_from:0 -msgid "Notify End Of Import To:" -msgstr "Über Abschluss des Imports zu informieren:" - -#. module: import_sugarcrm -#: help:import.sugarcrm,user:0 -msgid "" -"Check this box to import sugarCRM Users into OpenERP users, warning if a " -"user with the same login exist in OpenERP, user information will be erase by " -"sugarCRM user information" -msgstr "" -"Haken Sie dieses Feld an, um SugarCRM-Benutzer als OpenERP-Benutzer zu " -"importieren. Hinweis: In OpenERP bestehende Benutzer gleichen Namens werden " -"gelöscht und durch die SugarCRM-Information ersetzt." - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugarsoap_services.py:23 -#, python-format -msgid "Please install SOAP for python - ZSI-2.0-rc3.tar.gz - python-zci" -msgstr "" -"Installieren Sie bitte SOAP für Python - ZSI-2.0-rc3.tar.gz - python-zci" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "_Schedule Recurrent Imports" -msgstr "_Terminierung wiederkehrender Importe" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"Do not forget the email address to be notified of the success of the import." -msgstr "" -"Vergessen Sie nicht die über den Erfolg des Imports zu banachrichtende EMail-" -"Adresse." - -#. module: import_sugarcrm -#: help:import.sugarcrm,call:0 -msgid "Check this box to import sugarCRM Calls into OpenERP calls" -msgstr "" -"Haken Sie dieses Feld an, um SugarCRM-Anrufe in OpenERP-Anrufe zu " -"importieren." - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"If you make recurrent or ponctual import, data already in OpenERP will be " -"updated by SugarCRM data." -msgstr "" -"Wenn Sie wiederkehrende oder vereinzelte Importe durchführen, werden bereits " -"in OpenERP vorliegende Daten aktualsiert." - -#. module: import_sugarcrm -#: field:import.sugarcrm,employee:0 -msgid "Employee" -msgstr "Angstellter" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Document" -msgstr "Dokument" - -#. module: import_sugarcrm -#: help:import.sugarcrm,document:0 -msgid "Check this box to import sugarCRM Documents into OpenERP documents" -msgstr "" -"Haken Sie dieses Feld an, um Dokumente aus SugarCRM in OpenERP zu importieren" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Import Data From SugarCRM" -msgstr "Daten von SugarCRM importieren" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "CRM" -msgstr "Kundenbeziehungsverwaltung" - -#. module: import_sugarcrm -#: view:import.message:0 -msgid "" -"Data are importing, the process is running in the background, an email will " -"be sent to the given email address if it was defined." -msgstr "" -"Daten werden importiert; der Prozess läuft im Hintergrund. Bei Abschluss " -"wird eine Benachrichtigung per EMail verschickt, sofern diese angegeben " -"wurde." - -#. module: import_sugarcrm -#: field:import.sugarcrm,call:0 -msgid "Calls" -msgstr "Anrufe" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Multi Instance Management" -msgstr "Verwaltung von mehrfachen Instanzen" - -#. module: import_sugarcrm -#: view:import.message:0 -msgid "_Ok" -msgstr "_OK" - -#. module: import_sugarcrm -#: help:import.sugarcrm,opportunity:0 -msgid "" -"Check this box to import sugarCRM Leads and Opportunities into OpenERP Leads " -"and Opportunities" -msgstr "" -"Haken Sie dieses Feld an, um Leads aus SugarCRM nach OpenERP zu importieren." - -#. module: import_sugarcrm -#: field:import.sugarcrm,email_history:0 -msgid "Email and Note" -msgstr "Nachrichten und Notizen" - -#. module: import_sugarcrm -#: help:import.sugarcrm,url:0 -msgid "" -"Webservice's url where to get the data. example : " -"'http://example.com/sugarcrm/soap.php', or copy the address of your sugarcrm " -"application " -"http://trial.sugarcrm.com/qbquyj4802/index.php?module=Home&action=index" -msgstr "" -"URL des Web-Dienstes bei dem Daten geholt werden sollen. Beispiel: " -"\"http://example.com/sugarcrm/soap.php\", oder kopieren Sie die Adresse " -"Ihrer SugarCRM-Anwendung (z. B. " -"http://trial.sugarcrm.com/qbquyj4802/index.php?module=Home&action=index)" - -#. module: import_sugarcrm -#: model:ir.actions.act_window,name:import_sugarcrm.action_import_sugarcrm -#: model:ir.ui.menu,name:import_sugarcrm.menu_sugarcrm_import -msgid "Import SugarCRM" -msgstr "Aus SugarCRM importieren" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "_Import" -msgstr "_Import" - -#. module: import_sugarcrm -#: field:import.sugarcrm,user:0 -msgid "User" -msgstr "Benutzer" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1105 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1131 -#, python-format -msgid "%s data required %s Module to be installed, Please install %s module" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,claim:0 -msgid "Cases" -msgstr "Vorgänge" - -#. module: import_sugarcrm -#: help:import.sugarcrm,meeting:0 -msgid "" -"Check this box to import sugarCRM Meetings and Tasks into OpenERP meetings" -msgstr "" -"Haken Sie dieses Feld an, um Termine von SugarCRM nach OpenERP zu importieren" - -#. module: import_sugarcrm -#: help:import.sugarcrm,email_history:0 -msgid "" -"Check this box to import sugarCRM Emails, Notes and Attachments into OpenERP " -"Messages and Attachments" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,project:0 -msgid "Projects" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugarsoap_services_types.py:14 -#, python-format -msgid "" -"Please install SOAP for python - ZSI-2.0-rc3.tar.gz from " -"http://pypi.python.org/pypi/ZSI/" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,project:0 -msgid "Check this box to import sugarCRM Projects into OpenERP projects" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1098 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1124 -#, python-format -msgid "Select Module to Import." -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,meeting:0 -msgid "Meetings" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,employee:0 -msgid "Check this box to import sugarCRM Employees into OpenERP employees" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,url:0 -msgid "SugarSoap Api url:" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Address Book" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugar.py:60 -#, python-format -msgid "" -"Authentication error !\n" -"Bad Username or Password bad SugarSoap Api url !" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,bug:0 -msgid "Bugs" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Project" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,project_task:0 -msgid "Check this box to import sugarCRM Project Tasks into OpenERP tasks" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,opportunity:0 -msgid "Leads & Opp" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:79 -#, python-format -msgid "" -"Authentication error !\n" -"Bad Username or Password or bad SugarSoap Api url !" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:79 -#: code:addons/import_sugarcrm/sugar.py:60 -#, python-format -msgid "Error !" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1098 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1124 -#, python-format -msgid "Warning !" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,instance_name:0 -msgid "" -"Prefix of SugarCRM id to differentiate xml_id of SugarCRM models datas come " -"from different server." -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,contact:0 -msgid "Check this box to import sugarCRM Contacts into OpenERP addresses" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,password:0 -msgid "Password" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Login Information" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,claim:0 -msgid "Check this box to import sugarCRM Cases into OpenERP claims" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Email Notification When Import is Finished" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,username:0 -msgid "User Name" -msgstr "" - -#. module: import_sugarcrm -#: view:import.message:0 -#: model:ir.model,name:import_sugarcrm.model_import_message -msgid "Import Message" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,account:0 -msgid "Check this box to import sugarCRM Accounts into OpenERP partners" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Online documentation:" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,account:0 -msgid "Accounts" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "_Cancel" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugarsoap_services.py:23 -#: code:addons/import_sugarcrm/sugarsoap_services_types.py:14 -#, python-format -msgid "ZSI Import Error!" -msgstr "" - -#. module: import_sugarcrm -#: model:ir.model,name:import_sugarcrm.model_import_sugarcrm -msgid "Import SugarCRM DATA" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Email Address to Notify" -msgstr "" diff --git a/addons/import_sugarcrm/i18n/es_CR.po b/addons/import_sugarcrm/i18n/es_CR.po deleted file mode 100644 index 5a76faf0952..00000000000 --- a/addons/import_sugarcrm/i18n/es_CR.po +++ /dev/null @@ -1,458 +0,0 @@ -# Spanish (Costa Rica) translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-02-17 16:37+0000\n" -"Last-Translator: Freddy Gonzalez \n" -"Language-Team: Spanish (Costa Rica) \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1105 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1131 -#, python-format -msgid "Error !!" -msgstr "¡ Error !" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"Use the SugarSoap API URL (read tooltip) and a full access SugarCRM login." -msgstr "" -"Utilice la URL SugarSoap API (leer descripción) y un inicio de sesión de " -"SugarCRM acceso completo." - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "(Coming Soon)" -msgstr "(Próximamente)" - -#. module: import_sugarcrm -#: field:import.sugarcrm,document:0 -msgid "Documents" -msgstr "Documentos" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Import your data from SugarCRM :" -msgstr "Importar sus datos desde SugarCRM :" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"Choose data you want to import. Click 'Import' to get data manually or " -"'Schedule Reccurent Imports' to get recurrently and automatically data." -msgstr "" -"Elija los datos que desea importar. Haga clic en \"Importar\" para obtener " -"los datos de forma manual o \"programar importaciones reccurent 'para " -"obtener los datos de forma recurrente y automática." - -#. module: import_sugarcrm -#: field:import.sugarcrm,contact:0 -msgid "Contacts" -msgstr "Contactos" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "HR" -msgstr "RH" - -#. module: import_sugarcrm -#: help:import.sugarcrm,bug:0 -msgid "Check this box to import sugarCRM Bugs into OpenERP project issues" -msgstr "" -"Marque esta casilla para importar los errores en las cuestiones del proyecto " -"de SugarCRM OpenERP" - -#. module: import_sugarcrm -#: field:import.sugarcrm,instance_name:0 -msgid "Instance's Name" -msgstr "Nombre de las instanseas" - -#. module: import_sugarcrm -#: field:import.sugarcrm,project_task:0 -msgid "Project Tasks" -msgstr "Tareas de proyecto" - -#. module: import_sugarcrm -#: field:import.sugarcrm,email_from:0 -msgid "Notify End Of Import To:" -msgstr "Notificación del final de importación:" - -#. module: import_sugarcrm -#: help:import.sugarcrm,user:0 -msgid "" -"Check this box to import sugarCRM Users into OpenERP users, warning if a " -"user with the same login exist in OpenERP, user information will be erase by " -"sugarCRM user information" -msgstr "" -"Marque esta casilla para importar los usuarios de SugarCRM en los usuarios " -"de OpenERP, advirtiendo si un usuario con el mismo nombre de usuario existe " -"en OpenERP, la información del usuario será borrado por la información de " -"los usuarios de SugarCRM" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugarsoap_services.py:23 -#, python-format -msgid "Please install SOAP for python - ZSI-2.0-rc3.tar.gz - python-zci" -msgstr "" -"Por favor, instale SOAP para python - ZSI-2.0-rc3.tar.gz - python-ZCI" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "_Schedule Recurrent Imports" -msgstr "_Programar importaciones recurrentes" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"Do not forget the email address to be notified of the success of the import." -msgstr "" -"No te olvides de la dirección de correo electrónico para ser notificado del " -"éxito de la importación." - -#. module: import_sugarcrm -#: help:import.sugarcrm,call:0 -msgid "Check this box to import sugarCRM Calls into OpenERP calls" -msgstr "" -"Marque esta casilla para importar llamadas en las llamadas SugarCRM OpenERP" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"If you make recurrent or ponctual import, data already in OpenERP will be " -"updated by SugarCRM data." -msgstr "" -"Si usted hace la importación recurrente o puntual, los datos que ya están en " -"OpenERP se actualiza con los datos de SugarCRM." - -#. module: import_sugarcrm -#: field:import.sugarcrm,employee:0 -msgid "Employee" -msgstr "Empleado" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Document" -msgstr "Documento" - -#. module: import_sugarcrm -#: help:import.sugarcrm,document:0 -msgid "Check this box to import sugarCRM Documents into OpenERP documents" -msgstr "" -"Marque esta casilla para importar documentos de SugarCRM en los documentos " -"de OpenERP" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Import Data From SugarCRM" -msgstr "Importar datos de SugarCRM" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "CRM" -msgstr "CRM" - -#. module: import_sugarcrm -#: view:import.message:0 -msgid "" -"Data are importing, the process is running in the background, an email will " -"be sent to the given email address if it was defined." -msgstr "" -"Datos se están importando, el proceso se ejecuta en segundo plano, un correo " -"electrónico será enviado a la dirección de correo electrónico dada si se ha " -"definido." - -#. module: import_sugarcrm -#: field:import.sugarcrm,call:0 -msgid "Calls" -msgstr "Llamadas" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Multi Instance Management" -msgstr "Gestión de multi instancia" - -#. module: import_sugarcrm -#: view:import.message:0 -msgid "_Ok" -msgstr "_Aceptar" - -#. module: import_sugarcrm -#: help:import.sugarcrm,opportunity:0 -msgid "" -"Check this box to import sugarCRM Leads and Opportunities into OpenERP Leads " -"and Opportunities" -msgstr "" -"Marque esta casilla para importar clientes potenciales y oportunidades de " -"SugarCRM OpenERP en clientes potenciales y oportunidades" - -#. module: import_sugarcrm -#: field:import.sugarcrm,email_history:0 -msgid "Email and Note" -msgstr "Correo electrónico y nota" - -#. module: import_sugarcrm -#: help:import.sugarcrm,url:0 -msgid "" -"Webservice's url where to get the data. example : " -"'http://example.com/sugarcrm/soap.php', or copy the address of your sugarcrm " -"application " -"http://trial.sugarcrm.com/qbquyj4802/index.php?module=Home&action=index" -msgstr "" -"ServicioWeb URL de dónde obtener los datos. ejemplo: " -"\"http://example.com/sugarcrm/soap.php ', o copiar la dirección de su " -"http://trial.sugarcrm.com/qbquyj4802/index.php?module=Home&action=index " -"aplicación SugarCRM" - -#. module: import_sugarcrm -#: model:ir.actions.act_window,name:import_sugarcrm.action_import_sugarcrm -#: model:ir.ui.menu,name:import_sugarcrm.menu_sugarcrm_import -msgid "Import SugarCRM" -msgstr "Importar SugarCRM" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "_Import" -msgstr "_Importar" - -#. module: import_sugarcrm -#: field:import.sugarcrm,user:0 -msgid "User" -msgstr "Usuario" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1105 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1131 -#, python-format -msgid "%s data required %s Module to be installed, Please install %s module" -msgstr "" -"%s datos requeridos %s módulo a instalar,Por favor instale %s el módulo" - -#. module: import_sugarcrm -#: field:import.sugarcrm,claim:0 -msgid "Cases" -msgstr "Casos" - -#. module: import_sugarcrm -#: help:import.sugarcrm,meeting:0 -msgid "" -"Check this box to import sugarCRM Meetings and Tasks into OpenERP meetings" -msgstr "" -"Marque esta casilla para importar SugarCRM reuniones y tareas a las " -"reuniones de OpenERP" - -#. module: import_sugarcrm -#: help:import.sugarcrm,email_history:0 -msgid "" -"Check this box to import sugarCRM Emails, Notes and Attachments into OpenERP " -"Messages and Attachments" -msgstr "" -"Marque esta casilla para importar SugarCRM correos electrónicos, notas y " -"archivos adjuntos en mensajes de OpenERP y adjuntos" - -#. module: import_sugarcrm -#: field:import.sugarcrm,project:0 -msgid "Projects" -msgstr "Proyectos" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugarsoap_services_types.py:14 -#, python-format -msgid "" -"Please install SOAP for python - ZSI-2.0-rc3.tar.gz from " -"http://pypi.python.org/pypi/ZSI/" -msgstr "" -"Por favor instale SOAP para python - ZSI-2.0-rc3.tar.gz from " -"http://pypi.python.org/pypi/ZSI/" - -#. module: import_sugarcrm -#: help:import.sugarcrm,project:0 -msgid "Check this box to import sugarCRM Projects into OpenERP projects" -msgstr "" -"Marque esta casilla para importar proyectos de SugarCRM en los proyectos de " -"OpenERP" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1098 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1124 -#, python-format -msgid "Select Module to Import." -msgstr "Seleccione el modulo a importar" - -#. module: import_sugarcrm -#: field:import.sugarcrm,meeting:0 -msgid "Meetings" -msgstr "Reuniones" - -#. module: import_sugarcrm -#: help:import.sugarcrm,employee:0 -msgid "Check this box to import sugarCRM Employees into OpenERP employees" -msgstr "" -"Marque esta casilla para importar empleados en SugarCRM OpenERP empleados" - -#. module: import_sugarcrm -#: field:import.sugarcrm,url:0 -msgid "SugarSoap Api url:" -msgstr "SugarSoap Api url:" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Address Book" -msgstr "Libreta de direcciones" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugar.py:60 -#, python-format -msgid "" -"Authentication error !\n" -"Bad Username or Password bad SugarSoap Api url !" -msgstr "" -"¡ Error de autenticación !\n" -"! Nombre de usuario o contraseña incorrectos mala url SugarSoap Api!" - -#. module: import_sugarcrm -#: field:import.sugarcrm,bug:0 -msgid "Bugs" -msgstr "Pulgas" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Project" -msgstr "Proyecto" - -#. module: import_sugarcrm -#: help:import.sugarcrm,project_task:0 -msgid "Check this box to import sugarCRM Project Tasks into OpenERP tasks" -msgstr "" -"Marque esta casilla para importar las tareas de SugarCRM proyecto en tareas " -"OpenERP" - -#. module: import_sugarcrm -#: field:import.sugarcrm,opportunity:0 -msgid "Leads & Opp" -msgstr "Guías y Opp" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:79 -#, python-format -msgid "" -"Authentication error !\n" -"Bad Username or Password or bad SugarSoap Api url !" -msgstr "" -"¡ Error de autenticación!\n" -"¡ Nombre de usuario o contraseña incorrectos o url mal SugarSoap Api!" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:79 -#: code:addons/import_sugarcrm/sugar.py:60 -#, python-format -msgid "Error !" -msgstr "¡Error!" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1098 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1124 -#, python-format -msgid "Warning !" -msgstr "¡ Advertencia !" - -#. module: import_sugarcrm -#: help:import.sugarcrm,instance_name:0 -msgid "" -"Prefix of SugarCRM id to differentiate xml_id of SugarCRM models datas come " -"from different server." -msgstr "" -"Prefijo de Identificación de SugarCRM para diferenciar xml_id de datas " -"SugarCRM modelos vienen de otro servidor." - -#. module: import_sugarcrm -#: help:import.sugarcrm,contact:0 -msgid "Check this box to import sugarCRM Contacts into OpenERP addresses" -msgstr "" -"Marque esta casilla para importar los contactos de SugarCRM en direcciones " -"OpenERP" - -#. module: import_sugarcrm -#: field:import.sugarcrm,password:0 -msgid "Password" -msgstr "Contraseña" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Login Information" -msgstr "Información conexión" - -#. module: import_sugarcrm -#: help:import.sugarcrm,claim:0 -msgid "Check this box to import sugarCRM Cases into OpenERP claims" -msgstr "" -"Marque esta casilla para importar los casos de SugarCRM en demandas OpenERP" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Email Notification When Import is Finished" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,username:0 -msgid "User Name" -msgstr "Nombre de usuario" - -#. module: import_sugarcrm -#: view:import.message:0 -#: model:ir.model,name:import_sugarcrm.model_import_message -msgid "Import Message" -msgstr "Importar mensaje" - -#. module: import_sugarcrm -#: help:import.sugarcrm,account:0 -msgid "Check this box to import sugarCRM Accounts into OpenERP partners" -msgstr "" -"Marque esta casilla para importar cuentas de SugarCRM en socios de OpenERP" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Online documentation:" -msgstr "Documentación en linea:" - -#. module: import_sugarcrm -#: field:import.sugarcrm,account:0 -msgid "Accounts" -msgstr "Cuentas" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "_Cancel" -msgstr "_Cancelar" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugarsoap_services.py:23 -#: code:addons/import_sugarcrm/sugarsoap_services_types.py:14 -#, python-format -msgid "ZSI Import Error!" -msgstr "¡Error al importar ZSI !" - -#. module: import_sugarcrm -#: model:ir.model,name:import_sugarcrm.model_import_sugarcrm -msgid "Import SugarCRM DATA" -msgstr "Importar DATOS SugarCRM" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Email Address to Notify" -msgstr "Direcciones de correo electrónico a notificar" - -#~ msgid "Email Notification When Import is finished" -#~ msgstr "" -#~ "Notificación por correo electrónico cuando haya terminado la importación" diff --git a/addons/import_sugarcrm/i18n/fr.po b/addons/import_sugarcrm/i18n/fr.po deleted file mode 100644 index 64673de4bc6..00000000000 --- a/addons/import_sugarcrm/i18n/fr.po +++ /dev/null @@ -1,418 +0,0 @@ -# French translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-09-03 22:20+0000\n" -"Last-Translator: Nicolas JEUDY \n" -"Language-Team: French \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-09-04 04:52+0000\n" -"X-Generator: Launchpad (build 15890)\n" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1105 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1131 -#, python-format -msgid "Error !!" -msgstr "Erreur !!" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"Use the SugarSoap API URL (read tooltip) and a full access SugarCRM login." -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "(Coming Soon)" -msgstr "(Prochainement)" - -#. module: import_sugarcrm -#: field:import.sugarcrm,document:0 -msgid "Documents" -msgstr "Documents" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Import your data from SugarCRM :" -msgstr "Importer vos données depuis SugarCRM :" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"Choose data you want to import. Click 'Import' to get data manually or " -"'Schedule Reccurent Imports' to get recurrently and automatically data." -msgstr "" -"Choisissez les données que vous voulez importer. Cliquez sur \"Importer\" " -"pour obtenir les données manuellement ou 'Planifier les imports récurrents' " -"pour obtenir les données de manière récurrente et automatique." - -#. module: import_sugarcrm -#: field:import.sugarcrm,contact:0 -msgid "Contacts" -msgstr "Contacts" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "HR" -msgstr "RH" - -#. module: import_sugarcrm -#: help:import.sugarcrm,bug:0 -msgid "Check this box to import sugarCRM Bugs into OpenERP project issues" -msgstr "" -"Cochez la case pour importer les bugs SugarCRM dans les tickets OpenERP" - -#. module: import_sugarcrm -#: field:import.sugarcrm,instance_name:0 -msgid "Instance's Name" -msgstr "Nom de l'instance" - -#. module: import_sugarcrm -#: field:import.sugarcrm,project_task:0 -msgid "Project Tasks" -msgstr "Tâches du projet" - -#. module: import_sugarcrm -#: field:import.sugarcrm,email_from:0 -msgid "Notify End Of Import To:" -msgstr "Notifier la fin de l'import à:" - -#. module: import_sugarcrm -#: help:import.sugarcrm,user:0 -msgid "" -"Check this box to import sugarCRM Users into OpenERP users, warning if a " -"user with the same login exist in OpenERP, user information will be erase by " -"sugarCRM user information" -msgstr "" -"Cocher cette case pour importer les utilisateurs sugarCRM dans les " -"utilisateurs OpenERP. Attention s'il y a déjà un utilisateur avec le même " -"login dans OpenERP, les informations utilisateur seront remplacées par les " -"informations utilisateur sugarCRM" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugarsoap_services.py:23 -#, python-format -msgid "Please install SOAP for python - ZSI-2.0-rc3.tar.gz - python-zci" -msgstr "" -"Veuillez installez SOAP pour Python - ZSI-2.0-rc3.tar.gz - python-zci" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "_Schedule Recurrent Imports" -msgstr "_Planifier les imports récurrents" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"Do not forget the email address to be notified of the success of the import." -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,call:0 -msgid "Check this box to import sugarCRM Calls into OpenERP calls" -msgstr "" -"Cochez cette case pour importer les appels sugarCRM dans les appels OpenERP" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"If you make recurrent or ponctual import, data already in OpenERP will be " -"updated by SugarCRM data." -msgstr "" -"Si vous faîtes de l'import récurrent ou ponctuel, les données déjà " -"existantes dans OpenERP seront mises à jour par les données sugarCRM" - -#. module: import_sugarcrm -#: field:import.sugarcrm,employee:0 -msgid "Employee" -msgstr "Employé" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Document" -msgstr "Document" - -#. module: import_sugarcrm -#: help:import.sugarcrm,document:0 -msgid "Check this box to import sugarCRM Documents into OpenERP documents" -msgstr "Cochez cette case pour importer les documents SugarCRM dans OpenERP" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Import Data From SugarCRM" -msgstr "Importee les données de SugarCRM" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "CRM" -msgstr "CRM" - -#. module: import_sugarcrm -#: view:import.message:0 -msgid "" -"Data are importing, the process is running in the background, an email will " -"be sent to the given email address if it was defined." -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,call:0 -msgid "Calls" -msgstr "Appels" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Multi Instance Management" -msgstr "" - -#. module: import_sugarcrm -#: view:import.message:0 -msgid "_Ok" -msgstr "_Valider" - -#. module: import_sugarcrm -#: help:import.sugarcrm,opportunity:0 -msgid "" -"Check this box to import sugarCRM Leads and Opportunities into OpenERP Leads " -"and Opportunities" -msgstr "" -"Cochez cette case pour importer les Pistes et les Opportunités SugarCRM dans " -"OpenERP." - -#. module: import_sugarcrm -#: field:import.sugarcrm,email_history:0 -msgid "Email and Note" -msgstr "Email et note" - -#. module: import_sugarcrm -#: help:import.sugarcrm,url:0 -msgid "" -"Webservice's url where to get the data. example : " -"'http://example.com/sugarcrm/soap.php', or copy the address of your sugarcrm " -"application " -"http://trial.sugarcrm.com/qbquyj4802/index.php?module=Home&action=index" -msgstr "" - -#. module: import_sugarcrm -#: model:ir.actions.act_window,name:import_sugarcrm.action_import_sugarcrm -#: model:ir.ui.menu,name:import_sugarcrm.menu_sugarcrm_import -msgid "Import SugarCRM" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "_Import" -msgstr "_Importer" - -#. module: import_sugarcrm -#: field:import.sugarcrm,user:0 -msgid "User" -msgstr "Utilisateur" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1105 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1131 -#, python-format -msgid "%s data required %s Module to be installed, Please install %s module" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,claim:0 -msgid "Cases" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,meeting:0 -msgid "" -"Check this box to import sugarCRM Meetings and Tasks into OpenERP meetings" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,email_history:0 -msgid "" -"Check this box to import sugarCRM Emails, Notes and Attachments into OpenERP " -"Messages and Attachments" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,project:0 -msgid "Projects" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugarsoap_services_types.py:14 -#, python-format -msgid "" -"Please install SOAP for python - ZSI-2.0-rc3.tar.gz from " -"http://pypi.python.org/pypi/ZSI/" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,project:0 -msgid "Check this box to import sugarCRM Projects into OpenERP projects" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1098 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1124 -#, python-format -msgid "Select Module to Import." -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,meeting:0 -msgid "Meetings" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,employee:0 -msgid "Check this box to import sugarCRM Employees into OpenERP employees" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,url:0 -msgid "SugarSoap Api url:" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Address Book" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugar.py:60 -#, python-format -msgid "" -"Authentication error !\n" -"Bad Username or Password bad SugarSoap Api url !" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,bug:0 -msgid "Bugs" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Project" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,project_task:0 -msgid "Check this box to import sugarCRM Project Tasks into OpenERP tasks" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,opportunity:0 -msgid "Leads & Opp" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:79 -#, python-format -msgid "" -"Authentication error !\n" -"Bad Username or Password or bad SugarSoap Api url !" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:79 -#: code:addons/import_sugarcrm/sugar.py:60 -#, python-format -msgid "Error !" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1098 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1124 -#, python-format -msgid "Warning !" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,instance_name:0 -msgid "" -"Prefix of SugarCRM id to differentiate xml_id of SugarCRM models datas come " -"from different server." -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,contact:0 -msgid "Check this box to import sugarCRM Contacts into OpenERP addresses" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,password:0 -msgid "Password" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Login Information" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,claim:0 -msgid "Check this box to import sugarCRM Cases into OpenERP claims" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Email Notification When Import is Finished" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,username:0 -msgid "User Name" -msgstr "" - -#. module: import_sugarcrm -#: view:import.message:0 -#: model:ir.model,name:import_sugarcrm.model_import_message -msgid "Import Message" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,account:0 -msgid "Check this box to import sugarCRM Accounts into OpenERP partners" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Online documentation:" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,account:0 -msgid "Accounts" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "_Cancel" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugarsoap_services.py:23 -#: code:addons/import_sugarcrm/sugarsoap_services_types.py:14 -#, python-format -msgid "ZSI Import Error!" -msgstr "" - -#. module: import_sugarcrm -#: model:ir.model,name:import_sugarcrm.model_import_sugarcrm -msgid "Import SugarCRM DATA" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Email Address to Notify" -msgstr "" diff --git a/addons/import_sugarcrm/i18n/import_sugarcrm.pot b/addons/import_sugarcrm/i18n/import_sugarcrm.pot deleted file mode 100644 index 75caa61ccc3..00000000000 --- a/addons/import_sugarcrm/i18n/import_sugarcrm.pot +++ /dev/null @@ -1,377 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * import_sugarcrm -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 6.1rc1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2012-02-08 00:36+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1105 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1131 -#, python-format -msgid "Error !!" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Use the SugarSoap API URL (read tooltip) and a full access SugarCRM login." -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "(Coming Soon)" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,document:0 -msgid "Documents" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Import your data from SugarCRM :" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Choose data you want to import. Click 'Import' to get data manually or 'Schedule Reccurent Imports' to get recurrently and automatically data." -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,contact:0 -msgid "Contacts" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "HR" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,bug:0 -msgid "Check this box to import sugarCRM Bugs into OpenERP project issues" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,instance_name:0 -msgid "Instance's Name" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,project_task:0 -msgid "Project Tasks" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,email_from:0 -msgid "Notify End Of Import To:" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,user:0 -msgid "Check this box to import sugarCRM Users into OpenERP users, warning if a user with the same login exist in OpenERP, user information will be erase by sugarCRM user information" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugarsoap_services.py:23 -#, python-format -msgid "Please install SOAP for python - ZSI-2.0-rc3.tar.gz - python-zci" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "_Schedule Recurrent Imports" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Do not forget the email address to be notified of the success of the import." -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,call:0 -msgid "Check this box to import sugarCRM Calls into OpenERP calls" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "If you make recurrent or ponctual import, data already in OpenERP will be updated by SugarCRM data." -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,employee:0 -msgid "Employee" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Document" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,document:0 -msgid "Check this box to import sugarCRM Documents into OpenERP documents" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Import Data From SugarCRM" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "CRM" -msgstr "" - -#. module: import_sugarcrm -#: view:import.message:0 -msgid "Data are importing, the process is running in the background, an email will be sent to the given email address if it was defined." -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,call:0 -msgid "Calls" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Multi Instance Management" -msgstr "" - -#. module: import_sugarcrm -#: view:import.message:0 -msgid "_Ok" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,opportunity:0 -msgid "Check this box to import sugarCRM Leads and Opportunities into OpenERP Leads and Opportunities" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,email_history:0 -msgid "Email and Note" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,url:0 -msgid "Webservice's url where to get the data. example : 'http://example.com/sugarcrm/soap.php', or copy the address of your sugarcrm application http://trial.sugarcrm.com/qbquyj4802/index.php?module=Home&action=index" -msgstr "" - -#. module: import_sugarcrm -#: model:ir.actions.act_window,name:import_sugarcrm.action_import_sugarcrm -#: model:ir.ui.menu,name:import_sugarcrm.menu_sugarcrm_import -msgid "Import SugarCRM" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "_Import" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,user:0 -msgid "User" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1105 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1131 -#, python-format -msgid "%s data required %s Module to be installed, Please install %s module" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,claim:0 -msgid "Cases" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,meeting:0 -msgid "Check this box to import sugarCRM Meetings and Tasks into OpenERP meetings" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,email_history:0 -msgid "Check this box to import sugarCRM Emails, Notes and Attachments into OpenERP Messages and Attachments" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,project:0 -msgid "Projects" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugarsoap_services_types.py:14 -#, python-format -msgid "Please install SOAP for python - ZSI-2.0-rc3.tar.gz from http://pypi.python.org/pypi/ZSI/" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,project:0 -msgid "Check this box to import sugarCRM Projects into OpenERP projects" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1098 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1124 -#, python-format -msgid "Select Module to Import." -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,meeting:0 -msgid "Meetings" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,employee:0 -msgid "Check this box to import sugarCRM Employees into OpenERP employees" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,url:0 -msgid "SugarSoap Api url:" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Address Book" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugar.py:60 -#, python-format -msgid "Authentication error !\n" -"Bad Username or Password bad SugarSoap Api url !" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,bug:0 -msgid "Bugs" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Project" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,project_task:0 -msgid "Check this box to import sugarCRM Project Tasks into OpenERP tasks" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,opportunity:0 -msgid "Leads & Opp" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:79 -#, python-format -msgid "Authentication error !\n" -"Bad Username or Password or bad SugarSoap Api url !" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:79 -#: code:addons/import_sugarcrm/sugar.py:60 -#, python-format -msgid "Error !" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1098 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1124 -#, python-format -msgid "Warning !" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,instance_name:0 -msgid "Prefix of SugarCRM id to differentiate xml_id of SugarCRM models datas come from different server." -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,contact:0 -msgid "Check this box to import sugarCRM Contacts into OpenERP addresses" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,password:0 -msgid "Password" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Login Information" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,claim:0 -msgid "Check this box to import sugarCRM Cases into OpenERP claims" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Email Notification When Import is Finished" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,username:0 -msgid "User Name" -msgstr "" - -#. module: import_sugarcrm -#: view:import.message:0 -#: model:ir.model,name:import_sugarcrm.model_import_message -msgid "Import Message" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,account:0 -msgid "Check this box to import sugarCRM Accounts into OpenERP partners" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Online documentation:" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,account:0 -msgid "Accounts" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "_Cancel" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugarsoap_services.py:23 -#: code:addons/import_sugarcrm/sugarsoap_services_types.py:14 -#, python-format -msgid "ZSI Import Error!" -msgstr "" - -#. module: import_sugarcrm -#: model:ir.model,name:import_sugarcrm.model_import_sugarcrm -msgid "Import SugarCRM DATA" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Email Address to Notify" -msgstr "" - diff --git a/addons/import_sugarcrm/i18n/ja.po b/addons/import_sugarcrm/i18n/ja.po deleted file mode 100644 index af59b6a1108..00000000000 --- a/addons/import_sugarcrm/i18n/ja.po +++ /dev/null @@ -1,417 +0,0 @@ -# Japanese translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-07-09 18:11+0000\n" -"Last-Translator: Akira Hiyama \n" -"Language-Team: Japanese \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1105 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1131 -#, python-format -msgid "Error !!" -msgstr "エラー" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"Use the SugarSoap API URL (read tooltip) and a full access SugarCRM login." -msgstr "SugarSoap API URL(ツールヒントを参照)とフルアクセスのSugarCRMログインを使用します。" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "(Coming Soon)" -msgstr "(ただいま準備中です。もうしばらくお待ちください。)" - -#. module: import_sugarcrm -#: field:import.sugarcrm,document:0 -msgid "Documents" -msgstr "ドキュメント" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Import your data from SugarCRM :" -msgstr "データをSugarCRMからインポートする。" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"Choose data you want to import. Click 'Import' to get data manually or " -"'Schedule Reccurent Imports' to get recurrently and automatically data." -msgstr "" -"インポートしたいデータを選択します。データを手動で取得するにはインポートを、データを繰り返し自動で取得するにはスケジュール反復インポートをクリックします。" - -#. module: import_sugarcrm -#: field:import.sugarcrm,contact:0 -msgid "Contacts" -msgstr "コンタクト" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "HR" -msgstr "人事" - -#. module: import_sugarcrm -#: help:import.sugarcrm,bug:0 -msgid "Check this box to import sugarCRM Bugs into OpenERP project issues" -msgstr "OpenERPのプロジェクト問題にSugarCRMのバグをインポートするには、このボックスをクリックします。" - -#. module: import_sugarcrm -#: field:import.sugarcrm,instance_name:0 -msgid "Instance's Name" -msgstr "インスタンスの名前" - -#. module: import_sugarcrm -#: field:import.sugarcrm,project_task:0 -msgid "Project Tasks" -msgstr "プロジェクトのタスク" - -#. module: import_sugarcrm -#: field:import.sugarcrm,email_from:0 -msgid "Notify End Of Import To:" -msgstr "インポート終了の通知先:" - -#. module: import_sugarcrm -#: help:import.sugarcrm,user:0 -msgid "" -"Check this box to import sugarCRM Users into OpenERP users, warning if a " -"user with the same login exist in OpenERP, user information will be erase by " -"sugarCRM user information" -msgstr "" -"OpenERPユーザにSugarCRMユーザをインポートするには、このボックスをチェックします。OpenERPの中に同じログインユーザが存在する場合は、S" -"ugarCRMユーザ情報によりユーザ情報が消されることに注意して下さい。" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugarsoap_services.py:23 -#, python-format -msgid "Please install SOAP for python - ZSI-2.0-rc3.tar.gz - python-zci" -msgstr "Python SOAPをインストールして下さい。- ZSI-2.0-rc3.tar.gz - python-zci" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "_Schedule Recurrent Imports" -msgstr "スケジュール反復インポート" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"Do not forget the email address to be notified of the success of the import." -msgstr "インポート完了を通知するEメールアドレスを忘れないで下さい。" - -#. module: import_sugarcrm -#: help:import.sugarcrm,call:0 -msgid "Check this box to import sugarCRM Calls into OpenERP calls" -msgstr "OpenERP通話にSugarCRM通話をインポートするには、このボックスをチェックします。" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"If you make recurrent or ponctual import, data already in OpenERP will be " -"updated by SugarCRM data." -msgstr "反復あるいは定時インポートをする場合、OpenERP内のデータはSugarCRMのデータによって更新されます。" - -#. module: import_sugarcrm -#: field:import.sugarcrm,employee:0 -msgid "Employee" -msgstr "従業員" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Document" -msgstr "ドキュメント" - -#. module: import_sugarcrm -#: help:import.sugarcrm,document:0 -msgid "Check this box to import sugarCRM Documents into OpenERP documents" -msgstr "SugarCRMドキュメントをOpenERPドキュメントへインポートするには、このボックスをチェックします。" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Import Data From SugarCRM" -msgstr "SugarCRMからデータのインポート" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "CRM" -msgstr "CRM" - -#. module: import_sugarcrm -#: view:import.message:0 -msgid "" -"Data are importing, the process is running in the background, an email will " -"be sent to the given email address if it was defined." -msgstr "データインポートのプロセスはバックグラウンドで実行されます。それが定義されている場合、所定のEメールアドレスにEメールが送信されます。" - -#. module: import_sugarcrm -#: field:import.sugarcrm,call:0 -msgid "Calls" -msgstr "通話" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Multi Instance Management" -msgstr "複数インスタンスの管理" - -#. module: import_sugarcrm -#: view:import.message:0 -msgid "_Ok" -msgstr "OK" - -#. module: import_sugarcrm -#: help:import.sugarcrm,opportunity:0 -msgid "" -"Check this box to import sugarCRM Leads and Opportunities into OpenERP Leads " -"and Opportunities" -msgstr "OpenERPのリードと商談の中に、SugarCRMのリードと商談をインポートするには、このボックスをチェックします。" - -#. module: import_sugarcrm -#: field:import.sugarcrm,email_history:0 -msgid "Email and Note" -msgstr "Eメールと備考" - -#. module: import_sugarcrm -#: help:import.sugarcrm,url:0 -msgid "" -"Webservice's url where to get the data. example : " -"'http://example.com/sugarcrm/soap.php', or copy the address of your sugarcrm " -"application " -"http://trial.sugarcrm.com/qbquyj4802/index.php?module=Home&action=index" -msgstr "" -"データを取得するためのWebサービスのURL。例:'http://example.com/sugarcrm/soap.php'、または、あなたのSugar" -"CRMアプリケーションのアドレスをコピーします。 " -"http://trial.sugarcrm.com/qbquyj4802/index.php?module=Home&action=index" - -#. module: import_sugarcrm -#: model:ir.actions.act_window,name:import_sugarcrm.action_import_sugarcrm -#: model:ir.ui.menu,name:import_sugarcrm.menu_sugarcrm_import -msgid "Import SugarCRM" -msgstr "SugarCRMをインポート" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "_Import" -msgstr "インポート" - -#. module: import_sugarcrm -#: field:import.sugarcrm,user:0 -msgid "User" -msgstr "ユーザ" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1105 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1131 -#, python-format -msgid "%s data required %s Module to be installed, Please install %s module" -msgstr "%s のデータは %s モジュールがインストールされていることを要求します。%s モジュールをインストールして下さい。" - -#. module: import_sugarcrm -#: field:import.sugarcrm,claim:0 -msgid "Cases" -msgstr "案件" - -#. module: import_sugarcrm -#: help:import.sugarcrm,meeting:0 -msgid "" -"Check this box to import sugarCRM Meetings and Tasks into OpenERP meetings" -msgstr "OpenERPミーティングにSugarCRMのミーティングとタスクをインポートするには、このボックスをチェックします。" - -#. module: import_sugarcrm -#: help:import.sugarcrm,email_history:0 -msgid "" -"Check this box to import sugarCRM Emails, Notes and Attachments into OpenERP " -"Messages and Attachments" -msgstr "" -"OpenERPメッセージと添付ファイにSugarCRMのEメール、ノート、添付ファイルをインポートするには、このボックスをチェックします。" - -#. module: import_sugarcrm -#: field:import.sugarcrm,project:0 -msgid "Projects" -msgstr "プロジェクト" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugarsoap_services_types.py:14 -#, python-format -msgid "" -"Please install SOAP for python - ZSI-2.0-rc3.tar.gz from " -"http://pypi.python.org/pypi/ZSI/" -msgstr "" -"Python SOAPをインストールして下さい。- ZSI-2.0-rc3.tar.gz from " -"http://pypi.python.org/pypi/ZSI/" - -#. module: import_sugarcrm -#: help:import.sugarcrm,project:0 -msgid "Check this box to import sugarCRM Projects into OpenERP projects" -msgstr "OpenERPプロジェクトにSugarCRMプロジェクトをインポートするには、このボックスをチェックして下さい。" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1098 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1124 -#, python-format -msgid "Select Module to Import." -msgstr "インポートするモジュールを選択" - -#. module: import_sugarcrm -#: field:import.sugarcrm,meeting:0 -msgid "Meetings" -msgstr "ミーティング" - -#. module: import_sugarcrm -#: help:import.sugarcrm,employee:0 -msgid "Check this box to import sugarCRM Employees into OpenERP employees" -msgstr "OpenERP従業員にSugarCRM従業員をインポートするには、このボックスをチェックします。" - -#. module: import_sugarcrm -#: field:import.sugarcrm,url:0 -msgid "SugarSoap Api url:" -msgstr "SugarSoap API URL:" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Address Book" -msgstr "アドレス帳" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugar.py:60 -#, python-format -msgid "" -"Authentication error !\n" -"Bad Username or Password bad SugarSoap Api url !" -msgstr "" -"認証エラー。\n" -"ユーザ名、パスワード、SugarSoap API URLの何れかに問題があります。" - -#. module: import_sugarcrm -#: field:import.sugarcrm,bug:0 -msgid "Bugs" -msgstr "バグ" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Project" -msgstr "プロジェクト" - -#. module: import_sugarcrm -#: help:import.sugarcrm,project_task:0 -msgid "Check this box to import sugarCRM Project Tasks into OpenERP tasks" -msgstr "OpenERPタスクにSugarCRMプロジェクトタスクをインポートするには、このボックスをチェックします。" - -#. module: import_sugarcrm -#: field:import.sugarcrm,opportunity:0 -msgid "Leads & Opp" -msgstr "リード & 商談" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:79 -#, python-format -msgid "" -"Authentication error !\n" -"Bad Username or Password or bad SugarSoap Api url !" -msgstr "" -"認証エラー。\n" -"ユーザ名、パスワード、SugarSoap API URLの何れかに問題があります。" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:79 -#: code:addons/import_sugarcrm/sugar.py:60 -#, python-format -msgid "Error !" -msgstr "エラー" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1098 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1124 -#, python-format -msgid "Warning !" -msgstr "警告" - -#. module: import_sugarcrm -#: help:import.sugarcrm,instance_name:0 -msgid "" -"Prefix of SugarCRM id to differentiate xml_id of SugarCRM models datas come " -"from different server." -msgstr "SugarCRMモデルデータの xml_id を区別するためのSugarCRM IDのサフィックス(接頭辞)は異なるサーバから来ます。" - -#. module: import_sugarcrm -#: help:import.sugarcrm,contact:0 -msgid "Check this box to import sugarCRM Contacts into OpenERP addresses" -msgstr "OpenERP住所録にSugarCRMコンタクトをインポートするには、このボックスをチェックします。" - -#. module: import_sugarcrm -#: field:import.sugarcrm,password:0 -msgid "Password" -msgstr "パスワード" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Login Information" -msgstr "ログイン情報" - -#. module: import_sugarcrm -#: help:import.sugarcrm,claim:0 -msgid "Check this box to import sugarCRM Cases into OpenERP claims" -msgstr "OpenERP苦情にSugarCRMケースをインポートするには、このボックスをチェックします。" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Email Notification When Import is Finished" -msgstr "インポート完了時にEメール通知" - -#. module: import_sugarcrm -#: field:import.sugarcrm,username:0 -msgid "User Name" -msgstr "ユーザ名" - -#. module: import_sugarcrm -#: view:import.message:0 -#: model:ir.model,name:import_sugarcrm.model_import_message -msgid "Import Message" -msgstr "メッセージのインポート" - -#. module: import_sugarcrm -#: help:import.sugarcrm,account:0 -msgid "Check this box to import sugarCRM Accounts into OpenERP partners" -msgstr "OpenERPパートナにSugarCRMアカウントをインポートするには、このボックスをチェックします。" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Online documentation:" -msgstr "オンラインドキュメンテーション:" - -#. module: import_sugarcrm -#: field:import.sugarcrm,account:0 -msgid "Accounts" -msgstr "顧客情報" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "_Cancel" -msgstr "キャンセル" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugarsoap_services.py:23 -#: code:addons/import_sugarcrm/sugarsoap_services_types.py:14 -#, python-format -msgid "ZSI Import Error!" -msgstr "ZSI のインポートエラー" - -#. module: import_sugarcrm -#: model:ir.model,name:import_sugarcrm.model_import_sugarcrm -msgid "Import SugarCRM DATA" -msgstr "SugarCRMのデータをインポート" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Email Address to Notify" -msgstr "通知のEメールアドレス" diff --git a/addons/import_sugarcrm/i18n/nl.po b/addons/import_sugarcrm/i18n/nl.po deleted file mode 100644 index 7b5fa7c288b..00000000000 --- a/addons/import_sugarcrm/i18n/nl.po +++ /dev/null @@ -1,409 +0,0 @@ -# Dutch translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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 18:16+0000\n" -"Last-Translator: Raphael Collet (OpenERP) \n" -"Language-Team: Dutch \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1105 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1131 -#, python-format -msgid "Error !!" -msgstr "Fout!" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"Use the SugarSoap API URL (read tooltip) and a full access SugarCRM login." -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "(Coming Soon)" -msgstr "(Komt snel)" - -#. module: import_sugarcrm -#: field:import.sugarcrm,document:0 -msgid "Documents" -msgstr "Documenten" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Import your data from SugarCRM :" -msgstr "Import uw gegevens van SugerCRM:" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"Choose data you want to import. Click 'Import' to get data manually or " -"'Schedule Reccurent Imports' to get recurrently and automatically data." -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,contact:0 -msgid "Contacts" -msgstr "Contacten" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "HR" -msgstr "HR" - -#. module: import_sugarcrm -#: help:import.sugarcrm,bug:0 -msgid "Check this box to import sugarCRM Bugs into OpenERP project issues" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,instance_name:0 -msgid "Instance's Name" -msgstr "Instantienaam" - -#. module: import_sugarcrm -#: field:import.sugarcrm,project_task:0 -msgid "Project Tasks" -msgstr "Project taken" - -#. module: import_sugarcrm -#: field:import.sugarcrm,email_from:0 -msgid "Notify End Of Import To:" -msgstr "Meld het einde van de import aan:" - -#. module: import_sugarcrm -#: help:import.sugarcrm,user:0 -msgid "" -"Check this box to import sugarCRM Users into OpenERP users, warning if a " -"user with the same login exist in OpenERP, user information will be erase by " -"sugarCRM user information" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugarsoap_services.py:23 -#, python-format -msgid "Please install SOAP for python - ZSI-2.0-rc3.tar.gz - python-zci" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "_Schedule Recurrent Imports" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"Do not forget the email address to be notified of the success of the import." -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,call:0 -msgid "Check this box to import sugarCRM Calls into OpenERP calls" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"If you make recurrent or ponctual import, data already in OpenERP will be " -"updated by SugarCRM data." -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,employee:0 -msgid "Employee" -msgstr "Werknemer" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Document" -msgstr "Document" - -#. module: import_sugarcrm -#: help:import.sugarcrm,document:0 -msgid "Check this box to import sugarCRM Documents into OpenERP documents" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Import Data From SugarCRM" -msgstr "Import gegevens van SugarCRM" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "CRM" -msgstr "Relatiebeheer" - -#. module: import_sugarcrm -#: view:import.message:0 -msgid "" -"Data are importing, the process is running in the background, an email will " -"be sent to the given email address if it was defined." -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,call:0 -msgid "Calls" -msgstr "Gesprekken" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Multi Instance Management" -msgstr "" - -#. module: import_sugarcrm -#: view:import.message:0 -msgid "_Ok" -msgstr "_Ok" - -#. module: import_sugarcrm -#: help:import.sugarcrm,opportunity:0 -msgid "" -"Check this box to import sugarCRM Leads and Opportunities into OpenERP Leads " -"and Opportunities" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,email_history:0 -msgid "Email and Note" -msgstr "E-mail en make notitie" - -#. module: import_sugarcrm -#: help:import.sugarcrm,url:0 -msgid "" -"Webservice's url where to get the data. example : " -"'http://example.com/sugarcrm/soap.php', or copy the address of your sugarcrm " -"application " -"http://trial.sugarcrm.com/qbquyj4802/index.php?module=Home&action=index" -msgstr "" - -#. module: import_sugarcrm -#: model:ir.actions.act_window,name:import_sugarcrm.action_import_sugarcrm -#: model:ir.ui.menu,name:import_sugarcrm.menu_sugarcrm_import -msgid "Import SugarCRM" -msgstr "Importeer SugarCRM" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "_Import" -msgstr "_Importeren" - -#. module: import_sugarcrm -#: field:import.sugarcrm,user:0 -msgid "User" -msgstr "Gebruiker" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1105 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1131 -#, python-format -msgid "%s data required %s Module to be installed, Please install %s module" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,claim:0 -msgid "Cases" -msgstr "Dossiers" - -#. module: import_sugarcrm -#: help:import.sugarcrm,meeting:0 -msgid "" -"Check this box to import sugarCRM Meetings and Tasks into OpenERP meetings" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,email_history:0 -msgid "" -"Check this box to import sugarCRM Emails, Notes and Attachments into OpenERP " -"Messages and Attachments" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,project:0 -msgid "Projects" -msgstr "Projecten" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugarsoap_services_types.py:14 -#, python-format -msgid "" -"Please install SOAP for python - ZSI-2.0-rc3.tar.gz from " -"http://pypi.python.org/pypi/ZSI/" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,project:0 -msgid "Check this box to import sugarCRM Projects into OpenERP projects" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1098 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1124 -#, python-format -msgid "Select Module to Import." -msgstr "Select module om te importeren" - -#. module: import_sugarcrm -#: field:import.sugarcrm,meeting:0 -msgid "Meetings" -msgstr "Afspraken" - -#. module: import_sugarcrm -#: help:import.sugarcrm,employee:0 -msgid "Check this box to import sugarCRM Employees into OpenERP employees" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,url:0 -msgid "SugarSoap Api url:" -msgstr "SugarSoap Api url:" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Address Book" -msgstr "Adresboek" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugar.py:60 -#, python-format -msgid "" -"Authentication error !\n" -"Bad Username or Password bad SugarSoap Api url !" -msgstr "" -"Authenticatie fout !\n" -"Foutieve gebruikersnaam of wachtwoord of SugarSoap Api url !" - -#. module: import_sugarcrm -#: field:import.sugarcrm,bug:0 -msgid "Bugs" -msgstr "Fouten/bugs" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Project" -msgstr "Project" - -#. module: import_sugarcrm -#: help:import.sugarcrm,project_task:0 -msgid "Check this box to import sugarCRM Project Tasks into OpenERP tasks" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,opportunity:0 -msgid "Leads & Opp" -msgstr "Leads & Pros." - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:79 -#, python-format -msgid "" -"Authentication error !\n" -"Bad Username or Password or bad SugarSoap Api url !" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:79 -#: code:addons/import_sugarcrm/sugar.py:60 -#, python-format -msgid "Error !" -msgstr "Fout !" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1098 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1124 -#, python-format -msgid "Warning !" -msgstr "Waarschuwing !" - -#. module: import_sugarcrm -#: help:import.sugarcrm,instance_name:0 -msgid "" -"Prefix of SugarCRM id to differentiate xml_id of SugarCRM models datas come " -"from different server." -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,contact:0 -msgid "Check this box to import sugarCRM Contacts into OpenERP addresses" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,password:0 -msgid "Password" -msgstr "Wachtwoord" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Login Information" -msgstr "Aanmeldingsinformatie" - -#. module: import_sugarcrm -#: help:import.sugarcrm,claim:0 -msgid "Check this box to import sugarCRM Cases into OpenERP claims" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Email Notification When Import is Finished" -msgstr "E-mail melding als de import gereed is" - -#. module: import_sugarcrm -#: field:import.sugarcrm,username:0 -msgid "User Name" -msgstr "Gebruikersnaam" - -#. module: import_sugarcrm -#: view:import.message:0 -#: model:ir.model,name:import_sugarcrm.model_import_message -msgid "Import Message" -msgstr "Import bericht" - -#. module: import_sugarcrm -#: help:import.sugarcrm,account:0 -msgid "Check this box to import sugarCRM Accounts into OpenERP partners" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Online documentation:" -msgstr "Online documentatie:" - -#. module: import_sugarcrm -#: field:import.sugarcrm,account:0 -msgid "Accounts" -msgstr "Accounts" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "_Cancel" -msgstr "_Annuleren" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugarsoap_services.py:23 -#: code:addons/import_sugarcrm/sugarsoap_services_types.py:14 -#, python-format -msgid "ZSI Import Error!" -msgstr "ZSI Import fout!" - -#. module: import_sugarcrm -#: model:ir.model,name:import_sugarcrm.model_import_sugarcrm -msgid "Import SugarCRM DATA" -msgstr "Importeer SugarCRM DATA" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Email Address to Notify" -msgstr "E-mail adres voor melding" - -#~ msgid "Email Notification When Import is finished" -#~ msgstr "E-mail melding als de import gereed is" diff --git a/addons/import_sugarcrm/i18n/pt.po b/addons/import_sugarcrm/i18n/pt.po deleted file mode 100644 index 3c66d9fc1bc..00000000000 --- a/addons/import_sugarcrm/i18n/pt.po +++ /dev/null @@ -1,404 +0,0 @@ -# Portuguese translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-21 12:30+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Portuguese \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1105 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1131 -#, python-format -msgid "Error !!" -msgstr "Erro !!" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"Use the SugarSoap API URL (read tooltip) and a full access SugarCRM login." -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "(Coming Soon)" -msgstr "(Em breve)" - -#. module: import_sugarcrm -#: field:import.sugarcrm,document:0 -msgid "Documents" -msgstr "Documentos" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Import your data from SugarCRM :" -msgstr "Importar os seus dados do SugarCRM:" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"Choose data you want to import. Click 'Import' to get data manually or " -"'Schedule Reccurent Imports' to get recurrently and automatically data." -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,contact:0 -msgid "Contacts" -msgstr "Contatos" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "HR" -msgstr "RH" - -#. module: import_sugarcrm -#: help:import.sugarcrm,bug:0 -msgid "Check this box to import sugarCRM Bugs into OpenERP project issues" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,instance_name:0 -msgid "Instance's Name" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,project_task:0 -msgid "Project Tasks" -msgstr "Tarefas do Projeto" - -#. module: import_sugarcrm -#: field:import.sugarcrm,email_from:0 -msgid "Notify End Of Import To:" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,user:0 -msgid "" -"Check this box to import sugarCRM Users into OpenERP users, warning if a " -"user with the same login exist in OpenERP, user information will be erase by " -"sugarCRM user information" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugarsoap_services.py:23 -#, python-format -msgid "Please install SOAP for python - ZSI-2.0-rc3.tar.gz - python-zci" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "_Schedule Recurrent Imports" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"Do not forget the email address to be notified of the success of the import." -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,call:0 -msgid "Check this box to import sugarCRM Calls into OpenERP calls" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"If you make recurrent or ponctual import, data already in OpenERP will be " -"updated by SugarCRM data." -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,employee:0 -msgid "Employee" -msgstr "Funcionário" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Document" -msgstr "Documento" - -#. module: import_sugarcrm -#: help:import.sugarcrm,document:0 -msgid "Check this box to import sugarCRM Documents into OpenERP documents" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Import Data From SugarCRM" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "CRM" -msgstr "CRM" - -#. module: import_sugarcrm -#: view:import.message:0 -msgid "" -"Data are importing, the process is running in the background, an email will " -"be sent to the given email address if it was defined." -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,call:0 -msgid "Calls" -msgstr "Chamadas" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Multi Instance Management" -msgstr "" - -#. module: import_sugarcrm -#: view:import.message:0 -msgid "_Ok" -msgstr "_Ok" - -#. module: import_sugarcrm -#: help:import.sugarcrm,opportunity:0 -msgid "" -"Check this box to import sugarCRM Leads and Opportunities into OpenERP Leads " -"and Opportunities" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,email_history:0 -msgid "Email and Note" -msgstr "Email e Notas" - -#. module: import_sugarcrm -#: help:import.sugarcrm,url:0 -msgid "" -"Webservice's url where to get the data. example : " -"'http://example.com/sugarcrm/soap.php', or copy the address of your sugarcrm " -"application " -"http://trial.sugarcrm.com/qbquyj4802/index.php?module=Home&action=index" -msgstr "" - -#. module: import_sugarcrm -#: model:ir.actions.act_window,name:import_sugarcrm.action_import_sugarcrm -#: model:ir.ui.menu,name:import_sugarcrm.menu_sugarcrm_import -msgid "Import SugarCRM" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "_Import" -msgstr "_Importar" - -#. module: import_sugarcrm -#: field:import.sugarcrm,user:0 -msgid "User" -msgstr "Utilizador" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1105 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1131 -#, python-format -msgid "%s data required %s Module to be installed, Please install %s module" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,claim:0 -msgid "Cases" -msgstr "Casos" - -#. module: import_sugarcrm -#: help:import.sugarcrm,meeting:0 -msgid "" -"Check this box to import sugarCRM Meetings and Tasks into OpenERP meetings" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,email_history:0 -msgid "" -"Check this box to import sugarCRM Emails, Notes and Attachments into OpenERP " -"Messages and Attachments" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,project:0 -msgid "Projects" -msgstr "Projetos" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugarsoap_services_types.py:14 -#, python-format -msgid "" -"Please install SOAP for python - ZSI-2.0-rc3.tar.gz from " -"http://pypi.python.org/pypi/ZSI/" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,project:0 -msgid "Check this box to import sugarCRM Projects into OpenERP projects" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1098 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1124 -#, python-format -msgid "Select Module to Import." -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,meeting:0 -msgid "Meetings" -msgstr "Reuniões" - -#. module: import_sugarcrm -#: help:import.sugarcrm,employee:0 -msgid "Check this box to import sugarCRM Employees into OpenERP employees" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,url:0 -msgid "SugarSoap Api url:" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Address Book" -msgstr "Lista de Contatos" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugar.py:60 -#, python-format -msgid "" -"Authentication error !\n" -"Bad Username or Password bad SugarSoap Api url !" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,bug:0 -msgid "Bugs" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Project" -msgstr "Projeto" - -#. module: import_sugarcrm -#: help:import.sugarcrm,project_task:0 -msgid "Check this box to import sugarCRM Project Tasks into OpenERP tasks" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,opportunity:0 -msgid "Leads & Opp" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:79 -#, python-format -msgid "" -"Authentication error !\n" -"Bad Username or Password or bad SugarSoap Api url !" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:79 -#: code:addons/import_sugarcrm/sugar.py:60 -#, python-format -msgid "Error !" -msgstr "Erro !" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1098 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1124 -#, python-format -msgid "Warning !" -msgstr "Aviso !" - -#. module: import_sugarcrm -#: help:import.sugarcrm,instance_name:0 -msgid "" -"Prefix of SugarCRM id to differentiate xml_id of SugarCRM models datas come " -"from different server." -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,contact:0 -msgid "Check this box to import sugarCRM Contacts into OpenERP addresses" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,password:0 -msgid "Password" -msgstr "Password" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Login Information" -msgstr "Informação de Login" - -#. module: import_sugarcrm -#: help:import.sugarcrm,claim:0 -msgid "Check this box to import sugarCRM Cases into OpenERP claims" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Email Notification When Import is Finished" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,username:0 -msgid "User Name" -msgstr "Nome do Utilizador" - -#. module: import_sugarcrm -#: view:import.message:0 -#: model:ir.model,name:import_sugarcrm.model_import_message -msgid "Import Message" -msgstr "Importar mensagem" - -#. module: import_sugarcrm -#: help:import.sugarcrm,account:0 -msgid "Check this box to import sugarCRM Accounts into OpenERP partners" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Online documentation:" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,account:0 -msgid "Accounts" -msgstr "Contas" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "_Cancel" -msgstr "_Cancelar" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugarsoap_services.py:23 -#: code:addons/import_sugarcrm/sugarsoap_services_types.py:14 -#, python-format -msgid "ZSI Import Error!" -msgstr "" - -#. module: import_sugarcrm -#: model:ir.model,name:import_sugarcrm.model_import_sugarcrm -msgid "Import SugarCRM DATA" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Email Address to Notify" -msgstr "" diff --git a/addons/import_sugarcrm/i18n/ro.po b/addons/import_sugarcrm/i18n/ro.po deleted file mode 100644 index 2a055137624..00000000000 --- a/addons/import_sugarcrm/i18n/ro.po +++ /dev/null @@ -1,456 +0,0 @@ -# Romanian translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-26 19:35+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Romanian \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1105 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1131 -#, python-format -msgid "Error !!" -msgstr "Eroare !!" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"Use the SugarSoap API URL (read tooltip) and a full access SugarCRM login." -msgstr "" -"Utilizati URL API SugarSoap (unealta de citire) si acces complet la " -"autentificarea SugarCRM." - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "(Coming Soon)" -msgstr "(In curand)" - -#. module: import_sugarcrm -#: field:import.sugarcrm,document:0 -msgid "Documents" -msgstr "Documente" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Import your data from SugarCRM :" -msgstr "Importati-va datele din SugarCRM :" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"Choose data you want to import. Click 'Import' to get data manually or " -"'Schedule Reccurent Imports' to get recurrently and automatically data." -msgstr "" -"Alegeti datele pe care doriti sa le importati. Faceti click pe 'Importa' " -"pentru a obtine datele manual sau 'Programeaza Importuri Recurente' pentru a " -"obtine date in mod recurent si automat." - -#. module: import_sugarcrm -#: field:import.sugarcrm,contact:0 -msgid "Contacts" -msgstr "Contacte" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "HR" -msgstr "RU" - -#. module: import_sugarcrm -#: help:import.sugarcrm,bug:0 -msgid "Check this box to import sugarCRM Bugs into OpenERP project issues" -msgstr "" -"Bifati aceasta casuta pentru a importa sugarCRM Bugs in problemele " -"proiectului OpenERP" - -#. module: import_sugarcrm -#: field:import.sugarcrm,instance_name:0 -msgid "Instance's Name" -msgstr "Numele Instantei" - -#. module: import_sugarcrm -#: field:import.sugarcrm,project_task:0 -msgid "Project Tasks" -msgstr "Sarcini Proiect" - -#. module: import_sugarcrm -#: field:import.sugarcrm,email_from:0 -msgid "Notify End Of Import To:" -msgstr "Anuntati Finalizarea Importului la:" - -#. module: import_sugarcrm -#: help:import.sugarcrm,user:0 -msgid "" -"Check this box to import sugarCRM Users into OpenERP users, warning if a " -"user with the same login exist in OpenERP, user information will be erase by " -"sugarCRM user information" -msgstr "" -"Bifati aceasta casuta pentru a importa Utilizatori sugarCRM in utilizatorii " -"OpenERP, avertizare daca exista un utilizator cu acelasi nume de " -"autentificare in OpenERP, informatiile despre utilizatori vor fi sterse de " -"informatiile despre utilizatorii sugarCRM" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugarsoap_services.py:23 -#, python-format -msgid "Please install SOAP for python - ZSI-2.0-rc3.tar.gz - python-zci" -msgstr "" -"Va rugam sa instalati SOAP pentru pyhton - ZSI-2.0-rc3.tar.gz - python-zci" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "_Schedule Recurrent Imports" -msgstr "_Programati Importuri Recurente" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"Do not forget the email address to be notified of the success of the import." -msgstr "" -"Nu uitati adresa de e-mail la care sa fiti instiintat ca importul a avut " -"succes." - -#. module: import_sugarcrm -#: help:import.sugarcrm,call:0 -msgid "Check this box to import sugarCRM Calls into OpenERP calls" -msgstr "" -"Bifati aceasta casuta pentru a importa Apeluri sugarCRM in apeluri OpenERP" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"If you make recurrent or ponctual import, data already in OpenERP will be " -"updated by SugarCRM data." -msgstr "" -"Daca efectuati importuri recurente sau punctuale, datele deja existente in " -"OpenERP vor fi actualizate cu datele SugarCRM." - -#. module: import_sugarcrm -#: field:import.sugarcrm,employee:0 -msgid "Employee" -msgstr "Angajat" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Document" -msgstr "Document" - -#. module: import_sugarcrm -#: help:import.sugarcrm,document:0 -msgid "Check this box to import sugarCRM Documents into OpenERP documents" -msgstr "" -"Bifati aceasta casuta pentru a importa Documente sugarCRM in documentele " -"OpenERP" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Import Data From SugarCRM" -msgstr "Importati Date din SugarCRM" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "CRM" -msgstr "CRM (MRC-Managementul Relatiei cu Clientii)" - -#. module: import_sugarcrm -#: view:import.message:0 -msgid "" -"Data are importing, the process is running in the background, an email will " -"be sent to the given email address if it was defined." -msgstr "" -"Datele sunt importate, procesul ruleaza in fundal, iar un e-mail va fi " -"trimis la adresa de e-mail data daca a fost definita." - -#. module: import_sugarcrm -#: field:import.sugarcrm,call:0 -msgid "Calls" -msgstr "Apeluri" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Multi Instance Management" -msgstr "Managementul Multi Instantelor" - -#. module: import_sugarcrm -#: view:import.message:0 -msgid "_Ok" -msgstr "_Ok" - -#. module: import_sugarcrm -#: help:import.sugarcrm,opportunity:0 -msgid "" -"Check this box to import sugarCRM Leads and Opportunities into OpenERP Leads " -"and Opportunities" -msgstr "" -"Bifati aceasta casuta pentru a importa Piste si Oportunitati sugarCRM in " -"Pistele si Oportunitatile OpenERP" - -#. module: import_sugarcrm -#: field:import.sugarcrm,email_history:0 -msgid "Email and Note" -msgstr "E-mail si Nota" - -#. module: import_sugarcrm -#: help:import.sugarcrm,url:0 -msgid "" -"Webservice's url where to get the data. example : " -"'http://example.com/sugarcrm/soap.php', or copy the address of your sugarcrm " -"application " -"http://trial.sugarcrm.com/qbquyj4802/index.php?module=Home&action=index" -msgstr "" -"Url-ul serii web de unde obtineti datele. De exemplu : " -"'http://example.com/sugarcrm/soap/php', sau copiati adresa aplicatiei d-" -"voastre sugarcrm " -"http://trial.sugarcrm.com/qbquyi4802/index.php?module=Home&action=index" - -#. module: import_sugarcrm -#: model:ir.actions.act_window,name:import_sugarcrm.action_import_sugarcrm -#: model:ir.ui.menu,name:import_sugarcrm.menu_sugarcrm_import -msgid "Import SugarCRM" -msgstr "importati SugarCRM" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "_Import" -msgstr "_Importati" - -#. module: import_sugarcrm -#: field:import.sugarcrm,user:0 -msgid "User" -msgstr "Utilizator" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1105 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1131 -#, python-format -msgid "%s data required %s Module to be installed, Please install %s module" -msgstr "" -"datele %s necesita instalarea Modulului %s, va rugam sa instalati modulul %s" - -#. module: import_sugarcrm -#: field:import.sugarcrm,claim:0 -msgid "Cases" -msgstr "Cazuri" - -#. module: import_sugarcrm -#: help:import.sugarcrm,meeting:0 -msgid "" -"Check this box to import sugarCRM Meetings and Tasks into OpenERP meetings" -msgstr "" -"Bifati aceasta casuta pentru a importa Intalniri si Sarcini sugarCRM in " -"Intalniri OpenERP" - -#. module: import_sugarcrm -#: help:import.sugarcrm,email_history:0 -msgid "" -"Check this box to import sugarCRM Emails, Notes and Attachments into OpenERP " -"Messages and Attachments" -msgstr "" -"Bifati aceasta casuta pentru a importa E-mail-uri, Note si Atasamente in " -"Mesajele si Atasamentele OpenERP" - -#. module: import_sugarcrm -#: field:import.sugarcrm,project:0 -msgid "Projects" -msgstr "Proiecte" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugarsoap_services_types.py:14 -#, python-format -msgid "" -"Please install SOAP for python - ZSI-2.0-rc3.tar.gz from " -"http://pypi.python.org/pypi/ZSI/" -msgstr "" -"Va rugam sa instalati SOAP pentru python - ZSI-2.0-rc3.tar.gz de la adresa " -"http://pypi.python.org/pypi/ZSI/" - -#. module: import_sugarcrm -#: help:import.sugarcrm,project:0 -msgid "Check this box to import sugarCRM Projects into OpenERP projects" -msgstr "" -"Bifati aceasta casuta pentru a importa Proiecte sugarCRM in proiectele " -"OpenERP" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1098 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1124 -#, python-format -msgid "Select Module to Import." -msgstr "Selectati Modulul care va fi Importat." - -#. module: import_sugarcrm -#: field:import.sugarcrm,meeting:0 -msgid "Meetings" -msgstr "Intalniri" - -#. module: import_sugarcrm -#: help:import.sugarcrm,employee:0 -msgid "Check this box to import sugarCRM Employees into OpenERP employees" -msgstr "" -"Bifati aceasta casuta pentru a importa Angajati sugarCRM in Angajati OpenERP" - -#. module: import_sugarcrm -#: field:import.sugarcrm,url:0 -msgid "SugarSoap Api url:" -msgstr "Url SugarSoap Api:" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Address Book" -msgstr "Agenda" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugar.py:60 -#, python-format -msgid "" -"Authentication error !\n" -"Bad Username or Password bad SugarSoap Api url !" -msgstr "" -"Eroare de autentificare !\n" -"Numele de utilizator sau Parola sunt gresite Url SugarSoap Api !" - -#. module: import_sugarcrm -#: field:import.sugarcrm,bug:0 -msgid "Bugs" -msgstr "Virusi" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Project" -msgstr "Proiect" - -#. module: import_sugarcrm -#: help:import.sugarcrm,project_task:0 -msgid "Check this box to import sugarCRM Project Tasks into OpenERP tasks" -msgstr "" -"Bifati aceasta casuta pentru a importa Sarcini pentru Proiecte sugarCRM in " -"sarcini OpenERP" - -#. module: import_sugarcrm -#: field:import.sugarcrm,opportunity:0 -msgid "Leads & Opp" -msgstr "Piste & Oportunitati" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:79 -#, python-format -msgid "" -"Authentication error !\n" -"Bad Username or Password or bad SugarSoap Api url !" -msgstr "" -"Eroare de autentificare !\n" -"Numele de utilizator sau parola sunt gresite sau Url-ul SugarSoap Api este " -"gresit !" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:79 -#: code:addons/import_sugarcrm/sugar.py:60 -#, python-format -msgid "Error !" -msgstr "Eroare !" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1098 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1124 -#, python-format -msgid "Warning !" -msgstr "Avertizare !" - -#. module: import_sugarcrm -#: help:import.sugarcrm,instance_name:0 -msgid "" -"Prefix of SugarCRM id to differentiate xml_id of SugarCRM models datas come " -"from different server." -msgstr "" -"Prefix id SugarCRM pentru a diferentia intre id_xml datele modelului " -"SugarCRM care provin de la un server diferit." - -#. module: import_sugarcrm -#: help:import.sugarcrm,contact:0 -msgid "Check this box to import sugarCRM Contacts into OpenERP addresses" -msgstr "" -"Bifati aceasta casuta pentru a importa Contacte sugarCRM in adresele OpenERP" - -#. module: import_sugarcrm -#: field:import.sugarcrm,password:0 -msgid "Password" -msgstr "Parola" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Login Information" -msgstr "Informatii de autentificare" - -#. module: import_sugarcrm -#: help:import.sugarcrm,claim:0 -msgid "Check this box to import sugarCRM Cases into OpenERP claims" -msgstr "" -"Bifati aceasta casuta pentru a importa Cazuri sugarCRM in solicitari OpenERP" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Email Notification When Import is Finished" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,username:0 -msgid "User Name" -msgstr "Nume de utilizator" - -#. module: import_sugarcrm -#: view:import.message:0 -#: model:ir.model,name:import_sugarcrm.model_import_message -msgid "Import Message" -msgstr "Importati Mesajul" - -#. module: import_sugarcrm -#: help:import.sugarcrm,account:0 -msgid "Check this box to import sugarCRM Accounts into OpenERP partners" -msgstr "" -"Bifati aceasta casuta pentru a importa Conturi sugarCRM in partenerii OpenERP" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Online documentation:" -msgstr "Documentatie online:" - -#. module: import_sugarcrm -#: field:import.sugarcrm,account:0 -msgid "Accounts" -msgstr "Conturi" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "_Cancel" -msgstr "_Anulati" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugarsoap_services.py:23 -#: code:addons/import_sugarcrm/sugarsoap_services_types.py:14 -#, python-format -msgid "ZSI Import Error!" -msgstr "Eroare Import ZSI!" - -#. module: import_sugarcrm -#: model:ir.model,name:import_sugarcrm.model_import_sugarcrm -msgid "Import SugarCRM DATA" -msgstr "Importati DATE SugarCRM" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Email Address to Notify" -msgstr "Adresa de e-mail pentru instiintare" - -#~ msgid "Email Notification When Import is finished" -#~ msgstr "Instiintare prin e-mail atunci cand Importul este finalizat" diff --git a/addons/import_sugarcrm/i18n/zh_CN.po b/addons/import_sugarcrm/i18n/zh_CN.po deleted file mode 100644 index 595ec438a8c..00000000000 --- a/addons/import_sugarcrm/i18n/zh_CN.po +++ /dev/null @@ -1,404 +0,0 @@ -# Chinese (Simplified) translation for openobject-addons -# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 -# This file is distributed under the same license as the openobject-addons package. -# FIRST AUTHOR , 2012. -# -msgid "" -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-08-18 17:37+0000\n" -"Last-Translator: Heling Yao \n" -"Language-Team: Chinese (Simplified) \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 06:42+0000\n" -"X-Generator: Launchpad (build 15864)\n" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1105 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1131 -#, python-format -msgid "Error !!" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"Use the SugarSoap API URL (read tooltip) and a full access SugarCRM login." -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "(Coming Soon)" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,document:0 -msgid "Documents" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Import your data from SugarCRM :" -msgstr "从 SugarCRM 导入您的数据:" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"Choose data you want to import. Click 'Import' to get data manually or " -"'Schedule Reccurent Imports' to get recurrently and automatically data." -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,contact:0 -msgid "Contacts" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "HR" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,bug:0 -msgid "Check this box to import sugarCRM Bugs into OpenERP project issues" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,instance_name:0 -msgid "Instance's Name" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,project_task:0 -msgid "Project Tasks" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,email_from:0 -msgid "Notify End Of Import To:" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,user:0 -msgid "" -"Check this box to import sugarCRM Users into OpenERP users, warning if a " -"user with the same login exist in OpenERP, user information will be erase by " -"sugarCRM user information" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugarsoap_services.py:23 -#, python-format -msgid "Please install SOAP for python - ZSI-2.0-rc3.tar.gz - python-zci" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "_Schedule Recurrent Imports" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"Do not forget the email address to be notified of the success of the import." -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,call:0 -msgid "Check this box to import sugarCRM Calls into OpenERP calls" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "" -"If you make recurrent or ponctual import, data already in OpenERP will be " -"updated by SugarCRM data." -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,employee:0 -msgid "Employee" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Document" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,document:0 -msgid "Check this box to import sugarCRM Documents into OpenERP documents" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Import Data From SugarCRM" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "CRM" -msgstr "" - -#. module: import_sugarcrm -#: view:import.message:0 -msgid "" -"Data are importing, the process is running in the background, an email will " -"be sent to the given email address if it was defined." -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,call:0 -msgid "Calls" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Multi Instance Management" -msgstr "" - -#. module: import_sugarcrm -#: view:import.message:0 -msgid "_Ok" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,opportunity:0 -msgid "" -"Check this box to import sugarCRM Leads and Opportunities into OpenERP Leads " -"and Opportunities" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,email_history:0 -msgid "Email and Note" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,url:0 -msgid "" -"Webservice's url where to get the data. example : " -"'http://example.com/sugarcrm/soap.php', or copy the address of your sugarcrm " -"application " -"http://trial.sugarcrm.com/qbquyj4802/index.php?module=Home&action=index" -msgstr "" - -#. module: import_sugarcrm -#: model:ir.actions.act_window,name:import_sugarcrm.action_import_sugarcrm -#: model:ir.ui.menu,name:import_sugarcrm.menu_sugarcrm_import -msgid "Import SugarCRM" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "_Import" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,user:0 -msgid "User" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1105 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1131 -#, python-format -msgid "%s data required %s Module to be installed, Please install %s module" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,claim:0 -msgid "Cases" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,meeting:0 -msgid "" -"Check this box to import sugarCRM Meetings and Tasks into OpenERP meetings" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,email_history:0 -msgid "" -"Check this box to import sugarCRM Emails, Notes and Attachments into OpenERP " -"Messages and Attachments" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,project:0 -msgid "Projects" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugarsoap_services_types.py:14 -#, python-format -msgid "" -"Please install SOAP for python - ZSI-2.0-rc3.tar.gz from " -"http://pypi.python.org/pypi/ZSI/" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,project:0 -msgid "Check this box to import sugarCRM Projects into OpenERP projects" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1098 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1124 -#, python-format -msgid "Select Module to Import." -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,meeting:0 -msgid "Meetings" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,employee:0 -msgid "Check this box to import sugarCRM Employees into OpenERP employees" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,url:0 -msgid "SugarSoap Api url:" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Address Book" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugar.py:60 -#, python-format -msgid "" -"Authentication error !\n" -"Bad Username or Password bad SugarSoap Api url !" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,bug:0 -msgid "Bugs" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Project" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,project_task:0 -msgid "Check this box to import sugarCRM Project Tasks into OpenERP tasks" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,opportunity:0 -msgid "Leads & Opp" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:79 -#, python-format -msgid "" -"Authentication error !\n" -"Bad Username or Password or bad SugarSoap Api url !" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:79 -#: code:addons/import_sugarcrm/sugar.py:60 -#, python-format -msgid "Error !" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/import_sugarcrm.py:1098 -#: code:addons/import_sugarcrm/import_sugarcrm.py:1124 -#, python-format -msgid "Warning !" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,instance_name:0 -msgid "" -"Prefix of SugarCRM id to differentiate xml_id of SugarCRM models datas come " -"from different server." -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,contact:0 -msgid "Check this box to import sugarCRM Contacts into OpenERP addresses" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,password:0 -msgid "Password" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Login Information" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,claim:0 -msgid "Check this box to import sugarCRM Cases into OpenERP claims" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Email Notification When Import is Finished" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,username:0 -msgid "User Name" -msgstr "" - -#. module: import_sugarcrm -#: view:import.message:0 -#: model:ir.model,name:import_sugarcrm.model_import_message -msgid "Import Message" -msgstr "" - -#. module: import_sugarcrm -#: help:import.sugarcrm,account:0 -msgid "Check this box to import sugarCRM Accounts into OpenERP partners" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Online documentation:" -msgstr "" - -#. module: import_sugarcrm -#: field:import.sugarcrm,account:0 -msgid "Accounts" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "_Cancel" -msgstr "" - -#. module: import_sugarcrm -#: code:addons/import_sugarcrm/sugarsoap_services.py:23 -#: code:addons/import_sugarcrm/sugarsoap_services_types.py:14 -#, python-format -msgid "ZSI Import Error!" -msgstr "" - -#. module: import_sugarcrm -#: model:ir.model,name:import_sugarcrm.model_import_sugarcrm -msgid "Import SugarCRM DATA" -msgstr "" - -#. module: import_sugarcrm -#: view:import.sugarcrm:0 -msgid "Email Address to Notify" -msgstr "" diff --git a/addons/import_sugarcrm/import_sugarcrm.py b/addons/import_sugarcrm/import_sugarcrm.py deleted file mode 100644 index 0099fc8b9a7..00000000000 --- a/addons/import_sugarcrm/import_sugarcrm.py +++ /dev/null @@ -1,1148 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## -from osv import fields, osv -import sugar -from tools.translate import _ -from import_base.import_framework import * -from import_base.mapper import * -from datetime import datetime -import base64 -import pprint -pp = pprint.PrettyPrinter(indent=4) -#copy old import here - -import htmllib - -def unescape_htmlentities(s): - p = htmllib.HTMLParser(None) - p.save_bgn() - p.feed(s) - return p.save_end() - -class related_ref(dbmapper): - def __init__(self, type): - self.type = type - - def __call__(self, external_val): - if external_val.get('parent_type') in self.type and external_val.get('parent_id'): - return self.parent.xml_id_exist(external_val['parent_type'], external_val['parent_id']) - return '' - -class sugar_import(import_framework): - URL = False - TABLE_CONTACT = 'Contacts' - TABLE_ACCOUNT = 'Accounts' - TABLE_USER = 'Users' - TABLE_EMPLOYEE = 'Employees' - TABLE_RESSOURCE = "resource" - TABLE_OPPORTUNITY = 'Opportunities' - TABLE_LEAD = 'Leads' - TABLE_STAGE = 'crm_stage' - TABLE_ATTENDEE = 'calendar_attendee' - TABLE_CALL = 'Calls' - TABLE_MEETING = 'Meetings' - TABLE_TASK = 'Tasks' - TABLE_PROJECT = 'Project' - TABLE_PROJECT_TASK = 'ProjectTask' - TABLE_BUG = 'Bugs' - TABLE_CASE = 'Cases' - TABLE_NOTE = 'Notes' - TABLE_EMAIL = 'Emails' - TABLE_COMPAIGN = 'Campaigns' - TABLE_DOCUMENT = 'Documents' - TABLE_HISTORY_ATTACHMNET = 'history_attachment' - - MAX_RESULT_PER_PAGE = 200 - - def initialize(self): - #login - PortType,sessionid = sugar.login(self.context.get('username',''), self.context.get('password',''), self.context.get('url','')) - if sessionid == '-1': - raise osv.except_osv(_('Error!'), _('Authentication error!\nBad username or password or bad SugarSoap Api url!')) - self.context['port'] = PortType - self.context['session_id'] = sessionid - - def get_data(self, table): - offset = 0 - res = [] - while True: - r = sugar.search(self.context.get('port'), self.context.get('session_id'), table, offset, self.MAX_RESULT_PER_PAGE) - res.extend(r) - if len(r) < self.MAX_RESULT_PER_PAGE: - break; - offset += self.MAX_RESULT_PER_PAGE - return res - - #def get_link(self, from_table, ids, to_table): - #return sugar.relation_search(self.context.get('port'), self.context.get('session_id'), from_table, module_id=ids, related_module=to_table) - - """ - Common import method - """ - def get_category(self, val, model, name): - fields = ['name', 'object_id'] - data = [name, model] - return self.import_object(fields, data, 'crm.case.categ', 'crm_categ', name, [('object_id.model','=',model), ('name', 'ilike', name)]) - - def get_job_title(self, dict, salutation): - fields = ['shortcut', 'name', 'domain'] - if salutation: - data = [salutation, salutation, 'Contact'] - return self.import_object(fields, data, 'res.partner.title', 'contact_title', salutation, [('shortcut', '=', salutation)]) - - def get_channel_id(self, dict, val): - if not val: - return False - fields = ['name'] - data = [val] - return self.import_object(fields, data, 'crm.case.channel', 'crm_channel', val) - - def get_all_states(self, external_val, country_id): - """Get states or create new state unless country_id is False""" - state_code = external_val[0:3] #take the tree first char - fields = ['country_id/id', 'name', 'code'] - data = [country_id, external_val, state_code] - if country_id: - return self.import_object(fields, data, 'res.country.state', 'country_state', external_val) - return False - - def get_all_countries(self, val): - """Get Country, if no country match do not create anything, to avoid duplicate country code""" - return self.mapped_id_if_exist('res.country', [('name', 'ilike', val)], 'country', val) - - def get_float_time(self, dict, hour, min): - min = int(min) * 100 / 60 - return "%s.%i" % (hour, min) - - """ - import Documents - """ - - def import_related_document(self, val): - res_model = False - res_id = False - sugar_document_account = sugar.relation_search(self.context.get('port'), self.context.get('session_id'), 'Documents', module_id=val.get('id'), related_module='Accounts', query=None, deleted=None) - sugar_document_contact = sugar.relation_search(self.context.get('port'), self.context.get('session_id'), 'Documents', module_id=val.get('id'), related_module=self.TABLE_CONTACT, query=None, deleted=None) - sugar_document_opportunity = sugar.relation_search(self.context.get('port'), self.context.get('session_id'), 'Documents', module_id=val.get('id'), related_module=self.TABLE_OPPORTUNITY, query=None, deleted=None) - sugar_document_case = sugar.relation_search(self.context.get('port'), self.context.get('session_id'), 'Documents', module_id=val.get('id'), related_module=self.TABLE_CASE, query=None, deleted=None) - sugar_document_bug = sugar.relation_search(self.context.get('port'), self.context.get('session_id'), 'Documents', module_id=val.get('id'), related_module=self.TABLE_BUG, query=None, deleted=None) - if sugar_document_account: - res_id = self.get_mapped_id(self.TABLE_ACCOUNT,sugar_document_account[0]) - res_model = 'res.partner' - elif sugar_document_contact: - res_id = self.get_mapped_id(self.TABLE_CONTACT, sugar_document_contact[0]) - res_model = 'res.partner' - elif sugar_document_opportunity: - res_id = self.get_mapped_id(self.TABLE_OPPORTUNITY, sugar_document_opportunity[0]) - res_model = 'crm.lead' - elif sugar_document_case: - res_id = self.get_mapped_id(self.TABLE_CASE, sugar_document_case[0]) - res_model = 'crm.claim' - elif sugar_document_bug: - res_id = self.get_mapped_id(self.TABLE_BUG, sugar_document_bug[0]) - res_model = 'project.issue' - return res_id,res_model - - def import_document(self, val): - File,Filename = sugar.get_document_revision_search(self.context.get('port'), self.context.get('session_id'), val.get('document_revision_id')) - #File = base64.encodestring(File) - res_id, res_model = self.import_related_document(val) - val['res_id'] = res_id - val['res_model'] = res_model - if File: - val['datas'] = File - val['datas_fname'] = Filename - return val - - def get_document_mapping(self): - return { - 'model' : 'ir.attachment', - 'dependencies' : [self.TABLE_USER], - 'hook' : self.import_document, - 'map' : { - 'name':'document_name', - 'description': ppconcat('description'), - 'datas': 'datas', - 'datas_fname': 'datas_fname', - 'res_model': 'res_model', - 'res_id': 'res_id', - } - } - - - """ - import Emails - """ - - - def import_email(self, val): - vals = sugar.email_search(self.context.get('port'), self.context.get('session_id'), self.TABLE_EMAIL, val.get('id')) - model_obj = self.obj.pool.get('ir.model.data') - for val in vals: - xml_id = self.xml_id_exist(val.get('parent_type'), val.get('parent_id')) - model_ids = model_obj.search(self.cr, self.uid, [('name', 'like', xml_id)]) - if model_ids: - model = model_obj.browse(self.cr, self.uid, model_ids)[0] - if model.model == 'res.partner': - val['partner_id/.id'] = model.res_id - else: - val['res_id'] = model.res_id - val['model'] = model.model - return val - - def get_email_mapping(self): - return { - 'model' : 'mail.message', - 'dependencies' : [self.TABLE_USER, self.TABLE_ACCOUNT, self.TABLE_CONTACT, self.TABLE_LEAD, self.TABLE_OPPORTUNITY, self.TABLE_MEETING, self.TABLE_CALL], - 'hook' : self.import_email, - 'map' : { - 'subject':'name', - 'state' : const('received'), - 'date':'date_sent', - 'email_from': 'from_addr_name', - 'email_to': 'to_addrs_names', - 'email_cc': 'cc_addrs_names', - 'email_bcc': 'bcc_addrs_names', - 'message_id': 'message_id', - 'res_id': 'res_id', - 'model': 'model', - 'partner_id/.id': 'partner_id/.id', - 'user_id/id': ref(self.TABLE_USER, 'assigned_user_id'), - 'body': 'description', - 'body_html' : 'description_html', - - } - } - - """ - import History(Notes) - """ - - - def import_history(self, val): - model_obj = self.obj.pool.get('ir.model.data') - xml_id = self.xml_id_exist(val.get('parent_type'), val.get('parent_id')) - model_ids = model_obj.search(self.cr, self.uid, [('name', 'like', xml_id)]) - if model_ids: - model = model_obj.browse(self.cr, self.uid, model_ids)[0] - if model.model == 'res.partner': - val['partner_id/.id'] = model.res_id - val['res_id'] = model.res_id - val['model'] = model.model - File, Filename = sugar.attachment_search(self.context.get('port'), self.context.get('session_id'), self.TABLE_NOTE, val.get('id')) - if File: - val['datas'] = File - val['datas_fname'] = Filename - return val - - def get_history_mapping(self): - return { - 'model' : 'ir.attachment', - 'dependencies' : [self.TABLE_USER, self.TABLE_ACCOUNT, self.TABLE_CONTACT, self.TABLE_LEAD, self.TABLE_OPPORTUNITY, self.TABLE_MEETING, self.TABLE_CALL, self.TABLE_EMAIL], - 'hook' : self.import_history, - 'map' : { - 'name':'name', - 'user_id/id': ref(self.TABLE_USER, 'created_by'), - 'description': ppconcat('description', 'description_html'), - 'res_id': 'res_id', - 'res_model': 'model', - 'partner_id/.id' : 'partner_id/.id', - 'datas' : 'datas', - 'datas_fname' : 'datas_fname' - } - } - - """ - import Claims(Cases) - """ - def get_claim_priority(self, val): - priority_dict = { - 'P1': '2', - 'P2': '3', - 'P3': '4' - } - return priority_dict.get(val.get('priority'), '') - - def get_contact_info_from_account(self, val): - partner_id = self.get_mapped_id(self.TABLE_ACCOUNT, val.get('account_id')) - partner_address_id = False - partner_phone = False - partner_email = False - partner = self.obj.pool.get('res.partner').browse(self.cr, self.uid, [partner_id])[0] - if partner.address and partner.address[0]: - address = partner.address[0] - partner_address_id = address.id - partner_phone = address.phone - partner_email = address.email - return partner_address_id, partner_phone,partner_email - - def import_crm_claim(self, val): - partner_address_id, partner_phone,partner_email = self.get_contact_info_from_account(val) - val['partner_address_id/.id'] = partner_address_id - val['partner_phone'] = partner_phone - val['email_from'] = partner_email - return val - - def get_crm_claim_mapping(self): - return { - 'model' : 'crm.claim', - 'dependencies' : [self.TABLE_USER, self.TABLE_ACCOUNT, self.TABLE_CONTACT, self.TABLE_LEAD], - 'hook' : self.import_crm_claim, - 'map' : { - 'name': concat('case_number','name', delimiter='-'), - 'date': 'date_entered', - 'user_id/id': ref(self.TABLE_USER, 'assigned_user_id'), - 'description': ppconcat('description', 'resolution', 'work_log'), - 'partner_id/id': ref(self.TABLE_ACCOUNT, 'account_id'), - 'partner_address_id/.id': 'partner_address_id/.id', - 'categ_id/id': call(self.get_category, 'crm.claim', value('type')), - 'partner_phone': 'partner_phone', - 'email_from': 'email_from', - 'priority': self.get_claim_priority, - 'state': map_val('status', self.project_issue_state) - } - } - """ - Import Project Issue(Bugs) - """ - project_issue_state = { - 'New' : 'draft', - 'Assigned':'open', - 'Closed': 'done', - 'Pending': 'pending', - 'Rejected': 'cancel', - } - - def get_project_issue_priority(self, val): - priority_dict = { - 'Urgent': '1', - 'High': '2', - 'Medium': '3', - 'Low': '4' - } - return priority_dict.get(val.get('priority'), '') - - def get_bug_project_id(self, dict, val): - fields = ['name'] - data = [val] - return self.import_object(fields, data, 'project.project', 'project_issue', val) - - def get_project_issue_mapping(self): - return { - 'model' : 'project.issue', - 'dependencies' : [self.TABLE_USER], - 'map' : { - 'name': concat('bug_number', 'name', delimiter='-'), - 'project_id/id': call(self.get_bug_project_id, 'sugarcrm_bugs'), - 'categ_id/id': call(self.get_category, 'project.issue', value('type')), - 'description': ppconcat('description', 'source', 'resolution', 'work_log', 'found_in_release', 'release_name', 'fixed_in_release_name', 'fixed_in_release'), - 'priority': self.get_project_issue_priority, - 'state': map_val('status', self.project_issue_state), - 'assigned_to/id' : ref(self.TABLE_USER, 'assigned_user_id'), - } - } - - """ - import Project Tasks - """ - project_task_state = { - 'Not Started': 'draft', - 'In Progress': 'open', - 'Completed': 'done', - 'Pending Input': 'pending', - 'Deferred': 'cancelled', - } - - def get_project_task_priority(self, val): - priority_dict = { - 'High': '0', - 'Medium': '2', - 'Low': '3' - } - return priority_dict.get(val.get('priority'), '') - - def get_project_task_mapping(self): - return { - 'model' : 'project.task', - 'dependencies' : [self.TABLE_USER, self.TABLE_PROJECT], - 'map' : { - 'name': 'name', - 'date_start': 'date_start', - 'date_end': 'date_finish', - 'project_id/id': ref(self.TABLE_PROJECT, 'project_id'), - 'planned_hours': 'estimated_effort', - 'priority': self.get_project_task_priority, - 'description': ppconcat('description','milestone_flag', 'project_task_id', 'task_number', 'percent_complete'), - 'user_id/id': ref(self.TABLE_USER, 'assigned_user_id'), - 'partner_id/id': 'partner_id/id', - 'contact_id/id': 'contact_id/id', - 'state': map_val('status', self.project_task_state) - } - } - - """ - import Projects - """ - project_state = { - 'Draft' : 'draft', - 'In Review': 'open', - 'Published': 'close' - } - - def import_project_account(self, val): - partner_id = False - partner_invoice_id = False - sugar_project_account = sugar.relation_search(self.context.get('port'), self.context.get('session_id'), 'Project', module_id=val.get('id'), related_module=self.TABLE_ACCOUNT, query=None, deleted=None) - sugar_project_contact = sugar.relation_search(self.context.get('port'), self.context.get('session_id'), 'Project', module_id=val.get('id'), related_module=self.TABLE_CONTACT, query=None, deleted=None) - for contact_id in sugar_project_contact: - partner_invoice_id = self.get_mapped_id(self.TABLE_CONTACT, contact_id) - for account_id in sugar_project_account: - partner_id = self.get_mapped_id(self.TABLE_ACCOUNT, account_id) - return partner_id, partner_invoice_id - - def import_project(self, val): - partner_id, partner_invoice_id = self.import_project_account(val) - val['partner_id/.id'] = partner_id - val['contact_id/.id'] = partner_invoice_id - return val - - def get_project_mapping(self): - return { - 'model' : 'project.project', - 'dependencies' : [self.TABLE_CONTACT, self.TABLE_ACCOUNT, self.TABLE_USER], - 'hook' : self.import_project, - 'map' : { - 'name': 'name', - 'date_start': 'estimated_start_date', - 'date': 'estimated_end_date', - 'user_id/id': ref(self.TABLE_USER, 'assigned_user_id'), - 'partner_id/.id': 'partner_id/.id', - 'contact_id/.id': 'contact_id/.id', - 'state': map_val('status', self.project_state) - } - } - - """ - import Tasks - """ - task_state = { - 'Completed' : 'open', - 'Not Started':'draft', - 'Pending Input': 'draft', - } - - def import_task(self, val): - date = val.get('date_start') or datetime.now().strftime('%Y-%m-%d %H:%M:%S'), - val['date'] = ''.join(date) - date_deadline = val.get('date_due') or datetime.now().strftime('%Y-%m-%d %H:%M:%S'), - val['date_deadline'] = ''.join(date_deadline) - return val - - def get_task_mapping(self): - return { - 'model' : 'crm.meeting', - 'dependencies' : [self.TABLE_CONTACT, self.TABLE_ACCOUNT, self.TABLE_USER], - 'hook' : self.import_task, - 'map' : { - 'name': 'name', - 'date': 'date', - 'date_deadline': 'date_deadline', - 'user_id/id': ref(self.TABLE_USER, 'assigned_user_id'), - 'categ_id/id': call(self.get_category, 'crm.meeting', const('Tasks')), - 'partner_id/id': related_ref(self.TABLE_ACCOUNT), - 'partner_address_id/id': ref(self.TABLE_CONTACT,'contact_id'), - 'state': map_val('status', self.task_state) - } - } - - """ - import Calls - """ - #TODO adapt with project trunk-crm-imp - call_state = { - 'Planned' : 'open', - 'Held':'done', - 'Not Held': 'pending', - } - - def get_calls_mapping(self): - return { - 'model' : 'crm.phonecall', - 'dependencies' : [self.TABLE_ACCOUNT, self.TABLE_CONTACT, self.TABLE_OPPORTUNITY, self.TABLE_LEAD], - 'map' : { - 'name': 'name', - 'date': 'date_start', - 'duration': call(self.get_float_time, value('duration_hours'), value('duration_minutes')), - 'user_id/id': ref(self.TABLE_USER, 'assigned_user_id'), - 'partner_id/id': related_ref(self.TABLE_ACCOUNT), - 'partner_address_id/id': related_ref(self.TABLE_CONTACT), - 'categ_id/id': call(self.get_category, 'crm.phonecall', value('direction')), - 'opportunity_id/id': related_ref(self.TABLE_OPPORTUNITY), - 'description': ppconcat('description'), - 'state': map_val('status', self.call_state) - } - } - - """ - import meeting - """ - meeting_state = { - 'Planned' : 'draft', - 'Held': 'open', - 'Not Held': 'draft', - } -#TODO - def get_attendee_id(self, cr, uid, module_name, module_id): - contact_id = False - user_id = False - attendee_id= [] - attendee_dict = sugar.user_get_attendee_list(self.context.get('port'), self.context.get('session_id'), module_name, module_id) - for attendee in attendee_dict: - user_id = self.xml_id_exist(self.TABLE_USER, attendee.get('id', False)) - contact_id = False - if not user_id: - contact_id = self.xml_id_exist(self.TABLE_CONTACT, attendee.get('id', False)) - fields = ['user_id/id', 'email', 'partner_address_id/id'] - data = [user_id, attendee.get('email1'), contact_id] - attendee_xml_id = self.import_object(fields, data, 'calendar.attendee', self.TABLE_ATTENDEE, user_id or contact_id or attendee.get('email1'), ['|',('user_id', '=', attendee.get('id')),('partner_address_id','=',attendee.get('id')),('email', '=', attendee.get('email1'))]) - attendee_id.append(attendee_xml_id) - return ','.join(attendee_id) - - def get_alarm_id(self, dict_val, val): - alarm_dict = { - '60': '1 minute before', - '300': '5 minutes before', - '600': '10 minutes before', - '900': '15 minutes before', - '1800':'30 minutes before', - '3600': '1 hour before', - } - return self.mapped_id_if_exist('res.alarm', [('name', 'like', alarm_dict.get(val))], 'alarm', val) - - #TODO attendees - - def import_meeting(self, val): - attendee_id = self.get_attendee_id(self.cr, self.uid, 'Meetings', val.get('id')) #TODO - val['attendee_ids/id'] = attendee_id - return val - - def get_meeting_mapping(self): - return { - 'model' : 'crm.meeting', - 'dependencies' : [self.TABLE_CONTACT, self.TABLE_OPPORTUNITY, self.TABLE_LEAD, self.TABLE_TASK], - 'hook': self.import_meeting, - 'map' : { - 'name': 'name', - 'date': 'date_start', - 'duration': call(self.get_float_time, value('duration_hours'), value('duration_minutes')), - 'location': 'location', - 'attendee_ids/id':'attendee_ids/id', - 'alarm_id/id': call(self.get_alarm_id, value('reminder_time')), - 'user_id/id': ref(self.TABLE_USER, 'assigned_user_id'), - 'partner_id/id': related_ref(self.TABLE_ACCOUNT), - 'partner_address_id/id': related_ref(self.TABLE_CONTACT), - 'state': map_val('status', self.meeting_state) - } - } - - """ - import Opportunity - """ - opp_state = { - 'Need Analysis' : 'New', - 'Closed Lost': 'Lost', - 'Closed Won': 'Won', - 'Value Proposition': 'Proposition', - 'Negotiation/Review': 'Negotiation' - } - - def get_opportunity_status(self, sugar_val): - fields = ['name', 'case_default'] - name = 'Opportunity_' + sugar_val['sales_stage'] - data = [sugar_val['sales_stage'], '1'] - return self.import_object(fields, data, 'crm.case.stage', self.TABLE_STAGE, name, [('name', 'ilike', sugar_val['sales_stage'])]) - - def import_opportunity_contact(self, val): - sugar_opportunities_contact = set(sugar.relation_search(self.context.get('port'), self.context.get('session_id'), 'Opportunities', module_id=val.get('id'), related_module='Contacts', query=None, deleted=None)) - - partner_contact_id = False - partner_contact_email = False - partner_address_obj = self.obj.pool.get('res.partner') - partner_xml_id = self.name_exist(self.TABLE_ACCOUNT, val['account_name'], 'res.partner') - - for contact in sugar_opportunities_contact: - address_id = self.get_mapped_id(self.TABLE_CONTACT, contact) - if address_id: - address = partner_address_obj.browse(self.cr, self.uid, address_id) - partner_name = address.partner_id and address.partner_id.name or False - if not partner_name: #link with partner id - fields = ['partner_id/id'] - data = [partner_xml_id] - self.import_object(fields, data, 'res.partner', self.TABLE_CONTACT, contact, self.DO_NOT_FIND_DOMAIN) - if not partner_name or partner_name == val.get('account_name'): - partner_contact_id = self.xml_id_exist(self.TABLE_CONTACT, contact) - partner_contact_email = address.email - return partner_contact_id, partner_contact_email - - def import_opp(self, val): - partner_contact_id, partner_contact_email = self.import_opportunity_contact(val) - val['partner_address_id/id'] = partner_contact_id - val['email_from'] = partner_contact_email - return val - - def get_opp_mapping(self): - return { - 'model' : 'crm.lead', - 'dependencies' : [self.TABLE_USER, self.TABLE_ACCOUNT, self.TABLE_CONTACT,self.TABLE_COMPAIGN], - 'hook' : self.import_opp, - 'map' : { - 'name': 'name', - 'probability': 'probability', - 'partner_id/id': refbyname(self.TABLE_ACCOUNT, 'account_name', 'res.partner'), - 'title_action': 'next_step', - 'partner_address_id/id': 'partner_address_id/id', - 'planned_revenue': 'amount', - 'date_deadline': 'date_closed', - 'user_id/id' : ref(self.TABLE_USER, 'assigned_user_id'), - 'stage_id/id' : self.get_opportunity_status, - 'type' : const('opportunity'), - 'categ_id/id': call(self.get_category, 'crm.lead', value('opportunity_type')), - 'email_from': 'email_from', - 'state': map_val('status', self.opp_state), - 'description' : 'description', - } - } - - """ - import campaign - """ - - def get_compaign_mapping(self): - return { - 'model' : 'crm.case.resource.type', - 'map' : { - 'name': 'name', - } - } - - """ - import lead - """ - def get_lead_status(self, sugar_val): - fields = ['name', 'case_default'] - name = 'lead_' + sugar_val.get('status', '') - data = [sugar_val.get('status', ''), '1'] - return self.import_object(fields, data, 'crm.case.stage', self.TABLE_STAGE, name, [('name', 'ilike', sugar_val.get('status', ''))]) - - lead_state = { - 'New' : 'draft', - 'Assigned':'open', - 'In Progress': 'open', - 'Recycled': 'cancel', - 'Dead': 'done', - 'Converted': 'done', - } - - def import_lead(self, val): - if val.get('opportunity_id'): #if lead is converted into opp, don't import as lead - return False - if val.get('primary_address_country'): - country_id = self.get_all_countries(val.get('primary_address_country')) - val['country_id/id'] = country_id - val['state_id/id'] = self.get_all_states(val.get('primary_address_state'), country_id) - return val - - def get_lead_mapping(self): - return { - 'model' : 'crm.lead', - 'dependencies' : [self.TABLE_COMPAIGN, self.TABLE_USER], - 'hook' : self.import_lead, - 'map' : { - 'name': concat('first_name', 'last_name'), - 'contact_name': concat('first_name', 'last_name'), - 'description': ppconcat('description', 'refered_by', 'lead_source', 'lead_source_description', 'website', 'email2', 'status_description', 'lead_source_description', 'do_not_call'), - 'partner_name': 'account_name', - 'email_from': 'email1', - 'phone': 'phone_work', - 'mobile': 'phone_mobile', - 'title/id': call(self.get_job_title, value('salutation')), - 'function':'title', - 'street': 'primary_address_street', - 'street2': 'alt_address_street', - 'zip': 'primary_address_postalcode', - 'city':'primary_address_city', - 'user_id/id' : ref(self.TABLE_USER, 'assigned_user_id'), - 'stage_id/id' : self.get_lead_status, - 'type' : const('lead'), - 'state': map_val('status', self.lead_state) , - 'fax': 'phone_fax', - 'referred': 'refered_by', - 'opt_out': 'do_not_call', - 'channel_id/id': call(self.get_channel_id, value('lead_source')), - 'type_id/id': ref(self.TABLE_COMPAIGN, 'campaign_id'), - 'country_id/id': 'country_id/id', - 'state_id/id': 'state_id/id', - } - } - - """ - import contact - """ - - def get_email(self, val): - email_address = sugar.get_contact_by_email(self.context.get('port'), self.context.get('username'), self.context.get('password'), val.get('email1')) - if email_address: - return ','.join(email_address) - - def import_contact(self, val): - if val.get('primary_address_country'): - country_id = self.get_all_countries(val.get('primary_address_country')) - state = self.get_all_states(val.get('primary_address_state'), country_id) - val['country_id/id'] = country_id - val['state_id/id'] = state - return val - - def get_contact_mapping(self): - return { - 'model' : 'res.partner', - #'dependencies' : [self.TABLE_ACCOUNT], - 'hook' : self.import_contact, - 'map' : { - 'name': concat('first_name', 'last_name'), - 'parent_id/id': ref(self.TABLE_ACCOUNT,'account_id'), - 'phone': 'phone_work', - 'mobile': 'phone_mobile', - 'fax': 'phone_fax', - 'function': 'title', - 'street': 'primary_address_street', - 'zip': 'primary_address_postalcode', - 'city': 'primary_address_city', - 'country_id/id': 'country_id/id', - 'state_id/id': 'state_id/id', - 'email': self.get_email, - 'type': const('contact') - } - } - - """ - import Account - """ - - def get_address_type(self, val, type): - if type == 'invoice': - type_address = 'billing' - else: - type_address = 'shipping' - - if type == 'default': - map_partner_address = { - 'name': 'name', - 'type': const('default'), - 'email': 'email1' - } - else: - map_partner_address = { - 'name': 'name', - 'phone': 'phone_office', - 'mobile': 'phone_mobile', - 'fax': 'phone_fax', - 'type': 'type', - 'street': type_address + '_address_street', - 'zip': type_address +'_address_postalcode', - 'city': type_address +'_address_city', - 'country_id/id': 'country_id/id', - 'type': 'type', - } - - if val.get(type_address +'_address_country'): - country_id = self.get_all_countries(val.get(type_address +'_address_country')) - state = self.get_all_states(val.get(type_address +'_address_state'), country_id) - val['country_id/id'] = country_id - val['state_id/id'] = state - - val['type'] = type - val['id_new'] = val['id'] + '_address_' + type - return self.import_object_mapping(map_partner_address, val, 'res.partner', self.TABLE_CONTACT, val['id_new'], self.DO_NOT_FIND_DOMAIN) - - def get_partner_address(self, val): - address_id=[] - type_dict = {'billing_address_street' : 'invoice', 'shipping_address_street' : 'delivery', 'type': 'default'} - for key, type_value in type_dict.items(): - if val.get(key): - id = self.get_address_type(val, type_value) - address_id.append(id) - - return ','.join(address_id) - - def get_partner_mapping(self): - return { - 'model' : 'res.partner', - 'dependencies' : [self.TABLE_USER], - 'map' : { - 'name': 'name', - 'website': 'website', - 'user_id/id': ref(self.TABLE_USER,'assigned_user_id'), - 'ref': 'sic_code', - 'comment': ppconcat('description', 'employees', 'ownership', 'annual_revenue', 'rating', 'industry', 'ticker_symbol'), - 'customer': const('1'), - 'supplier': const('0'), - 'address/id':'address/id', - 'parent_id/id_parent' : 'parent_id', - 'address/id' : self.get_partner_address, - } - } - - """ - import Employee - """ - def get_ressource(self, val): - map_resource = { - 'name': concat('first_name', 'last_name'), - } - return self.import_object_mapping(map_resource, val, 'resource.resource', self.TABLE_RESSOURCE, val['id'], self.DO_NOT_FIND_DOMAIN) - - def get_job_id(self, val): - fields = ['name'] - data = [val.get('title')] - return self.import_object(fields, data, 'hr.job', 'hr_job', val.get('title')) - - def get_user_address(self, val): - map_user_address = { - 'name': concat('first_name', 'last_name'), - 'city': 'address_city', - 'country_id/id': 'country_id/id', - 'state_id/id': 'state_id/id', - 'street': 'address_street', - 'zip': 'address_postalcode', - 'fax': 'phone_fax', - 'phone': 'phone_work', - 'mobile':'phone_mobile', - 'email': 'email1' - } - - if val.get('address_country'): - country_id = self.get_all_countries(val.get('address_country')) - state_id = self.get_all_states(val.get('address_state'), country_id) - val['country_id/id'] = country_id - val['state_id/id'] = state_id - - return self.import_object_mapping(map_user_address, val, 'res.partner', self.TABLE_CONTACT, val['id'], self.DO_NOT_FIND_DOMAIN) - - def get_employee_mapping(self): - return { - 'model' : 'hr.employee', - 'dependencies' : [self.TABLE_USER], - 'map' : { - 'resource_id/id': self.get_ressource, - 'name': concat('first_name', 'last_name'), - 'work_phone': 'phone_work', - 'mobile_phone': 'phone_mobile', - 'user_id/id': ref(self.TABLE_USER, 'id'), - 'address_home_id/id': self.get_user_address, - 'notes': ppconcat('messenger_type', 'messenger_id', 'description'), - 'job_id/id': self.get_job_id, - 'work_email' : 'email1', - 'coach_id/id_parent' : 'reports_to_id', - } - } - - """ - import user - """ - def import_user(self, val): - user_obj = self.obj.pool.get('res.users') - user_ids = user_obj.search(self.cr, self.uid, [('login', '=', val.get('user_name'))]) - if user_ids: - val['.id'] = str(user_ids[0]) - else: - val['password'] = 'sugarcrm' #default password for all user #TODO needed in documentation - - val['lang'] = self.context.get('lang','en_US') - return val - - def get_users_department(self, val): - dep = val.get('department') - fields = ['name'] - data = [dep] - if not dep: - return False - return self.import_object(fields, data, 'hr.department', 'hr_department_user', dep) - - def get_user_mapping(self): - return { - 'model' : 'res.users', - 'hook' : self.import_user, - 'map' : { - 'name': concat('first_name', 'last_name'), - 'login': value('user_name', fallback='last_name'), - 'lang' : 'context_lang', - 'password' : 'password', - '.id' : '.id', - 'email' : 'email1', - } - } - - - def get_mapping(self): - return { - self.TABLE_USER : self.get_user_mapping(), - self.TABLE_EMPLOYEE : self.get_employee_mapping(), - self.TABLE_ACCOUNT : self.get_partner_mapping(), - self.TABLE_CONTACT : self.get_contact_mapping(), - self.TABLE_LEAD : self.get_lead_mapping(), - self.TABLE_OPPORTUNITY : self.get_opp_mapping(), - self.TABLE_MEETING : self.get_meeting_mapping(), - self.TABLE_CALL : self.get_calls_mapping(), - self.TABLE_TASK : self.get_task_mapping(), - self.TABLE_PROJECT : self.get_project_mapping(), - self.TABLE_PROJECT_TASK: self.get_project_task_mapping(), - self.TABLE_BUG: self.get_project_issue_mapping(), - self.TABLE_CASE: self.get_crm_claim_mapping(), - self.TABLE_NOTE: self.get_history_mapping(), - self.TABLE_EMAIL: self.get_email_mapping(), - self.TABLE_DOCUMENT: self.get_document_mapping(), - self.TABLE_COMPAIGN: self.get_compaign_mapping() - } - - """ - Email notification - """ - def get_email_subject(self, result, error=False): - if error: - return "Sugarcrm data import failed at %s due to an unexpected error." % self.date_ended - return "your sugarcrm data were successfully imported at %s." % self.date_ended - - def get_body_header(self, result): - return "Sugarcrm import : report of last import" - - -class import_sugarcrm(osv.osv): - """Import SugarCRM DATA""" - - _name = "import.sugarcrm" - _description = __doc__ - _columns = { - 'username': fields.char('User Name', size=64, required=True), - 'password': fields.char('Password', size=24,required=True), - 'url' : fields.char('SugarSoap Api url:', size=264, required=True, help="Webservice's url where to get the data.\ - example : 'http://example.com/sugarcrm/soap.php', or copy the address of your sugarcrm application http://trial.sugarcrm.com/qbquyj4802/index.php?module=Home&action=index"), - 'user' : fields.boolean('User', help="Check this box to import sugarCRM Users into OpenERP users, warning if a user with the same login exist in OpenERP, user information will be erase by sugarCRM user information", readonly=True), - 'opportunity': fields.boolean('Leads & Opp', help="Check this box to import sugarCRM Leads and Opportunities into OpenERP Leads and Opportunities"), - 'contact': fields.boolean('Contacts', help="Check this box to import sugarCRM Contacts into OpenERP addresses"), - 'account': fields.boolean('Partner/Account', help="Check this box to import sugarCRM Accounts into OpenERP partners"), - 'employee': fields.boolean('Employee', help="Check this box to import sugarCRM Employees into OpenERP employees"), - 'meeting': fields.boolean('Meetings', help="Check this box to import sugarCRM Meetings and Tasks into OpenERP meetings"), - 'call': fields.boolean('Calls', help="Check this box to import sugarCRM Calls into OpenERP calls"), - 'claim': fields.boolean('Cases', help="Check this box to import sugarCRM Cases into OpenERP claims"), - 'email_history': fields.boolean('Email and Note',help="Check this box to import sugarCRM Emails, Notes and Attachments into OpenERP Messages and Attachments"), - 'project': fields.boolean('Projects', help="Check this box to import sugarCRM Projects into OpenERP projects"), - 'project_task': fields.boolean('Project Tasks', help="Check this box to import sugarCRM Project Tasks into OpenERP tasks"), - 'bug': fields.boolean('Bugs', help="Check this box to import sugarCRM Bugs into OpenERP project issues"), - 'document': fields.boolean('Documents', help="Check this box to import sugarCRM Documents into OpenERP documents"), - 'email_from': fields.char('Notify End Of Import To:', size=128), - 'instance_name': fields.char("Instance's Name", size=64, help="Prefix of SugarCRM id to differentiate xml_id of SugarCRM models datas come from different server."), - } - - def _get_email_id(self, cr, uid, context=None): - return self.pool.get('res.users').browse(cr, uid, uid, context=context).email - - def _module_installed(self, cr, uid, model, context=None): - module_id = self.pool.get('ir.module.module').search(cr, uid, [('name', '=', model), ('state', "=", "installed")], context=context) - return bool(module_id) - - def _project_installed(self, cr, uid, context=None): - return self._module_installed(cr,uid,'project',context=context) - - def _crm_claim_installed(self, cr, uid, context=None): - return self._module_installed(cr,uid,'crm_claim',context=context) - - def _project_issue_installed(self, cr, uid, context=None): - return self._module_installed(cr,uid,'project_issue',context=context) - - def _hr_installed(self, cr, uid, context=None): - return self._module_installed(cr,uid,'hr',context=context) - - _defaults = {#to be set to true, but easier for debugging - 'user' : True, - 'opportunity': True, - 'contact' : True, - 'account' : True, - 'employee' : _hr_installed, - 'meeting' : True, - 'call' : True, - 'claim' : _crm_claim_installed, - 'email_history' : True, - 'project' : _project_installed, - 'project_task': _project_installed, - 'bug': _project_issue_installed, - 'document': True, - 'instance_name': 'sugarcrm', - 'email_from': _get_email_id, - 'username' : 'admin', - 'password' : '', - 'url': "http://sugarcrm.example.com/soap.php" - } - - def check_url(self, url, context): - if not context: - context = {} - user = context.get('username') - password = context.get('password') - - try : - sugar.login(user, password, url) - return True - except Exception: - return False - - - def parse_valid_url(self, context=None): - if not context: - context = {} - url = context.get('url') - url_split = str(url).split('/') - while len(url_split) >= 3: - #3 case, soap.php is already at the end of url should be valid - #url end by / or not - if url_split[-1] == 'soap.php': - url = "/".join(url_split) - elif url_split[-1] == '': - url = "/".join(url_split) + "soap.php" - else: - url = "/".join(url_split) + "/soap.php" - - if self.check_url(url, context): - return url - else: - url_split = url_split[:-1] #take parent folder - return url - - def get_key(self, cr, uid, ids, context=None): - """Select Key as For which Module data we want import data.""" - if not context: - context = {} - key_list = [] - module = {} - for current in self.browse(cr, uid, ids, context): - context.update({'username': current.username, 'password': current.password, 'url': current.url, 'email_user': current.email_from or False, 'instance_name': current.instance_name or False}) - if current.user: - key_list.append('Users') - if current.contact: - key_list.append('Contacts') - if current.account: - key_list.append('Accounts') - if current.opportunity: - key_list.append('Leads') - key_list.append('Opportunities') - if current.employee: - key_list.append('Employees') - module.update({'Employees':'hr'}) - if current.meeting: - key_list.append('Meetings') - if current.call: - key_list.append('Calls') - if current.claim: - key_list.append('Cases') - module.update({'Cases':'crm_claim'}) - if current.email_history: - key_list.append('Emails') - key_list.append('Notes') - if current.project: - key_list.append('Project') - module.update({'Project':'project'}) - if current.project_task: - key_list.append('ProjectTask') - module.update({'ProjectTask':'project'}) - if current.bug: - key_list.append('Bugs') - module.update({'Bugs':'project_issue'}) - if current.document: - key_list.append('Documents') - return key_list,module - - - def do_import_all(self, cr, uid, *args): - """ - scheduler Method - """ - context = {'username': args[4], 'password': args[5], 'url': args[3], 'instance_name': args[3]} - imp = sugar_import(self, cr, uid, args[2], "import_sugarcrm", args[1], context) - imp.set_table_list(args[0]) - imp.start() - return True - - def import_from_scheduler_all(self, cr, uid, ids, context=None): - keys, module_list = self.get_key(cr, uid, ids, context) - if not keys: - raise osv.except_osv(_('Warning!'), _('Select Module to Import.')) - key_list = module_list.keys() - for module in key_list : - module = module_list[module] - state = self.get_all(cr,uid,module,context=context) - if state == False: - keys = ', '.join(key_list) - raise osv.except_osv(_('Error !!'), _("%s data required %s Module to be installed, Please install %s module.") %(keys,module,module)) - cron_obj = self.pool.get('ir.cron') - url = self.parse_valid_url(context) - args = (keys,context.get('email_user'), context.get('instance_name'), url, context.get('username'), context.get('password') ) - new_create_id = cron_obj.create(cr, uid, {'name': 'Import SugarCRM datas','interval_type': 'hours','interval_number': 1, 'numbercall': -1,'model': 'import.sugarcrm','function': 'do_import_all', 'args': args, 'active': False}) - return { - 'name': 'SugarCRM Scheduler', - 'view_type': 'form', - 'view_mode': 'form,tree', - 'res_model': 'ir.cron', - 'res_id': new_create_id, - 'type': 'ir.actions.act_window', - } - - def import_all(self, cr, uid, ids, context=None): - -# """Import all sugarcrm data into openerp module""" - keys, module_list = self.get_key(cr, uid, ids, context) - if not keys: - raise osv.except_osv(_('Warning!'), _('Select Module to Import.')) - key_list = module_list.keys() - for module in key_list : - module = module_list[module] - state = self._module_installed(cr,uid,module,context=context) - if state == False: - keys = ', '.join(key_list) - raise osv.except_osv(_('Error !!'), _("%s data required %s Module to be installed, Please install %s module.") %(keys,module,module)) - url = self.parse_valid_url(context) - context.update({'url': url}) - imp = sugar_import(self, cr, uid, context.get('instance_name'), "import_sugarcrm", context.get('email_user'), context) - imp.set_table_list(keys) - imp.start() - obj_model = self.pool.get('ir.model.data') - model_data_ids = obj_model.search(cr,uid,[('model','=','ir.ui.view'),('name','=','import.message.form')]) - resource_id = obj_model.read(cr, uid, model_data_ids, fields=['res_id']) - return { - 'view_type': 'form', - 'view_mode': 'form', - 'res_model': 'import.message', - 'views': [(resource_id,'form')], - 'type': 'ir.actions.act_window', - 'target': 'new', - } - -import_sugarcrm() - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/import_sugarcrm/import_sugarcrm_view.xml b/addons/import_sugarcrm/import_sugarcrm_view.xml deleted file mode 100644 index 7206233569a..00000000000 --- a/addons/import_sugarcrm/import_sugarcrm_view.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - import.sugarcrm.form - import.sugarcrm - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - - - - Import SugarCRM - import.sugarcrm - form - tree,form - - new - - - - - -
-
diff --git a/addons/import_sugarcrm/security/ir.model.access.csv b/addons/import_sugarcrm/security/ir.model.access.csv deleted file mode 100644 index 5aadbf32950..00000000000 --- a/addons/import_sugarcrm/security/ir.model.access.csv +++ /dev/null @@ -1,3 +0,0 @@ -id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_import_sugarcrm_system,import.sugarcrm system,model_import_sugarcrm,base.group_system,1,1,1,1 -access_import_message_system,import.message system,model_import_message,base.group_system,1,1,1,1 diff --git a/addons/import_sugarcrm/sugar.py b/addons/import_sugarcrm/sugar.py deleted file mode 100644 index 658ddc9e76d..00000000000 --- a/addons/import_sugarcrm/sugar.py +++ /dev/null @@ -1,180 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - - -import hashlib -from sugarsoap_services import * -from sugarsoap_services_types import * -from osv import osv -from tools.translate import _ -import base64 -from lxml import etree -import tools -import import_sugarcrm - -import logging - -import sys -_logger = logging.getLogger(__name__) - -debug = False - - -class LoginError(Exception): pass - -def login(username, password, url): - setURL(url) - loc = sugarsoapLocator() - if debug: - portType = loc.getsugarsoapPortType(url, tracefile=sys.stdout) - else: - portType = loc.getsugarsoapPortType(url) - request = loginRequest() - uauth = ns0.user_auth_Def(request) - request._user_auth = uauth - - uauth._user_name = username - uauth._password = hashlib.md5(password).hexdigest() - uauth._version = '1.1' - try: - response = portType.login(request) - except: - raise osv.except_osv(_('Error!'), _('Authentication error!\nBad username or password or bad SugarSoap Api url!')) - if -1 == response._return._id: - raise LoginError(response._return._error._description) - - return (portType, response._return._id) - -def relation_search(portType, sessionid, module_name=None, module_id=None, related_module=None, query=None, deleted=None): - se_req = get_relationshipsRequest() - se_req._session = sessionid - se_req._module_name = module_name - se_req._module_id = module_id - se_req._related_module = related_module - se_resp = portType.get_relationships(se_req) - ans_list = [] - if se_resp: - list = se_resp._return.get_element_ids() - for i in list: - ans_list.append(i.get_element_id()) - return ans_list - -def attachment_search(portType, sessionid, module_name, module_id=None): - se_req = get_note_attachmentRequest() - se_req._session = sessionid - se_req._id = module_id - se_req._module_name = module_name - se_resp = portType.get_note_attachment(se_req) - file = se_resp._return._note_attachment.File - filename = se_resp._return._note_attachment.Filename - return file, filename - -def user_get_attendee_list(portType, sessionid, module_name=None, module_id=None): - se_req = get_attendee_listRequest() - se_req._session = sessionid - se_req._module_name = module_name - se_req._id = module_id - se_resp = portType.get_attendee_list(se_req) - list = se_resp.get_element_return() - arch = base64.decodestring(list.Result) - eview = etree.XML(arch) - attendee_list = [] - for child in eview: - attendee_dict = {} - for ch in child.getchildren(): - attendee_dict[ch.tag] = tools.ustr(ch.text) - attendee_list.append(attendee_dict) - return attendee_list - -def get_contact_by_email(portType, username, password, email_address=None): - se_req = contact_by_emailRequest() - se_req._user_name = username - se_req._password = password - se_req._email_address = email_address - try: - se_resp = portType.contact_by_email(se_req) - email_list = [] - for list in se_resp.get_element_return(): - if list.Email_address in email_list: - continue - elif list.Email_address: - email_list.append(list.Email_address) - return email_list - except Exception,e: - _logger.error('Exception: %s\n' % (tools.ustr(e))) - return False - -def get_document_revision_search(portType, sessionid, module_id=None): - se_req = get_document_revisionRequest() - se_req._session = sessionid - se_req._i = module_id - se_resp = portType.get_document_list(se_req) - file = se_resp._return.Document_revision.File - filename = se_resp._return.Document_revision.Filename - return file, filename - - -def email_search(portType, sessionid, module_name, module_id, select_fields=None): - se_req = get_entryRequest() - se_req._session = sessionid - se_req._module_name = module_name - se_req._id = module_id - se_req._select_fields = select_fields - - se_resp = portType.get_entry(se_req) - ans_list = [] - if se_resp: - list = se_resp._return._entry_list - - for i in list: - ans_dir = {} - for j in i._name_value_list: - ans_dir[tools.ustr(j._name)] = tools.ustr(j._value) - #end for - ans_list.append(ans_dir) - #end for - return ans_list - -def search(portType, sessionid, module_name, offset, max_results, query=None, order_by=None, select_fields=None, deleted=None): - se_req = get_entry_listRequest() - se_req._session = sessionid - se_req._module_name = module_name - if query != None: - se_req._query = query - se_req._order_by = order_by - se_req._offset = offset - se_req._select_fields = select_fields - se_req._max_results = max_results - se_req._deleted = deleted - se_resp = portType.get_entry_list(se_req) - ans_list = [] - if se_resp: - list = se_resp._return._entry_list - for i in list: - ans_dir = {} - for j in i._name_value_list: - ans_dir[tools.ustr(j._name)] = import_sugarcrm.unescape_htmlentities(tools.ustr(j._value)) - #end for - ans_list.append(ans_dir) - #end for - return ans_list - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/import_sugarcrm/sugarsoap_services.py b/addons/import_sugarcrm/sugarsoap_services.py deleted file mode 100644 index 38454de9c2a..00000000000 --- a/addons/import_sugarcrm/sugarsoap_services.py +++ /dev/null @@ -1,1422 +0,0 @@ -################################################## -# sugarsoap_services.py -# generated by ZSI.generate.wsdl2python -################################################## - - -from sugarsoap_services_types import * -from osv import osv -from tools.translate import _ -import socket -import import_sugarcrm - - - -IP = socket.gethostbyname(socket.gethostname()) -URL = False - -try: - import ZSI - from ZSI.TCcompound import Struct - from ZSI import client -except ImportError: - raise osv.except_osv(_('ZSI Import Error!'), _('Please install SOAP for python - ZSI-2.0-rc3.tar.gz - python-zci')) - -def setURL(url): - global URL - URL = url - -# Locator -class sugarsoapLocator: - sugarsoapPortType_address = URL - def getsugarsoapPortTypeAddress(self): - return sugarsoapLocator.sugarsoapPortType_address - def getsugarsoapPortType(self, url=None, **kw): - return sugarsoapBindingSOAP(url or sugarsoapLocator.sugarsoapPortType_address, **kw) - -# Methods -class sugarsoapBindingSOAP: - def __init__(self, url, **kw): - kw.setdefault("readerclass", None) - kw.setdefault("writerclass", None) - # no resource properties - self.binding = client.Binding(url=url, **kw) - # no ws-addressing - - # op: create_session - def create_session(self, request): - if isinstance(request, create_sessionRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction= URL+"/create_session", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=create_sessionResponse.typecode.ofwhat, pyclass=create_sessionResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: end_session - def end_session(self, request): - if isinstance(request, end_sessionRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/end_session", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=end_sessionResponse.typecode.ofwhat, pyclass=end_sessionResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: contact_by_email - def contact_by_email(self, request): - if isinstance(request, contact_by_emailRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/contact_by_email", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=contact_by_emailResponse.typecode.ofwhat, pyclass=contact_by_emailResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: user_list - def user_list(self, request): - if isinstance(request, user_listRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/user_list", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=user_listResponse.typecode.ofwhat, pyclass=user_listResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: search - def search(self, request): - if isinstance(request, searchRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/search", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=searchResponse.typecode.ofwhat, pyclass=searchResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: track_email - def track_email(self, request): - if isinstance(request, track_emailRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/track_email", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=track_emailResponse.typecode.ofwhat, pyclass=track_emailResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: create_contact - def create_contact(self, request): - if isinstance(request, create_contactRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/create_contact", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=create_contactResponse.typecode.ofwhat, pyclass=create_contactResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: create_lead - def create_lead(self, request): - if isinstance(request, create_leadRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/create_lead", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=create_leadResponse.typecode.ofwhat, pyclass=create_leadResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: create_account - def create_account(self, request): - if isinstance(request, create_accountRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/create_account", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=create_accountResponse.typecode.ofwhat, pyclass=create_accountResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: create_opportunity - def create_opportunity(self, request): - if isinstance(request, create_opportunityRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/create_opportunity", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=create_opportunityResponse.typecode.ofwhat, pyclass=create_opportunityResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: create_case - def create_case(self, request): - if isinstance(request, create_caseRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/create_case", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=create_caseResponse.typecode.ofwhat, pyclass=create_caseResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: login - def login(self, request): - if isinstance(request, loginRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/login", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=loginResponse.typecode.ofwhat, pyclass=loginResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: is_loopback - def is_loopback(self, request): - if isinstance(request, is_loopbackRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/is_loopback", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=is_loopbackResponse.typecode.ofwhat, pyclass=is_loopbackResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: seamless_login - def seamless_login(self, request): - if isinstance(request, seamless_loginRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/seamless_login", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=seamless_loginResponse.typecode.ofwhat, pyclass=seamless_loginResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - #op: get_document_list - def get_document_list(self, request): - if isinstance(request, get_document_revisionRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction="http://"+ IP +"/sugarcrm/soap.php/get_document_list", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=get_document_revisionResponse.typecode.ofwhat, pyclass=get_document_revisionResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: get_entry_list - def get_entry_list(self, request): - if isinstance(request, get_entry_listRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/get_entry_list", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=get_entry_listResponse.typecode.ofwhat, pyclass=get_entry_listResponse.typecode.pyclass) - try: - response = self.binding.Receive(typecode) - except: - return None - return response - - # op: get_entry - def get_entry(self, request): - if isinstance(request, get_entryRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/get_entry", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=get_entryResponse.typecode.ofwhat, pyclass=get_entryResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: get_entries - def get_entries(self, request): - if isinstance(request, get_entriesRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/get_entries", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=get_entriesResponse.typecode.ofwhat, pyclass=get_entriesResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: set_entry - def set_entry(self, request): - if isinstance(request, set_entryRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/set_entry", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=set_entryResponse.typecode.ofwhat, pyclass=set_entryResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: set_entries - def set_entries(self, request): - if isinstance(request, set_entriesRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/set_entries", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=set_entriesResponse.typecode.ofwhat, pyclass=set_entriesResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: set_note_attachment - def set_note_attachment(self, request): - if isinstance(request, set_note_attachmentRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/set_note_attachment", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=set_note_attachmentResponse.typecode.ofwhat, pyclass=set_note_attachmentResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: get_note_attachment - def get_note_attachment(self, request): - if isinstance(request, get_note_attachmentRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/get_note_attachment", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=get_note_attachmentResponse.typecode.ofwhat, pyclass=get_note_attachmentResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: relate_note_to_module - def relate_note_to_module(self, request): - if isinstance(request, relate_note_to_moduleRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/relate_note_to_module", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=relate_note_to_moduleResponse.typecode.ofwhat, pyclass=relate_note_to_moduleResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: get_related_notes - def get_related_notes(self, request): - if isinstance(request, get_related_notesRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/get_related_notes", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=get_related_notesResponse.typecode.ofwhat, pyclass=get_related_notesResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: logout - def logout(self, request): - if isinstance(request, logoutRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/logout", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=logoutResponse.typecode.ofwhat, pyclass=logoutResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: get_module_fields - def get_module_fields(self, request): - if isinstance(request, get_module_fieldsRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/get_module_fields", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=get_module_fieldsResponse.typecode.ofwhat, pyclass=get_module_fieldsResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: get_available_modules - def get_available_modules(self, request): - if isinstance(request, get_available_modulesRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/get_available_modules", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=get_available_modulesResponse.typecode.ofwhat, pyclass=get_available_modulesResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: update_portal_user - def update_portal_user(self, request): - if isinstance(request, update_portal_userRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/update_portal_user", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=update_portal_userResponse.typecode.ofwhat, pyclass=update_portal_userResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: test - def test(self, request): - if isinstance(request, testRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/test", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=testResponse.typecode.ofwhat, pyclass=testResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: get_user_id - def get_user_id(self, request): - if isinstance(request, get_user_idRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/get_user_id", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=get_user_idResponse.typecode.ofwhat, pyclass=get_user_idResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: get_user_team_id - def get_user_team_id(self, request): - if isinstance(request, get_user_team_idRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/get_user_team_id", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=get_user_team_idResponse.typecode.ofwhat, pyclass=get_user_team_idResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: get_server_time - def get_server_time(self, request): - if isinstance(request, get_server_timeRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/get_server_time", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=get_server_timeResponse.typecode.ofwhat, pyclass=get_server_timeResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: get_gmt_time - def get_gmt_time(self, request): - if isinstance(request, get_gmt_timeRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/get_gmt_time", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=get_gmt_timeResponse.typecode.ofwhat, pyclass=get_gmt_timeResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: get_sugar_flavor - def get_sugar_flavor(self, request): - if isinstance(request, get_sugar_flavorRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/get_sugar_flavor", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=get_sugar_flavorResponse.typecode.ofwhat, pyclass=get_sugar_flavorResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: get_server_version - def get_server_version(self, request): - if isinstance(request, get_server_versionRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/get_server_version", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=get_server_versionResponse.typecode.ofwhat, pyclass=get_server_versionResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: get_relationships - def get_relationships(self, request): - if isinstance(request, get_relationshipsRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/get_relationships", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=get_relationshipsResponse.typecode.ofwhat, pyclass=get_relationshipsResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: set_relationship - def set_relationship(self, request): - if isinstance(request, set_relationshipRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/set_relationship", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=set_relationshipResponse.typecode.ofwhat, pyclass=set_relationshipResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: set_relationships - def set_relationships(self, request): - if isinstance(request, set_relationshipsRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/set_relationships", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=set_relationshipsResponse.typecode.ofwhat, pyclass=set_relationshipsResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: set_document_revision - def set_document_revision(self, request): - if isinstance(request, set_document_revisionRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/set_document_revision", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=set_document_revisionResponse.typecode.ofwhat, pyclass=set_document_revisionResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: search_by_module - def search_by_module(self, request): - if isinstance(request, search_by_moduleRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/search_by_module", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=search_by_moduleResponse.typecode.ofwhat, pyclass=search_by_moduleResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: sync_get_modified_relationships - def sync_get_modified_relationships(self, request): - if isinstance(request, sync_get_modified_relationshipsRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/sync_get_modified_relationships", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=sync_get_modified_relationshipsResponse.typecode.ofwhat, pyclass=sync_get_modified_relationshipsResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: get_modified_entries - def get_modified_entries(self, request): - if isinstance(request, get_modified_entriesRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/get_modified_entries", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=get_modified_entriesResponse.typecode.ofwhat, pyclass=get_modified_entriesResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - - # op: get_attendee_list - def get_attendee_list(self, request): - if isinstance(request, get_attendee_listRequest) is False: - raise TypeError, "%s incorrect request type!" % (request.__class__) - kw = {} - # no input wsaction - self.binding.Send(None, None, request, soapaction=URL+"/get_attendee_list", encodingStyle="http://schemas.xmlsoap.org/soap/encoding/", **kw) - # no output wsaction - typecode = Struct(pname=None, ofwhat=get_attendee_listResponse.typecode.ofwhat, pyclass=get_attendee_listResponse.typecode.pyclass) - response = self.binding.Receive(typecode) - return response - -_create_sessionRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","create_session"), ofwhat=[ZSI.TC.String(pname="user_name", aname="_user_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="password", aname="_password", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class create_sessionRequest: - typecode = _create_sessionRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._user_name = None - self._password = None - return -create_sessionRequest.typecode.pyclass = create_sessionRequest - -_create_sessionResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","create_sessionResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class create_sessionResponse: - typecode = _create_sessionResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -create_sessionResponse.typecode.pyclass = create_sessionResponse - -_end_sessionRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","end_session"), ofwhat=[ZSI.TC.String(pname="user_name", aname="_user_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class end_sessionRequest: - typecode = _end_sessionRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._user_name = None - return -end_sessionRequest.typecode.pyclass = end_sessionRequest - -_end_sessionResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","end_sessionResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class end_sessionResponse: - typecode = _end_sessionResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -end_sessionResponse.typecode.pyclass = end_sessionResponse - -_contact_by_emailRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","contact_by_email"), ofwhat=[ZSI.TC.String(pname="user_name", aname="_user_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="password", aname="_password", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="email_address", aname="_email_address", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class contact_by_emailRequest: - typecode = _contact_by_emailRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._user_name = None - self._password = None - self._email_address = None - return -contact_by_emailRequest.typecode.pyclass = contact_by_emailRequest - -_contact_by_emailResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","contact_by_emailResponse"), ofwhat=[ns0.contact_detail_array_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class contact_by_emailResponse: - typecode = _contact_by_emailResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -contact_by_emailResponse.typecode.pyclass = contact_by_emailResponse - -_user_listRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","user_list"), ofwhat=[ZSI.TC.String(pname="user_name", aname="_user_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="password", aname="_password", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class user_listRequest: - typecode = _user_listRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._user_name = None - self._password = None - return -user_listRequest.typecode.pyclass = user_listRequest - -_user_listResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","user_listResponse"), ofwhat=[ns0.user_detail_array_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class user_listResponse: - typecode = _user_listResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -user_listResponse.typecode.pyclass = user_listResponse - -_searchRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","search"), ofwhat=[ZSI.TC.String(pname="user_name", aname="_user_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="password", aname="_password", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="name", aname="_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class searchRequest: - typecode = _searchRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._user_name = None - self._password = None - self._name = None - return -searchRequest.typecode.pyclass = searchRequest - -_searchResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","searchResponse"), ofwhat=[ns0.contact_detail_array_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class searchResponse: - typecode = _searchResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -searchResponse.typecode.pyclass = searchResponse - -_track_emailRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","track_email"), ofwhat=[ZSI.TC.String(pname="user_name", aname="_user_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="password", aname="_password", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="parent_id", aname="_parent_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="contact_ids", aname="_contact_ids", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCtimes.gDate(pname="date_sent", aname="_date_sent", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="email_subject", aname="_email_subject", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="email_body", aname="_email_body", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class track_emailRequest: - typecode = _track_emailRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._user_name = None - self._password = None - self._parent_id = None - self._contact_ids = None - self._date_sent = None - self._email_subject = None - self._email_body = None - return -track_emailRequest.typecode.pyclass = track_emailRequest - -_track_emailResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","track_emailResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class track_emailResponse: - typecode = _track_emailResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -track_emailResponse.typecode.pyclass = track_emailResponse - -_create_contactRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","create_contact"), ofwhat=[ZSI.TC.String(pname="user_name", aname="_user_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="password", aname="_password", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="first_name", aname="_first_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="last_name", aname="_last_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="email_address", aname="_email_address", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class create_contactRequest: - typecode = _create_contactRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._user_name = None - self._password = None - self._first_name = None - self._last_name = None - self._email_address = None - return -create_contactRequest.typecode.pyclass = create_contactRequest - -_create_contactResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","create_contactResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class create_contactResponse: - typecode = _create_contactResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -create_contactResponse.typecode.pyclass = create_contactResponse - -_create_leadRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","create_lead"), ofwhat=[ZSI.TC.String(pname="user_name", aname="_user_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="password", aname="_password", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="first_name", aname="_first_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="last_name", aname="_last_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="email_address", aname="_email_address", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class create_leadRequest: - typecode = _create_leadRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._user_name = None - self._password = None - self._first_name = None - self._last_name = None - self._email_address = None - return -create_leadRequest.typecode.pyclass = create_leadRequest - -_create_leadResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","create_leadResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class create_leadResponse: - typecode = _create_leadResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -create_leadResponse.typecode.pyclass = create_leadResponse - -_create_accountRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","create_account"), ofwhat=[ZSI.TC.String(pname="user_name", aname="_user_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="password", aname="_password", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="name", aname="_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="phone", aname="_phone", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="website", aname="_website", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class create_accountRequest: - typecode = _create_accountRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._user_name = None - self._password = None - self._name = None - self._phone = None - self._website = None - return -create_accountRequest.typecode.pyclass = create_accountRequest - -_create_accountResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","create_accountResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class create_accountResponse: - typecode = _create_accountResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -create_accountResponse.typecode.pyclass = create_accountResponse - -_create_opportunityRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","create_opportunity"), ofwhat=[ZSI.TC.String(pname="user_name", aname="_user_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="password", aname="_password", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="name", aname="_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="amount", aname="_amount", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class create_opportunityRequest: - typecode = _create_opportunityRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._user_name = None - self._password = None - self._name = None - self._amount = None - return -create_opportunityRequest.typecode.pyclass = create_opportunityRequest - -_create_opportunityResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","create_opportunityResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class create_opportunityResponse: - typecode = _create_opportunityResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -create_opportunityResponse.typecode.pyclass = create_opportunityResponse - -_create_caseRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","create_case"), ofwhat=[ZSI.TC.String(pname="user_name", aname="_user_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="password", aname="_password", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="name", aname="_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class create_caseRequest: - typecode = _create_caseRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._user_name = None - self._password = None - self._name = None - return -create_caseRequest.typecode.pyclass = create_caseRequest - -_create_caseResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","create_caseResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class create_caseResponse: - typecode = _create_caseResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -create_caseResponse.typecode.pyclass = create_caseResponse - -_loginRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","login"), ofwhat=[ns0.user_auth_Def(pname="user_auth", aname="_user_auth", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="application_name", aname="_application_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class loginRequest: - typecode = _loginRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._user_auth = None - self._application_name = None - return -loginRequest.typecode.pyclass = loginRequest - -_loginResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","loginResponse"), ofwhat=[ns0.set_entry_result_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class loginResponse: - typecode = _loginResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -loginResponse.typecode.pyclass = loginResponse - -_is_loopbackRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","is_loopback"), ofwhat=[], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class is_loopbackRequest: - typecode = _is_loopbackRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - return -is_loopbackRequest.typecode.pyclass = is_loopbackRequest - -_is_loopbackResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","is_loopbackResponse"), ofwhat=[ZSI.TCnumbers.Iint(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class is_loopbackResponse: - typecode = _is_loopbackResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -is_loopbackResponse.typecode.pyclass = is_loopbackResponse - -_seamless_loginRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","seamless_login"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class seamless_loginRequest: - typecode = _seamless_loginRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._session = None - return -seamless_loginRequest.typecode.pyclass = seamless_loginRequest - -_seamless_loginResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","seamless_loginResponse"), ofwhat=[ZSI.TCnumbers.Iint(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class seamless_loginResponse: - typecode = _seamless_loginResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -seamless_loginResponse.typecode.pyclass = seamless_loginResponse - -_get_entry_listRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_entry_list"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_name", aname="_module_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="query", aname="_query", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="order_by", aname="_order_by", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="offset", aname="_offset", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.select_fields_Def(pname="select_fields", aname="_select_fields", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="max_results", aname="_max_results", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="deleted", aname="_deleted", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_entry_listRequest: - typecode = _get_entry_listRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._session = None - self._module_name = None - self._query = None - self._order_by = None - self._offset = None - self._select_fields = None - self._max_results = None - self._deleted = None - return -get_entry_listRequest.typecode.pyclass = get_entry_listRequest - -_get_entry_listResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_entry_listResponse"), ofwhat=[ns0.get_entry_list_result_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_entry_listResponse: - typecode = _get_entry_listResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -get_entry_listResponse.typecode.pyclass = get_entry_listResponse - -_get_entryRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_entry"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_name", aname="_module_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="id", aname="_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.select_fields_Def(pname="select_fields", aname="_select_fields", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_entryRequest: - typecode = _get_entryRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._session = None - self._module_name = None - self._id = None - self._select_fields = None - return -get_entryRequest.typecode.pyclass = get_entryRequest - -_get_entryResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_entryResponse"), ofwhat=[ns0.get_entry_result_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_entryResponse: - typecode = _get_entryResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -get_entryResponse.typecode.pyclass = get_entryResponse - -_get_entriesRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_entries"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_name", aname="_module_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.select_fields_Def(pname="ids", aname="_ids", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.select_fields_Def(pname="select_fields", aname="_select_fields", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_entriesRequest: - typecode = _get_entriesRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._session = None - self._module_name = None - self._ids = None - self._select_fields = None - return -get_entriesRequest.typecode.pyclass = get_entriesRequest - -_get_entriesResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_entriesResponse"), ofwhat=[ns0.get_entry_result_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_entriesResponse: - typecode = _get_entriesResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -get_entriesResponse.typecode.pyclass = get_entriesResponse - -_set_entryRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","set_entry"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_name", aname="_module_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.name_value_list_Def(pname="name_value_list", aname="_name_value_list", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") - -class get_document_revisionRequest: - def __init__(self): - self._session = None - self._i = None - return -get_document_revisionRequest.typecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_document_revision"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="i", aname="_i", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_document_revisionRequest, encoded="http://www.sugarcrm.com/sugarcrm") - -class get_document_revisionResponse: - def __init__(self): - self._return = None - return -get_document_revisionResponse.typecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_document_revisionResponse"), ofwhat=[ns0.return_document_revision_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=get_document_revisionResponse, encoded="http://www.sugarcrm.com/sugarcrm") - - - -class set_entryRequest: - typecode = _set_entryRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._session = None - self._module_name = None - self._name_value_list = None - return -set_entryRequest.typecode.pyclass = set_entryRequest - -_set_entryResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","set_entryResponse"), ofwhat=[ns0.set_entry_result_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class set_entryResponse: - typecode = _set_entryResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -set_entryResponse.typecode.pyclass = set_entryResponse - -_set_entriesRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","set_entries"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_name", aname="_module_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.name_value_lists_Def(pname="name_value_lists", aname="_name_value_lists", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class set_entriesRequest: - typecode = _set_entriesRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._session = None - self._module_name = None - self._name_value_lists = None - return -set_entriesRequest.typecode.pyclass = set_entriesRequest - -_set_entriesResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","set_entriesResponse"), ofwhat=[ns0.set_entries_result_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class set_entriesResponse: - typecode = _set_entriesResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -set_entriesResponse.typecode.pyclass = set_entriesResponse - -_set_note_attachmentRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","set_note_attachment"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.note_attachment_Def(pname="note", aname="_note", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class set_note_attachmentRequest: - typecode = _set_note_attachmentRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._session = None - self._note = None - return -set_note_attachmentRequest.typecode.pyclass = set_note_attachmentRequest - -_set_note_attachmentResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","set_note_attachmentResponse"), ofwhat=[ns0.set_entry_result_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class set_note_attachmentResponse: - typecode = _set_note_attachmentResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -set_note_attachmentResponse.typecode.pyclass = set_note_attachmentResponse - -_get_note_attachmentRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_note_attachment"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="id", aname="_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_note_attachmentRequest: - typecode = _get_note_attachmentRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._session = None - self._id = None - return -get_note_attachmentRequest.typecode.pyclass = get_note_attachmentRequest - -_get_note_attachmentResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_note_attachmentResponse"), ofwhat=[ns0.return_note_attachment_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_note_attachmentResponse: - typecode = _get_note_attachmentResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -get_note_attachmentResponse.typecode.pyclass = get_note_attachmentResponse - -_relate_note_to_moduleRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","relate_note_to_module"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="note_id", aname="_note_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_name", aname="_module_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_id", aname="_module_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class relate_note_to_moduleRequest: - typecode = _relate_note_to_moduleRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._session = None - self._note_id = None - self._module_name = None - self._module_id = None - return -relate_note_to_moduleRequest.typecode.pyclass = relate_note_to_moduleRequest - -_relate_note_to_moduleResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","relate_note_to_moduleResponse"), ofwhat=[ns0.error_value_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class relate_note_to_moduleResponse: - typecode = _relate_note_to_moduleResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -relate_note_to_moduleResponse.typecode.pyclass = relate_note_to_moduleResponse - -_get_related_notesRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_related_notes"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_name", aname="_module_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_id", aname="_module_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.select_fields_Def(pname="select_fields", aname="_select_fields", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_related_notesRequest: - typecode = _get_related_notesRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._session = None - self._module_name = None - self._module_id = None - self._select_fields = None - return -get_related_notesRequest.typecode.pyclass = get_related_notesRequest - -_get_related_notesResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_related_notesResponse"), ofwhat=[ns0.get_entry_result_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_related_notesResponse: - typecode = _get_related_notesResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -get_related_notesResponse.typecode.pyclass = get_related_notesResponse - -_logoutRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","logout"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class logoutRequest: - typecode = _logoutRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._session = None - return -logoutRequest.typecode.pyclass = logoutRequest - -_logoutResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","logoutResponse"), ofwhat=[ns0.error_value_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class logoutResponse: - typecode = _logoutResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -logoutResponse.typecode.pyclass = logoutResponse - -_get_module_fieldsRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_module_fields"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_name", aname="_module_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_module_fieldsRequest: - typecode = _get_module_fieldsRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._session = None - self._module_name = None - return -get_module_fieldsRequest.typecode.pyclass = get_module_fieldsRequest - -_get_module_fieldsResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_module_fieldsResponse"), ofwhat=[ns0.module_fields_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_module_fieldsResponse: - typecode = _get_module_fieldsResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -get_module_fieldsResponse.typecode.pyclass = get_module_fieldsResponse - -_get_available_modulesRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_available_modules"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_available_modulesRequest: - typecode = _get_available_modulesRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._session = None - return -get_available_modulesRequest.typecode.pyclass = get_available_modulesRequest - -_get_available_modulesResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_available_modulesResponse"), ofwhat=[ns0.module_list_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_available_modulesResponse: - typecode = _get_available_modulesResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -get_available_modulesResponse.typecode.pyclass = get_available_modulesResponse - -_update_portal_userRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","update_portal_user"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="portal_name", aname="_portal_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.name_value_list_Def(pname="name_value_list", aname="_name_value_list", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class update_portal_userRequest: - typecode = _update_portal_userRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._session = None - self._portal_name = None - self._name_value_list = None - return -update_portal_userRequest.typecode.pyclass = update_portal_userRequest - -_update_portal_userResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","update_portal_userResponse"), ofwhat=[ns0.error_value_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class update_portal_userResponse: - typecode = _update_portal_userResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -update_portal_userResponse.typecode.pyclass = update_portal_userResponse - -_testRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","test"), ofwhat=[ZSI.TC.String(pname="string", aname="_string", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class testRequest: - typecode = _testRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._string = None - return -testRequest.typecode.pyclass = testRequest - -_testResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","testResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class testResponse: - typecode = _testResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -testResponse.typecode.pyclass = testResponse - -_get_user_idRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_user_id"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_user_idRequest: - typecode = _get_user_idRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._session = None - return -get_user_idRequest.typecode.pyclass = get_user_idRequest - -_get_user_idResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_user_idResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_user_idResponse: - typecode = _get_user_idResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -get_user_idResponse.typecode.pyclass = get_user_idResponse - -_get_user_team_idRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_user_team_id"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_user_team_idRequest: - typecode = _get_user_team_idRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._session = None - return -get_user_team_idRequest.typecode.pyclass = get_user_team_idRequest - -_get_user_team_idResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_user_team_idResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_user_team_idResponse: - typecode = _get_user_team_idResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -get_user_team_idResponse.typecode.pyclass = get_user_team_idResponse - -_get_server_timeRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_server_time"), ofwhat=[], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_server_timeRequest: - typecode = _get_server_timeRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - return -get_server_timeRequest.typecode.pyclass = get_server_timeRequest - -_get_server_timeResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_server_timeResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_server_timeResponse: - typecode = _get_server_timeResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -get_server_timeResponse.typecode.pyclass = get_server_timeResponse - -_get_gmt_timeRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_gmt_time"), ofwhat=[], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_gmt_timeRequest: - typecode = _get_gmt_timeRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - return -get_gmt_timeRequest.typecode.pyclass = get_gmt_timeRequest - -_get_gmt_timeResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_gmt_timeResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_gmt_timeResponse: - typecode = _get_gmt_timeResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -get_gmt_timeResponse.typecode.pyclass = get_gmt_timeResponse - -_get_sugar_flavorRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_sugar_flavor"), ofwhat=[], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_sugar_flavorRequest: - typecode = _get_sugar_flavorRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - return -get_sugar_flavorRequest.typecode.pyclass = get_sugar_flavorRequest - -_get_sugar_flavorResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_sugar_flavorResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_sugar_flavorResponse: - typecode = _get_sugar_flavorResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -get_sugar_flavorResponse.typecode.pyclass = get_sugar_flavorResponse - -_get_server_versionRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_server_version"), ofwhat=[], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_server_versionRequest: - typecode = _get_server_versionRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - return -get_server_versionRequest.typecode.pyclass = get_server_versionRequest - -_get_server_versionResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_server_versionResponse"), ofwhat=[ZSI.TC.String(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_server_versionResponse: - typecode = _get_server_versionResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -get_server_versionResponse.typecode.pyclass = get_server_versionResponse - -_get_relationshipsRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_relationships"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_name", aname="_module_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_id", aname="_module_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="related_module", aname="_related_module", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="related_module_query", aname="_related_module_query", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="deleted", aname="_deleted", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_relationshipsRequest: - typecode = _get_relationshipsRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._session = None - self._module_name = None - self._module_id = None - self._related_module = None - self._related_module_query = None - self._deleted = None - return -get_relationshipsRequest.typecode.pyclass = get_relationshipsRequest - -_get_relationshipsResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_relationshipsResponse"), ofwhat=[ns0.get_relationships_result_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_relationshipsResponse: - typecode = _get_relationshipsResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -get_relationshipsResponse.typecode.pyclass = get_relationshipsResponse - -_set_relationshipRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","set_relationship"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.set_relationship_value_Def(pname="set_relationship_value", aname="_set_relationship_value", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class set_relationshipRequest: - typecode = _set_relationshipRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._session = None - self._set_relationship_value = None - return -set_relationshipRequest.typecode.pyclass = set_relationshipRequest - -_set_relationshipResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","set_relationshipResponse"), ofwhat=[ns0.error_value_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class set_relationshipResponse: - typecode = _set_relationshipResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -set_relationshipResponse.typecode.pyclass = set_relationshipResponse - -_set_relationshipsRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","set_relationships"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.set_relationship_list_Def(pname="set_relationship_list", aname="_set_relationship_list", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class set_relationshipsRequest: - typecode = _set_relationshipsRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._session = None - self._set_relationship_list = None - return -set_relationshipsRequest.typecode.pyclass = set_relationshipsRequest - -_set_relationshipsResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","set_relationshipsResponse"), ofwhat=[ns0.set_relationship_list_result_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class set_relationshipsResponse: - typecode = _set_relationshipsResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -set_relationshipsResponse.typecode.pyclass = set_relationshipsResponse - -_set_document_revisionRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","set_document_revision"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.document_revision_Def(pname="note", aname="_note", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class set_document_revisionRequest: - typecode = _set_document_revisionRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._session = None - self._note = None - return -set_document_revisionRequest.typecode.pyclass = set_document_revisionRequest - -_set_document_revisionResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","set_document_revisionResponse"), ofwhat=[ns0.set_entry_result_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class set_document_revisionResponse: - typecode = _set_document_revisionResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -set_document_revisionResponse.typecode.pyclass = set_document_revisionResponse - -_search_by_moduleRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","search_by_module"), ofwhat=[ZSI.TC.String(pname="user_name", aname="_user_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="password", aname="_password", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="search_string", aname="_search_string", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.select_fields_Def(pname="modules", aname="_modules", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="offset", aname="_offset", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="max_results", aname="_max_results", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class search_by_moduleRequest: - typecode = _search_by_moduleRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._user_name = None - self._password = None - self._search_string = None - self._modules = None - self._offset = None - self._max_results = None - return -search_by_moduleRequest.typecode.pyclass = search_by_moduleRequest - -_search_by_moduleResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","search_by_moduleResponse"), ofwhat=[ns0.get_entry_list_result_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class search_by_moduleResponse: - typecode = _search_by_moduleResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -search_by_moduleResponse.typecode.pyclass = search_by_moduleResponse - -_sync_get_modified_relationshipsRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","sync_get_modified_relationships"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_name", aname="_module_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="related_module", aname="_related_module", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="from_date", aname="_from_date", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="to_date", aname="_to_date", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="offset", aname="_offset", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="max_results", aname="_max_results", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="deleted", aname="_deleted", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_id", aname="_module_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.select_fields_Def(pname="select_fields", aname="_select_fields", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.select_fields_Def(pname="ids", aname="_ids", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="relationship_name", aname="_relationship_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="deletion_date", aname="_deletion_date", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TCnumbers.Iint(pname="php_serialize", aname="_php_serialize", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class sync_get_modified_relationshipsRequest: - typecode = _sync_get_modified_relationshipsRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._session = None - self._module_name = None - self._related_module = None - self._from_date = None - self._to_date = None - self._offset = None - self._max_results = None - self._deleted = None - self._module_id = None - self._select_fields = None - self._ids = None - self._relationship_name = None - self._deletion_date = None - self._php_serialize = None - return -sync_get_modified_relationshipsRequest.typecode.pyclass = sync_get_modified_relationshipsRequest - -_sync_get_modified_relationshipsResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","sync_get_modified_relationshipsResponse"), ofwhat=[ns0.get_entry_list_result_encoded_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class sync_get_modified_relationshipsResponse: - typecode = _sync_get_modified_relationshipsResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -sync_get_modified_relationshipsResponse.typecode.pyclass = sync_get_modified_relationshipsResponse - -_get_modified_entriesRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_modified_entries"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_name", aname="_module_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.select_fields_Def(pname="ids", aname="_ids", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ns0.select_fields_Def(pname="select_fields", aname="_select_fields", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_modified_entriesRequest: - typecode = _get_modified_entriesRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._session = None - self._module_name = None - self._ids = None - self._select_fields = None - return -get_modified_entriesRequest.typecode.pyclass = get_modified_entriesRequest - -_get_modified_entriesResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_modified_entriesResponse"), ofwhat=[ns0.get_sync_result_encoded_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_modified_entriesResponse: - typecode = _get_modified_entriesResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -get_modified_entriesResponse.typecode.pyclass = get_modified_entriesResponse - -_get_attendee_listRequestTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_attendee_list"), ofwhat=[ZSI.TC.String(pname="session", aname="_session", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="module_name", aname="_module_name", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True), ZSI.TC.String(pname="id", aname="_id", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_attendee_listRequest: - typecode = _get_attendee_listRequestTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._session = None - self._module_name = None - self._id = None - return -get_attendee_listRequest.typecode.pyclass = get_attendee_listRequest - -_get_attendee_listResponseTypecode = Struct(pname=("http://www.sugarcrm.com/sugarcrm","get_attendee_listResponse"), ofwhat=[ns0.get_sync_result_encoded_Def(pname="return", aname="_return", typed=False, encoded=None, minOccurs=1, maxOccurs=1, nillable=True)], pyclass=None, encoded="http://www.sugarcrm.com/sugarcrm") -class get_attendee_listResponse: - typecode = _get_attendee_listResponseTypecode - __metaclass__ = pyclass_type - def __init__(self): - self._return = None - return -get_attendee_listResponse.typecode.pyclass = get_attendee_listResponse - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/import_sugarcrm/sugarsoap_services_types.py b/addons/import_sugarcrm/sugarsoap_services_types.py deleted file mode 100644 index 182e9ce4c37..00000000000 --- a/addons/import_sugarcrm/sugarsoap_services_types.py +++ /dev/null @@ -1,648 +0,0 @@ -################################################## -# sugarsoap_services_types.py -# generated by ZSI.generate.wsdl2python -################################################## -from osv import osv -from tools.translate import _ -try: - import ZSI - import ZSI.TCcompound - from ZSI.TC import TypeDefinition - from ZSI.TC import _get_type_definition as GTD - from ZSI.generate.pyclass import pyclass_type -except ImportError: - raise osv.except_osv(_('ZSI Import Error!'), _('Please install SOAP for python - ZSI-2.0-rc3.tar.gz from http://pypi.python.org/pypi/ZSI/')) - -############################## -# targetNamespace -# http://www.sugarcrm.com/sugarcrm -############################## - -class ns0: - targetNamespace = "http://www.sugarcrm.com/sugarcrm" - - class contact_detail_Def(ZSI.TCcompound.ComplexType, TypeDefinition): - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "contact_detail") - def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw): - #Unused variable ns. - #ns = ns0.contact_detail_Def.schema - TClist = [ZSI.TC.String(pname="email_address", aname="_email_address", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="name1", aname="_name1", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="name2", aname="_name2", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="association", aname="_association", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="id", aname="_id", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="msi_id", aname="_msi_id", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="type", aname="_type", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))] - self.attribute_typecode_dict = attributes or {} - if extend: TClist += ofwhat - if restrict: TClist = ofwhat - ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw) - class Holder: - __metaclass__ = pyclass_type - typecode = self - def __init__(self): - # pyclass - self._email_address = None - self._name1 = None - self._name2 = None - self._association = None - self._id = None - self._msi_id = None - self._type = None - return - Holder.__name__ = "contact_detail_Holder" - self.pyclass = Holder - - class contact_detail_array_Def(ZSI.TC.Array, TypeDefinition): - #complexType/complexContent base="SOAP-ENC:Array" - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "contact_detail_array") - def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw): - ofwhat = ns0.contact_detail_Def(None, typed=False) - atype = (u'http://www.sugarcrm.com/sugarcrm', u'contact_detail[]') - ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw) - - class user_detail_Def(ZSI.TCcompound.ComplexType, TypeDefinition): - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "user_detail") - def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw): - #ns = ns0.user_detail_Def.schema - TClist = [ZSI.TC.String(pname="email_address", aname="_email_address", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="user_name", aname="_user_name", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="first_name", aname="_first_name", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="last_name", aname="_last_name", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="department", aname="_department", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="id", aname="_id", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="title", aname="_title", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))] - self.attribute_typecode_dict = attributes or {} - if extend: TClist += ofwhat - if restrict: TClist = ofwhat - ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw) - class Holder: - __metaclass__ = pyclass_type - typecode = self - def __init__(self): - # pyclass - self._email_address = None - self._user_name = None - self._first_name = None - self._last_name = None - self._department = None - self._id = None - self._title = None - return - Holder.__name__ = "user_detail_Holder" - self.pyclass = Holder - - class user_detail_array_Def(ZSI.TC.Array, TypeDefinition): - #complexType/complexContent base="SOAP-ENC:Array" - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "user_detail_array") - def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw): - ofwhat = ns0.user_detail_Def(None, typed=False) - atype = (u'http://www.sugarcrm.com/sugarcrm', u'user_detail[]') - ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw) - - class note_attachment_Def(ZSI.TCcompound.ComplexType, TypeDefinition): - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "note_attachment") - def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw): - # ns = ns0.note_attachment_Def.schema - TClist = [ZSI.TC.String(pname="id", aname="_id", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="filename", aname="_filename", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="file", aname="_file", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))] - self.attribute_typecode_dict = attributes or {} - if extend: TClist += ofwhat - if restrict: TClist = ofwhat - ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw) - class Holder: - __metaclass__ = pyclass_type - typecode = self - def __init__(self): - # pyclass - self._id = None - self._filename = None - self._file = None - return - Holder.__name__ = "note_attachment_Holder" - self.pyclass = Holder - - class return_note_attachment_Def(ZSI.TCcompound.ComplexType, TypeDefinition): - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "return_note_attachment") - def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw): - #ns = ns0.return_note_attachment_Def.schema - TClist = [GTD("http://www.sugarcrm.com/sugarcrm","note_attachment",lazy=False)(pname="note_attachment", aname="_note_attachment", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","error_value",lazy=False)(pname="error", aname="_error", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))] - self.attribute_typecode_dict = attributes or {} - if extend: TClist += ofwhat - if restrict: TClist = ofwhat - ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw) - class Holder: - __metaclass__ = pyclass_type - typecode = self - def __init__(self): - # pyclass - self._note_attachment = None - self._error = None - return - Holder.__name__ = "return_note_attachment_Holder" - self.pyclass = Holder - - class user_auth_Def(ZSI.TCcompound.ComplexType, TypeDefinition): - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "user_auth") - def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw): - #ns = ns0.user_auth_Def.schema - TClist = [ZSI.TC.String(pname="user_name", aname="_user_name", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="password", aname="_password", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="version", aname="_version", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))] - self.attribute_typecode_dict = attributes or {} - if extend: TClist += ofwhat - if restrict: TClist = ofwhat - ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw) - class Holder: - __metaclass__ = pyclass_type - typecode = self - def __init__(self): - # pyclass - self._user_name = None - self._password = None - self._version = None - return - Holder.__name__ = "user_auth_Holder" - self.pyclass = Holder - - class field_Def(ZSI.TCcompound.ComplexType, TypeDefinition): - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "field") - def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw): - #ns = ns0.field_Def.schema - TClist = [ZSI.TC.String(pname="name", aname="_name", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="type", aname="_type", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="label", aname="_label", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="required", aname="_required", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","name_value_list",lazy=False)(pname="options", aname="_options", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))] - self.attribute_typecode_dict = attributes or {} - if extend: TClist += ofwhat - if restrict: TClist = ofwhat - ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw) - class Holder: - __metaclass__ = pyclass_type - typecode = self - def __init__(self): - # pyclass - self._name = None - self._type = None - self._label = None - self._required = None - self._options = None - return - Holder.__name__ = "field_Holder" - self.pyclass = Holder - - class field_list_Def(ZSI.TC.Array, TypeDefinition): - #complexType/complexContent base="SOAP-ENC:Array" - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "field_list") - def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw): - ofwhat = ns0.field_Def(None, typed=False) - atype = (u'http://www.sugarcrm.com/sugarcrm', u'field[]') - ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw) - - class name_value_Def(ZSI.TCcompound.ComplexType, TypeDefinition): - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "name_value") - def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw): - #ns = ns0.name_value_Def.schema - TClist = [ZSI.TC.String(pname="name", aname="_name", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="value", aname="_value", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))] - self.attribute_typecode_dict = attributes or {} - if extend: TClist += ofwhat - if restrict: TClist = ofwhat - ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw) - class Holder: - __metaclass__ = pyclass_type - typecode = self - def __init__(self): - # pyclass - self._name = None - self._value = None - return - Holder.__name__ = "name_value_Holder" - self.pyclass = Holder - - class name_value_list_Def(ZSI.TC.Array, TypeDefinition): - #complexType/complexContent base="SOAP-ENC:Array" - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "name_value_list") - def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw): - ofwhat = ns0.name_value_Def(None, typed=False) - atype = (u'http://www.sugarcrm.com/sugarcrm', u'name_value[]') - ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw) - - class name_value_lists_Def(ZSI.TC.Array, TypeDefinition): - #complexType/complexContent base="SOAP-ENC:Array" - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "name_value_lists") - def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw): - ofwhat = ns0.name_value_list_Def(None, typed=False) - atype = (u'http://www.sugarcrm.com/sugarcrm', u'name_value_list[]') - ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw) - - class select_fields_Def(ZSI.TC.Array, TypeDefinition): - #complexType/complexContent base="SOAP-ENC:Array" - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "select_fields") - def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw): - ofwhat = ZSI.TC.String(None, typed=False) - atype = (u'http://www.w3.org/2001/XMLSchema', u'string[]') - ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw) - - class module_fields_Def(ZSI.TCcompound.ComplexType, TypeDefinition): - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "module_fields") - def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw): - # ns = ns0.module_fields_Def.schema - TClist = [ZSI.TC.String(pname="module_name", aname="_module_name", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","field_list",lazy=False)(pname="module_fields", aname="_module_fields", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","error_value",lazy=False)(pname="error", aname="_error", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))] - self.attribute_typecode_dict = attributes or {} - if extend: TClist += ofwhat - if restrict: TClist = ofwhat - ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw) - class Holder: - __metaclass__ = pyclass_type - typecode = self - def __init__(self): - # pyclass - self._module_name = None - self._module_fields = None - self._error = None - return - Holder.__name__ = "module_fields_Holder" - self.pyclass = Holder - - class module_list_Def(ZSI.TCcompound.ComplexType, TypeDefinition): - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "module_list") - def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw): - #ns = ns0.module_list_Def.schema - TClist = [GTD("http://www.sugarcrm.com/sugarcrm","select_fields",lazy=False)(pname="modules", aname="_modules", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","error_value",lazy=False)(pname="error", aname="_error", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))] - self.attribute_typecode_dict = attributes or {} - if extend: TClist += ofwhat - if restrict: TClist = ofwhat - ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw) - class Holder: - __metaclass__ = pyclass_type - typecode = self - def __init__(self): - # pyclass - self._modules = None - self._error = None - return - Holder.__name__ = "module_list_Holder" - self.pyclass = Holder - - class error_value_Def(ZSI.TCcompound.ComplexType, TypeDefinition): - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "error_value") - def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw): - #ns = ns0.error_value_Def.schema - TClist = [ZSI.TC.String(pname="number", aname="_number", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="name", aname="_name", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="description", aname="_description", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))] - self.attribute_typecode_dict = attributes or {} - if extend: TClist += ofwhat - if restrict: TClist = ofwhat - ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw) - class Holder: - __metaclass__ = pyclass_type - typecode = self - def __init__(self): - # pyclass - self._number = None - self._name = None - self._description = None - return - Holder.__name__ = "error_value_Holder" - self.pyclass = Holder - - class entry_value_Def(ZSI.TCcompound.ComplexType, TypeDefinition): - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "entry_value") - def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw): - #ns = ns0.entry_value_Def.schema - TClist = [ZSI.TC.String(pname="id", aname="_id", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="module_name", aname="_module_name", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","name_value_list",lazy=False)(pname="name_value_list", aname="_name_value_list", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))] - self.attribute_typecode_dict = attributes or {} - if extend: TClist += ofwhat - if restrict: TClist = ofwhat - ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw) - class Holder: - __metaclass__ = pyclass_type - typecode = self - def __init__(self): - # pyclass - self._id = None - self._module_name = None - self._name_value_list = None - return - Holder.__name__ = "entry_value_Holder" - self.pyclass = Holder - - class entry_list_Def(ZSI.TC.Array, TypeDefinition): - #complexType/complexContent base="SOAP-ENC:Array" - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "entry_list") - def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw): - ofwhat = ns0.entry_value_Def(None, typed=False) - atype = (u'http://www.sugarcrm.com/sugarcrm', u'entry_value[]') - ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw) - - class get_entry_list_result_Def(ZSI.TCcompound.ComplexType, TypeDefinition): - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "get_entry_list_result") - def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw): - #ns = ns0.get_entry_list_result_Def.schema - TClist = [ZSI.TCnumbers.Iint(pname="result_count", aname="_result_count", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="next_offset", aname="_next_offset", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","field_list",lazy=False)(pname="field_list", aname="_field_list", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","entry_list",lazy=False)(pname="entry_list", aname="_entry_list", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","error_value",lazy=False)(pname="error", aname="_error", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))] - self.attribute_typecode_dict = attributes or {} - if extend: TClist += ofwhat - if restrict: TClist = ofwhat - ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw) - class Holder: - __metaclass__ = pyclass_type - typecode = self - def __init__(self): - # pyclass - self._result_count = None - self._next_offset = None - self._field_list = None - self._entry_list = None - self._error = None - return - Holder.__name__ = "get_entry_list_result_Holder" - self.pyclass = Holder - - class get_entry_result_Def(ZSI.TCcompound.ComplexType, TypeDefinition): - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "get_entry_result") - def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw): - #ns = ns0.get_entry_result_Def.schema - TClist = [GTD("http://www.sugarcrm.com/sugarcrm","field_list",lazy=False)(pname="field_list", aname="_field_list", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","entry_list",lazy=False)(pname="entry_list", aname="_entry_list", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","error_value",lazy=False)(pname="error", aname="_error", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))] - self.attribute_typecode_dict = attributes or {} - if extend: TClist += ofwhat - if restrict: TClist = ofwhat - ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw) - class Holder: - __metaclass__ = pyclass_type - typecode = self - def __init__(self): - # pyclass - self._field_list = None - self._entry_list = None - self._error = None - return - Holder.__name__ = "get_entry_result_Holder" - self.pyclass = Holder - - class set_entry_result_Def(ZSI.TCcompound.ComplexType, TypeDefinition): - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "set_entry_result") - def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw): - #ns = ns0.set_entry_result_Def.schema - TClist = [ZSI.TC.String(pname="id", aname="_id", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","error_value",lazy=False)(pname="error", aname="_error", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))] - self.attribute_typecode_dict = attributes or {} - if extend: TClist += ofwhat - if restrict: TClist = ofwhat - ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw) - class Holder: - __metaclass__ = pyclass_type - typecode = self - def __init__(self): - # pyclass - self._id = None - self._error = None - return - Holder.__name__ = "set_entry_result_Holder" - self.pyclass = Holder - - class set_entries_result_Def(ZSI.TCcompound.ComplexType, TypeDefinition): - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "set_entries_result") - def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw): - #ns = ns0.set_entries_result_Def.schema - TClist = [GTD("http://www.sugarcrm.com/sugarcrm","select_fields",lazy=False)(pname="ids", aname="_ids", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","error_value",lazy=False)(pname="error", aname="_error", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))] - self.attribute_typecode_dict = attributes or {} - if extend: TClist += ofwhat - if restrict: TClist = ofwhat - ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw) - class Holder: - __metaclass__ = pyclass_type - typecode = self - def __init__(self): - # pyclass - self._ids = None - self._error = None - return - Holder.__name__ = "set_entries_result_Holder" - self.pyclass = Holder - - class id_mod_Def(ZSI.TCcompound.ComplexType, TypeDefinition): - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "id_mod") - def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw): - #ns = ns0.id_mod_Def.schema - TClist = [ZSI.TC.String(pname="id", aname="_id", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="date_modified", aname="_date_modified", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="deleted", aname="_deleted", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))] - self.attribute_typecode_dict = attributes or {} - if extend: TClist += ofwhat - if restrict: TClist = ofwhat - ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw) - class Holder: - __metaclass__ = pyclass_type - typecode = self - def __init__(self): - # pyclass - self._id = None - self._date_modified = None - self._deleted = None - return - Holder.__name__ = "id_mod_Holder" - self.pyclass = Holder - - class ids_mods_Def(ZSI.TC.Array, TypeDefinition): - #complexType/complexContent base="SOAP-ENC:Array" - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "ids_mods") - def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw): - ofwhat = ns0.id_mod_Def(None, typed=False) - atype = (u'http://www.sugarcrm.com/sugarcrm', u'id_mod[]') - ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw) - - class get_relationships_result_Def(ZSI.TCcompound.ComplexType, TypeDefinition): - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "get_relationships_result") - def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw): - #ns = ns0.get_relationships_result_Def.schema - TClist = [GTD("http://www.sugarcrm.com/sugarcrm","ids_mods",lazy=False)(pname="ids", aname="_ids", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","error_value",lazy=False)(pname="error", aname="_error", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))] - self.attribute_typecode_dict = attributes or {} - if extend: TClist += ofwhat - if restrict: TClist = ofwhat - ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw) - class Holder: - __metaclass__ = pyclass_type - typecode = self - def __init__(self): - # pyclass - self._ids = None - self._error = None - return - Holder.__name__ = "get_relationships_result_Holder" - self.pyclass = Holder - - class set_relationship_value_Def(ZSI.TCcompound.ComplexType, TypeDefinition): - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "set_relationship_value") - def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw): - #ns = ns0.set_relationship_value_Def.schema - TClist = [ZSI.TC.String(pname="module1", aname="_module1", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="module1_id", aname="_module1_id", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="module2", aname="_module2", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="module2_id", aname="_module2_id", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))] - self.attribute_typecode_dict = attributes or {} - if extend: TClist += ofwhat - if restrict: TClist = ofwhat - ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw) - class Holder: - __metaclass__ = pyclass_type - typecode = self - def __init__(self): - # pyclass - self._module1 = None - self._module1_id = None - self._module2 = None - self._module2_id = None - return - Holder.__name__ = "set_relationship_value_Holder" - self.pyclass = Holder - - class set_relationship_list_Def(ZSI.TC.Array, TypeDefinition): - #complexType/complexContent base="SOAP-ENC:Array" - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "set_relationship_list") - def __init__(self, pname, ofwhat=(), extend=False, restrict=False, attributes=None, **kw): - ofwhat = ns0.set_relationship_value_Def(None, typed=False) - atype = (u'http://www.sugarcrm.com/sugarcrm', u'set_relationship_value[]') - ZSI.TCcompound.Array.__init__(self, atype, ofwhat, pname=pname, childnames='item', **kw) - - class set_relationship_list_result_Def(ZSI.TCcompound.ComplexType, TypeDefinition): - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "set_relationship_list_result") - def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw): - #ns = ns0.set_relationship_list_result_Def.schema - TClist = [ZSI.TCnumbers.Iint(pname="created", aname="_created", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="failed", aname="_failed", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","error_value",lazy=False)(pname="error", aname="_error", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))] - self.attribute_typecode_dict = attributes or {} - if extend: TClist += ofwhat - if restrict: TClist = ofwhat - ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw) - class Holder: - __metaclass__ = pyclass_type - typecode = self - def __init__(self): - # pyclass - self._created = None - self._failed = None - self._error = None - return - Holder.__name__ = "set_relationship_list_result_Holder" - self.pyclass = Holder - - class document_revision_Def(ZSI.TCcompound.ComplexType, TypeDefinition): - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "document_revision") - def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw): - #ns = ns0.document_revision_Def.schema - TClist = [ZSI.TC.String(pname="id", aname="_id", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="document_name", aname="_document_name", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="revision", aname="_revision", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="filename", aname="_filename", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="file", aname="_file", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))] - self.attribute_typecode_dict = attributes or {} - if extend: TClist += ofwhat - if restrict: TClist = ofwhat - ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw) - class Holder: - __metaclass__ = pyclass_type - typecode = self - def __init__(self): - # pyclass - self._id = None - self._document_name = None - self._revision = None - self._filename = None - self._file = None - return - Holder.__name__ = "document_revision_Holder" - self.pyclass = Holder - - class get_entry_list_result_encoded_Def(ZSI.TCcompound.ComplexType, TypeDefinition): - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "get_entry_list_result_encoded") - def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw): - # ns = ns0.get_entry_list_result_encoded_Def.schema - TClist = [ZSI.TCnumbers.Iint(pname="result_count", aname="_result_count", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="next_offset", aname="_next_offset", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="total_count", aname="_total_count", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","select_fields",lazy=False)(pname="field_list", aname="_field_list", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="entry_list", aname="_entry_list", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","error_value",lazy=False)(pname="error", aname="_error", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))] - self.attribute_typecode_dict = attributes or {} - if extend: TClist += ofwhat - if restrict: TClist = ofwhat - ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw) - class Holder: - __metaclass__ = pyclass_type - typecode = self - def __init__(self): - # pyclass - self._result_count = None - self._next_offset = None - self._total_count = None - self._field_list = None - self._entry_list = None - self._error = None - return - Holder.__name__ = "get_entry_list_result_encoded_Holder" - self.pyclass = Holder - - class get_sync_result_encoded_Def(ZSI.TCcompound.ComplexType, TypeDefinition): - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "get_sync_result_encoded") - def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw): - # ns = ns0.get_sync_result_encoded_Def.schema - TClist = [ZSI.TC.String(pname="result", aname="_result", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","error_value",lazy=False)(pname="error", aname="_error", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))] - self.attribute_typecode_dict = attributes or {} - if extend: TClist += ofwhat - if restrict: TClist = ofwhat - ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw) - class Holder: - __metaclass__ = pyclass_type - typecode = self - def __init__(self): - # pyclass - self._result = None - self._error = None - return - Holder.__name__ = "get_sync_result_encoded_Holder" - self.pyclass = Holder - - class get_quick_sync_result_encoded_Def(ZSI.TCcompound.ComplexType, TypeDefinition): - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "get_quick_sync_result_encoded") - def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw): - #ns = ns0.get_quick_sync_result_encoded_Def.schema - TClist = [ZSI.TC.String(pname="result", aname="_result", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="result_count", aname="_result_count", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="next_offset", aname="_next_offset", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TCnumbers.Iint(pname="total_count", aname="_total_count", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","error_value",lazy=False)(pname="error", aname="_error", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))] - self.attribute_typecode_dict = attributes or {} - if extend: TClist += ofwhat - if restrict: TClist = ofwhat - ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw) - class Holder: - __metaclass__ = pyclass_type - typecode = self - def __init__(self): - # pyclass - self._result = None - self._result_count = None - self._next_offset = None - self._total_count = None - self._error = None - return - Holder.__name__ = "get_quick_sync_result_encoded_Holder" - self.pyclass = Holder - - class return_document_revision_Def(ZSI.TCcompound.ComplexType, TypeDefinition): - schema = "http://www.sugarcrm.com/sugarcrm" - type = (schema, "return_document_revision") - def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw): - #ns = ns0.return_document_revision_Def.schema - TClist = [GTD("http://www.sugarcrm.com/sugarcrm","document_revision",lazy=False)(pname="document_revision", aname="_document_revision", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), GTD("http://www.sugarcrm.com/sugarcrm","error_value",lazy=False)(pname="error", aname="_error", minOccurs=1, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))] - self.attribute_typecode_dict = attributes or {} - if extend: TClist += ofwhat - if restrict: TClist = ofwhat - ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw) - class Holder: - __metaclass__ = pyclass_type - typecode = self - def __init__(self): - # pyclass - self._document_revision = None - self._error = None - return - Holder.__name__ = "return_document_revision_Holder" - self.pyclass = Holder - -# end class ns0 (tns: http://www.sugarcrm.com/sugarcrm) - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/import_sugarcrm/wizard/__init__.py b/addons/import_sugarcrm/wizard/__init__.py deleted file mode 100644 index 08b611401b1..00000000000 --- a/addons/import_sugarcrm/wizard/__init__.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -import import_message - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/import_sugarcrm/wizard/import_message.py b/addons/import_sugarcrm/wizard/import_message.py deleted file mode 100644 index 1d2e765580b..00000000000 --- a/addons/import_sugarcrm/wizard/import_message.py +++ /dev/null @@ -1,31 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2010 Tiny SPRL (). -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## -from osv import fields, osv - -class import_message(osv.osv): - """Import Message""" - - _name = "import.message" - _description = __doc__ - -import_message() - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/import_sugarcrm/wizard/import_message_view.xml b/addons/import_sugarcrm/wizard/import_message_view.xml deleted file mode 100644 index cae8e9cabda..00000000000 --- a/addons/import_sugarcrm/wizard/import_message_view.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - import.message.form - import.message - -
-
-
- -
-
\ No newline at end of file diff --git a/addons/knowledge/i18n/nl_BE.po b/addons/knowledge/i18n/nl_BE.po new file mode 100644 index 00000000000..c940f11f994 --- /dev/null +++ b/addons/knowledge/i18n/nl_BE.po @@ -0,0 +1,33 @@ +# Dutch (Belgium) translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2012. +# +msgid "" +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-10-02 07:31+0000\n" +"Last-Translator: Els Van Vossel (Agaplan) \n" +"Language-Team: Dutch (Belgium) \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-03 05:09+0000\n" +"X-Generator: Launchpad (build 16061)\n" + +#. module: knowledge +#: model:ir.ui.menu,name:knowledge.menu_document2 +msgid "Collaborative Content" +msgstr "Gemeenschappelijke inhoud" + +#. module: knowledge +#: model:ir.ui.menu,name:knowledge.menu_document_configuration +msgid "Configuration" +msgstr "Instellingen" + +#. module: knowledge +#: model:ir.ui.menu,name:knowledge.menu_document +msgid "Knowledge" +msgstr "Kennis" diff --git a/addons/l10n_be_invoice_bba/i18n/nl_BE.po b/addons/l10n_be_invoice_bba/i18n/nl_BE.po new file mode 100644 index 00000000000..8ff9fb5ddca --- /dev/null +++ b/addons/l10n_be_invoice_bba/i18n/nl_BE.po @@ -0,0 +1,155 @@ +# Dutch (Belgium) translation for openobject-addons +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-addons package. +# FIRST AUTHOR , 2012. +# +msgid "" +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-10-02 07:48+0000\n" +"Last-Translator: Els Van Vossel (Agaplan) \n" +"Language-Team: Dutch (Belgium) \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-03 05:09+0000\n" +"X-Generator: Launchpad (build 16061)\n" + +#. module: l10n_be_invoice_bba +#: sql_constraint:account.invoice:0 +msgid "Invoice Number must be unique per Company!" +msgstr "Factuurnummer moet uniek zijn per bedrijf" + +#. module: l10n_be_invoice_bba +#: model:ir.model,name:l10n_be_invoice_bba.model_account_invoice +msgid "Invoice" +msgstr "Factuur" + +#. module: l10n_be_invoice_bba +#: constraint:res.partner:0 +msgid "Error ! You cannot create recursive associated members." +msgstr "U kunt niet dezelfde leden maken." + +#. module: l10n_be_invoice_bba +#: constraint:account.invoice:0 +msgid "Invalid BBA Structured Communication !" +msgstr "Ongeldige gestructureerde mededeling" + +#. module: l10n_be_invoice_bba +#: selection:res.partner,out_inv_comm_algorithm:0 +msgid "Random" +msgstr "Willekeurig" + +#. module: l10n_be_invoice_bba +#: help:res.partner,out_inv_comm_type:0 +msgid "Select Default Communication Type for Outgoing Invoices." +msgstr "Kies het standaard communicatietype voor uitgaande facturen" + +#. module: l10n_be_invoice_bba +#: help:res.partner,out_inv_comm_algorithm:0 +msgid "" +"Select Algorithm to generate the Structured Communication on Outgoing " +"Invoices." +msgstr "" +"Kies het algoritme voor de gestructureerde mededeling op uitgaande facturen." + +#. module: l10n_be_invoice_bba +#: code:addons/l10n_be_invoice_bba/invoice.py:114 +#: code:addons/l10n_be_invoice_bba/invoice.py:140 +#, python-format +msgid "" +"The daily maximum of outgoing invoices with an automatically generated BBA " +"Structured Communications has been exceeded!\n" +"Please create manually a unique BBA Structured Communication." +msgstr "" +"Het dagelijkse maximumaantal uitgaande facturen met een automatische " +"gestructureerde mededeling is overschreden.\n" +"Gelieve manueel een unieke gestructureerde mededeling te maken." + +#. module: l10n_be_invoice_bba +#: code:addons/l10n_be_invoice_bba/invoice.py:155 +#, python-format +msgid "Error!" +msgstr "Fout" + +#. module: l10n_be_invoice_bba +#: code:addons/l10n_be_invoice_bba/invoice.py:126 +#, python-format +msgid "" +"The Partner should have a 3-7 digit Reference Number for the generation of " +"BBA Structured Communications!\n" +"Please correct the Partner record." +msgstr "" +"De relatie moet een referentienummer van 3-7 cijfers hebben om een " +"gestructureerde mededeling te kunnen maken.\n" +"Gelieve de relatie aan te passen." + +#. module: l10n_be_invoice_bba +#: code:addons/l10n_be_invoice_bba/invoice.py:113 +#: code:addons/l10n_be_invoice_bba/invoice.py:125 +#: code:addons/l10n_be_invoice_bba/invoice.py:139 +#: code:addons/l10n_be_invoice_bba/invoice.py:167 +#: code:addons/l10n_be_invoice_bba/invoice.py:177 +#: code:addons/l10n_be_invoice_bba/invoice.py:202 +#, python-format +msgid "Warning!" +msgstr "Waarschuwing" + +#. module: l10n_be_invoice_bba +#: selection:res.partner,out_inv_comm_algorithm:0 +msgid "Customer Reference" +msgstr "Referentie klant" + +#. module: l10n_be_invoice_bba +#: field:res.partner,out_inv_comm_type:0 +msgid "Communication Type" +msgstr "Communicatietype" + +#. module: l10n_be_invoice_bba +#: code:addons/l10n_be_invoice_bba/invoice.py:178 +#: code:addons/l10n_be_invoice_bba/invoice.py:203 +#, python-format +msgid "" +"The BBA Structured Communication has already been used!\n" +"Please create manually a unique BBA Structured Communication." +msgstr "" +"Deze gestructureerde mededeling is al gebruikt.\n" +"Gelieve manueel een unieke gestructureerde mededeling te maken." + +#. module: l10n_be_invoice_bba +#: selection:res.partner,out_inv_comm_algorithm:0 +msgid "Date" +msgstr "Datum" + +#. module: l10n_be_invoice_bba +#: model:ir.model,name:l10n_be_invoice_bba.model_res_partner +msgid "Partner" +msgstr "Relatie" + +#. module: l10n_be_invoice_bba +#: code:addons/l10n_be_invoice_bba/invoice.py:156 +#, python-format +msgid "" +"Unsupported Structured Communication Type Algorithm '%s' !\n" +"Please contact your OpenERP support channel." +msgstr "" +"Het algoritme voor de gestructureerde mededeling '%s' wordt niet " +"ondersteund.\n" +"Gelieve contact op te nemen met de supportafdeling van OpenERP." + +#. module: l10n_be_invoice_bba +#: field:res.partner,out_inv_comm_algorithm:0 +msgid "Communication Algorithm" +msgstr "Communicatiealgoritme" + +#. module: l10n_be_invoice_bba +#: code:addons/l10n_be_invoice_bba/invoice.py:168 +#, python-format +msgid "" +"Empty BBA Structured Communication!\n" +"Please fill in a unique BBA Structured Communication." +msgstr "" +"Lege gestructureerde mededeling.\n" +"Gelieve een unieke gestructureerde mededeling in te vullen." diff --git a/addons/lunch/__openerp__.py b/addons/lunch/__openerp__.py index f3791da7acd..0feb1af4184 100644 --- a/addons/lunch/__openerp__.py +++ b/addons/lunch/__openerp__.py @@ -23,7 +23,7 @@ 'name': 'Lunch Orders', 'author': 'OpenERP SA', 'version': '0.1', - 'depends': ['base_tools'], + 'depends': [], 'category' : 'Tools', 'description': """ The base module to manage lunch. diff --git a/addons/lunch/lunch_view.xml b/addons/lunch/lunch_view.xml index bf438a538f9..b560ada323c 100644 --- a/addons/lunch/lunch_view.xml +++ b/addons/lunch/lunch_view.xml @@ -1,6 +1,9 @@ + + + diff --git a/addons/mail/__init__.py b/addons/mail/__init__.py index b384613d174..92e882ae6d8 100644 --- a/addons/mail/__init__.py +++ b/addons/mail/__init__.py @@ -19,6 +19,7 @@ # ############################################################################## +import mail_message_subtype import mail_alias import mail_followers import mail_message diff --git a/addons/mail/__openerp__.py b/addons/mail/__openerp__.py index 5a3c48de675..39a3f1bee13 100644 --- a/addons/mail/__openerp__.py +++ b/addons/mail/__openerp__.py @@ -45,10 +45,11 @@ Main Features """, 'author': 'OpenERP SA', 'website': 'http://www.openerp.com', - 'depends': ['base', 'base_tools', 'base_setup'], + 'depends': ['base', 'base_setup'], 'data': [ 'wizard/invite_view.xml', 'wizard/mail_compose_message_view.xml', + 'mail_message_subtype.xml', 'res_config_view.xml', 'mail_message_view.xml', 'mail_mail_view.xml', diff --git a/addons/mail/data/mail_data.xml b/addons/mail/data/mail_data.xml index c8e8b1a488e..5fe1ee45b1d 100644 --- a/addons/mail/data/mail_data.xml +++ b/addons/mail/data/mail_data.xml @@ -12,5 +12,9 @@
+ + + comment +
diff --git a/addons/mail/doc/index.rst.inc b/addons/mail/doc/index.rst.inc index c4b87cc18f9..4b01d3ec7bd 100644 --- a/addons/mail/doc/index.rst.inc +++ b/addons/mail/doc/index.rst.inc @@ -11,3 +11,4 @@ Mail Module documentation topics mail_needaction_howto mail_partner mail_state + mail_subtype diff --git a/addons/mail/doc/mail_subtype.rst b/addons/mail/doc/mail_subtype.rst new file mode 100644 index 00000000000..e63b67936cd --- /dev/null +++ b/addons/mail/doc/mail_subtype.rst @@ -0,0 +1,70 @@ +.. _mail_message_subtype: + +OpenChatter Pi (3.1415): Message Subtype +======================================== + + To overcome the problems of crowdy walls in system notification, We have added features of **Message Subtype** in mail. + +mail.message.subtype +++++++++++++++++++++ +``mail.message.subtype`` has following fields: + + - ``Name``: fields.char(' Message Subtype ', size = 128,required = True,help = 'Subtype Of Message'), + - ``model_ids``: fields.many2many('ir.model','mail_message_subtyp_message_rel','message_subtype_id', 'model_id', 'Model',help = "link some subtypes to several models, for projet/task"), + - ``default``: fields.boolean('Default', help = "When subscribing to the document, users will receive by default messages related to this subtype unless they uncheck this subtype"), + +mail.followers +++++++++++++++ + +In ``mail.followers`` we have added additional many2many field subtype ids : + + - ``subtype_ids``: fields.many2many('mail.message.subtype','mail_message_subtyp_rel','subscription_id', 'subtype_id', 'Subtype',help = "linking some subscription to several subtype for projet/task") + +mail.message +++++++++++++ + +In mail_message we have added additional field subtype_id which Indicates the Type of Message + + - ``subtype_id``: fields.many2one('mail.message.subtype', 'Subtype') + +mail.thread ++++++++++++ + + - In **message_post** method add the *subtype_id* field as parameter and set as default subtype 'Other'. + + def message_post(self, cr, uid, thread_id, body='', subject=False, msg_type='notification', parent_id=False, attachments=None, subtype='other', context=None, ``**kwargs``): + + - In **message_subscribe** method add the *subtype_ids* field as parameter.In this method if subtype_ids is None, it fatch the default true subtypes in mail.message.subtypes otherwise pass selected subtypes. + For update subtypes call **message_subscribe_udpate_subtypes** method + + def message_subscribe(self, cr, uid, ids, partner_ids,subtype_ids = None, context=None): + + - Add **message_subscribe_udpate_subtypes** method to update the subtype_ids in followers. + + def message_subscribe_udpate_subtypes(self, cr, uid, ids, user_id, subtype_ids,context=None): + followers_obj = self.pool.get('mail.followers') + followers_ids = followers_obj.search(cr, uid, [('res_model', '=', self._name), ('res_id', 'in', ids)]) + return followers_obj.write(cr, uid, followers_ids, {'subtype_ids': [(6, 0 , subtype_ids)]}, context = context) + +For Each Addons: +++++++++++++++++ + + - Add data of subtypes for each addons module. + - Add subtype field as parameter in **message_post** Method for each addons module. + +How It Works: ++++++++++++++ + + - In addons module when we Follow a Perticular document It display under the followers button. + - In sybtypes there are 3 default subtypes for each addons + 1) Email + 2) Comment + 3) Other + - In document display a default subtypes(which are true) related a perticular model_ids wise. + + Example:- + If I have open crm.lead, It display only subtypes of crm.lead + + - When we select subtype it update subtype_ids(which are checked) in mail.follower where match res_model & res_id of the current documents. + - when message created update subtype_id of that message in mail.message. + - In Feeds display only those notifications of documents which subtypes are selected diff --git a/addons/mail/mail_followers.py b/addons/mail/mail_followers.py index 23417850f2a..6f122a87ba5 100644 --- a/addons/mail/mail_followers.py +++ b/addons/mail/mail_followers.py @@ -46,6 +46,8 @@ class mail_followers(osv.Model): help='Id of the followed resource'), 'partner_id': fields.many2one('res.partner', string='Related Partner', ondelete='cascade', required=True, select=1), + 'subtype_ids': fields.many2many('mail.message.subtype', string='Subtype', + help="Message subtypes followed, meaning subtypes that will be pushed onto the user's Wall."), } @@ -81,18 +83,27 @@ class mail_notification(osv.Model): return super(mail_notification, self).create(cr, uid, vals, context=context) return False - def set_message_read(self, cr, uid, msg_id, context=None): - partner_id = self.pool.get('res.users').browse(cr, uid, uid, context=context).partner_id.id - notif_ids = self.search(cr, uid, [('partner_id', '=', partner_id), ('message_id', '=', msg_id)], context=context) - return self.write(cr, uid, notif_ids, {'read': True}, context=context) + def set_message_read(self, cr, uid, msg_ids, read=None, context=None): + if msg_ids == None: + return False + if type(msg_ids) is not list: + msg_ids=[msg_ids] - def get_partners_to_notify(self, cr, uid, partner_ids, message, context=None): + partner_id = self.pool.get('res.users').browse(cr, uid, uid, context=context).partner_id.id + notif_ids = self.search(cr, uid, [('partner_id', '=', partner_id), ('message_id', 'in', msg_ids)], context=context) + + return self.write(cr, uid, notif_ids, {'read': read}, context=context) + + def get_partners_to_notify(self, cr, uid, message, context=None): """ Return the list of partners to notify, based on their preferences. :param browse_record message: mail.message to notify """ notify_pids = [] - for partner in self.pool.get('res.partner').browse(cr, SUPERUSER_ID, partner_ids, context=context): + for notification in message.notification_ids: + if notification.read: + continue + partner = notification.partner_id # Do not send an email to the writer if partner.user_ids and partner.user_ids[0].id == uid: continue @@ -111,15 +122,15 @@ class mail_notification(osv.Model): notify_pids.append(partner.id) return notify_pids - def notify(self, cr, uid, partner_ids, msg_id, context=None): + def _notify(self, cr, uid, msg_id, context=None): """ Send by email the notification depending on the user preferences """ context = context or {} # mail_noemail (do not send email) or no partner_ids: do not send, return - if context.get('mail_noemail') or not partner_ids: + if context.get('mail_noemail'): return True msg = self.pool.get('mail.message').browse(cr, uid, msg_id, context=context) - notify_partner_ids = self.get_partners_to_notify(cr, uid, partner_ids, msg, context=context) + notify_partner_ids = self.get_partners_to_notify(cr, uid, msg, context=context) if not notify_partner_ids: return True diff --git a/addons/mail/mail_followers_view.xml b/addons/mail/mail_followers_view.xml index 36f08b3814a..9fc8a545a20 100644 --- a/addons/mail/mail_followers_view.xml +++ b/addons/mail/mail_followers_view.xml @@ -16,6 +16,28 @@
+ + mail.followers.form + mail.followers + form + +
+ + + + + + + + + + + + +
+
+
+ mail.notification.tree diff --git a/addons/mail/mail_group.py b/addons/mail/mail_group.py index 60e3b9bd3af..3febe34be51 100644 --- a/addons/mail/mail_group.py +++ b/addons/mail/mail_group.py @@ -30,6 +30,7 @@ class mail_group(osv.Model): group. The group mechanics are based on the followers. """ _description = 'Discussion group' _name = 'mail.group' + _mail_autothread = False _inherit = ['mail.thread'] _inherits = {'mail.alias': 'alias_id', 'ir.ui.menu': 'menu_id'} @@ -157,7 +158,7 @@ class mail_group(osv.Model): def write(self, cr, uid, ids, vals, context=None): result = super(mail_group, self).write(cr, uid, ids, vals, context=context) if vals.get('group_ids'): - self._subscribe_users(cr, uid, ids, vals.get('group_ids'), context=context) + self._subscribe_users(cr, uid, ids, context=context) return result def action_follow(self, cr, uid, ids, context=None): diff --git a/addons/mail/mail_group_view.xml b/addons/mail/mail_group_view.xml index 94b9f8f9b0b..6268cd425b1 100644 --- a/addons/mail/mail_group_view.xml +++ b/addons/mail/mail_group_view.xml @@ -15,9 +15,10 @@ - + +
@@ -81,7 +82,6 @@
- diff --git a/addons/mail/mail_message.py b/addons/mail/mail_message.py index 7d9c7b3085f..bbf68509277 100644 --- a/addons/mail/mail_message.py +++ b/addons/mail/mail_message.py @@ -131,6 +131,7 @@ class mail_message(osv.Model): 'unread': fields.function(_get_unread, fnct_search=_search_unread, type='boolean', string='Unread', help='Functional field to search for unread messages linked to uid'), + 'subtype_id': fields.many2one('mail.message.subtype', 'Subtype'), 'vote_user_ids': fields.many2many('res.users', 'mail_vote', 'message_id', 'user_id', string='Votes', help='Users that voted for this message'), } @@ -167,7 +168,7 @@ class mail_message(osv.Model): self.write(cr, SUPERUSER_ID, message.get('id'), {'vote_user_ids': [(4, user_id)]}, context=context) else: self.write(cr, SUPERUSER_ID, message.get('id'), {'vote_user_ids': [(3, user_id)]}, context=context) - return True + return not(has_voted) or False #------------------------------------------------------ # Message loading for web interface @@ -179,6 +180,7 @@ class mail_message(osv.Model): fields allow to have the foreign record name without having to check external access rights). """ + child_nbr = len(msg.child_ids) has_voted = False vote_ids = self.pool.get('res.users').name_get(cr, SUPERUSER_ID, [user.id for user in msg.vote_user_ids], context=context) for vote in vote_ids: @@ -191,7 +193,7 @@ class mail_message(osv.Model): attachment_ids = [] try: author_id = self.pool.get('res.partner').name_get(cr, uid, [msg.author_id.id], context=context)[0] - is_author = uid in msg.author_id.user_ids + is_author = uid == msg.author_id.user_ids[0].id except (orm.except_orm, osv.except_osv): author_id = False is_author = False @@ -199,6 +201,7 @@ class mail_message(osv.Model): partner_ids = self.pool.get('res.partner').name_get(cr, uid, [x.id for x in msg.partner_ids], context=context) except (orm.except_orm, osv.except_osv): partner_ids = [] + return { 'id': msg.id, 'type': msg.type, @@ -212,12 +215,30 @@ class mail_message(osv.Model): 'author_id': author_id, 'is_author': is_author, 'partner_ids': partner_ids, - 'child_ids': [], + 'parent_id': msg.parent_id and msg.parent_id.id or False, 'vote_user_ids': vote_ids, - 'has_voted': has_voted + 'has_voted': has_voted, + 'unread': msg.unread and msg.unread['unread'] or False } - def message_read_tree_flatten(self, cr, uid, messages, current_level, level, context=None): + def message_read_tree_get_expandable(self, cr, uid, parent_message, last_message, domain=[], current_level=0, level=0, context=None): + """ . """ + base_domain = [('id', '<', last_message['id'])] + if parent_message and current_level < level: + base_domain += [('parent_id', '=', parent_message['id'])] + elif parent_message: + base_domain += [('id', 'child_of', parent_message['id']), ('id', '!=', parent_message['id'])] + if domain: + base_domain += domain + extension = { 'type': 'expandable', + 'domain': base_domain, + 'thread_level': current_level, + 'context': context, + 'id': -1, + } + return extension + + def message_read_tree_flatten(self, cr, uid, parent_message, messages, domain=[], level=0, current_level=0, context=None, limit=None, add_expandable=True): """ Given a tree with several roots of following structure : [ {'id': 1, 'child_ids': [ {'id': 11, 'child_ids': [...] },], @@ -236,69 +257,143 @@ class mail_message(osv.Model): child_ids = msg_dict.pop('child_ids', []) msg_dict['child_ids'] = [] return [msg_dict] + child_ids - # return sorted([msg_dict] + child_ids, key=itemgetter('id'), reverse=True) + context = context or {} + limit = limit or self._message_read_limit + # Depth-first flattening for message in messages: if message.get('type') == 'expandable': continue - message['child_ids'] = self.message_read_tree_flatten(cr, uid, message['child_ids'], current_level + 1, level, context=context) + message['child_ids'] = self.message_read_tree_flatten(cr, uid, message, message['child_ids'], domain, level, current_level + 1, context=context, limit=limit) + for child in message['child_ids']: + if child.get('type') == 'expandable': + continue + message['child_nbr'] += child['child_nbr'] # Flatten if above maximum depth if current_level < level: return_list = messages else: - return_list = [] - for message in messages: - for flat_message in _flatten(message): - return_list.append(flat_message) - return sorted(return_list, key=itemgetter(context.get('sort_key', 'id')), reverse=context.get('sort_reverse', True)) + return_list = [flat_message for message in messages for flat_message in _flatten(message)] - def message_read(self, cr, uid, ids=False, domain=[], thread_level=0, limit=None, context=None): - """ If IDs are provided, fetch these records. Otherwise use the domain - to fetch the matching records. - After having fetched the records provided by IDs, it will fetch the - parents to have well-formed threads. + # Add expandable + return_list = sorted(return_list, key=itemgetter(context.get('sort_key', 'id')), reverse=context.get('sort_reverse', True)) + if return_list and current_level == 0 and add_expandable: + expandable = self.message_read_tree_get_expandable(cr, uid, parent_message, return_list and return_list[-1] or parent_message, domain, current_level, level, context=context) + return_list.append(expandable) + elif return_list and current_level <= level and add_expandable: + expandable = self.message_read_tree_get_expandable(cr, uid, parent_message, return_list and return_list[-1] or parent_message, domain, current_level, level, context=context) + return_list.append(expandable) + return return_list + + def message_read(self, cr, uid, ids=False, domain=[], level=0, context=None, parent_id=False, limit=None): + """ Read messages from mail.message, and get back a structured tree + of messages to be displayed as discussion threads. If IDs is set, + fetch these records. Otherwise use the domain to fetch messages. + After having fetch messages, their parents will be added to obtain + well formed threads. + + :param domain: optional domain for searching ids + :param level: level of threads to display, 0 being flat + :param limit: number of messages to fetch + :param parent_id: if parent_id reached, stop searching for + further parents :return list: list of trees of messages """ + + message_loaded = context and context.get('message_loaded') or [0] + + # don't read the message display by .js, in context message_loaded list + if context and context.get('message_loaded'): + domain += [ ['id','not in',message_loaded] ]; + limit = limit or self._message_read_limit context = context or {} - if not ids: - ids = self.search(cr, SUPERUSER_ID, domain, context=context, limit=limit) - messages = self.browse(cr, uid, ids, context=context) + tree = [] result = [] - tree = {} # key: ID, value: record - for msg in messages: - if len(result) < (limit - 1): - record = self._message_dict_get(cr, uid, msg, context=context) - if thread_level and msg.parent_id: - while msg.parent_id: - if msg.parent_id.id in tree: - record_parent = tree[msg.parent_id.id] - else: - record_parent = self._message_dict_get(cr, uid, msg.parent_id, context=context) - if msg.parent_id.parent_id: - tree[msg.parent_id.id] = record_parent - if record['id'] not in [x['id'] for x in record_parent['child_ids']]: - record_parent['child_ids'].append(record) - record = record_parent - msg = msg.parent_id - if msg.id not in tree: - result.append(record) - tree[msg.id] = record - else: - result.append({ - 'type': 'expandable', - 'domain': [('id', '<=', msg.id)] + domain, - 'context': context, - 'thread_level': thread_level, # should be improve accodting to level of records - 'id': -1, - }) - break + record = None + + # select ids + if ids: + for msg in self.browse(cr, uid, ids, context=context): + result.append(self._message_dict_get(cr, uid, msg, context=context)) + return result + + # key: ID, value: record + ids = self.search(cr, SUPERUSER_ID, domain, context=context, limit=limit) + for msg in self.browse(cr, uid, ids, context=context): + # if not in record and not in message_loded list + if msg.id not in tree and msg.id not in message_loaded : + record = self._message_dict_get(cr, uid, msg, context=context) + tree.append(msg.id) + result.append(record) + + while msg.parent_id and msg.parent_id.id != parent_id: + parent_id = msg.parent_id.id + if msg.parent_id.id not in tree: + msg = msg.parent_id + tree.append(msg.id) + # if not in record and not in message_loded list + if msg.id not in message_loaded : + record = self._message_dict_get(cr, uid, msg, context=context) + result.append(record) + + result = sorted(result, key=lambda k: k['id']) + + + tree_not = [] + # expandable for not show message + for id_msg in tree: + # get all childs + not_loaded_ids = self.search(cr, SUPERUSER_ID, [['parent_id','=',id_msg],['id','not in',message_loaded]], None, limit=1000) + # group childs not read + id_min=None + id_max=None + nb=0 + for not_loaded_id in not_loaded_ids: + if not_loaded_id not in tree: + nb+=1 + if id_min==None or id_min>not_loaded_id: + id_min=not_loaded_id + if id_max==None or id_max0: + result.append({ + 'domain': [['id','>=',id_min],['id','<=',id_max],['parent_id','=',id_msg]], + 'nb_messages': nb, + 'type': 'expandable', + 'parent_id': id_msg, + 'id': id_min + }) + nb=0 + if nb>0: + result.append({ + 'domain': [['id','>=',id_min],['parent_id','=',id_msg]], + 'nb_messages': nb, + 'type': 'expandable', + 'parent_id': id_msg, + 'id': id_min + }) + + + # expandable for limit max + ids = self.search(cr, SUPERUSER_ID, domain+[['id','not in',message_loaded+tree+tree_not]], context=context, limit=1) + if len(ids) > 0: + result.append( + { + 'domain': domain, + 'nb_messages': 0, + 'type': 'expandable', + 'parent_id': parent_id, + 'id': -1 + }); + + + result = sorted(result, key=lambda k: k['id']) - # Flatten the result - if thread_level > 0: - result = self.message_read_tree_flatten(cr, uid, result, 0, thread_level, context=context) return result #------------------------------------------------------ @@ -409,7 +504,7 @@ class mail_message(osv.Model): if not values.get('message_id') and values.get('res_id') and values.get('model'): values['message_id'] = tools.generate_tracking_message_id('%(model)s-%(res_id)s' % values) newid = super(mail_message, self).create(cr, uid, values, context) - self.notify(cr, uid, newid, context=context) + self._notify(cr, 1, newid, context=context) return newid def read(self, cr, uid, ids, fields=None, context=None, load='_classic_read'): @@ -431,26 +526,39 @@ class mail_message(osv.Model): self.pool.get('ir.attachment').unlink(cr, uid, attachments_to_delete, context=context) return super(mail_message, self).unlink(cr, uid, ids, context=context) - def notify(self, cr, uid, newid, context=None): + def _notify(self, cr, uid, newid, context=None): """ Add the related record followers to the destination partner_ids. Call mail_notification.notify to manage the email sending """ message = self.browse(cr, uid, newid, context=context) partners_to_notify = set([]) - # add all partner_ids of the message + # message has no subtype_id: pure log message -> no partners, no one notified + if not message.subtype_id: + message.write({'partner_ids': [5]}) + return True + # all partner_ids of the mail.message have to be notified if message.partner_ids: partners_to_notify |= set(partner.id for partner in message.partner_ids) - # add all followers and set add them in partner_ids + # all followers of the mail.message document have to be added as partners and notified if message.model and message.res_id: - record = self.pool.get(message.model).browse(cr, SUPERUSER_ID, message.res_id, context=context) - extra_notified = set(partner.id for partner in record.message_follower_ids) + fol_obj = self.pool.get("mail.followers") + fol_ids = fol_obj.search(cr, uid, [('res_model', '=', message.model), ('res_id', '=', message.res_id), ('subtype_ids', 'in', message.subtype_id.id)], context=context) + fol_objs = fol_obj.browse(cr, uid, fol_ids, context=context) + extra_notified = set(fol.partner_id.id for fol in fol_objs) missing_notified = extra_notified - partners_to_notify + missing_notified = missing_notified if missing_notified: self.write(cr, SUPERUSER_ID, [newid], {'partner_ids': [(4, p_id) for p_id in missing_notified]}, context=context) partners_to_notify |= extra_notified - # # remove uid from partners - self.write(cr, SUPERUSER_ID, [newid], {'partner_ids': [(3, uid)]}, context=context) - self.pool.get('mail.notification').notify(cr, uid, list(partners_to_notify), newid, context=context) + + # add myself if I wrote on my wall, + # unless remove myself author + if ((message.model=="res.partner" and message.res_id==message.author_id.id)): + self.write(cr, SUPERUSER_ID, [newid], {'partner_ids': [(4, message.author_id.id)]}, context=context) + else: + self.write(cr, SUPERUSER_ID, [newid], {'partner_ids': [(3, message.author_id.id)]}, context=context) + + self.pool.get('mail.notification')._notify(cr, uid, newid, context=context) def copy(self, cr, uid, id, default=None, context=None): """Overridden to avoid duplicating fields that are unique to each email""" diff --git a/addons/mail/mail_message_subtype.py b/addons/mail/mail_message_subtype.py new file mode 100644 index 00000000000..32b20d9c11e --- /dev/null +++ b/addons/mail/mail_message_subtype.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2012-today OpenERP SA () +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see +# +############################################################################## + +from osv import osv +from osv import fields + + +class mail_message_subtype(osv.osv): + """ Class holding subtype definition for messages. Subtypes allow to tune + the follower subscription, allowing only some subtypes to be pushed + on the Wall. """ + _name = 'mail.message.subtype' + _description = 'mail_message_subtype' + _columns = { + 'name': fields.char('Message Type', required=True, translate=True, + help='Message subtype, gives a more precise type on the message, '\ + 'especially for system notifications. For example, it can be '\ + 'a notification related to a new record (New), or to a stage '\ + 'change in a process (Stage change). Message subtypes allow to '\ + 'precisely tune the notifications the user want to receive on its wall.'), + 'res_model': fields.char('Model', help="link subtype to model"), + 'default': fields.boolean('Default', + help="When subscribing to the document, this subtype will be checked by default."), + } + _defaults = { + 'default': True, + } diff --git a/addons/mail/mail_message_subtype.xml b/addons/mail/mail_message_subtype.xml new file mode 100644 index 00000000000..c1cd510642d --- /dev/null +++ b/addons/mail/mail_message_subtype.xml @@ -0,0 +1,43 @@ + + + + + + mail.message.subtype.tree + mail.message.subtype + 10 + + + + + + + + + + + mail.message.subtype.form + mail.message.subtype + +
+ + + + + + + +
+
+
+ + + Subtypes + mail.message.subtype + form + tree,form + + + +
+
diff --git a/addons/mail/mail_message_view.xml b/addons/mail/mail_message_view.xml index 8e7129e8165..cc0419352af 100644 --- a/addons/mail/mail_message_view.xml +++ b/addons/mail/mail_message_view.xml @@ -31,6 +31,7 @@ + @@ -55,16 +56,18 @@ - + - - - @@ -75,20 +78,28 @@ form tree,form + {'search_default_unread_message':True} - - News Feed + + Inbox mail.wall - - - My Posts + + Archives + mail.wall + + + + + Sent mail.wall diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index 061647c388a..9f53b4c08b1 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -96,6 +96,7 @@ class many2many_reference(fields.many2many): else: return super(many2many_reference, self).set(cr, model, id, name, values, user, context) + class mail_thread(osv.AbstractModel): ''' mail_thread model is meant to be inherited by any model that needs to act as a discussion topic on which messages can be attached. Public @@ -116,10 +117,13 @@ class mail_thread(osv.AbstractModel): ''' _name = 'mail.thread' _description = 'Email Thread' + _mail_autothread = True def _get_message_data(self, cr, uid, ids, name, args, context=None): + """ Computes: + - message_unread: has uid unread message for the document + - message_summary: html snippet summarizing the Chatter for kanban views """ res = dict((id, dict(message_unread=False, message_summary='')) for id in ids) - partner_id = self.pool.get('res.users').read(cr, uid, uid, ['partner_id'], context=context)['partner_id'][0] # search for unread messages, by reading directly mail.notification, as SUPERUSER notif_obj = self.pool.get('mail.notification') @@ -132,10 +136,41 @@ class mail_thread(osv.AbstractModel): for notif in notif_obj.browse(cr, SUPERUSER_ID, notif_ids, context=context): res[notif.message_id.res_id]['message_unread'] = True - for thread in self.read(cr, uid, ids, ['message_follower_ids', 'message_comment_ids', 'message_ids'], context=context): - cls = res[thread['id']]['message_unread'] and ' class="oe_kanban_mail_new"' or '' - res[thread['id']]['message_summary'] = "9 %d + %d" % (cls, len(thread['message_comment_ids']), len(thread['message_follower_ids'])) - res[thread['id']]['message_is_follower'] = partner_id in thread['message_follower_ids'] + for thread in self.browse(cr, uid, ids, context=context): + cls = res[thread.id]['message_unread'] and ' class="oe_kanban_mail_new"' or '' + res[thread.id]['message_summary'] = "9 %d + %d" % (cls, len(thread.message_comment_ids), len(thread.message_follower_ids)) + + return res + + def _get_subscription_data(self, cr, uid, ids, name, args, context=None): + """ Computes: + - message_is_follower: is uid in the document followers + - message_subtype_data: data about document subtypes: which are + available, which are followed if any """ + res = dict((id, dict(message_subtype_data='', message_is_follower=False)) for id in ids) + user_pid = self.pool.get('res.users').read(cr, uid, uid, ['partner_id'], context=context)['partner_id'][0] + + # find current model subtypes, add them to a dictionary + subtype_obj = self.pool.get('mail.message.subtype') + subtype_ids = subtype_obj.search(cr, uid, ['|', ('res_model', '=', self._name), ('res_model', '=', False)], context=context) + subtype_dict = dict((subtype.name, dict(default=subtype.default, followed=False, id=subtype.id)) for subtype in subtype_obj.browse(cr, uid, subtype_ids, context=context)) + for id in ids: + res[id]['message_subtype_data'] = subtype_dict.copy() + + # find the document followers, update the data + fol_obj = self.pool.get('mail.followers') + fol_ids = fol_obj.search(cr, uid, [ + ('partner_id', '=', user_pid), + ('res_id', 'in', ids), + ('res_model', '=', self._name), + ], context=context) + for fol in fol_obj.browse(cr, uid, fol_ids, context=context): + thread_subtype_dict = res[fol.res_id]['message_subtype_data'] + res[fol.res_id]['message_is_follower'] = True + for subtype in fol.subtype_ids: + thread_subtype_dict[subtype.name]['followed'] = True + res[fol.res_id]['message_subtype_data'] = thread_subtype_dict + return res def _search_unread(self, cr, uid, obj=None, name=None, domain=None, context=None): @@ -152,8 +187,13 @@ class mail_thread(osv.AbstractModel): return [('id', 'in', res.keys())] _columns = { - 'message_is_follower': fields.function(_get_message_data, - type='boolean', string='Is a Follower', multi='_get_message_data'), + 'message_is_follower': fields.function(_get_subscription_data, + type='boolean', string='Is a Follower', multi='_get_subscription_data,'), + 'message_subtype_data': fields.function(_get_subscription_data, + type='text', string='Subscription data', multi="_get_subscription_data", + help="Holds data about the subtypes. The content of this field "\ + "is a structure holding the current model subtypes, and the "\ + "current document followed subtypes."), 'message_follower_ids': many2many_reference('res.partner', 'mail_followers', 'res_id', 'partner_id', reference_column='res_model', string='Followers'), @@ -571,12 +611,12 @@ class mail_thread(osv.AbstractModel): "now deprecated res.log.") self.message_post(cr, uid, [id], message, context=context) - def message_post(self, cr, uid, thread_id, body='', subject=False, - type='notification', parent_id=False, attachments=None, context=None, **kwargs): + def message_post(self, cr, uid, thread_id, body='', subject=None, type='notification', + subtype=None, parent_id=False, attachments=None, context=None, **kwargs): """ Post a new message in an existing thread, returning the new mail.message ID. Extra keyword arguments will be used as default column values for the new mail.message record. - + Auto link messages for same id and object :param int thread_id: thread ID to post into, or list with one ID :param str body: body of the message, usually raw HTML that will be sanitized @@ -587,9 +627,10 @@ class mail_thread(osv.AbstractModel): ``(name,content)``, where content is NOT base64 encoded :return: ID of newly created mail.message """ + context = context or {} attachments = attachments or [] - assert (not thread_id) or isinstance(thread_id, (int,long)) or \ + assert (not thread_id) or isinstance(thread_id, (int, long)) or \ (isinstance(thread_id, (list, tuple)) and len(thread_id) == 1), "Invalid thread_id" if isinstance(thread_id, (list, tuple)): thread_id = thread_id and thread_id[0] @@ -608,39 +649,86 @@ class mail_thread(osv.AbstractModel): } attachment_ids.append((0, 0, data_attach)) + # get subtype + if not subtype: + subtype = 'mail.mt_comment' + s = subtype.split('.') + if len(s)==1: + s = ('mail', s[0]) + ref = self.pool.get('ir.model.data').get_object_reference(cr, uid, s[0], s[1]) + subtype_id = ref and ref[1] or False + + model = context.get('thread_model', self._name) if thread_id else False + messages = self.pool.get('mail.message') + + #auto link messages for same id and object + if self._mail_autothread and thread_id: + message_ids = messages.search(cr, uid, ['&',('res_id', '=', thread_id),('model','=',model)], context=context) + if len(message_ids): + parent_id = min(message_ids) + + values = kwargs values.update({ - 'model': context.get('thread_model', self._name) if thread_id else False, + 'model': model, 'res_id': thread_id or False, 'body': body, - 'subject': subject, + 'subject': subject or False, 'type': type, 'parent_id': parent_id, 'attachment_ids': attachment_ids, + 'subtype_id': subtype_id, }) - for x in ('from', 'to', 'cc'): values.pop(x, None) # Avoid warnings - return self.pool.get('mail.message').create(cr, uid, values, context=context) + # Avoid warnings about non-existing fields + for x in ('from', 'to', 'cc'): + values.pop(x, None) + + return messages.create(cr, uid, values, context=context) #------------------------------------------------------ # Followers API #------------------------------------------------------ - def message_subscribe_users(self, cr, uid, ids, user_ids=None, context=None): + def message_post_api(self, cr, uid, thread_id, body='', subject=False, type='notification', + subtype=None, parent_id=False, attachments=None, context=None, **kwargs): + added_message_id = self.message_post(cr, uid, thread_id=thread_id, body=body, subject=subject, type=type, + subtype=subtype, parent_id=parent_id, attachments=attachments, context=context) + added_message = self.pool.get('mail.message').message_read(cr, uid, [added_message_id]) + + return added_message + + def get_message_subtypes(self, cr, uid, ids, context=None): + """ message_subtype_data: data about document subtypes: which are + available, which are followed if any """ + return self._get_subscription_data(cr, uid, ids, None, None, context=context) + + def message_subscribe_users(self, cr, uid, ids, user_ids=None, subtype_ids=None, context=None): """ Wrapper on message_subscribe, using users. If user_ids is not provided, subscribe uid instead. """ - if not user_ids: user_ids = [uid] - partner_ids = [user['partner_id'][0] for user in self.pool.get('res.users').read(cr, uid, user_ids, ['partner_id'], context=context)] - return self.message_subscribe(cr, uid, ids, partner_ids, context=context) + if not user_ids: + return False + partner_ids = [user.partner_id.id for user in self.pool.get('res.users').browse(cr, uid, user_ids, context=context)] + return self.message_subscribe(cr, uid, ids, partner_ids, subtype_ids=subtype_ids, context=context) - def message_subscribe(self, cr, uid, ids, partner_ids, context=None): + def message_subscribe(self, cr, uid, ids, partner_ids, subtype_ids=None, context=None): """ Add partners to the records followers. """ - return self.write(cr, uid, ids, {'message_follower_ids': [(4, pid) for pid in partner_ids]}, context=context) + self.write(cr, uid, ids, {'message_follower_ids': [(4, pid) for pid in partner_ids]}, context=context) + # if subtypes are not specified (and not set to a void list), fetch default ones + if subtype_ids is None: + subtype_obj = self.pool.get('mail.message.subtype') + subtype_ids = subtype_obj.search(cr, uid, [('default', '=', True), '|', ('res_model', '=', self._name), ('res_model', '=', False)], context=context) + # update the subscriptions + fol_obj = self.pool.get('mail.followers') + fol_ids = fol_obj.search(cr, 1, [('res_model', '=', self._name), ('res_id', 'in', ids), ('partner_id', 'in', partner_ids)], context=context) + fol_obj.write(cr, 1, fol_ids, {'subtype_ids': [(6, 0, subtype_ids)]}, context=context) + return True def message_unsubscribe_users(self, cr, uid, ids, user_ids=None, context=None): """ Wrapper on message_subscribe, using users. If user_ids is not provided, unsubscribe uid instead. """ - if not user_ids: user_ids = [uid] - partner_ids = [user['partner_id'][0] for user in self.pool.get('res.users').read(cr, uid, user_ids, ['partner_id'], context=context)] + if not user_ids: + user_ids = [uid] + partner_ids = [user.partner_id.id for user in self.pool.get('res.users').browse(cr, uid, user_ids, context=context)] return self.message_unsubscribe(cr, uid, ids, partner_ids, context=context) def message_unsubscribe(self, cr, uid, ids, partner_ids, context=None): @@ -674,3 +762,5 @@ class mail_thread(osv.AbstractModel): partner_id = %s ''', (ids, self._name, partner_id)) return True + +# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/mail/mail_thread_view.xml b/addons/mail/mail_thread_view.xml index b4b1aade755..3507e7c449f 100644 --- a/addons/mail/mail_thread_view.xml +++ b/addons/mail/mail_thread_view.xml @@ -12,16 +12,22 @@ - - My Feeds + + Inbox - + - - My Posts + + Archives - + + + + + Sent + + diff --git a/addons/mail/res_partner.py b/addons/mail/res_partner.py index 2988cee3d9c..363ea74d16c 100644 --- a/addons/mail/res_partner.py +++ b/addons/mail/res_partner.py @@ -25,6 +25,7 @@ class res_partner_mail(osv.Model): """ Update partner to add a field about notification preferences """ _name = "res.partner" _inherit = ['res.partner', 'mail.thread'] + _mail_autothread = False _columns = { 'notification_email_send': fields.selection([ @@ -41,5 +42,4 @@ class res_partner_mail(osv.Model): 'notification_email_send': lambda *args: 'comment' } - # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/addons/mail/res_partner_view.xml b/addons/mail/res_partner_view.xml index 5c051fc89b3..2a8430926d5 100644 --- a/addons/mail/res_partner_view.xml +++ b/addons/mail/res_partner_view.xml @@ -9,7 +9,6 @@
- diff --git a/addons/mail/security/ir.model.access.csv b/addons/mail/security/ir.model.access.csv index 26048e7a40c..b68a9ab7443 100644 --- a/addons/mail/security/ir.model.access.csv +++ b/addons/mail/security/ir.model.access.csv @@ -11,4 +11,7 @@ access_mail_group_all,mail.group.all,model_mail_group,,1,0,0,0 access_mail_group_user,mail.group.user,model_mail_group,base.group_user,1,1,1,1 access_mail_alias_all,mail.alias.all,model_mail_alias,,1,0,0,0 access_mail_alias_user,mail.alias,model_mail_alias,base.group_user,1,1,1,0 +access_mail_alias_system,mail.alias,model_mail_alias,base.group_system,1,1,1,1 +access_mail_message_subtype,mail.message.subtype,model_mail_message_subtype,,1,1,1,1 +access_mail_mail_user,mail.mail,model_mail_mail,base.group_user,1,1,1,0 access_mail_vote_all,mail.vote.all,model_mail_vote,,1,1,1,1 diff --git a/addons/mail/static/src/css/mail.css b/addons/mail/static/src/css/mail.css index e69eaadbcdb..364ac7e3165 100644 --- a/addons/mail/static/src/css/mail.css +++ b/addons/mail/static/src/css/mail.css @@ -14,7 +14,6 @@ margin: 0; } - /* ------------------------------------------------------------ */ /* Wall /* ------------------------------------------------------------ */ @@ -37,6 +36,21 @@ list-style-type: none; } +/* ------------------------------------------------------------ */ +/* Followers +/* ------------------------------------------------------------ */ + +.openerp div.oe_mail_recthread_aside h4 { + display: inline-block; +} +.openerp div.oe_mail_recthread_aside button { + position: relative; +} +.openerp div.oe_mail_recthread_aside label, +.openerp div.oe_mail_recthread_aside input { + cursor:pointer; +} + /* Specific display of threads in the wall */ /* ------------------------------------------------------------ */ @@ -50,22 +64,12 @@ border-top: 0; } -.openerp div.oe_mail_thread_subthread img { +.openerp div.oe_thread_placeholder img { width: 28px; height: 28px; } -.openerp div.oe_mail_msg_content { - position: relative; - width: 486px; -} - -.openerp div.oe_mail_msg_content > li { - float: left; - margin-right: 3px; -} - -.openerp div.oe_mail_thread_subthread div.oe_mail_msg_content { +.openerp div.oe_thread_placeholder div.oe_mail_msg_content { width: 440px; } @@ -78,7 +82,7 @@ overflow: auto; } -.openerp div.oe_mail_recthread_main { +.openerp .oe_mail_record_wall > .oe_mail_wall_threads { float: left; width: 560px; } @@ -96,7 +100,7 @@ width: 120px; } -.openerp button.oe_mail_button_mouseout { +.openerp .oe_mail_recthread_aside .oe_follower.oe_follow { color: white; background-color: #8a89ba; background-image: -webkit-gradient(linear, left top, left bottom, from(#8a89ba), to(#807fb4)); @@ -106,9 +110,7 @@ background-image: -o-linear-gradient(top, #8a89ba, #807fb4); background-image: linear-gradient(to bottom, #8a89ba, #807fb4); } - -.openerp button.oe_mail_button_mouseover { - display: none; +.openerp .oe_mail_recthread_aside .oe_follower.oe_following { color: white; background-color: #dc5f59; background-image: -webkit-gradient(linear, left top, left bottom, from(#dc5f59), to(#b33630)); @@ -119,17 +121,38 @@ background-image: linear-gradient(to bottom, #dc5f59, #b33630); } + +.openerp .oe_mail_recthread_aside .oe_follower span { + display:none; +} +.openerp .oe_mail_recthread_aside .oe_following span.oe_following, +.openerp .oe_mail_recthread_aside .oe_notfollow span.oe_follow { + display:block; +} + .openerp div.oe_mail_recthread_followers { margin-bottom: 8px; } /* ------------------------------------------------------------ */ -/* Followers +/* subtypes /* ------------------------------------------------------------ */ -.openerp div.oe_mail_recthread_aside h4 { - display: inline-block; +.openerp .oe_mouse_subtypes { + display:inline-block; + position: relative; + z-index: 5; +} +.openerp .oe_mouse_subtypes .oe_recthread_subtypes { + position: absolute; + z-index: 2; +} +.openerp .oe_mouse_subtypes.oe_mouseout .oe_recthread_subtypes { + display: none; +} +.openerp .oe_mouse_subtypes.oe_mouseover .oe_recthread_subtypes { + display: block; } /* ------------------------------------------------------------ */ @@ -140,6 +163,8 @@ display: none; white-space: normal; padding: 8px; + z-index:5; + background: #fff; } .openerp div.oe_mail_thread_action:after { @@ -168,15 +193,20 @@ -box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1), 0 0 8px rgba(82, 168, 236, 0.6); } +.openerp .oe_mail_vote_count, +.openerp .oe_mail_msg_vote{ + vertical-align: bottom; +} + .openerp div.oe_mail_thread_display { white-space: normal; } -.openerp div.oe_mail_thread_subthread { +.openerp div.oe_thread_placeholder { margin-left: 66px; } -.openerp div.oe_mail_thread_subthread li.oe_mail_thread_msg:last-child { +.openerp div.oe_thread_placeholder li.oe_mail_thread_msg:last-child { margin-bottom: 8px; } @@ -191,6 +221,15 @@ clear: both; } +.openerp li.oe_mail_thread_msg.oe_mail_read, +.openerp li.oe_mail_thread_msg.oe_mail_read div { + background-color: #F0F0F0; +} +.openerp li.oe_mail_thread_msg.oe_mail_read li.oe_mail_thread_msg.oe_mail_unread, +.openerp li.oe_mail_thread_msg.oe_mail_read li.oe_mail_thread_msg.oe_mail_unread div { + background-color: #F6F6F6; +} + .openerp li.oe_mail_thread_msg > div:after { content: ""; display: block; @@ -202,18 +241,15 @@ margin: 0 0 4px 0; } -.openerp .oe_mail_msg_notification, -.openerp .oe_mail_msg_comment, +.openerp .oe_mail_msg_notification, +.openerp .oe_mail_msg_expandable, +.openerp .oe_mail_msg_comment, .openerp .oe_mail_msg_email { padding: 8px; background: white; border-top: 1px solid #ebebeb; } -.openerp div.oe_mail_thread_subthread .oe_mail_msg_comment { - background: #eee; -} - .openerp .oe_mail_msg_notification:after, .openerp .oe_mail_msg_comment:after, .openerp .oe_mail_msg_email:after { @@ -222,8 +258,15 @@ clear: both; } -.openerp .oe_mail_msg_content { +.openerp div.oe_mail_msg_content { + float: right; + position: relative; + width: 486px; +} + +.openerp div.oe_mail_msg_content > li { float: left; + margin-right: 3px; } .openerp .oe_mail_msg_content:after { @@ -266,7 +309,6 @@ display: none; } - /* ------------------------------------------------------------ */ /* mail.compose.message form view & OpenERP hacks /* ------------------------------------------------------------ */ @@ -371,15 +413,38 @@ } /* Dropdown menu */ -.openerp .oe_mail_msg_content .oe_dropdown_toggle { +/*.openerp .oe_mail_msg_content .oe_dropdown_toggle { position: absolute; top: 0px; right: 3px; +}*/ + +.openerp .oe_mail .oe_semantic_html_override { + position: relative; } + +.openerp .oe_mail ul.oe_header { + position: absolute; + right: 3px; + top: -6px; + display: none; + z-index: 10; + height: 18px; +} + +.openerp .oe_mail ul.oe_header a { + text-decoration: none; +} + +.openerp .oe_mail .oe_semantic_html_override:hover > ul.oe_header { + display: block; +} + +.openerp .oe_mail ul.oe_header>li { + display: inline-block; +} + .openerp .oe_mail_msg_content .oe_dropdown_arrow:after { - border-top: 4px solid transparent; -} -.openerp .oe_mail_msg_content:hover .oe_dropdown_arrow:after { border-top: 4px solid #404040; } diff --git a/addons/mail/static/src/js/mail.js b/addons/mail/static/src/js/mail.js index 196c54c8296..e0c9ac9b7fc 100644 --- a/addons/mail/static/src/js/mail.js +++ b/addons/mail/static/src/js/mail.js @@ -22,8 +22,9 @@ openerp.mail = function(session) { action.context && action.context.redirect == true && this.fields && this.fields.message_ids && this.fields.message_ids.view.get("actual_mode") != 'create') { var thread = this.fields.message_ids.thread; - thread.refresh_composition_form(action.context); - return true; + + thread.refresh(action.context); + return false; } else { return this._super(action, on_close); @@ -110,8 +111,8 @@ openerp.mail = function(session) { this._super.apply(this, arguments); // customize display: add avatar, clean previous content var user_avatar = mail.ChatterUtils.get_image(this.session, 'res.users', 'image_small', this.session.uid); - this.$el.find('img.oe_mail_icon').attr('src', user_avatar); - this.$el.find('div.oe_mail_msg_content').empty(); + this.$('img.oe_mail_icon').attr('src', user_avatar); + this.$('div.oe_mail_msg_content').empty(); // create a context for the dataset and default_get of the wizard var context = _.extend({}, this.options.context); this.ds_compose = new session.web.DataSetSearch(this, 'mail.compose.message', context); @@ -139,21 +140,21 @@ openerp.mail = function(session) { disable_autofocus: true, }); // add the form, bind events, activate the form - var msg_node = this.$el.find('div.oe_mail_msg_content'); + var msg_node = this.$('div.oe_mail_msg_content'); return $.when(this.form_view.appendTo(msg_node)).pipe(this.proxy('postprocess_create_form_view')); }, postprocess_create_form_view: function () { // handle attachment button this.fileupload_id = _.uniqueId('oe_fileupload'); - var button_attach = this.$el.find('button.oe_mail_compose_message_attachment'); + var button_attach = this.$('button.oe_mail_compose_message_attachment'); var rendered = session.web.qweb.render('mail.compose_message.add_attachment', {'widget': this}); $(rendered).insertBefore(button_attach); // move the button inside div.oe_hidden_input_file - var input_node = this.$el.find('input[name=ufile]'); + var input_node = this.$('input[name=ufile]'); button_attach.detach().insertAfter(input_node); // set the function called when attachments are added - this.$el.find('input.oe_form_binary_file').change(this.on_attachment_change); + this.$('input.oe_form_binary_file').change(this.on_attachment_change); this.bind_events(); this.form_view.do_show(); }, @@ -161,7 +162,7 @@ openerp.mail = function(session) { on_attachment_change: function (event) { var $target = $(event.target); if ($target.val() !== '') { - this.$el.find('form.oe_form_binary_form').submit(); + this.$('form.oe_form_binary_form').submit(); session.web.blockUI(); } }, @@ -178,11 +179,11 @@ openerp.mail = function(session) { }, display_attachments: function () { - var attach_node = this.$el.find('div.oe_mail_compose_message_attachments'); + var attach_node = this.$('div.oe_mail_compose_message_attachments'); var rendered = session.web.qweb.render('mail.thread.message.attachments', {'record': this}); attach_node.empty(); $(rendered).appendTo(attach_node); - this.$el.find('.oe_mail_msg_attachments').show(); + this.$('.oe_mail_msg_attachments').show(); var composer_attachment_ids = _.pluck(this.attachment_ids, 'id'); var onchange_like = {'value': {'attachment_ids': composer_attachment_ids}} this.form_view.on_processed_onchange(onchange_like, []); @@ -228,6 +229,379 @@ openerp.mail = function(session) { this.$el.on('click', '.oe_mail_attachment_delete', self.on_attachment_delete); }, }), + + + /** + * ------------------------------------------------------------ + * Thread Message Expandable Widget + * ------------------------------------------------------------ + * + * This widget handles the display the expandable message in a thread. The + * [thread_level] parameter sets the thread level number: + * - thread + * - - visible message + * - - expandable + * - - visible message + * - - visible message + * - - expandable + */ + mail.ThreadExpandable = session.web.Widget.extend({ + template: 'mail.thread.expandable', + + init: function(parent, options) { + this._super(parent); + this.domain = options.domain || []; + this.context = _.extend({ + default_model: 'mail.thread', + default_res_id: 0, + default_parent_id: false }, options.context || {}); + + this.id = -1; + this.parent_id= options.parameters.parent_id || false; + this.nb_messages = options.parameters.nb_messages || 0; + this.type = options.parameters.type || false; + + // record options and data + this.parent_thread= parent.messages!= undefined ? parent : options.options.thread._parents[0] ; + + }, + + + start: function() { + this._super.apply(this, arguments); + this.bind_events(); + }, + + /** + * Bind events in the widget. Each event is slightly described + * in the function. */ + bind_events: function() { + var self = this; + // event: click on 'Vote' button + this.$el.on('click', 'a.oe_mail_fetch_more', self.on_expandable); + }, + + /*The selected thread and all childs (messages/thread) became read + * @param {object} mouse envent + */ + on_expandable: function (event) { + event.stopPropagation(); + this.parent_thread.message_fletch(false, this.domain, this.context); + this.destroy(); + return false; + }, + }); + + /** + * ------------------------------------------------------------ + * Thread Message Widget + * ------------------------------------------------------------ + * This widget handles the display of a messages in a thread. + * Displays a record and performs some formatting on the record : + * - record.date: formatting according to the user timezone + * - record.timerelative: relative time givein by timeago lib + * - record.avatar: image url + * - record.attachment_ids[].url: url of each attachmentThe + * [thread_level] parameter sets the thread level number: + * - root thread + * - - sub message (parent_id = root message) + * - - - sub thread + * - - - - sub sub message (parent id = sub thread) + * - - sub message (parent_id = root message) + * - - - sub thread + */ + mail.ThreadMessage = session.web.Widget.extend({ + template: 'mail.thread.message', + + /** + * @param {Object} parent parent + * @param {Array} [domain] + * @param {Object} [context] context of the thread. It should + contain at least default_model, default_res_id. Please refer to + the ComposeMessage widget for more information about it. + * @param {Object} [options] + * @param {Object} [thread] read obout mail.Thread object + * @param {Object} [message] + * @param {Number} [message_ids=null] ids for message_fletch + * @param {Number} [message_data=null] already formatted message data, + * for subthreads getting data from their parent + * @param {Number} [truncate_limit=250] number of character to + * display before having a "show more" link; note that the text + * will not be truncated if it does not have 110% of the parameter + * @param {Boolean} [show_record_name] + * @param {Boolean} [show_reply] + * @param {Boolean} [show_reply_by_email] + * @param {Boolean} [show_dd_delete] + * @param {Boolean} [show_dd_hide] + */ + init: function(parent, options) { + this._super(parent); + this.domain = options.domain || []; + this.context = _.extend({ + default_model: 'mail.thread', + default_res_id: 0, + default_parent_id: false }, options.context || {}); + + // options + this.options={ + 'thread' : options.options.thread, + 'message' : { + 'message_ids': options.options.message.message_ids || null, + 'message_data': options.options.message.message_data || null, + 'show_record_name': options.options.message.show_record_name != undefined ? options.options.message.show_record_name: true, + 'show_reply': options.options.message.show_reply || false, + 'show_reply_by_email': options.options.message.show_reply_by_email || false, + 'show_dd_delete': options.options.message.show_dd_delete || false, + 'show_dd_hide': options.options.message.show_dd_hide || false, + 'truncate_limit': options.options.message.truncate_limit || 250, + } + }; + // record options and data + this.parent_thread= parent.messages!= undefined ? parent : options.options.thread._parents[0] ; + + var param = options.parameters; + // record parameters + this.id = param.id || -1; + this.model = param.model || false; + this.parent_id= param.parent_id || false; + this.res_id = param.res_id || false; + this.type = param.type || false; + this.is_author = param.is_author || false; + this.subject = param.subject || false; + this.name = param.name || false; + this.record_name = param.record_name || false; + this.body = param.body || false; + this.vote_user_ids =param.vote_user_ids || []; + this.has_voted = param.has_voted || false; + + this.vote_user_ids = param.vote_user_ids || []; + + this.unread = param.unread || false; + this._date = param.date; + this.author_id = param.author_id || []; + this.attachment_ids = param.attachment_ids || []; + + this.thread = false; + + if( param.id > 0 ) { + this.formating_data(); + } + + this.ds_notification = new session.web.DataSetSearch(this, 'mail.notification'); + this.ds_message = new session.web.DataSetSearch(this, 'mail.message'); + }, + + formating_data: function(){ + + //formating and add some fields for render + this.date = session.web.format_value(this._date, {type:"datetime"}); + this.timerelative = $.timeago(this.date); + if (this.type == 'email') { + this.avatar = ('/mail/static/src/img/email_icon.png'); + } else { + this.avatar = mail.ChatterUtils.get_image(this.session, 'res.partner', 'image_small', this.author_id[0]); + } + for (var l in this.attachment_ids) { + var attach = this.attachment_ids[l]; + attach['url'] = mail.ChatterUtils.get_attachment_url(this.session, attach); + } + }, + + start: function() { + this._super.apply(this, arguments); + this.expender(); + this.$el.hide().fadeIn(750); + this.bind_events(); + this.create_thread(); + }, + + /** + * Bind events in the widget. Each event is slightly described + * in the function. */ + bind_events: function() { + var self = this; + // event: click on 'Attachment(s)' in msg + this.$el.on('click', 'a.oe_mail_msg_view_attachments', function (event) { + var act_dom = $(this).parent().parent().parent().find('.oe_mail_msg_attachments'); + act_dom.toggle(); + }); + // event: click on icone 'Read' in header + this.$el.on('click', 'a.oe_read', this.on_message_read_unread); + // event: click on icone 'UnRead' in header + this.$el.on('click', 'a.oe_unread', this.on_message_read_unread); + // event: click on 'Delete' in msg side menu + this.$el.on('click', 'a.oe_mail_msg_delete', this.on_message_delete); + + // event: click on 'Reply' in msg + this.$el.on('click', 'a.oe_reply', this.on_message_reply); + // event: click on 'Reply by email' in msg side menu + this.$el.on('click', 'a.oe_reply_by_email', this.on_message_reply_by_mail); + // event: click on 'Vote' button + this.$el.on('click', 'button.oe_mail_msg_vote', this.on_vote); + }, + + on_message_reply:function(event){ + event.stopPropagation(); + this.thread.on_compose_message($(event.srcElement).hasClass("oe_full_reply"), false); + return false; + }, + + on_message_reply_by_mail:function(event){ + event.stopPropagation(); + this.thread.on_compose_message(true, true); + return false; + }, + + expender: function(){ + this.$('div.oe_mail_msg_body:first').expander({ + slicePoint: this.options.truncate_limit, + expandText: 'read more', + userCollapseText: '[^]', + detailClass: 'oe_mail_msg_tail', + moreClass: 'oe_mail_expand', + lessClass: 'oe_mail_reduce', + }); + }, + + create_thread: function(){ + var self=this; + if(this.thread){ + return false; + } + /*create thread*/ + self.thread = new mail.Thread(self, { + 'domain': self.domain, + 'context':{ + 'default_model': self.model, + 'default_res_id': self.res_id, + 'default_parent_id': self.id + }, + 'options': { + 'thread' : self.options.thread, + 'message' : self.options.message + }, + 'parameters':{ + 'model': self.model, + 'id': self.id, + 'parent_id': self.id + } + } + ); + /*insert thread in parent message*/ + self.thread.appendTo(self.$el.find('div.oe_thread_placeholder')); + }, + + animated_destroy: function(options) { + var self=this; + //graphic effects + if(options && options.fadeTime) { + self.$el.fadeOut(options.fadeTime, function(){ + self.destroy(); + }); + } else { + self.destroy(); + } + for(var i in this.thread.messages){ + this.thread.messages[i].animated_destroy({fadeTime:0}); + } + }, + + on_message_delete: function (event) { + event.stopPropagation(); + if (! confirm(_t("Do you really want to delete this message?"))) { return false; } + + this.animated_destroy({fadeTime:250}); + // delete this message and his childs + var ids = [this.id].concat( this.get_child_ids() ); + this.ds_message.unlink(ids); + this.animated_destroy(); + return false; + }, + + /*The selected thread and all childs (messages/thread) became read + * @param {object} mouse envent + */ + on_message_read_unread: function (event) { + event.stopPropagation(); + this.animated_destroy({fadeTime:250}); + // if this message is read, all childs message display is read + var ids = [this.id].concat( this.get_child_ids() ); + this.ds_notification.call('set_message_read', [ids,$(event.srcElement).hasClass("oe_read")]); + return false; + }, + + /** browse message + * @param {object}{int} option.id + * @param {object}{string} option.model + * @param {object}{boolean} option._go_thread_wall + * private for check the top thread + * @return thread object + */ + browse_message: function(options){ + // goto the wall thread for launch browse + if(!options._go_thread_wall) { + options._go_thread_wall = true; + for(var i in this.options.thread._parents[0].messages){ + var res=this.options.thread._parents[0].messages[i].browse_message(options); + if(res) return res; + } + } + + if(this.id==options.id) + return this; + + for(var i in this.thread.messages){ + if(this.thread.messages[i].thread){ + var res=this.thread.messages[i].browse_message(options); + if(res) return res; + } + } + + return false; + }, + + /* get all child message/thread id linked + */ + get_child_ids: function(){ + var res=[] + if(arguments[0]) res.push(this.id); + if(this.thread){ + res = res.concat( this.thread.get_child_ids(true) ); + } + return res; + }, + + + on_vote: function (event) { + event.stopPropagation(); + var self=this; + return this.ds_message.call('vote_toggle', [[self.id]]).pipe(function(vote){ + + self.has_voted=vote; + if (!self.has_voted) { + var votes=[]; + for(var i in self.vote_user_ids){ + if(self.vote_user_ids[i][0]!=self.session.uid) + vote.push(self.vote_user_ids[i]); + } + self.vote_user_ids=votes; + } + else { + self.vote_user_ids.push([self.session.uid, 'You']); + } + self.display_vote(); + }); + return false; + }, + + // Render vote Display template. + display_vote: function () { + var self = this; + var vote_element = session.web.qweb.render('mail.thread.message.vote', {'widget': self}); + self.$(".placeholder-mail-vote").empty(); + self.$(".placeholder-mail-vote").html(vote_element); + }, + }); /** * ------------------------------------------------------------ @@ -241,7 +615,6 @@ openerp.mail = function(session) { * - - - sub sub message (parent id = sub message) * - - sub message (parent_id = root message) */ - mail.Thread = session.web.Widget.extend({ template: 'mail.thread', @@ -252,66 +625,97 @@ openerp.mail = function(session) { contain at least default_model, default_res_id. Please refer to the ComposeMessage widget for more information about it. * @param {Object} [options] - * @param {Number} [options.message_ids=null] ids for message_fetch - * @param {Number} [options.message_data=null] already formatted message - data, for subthreads getting data from their parent - * @param {Number} [options.thread_level=0] number of thread levels - * @param {Boolean} [options.use_composer] use the advanced composer, or - the default basic textarea if not set - * @param {Number} [options.truncate_limit=250] number of character to - * display before having a "show more" link; note that the text - * will not be truncated if it does not have 110% of the parameter + * @param {Object} [message] read about mail.ThreadMessage object + * @param {Object} [thread] + * @param {Number} [thread_level=0] number of thread levels + * @param {Boolean} [use_composer] use the advanced composer, or + * the default basic textarea if not set + * @param {Number} [expandable_number=5] number message show + * for each click on "show more message" + * @param {Number} [expandable_default_number=5] number message show + * on begin before the first click on "show more message" + * @param {Boolean} [display_on_flat] display all thread + * on the wall thread level (no hierarchy) + * @param {Array} [parents] liked with the parents thread + * use with browse, fletch... [O]= top parent */ - init: function(parent, domain, context, options) { + init: function(parent, options) { this._super(parent); - this.domain = domain || []; + this.domain = options.domain || []; this.context = _.extend({ default_model: 'mail.thread', default_res_id: 0, - default_parent_id: false }, context || {}); + default_parent_id: false }, options.context || {}); + // options - this.options = { - message_ids: options.message_ids || null, - message_data: options.message_data || null, - thread_level: options.thread_level || 0, - use_composer: options.use_composer || false, - show_header_compose: options.show_header_compose != undefined ? options.show_header_compose: true, - show_record_name: options.show_record_name != undefined ? options.show_record_name: true, - show_reply: options.show_reply || false, - show_reply_by_email: options.show_reply_by_email || false, - show_dd_reply_by_email:options.show_dd_reply_by_email != undefined ? options.show_dd_reply_by_email: true, - show_dd_delete: options.show_dd_delete || false, - show_dd_hide: options.show_dd_hide || false, - show_more: options.show_more || false, - truncate_limit: options.truncate_limit || 250, - } + this.options={ + 'thread' : { + 'thread_level': options.options.thread.thread_level || 0, + 'show_header_compose': (options.options.thread.show_header_compose != undefined ? options.options.thread.show_header_compose: false), + 'use_composer': options.options.thread.use_composer || false, + 'expandable_number': options.options.thread.expandable_number || 5, + 'expandable_default_number': options.options.thread.expandable_default_number || 5, + '_expandable_max': options.options.thread.expandable_default_number || 5, + 'display_on_flat': options.options.thread.display_on_flat || false, + '_parents': (options.options.thread._parents != undefined ? options.options.thread._parents : []).concat( [this] ) + }, + 'message' : options.options.message + }; + + // record options and data + this.parent_linked_message= parent.thread!= undefined ? parent : false ; + + var param = options.parameters // datasets and internal vars - this.records = {}; + this.id= param.id || false; + this.model= param.model || false; + this.parent_id= param.parent_id || false; + + this.messages = []; + this.ds_thread = new session.web.DataSetSearch(this, this.context.default_model); - this.ds_notification = new session.web.DataSetSearch(this, 'mail.notification'); this.ds_message = new session.web.DataSetSearch(this, 'mail.message'); }, start: function() { // TDE TODO: check for deferred, not sure it is correct this._super.apply(this, arguments); - this.bind_events(); + + this.list_ul=this.$('ul.oe_mail_thread_display:first'); + this.more_msg=this.$(">.oe_mail_msg_more_message:first"); + this.display_user_avatar(); - // fetch and display message, using message_ids if set - var display_done = $.when(this.message_fetch(true, [], {})).then(this.proxy('do_customize_display')); + var display_done = compose_done = false; + // add message composition form view - if (this.options.show_header_compose && this.options.use_composer) { - var compose_done = this.instantiate_composition_form(); + compose_done = this.instantiate_composition_form(); + + this.bind_events(); + + if(this.options.thread._parents[0]==this){ + this.on_first_thread(); } + return display_done && compose_done; }, - /** Customize the display - * - show_header_compose: show the composition form in the header */ - do_customize_display: function() { - if (this.options.show_header_compose) { - this.$el.find('div.oe_mail_thread_action').eq(0).show(); - } + /** + * Override-hack of do_action: automatically load message on the chatter. + * Normally it should be called only when clicking on 'Post/Send' + * in the composition form. */ + do_action: function(action, on_close) { + this.instantiate_composition_form(); + this.message_fletch(false, false, false, [action.id]); + return this._super(action, on_close); + }, + + /* this method is runing for first parent thread + */ + on_first_thread: function(){ + // fetch and display message, using message_ids if set + display_done = this.message_fletch(true); + //show the first write message + this.$(">.oe_mail_thread_action").show(); }, /** @@ -319,281 +723,266 @@ openerp.mail = function(session) { * in the function. */ bind_events: function() { var self = this; - // event: click on 'More' at bottom of thread - this.$el.on('click', 'button.oe_mail_button_more', this.do_message_fetch_more); // event: writing in basic textarea of composition form (quick reply) - this.$el.find('textarea.oe_mail_compose_textarea').keyup(function (event) { - var charCode = (event.which) ? event.which : window.event.keyCode; - if (event.shiftKey && charCode == 13) { this.value = this.value+"\n"; } - else if (charCode == 13) { return self.message_post(); } - }); - // event: click on 'Reply' in msg - this.$el.on('click', 'a.oe_mail_msg_reply', function (event) { - var act_dom = $(this).parents('li.oe_mail_thread_msg').eq(0).find('div.oe_mail_thread_action:first'); - act_dom.toggle(); - }); - // event: click on 'Attachment(s)' in msg - this.$el.on('click', 'a.oe_mail_msg_view_attachments', function (event) { - var act_dom = $(this).parent().parent().parent().find('.oe_mail_msg_attachments'); - act_dom.toggle(); - }); - // event: click on 'Delete' in msg side menu - this.$el.on('click', 'a.oe_mail_msg_delete', this.on_message_delete); - // event: click on 'Hide' in msg side menu - this.$el.on('click', 'a.oe_mail_msg_hide', this.on_message_read); - // event: click on 'Reply by email' in msg side menu - this.$el.on('click', 'a.oe_mail_msg_reply_by_email', function (event) { - if (! self.compose_message_widget) return true; - evt = event.target || event.srcElement; - var msg_id = evt.dataset.msg_id; - if (! msg_id) return false; - self.compose_message_widget.refresh({ - 'default_composition_mode': 'reply', - 'default_parent_id': parseInt(msg_id), - 'default_content_subtype': 'html'} ); - }); - // event: click on 'Vote' button - this.$el.on('click', 'button.oe_mail_msg_vote', this.on_vote); + // event: onblur for hide 'Reply' + this.$('.oe_mail_compose_textarea:first textarea') + .keyup(function (event) { + var charCode = (event.which) ? event.which : window.event.keyCode; + if (event.shiftKey && charCode == 13) { this.value = this.value+"\n"; } + else if (charCode == 13) { return self.message_post(); } + }) + .blur(function (event) { + $(this).parents('.oe_mail_thread_action:first').hide(); + }); }, - on_message_delete: function (event) { - if (! confirm(_t("Do you really want to delete this message?"))) { return false; } - var msg_id = event.srcElement.dataset.id; - if (! msg_id) return false; - $(event.srcElement).parents('li.oe_mail_thread_msg').eq(0).remove(); - return this.ds_message.unlink([parseInt(msg_id)]); - }, - - on_message_read: function (event) { - //TDE: TODO - evt = event.target || event.srcElement; - var msg_id = evt.dataset.id; - if (! msg_id) return false; - $(evt).parents('li.oe_mail_thread_msg').eq(0).remove(); - return this.ds_notification.call('set_message_read', [parseInt(msg_id)]); - }, - - on_vote: function (event) { - event.stopPropagation(); - var self = this; - var message_id = $(event.srcElement).parent().data().msg_id; - var vote_node = $(event.srcElement).parents('li').eq(0); - if (! message_id) { return false; } - return this.ds_message.call('vote_toggle', [[parseInt(message_id)]]).pipe( - self.toggle_vote(message_id, vote_node)); - }, - - /** - * Override-hack of do_action: automatically reload the chatter. - * Normally it should be called only when clicking on 'Post/Send' - * in the composition form. */ - do_action: function(action, on_close) { - //TDE: TODO: instead of reloading, push the message ? - this.message_clean(); - this.message_fetch(); - if (this.compose_message_widget) { - this.compose_message_widget.refresh({ - 'default_composition_mode': 'comment', - 'default_parent_id': this.context.default_parent_id, - 'default_content_subtype': 'plain'} ); + /* get all child message/thread id linked + */ + get_child_ids: function(){ + var res=[]; + for(var i in this.messages){ + if(this.messages[i].thread){ + res = res.concat( this.messages[i].get_child_ids(true) ); + } } - // return this._super(action, on_close); + return res; + }, + + /** browse thread + * @param {object}{int} option.id + * @param {object}{string} option.model + * @param {object}{boolean} option._go_thread_wall + * private for check the top thread + * @param {object}{boolean} option.default_return_top_thread + * return the top thread (wall) if no thread found + * @return thread object + */ + browse_thread: function(options){ + // goto the wall thread for launch browse + if(!options._go_thread_wall) { + options._go_thread_wall = true; + return this.options.thread._parents[0].browse_thread(options); + } + + if(this.id==options.id){ + return this; + } + + if(options.id) + for(var i in this.messages){ + if(this.messages[i].thread){ + var res=this.messages[i].thread.browse_thread({'id':options.id, '_go_thread_wall':true}); + if(res) return res; + } + } + + //if option default_return_top_thread, return the top if no found thread + if(options.default_return_top_thread){ + return this; + } + + return false; + }, + + /** browse message + * @param {object}{int} option.id + * @param {object}{string} option.model + * @param {object}{boolean} option._go_thread_wall + * private for check the top thread + * @return thread object + */ + browse_message: function(options){ + if(this.options.thread._parents[0].messages[0]) + return this.options.thread._parents[0].messages[0].browse_message(options); }, /** Instantiate the composition form, with every parameters in context - or in the widget context. */ + * or in the widget context. + * @param {object} + * @param {boolean} show_header_compose, force to instantiate form + */ instantiate_composition_form: function(context) { - if (this.compose_message_widget) { - this.compose_message_widget.destroy(); + // add message composition form view + if ((!context || !context.show_header_compose) && + (!this.options.thread.show_header_compose || !this.options.thread.use_composer || + (this.options.thread.show_header_compose <= this.options.thread._parents.length && this.options.thread._parents[0]!=this))) { + this.$("textarea:first").val(""); + return false; + } + if (this.compose_message_widget) { + this.compose_message_widget.refresh(); + } else { + var context = _.extend(context || {}, this.context); + this.compose_message_widget = new mail.ComposeMessage(this, {'context': context}); + var composition_node = this.$('div.oe_mail_thread_action'); + composition_node.empty(); + return this.compose_message_widget.appendTo(composition_node); } - this.compose_message_widget = new mail.ComposeMessage(this, { - 'context': _.extend(context || {}, this.context), - }); - var composition_node = this.$el.find('div.oe_mail_thread_action'); - composition_node.empty(); - var compose_done = this.compose_message_widget.appendTo(composition_node); - return compose_done; }, - refresh_composition_form: function (context) { - if (! this.compose_message_widget) return; - return this.compose_message_widget.refresh(context); + /* this function is launch when a user click on "Reply" button + */ + on_compose_message: function(full_reply, by_mail){ + if(full_reply){ + this.instantiate_composition_form({'show_header_compose':true}); + } + if(by_mail){ + if (!this.compose_message_widget) return true; + this.compose_message_widget.refresh({ + 'default_composition_mode': 'reply', + 'default_parent_id': this.id, + 'default_content_subtype': 'html'} ); + } + this.$('div.oe_mail_thread_action:first').toggle(); + return false; }, - /** Clean the thread */ - message_clean: function() { - this.$el.find('div.oe_mail_thread_display').empty(); + refresh: function (action_context) { + var self=this; + _(this.messages).each(function(){ self.destroy(); }); + self.message_fletch(); + }, + + /*post a message and fletch the message*/ + message_post: function (body) { + var self = this; + if (! body) { + var comment_node = this.$('textarea'); + var body = comment_node.val(); + comment_node.val(''); + } + if(body.match(/\S+/)) { + this.ds_thread.call('message_post_api', [ + [this.context.default_res_id], body, false, 'comment', false, this.context.default_parent_id, undefined]) + .then(this.proxy('switch_new_message')); + } + else { + return false; + } }, /** Fetch messages * @param {Bool} initial_mode: initial mode: try to use message_data or * message_ids, if nothing available perform a message_read; otherwise * directly perform a message_read - * @param {Array} additional_domain: added to this.domain - * @param {Object} additional_context: added to this.context + * @param {Array} replace_domain: added to this.domain + * @param {Object} replace_context: added to this.context */ - message_fetch: function (initial_mode, additional_domain, additional_context) { + message_fletch: function (initial_mode, replace_domain, replace_context, ids) { var self = this; - // domain and context: options + additional - fetch_domain = _.flatten([this.domain, additional_domain || []], true) - fetch_context = _.extend(this.context, additional_context || {}) + // initial mode: try to use message_data or message_ids - if (initial_mode && this.options.message_data) { - return this.message_display(this.options.message_data); + if (initial_mode && this.options.thread.message_data) { + return this.create_message_object(this.options.message_data); } - message_ids = initial_mode && this.options.message_ids != null && this.options.message_ids || false; - return this.ds_message.call('message_read', [message_ids, fetch_domain, this.options.thread_level, undefined, fetch_context] - ).then(this.proxy('message_display')); + // domain and context: options + additional + fetch_domain = replace_domain ? replace_domain : this.domain; + fetch_context = replace_context ? replace_context : this.context; + fetch_context.message_loaded= [this.id||0].concat( self.options.thread._parents[0].get_child_ids() ); + + return this.ds_message.call('message_read', [ids, fetch_domain, (this.options.thread.thread_level+1), fetch_context, this.context.default_parent_id || undefined] + ).then(this.proxy('switch_new_message')); }, - /* Display a list of records - * A specific case is done for 'expandable' messages that are messages - displayed under a 'show more' button form + /* create record object and linked him */ - message_display: function (records) { + create_message_object: function (message) { var self = this; - var _expendable = false; - _(records).each(function (record) { - if (record.type == 'expandable') { - _expendable = true; - self.update_fetch_more(true); - self.fetch_more_domain = record.domain; - self.fetch_more_context = record.context; + + // check if the message is already create + for(var i in this.messages){ + if(this.messages[i].id==message.id){ + this.messages[i].destroy(); + this.messages[i]=self.insert_message(message); + return true; } - else { - self.display_record(record); - self.thread = new mail.Thread(self, self.domain, - { 'default_model': record.model, - 'default_res_id': record.res_id, - 'default_parent_id': record.id }, - { 'message_data': record.child_ids, - 'thread_level': self.options.thread_level - 1, - 'show_header_compose': false, - 'show_reply': self.options.show_reply && self.options.thread_level > 1, - 'show_reply_by_email': self.options.show_reply_by_email, - 'show_dd_hide': self.options.show_dd_hide, - 'show_dd_delete': self.options.show_dd_delete }); - self.$el.find('li.oe_mail_thread_msg:last').append('
'); - self.thread.appendTo(self.$el.find('div.oe_mail_thread_subthread:last')); - } - }); - if (! _expendable) { - this.update_fetch_more(false); } + + self.messages.push( self.insert_message(message) ); + }, - /** Displays a record and performs some formatting on the record : - * - record.date: formatting according to the user timezone - * - record.timerelative: relative time givein by timeago lib - * - record.avatar: image url - * - record.attachment_ids[].url: url of each attachment */ - display_record: function (record) { - // formatting and additional fields - record.date = session.web.format_value(record.date, {type:"datetime"}); - record.timerelative = $.timeago(record.date); - if (record.type == 'email') { - record.avatar = ('/mail/static/src/img/email_icon.png'); - } else { - record.avatar = mail.ChatterUtils.get_image(this.session, 'res.partner', 'image_small', record.author_id[0]); - } - for (var l in record.attachment_ids) { - var attach = record.attachment_ids[l]; - attach['url'] = mail.ChatterUtils.get_attachment_url(this.session, attach); - } - // add to internal storage - this.records[record.id] = record; - // render, add the expand feature - var rendered = session.web.qweb.render('mail.thread.message', {'record': record, 'thread': this, 'options': this.options}); - $(rendered).appendTo(this.$el.children('div.oe_mail_thread_display:first')); - this.$el.find('div.oe_mail_msg_body').expander({ - slicePoint: this.options.truncate_limit, - expandText: 'read more', - userCollapseText: '[^]', - detailClass: 'oe_mail_msg_tail', - moreClass: 'oe_mail_expand', - lessClass: 'oe_mail_reduce', + /** Displays a message or an expandable message */ + insert_message: function (message) { + var self=this; + + if(message.type=='expandable'){ + var message = new mail.ThreadExpandable(self, { + 'domain': message.domain, + 'context': { + 'default_model': message.model, + 'default_res_id': message.res_id, + 'default_parent_id': message.id }, + 'parameters': message }); - }, - - // Render vote Display template. - toggle_vote: function (message_id, vote_node) { - var self = this; - var record = this.records[message_id]; - if (record.has_voted) { - var idx = _.map(record.vote_user_ids, function (x) { return x[0]; }).indexOf(message_id); - record.vote_user_ids.splice(idx, 1); - } - else { - record.vote_user_ids.push([this.session.uid, 'You']); - } - record.has_voted = ! record.has_voted; - var vote_element = session.web.qweb.render('mail.thread.message.vote', {'record': record}); - vote_node.empty(); - vote_node.html(vote_element); - }, - - /** Display 'show more' button */ - update_fetch_more: function (new_value) { - if (new_value) { - this.$el.find('div.oe_mail_thread_more:last').show(); } else { - this.$el.find('div.oe_mail_thread_more:last').hide(); + var message = new mail.ThreadMessage(self, { + 'domain': message.domain, + 'context': { + 'default_model': message.model, + 'default_res_id': message.res_id, + 'default_parent_id': message.id }, + 'options':{ + 'thread': self.options.thread, + 'message': self.options.message + }, + 'parameters': message + }); + } + + var thread = self.options.thread.display_on_flat ? self.options.thread._parents[0] : this; + + // check older and newer message for insert + var parent_newer = false; + var parent_older = false; + for(var i in thread.messages){ + if(thread.messages[i].id > message.id){ + if(!parent_newer || parent_newer.id>thread.messages[i].id) + parent_newer = thread.messages[i]; + } else if(thread.messages[i].id>0 && thread.messages[i].id < message.id) { + if(!parent_older || parent_older.idthis.options._expandable_max){ + this.list_ul.find('>li:gt('+(this.options._expandable_max-1)+')').hide(); + this.more_msg.show(); + } else { + this.list_ul.find('>li').show(); + this.more_msg.hide(); } }, display_user_avatar: function () { var avatar = mail.ChatterUtils.get_image(this.session, 'res.users', 'image_small', this.session.uid); - return this.$el.find('img.oe_mail_icon').attr('src', avatar); + return this.$('img.oe_mail_icon').attr('src', avatar); }, - message_post: function (body) { - var self = this; - if (! body) { - var comment_node = this.$el.find('textarea'); - var body = comment_node.val(); - comment_node.val(''); - } - return this.ds_thread.call('message_post', [ - [this.context.default_res_id], body, false, 'comment', this.context.default_parent_id, undefined] - ).then(self.message_fetch()); + /* Send the records to his parent thread */ + switch_new_message: function(records) { + var self=this; + _(records).each(function(record){ + self.browse_thread({ + 'id': record.parent_id, + 'default_return_top_thread':true + }).create_message_object( record ); + }); }, - - /** Action: 'shows more' to fetch new messages */ - do_message_fetch_more: function () { - return this.message_fetch(false, this.fetch_more_domain, this.fetch_more_context); - }, - - // TDE: keep currently because need something similar - // /** - // * Create a domain to fetch new comments according to - // * comment already present in comments_structure - // * @param {Object} comments_structure (see chatter utils) - // * @returns {Array} fetch_domain (OpenERP domain style) - // */ - // get_fetch_domain: function (comments_structure) { - // var domain = []; - // var ids = comments_structure.root_ids.slice(); - // var ids2 = []; - // // must be child of current parent - // if (this.options.parent_id) { domain.push(['id', 'child_of', this.options.parent_id]); } - // _(comments_structure.root_ids).each(function (id) { // each record - // ids.push(id); - // ids2.push(id); - // }); - // if (this.options.parent_id != false) { - // ids2.push(this.options.parent_id); - // } - // // must not be children of already fetched messages - // if (ids.length > 0) { - // domain.push('&'); - // domain.push('!'); - // domain.push(['id', 'child_of', ids]); - // } - // if (ids2.length > 0) { - // domain.push(['id', 'not in', ids2]); - // } - // return domain; - // }, }); @@ -632,7 +1021,7 @@ openerp.mail = function(session) { var self = this; this._super.apply(this, arguments); if (! this.view.datarecord.id || session.web.BufferedDataSet.virtual_id_regex.test(this.view.datarecord.id)) { - this.$el.find('oe_mail_thread').hide(); + this.$('oe_mail_thread').hide(); return; } // update context @@ -644,14 +1033,31 @@ openerp.mail = function(session) { // create and render Thread widget var show_header_compose = this.view.is_action_enabled('edit') || (this.getParent().fields.message_is_follower && this.getParent().fields.message_is_follower.get_value()); - this.$el.find('div.oe_mail_recthread_main').empty(); - var thread = new mail.Thread(self, domain, this.options.context, - { 'thread_level': this.options.thread_level, - 'show_header_compose': show_header_compose, - 'use_composer': show_header_compose, - 'show_dd_delete': true, - 'show_reply_by_email': show_header_compose }); - return thread.appendTo(this.$el.find('div.oe_mail_recthread_main')); + + this.thread = new mail.Thread(self, { + 'domain': domain, + 'context': this.options.context, + 'options':{ + 'thread':{ + 'thread_level': this.options.thread_level, + 'show_header_compose': show_header_compose, + 'use_composer': show_header_compose, + 'display_on_flat':true + }, + 'message':{ + 'show_dd_delete': true, + 'show_reply_by_email': show_header_compose, + } + }, + 'parameters': {}, + } + ); + + this.$('ul.oe_mail_wall_threads').empty(); + var render_res = session.web.qweb.render('mail.wall_thread_container', {}); + $(render_res).appendTo(this.$('ul.oe_mail_wall_threads')); + + return this.thread.appendTo( this.$('li.oe_mail_wall_thread:last') ); }, }); @@ -703,7 +1109,7 @@ openerp.mail = function(session) { load_searchview: function (defaults, hidden) { var self = this; this.searchview = new session.web.SearchView(this, this.ds_msg, false, defaults || {}, hidden || false); - return this.searchview.appendTo(this.$el.find('.oe_view_manager_view_search')).then(function () { + return this.searchview.appendTo(this.$('.oe_view_manager_view_search')).then(function () { self.searchview.on_search.add(self.do_searchview_search); }); }, @@ -724,25 +1130,41 @@ openerp.mail = function(session) { }, function (results) { self.search_results['context'] = results.context; self.search_results['domain'] = results.domain; - self.search_results['groupby'] = results.group_by; + self.thread.destroy(); return self.message_render(); }); }, /** Clean and display the threads */ - message_render: function () { - this.$el.find('ul.oe_mail_wall_threads').empty(); + message_render: function (search) { var domain = this.options.domain.concat(this.search_results['domain']); - var render_res = session.web.qweb.render('mail.wall_thread_container', {}); - $(render_res).appendTo(this.$el.find('ul.oe_mail_wall_threads')); - var thread = new mail.Thread(this, domain, this.options.context, - { 'thread_level': this.options.thread_level, - 'use_composer': true, - 'show_reply': this.options.thread_level > 0, - 'show_dd_hide': true, + + var domain = _.extend(this.options.domain, search&&search.domain? search.domain : {}); + var context = _.extend(this.options.context, search&&search.context ? search.context : {}); + + this.thread = new mail.Thread(this, { + 'domain' : domain, + 'context' : context, + 'options': { + 'thread' :{ + 'thread_level': this.options.thread_level, + 'use_composer': true, + 'show_header_compose': 1, + }, + 'message': { + 'show_reply': this.options.thread_level > 0, + 'show_dd_hide': true, + }, + }, + 'parameters': {}, } ); - return thread.appendTo(this.$el.find('li.oe_mail_wall_thread:last')); + + this.$('ul.oe_mail_wall_threads').empty(); + var render_res = session.web.qweb.render('mail.wall_thread_container', {}); + $(render_res).appendTo(this.$('ul.oe_mail_wall_threads')); + + return this.thread.appendTo( this.$('li.oe_mail_wall_thread:last') ); }, }); }; diff --git a/addons/mail/static/src/js/mail_followers.js b/addons/mail/static/src/js/mail_followers.js index 743c4704330..953b8cd9fc8 100644 --- a/addons/mail/static/src/js/mail_followers.js +++ b/addons/mail/static/src/js/mail_followers.js @@ -29,7 +29,9 @@ openerp_mail_followers = function(session, mail) { this.options.context = this.node.attrs.context; this.options.comment = this.node.attrs.help || false; this.ds_model = new session.web.DataSetSearch(this, this.view.model); + this.sub_model = new session.web.DataSetSearch(this,'mail.message.subtype'); this.ds_follow = new session.web.DataSetSearch(this, this.field.relation); + this.follower_model = new session.web.DataSetSearch(this,'mail.followers'); }, start: function() { @@ -51,11 +53,33 @@ openerp_mail_followers = function(session, mail) { bind_events: function() { var self = this; - this.$('button.oe_mail_button_unfollow').on('click', function () { self.do_unfollow(); }) - .mouseover(function () { $(this).html('Unfollow').removeClass('oe_mail_button_mouseout').addClass('oe_mail_button_mouseover'); }) - .mouseleave(function () { $(this).html('Following').removeClass('oe_mail_button_mouseover').addClass('oe_mail_button_mouseout'); }); - this.$el.on('click', 'button.oe_mail_button_follow', function () { self.do_follow(); }); - this.$el.on('click', 'a.oe_mail_invite', function(event) { + this.$('div.oe_mouse_subtypes') + .on('mouseover', function () { + $(this).removeClass('oe_mouseout').addClass('oe_mouseover'); + self.display_subtypes(); + }) + .on('mouseleave', function () { + $(this).removeClass('oe_mouseover').addClass('oe_mouseout'); + self.display_subtypes(); + }); + + this.$('button.oe_follower') + .on('click', function () { + if($(this).hasClass('oe_notfollow')) + self.do_follow(); + else + self.do_unfollow(); + }) + .on('mouseover', function () { + $(this).removeClass('oe_mouseout').addClass('oe_mouseover'); + }) + .on('mouseleave', function () { + $(this).removeClass('oe_mouseover').addClass('oe_mouseout'); + }); + + this.$el.on('click', 'ul.oe_subtypes input', function () { self.do_update_subscription(); }) + + this.$el.on('click', 'button.oe_invite', function(event) { action = { type: 'ir.actions.act_window', res_model: 'mail.wizard.invite', @@ -74,28 +98,35 @@ openerp_mail_followers = function(session, mail) { read_value: function() { var self = this; - return this.ds_model.read_ids([this.view.datarecord.id], ['message_is_follower', 'message_follower_ids']).then(function (results) { - self.set_value(results[0].message_follower_ids, results[0].message_is_follower); + return this.ds_model.read_ids([this.view.datarecord.id], ['message_follower_ids']).pipe(function (results) { + self.set_value(results[0].message_follower_ids); }); }, - set_value: function(value_, message_is_follower) { + set_value: function(value_) { this.reinit(); - if (! this.view.datarecord.id || - session.web.BufferedDataSet.virtual_id_regex.test(this.view.datarecord.id)) { - this.$('div.oe_mail_recthread_aside').hide(); - return; + return this.fetch_followers(value_ || this.get_value()); + }, + + set_is_follower: function(value_) { + for(var i in value_){ + if(value_[i]['user_ids'][0]==this.session.uid) + this.message_is_follower=true; + this.display_buttons(); + return true; } - return this.fetch_followers(value_ || this.get_value(), message_is_follower); + this.message_is_follower=false; + this.display_buttons(); + return false; }, - fetch_followers: function (value_, message_is_follower) { - this.value = value_; - this.message_is_follower = message_is_follower || (this.getParent().fields.message_is_follower && this.getParent().fields.message_is_follower.get_value()); - return this.ds_follow.call('read', [value_, ['name', 'user_ids']]).pipe(this.proxy('display_followers'), this.proxy('display_generic')); + fetch_followers: function (value_) { + this.value = value_ || {}; + this.message_is_follower = (this.getParent().fields.message_is_follower && this.getParent().fields.message_is_follower.get_value()); + if(value_) + return this.ds_follow.call('read', [this.value, ['name', 'user_ids']]).pipe(this.proxy('display_followers'), this.proxy('display_generic')); }, - /* Display generic info about follower, for people not having access to res_partner */ display_generic: function (error, event) { event.preventDefault(); @@ -117,32 +148,88 @@ openerp_mail_followers = function(session, mail) { display_followers: function (records) { var self = this; var node_user_list = this.$('ul.oe_mail_followers_display').empty(); - this.$('div.oe_mail_recthread_followers h4').html(this.options.title + ' (' + records.length + ')'); - _(records).each(function (record) { + this.$('div.oe_mail_recthread_followers h4').html(this.options.title + (records.length>=5 ? ' (' + records.length + ')' : '') ); + console.log(records); + for(var i=0; i -
+
-
+
    -
+
-
+
User img
-