diff --git a/addons/account/account_unit_test.xml b/addons/account/account_unit_test.xml
index 95b0a544c62..77b461a6fdd 100644
--- a/addons/account/account_unit_test.xml
+++ b/addons/account/account_unit_test.xml
@@ -1,6 +1,6 @@
-
+
@@ -44,14 +44,14 @@
open
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml
index aeb7172aafc..c241fe8063d 100644
--- a/addons/account/account_view.xml
+++ b/addons/account/account_view.xml
@@ -1760,8 +1760,6 @@
-
-
diff --git a/addons/account/board_account_demo.xml b/addons/account/board_account_demo.xml
index 98eb64cb411..cfcebdbcdf1 100644
--- a/addons/account/board_account_demo.xml
+++ b/addons/account/board_account_demo.xml
@@ -5,16 +5,16 @@
Administrator shortcut
Demo user startup menu
-->
-
+
-
+
diff --git a/addons/account/configurable_account_chart.xml b/addons/account/configurable_account_chart.xml
index 658cf2907af..b9e063dc509 100644
--- a/addons/account/configurable_account_chart.xml
+++ b/addons/account/configurable_account_chart.xml
@@ -1,72 +1,72 @@
-
+
-
-
- Receivable
- receivable
- unreconciled
-
+
+
+ Receivable
+ receivable
+ unreconciled
+
-
- Payable
- payable
- unreconciled
-
+
+ Payable
+ payable
+ unreconciled
+
-
- View
- view
- none
-
+
+ View
+ view
+ none
+
-
- Income
- income
- none
-
+
+ Income
+ income
+ none
+
-
- Expense
- expense
- none
-
+
+ Expense
+ expense
+ none
+
-
- Tax
- tax
- unreconciled
-
+
+ Tax
+ tax
+ unreconciled
+
-
- Cash
- cash
- balance
-
+
+ Cash
+ cash
+ balance
+
-
- Asset
- asset
- balance
-
+
+ Asset
+ asset
+ balance
+
-
- Equity
- equity
- balance
-
+
+ Equity
+ equity
+ balance
+
-
- Bank
- bank
- balance
-
-
- Check
- check
- balance
-
+
+ Bank
+ bank
+ balance
+
+
+ Check
+ check
+ balance
+
@@ -82,7 +82,7 @@
- 1
+ 1
Balance Sheet
view
@@ -90,7 +90,7 @@
- 10
+ 10
Fixed Assets
view
@@ -98,7 +98,7 @@
- 100
+ 100
Fixed Asset Account
other
@@ -106,7 +106,7 @@
- 11
+ 11
Net Current Assets
view
@@ -114,9 +114,9 @@
- 110
+ 110
Current Assets
-
+
view
@@ -143,7 +143,7 @@
-->
- 1103
+ 1103
Output VAT
other
@@ -151,7 +151,7 @@
- 1104
+ 1104
Bank Current Account
view
@@ -167,7 +167,7 @@
- 111
+ 111
Current Liabilities
view
@@ -188,7 +188,7 @@
-->
- 1112
+ 1112
Input VAT
other
@@ -198,7 +198,7 @@
- 2
+ 2
Profit and Loss
view
@@ -206,7 +206,7 @@
- 20
+ 20
Revenue
view
@@ -226,7 +226,7 @@
-->
- 21
+ 21
Cost of Sales
view
@@ -242,7 +242,7 @@
- 22
+ 22
Overheads
view
@@ -381,22 +381,22 @@
-
+
Configurable Account Chart Template
-
+
-
+
-
+
IVAT S
percent
@@ -410,7 +410,7 @@
-
+
IVAT R
percent
@@ -424,7 +424,7 @@
-
+
IVAT Z
percent
@@ -434,7 +434,7 @@
-
+
IVAT X
percent
@@ -444,7 +444,7 @@
-
+
IVAT O
percent
@@ -456,7 +456,7 @@
-
+
OVAT S
percent
@@ -470,7 +470,7 @@
-
+
OVAT R
percent
@@ -484,7 +484,7 @@
-
+
OVAT Z
percent
@@ -494,7 +494,7 @@
-
+
OVAT X
percent
@@ -504,7 +504,7 @@
-
+
OVAT O
percent
diff --git a/addons/account/i18n/es.po b/addons/account/i18n/es.po
index 4779ae32dd5..f576c8ffa45 100644
--- a/addons/account/i18n/es.po
+++ b/addons/account/i18n/es.po
@@ -7,14 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-06-23 17:24+0000\n"
-"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
-"\n"
+"PO-Revision-Date: 2010-06-24 10:03+0000\n"
+"Last-Translator: Borja López Soilán (Pexego) \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:57+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@@ -806,7 +805,7 @@ msgstr "Cuenta de la empresa"
#. module: account
#: wizard_view:account.subscription.generate,init:0
msgid "Generate entries before:"
-msgstr "Generar asientos antes:"
+msgstr "Generar asientos hasta:"
#. module: account
#: rml:account.analytic.account.cost_ledger:0
@@ -3680,7 +3679,7 @@ msgstr ""
#: wizard_field:account.invoice.pay,addendum,comment:0
#: wizard_field:account.invoice.pay,init,name:0
msgid "Entry Name"
-msgstr "Núm. asiento"
+msgstr "Descripción"
#. module: account
#: help:account.invoice,account_id:0
diff --git a/addons/account/i18n/et.po b/addons/account/i18n/et.po
index 48ddc147633..c99f2249ff4 100644
--- a/addons/account/i18n/et.po
+++ b/addons/account/i18n/et.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-05-09 18:34+0000\n"
+"PO-Revision-Date: 2010-06-25 18:22+0000\n"
"Last-Translator: lyyser \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-22 04:04+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:57+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@@ -466,7 +466,7 @@ msgstr "Panga võrdlus"
#. module: account
#: rml:account.invoice:0
msgid "Disc.(%)"
-msgstr ""
+msgstr "Allah. (%)"
#. module: account
#: rml:account.general.ledger:0
@@ -732,7 +732,7 @@ msgstr "Välja nimi"
#: field:account.tax.code,sign:0
#: field:account.tax.code.template,sign:0
msgid "Sign for parent"
-msgstr ""
+msgstr "Logi vanemana"
#. module: account
#: field:account.fiscalyear,end_journal_period_id:0
diff --git a/addons/account/i18n/gl.po b/addons/account/i18n/gl.po
index 9ae3edbd1f1..28939b7d6ac 100644
--- a/addons/account/i18n/gl.po
+++ b/addons/account/i18n/gl.po
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-05-14 17:04+0000\n"
+"PO-Revision-Date: 2010-06-24 09:57+0000\n"
"Last-Translator: Borja López Soilán (Pexego) \n"
"Language-Team: Galician \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-22 04:04+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:57+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
@@ -2047,7 +2047,7 @@ msgstr ""
#. module: account
#: field:account.journal,invoice_sequence_id:0
msgid "Invoice Sequence"
-msgstr ""
+msgstr "Secuencia de factura"
#. module: account
#: wizard_view:account.automatic.reconcile,init:0
@@ -3597,7 +3597,7 @@ msgstr ""
#: wizard_field:account.invoice.pay,addendum,comment:0
#: wizard_field:account.invoice.pay,init,name:0
msgid "Entry Name"
-msgstr ""
+msgstr "Descripción"
#. module: account
#: help:account.invoice,account_id:0
@@ -5064,7 +5064,7 @@ msgstr ""
#. module: account
#: model:ir.model,name:account.model_fiscalyear_seq
msgid "Maintains Invoice sequences with Fiscal Year"
-msgstr ""
+msgstr "Mantén secuencias de facturas con exercicio fiscal"
#. module: account
#: selection:account.account.balance.report,checktype,display_account:0
diff --git a/addons/account/i18n/zh_CN.po b/addons/account/i18n/zh_CN.po
index 99660f05218..7dba566772d 100644
--- a/addons/account/i18n/zh_CN.po
+++ b/addons/account/i18n/zh_CN.po
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account
diff --git a/addons/account/report/account_balance_landscape.rml b/addons/account/report/account_balance_landscape.rml
old mode 100755
new mode 100644
diff --git a/addons/account/report/account_invoice_report_view.xml b/addons/account/report/account_invoice_report_view.xml
index 448f2abaf6d..e3f1321d02f 100644
--- a/addons/account/report/account_invoice_report_view.xml
+++ b/addons/account/report/account_invoice_report_view.xml
@@ -18,8 +18,6 @@
-
-
@@ -29,6 +27,8 @@
+
+
@@ -57,31 +57,31 @@
-
-
-
-
+
+
+
+
-
-
-
+
+
+
@@ -89,14 +89,14 @@
+ string="My Invoices"
+ help="My Invoices"
+ domain="[('user_id','=',uid)]"/>
-
-
+
+
-
+
@@ -111,9 +111,9 @@
-
-
-
+
+
+
@@ -139,11 +139,19 @@
account.invoice.report
form
tree,graph
- {'search_default_month':1,'search_default_User':1,'group_by_no_leaf':1,'group_by':[]}
+ {'search_default_month':1,'search_default_product':1,'group_by_no_leaf':1,'group_by':[]}
+
+
diff --git a/addons/account/report/compare_account_balance.rml b/addons/account/report/compare_account_balance.rml
old mode 100755
new mode 100644
diff --git a/addons/account/report/voucher_print.py b/addons/account/report/voucher_print.py
old mode 100755
new mode 100644
diff --git a/addons/account/report/voucher_print.rml b/addons/account/report/voucher_print.rml
old mode 100755
new mode 100644
diff --git a/addons/account/security/account_security.xml b/addons/account/security/account_security.xml
index 67f3bf65f61..391d7371bbe 100644
--- a/addons/account/security/account_security.xml
+++ b/addons/account/security/account_security.xml
@@ -1,4 +1,5 @@
-
+
+
Finance / Invoice
diff --git a/addons/account_budget/i18n/es.po b/addons/account_budget/i18n/es.po
index 22fe5f58d28..5dff8e386d5 100644
--- a/addons/account_budget/i18n/es.po
+++ b/addons/account_budget/i18n/es.po
@@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_budget
diff --git a/addons/account_chart/account_chart.xml b/addons/account_chart/account_chart.xml
index 0a887345ea9..13935f46763 100644
--- a/addons/account_chart/account_chart.xml
+++ b/addons/account_chart/account_chart.xml
@@ -1,7 +1,7 @@
-
-
+
+
@@ -21,6 +21,6 @@
-
+
diff --git a/addons/account_coda/i18n/es.po b/addons/account_coda/i18n/es.po
new file mode 100644
index 00000000000..16ee0e94aab
--- /dev/null
+++ b/addons/account_coda/i18n/es.po
@@ -0,0 +1,167 @@
+# Spanish translation for openobject-addons
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2009-11-24 13:11+0000\n"
+"PO-Revision-Date: 2010-06-24 09:42+0000\n"
+"Last-Translator: Borja López Soilán (Pexego) \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: 2010-06-26 03:58+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: account_coda
+#: field:account.coda,journal_id:0
+#: wizard_field:account.coda_import,init,journal_id:0
+msgid "Bank Journal"
+msgstr "Diario bancario"
+
+#. module: account_coda
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+"¡El objeto debe empezar con x_ y no puede contener ningún carácter especial!"
+
+#. module: account_coda
+#: wizard_field:account.coda_import,extraction,note:0
+msgid "Log"
+msgstr "Registro"
+
+#. module: account_coda
+#: wizard_button:account.coda_import,extraction,open:0
+msgid "_Open Statement"
+msgstr ""
+
+#. module: account_coda
+#: model:ir.module.module,shortdesc:account_coda.module_meta_information
+msgid "Account CODA"
+msgstr ""
+
+#. module: account_coda
+#: field:account.coda,name:0
+msgid "Coda file"
+msgstr ""
+
+#. module: account_coda
+#: wizard_view:account.coda_import,init:0
+msgid "Clic on 'New' to select your file :"
+msgstr ""
+
+#. module: account_coda
+#: model:ir.actions.wizard,name:account_coda.wizard_account_coda_import
+msgid "Import Coda File"
+msgstr ""
+
+#. module: account_coda
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Nombre de modelo inválido en la definición de acción."
+
+#. module: account_coda
+#: field:account.coda,note:0
+msgid "Import log"
+msgstr "Registro de importación"
+
+#. module: account_coda
+#: wizard_field:account.coda_import,init,def_receivable:0
+msgid "Default receivable Account"
+msgstr "Cuenta a recibir por defecto"
+
+#. module: account_coda
+#: model:ir.module.module,description:account_coda.module_meta_information
+msgid ""
+"Module provides functionality to import\n"
+" bank statements from .csv file.\n"
+" Import coda file wizard is used to import bank statements."
+msgstr ""
+
+#. module: account_coda
+#: wizard_button:account.coda_import,extraction,end:0
+msgid "_Close"
+msgstr "_Cerrar"
+
+#. module: account_coda
+#: field:account.coda,statement_id:0
+msgid "Generated Bank Statement"
+msgstr "Extracto bancario generado"
+
+#. module: account_coda
+#: view:account.coda:0
+#: model:ir.actions.act_window,name:account_coda.act_account_payment_account_bank_statement
+#: model:ir.actions.act_window,name:account_coda.action_account_coda
+msgid "Coda import"
+msgstr ""
+
+#. module: account_coda
+#: field:account.coda,user_id:0
+msgid "User"
+msgstr "Usuario"
+
+#. module: account_coda
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "¡XML inválido para la estructura de la vista!"
+
+#. module: account_coda
+#: model:ir.model,name:account_coda.model_account_coda
+msgid "coda for an Account"
+msgstr ""
+
+#. module: account_coda
+#: wizard_field:account.coda_import,init,def_payable:0
+msgid "Default Payable Account"
+msgstr "Cuenta a pagar por defecto"
+
+#. module: account_coda
+#: model:ir.ui.menu,name:account_coda.menu_account_coda
+msgid "Coda Statements"
+msgstr ""
+
+#. module: account_coda
+#: model:ir.ui.menu,name:account_coda.menu_account_coda_wizard
+msgid "Import Coda Statements"
+msgstr ""
+
+#. module: account_coda
+#: wizard_button:account.coda_import,init,extraction:0
+msgid "_Ok"
+msgstr "_Aceptar"
+
+#. module: account_coda
+#: wizard_view:account.coda_import,extraction:0
+#: wizard_view:account.coda_import,init:0
+msgid "Import Coda Statement"
+msgstr ""
+
+#. module: account_coda
+#: field:account.bank.statement,coda_id:0
+msgid "Coda"
+msgstr ""
+
+#. module: account_coda
+#: wizard_view:account.coda_import,extraction:0
+msgid "Results :"
+msgstr "Resultados :"
+
+#. module: account_coda
+#: wizard_field:account.coda_import,init,coda:0
+msgid "Coda File"
+msgstr ""
+
+#. module: account_coda
+#: field:account.coda,date:0
+msgid "Import Date"
+msgstr "Fecha de importación"
+
+#. module: account_coda
+#: wizard_view:account.coda_import,init:0
+msgid "Select your bank journal :"
+msgstr "Seleccione su diario bancario :"
diff --git a/addons/account_followup/wizard/account_followup_print_view.xml b/addons/account_followup/wizard/account_followup_print_view.xml
index 021fc52f63c..9e0c34c8bf5 100644
--- a/addons/account_followup/wizard/account_followup_print_view.xml
+++ b/addons/account_followup/wizard/account_followup_print_view.xml
@@ -1,6 +1,6 @@
-
+
-
+
account.followup.print.form
account.followup.print
form
-
+
@@ -42,7 +42,7 @@
new
-
+
Send followups
@@ -60,61 +60,61 @@
-
+
account.followup.print.all.form
account.followup.print.all
form
-
+
-
+
account.followup.print.all.msg.form
account.followup.print.all
form
-
+
@@ -128,5 +128,5 @@
-
-
\ No newline at end of file
+
+
diff --git a/addons/account_payment/i18n/es.po b/addons/account_payment/i18n/es.po
index 96b1e86eeb9..a874084f3f3 100644
--- a/addons/account_payment/i18n/es.po
+++ b/addons/account_payment/i18n/es.po
@@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: account_payment
diff --git a/addons/analytic/analytic.py b/addons/analytic/analytic.py
index f52dd23caa0..77a881744bc 100644
--- a/addons/analytic/analytic.py
+++ b/addons/analytic/analytic.py
@@ -153,13 +153,15 @@ class account_analytic_account(osv.osv):
def name_get(self, cr, uid, ids, context={}):
if not len(ids):
return []
- reads = self.read(cr, uid, ids, ['name','parent_id'], context)
res = []
- for record in reads:
- name = record['name']
- if record['parent_id']:
- name = record['parent_id'][1]+' / '+name
- res.append((record['id'], name))
+ for account in self.browse(cr, uid, ids, context=context):
+ data = []
+ acc = account
+ while acc:
+ data.insert(0, acc.name)
+ acc = acc.parent_id
+ data = ' / '.join(data)
+ res.append((account.id, data))
return res
def _complete_name_calc(self, cr, uid, ids, prop, unknow_none, unknow_dict):
@@ -197,7 +199,7 @@ class account_analytic_account(osv.osv):
'date': fields.date('Date End'),
'company_id': fields.many2one('res.company', 'Company', required=True),
'company_currency_id': fields.function(_get_company_currency, method=True, type='many2one', relation='res.currency', string='Currency'),
- 'state': fields.selection([('draft','Draft'),('open','Open'), ('pending','Pending'),('cancelled', 'Cancelled'),('close','Closed'),('template', 'Template')], 'State', required=True,readonly=True,
+ 'state': fields.selection([('draft','Draft'),('open','Open'), ('pending','Pending'),('cancelled', 'Cancelled'),('close','Closed'),('template', 'Template')], 'State', required=True,
help='* When an account is created its in \'Draft\' state.\
\n* If any associated partner is there, it can be in \'Open\' state.\
\n* If any pending balance is there it can be in \'Pending\'. \
@@ -314,7 +316,7 @@ class account_analytic_line(osv.osv):
_columns = {
'name' : fields.char('Description', size=256, required=True),
- 'date' : fields.date('Date', required=True),
+ 'date' : fields.date('Date', required=True, select=1),
'amount' : fields.float('Amount', required=True, help='Calculated by multiplying the quantity and the price given in the Product\'s cost price.'),
'unit_amount' : fields.float('Quantity', help='Specifies the amount of quantity to count.'),
'account_id' : fields.many2one('account.analytic.account', 'Analytic Account', required=True, ondelete='cascade', select=True),
diff --git a/addons/auction/auction_sequence.xml b/addons/auction/auction_sequence.xml
index a25bbfe8c1a..6cd27d256f3 100644
--- a/addons/auction/auction_sequence.xml
+++ b/addons/auction/auction_sequence.xml
@@ -2,30 +2,30 @@
- #
- # Sequences for sale.order
- #
+ #
+ # Sequences for sale.order
+ #
-
- Auction deposit
- auction.deposit
-
-
- Auction deposit
- auction.deposit
- AD/
- 3
-
-
- Auction bid
- auction.bid
-
-
- Auction bid
- auction.bid
- bid/
- 3
-
+
+ Auction deposit
+ auction.deposit
+
+
+ Auction deposit
+ auction.deposit
+ AD/
+ 3
+
+
+ Auction bid
+ auction.bid
+
+
+ Auction bid
+ auction.bid
+ bid/
+ 3
+
diff --git a/addons/auction/board_auction_demo.xml b/addons/auction/board_auction_demo.xml
index 504a02263da..f260f8bb1fc 100644
--- a/addons/auction/board_auction_demo.xml
+++ b/addons/auction/board_auction_demo.xml
@@ -2,13 +2,13 @@
-
- Auction dashboard
-
- ir.ui.menu
- 4
-
-
+
+
+
+
+
+
+
diff --git a/addons/auction/i18n/el.po b/addons/auction/i18n/el.po
index ee0853b10fc..659ea3aff63 100644
--- a/addons/auction/i18n/el.po
+++ b/addons/auction/i18n/el.po
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-06-24 02:48+0000\n"
+"PO-Revision-Date: 2010-06-26 01:08+0000\n"
"Last-Translator: Panayiotis Konstantinidis \n"
"Language-Team: Greek \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: auction
@@ -182,7 +182,7 @@ msgstr "ΦΠΑ"
#. module: auction
#: view:auction.lots:0
msgid "Statements"
-msgstr ""
+msgstr "Καταστάσεις"
#. module: auction
#: xsl:flagey.huissier:0
@@ -244,33 +244,34 @@ msgstr "Σύγχρονη Τέχνη"
#: view:auction.lots:0
#: view:report.unclassified.objects:0
msgid "Ref"
-msgstr ""
+msgstr "Αναφορά"
#. module: auction
#: field:report.auction.view,nseller:0
msgid "No of sellers"
-msgstr ""
+msgstr "Αριθμός πωλητών"
#. module: auction
#: selection:auction.lots.send.aie,date_ask,lang:0
msgid "ned"
-msgstr ""
+msgstr "Κανονική ισοδύναμη απόκλιση"
#. module: auction
#: constraint:hr.attendance:0
msgid "Error: Sign in (resp. Sign out) must follow Sign out (resp. Sign in)"
msgstr ""
+"Σφάλμα: Η Είσοδος (ή Έξοδος) πρέπει να ακολουθείται από Έξοδο (Είσοδο)"
#. module: auction
#: view:auction.lots:0
#: field:report.buyer.auction,total_price:0
msgid "Total Adj."
-msgstr ""
+msgstr "Συνολική προσαρμογή"
#. module: auction
#: field:report.auction.view2,obj_margin_procent:0
msgid "Net margin (%)"
-msgstr ""
+msgstr "Καθαρό περιθώριο (%)"
#. module: auction
#: selection:auction.lots,state:0
@@ -278,28 +279,28 @@ msgstr ""
#: selection:report.seller.auction,state:0
#: selection:report.unclassified.objects,state:0
msgid "Unsold"
-msgstr ""
+msgstr "Αδιάθετο"
#. module: auction
#: view:auction.dates:0
msgid "Dates"
-msgstr ""
+msgstr "Ημερομηνίες"
#. module: auction
#: constraint:product.template:0
msgid "Error: UOS must be in a different category than the UOM"
-msgstr ""
+msgstr "Error: UOS must be in a different category than the UOM"
#. module: auction
#: rml:auction.total.rml:0
msgid "Items"
-msgstr ""
+msgstr "Αντικείμενα"
#. module: auction
#: model:account.tax,name:auction.auction_tax5
#: field:auction.dates,seller_costs:0
msgid "Seller Costs"
-msgstr ""
+msgstr "Έξοδα πωλητών"
#. module: auction
#: view:auction.bid:0
@@ -309,75 +310,75 @@ msgstr ""
#: model:ir.actions.report.xml,name:auction.bid_auction
#: model:ir.ui.menu,name:auction.menu_action_bid_open
msgid "Bids"
-msgstr ""
+msgstr "Προσφορές"
#. module: auction
#: model:ir.ui.menu,name:auction.auction_all_objects_menu
msgid "All objects"
-msgstr ""
+msgstr "Όλα τα αντικείμενα"
#. module: auction
#: model:ir.actions.act_window,name:auction.action_auction_buyer_reporting_all2
msgid "Buyer's auction for all months"
-msgstr ""
+msgstr "Πληστηριασμοί αγοραστή για όλους τους μήνες"
#. module: auction
#: field:auction.bid,contact_tel:0
msgid "Contact"
-msgstr ""
+msgstr "Επικοινωνία"
#. module: auction
#: field:report.auction.view,obj_ret:0
#: field:report.object.encoded,obj_ret:0
#: field:report.object.encoded.manager,obj_ret:0
msgid "# obj ret"
-msgstr ""
+msgstr "Αριθμός αντικειμένων που επεστράφησαν"
#. module: auction
#: wizard_button:auction.lots.sms_send,init,send:0
msgid "Send SMS"
-msgstr ""
+msgstr "Αποστολή SMS"
#. module: auction
#: selection:auction.lot.category,aie_categ:0
msgid "Cont. Art/Painting"
-msgstr ""
+msgstr "Cont. Τέχνη/Ζωγραφική"
#. module: auction
#: field:auction.lots,sel_inv_id:0
msgid "Seller Invoice"
-msgstr ""
+msgstr "Τιμολόγιο πωλητή"
#. module: auction
#: view:auction.dates:0
msgid "Commissions"
-msgstr ""
+msgstr "Προμήθειες"
#. module: auction
#: wizard_button:auction.lots.numerotate,search,init:0
msgid "Back"
-msgstr ""
+msgstr "Πίσω"
#. module: auction
#: model:ir.actions.act_window,name:auction.action_all_objects_unsold
msgid "Unsold objects"
-msgstr ""
+msgstr "Αδιάθετα αντικείμενα"
#. module: auction
#: model:ir.ui.menu,name:auction.menu_all_objects_sold1
msgid "Sold Objects"
-msgstr ""
+msgstr "Πουλημένα αντικείμενα"
#. module: auction
#: view:report.buyer.auction2:0
#: view:report.seller.auction2:0
msgid "Sum net margin"
-msgstr ""
+msgstr "Σύνολο καθαρού περιθωρίου"
#. module: auction
#: view:auction.deposit:0
msgid "Deposit Border Form"
-msgstr ""
+msgstr "Κατάθεση φόρμας συνόρων"
#. module: auction
#: field:auction.bid,bid_lines:0
@@ -385,12 +386,12 @@ msgstr ""
#: rml:bids.lots:0
#: model:ir.model,name:auction.model_auction_bid_line
msgid "Bid"
-msgstr ""
+msgstr "Προσφορά"
#. module: auction
#: wizard_field:auction.lots.send.aie,date_ask,lang:0
msgid "Langage"
-msgstr ""
+msgstr "Γλώσσα"
#. module: auction
#: field:auction.bid_line,lot_id:0
@@ -398,17 +399,17 @@ msgstr ""
#: view:auction.lots:0
#: model:ir.model,name:auction.model_auction_lots
msgid "Object"
-msgstr ""
+msgstr "Αντικείμενο"
#. module: auction
#: model:ir.actions.wizard,name:auction.wizard_map_user
msgid "Map buyer username to Partners"
-msgstr ""
+msgstr "Καταγραφή του ονόματος χρήστη στους 'Συνεργάτες'"
#. module: auction
#: wizard_field:auction.lots.numerotate,search,lot_num:0
msgid "Inventory Number"
-msgstr ""
+msgstr "Αριθμός απογραφής"
#. module: auction
#: wizard_button:auction.lots.buyer_map,check,end:0
@@ -416,17 +417,17 @@ msgstr ""
#: wizard_button:auction.lots.numerotate,search,end:0
#: wizard_button:auction.lots.numerotate_cont,init,end:0
msgid "Exit"
-msgstr ""
+msgstr "Έξοδος"
#. module: auction
#: field:report.buyer.auction2,net_revenue:0
msgid "Net Revenue"
-msgstr ""
+msgstr "Καθαρό έσοδο"
#. module: auction
#: view:report.buyer.auction:0
msgid "Auction buyer reporting form view"
-msgstr ""
+msgstr "Έντυπο έκθεσης άποψης των αγοραστών δημοπρασιών"
#. module: auction
#: field:auction.dates,state:0
@@ -436,17 +437,17 @@ msgstr ""
#: field:report.seller.auction,state:0
#: field:report.unclassified.objects,state:0
msgid "Status"
-msgstr ""
+msgstr "Κατάσταση"
#. module: auction
#: model:ir.actions.wizard,name:auction.wizard_sms
msgid "SMS Send"
-msgstr ""
+msgstr "Αποστολή γραπτού μηνύματος"
#. module: auction
#: selection:auction.lot.category,aie_categ:0
msgid "Antique/Cartoons"
-msgstr ""
+msgstr "Αντίκες/Γελοιογραφίες"
#. module: auction
#: view:auction.lots:0
@@ -454,42 +455,43 @@ msgstr ""
#: selection:report.seller.auction,state:0
#: selection:report.unclassified.objects,state:0
msgid "Sold"
-msgstr ""
+msgstr "Πουλημένο"
#. module: auction
#: constraint:hr.employee:0
msgid "Error ! You cannot create recursive Hierarchy of Employees."
msgstr ""
+"Σφάλμα! Δε μπορείται να δημιουργήσετε αναδρομική ιεραρχία στους εργαζομένους"
#. module: auction
#: field:auction.bid_line,name:0
msgid "Bid date"
-msgstr ""
+msgstr "Ημερομηνία προσφορών"
#. module: auction
#: field:auction.dates,acc_expense:0
msgid "Expense Account"
-msgstr ""
+msgstr "Λογαριασμός Εξόδων"
#. module: auction
#: model:ir.ui.menu,name:auction.menu_wizard_emporte
msgid "Deliveries Management"
-msgstr ""
+msgstr "Διαχείριση Παραδόσεων"
#. module: auction
#: field:auction.lots,obj_desc:0
msgid "Object Description"
-msgstr ""
+msgstr "Περιγραφή αντικειμένου"
#. module: auction
#: selection:auction.deposit,method:0
msgid "Contact the Seller"
-msgstr ""
+msgstr "Επικοινωνήστε με τον πωλητή"
#. module: auction
#: view:auction.lots:0
msgid "Auction Objects"
-msgstr ""
+msgstr "Δημοπρατημένα αντικείμενα"
#. module: auction
#: field:auction.lots,gross_revenue:0
@@ -497,60 +499,60 @@ msgstr ""
#: field:report.object.encoded.manager,gross_revenue:0
#: field:report.seller.auction2,gross_revenue:0
msgid "Gross revenue"
-msgstr ""
+msgstr "Μικτό έσοδο"
#. module: auction
#: view:report.seller.auction2:0
msgid "Auction reporting2 form view"
-msgstr ""
+msgstr "Έντυπο αναφοράς άποψης Δημοπρασίας"
#. module: auction
#: model:ir.actions.wizard,name:auction.wizard_pay
msgid "Pay objects of the buyer"
-msgstr ""
+msgstr "Πληρωμή αντικειμένων του αγοραστή"
#. module: auction
#: view:report.deposit.border:0
msgid "Depositer's statistics"
-msgstr ""
+msgstr "Στατιστικά αποταμιευτή"
#. module: auction
#: view:auction.lots:0
msgid "Buyer information"
-msgstr ""
+msgstr "Πληροφορίες Αγοραστή"
#. module: auction
#: model:ir.model,name:auction.model_report_seller_auction
msgid "Auction Reporting on seller view"
-msgstr ""
+msgstr "Έντυπο αναφοράς άποψης των πωλητών για τη δημοπρασία"
#. module: auction
#: field:auction.lots,name2:0
msgid "Short Description (2)"
-msgstr ""
+msgstr "Σύντομη περιγραφή (2)"
#. module: auction
#: model:ir.model,name:auction.model_auction_dates
msgid "auction.dates"
-msgstr ""
+msgstr "Δημοπρασίες.Ημερομηνίες"
#. module: auction
#: rml:auction.total.rml:0
#: model:ir.ui.menu,name:auction.auction_buyers_menu
msgid "Buyers"
-msgstr ""
+msgstr "Αγοραστές"
#. module: auction
#: wizard_field:auction.pay.buy,init,amount:0
#: wizard_field:auction.pay.buy,init,amount2:0
#: wizard_field:auction.pay.buy,init,amount3:0
msgid "Amount paid"
-msgstr ""
+msgstr "Ποσό που πληρώθηκε"
#. module: auction
#: model:ir.ui.menu,name:auction.menu_report_latest_doposit_tree
msgid "My Latest Deposits"
-msgstr ""
+msgstr "Οι Τελευταίες Καταθέσεις μου"
#. module: auction
#: field:auction.lots,lot_est1:0
@@ -559,105 +561,105 @@ msgstr ""
#: field:report.auction.view,min_est:0
#: field:report.unclassified.objects,lot_est1:0
msgid "Minimum Estimation"
-msgstr ""
+msgstr "Ελάχιστος υπολογισμός"
#. module: auction
#: view:auction.dates:0
msgid "Accounting"
-msgstr ""
+msgstr "Λογιστική"
#. module: auction
#: model:ir.ui.menu,name:auction.menu_buyer_allmonth_view2
msgid "Buyer's Revenues"
-msgstr ""
+msgstr "Έσοδα του Αγοραστή"
#. module: auction
#: model:ir.model,name:auction.model_report_auction_adjudication
msgid "report_auction_adjudication"
-msgstr ""
+msgstr "Αναφορά_δημοπρασίες_Διαγωνισμοί"
#. module: auction
#: field:auction.bid_line,price:0
msgid "Maximum Price"
-msgstr ""
+msgstr "Μέγιστη τιμή"
#. module: auction
#: selection:auction.lots.send.aie,date_ask,lang:0
msgid "eng"
-msgstr ""
+msgstr "Αγγλική"
#. module: auction
#: view:report.buyer.auction2:0
msgid "Auction buyer reporting tree view2"
-msgstr ""
+msgstr "Προβολή δέντρου εκθέσεων αγοραστή δημοπρασιών"
#. module: auction
#: wizard_view:auction.lots.sms_send,init:0
msgid "Bulk SMS send"
-msgstr ""
+msgstr "Μαζική αποστολή γραπτών μηνυμάτων"
#. module: auction
#: wizard_view:auction.taken,init:0
msgid "Select lots which are Sold"
-msgstr ""
+msgstr "Επιλέξτε παρτίδες που έχουν πουληθεί"
#. module: auction
#: field:auction.lots,statement_id:0
msgid "Payment"
-msgstr ""
+msgstr "Πληρωμή"
#. module: auction
#: selection:auction.lots.send.aie,date_ask,lang:0
msgid "fr"
-msgstr ""
+msgstr "Γαλλική"
#. module: auction
#: selection:auction.lot.category,aie_categ:0
msgid "Antique/Old weapons and militaria"
-msgstr ""
+msgstr "Αντίκες/ παλαιά όπλα και στρατιωτικά είδη"
#. module: auction
#: selection:auction.lot.category,aie_categ:0
msgid "Antique/Oriental Arts/Chineese furnitures"
-msgstr ""
+msgstr "Αντίκεςς/Ανατολίτικη τέχνη/Κινέζικα έπιπλα"
#. module: auction
#: selection:auction.deposit,method:0
msgid "Keep until sold"
-msgstr ""
+msgstr "Διατήρηση μέχρι να πουληθεί"
#. module: auction
#: wizard_button:auction.lots.numerotate,init,choice:0
#: wizard_button:auction.lots.send.aie,init,date_ask:0
#: wizard_button:auction.lots.send.aie.results,init,date_ask:0
msgid "Continue"
-msgstr ""
+msgstr "Συνεχίστε"
#. module: auction
#: field:report.object.encoded,obj_num:0
#: field:report.object.encoded.manager,obj_num:0
msgid "# of Encoded obj."
-msgstr ""
+msgstr "Πλήθος κωδικοποιημένων αντικειμένων"
#. module: auction
#: xsl:report.auction.vnd_bordereau:0
msgid "List N."
-msgstr ""
+msgstr "Λίστα Ν."
#. module: auction
#: field:report.deposit.border,moy_est:0
msgid "Avg. Est"
-msgstr ""
+msgstr "Μέσος υπολογισμός"
#. module: auction
#: rml:auction.total.rml:0
msgid "# of sellers:"
-msgstr ""
+msgstr "Πλήθος πωλητών:"
#. module: auction
#: constraint:product.product:0
msgid "Error: Invalid ean code"
-msgstr ""
+msgstr "Σφάλμα: Άκυρος κωδικός EAN"
#. module: auction
#: model:ir.module.module,description:auction.module_meta_information
@@ -668,26 +670,33 @@ msgid ""
" Delivery Management. \n"
" "
msgstr ""
+"Αυτή η μονάδα παρέχει λειτουργικότητα στη \n"
+" Διαχείριση καλλιτεχνών, αντικειμένων, πωλητών, αγοραστών και "
+"δημοπρασίας.\n"
+" Διαχείριση προσφορών, ιχνηλάτιση πουλημένων, πληρωμένων και απλήρωτων "
+"αντικειμένων.\n"
+" Διαχείριση παραδόσεων. \n"
+" "
#. module: auction
#: rml:auction.total.rml:0
msgid "# of items taken away:"
-msgstr ""
+msgstr "πλήθος αντικειμένων που παραδόθηκαν:"
#. module: auction
#: model:ir.ui.menu,name:auction.menu_auction_allmonth_view1
msgid "Auction's Summary"
-msgstr ""
+msgstr "Περίληψη Δημοπρασίας"
#. module: auction
#: rml:buyer.list:0
msgid "%)"
-msgstr ""
+msgstr "%)"
#. module: auction
#: wizard_view:auction.lots.able,init:0
msgid "Confirmation set taken away"
-msgstr ""
+msgstr "Επιβεβαίωση αυτών που έχουν σταλθεί"
#. module: auction
#: wizard_field:auction.lots.make_invoice,init,objects:0
@@ -696,7 +705,7 @@ msgstr ""
#: wizard_field:auction.lots.send.aie.results,date_ask,objects:0
#: field:report.deposit.border,nb_obj:0
msgid "# of objects"
-msgstr ""
+msgstr "ΠΛήθος αντικειμένων"
#. module: auction
#: field:auction.lots,lot_est2:0
@@ -705,282 +714,283 @@ msgstr ""
#: field:report.auction.view,max_est:0
#: field:report.unclassified.objects,lot_est2:0
msgid "Maximum Estimation"
-msgstr ""
+msgstr "Μέγιστος υπολογισμός"
#. module: auction
#: field:auction.lots,buyer_price:0
msgid "Buyer price"
-msgstr ""
+msgstr "Τιμή αγοραστή"
#. module: auction
#: model:ir.actions.wizard,name:auction.auction_wizard_payer_sel
msgid "Mark as paid for seller"
-msgstr ""
+msgstr "Σημειώστε το ως πληρωμένο για τον πωλητή"
#. module: auction
#: model:ir.actions.report.xml,name:auction.seller_form_id
msgid "Seller List"
-msgstr ""
+msgstr "Λίστα πωλητών"
#. module: auction
#: field:auction.lots,is_ok:0
msgid "Buyer's payment"
-msgstr ""
+msgstr "ΠΛηρωμή αγοραστή"
#. module: auction
#: view:auction.dates:0
msgid "Close + Create all invoices"
-msgstr ""
+msgstr "Κλείσιμο + Δημιουργεία όλων των τιμολογίων"
#. module: auction
#: model:ir.actions.wizard,name:auction.auction_catalog_flagy
msgid "Auction Catalog Flagey"
-msgstr ""
+msgstr "Κατάλογος δημοπρασιών Flagey"
#. module: auction
#: field:auction.lot.history,price:0
msgid "Withdrawn price"
-msgstr ""
+msgstr "Απόσυρση τιμής"
#. module: auction
#: model:account.tax,name:auction.auction_tax4
msgid "Seller Costs1"
-msgstr ""
+msgstr "Έξοδα πωλητή1"
#. module: auction
#: selection:auction.lot.category,aie_categ:0
msgid "Antique/Verreries"
-msgstr ""
+msgstr "Αντίκες/Υαλικά"
#. module: auction
#: selection:auction.lot.category,aie_categ:0
msgid "Antique/Toys"
-msgstr ""
+msgstr "Αντίκες/Παιχνίδια"
#. module: auction
#: field:auction.deposit,create_uid:0
#: field:auction.lots,create_uid:0
msgid "Created by"
-msgstr ""
+msgstr "Δημιουργήθηκε από"
#. module: auction
#: xsl:report.auction.ach_bordereau:0
msgid "Buyer form"
-msgstr ""
+msgstr "Φόρμα αγοραστή"
#. module: auction
#: xsl:report.auction.deposit:0
msgid "Estimate"
-msgstr ""
+msgstr "Εκτιμώ"
#. module: auction
#: rml:auction.total.rml:0
msgid "# of buyers:"
-msgstr ""
+msgstr "Πλήθος αγοραστών"
#. module: auction
#: field:auction.lots,costs:0
msgid "Indirect costs"
-msgstr ""
+msgstr "Έμμεσα έξοδα"
#. module: auction
#: xsl:report.auction.ach_bordereau:0
msgid "Cat"
-msgstr ""
+msgstr "Cat"
#. module: auction
#: constraint:account.tax.code:0
msgid "Error ! You can not create recursive accounts."
msgstr ""
+"Σφάλμα! Δεν μπορείτε να χρησιμοποιήσετε επαναλαμβανόμενους λογαριασμούς."
#. module: auction
#: model:ir.ui.menu,name:auction.auction_menu_root
msgid "Auction Management"
-msgstr ""
+msgstr "Διαχείριση Δημοπρασιών"
#. module: auction
#: field:auction.dates,journal_seller_id:0
msgid "Seller Journal"
-msgstr ""
+msgstr "Ημερολόγιο πωλητή"
#. module: auction
#: view:report.buyer.auction:0
msgid "Auction buyer reporting tree view"
-msgstr ""
+msgstr "Προβολή δέντρου εκθέσεων αγοραστή δημοπρασιών"
#. module: auction
#: model:ir.ui.menu,name:auction.menu_auction_artist
msgid "Define Artists"
-msgstr ""
+msgstr "Ορίστε Καλλιτέχνες"
#. module: auction
#: field:auction.lot.category,name:0
msgid "Category Name"
-msgstr ""
+msgstr "Όνομα Κατηγορίας"
#. module: auction
#: model:ir.ui.menu,name:auction.menu_report_auction_estimation_adj_category_manager
#: model:ir.ui.menu,name:auction.menu_report_auction_estimation_adj_category_member
msgid "Comparison of estimations"
-msgstr ""
+msgstr "Σύγκριση υπολογισμών"
#. module: auction
#: model:ir.actions.report.xml,name:auction.v_report_barcode_lot
msgid "Code barres du lot"
-msgstr ""
+msgstr "Barcode παρτίδας"
#. module: auction
#: wizard_button:auction.lots.numerotate,not_exist,init:0
msgid "Retry"
-msgstr ""
+msgstr "Επανάληψη"
#. module: auction
#: field:auction.artists,birth_death_dates:0
msgid "Birth / Death dates"
-msgstr ""
+msgstr "Δημιουργία / κλείσιμο ημερομηνιών"
#. module: auction
#: selection:auction.lot.category,aie_categ:0
msgid "Antique/Jewelry"
-msgstr ""
+msgstr "Αντίκες/Κοσμήματα"
#. module: auction
#: model:ir.model,name:auction.model_report_unclassified_objects
msgid "Unclassified objects "
-msgstr ""
+msgstr "Αντικείμενα μη ταξινομημένα "
#. module: auction
#: wizard_button:auction.lots.numerotate_cont,init,set_number:0
#: wizard_field:auction.lots.send.aie,date_ask,numerotation:0
#: wizard_field:auction.lots.send.aie,init,numerotation:0
msgid "Numerotation"
-msgstr ""
+msgstr "Αρίθμιση"
#. module: auction
#: model:ir.actions.act_window,name:auction.act_auction_lot_open_deposit
msgid "Bordereau de dépôt"
-msgstr ""
+msgstr "Φύλλο κατάθεσης"
#. module: auction
#: xsl:report.auction.deposit:0
msgid "Document type"
-msgstr ""
+msgstr "Τύπος εγγράφου"
#. module: auction
#: model:ir.model,name:auction.model_report_auction_estimation_adj_category
msgid "comparaison estimate/adjudication "
-msgstr ""
+msgstr "εκτίμηση σύγκριση / προσφορών "
#. module: auction
#: rml:buyer.list:0
msgid "Adj(EUR)"
-msgstr ""
+msgstr "Μετατροπη σε Ευρώ"
#. module: auction
#: selection:auction.lot.category,aie_categ:0
msgid "Cont. Art/Other Media"
-msgstr ""
+msgstr "Cont. Art/Other Media"
#. module: auction
#: model:ir.actions.wizard,name:auction.wizard_emporte
msgid "Gestion emporte"
-msgstr ""
+msgstr "Διαχείριση Κερδισμένων"
#. module: auction
#: xsl:report.auction.lots.list.landscape:0
#: xsl:report.auction.vnd_bordereau:0
msgid "Cat. N."
-msgstr ""
+msgstr "Cat. N."
#. module: auction
#: model:ir.ui.menu,name:auction.menu_auction_object_cat
msgid "Object Categories"
-msgstr ""
+msgstr "Κατηγορίες αντικειμένων"
#. module: auction
#: wizard_field:auction.lots.send.aie,date_ask,img_send:0
msgid "Send Image also ?"
-msgstr ""
+msgstr "Να αποσταλεί και εικόνα;"
#. module: auction
#: view:auction.deposit:0
msgid "General Informations"
-msgstr ""
+msgstr "Γενικές Πληροφορίες"
#. module: auction
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr ""
+msgstr "Λανθασμένο XML για προβολή αρχιτεκτονικής!"
#. module: auction
#: view:report.auction.view:0
msgid "Auctions results"
-msgstr ""
+msgstr "Αποτελέσματα δημοπρασιών"
#. module: auction
#: wizard_field:auction.lots.sms_send,init,app_id:0
msgid "API ID"
-msgstr ""
+msgstr "API ID"
#. module: auction
#: field:auction.bid,name:0
#: field:auction.bid_line,bid_id:0
msgid "Bid ID"
-msgstr ""
+msgstr "Ταυτότητα προσφοράς"
#. module: auction
#: rml:auction.total.rml:0
msgid "Min Estimate:"
-msgstr ""
+msgstr "Ελάχιστος εκτίμηση:"
#. module: auction
#: field:report.buyer.auction2,net_margin:0
msgid "Net Margin"
-msgstr ""
+msgstr "Καθαρό περιθώριο"
#. module: auction
#: field:auction.lots,vnd_lim_net:0
msgid "Net limit ?"
-msgstr ""
+msgstr "Καθαρό όριο ;"
#. module: auction
#: rml:auction.total.rml:0
msgid "# of commissions:"
-msgstr ""
+msgstr "Πλήθος προμηθειών"
#. module: auction
#: model:ir.actions.act_window,name:auction.action_unclassified_objects
#: model:ir.ui.menu,name:auction.menu_all_objects_unclassified
#: view:report.unclassified.objects:0
msgid "Unclassified objects"
-msgstr ""
+msgstr "Μη ταξινομημένα αντικείμενα"
#. module: auction
#: wizard_view:auction.lots.make_invoice_buyer,init:0
msgid "(Keep empty for automatic number)"
-msgstr ""
+msgstr "( Αφήστε το κενό για αυτόματη αρίθμιση )"
#. module: auction
#: model:ir.model,name:auction.model_report_auction_object_date
#: view:report.auction.object.date:0
msgid "Objects per day"
-msgstr ""
+msgstr "Αντικείμενα ανα ημέρα"
#. module: auction
#: model:product.template,name:auction.monproduit_product_template
msgid "Oeuvres a 21%"
-msgstr ""
+msgstr "Έργα σε 21%"
#. module: auction
#: selection:auction.lot.category,aie_categ:0
msgid "Antique/Carpet and textilles"
-msgstr ""
+msgstr "Αντίκες/Χαλιά και υφάσματα"
#. module: auction
#: xsl:report.auction.seller.list:0
#: field:report.object.encoded.manager,adj:0
msgid "Adj."
-msgstr ""
+msgstr "Προσαρμογή"
#. module: auction
#: field:auction.lot.history,name:0
@@ -989,91 +999,91 @@ msgstr ""
#: xsl:report.auction.deposit:0
#: field:report.auction.estimation.adj.category,date:0
msgid "Date"
-msgstr ""
+msgstr "Ημερομηνία"
#. module: auction
#: field:auction.lots,obj_ret:0
msgid "Price retired"
-msgstr ""
+msgstr "Απόσυρση τιμής"
#. module: auction
#: view:auction.deposit:0
msgid "Extra Costs"
-msgstr ""
+msgstr "Επιπλέον έξοδα"
#. module: auction
#: model:ir.ui.menu,name:auction.menu_auction_dates_new
msgid "New Auction Dates"
-msgstr ""
+msgstr "Ημερομηνία νέας δημοπρασίας"
#. module: auction
#: field:auction.lots,paid_vnd:0
msgid "Seller Paid"
-msgstr ""
+msgstr "Αμειβόμενος Πωλητής"
#. module: auction
#: field:auction.deposit,date_dep:0
msgid "Deposit date"
-msgstr ""
+msgstr "Ημερομηνία κατάθεσης"
#. module: auction
#: model:ir.actions.report.xml,name:auction.id_deposit
msgid "Deposits"
-msgstr ""
+msgstr "Αποθέματα"
#. module: auction
#: field:auction.deposit,specific_cost_ids:0
msgid "Specific Costs"
-msgstr ""
+msgstr "Ειδικά έξοδα"
#. module: auction
#: view:report.buyer.auction2:0
#: view:report.seller.auction2:0
msgid "Sum adj"
-msgstr ""
+msgstr "Προσαρμογή συνόλου"
#. module: auction
#: view:auction.dates:0
#: view:report.auction.view2:0
msgid "Auctions"
-msgstr ""
+msgstr "Δημοπρασίες"
#. module: auction
#: field:report.seller.auction,object_number:0
msgid "No of Objects"
-msgstr ""
+msgstr "Αριθμός αντικειμένων"
#. module: auction
#: view:auction.lots:0
msgid "History"
-msgstr ""
+msgstr "Ιστορικό"
#. module: auction
#: field:auction.lot.category,priority:0
msgid "Priority"
-msgstr ""
+msgstr "Προτεραιότητα"
#. module: auction
#: rml:auction.code_bar_lot:0
msgid "Nr."
-msgstr ""
+msgstr "Νο."
#. module: auction
#: selection:auction.lot.category,aie_categ:0
msgid "Antique/Painting"
-msgstr ""
+msgstr "Αντίκες/Πίνακες Ζωγραφικής"
#. module: auction
#: field:auction.lot.category,aie_categ:0
msgid "Aie Category"
-msgstr ""
+msgstr "Σε κατηγορία"
#. module: auction
#: xsl:flagey.huissier:0
#: rml:report.auction.buyer.result:0
#: xsl:report.auction.deposit:0
msgid "Num"
-msgstr ""
+msgstr "Num"
#. module: auction
#: wizard_button:auction.lots.able,init,end:0
@@ -1090,110 +1100,110 @@ msgstr ""
#: wizard_button:auction.pay.buy,init,end:0
#: wizard_button:auction.payer.sel,init,end:0
msgid "Cancel"
-msgstr ""
+msgstr "Ακύρωση"
#. module: auction
#: view:auction.dates:0
msgid "Beginning of the auction"
-msgstr ""
+msgstr "Έναρξη της Δημοπρασίας"
#. module: auction
#: field:auction.artists,biography:0
msgid "Biography"
-msgstr ""
+msgstr "Βιογραφία"
#. module: auction
#: field:auction.lots,lot_local:0
msgid "Location"
-msgstr ""
+msgstr "Τοποθεσία"
#. module: auction
#: wizard_view:auction.payer.sel,init:0
msgid "Check payment for seller"
-msgstr ""
+msgstr "Έλεγχος πληρωμής πωλητή"
#. module: auction
#: model:ir.actions.act_window,name:auction.view_report_object_by_auction
msgid "Detailed lots"
-msgstr ""
+msgstr "Λεπτομέρειες παρτίδων"
#. module: auction
#: view:report.object.encoded:0
#: view:report.object.encoded.manager:0
msgid "Objects statistics"
-msgstr ""
+msgstr "Στατιστικά Αντικειμένων"
#. module: auction
#: view:auction.dates:0
msgid "Analytic"
-msgstr ""
+msgstr "Αναλυτικοί"
#. module: auction
#: model:ir.actions.wizard,name:auction.wizard_results
msgid "Send results to Auction-in-europe.com"
-msgstr ""
+msgstr "Αποστολή αποτελεσμάτων στο Auction-in-europe.com"
#. module: auction
#: rml:bids.lots:0
#: rml:bids.phones.details:0
msgid "Cat.N"
-msgstr ""
+msgstr "Cat.N"
#. module: auction
#: selection:auction.deposit,method:0
msgid "Decrease limit of 10%"
-msgstr ""
+msgstr "Μείωση ορίου 10%"
#. module: auction
#: field:auction.dates,adj_total:0
#: field:report.auction.adjudication,adj_total:0
#: field:report.auction.estimation.adj.category,adj_total:0
msgid "Total Adjudication"
-msgstr ""
+msgstr "Σύνολο προσφορών"
#. module: auction
#: model:ir.actions.act_window,name:auction.action_auction_reporting1
#: model:ir.actions.act_window,name:auction.action_auction_reporting_all1
#: model:ir.actions.act_window,name:auction.action_auction_reporting_all2
msgid "Seller's auction"
-msgstr ""
+msgstr "Δημοπρασία του Πωλητή"
#. module: auction
#: model:ir.actions.wizard,name:auction.wizard_invoice_buyer1
msgid "Invoice Buyer objects"
-msgstr ""
+msgstr "Τιμολόγηση αντικειμένων αγοραστή"
#. module: auction
#: model:ir.ui.menu,name:auction.menu_seller_allmonth_view2
msgid "Seller's Revenues"
-msgstr ""
+msgstr "Έσοδα Πωλητή"
#. module: auction
#: xsl:flagey.huissier:0
msgid "Price"
-msgstr ""
+msgstr "Τιμή"
#. module: auction
#: rml:bids.phones.details:0
msgid "-"
-msgstr ""
+msgstr "-"
#. module: auction
#: xsl:report.auction.ach_bordereau:0
#: xsl:report.auction.vnd_bordereau:0
msgid "Subtotal:"
-msgstr ""
+msgstr "Μερικό σύνολο:"
#. module: auction
#: view:auction.deposit:0
msgid "Photos"
-msgstr ""
+msgstr "Φωτογραφίες"
#. module: auction
#: wizard_field:auction.lots.make_invoice,init,number:0
#: wizard_field:auction.lots.make_invoice_buyer,init,number:0
msgid "Invoice Number"
-msgstr ""
+msgstr "Αριθμός Τιμολογίου"
#. module: auction
#: field:report.buyer.auction,date:0
@@ -1202,22 +1212,22 @@ msgstr ""
#: field:report.object.encoded.manager,date:0
#: field:report.seller.auction,date:0
msgid "Create Date"
-msgstr ""
+msgstr "Ημερομηνία Δημιουργίας"
#. module: auction
#: model:ir.ui.menu,name:auction.menu_buyer_allmonth_view1
msgid "Buyer's Summary"
-msgstr ""
+msgstr "Σύνοψη Αγοραστή"
#. module: auction
#: xsl:report.auction.ach_bordereau:0
msgid "Customer Reference"
-msgstr ""
+msgstr "Αναφορά πελάτη"
#. module: auction
#: rml:bids.lots:0
msgid "Name"
-msgstr ""
+msgstr "Όνομα"
#. module: auction
#: field:auction.deposit,name:0
@@ -1226,18 +1236,18 @@ msgstr ""
#: field:report.deposit.border,bord:0
#: field:report.unclassified.objects,bord_vnd_id:0
msgid "Depositer Inventory"
-msgstr ""
+msgstr "Απογραφή αποταμιευτών"
#. module: auction
#: model:ir.ui.menu,name:auction.menu_report_deposit_tree_m
#: model:ir.ui.menu,name:auction.menu_report_deposit_tree_member
msgid "Depositer's Statistics"
-msgstr ""
+msgstr "Στατιστικά στοιχεία αποταμιευτών"
#. module: auction
#: view:report.object.encoded.manager:0
msgid "Total adj."
-msgstr ""
+msgstr "Συνολική προσαρμογή"
#. module: auction
#: wizard_field:auction.lots.send.aie,date_ask,uname:0
@@ -1246,39 +1256,39 @@ msgstr ""
#: wizard_field:auction.lots.send.aie.results,init,uname:0
#: wizard_field:auction.lots.sms_send,init,user:0
msgid "Login"
-msgstr ""
+msgstr "Είσοδος"
#. module: auction
#: rml:buyer.list:0
#: xsl:report.auction.seller.list:0
msgid "To pay"
-msgstr ""
+msgstr "Για πληρωμή"
#. module: auction
#: wizard_button:auction.lots.enable,init,go:0
msgid "Enable Taken away"
-msgstr ""
+msgstr "Ενεργοποίηση απομάκρυνσης"
#. module: auction
#: selection:auction.lot.category,aie_categ:0
msgid "Antique/Others"
-msgstr ""
+msgstr "Αντίκες/Άλλα"
#. module: auction
#: model:ir.actions.report.xml,name:auction.seller_lots_3
msgid "Seller Form"
-msgstr ""
+msgstr "Φόρμα πωλητή"
#. module: auction
#: field:auction.lots,lot_type:0
#: field:report.unclassified.objects,lot_type:0
msgid "Object category"
-msgstr ""
+msgstr "Κατηγορία αντικειμένου"
#. module: auction
#: wizard_view:auction.taken,init:0
msgid "Mark Lots"
-msgstr ""
+msgstr "Σημείωσε τις παρτίδες"
#. module: auction
#: field:auction.lots,obj_num:0
@@ -1286,131 +1296,131 @@ msgstr ""
#: wizard_field:auction.lots.numerotate,search,obj_num:0
#: field:report.unclassified.objects,obj_num:0
msgid "Catalog Number"
-msgstr ""
+msgstr "Αριθμός καταλόγου"
#. module: auction
#: view:report.auction.view2:0
msgid "Auction Reporting tree view2"
-msgstr ""
+msgstr "προβολή δένδρου αναφοράς της δημοπρασίας 2"
#. module: auction
#: view:report.buyer.auction2:0
msgid "Auction buyer reporting form view2"
-msgstr ""
+msgstr "Προβολή φόρμας αναφοράς αγοραστών της δημοπρασίας 2"
#. module: auction
#: model:ir.actions.report.xml,name:auction.bid_phone
msgid "Bids phones"
-msgstr ""
+msgstr "Προσφορές δια τηλεφώνου"
#. module: auction
#: model:ir.actions.act_window,name:auction.action_report_object_by_auction
msgid "Auction dates"
-msgstr ""
+msgstr "Ημερομηνίες δημοπρασίας"
#. module: auction
#: view:report.seller.auction2:0
msgid "Auction seller reporting2 graph view"
-msgstr ""
+msgstr "Προβολη διαγραμμάτων αναφοράς πωλητή της δημοπρασίας"
#. module: auction
#: model:ir.ui.menu,name:auction.menu_report_auction_object_date_tree
msgid "Encoded Objects Per Day"
-msgstr ""
+msgstr "Κωδικοποιημένα Αντικείμενα ανά ημέρα"
#. module: auction
#: model:ir.model,name:auction.model_report_buyer_auction
#: model:ir.model,name:auction.model_report_buyer_auction2
msgid "Auction Reporting on buyer view"
-msgstr ""
+msgstr "Υποβολή έκθεσης δημοπρασίας στη θέση του πωλητή"
#. module: auction
#: rml:auction.total.rml:0
msgid "Debit:"
-msgstr ""
+msgstr "Χρέωση:"
#. module: auction
#: field:auction.lots,author_right:0
msgid "Author rights"
-msgstr ""
+msgstr "Δικαιώματα πνευματικής ιδιοκτησίας"
#. module: auction
#: view:auction.lots:0
msgid "Payment's history"
-msgstr ""
+msgstr "Ιστορικό πληρωμών"
#. module: auction
#: xsl:report.auction.ach_bordereau:0
#: xsl:report.auction.vnd_bordereau:0
msgid "Document"
-msgstr ""
+msgstr "Έγγραφο"
#. module: auction
#: xsl:report.auction.lots.list.landscape:0
msgid ", TEL:"
-msgstr ""
+msgstr ", Τηλέφωνο:"
#. module: auction
#: view:report.auction.view:0
msgid "Auction results"
-msgstr ""
+msgstr "Αποτελέσματα Δημοπρασίας"
#. module: auction
#: model:ir.ui.menu,name:auction.menu_auction_allmonth_view2
msgid "Auction's Revenues"
-msgstr ""
+msgstr "Έσοδα Δημοπρασίας"
#. module: auction
#: view:report.object.encoded.manager:0
msgid "Total net rev."
-msgstr ""
+msgstr "Συνολικά καθαρά έσοδα."
#. module: auction
#: wizard_button:auction.lots.buyer_map,check,set_buyer:0
msgid "Update"
-msgstr ""
+msgstr "Ενημέρωση"
#. module: auction
#: rml:auction.total.rml:0
#: model:ir.ui.menu,name:auction.auction_report_seller_menu
#: model:ir.ui.menu,name:auction.auction_seller_menu
msgid "Sellers"
-msgstr ""
+msgstr "Πωλητές"
#. module: auction
#: selection:auction.lot.category,aie_categ:0
msgid "Antique/Metal Ware"
-msgstr ""
+msgstr "Αντίκες/Μεταλικά αντικείμενα"
#. module: auction
#: model:ir.actions.report.xml,name:auction.res_w_buyer
msgid "Results with buyer"
-msgstr ""
+msgstr "Αποτελέσματα με τον αγοραστή"
#. module: auction
#: selection:auction.lots.send.aie,date_ask,lang:0
msgid "de"
-msgstr ""
+msgstr "de"
#. module: auction
#: wizard_button:auction.lots.auction_move,init,set_date:0
msgid "Move to Auction date"
-msgstr ""
+msgstr "Μεταφορά στην ημερομηνία δημοπρασίας"
#. module: auction
#: model:ir.actions.act_window,name:auction.action_auction_dates_old
msgid "Old Auctions"
-msgstr ""
+msgstr "Παλαιότερες Δημοπρασίες"
#. module: auction
#: rml:auction.total.rml:0
msgid "# of unsold items:"
-msgstr ""
+msgstr "Πλήθος Αδιάθετων αντικειμένων"
#. module: auction
#: selection:auction.lot.category,aie_categ:0
msgid "Cont. Art/Curiosa"
-msgstr ""
+msgstr "Cont. Art/Curiosa"
#. module: auction
#: field:auction.bid,auction_id:0
@@ -1421,187 +1431,189 @@ msgstr ""
#: wizard_field:auction.lots.send.aie.results,date_ask,dates:0
#: wizard_field:auction.lots.send.aie.results,init,dates:0
msgid "Auction Date"
-msgstr ""
+msgstr "Ημερομηνία Δημοπρασίας"
#. module: auction
#: rml:auction.code_bar_lot:0
msgid ", ID"
-msgstr ""
+msgstr ", Ταυτότητα"
#. module: auction
#: model:ir.module.module,shortdesc:auction.module_meta_information
msgid "Auction module"
-msgstr ""
+msgstr "Ενότητα Δημοπρασιών"
#. module: auction
#: field:auction.bid_line,auction:0
msgid "Auction Name"
-msgstr ""
+msgstr "Όνομα Δημοπρασίας"
#. module: auction
#: model:ir.ui.menu,name:auction.menu_report_auction_sign_in_out_manager_tree1
#: model:ir.ui.menu,name:auction.menu_report_auction_sign_in_out_member_tree1
msgid "Attendance"
-msgstr ""
+msgstr "Ακροατήριο"
#. module: auction
#: view:auction.lots:0
msgid "Seller information"
-msgstr ""
+msgstr "Πληροφορίες Πωλητή"
#. module: auction
#: field:auction.lots,ach_login:0
#: wizard_field:auction.lots.buyer_map,check,ach_login:0
#: field:report.unclassified.objects,ach_login:0
msgid "Buyer Username"
-msgstr ""
+msgstr "Όνομα χρήστη αγοραστή"
#. module: auction
#: selection:auction.lot.category,aie_categ:0
msgid "Cont. Art/Jewelry"
-msgstr ""
+msgstr "Συνέχεια σε Τέχνη/Κοσμήματα"
#. module: auction
#: xsl:report.auction.deposit:0
#: xsl:report.auction.vnd_bordereau:0
msgid "Inventory"
-msgstr ""
+msgstr "Απογραφή"
#. module: auction
#: model:ir.actions.act_window,name:auction.action_auction_dates_next
msgid "Next Auctions"
-msgstr ""
+msgstr "Επόμενες Δημοπρασίες"
#. module: auction
#: rml:buyer.list:0
#: xsl:report.auction.seller.list:0
msgid "#"
-msgstr ""
+msgstr "#"
#. module: auction
#: field:auction.lots,ach_emp:0
msgid "Taken Away"
-msgstr ""
+msgstr "Απομάκρυνση"
#. module: auction
#: view:report.object.encoded.manager:0
msgid "Total gross rev."
-msgstr ""
+msgstr "Συνολικά μικτά έσοδα"
#. module: auction
#: selection:auction.lot.category,aie_categ:0
msgid "Antique/Miniatures / Collections"
-msgstr ""
+msgstr "Αντίκες / Μικρογραφίες / Συλλογές"
#. module: auction
#: wizard_view:auction.lots.numerotate,not_exist:0
msgid "This lot does not exist !"
-msgstr ""
+msgstr "Αυτή η παρτίδα δεν υπάρχει !"
#. module: auction
#: view:auction.dates:0
msgid "End of auction"
-msgstr ""
+msgstr "Τέλος Δημοπρασίας"
#. module: auction
#: field:auction.bid_line,call:0
msgid "To be Called"
-msgstr ""
+msgstr "Να ονομάζεται"
#. module: auction
#: model:ir.actions.act_window,name:auction.action_report_auction_estimation_adj_category_manager_tree
#: model:ir.actions.act_window,name:auction.action_report_auction_estimation_adj_category_member_tree
#: view:report.auction.estimation.adj.category:0
msgid "Min est/Adj/Max est"
-msgstr ""
+msgstr "Ελάχιστη εκτίμηση / προσαρμογή / Μέγιστη εκτίμηση"
#. module: auction
#: model:ir.actions.report.xml,name:auction.lot_list_inv
msgid "Lots List - Landscape"
-msgstr ""
+msgstr "Λίστα παρτίδων - Τοπία"
#. module: auction
#: view:report.seller.auction:0
msgid "Auction reporting tree view"
-msgstr ""
+msgstr "Προβολή δένδρου αναφοράς δημοπρασίας"
#. module: auction
#: wizard_view:auction.lots.auction_move,init:0
#: model:ir.actions.wizard,name:auction.wizard_change_auction
msgid "Change Auction Date"
-msgstr ""
+msgstr "Αλλαγή ημερομηνίας δημοπρασίας"
#. module: auction
#: selection:auction.lot.category,aie_categ:0
msgid "Cont. Art/Photo"
-msgstr ""
+msgstr "Συνέχεια σε Τέχνη / Φωτογραφίες"
#. module: auction
#: field:auction.deposit,method:0
msgid "Withdrawned method"
-msgstr ""
+msgstr "Μέθοδος Απόσυρσης"
#. module: auction
#: rml:auction.total.rml:0
msgid "Max Estimate:"
-msgstr ""
+msgstr "Μέγιστη εκτίμηση:"
#. module: auction
#: model:ir.model,name:auction.model_auction_bid
msgid "Bid auctions"
-msgstr ""
+msgstr "Προσφορά δημοπρασιών"
#. module: auction
#: field:report.auction.view2,obj_margin:0
msgid "Avg margin"
-msgstr ""
+msgstr "Μέσο όρος περιθωρίου"
#. module: auction
#: selection:auction.lot.category,aie_categ:0
msgid "Antique/Art from the Ivory Coast"
-msgstr ""
+msgstr "Αντίκες / Τέχνη από την Ακτή του Ελεφαντοστού"
#. module: auction
#: selection:auction.lot.category,aie_categ:0
msgid "Antique/Religiosa"
-msgstr ""
+msgstr "Αντίκες / Θρησκευτικά"
#. module: auction
#: wizard_button:auction.lots.make_invoice,init,invoice:0
#: wizard_button:auction.lots.make_invoice_buyer,init,invoice:0
msgid "Create invoices"
-msgstr ""
+msgstr "Δημιουργία Τιμολογίων"
#. module: auction
#: constraint:product.template:0
msgid ""
"Error: The default UOM and the purchase UOM must be in the same category."
msgstr ""
+"Σφάλμα: Η προκαθορισμένη Μονάδα Μέτρησης και η Μονάδα Μέτρησης αγοράς πρέπει "
+"να είναι στην ίδια κατηγορία."
#. module: auction
#: xsl:report.auction.vnd_bordereau:0
msgid "Lot"
-msgstr ""
+msgstr "Παρτίδα"
#. module: auction
#: model:ir.ui.menu,name:auction.menu_all_objects_unplanned1
msgid "Unplanned objects"
-msgstr ""
+msgstr "Απρόβλεπτα αντικείμενα"
#. module: auction
#: selection:auction.lot.category,aie_categ:0
msgid "Cont. Art/Sculpture"
-msgstr ""
+msgstr "Συνέχεια σε Τέχνη / Γλυπτική"
#. module: auction
#: model:ir.model,name:auction.model_auction_artists
msgid "auction.artists"
-msgstr ""
+msgstr "Δημοπρασίες.Καλλιτέχνες"
#. module: auction
#: field:auction.dates,journal_id:0
msgid "Buyer Journal"
-msgstr ""
+msgstr "Ημερολόγιο Αγοραστή"
#. module: auction
#: selection:auction.lots,state:0
@@ -1609,18 +1621,18 @@ msgstr ""
#: selection:report.object.encoded,state:0
#: selection:report.unclassified.objects,state:0
msgid "Paid"
-msgstr ""
+msgstr "Πληρωμένα"
#. module: auction
#: rml:bids.lots:0
#: rml:bids.phones.details:0
msgid "Phone"
-msgstr ""
+msgstr "Τηλέφωνο"
#. module: auction
#: selection:auction.lot.category,aie_categ:0
msgid "Antique/Argenterie"
-msgstr ""
+msgstr "Αντίκες / Ασημικά"
#. module: auction
#: wizard_button:auction.pay.buy,init,pay:0
diff --git a/addons/audittrail/i18n/el.po b/addons/audittrail/i18n/el.po
index 6abb75f9b34..bc7c28dcb83 100644
--- a/addons/audittrail/i18n/el.po
+++ b/addons/audittrail/i18n/el.po
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2010-06-24 02:58+0000\n"
+"PO-Revision-Date: 2010-06-24 21:17+0000\n"
"Last-Translator: Panayiotis Konstantinidis \n"
"Language-Team: Greek \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: audittrail
@@ -159,153 +159,157 @@ msgid ""
" Subscribe Rules for read, write, create and delete on objects and check "
"logs"
msgstr ""
+"Επιστρέπει στον Διαχειριστή να ακολουθεί τα ίχνη κάθε λειτουργίας του χρήστη "
+"σε όλα τα αντικείμενα του συστήματος.\n"
+" Εισάγεται κανόνες για ανάγνωση, εγγραφή, δημιουργία και διαγραφή στα "
+"αντικείμενα και τα ημερολόγια ελέγχου."
#. module: audittrail
#: field:audittrail.log,timestamp:0
msgid "Date"
-msgstr ""
+msgstr "Ημερομηνία"
#. module: audittrail
#: field:audittrail.log,user_id:0
msgid "User"
-msgstr ""
+msgstr "Χρήστης"
#. module: audittrail
#: view:audittrail.log:0
msgid "Old Value Text : "
-msgstr ""
+msgstr "Παλιά τιμή κειμένου: "
#. module: audittrail
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
-msgstr ""
+msgstr "Λανθασμένο XML για αρχιτεκτονική όψης!"
#. module: audittrail
#: field:audittrail.log,name:0
msgid "Name"
-msgstr ""
+msgstr "Όνομα"
#. module: audittrail
#: field:audittrail.log,line_ids:0
msgid "Log lines"
-msgstr ""
+msgstr "Γραμμές ημερολογίου"
#. module: audittrail
#: model:ir.ui.menu,name:audittrail.menu_action_audittrail_rule_tree_sub
msgid "Subscribed Rules"
-msgstr ""
+msgstr "Εγγεγραμμένοι Κανόνες"
#. module: audittrail
#: field:audittrail.log.line,field_id:0
msgid "Fields"
-msgstr ""
+msgstr "Πεδία"
#. module: audittrail
#: view:audittrail.rule:0
msgid "AuditTrail Rules"
-msgstr ""
+msgstr "Κανόνες διαδρομής ελέγχου"
#. module: audittrail
#: model:ir.model,name:audittrail.model_audittrail_rule
msgid "audittrail.rule"
-msgstr ""
+msgstr "ελεγκτική ιχνηλάτηση.κανόνες"
#. module: audittrail
#: view:audittrail.rule:0
msgid "UnSubscribe"
-msgstr ""
+msgstr "Διαγραφείτε"
#. module: audittrail
#: field:audittrail.rule,log_write:0
msgid "Log writes"
-msgstr ""
+msgstr "Εγγραφές ημερολογίου"
#. module: audittrail
#: model:ir.model,name:audittrail.model_audittrail_log
msgid "audittrail.log"
-msgstr ""
+msgstr "ελεγκτική ιχνηλάτηση.ημερολόγιο"
#. module: audittrail
#: field:audittrail.log.line,field_description:0
msgid "Field Description"
-msgstr ""
+msgstr "Περιγραφή πεδίου"
#. module: audittrail
#: selection:audittrail.log,method:0
msgid "Delete"
-msgstr ""
+msgstr "Διαγραφή"
#. module: audittrail
#: wizard_button:audittrail.view.log,init,open:0
msgid "Open Logs"
-msgstr ""
+msgstr "Άνοιγμα ημερολογίων"
#. module: audittrail
#: field:audittrail.log.line,new_value_text:0
msgid "New value Text"
-msgstr ""
+msgstr "Νέα τιμή κειμένου"
#. module: audittrail
#: field:audittrail.rule,name:0
msgid "Rule Name"
-msgstr ""
+msgstr "Όνομα Κανόνα"
#. module: audittrail
#: field:audittrail.rule,log_read:0
msgid "Log reads"
-msgstr ""
+msgstr "Αναγνώσεις ημερολογίων"
#. module: audittrail
#: model:ir.ui.menu,name:audittrail.menu_action_audittrail_log_tree
msgid "Logs"
-msgstr ""
+msgstr "Αρχεία καταγραφής"
#. module: audittrail
#: field:audittrail.log.line,new_value:0
msgid "New Value"
-msgstr ""
+msgstr "Νέα τιμή"
#. module: audittrail
#: model:ir.ui.menu,name:audittrail.menu_action_log_tree2
msgid "View Logs"
-msgstr ""
+msgstr "Δείτε τα αρχεία καταγραφής"
#. module: audittrail
#: field:audittrail.rule,log_create:0
msgid "Log creates"
-msgstr ""
+msgstr "Δημιουργία αρχείων καταγραφής"
#. module: audittrail
#: view:audittrail.log:0
msgid "AuditTrail Logs"
-msgstr ""
+msgstr "παρακολούθηση της πόρειας των αρχείων καταγραφής"
#. module: audittrail
#: model:ir.ui.menu,name:audittrail.menu_action_audittrail_rule_tree
msgid "Rules"
-msgstr ""
+msgstr "Κανόνες"
#. module: audittrail
#: view:audittrail.log:0
msgid "New Value : "
-msgstr ""
+msgstr "Νέα τιμή : "
#. module: audittrail
#: field:audittrail.rule,user_id:0
msgid "Users"
-msgstr ""
+msgstr "Χρήστες"
#. module: audittrail
#: field:audittrail.log.line,old_value_text:0
msgid "Old value Text"
-msgstr ""
+msgstr "Παλιά τιμή κειμένου"
#. module: audittrail
#: wizard_button:audittrail.view.log,init,end:0
msgid "Cancel"
-msgstr ""
+msgstr "Ακύρωση"
#. module: audittrail
#: field:audittrail.rule,log_unlink:0
msgid "Log deletes"
-msgstr ""
+msgstr "Διαγραφή αρχείων καταγραφής"
diff --git a/addons/base_action_rule/base_action_rule.py b/addons/base_action_rule/base_action_rule.py
index 8b9e6f700e8..405c3155619 100644
--- a/addons/base_action_rule/base_action_rule.py
+++ b/addons/base_action_rule/base_action_rule.py
@@ -233,7 +233,6 @@ the rule to mark CC(mail to any other person defined in actions)."),
@param email: pass the emails
@param emailfrom: Pass name the email From else False
@param context: A standard dictionary for contextual values """
-
body = self.format_mail(obj, body)
if not emailfrom:
if hasattr(obj, 'user_id') and obj.user_id and obj.user_id.address_id and\
@@ -255,8 +254,7 @@ the rule to mark CC(mail to any other person defined in actions)."),
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
@param context: A standard dictionary for contextual values """
-
- ok = True
+ ok = True
if eval(action.domain):
obj_ids = obj._table.search(cr, uid, eval(action.domain), context=context)
if not obj.id in obj_ids:
@@ -277,7 +275,8 @@ the rule to mark CC(mail to any other person defined in actions)."),
ok = ok and (not action.trg_state_from or action.trg_state_from==obj.state)
if state_to:
ok = ok and (not action.trg_state_to or action.trg_state_to==state_to)
-
+ elif action.trg_state_to:
+ ok = False
reg_name = action.regex_name
result_name = True
if reg_name:
diff --git a/addons/base_contact/base_contact_demo.xml b/addons/base_contact/base_contact_demo.xml
index 6acdd08cf14..2c76b1844e8 100644
--- a/addons/base_contact/base_contact_demo.xml
+++ b/addons/base_contact/base_contact_demo.xml
@@ -179,7 +179,7 @@
CTO
-
+
diff --git a/addons/base_module_quality/i18n/el.po b/addons/base_module_quality/i18n/el.po
index 9ae13c3add3..1d65ed479be 100644
--- a/addons/base_module_quality/i18n/el.po
+++ b/addons/base_module_quality/i18n/el.po
@@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base_module_quality
diff --git a/addons/base_module_quality/i18n/es.po b/addons/base_module_quality/i18n/es.po
index fbb4ecf48fb..c68bb5d0a60 100644
--- a/addons/base_module_quality/i18n/es.po
+++ b/addons/base_module_quality/i18n/es.po
@@ -15,7 +15,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base_module_quality
diff --git a/addons/base_report_creator/i18n/el.po b/addons/base_report_creator/i18n/el.po
index a914194a57b..ea439e5dad8 100644
--- a/addons/base_report_creator/i18n/el.po
+++ b/addons/base_report_creator/i18n/el.po
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
"X-Poedit-Country: GREECE\n"
"X-Poedit-Language: Greek\n"
diff --git a/addons/board_association/i18n/el.po b/addons/board_association/i18n/el.po
index 35fcc48ad27..9ef871e24af 100644
--- a/addons/board_association/i18n/el.po
+++ b/addons/board_association/i18n/el.po
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-24 03:46+0000\n"
+"X-Launchpad-Export-Date: 2010-06-25 03:46+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
"X-Poedit-Country: GREECE\n"
"X-Poedit-Language: Greek\n"
diff --git a/addons/board_auction/i18n/el.po b/addons/board_auction/i18n/el.po
index f99a794521e..990647cd866 100644
--- a/addons/board_auction/i18n/el.po
+++ b/addons/board_auction/i18n/el.po
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-24 03:46+0000\n"
+"X-Launchpad-Export-Date: 2010-06-25 03:46+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
"X-Poedit-Country: GREECE\n"
"X-Poedit-Language: Greek\n"
diff --git a/addons/board_crm_configuration/i18n/el.po b/addons/board_crm_configuration/i18n/el.po
index e2f697e23fd..93c5529b516 100644
--- a/addons/board_crm_configuration/i18n/el.po
+++ b/addons/board_crm_configuration/i18n/el.po
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-24 03:46+0000\n"
+"X-Launchpad-Export-Date: 2010-06-25 03:46+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
"X-Poedit-Country: GREECE\n"
"X-Poedit-Language: Greek\n"
diff --git a/addons/board_document/i18n/el.po b/addons/board_document/i18n/el.po
index 338203acd35..f2d2a47d093 100644
--- a/addons/board_document/i18n/el.po
+++ b/addons/board_document/i18n/el.po
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
"X-Poedit-Country: GREECE\n"
"X-Poedit-Language: Greek\n"
diff --git a/addons/board_project/i18n/el.po b/addons/board_project/i18n/el.po
index 4b6cc7b8820..a51277747be 100644
--- a/addons/board_project/i18n/el.po
+++ b/addons/board_project/i18n/el.po
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-24 03:46+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:57+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
"X-Poedit-Country: GREECE\n"
"X-Poedit-Language: Greek\n"
diff --git a/addons/crm/board_crm_view.xml b/addons/crm/board_crm_view.xml
index 69ca8e964e9..4729ab7283d 100644
--- a/addons/crm/board_crm_view.xml
+++ b/addons/crm/board_crm_view.xml
@@ -19,15 +19,16 @@
crm.lead
form
tree,form
-
+
[('user_id','=',uid),('state','!=','pending'),('state','!=','cancel')]
+
crm.meeting
form
tree,form
- [('user_id','=',uid),('state','!=','pending'),('state','!=','cancel')]
+ [('user_id','=',uid),('state','!=','cancel'),('date','ilike',time.strftime("%Y-%m"))]
@@ -53,34 +54,28 @@
@@ -105,7 +100,5 @@
action="open_board_crm"
sequence="1"
id="menu_board_crm" icon="terp-graph"/>
-
-
diff --git a/addons/crm/crm.py b/addons/crm/crm.py
index feb49ba7ae7..c46519cdb97 100644
--- a/addons/crm/crm.py
+++ b/addons/crm/crm.py
@@ -118,20 +118,18 @@ class crm_case(object):
@param context: A standard dictionary for contextual values"""
if not context:
context = {}
-
s = self.get_stage_dict(cr, uid, ids, context=context)
section = self._name
+ stage = False
stage_pool = self.pool.get('crm.case.stage')
for case in self.browse(cr, uid, ids, context):
if section in s:
st = case.stage_id.id or False
if st in s[section]:
data = {'stage_id': s[section][st]}
- stage = stage_pool.browse(cr, uid, s[section][st], context=context)
- if stage.on_change:
- data.update({'probability': stage.probability})
+ stage = s[section][st]
self.write(cr, uid, [case.id], data)
- return True
+ return stage
def get_stage_dict(self, cr, uid, ids, context=None):
"""This function gives dictionary for stage according to stage levels
@@ -174,9 +172,10 @@ class crm_case(object):
s[section] = dict([(v, k) for (k, v) in s[section].iteritems()])
if st in s[section]:
data = {'stage_id': s[section][st]}
- stage = stage_pool.browse(cr, uid, s[section][st], context=context)
- if stage.on_change:
- data.update({'probability': stage.probability})
+ if s[section][st]:
+ stage = stage_pool.browse(cr, uid, s[section][st], context=context)
+ if stage.on_change:
+ data.update({'probability': stage.probability})
self.write(cr, uid, [case.id], data)
return True
diff --git a/addons/crm/crm_action_rule.py b/addons/crm/crm_action_rule.py
index 9092efef8e8..2c0c5327e5d 100644
--- a/addons/crm/crm_action_rule.py
+++ b/addons/crm/crm_action_rule.py
@@ -69,12 +69,10 @@ this if you want the rule to send an email to the partner."),
return tools.email_send(emailfrom, emails, name, body, reply_to=reply_to, openobject_id=str(obj.id))
def do_check(self, cr, uid, action, obj, context={}):
-
""" @param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
@param context: A standard dictionary for contextual values"""
-
ok = super(base_action_rule, self).do_check(cr, uid, action, obj, context=context)
if hasattr(obj, 'section_id'):
@@ -89,7 +87,6 @@ this if you want the rule to send an email to the partner."),
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
@param context: A standard dictionary for contextual values """
-
res = super(base_action_rule, self).do_action(cr, uid, action, model_obj, obj, context=context)
write = {}
@@ -125,7 +122,7 @@ this if you want the rule to send an email to the partner."),
@param context: A standard dictionary for contextual values """
res = super(base_action_rule, self).state_get(cr, uid, context=context)
- return res + [('escalate', 'Escalate')] + crm.AVAILABLE_STATES
+ return res + crm.AVAILABLE_STATES
def priority_get(self, cr, uid, context={}):
diff --git a/addons/crm/crm_data.xml b/addons/crm/crm_data.xml
index e8d5965a4c0..e494db325e5 100644
--- a/addons/crm/crm_data.xml
+++ b/addons/crm/crm_data.xml
@@ -1,9 +1,9 @@
-
- Sales Department
- Sales
-
+
+ Sales Department
+ Sales
+
diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py
index 2700581d6cc..bf6d391ab82 100644
--- a/addons/crm/crm_lead.py
+++ b/addons/crm/crm_lead.py
@@ -37,7 +37,6 @@ class crm_lead(osv.osv, crm_case):
_description = "Lead"
_order = "priority, id desc"
_inherit = ['mailgate.thread','res.partner.address']
-
def _compute_day(self, cr, uid, ids, fields, args, context={}):
"""
@param cr: the current row, from the database cursor,
@@ -97,20 +96,20 @@ class crm_lead(osv.osv, crm_case):
_columns = {
# From crm.case
- 'name': fields.char('Name', size=64),
- 'active': fields.boolean('Active', required=False),
+ 'name': fields.char('Name', size=64),
+ 'active': fields.boolean('Active', required=False),
'date_action_last': fields.datetime('Last Action', readonly=1),
'date_action_next': fields.datetime('Next Action', readonly=1),
- 'email_from': fields.char('Email', size=128, help="These people will receive email."),
+ 'email_from': fields.char('Email', size=128, help="E-mail address of the contact"),
'section_id': fields.many2one('crm.case.section', 'Sales Team', \
- select=True, help='Sales team to which Case belongs to.\
- Define Responsible user and Email account for mail gateway.'),
+ select=True, help='Sales team to which this case belongs to.\
+ Defines responsible user and e-mail address for the mail gateway.'),
'create_date': fields.datetime('Creation Date' , readonly=True),
'email_cc': fields.text('Watchers Emails', size=252 , help="These \
-people will receive a copy of the future communication between partner \
-and users by email"),
+addresses will receive a copy of the future e-mail communication between partner \
+and users"),
'description': fields.text('Notes'),
- 'write_date': fields.datetime('Update Date' , readonly=True),
+ 'write_date': fields.datetime('Update Date' , readonly=True),
# Lead fields
'categ_id': fields.many2one('crm.case.categ', 'Lead Source', \
@@ -120,8 +119,8 @@ and users by email"),
domain="[('section_id','=',section_id),\
('object_id.model', '=', 'crm.lead')]"),
'partner_name': fields.char("Partner Name", size=64),
- 'optin': fields.selection([('yes','Yes'),('no','No'),('unknown','/')],'Opt-In'),
- 'optout': fields.selection([('yes','Yes'),('no','No'),('unknown','/')],'Opt-Out'),
+ 'optin': fields.boolean('Opt-In'),
+ 'optout': fields.boolean('Opt-Out'),
'type':fields.selection([
('lead','Lead'),
('opportunity','Opportunity'),
@@ -153,8 +152,7 @@ and users by email"),
'user_id': crm_case._get_default_user,
'email_from': crm_case._get_default_email,
'state': lambda *a: 'draft',
- 'optin': lambda *a: 'unknown',
- 'optout': lambda *a: 'unknown',
+ 'type': lambda *a: 'lead',
'section_id': crm_case._get_section,
'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.lead', context=c),
'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0],
@@ -238,10 +236,19 @@ and users by email"),
}
return value
+ def stage_next(self, cr, uid, ids, context=None):
+ stage = super(crm_lead, self).stage_next(cr, uid, ids, context)
+ if stage:
+ stage_obj = self.pool.get('crm.case.stage').browse(cr, uid, stage, context=context)
+ if stage_obj.on_change:
+ data = {'probability': stage_obj.probability}
+ self.write(cr, uid, ids, data)
+ return stage
+
def message_new(self, cr, uid, msg, context):
"""
Automatically calls when new email message arrives
-
+
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks
@@ -253,7 +260,7 @@ and users by email"),
body = msg.get('body')
msg_from = msg.get('from')
priority = msg.get('priority')
-
+
vals = {
'name': subject,
'email_from': msg_from,
@@ -263,13 +270,13 @@ and users by email"),
}
if msg.get('priority', False):
vals['priority'] = priority
-
- res = mailgate_pool.get_partner(cr, uid, msg.get('from'))
+
+ res = mailgate_pool.get_partner(cr, uid, msg.get('from') or msg.get_unixfrom())
if res:
vals.update(res)
+
res = self.create(cr, uid, vals, context)
-
-
+
attachents = msg.get('attachments', [])
for attactment in attachents or []:
data_attach = {
@@ -285,21 +292,18 @@ and users by email"),
return res
def message_update(self, cr, uid, ids, vals={}, msg="", default_act='pending', context={}):
- """
+ """
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
@param ids: List of update mail’s IDs
"""
-
+
if isinstance(ids, (str, int, long)):
ids = [ids]
-
+
msg_from = msg['from']
- vals.update({
- 'description': msg['body']
- })
- if msg.get('priority', False):
+ if msg.get('priority'):
vals['priority'] = msg.get('priority')
maps = {
@@ -307,46 +311,23 @@ and users by email"),
'revenue': 'planned_revenue',
'probability':'probability'
}
- vls = { }
+ vls = {}
for line in msg['body'].split('\n'):
line = line.strip()
res = tools.misc.command_re.match(line)
- if res and maps.get(res.group(1).lower(), False):
+ if res and maps.get(res.group(1).lower()):
key = maps.get(res.group(1).lower())
vls[key] = res.group(2).lower()
-
vals.update(vls)
- res = self.write(cr, uid, ids, vals)
- return res
- def emails_get(self, cr, uid, ids, context=None):
-
- """
- Get Emails
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param ids: List of email’s IDs
- @param context: A standard dictionary for contextual values
- """
- res = {}
-
- if isinstance(ids, (str, int, long)):
- select = [long(ids)]
- else:
- select = ids
-
- for thread in self.browse(cr, uid, select, context=context):
- values = collections.defaultdict(set)
-
- for message in thread.message_ids:
- user_email = (message.user_id and message.user_id.address_id and message.user_id.address_id.email) or False
- values['user_email'].add(user_email)
- values['email_from'].add(message.email_from)
- values['email_cc'].add(message.email_cc or False)
- values['priority'] = thread.priority
-
- res[thread.id] = dict((key,list(values[key])) for key, value in values.iteritems())
+ # Unfortunately the API is based on lists
+ # but we want to update the state based on the
+ # previous state, so we have to loop:
+ for case in self.browse(cr, uid, ids, context=context):
+ values = dict(vals)
+ if case.state == crm.AVAILABLE_STATES[4][0]: #pending
+ values.update(state=crm.AVAILABLE_STATES[1][0]) #open
+ res = self.write(cr, uid, [case.id], values, context=context)
return res
@@ -361,7 +342,6 @@ and users by email"),
@param **args: Return Dictionary of Keyword Value
"""
return True
-
crm_lead()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/crm/crm_lead_data.xml b/addons/crm/crm_lead_data.xml
index 17211a9ef66..2b47140e396 100644
--- a/addons/crm/crm_lead_data.xml
+++ b/addons/crm/crm_lead_data.xml
@@ -2,79 +2,79 @@
-
+
New
-
+
Assigned
-
+
In Process
-
+
Converted
-
+
Recycled
-
+
Dead
-
+
Telesales
-
+
Mail
-
+
Email
-
+
Print
-
+
Web
-
+
Radio
-
+
Television
-
+
Newsletter
-
+
diff --git a/addons/crm/crm_lead_menu.xml b/addons/crm/crm_lead_menu.xml
index cea854427dc..6edce727647 100644
--- a/addons/crm/crm_lead_menu.xml
+++ b/addons/crm/crm_lead_menu.xml
@@ -1,6 +1,6 @@
-
+
Leads
diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml
index 0c5afb27739..379644e72b1 100644
--- a/addons/crm/crm_lead_view.xml
+++ b/addons/crm/crm_lead_view.xml
@@ -2,7 +2,7 @@
-
+
Lead Stages
@@ -18,7 +18,7 @@
parent="menu_crm_config_lead" />
-
+
Lead Resource Type
@@ -34,7 +34,7 @@
groups="base.group_extended" sequence="2"
parent="menu_crm_config_lead" />
-
+
CRM - Leads Form
@@ -165,9 +165,10 @@
-
+
- CRM - Leads Tree
+ Leads
crm.lead
tree
-
+
-
+
+
@@ -229,8 +231,7 @@
-
+
-
+
CRM - Leads Calendar
@@ -270,7 +271,7 @@
-
+
CRM - Leads Search
@@ -300,6 +301,7 @@
('create_date','>=',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]"
/>
+
@@ -319,6 +321,20 @@
help="Show Sales Team"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -334,6 +350,5 @@
-
diff --git a/addons/crm/crm_meeting_data.xml b/addons/crm/crm_meeting_data.xml
index e96e17ac6a9..a7e4b400d76 100644
--- a/addons/crm/crm_meeting_data.xml
+++ b/addons/crm/crm_meeting_data.xml
@@ -1,30 +1,30 @@
-
+
-
- Customer Meeting
-
-
-
+
+ Customer Meeting
+
+
+
-
- Internal Meeting
-
-
-
+
+ Internal Meeting
+
+
+
-
- Phone Call
-
-
-
+
+ Phone Call
+
+
+
- Case Meeting
- crm.meeting
-
-
+ Case Meeting
+ crm.meeting
+
+
diff --git a/addons/crm/crm_meeting_menu.xml b/addons/crm/crm_meeting_menu.xml
index ec58c116baf..bf1a8459655 100644
--- a/addons/crm/crm_meeting_menu.xml
+++ b/addons/crm/crm_meeting_menu.xml
@@ -1,6 +1,6 @@
-
+
Existing Customer
-
+
Self Generated
-
-
+
+
Employee
-
+
Partner
-
+
Campaign
-
-
+
+
Website
-
-
+
+
Word of mouth
-
-
+
+
Other
-
-
+
+
Prospecting
-
+
Needs Analysis
-
+
Value Proposition
-
+
Proposal/Price Quote
-
+
Negotiation/Review
-
+
Closed Won
-
+
Closed Lost
-
+
Existing Business
-
-
+
+
New Business
-
+
diff --git a/addons/crm/crm_opportunity_demo.xml b/addons/crm/crm_opportunity_demo.xml
index aa965a07594..3c06d16dc19 100644
--- a/addons/crm/crm_opportunity_demo.xml
+++ b/addons/crm/crm_opportunity_demo.xml
@@ -55,7 +55,7 @@
-
+
diff --git a/addons/crm/crm_opportunity_menu.xml b/addons/crm/crm_opportunity_menu.xml
index 36163abfa00..60ade626071 100644
--- a/addons/crm/crm_opportunity_menu.xml
+++ b/addons/crm/crm_opportunity_menu.xml
@@ -1,6 +1,6 @@
-
+
+
+
@@ -246,6 +248,7 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -350,7 +367,7 @@
+ domain="[]" context="{'group_by':'user_id'}" />
diff --git a/addons/crm/crm_phonecall_data.xml b/addons/crm/crm_phonecall_data.xml
index 49d02f8848e..723cfeaca26 100644
--- a/addons/crm/crm_phonecall_data.xml
+++ b/addons/crm/crm_phonecall_data.xml
@@ -2,39 +2,39 @@
->
-
-
-
- Inbound
-
-
-
-
-
- Outbound
-
-
-
-
-
-
- Planned
-
-
-
-
- Held
-
-
-
-
- Not Held
-
-
-
+
+
+
+ Inbound
+
+
+
+
+
+ Outbound
+
+
+
+
+
+
+ Planned
+
+
+
+
+ Held
+
+
+
+
+ Not Held
+
+
+
-
\ No newline at end of file
+
diff --git a/addons/crm/crm_phonecall_menu.xml b/addons/crm/crm_phonecall_menu.xml
index f1363456e2c..e269cadfaf1 100644
--- a/addons/crm/crm_phonecall_menu.xml
+++ b/addons/crm/crm_phonecall_menu.xml
@@ -1,6 +1,6 @@
-
+
crm.phonecall
tree
-
diff --git a/addons/crm/i18n/es.po b/addons/crm/i18n/es.po
index 974671e9272..a5a1074a2fc 100644
--- a/addons/crm/i18n/es.po
+++ b/addons/crm/i18n/es.po
@@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-24 03:46+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:57+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: crm
diff --git a/addons/crm/report/crm_lead_report.py b/addons/crm/report/crm_lead_report.py
index a70bd45875d..f9c39c92403 100644
--- a/addons/crm/report/crm_lead_report.py
+++ b/addons/crm/report/crm_lead_report.py
@@ -77,7 +77,6 @@ class crm_lead_report(osv.osv):
'name': fields.char('Year', size=64, required=False, readonly=True),
'user_id':fields.many2one('res.users', 'User', readonly=True),
'section_id':fields.many2one('crm.case.section', 'Section', readonly=True),
- 'nbr': fields.integer('# of Cases', readonly=True),
'state': fields.selection(AVAILABLE_STATES, 'State', size=16, readonly=True),
'avg_answers': fields.function(_get_data, string='Avg. Answers', method=True, type="integer"),
'perc_done': fields.function(_get_data, string='%Done', method=True, type="float"),
@@ -92,10 +91,10 @@ class crm_lead_report(osv.osv):
'create_date': fields.datetime('Create Date', readonly=True),
'day': fields.char('Day', size=128, readonly=True),
'email': fields.integer('# of Emails', size=128, readonly=True),
- 'delay_open': fields.float('Delay to open',digits=(16,2),readonly=True, group_operator="avg",help="Number of Days to open the case"),
+ 'delay_open': fields.float('Delay to Open',digits=(16,2),readonly=True, group_operator="avg",help="Number of Days to open the case"),
+ 'delay_close': fields.float('Delay to Close',digits=(16,2),readonly=True, group_operator="avg",help="Number of Days to close the case"),
'delay_expected': fields.float('Overpassed Deadline',digits=(16,2),readonly=True, group_operator="avg"),
- 'delay_close': fields.float('Delay to close',digits=(16,2),readonly=True, group_operator="avg",help="Number of Days to close the case"),
- 'probability': fields.float('Probability',digits=(16,2),readonly=True),
+ 'probability': fields.float('Probability',digits=(16,2),readonly=True, group_operator="avg"),
'planned_revenue': fields.float('Planned Revenue',digits=(16,2),readonly=True),
'categ_id': fields.many2one('crm.case.categ', 'Category',\
domain="[('section_id','=',section_id),\
@@ -107,6 +106,7 @@ class crm_lead_report(osv.osv):
'opening_date': fields.date('Opening Date', readonly=True),
'creation_date': fields.date('Creation Date', readonly=True),
'date_closed': fields.date('Close Date', readonly=True),
+ 'nbr': fields.integer('# of Cases', readonly=True),
'company_id': fields.many2one('res.company', 'Company', readonly=True),
'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority'),
'type':fields.selection([
diff --git a/addons/crm/report/crm_lead_report_view.xml b/addons/crm/report/crm_lead_report_view.xml
index 5292b297c89..c20ea9b48b9 100644
--- a/addons/crm/report/crm_lead_report_view.xml
+++ b/addons/crm/report/crm_lead_report_view.xml
@@ -23,35 +23,15 @@
-
-
-
+
+
+
-
-
-
- crm.lead.report.form
- crm.lead.report
- form
-
-
-
-
-
@@ -59,9 +39,9 @@
crm.lead.report
graph
-
-
-
+
+
+
@@ -75,37 +55,49 @@
search
-
-
-
+
+
+
+
+
+
-
+ domain="[('create_date','>',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]"/>
+
-
-
-
-
-
+
+
+
+
+
+
-
+
-
@@ -133,19 +125,19 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -187,10 +179,9 @@
Leads Analysis
crm.lead.report
form
- {"search_default_User":1,"search_default_This Month":1,'group_by_no_leaf':1,'group_by':[]}
+ {'search_default_lead':1, "search_default_user":1,"search_default_this_month":1,'group_by_no_leaf':1,'group_by':[]}
tree,graph
- ['|',('type', '=', 'lead'),('type', '=', False)]
-
+ []
@@ -211,10 +202,9 @@
Opportunities Analysis
crm.lead.report
form
- {"search_default_User":1,"search_default_This Month":1,'group_by_no_leaf':1,'group_by':[]}
+ {"search_default_opportunity": 1, "search_default_user":1,"search_default_this_month":1,'group_by_no_leaf':1,'group_by':[]}
tree,graph
- [('type', '=', 'opportunity')]
-
+ []
diff --git a/addons/crm/report/crm_phonecall_report_view.xml b/addons/crm/report/crm_phonecall_report_view.xml
index ccc6cd677f4..c0f812886cf 100644
--- a/addons/crm/report/crm_phonecall_report_view.xml
+++ b/addons/crm/report/crm_phonecall_report_view.xml
@@ -68,69 +68,69 @@
-
+
crm.phonecall.report.select
crm.phonecall.report
search
-
-
+
+
-
+
+ domain="[('create_date','<=', time.strftime('%%Y-%%m-%%d')), ('create_date','>',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]"/>
-
+
+ string="Current"
+ domain="[('state','in',('draft','oprn'))]"/>
+ string="Pending"
+ domain="[('state','=','pending')]"/>
+ string="Done"
+ domain="[('state','=','done')]"/>
-
+
-
+
-
-
-
+
+
+
-
+
+ domain="[]"
+ context="{'group_by':'section_id'}" />
+ domain="[]" context="{'group_by':'categ_id'}" />
+ domain="[]" context="{'group_by':'state'}" />
-
-
-
+
+
+
-
+
diff --git a/addons/crm/res_partner.py b/addons/crm/res_partner.py
index 3d2dc0373a5..2dbae32ad98 100644
--- a/addons/crm/res_partner.py
+++ b/addons/crm/res_partner.py
@@ -24,17 +24,14 @@ from osv import fields,osv
class res_partner(osv.osv):
""" Inherits partner and adds CRM information in the partner form """
_inherit = 'res.partner'
-
_columns = {
- 'opportunity_ids': fields.one2many('crm.lead', 'partner_id',\
- 'Opportunities', readonly=True, \
- domain=[('type', '=', 'opportunity')]),
- 'meeting_ids': fields.one2many('crm.meeting', 'partner_id',\
- 'Meetings', readonly=True),
- 'phonecall_ids': fields.one2many('crm.phonecall', 'partner_id',\
- 'Phonecalls', readonly=True),
- }
-
+ 'opportunity_ids': fields.one2many('crm.lead', 'partner_id',\
+ 'Leads and Opportunities'),
+ 'meeting_ids': fields.one2many('crm.meeting', 'partner_id',\
+ 'Meetings'),
+ 'phonecall_ids': fields.one2many('crm.phonecall', 'partner_id',\
+ 'Phonecalls'),
+ }
res_partner()
diff --git a/addons/crm/res_partner_view.xml b/addons/crm/res_partner_view.xml
index 769cb5d5c81..3ae772b2b85 100644
--- a/addons/crm/res_partner_view.xml
+++ b/addons/crm/res_partner_view.xml
@@ -4,62 +4,70 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+ res.partner.crm.info.inherit1
+ res.partner
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/crm/security/ir.model.access.csv b/addons/crm/security/ir.model.access.csv
index 595e63736bf..3d9921db9ec 100644
--- a/addons/crm/security/ir.model.access.csv
+++ b/addons/crm/security/ir.model.access.csv
@@ -4,32 +4,27 @@
"access_crm_segmentation","crm.segmentation","model_crm_segmentation","crm.group_crm_manager",1,1,1,1
"access_crm_segmentation_line","crm.segmentation.line","model_crm_segmentation_line","crm.group_crm_manager",1,1,1,1
"access_crm_case_section","crm.case.section","model_crm_case_section","crm.group_crm_user",1,0,0,0
-"access_crm_case_categ","crm.case.categ","model_crm_case_categ","crm.group_crm_user",1,0,0,0
+"access_crm_case_categ","crm.case.categ","model_crm_case_categ","base.group_user",1,0,0,0
"access_crm_meeting","crm.meeting","model_crm_meeting","crm.group_crm_user",1,1,1,1
+"access_crm_meeting_all","crm.meeting"_allll,"model_crm_meeting","base.group_user",1,0,0,0
"access_crm_lead","crm.lead","model_crm_lead","crm.group_crm_user",1,1,1,1
+"access_crm_lead.all","crm.lead.all","model_crm_lead","base.group_user",1,0,0,0
"access_crm_phonecall","crm.phonecall","model_crm_phonecall","crm.group_crm_user",1,1,1,1
+"access_crm_phonecall.all","crm.phonecall.all","model_crm_phonecall","base.group_user",1,0,0,0
"access_crm_case_section_user","crm.case.section.user","model_crm_case_section","crm.group_crm_user",1,0,0,0
"access_crm_case_section_manager","crm.case.section.manager","model_crm_case_section","crm.group_crm_manager",1,1,1,1
"access_crm_case_categ_user","crm.case.categ.user","model_crm_case_categ","crm.group_crm_user",1,0,0,0
"access_crm_case_categ_manager","crm.case.categ.manager","model_crm_case_categ","crm.group_crm_manager",1,1,1,1
-"access_crm_case_stage","crm.case.stage","model_crm_case_stage","crm.group_crm_user",1,0,0,0
+"access_crm_case_stage","crm.case.stage","model_crm_case_stage","base.group_user",1,0,0,0
"access_crm_case_stage_manager","crm.case.stage","model_crm_case_stage","crm.group_crm_manager",1,1,1,1
"access_crm_case_resource_type_user","crm_case_resource_type user","model_crm_case_resource_type","crm.group_crm_user",1,0,0,0
"access_crm_case_resource_type_manager","crm_case_resource_type manager","model_crm_case_resource_type","crm.group_crm_manager",1,1,1,1
"access_crm_lead_report_manager","crm.lead.report","model_crm_lead_report","crm.group_crm_manager",1,0,0,0
"access_crm_phonecall_report_manager","crm.phonecall.report","model_crm_phonecall_report","crm.group_crm_manager",1,0,0,0
-"access_crm_lead2partner","crm.lead2partner","model_crm_lead2partner","crm.group_crm_user",1,1,1,1
-"access_crm_lead2opportunity","crm.lead2opportunity","model_crm_lead2opportunity","crm.group_crm_user",1,1,1,1
-"access_crm_opportunity2phonecall","crm.opportunity2phonecall","model_crm_opportunity2phonecall","crm.group_crm_user",1,1,1,1
-"access_crm_phonecall2phonecall","crm.phonecall2phonecall","model_crm_phonecall2phonecall","crm.group_crm_user",1,1,1,1
-"access_crm_phonecall2partner","crm.phonecall2partner","model_crm_phonecall2partner","crm.group_crm_user",1,1,1,1
-"access_crm_phonecall2opportunity","crm.phonecall2opportunity","model_crm_phonecall2opportunity","crm.group_crm_user",1,1,1,1
"access_crm_send_mail","crm.send.mail","model_crm_send_mail","crm.group_crm_user",1,1,1,1
"access_crm_send_mail_attachment","crm.send.mail.attachment","model_crm_send_mail_attachment","crm.group_crm_user",1,1,1,1
"access_crm_partner2opportunity","crm.partner2opportunity","model_crm_partner2opportunity","crm.group_crm_user",1,1,1,1
-"access_crm_lead2opportunity_partner","crm.lead2opportunity.partner","model_crm_lead2opportunity_partner","crm.group_crm_user",1,1,1,1
"access_crm_installer","crm.installer.rule","model_crm_installer","base.group_system",1,1,1,1
-"access_crm_lead_forward_to_partner","crm.lead.forward.to.partner","model_crm_lead_forward_to_partner","crm.group_crm_user",1,1,1,1
"access_res_partner","res.partner.crm.user","base.model_res_partner","crm.group_crm_user",1,0,0,0
"access_res_partner_address","res.partner.address.crm.user","base.model_res_partner_address","crm.group_crm_user",1,0,0,0
"access_res_partner_category","res.partner.category.crm.user","base.model_res_partner_category","crm.group_crm_user",1,0,0,0
diff --git a/addons/crm/wizard/crm_forward_to_partner.py b/addons/crm/wizard/crm_forward_to_partner.py
index afae01ca2fe..f6f43ed7f38 100644
--- a/addons/crm/wizard/crm_forward_to_partner.py
+++ b/addons/crm/wizard/crm_forward_to_partner.py
@@ -20,10 +20,12 @@
#
##############################################################################
-from osv import osv, fields
+import base64
+import itertools
-from tools.translate import _
+from osv import osv, fields
import tools
+from tools.translate import _
class crm_lead_forward_to_partner(osv.osv_memory):
"""Forwards lead history"""
@@ -31,20 +33,28 @@ class crm_lead_forward_to_partner(osv.osv_memory):
_columns = {
'name': fields.selection([('user', 'User'), ('partner', 'Partner'), \
- ('email', 'Email Address')], 'Send to', required=True),
- 'user_id': fields.many2one('res.users', "User"),
- 'partner_id' : fields.many2one('res.partner', 'Partner'),
- 'address_id' : fields.many2one('res.partner.address', 'Address'),
- 'email_from' : fields.char('From', required=True, size=128),
- 'email_to' : fields.char('To', required=True, size=128),
- 'subject' : fields.char('Subject', required=True, size=128),
- 'message' : fields.text('Message', required=True),
+ ('email', 'Email Address')], 'Send to', required=True),
+ 'user_id': fields.many2one('res.users', "User"),
+ 'partner_id' : fields.many2one('res.partner', 'Partner'),
+ 'address_id' : fields.many2one('res.partner.address', 'Address'),
+ 'email_from' : fields.char('From', required=True, size=128),
+ 'email_to' : fields.char('To', required=True, size=128),
+ 'subject' : fields.char('Subject', required=True, size=128),
+ 'message' : fields.text('Message', required=True),
'history': fields.selection([('latest', 'Latest email'), ('whole', 'Whole Story'), ('info', 'Case Information')], 'Send history', required=True),
- 'add_cc': fields.boolean('Add as CC', required=False, help="Selcect if you want this user to add as cc for this case.This user will receive all future conversations"),
+ 'add_cc': fields.boolean('Add as CC', required=False, help="Check this box if you want this address to be added in the CC list"\
+ " for this case, in order to receive all future conversations"),
}
-
+
+ _defaults = {
+ 'name' : 'email',
+ 'history': 'latest',
+ 'add_cc': True,
+ 'email_from': lambda self, cr, uid, *a: self.pool.get('res.users')._get_email_from(cr, uid, uid)[uid]
+ }
+
def get_whole_history(self, cr, uid, ids, context=None):
- """This function gets whole communication history and returns as top posting style
+ """This function gets whole communication history and returns as top posting style
@param self: The object pointer
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
@@ -87,13 +97,10 @@ class crm_lead_forward_to_partner(osv.osv_memory):
"""
if not user:
return {'value': {'email_to': False}}
- email = False
- addr = self.pool.get('res.users').read(cr, uid, user, ['address_id'])['address_id']
- if addr:
- email = self.pool.get('res.partner.address').read(cr, uid, addr[0] , ['email'])['email']
+ email = self.pool.get('res.users')._get_email_from(cr, uid, [user])[user]
return {'value': {'email_to': email}}
- def on_change_history(self, cr, uid, ids, history, context=None):
+ def on_change_history(self, cr, uid, ids, history_type, context=None):
"""Gives message body according to type of history selected
* info: Forward the case information
* whole: Send the whole history
@@ -106,31 +113,36 @@ class crm_lead_forward_to_partner(osv.osv_memory):
"""
#TODO: ids and context are not comming
res = False
- msg_val = ''
res_id = context.get('active_id')
- model = context.get('active_model')
- model_pool = self.pool.get(model)
- if not res_id or not model:
- return res
- if history == 'info':
+ msg_val = self._get_case_history(cr, uid, history_type, res_id, context=context)
+ if msg_val:
+ res = {'value': {'message' : '\n\n' + msg_val}}
+ return res
+
+ def _get_case_history(self, cr, uid, history_type, res_id, context=None):
+ if not res_id:
+ return
+
+ msg_val = ''
+ model_pool = self.pool.get('crm.lead')
+ print history_type
+ if history_type == 'info':
msg_val = self.get_lead_details(cr, uid, res_id, context=context)
- if history == 'whole':
+ elif history_type == 'whole':
log_ids = model_pool.browse(cr, uid, res_id, context=context).message_ids
- log_ids = map(lambda x: x.id, log_ids)
+ log_ids = [x.id for x in log_ids]
if not log_ids:
raise osv.except_osv('Warning!', 'There is no history to send')
msg_val = self.get_whole_history(cr, uid, log_ids, context=context)
- if history == 'latest':
+ elif history_type == 'latest':
log_ids = model_pool.browse(cr, uid, res_id, context=context).message_ids
if not log_ids:
raise osv.except_osv('Warning!', 'There is no history to send')
msg_val = self.get_latest_history(cr, uid, log_ids[0].id, context=context)
- if msg_val:
- res = {'value': {'message' : '\n\n' + msg_val}}
- return res
+ return msg_val
def on_change_partner(self, cr, uid, ids, partner_id):
"""This function fills address information based on partner/user selected
@@ -169,7 +181,7 @@ class crm_lead_forward_to_partner(osv.osv_memory):
context = {}
res_id = context.get('active_id', False)
-
+
model = context.get('active_model', False)
if not res_id or not model:
return {}
@@ -184,19 +196,35 @@ class crm_lead_forward_to_partner(osv.osv_memory):
body = case_pool.format_body(this.message)
email_from = this.email_from or False
- flag = False
- flag = tools.email_send(
- email_from,
- emails,
- this.subject,
- body,
+ # extract attachements from case and emails according to mode
+ attachments = []
+ attach_pool = self.pool.get('ir.attachment')
+ direct_attachments = attach_pool.search(cr, uid, [('res_model', '=', 'crm.lead'), ('res_id', '=', res_id)], context=context)
+ attachments += attach_pool.browse(cr, uid, direct_attachments, context=context)
+ if this.history in ['latest', 'whole'] and case.message_ids:
+ msgs = case.message_ids
+ if this.history == 'latest':
+ msgs = msgs[:1]
+ attachments.extend(itertools.chain(*[m.attachment_ids for m in msgs]))
+
+ result = tools.email_send(
+ email_from,
+ emails,
+ this.subject,
+ body,
+ openobject_id=str(case.id),
+ attach=[(a.datas_fname or a.name, base64.decodestring(a.datas)) for a in attachments if a.datas],
+ reply_to=case.section_id.reply_to,
)
- if flag:
+
+ if result:
case_pool._history(cr, uid, [case], _('Forward'), history=True, email=this.email_to, subject=this.subject, details=body, email_from=email_from)
- if not flag:
- raise osv.except_osv(_('Error!'), _('Unable to send mail. Please check SMTP is configured properly.'))
- if this.add_cc:
+ else:
+ raise osv.except_osv(_('Error!'), _('Unable to send mail. Please check SMTP is configured properly.'))
+
+ if this.add_cc and (not case.email_cc or not this.email_to in case.email_cc):
case_pool.write(cr, uid, case.id, {'email_cc' : case.email_cc and case.email_cc + ', ' + this.email_to or this.email_to})
+
return {}
def get_lead_details(self, cr, uid, lead_id, context=None):
@@ -209,11 +237,11 @@ class crm_lead_forward_to_partner(osv.osv_memory):
'zip', 'city', 'country_id', 'state_id', 'email_from',
'phone', 'fax', 'mobile'
]
-
+
for field_name in field_names:
field_definition = lead_proxy._columns[field_name]
value = None
-
+
if field_definition._type == 'selection':
if hasattr(field_definition.selection, '__call__'):
key = field_definition.selection(lead_proxy, cr, uid, context=context)
@@ -225,7 +253,7 @@ class crm_lead_forward_to_partner(osv.osv_memory):
value = lead[field_name].name_get()[0][1]
else:
value = lead[field_name]
-
+
message.append("%s: %s" % (field_definition.string, value or ''))
elif lead.type == 'opportunity':
pa = lead.partner_address_id
@@ -246,7 +274,7 @@ class crm_lead_forward_to_partner(osv.osv_memory):
"Mobile: %s" % (pa.mobile or ''),
]
return "\n".join(message + ['---'])
-
+
def default_get(self, cr, uid, fields, context=None):
"""
This function gets default values
@@ -254,29 +282,21 @@ class crm_lead_forward_to_partner(osv.osv_memory):
if context is None:
context = {}
- active_ids = context.get('active_ids')
- if not active_ids:
- return {}
+ defaults = super(crm_lead_forward_to_partner, self).default_get(cr, uid, fields, context=context)
+
+ active_id = context.get('active_id')
+ if not active_id:
+ return defaults
lead_proxy = self.pool.get('crm.lead')
- lead = lead_proxy.browse(cr, uid, active_ids[0], context=context)
- message = False
-
- user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
- email_from = ''
- if user.address_id and user.address_id.email:
- email_from = "%s <%s>" % (user.name, user.address_id.email)
-
- message = self.get_lead_details(cr, uid, lead.id, context=context)
+ lead = lead_proxy.browse(cr, uid, active_id, context=context)
- res = {
- 'email_from' : email_from,
- 'subject' : '[%s-Forward:%06d] %s' % (lead.type.title(), lead.id, lead.name),
- 'message' : message,
- }
- if 'history' in fields:
- res.update({'history': 'info'})
- return res
+ message = self._get_case_history(cr, uid, defaults.get('history', 'latest'), lead.id, context=context)
+ defaults.update({
+ 'subject' : '%s: %s' % (_('Fwd'), lead.name),
+ 'message' : message,
+ })
+ return defaults
crm_lead_forward_to_partner()
diff --git a/addons/crm/wizard/crm_forward_to_partner_view.xml b/addons/crm/wizard/crm_forward_to_partner_view.xml
index b6295cfa3a9..e8a60cea01f 100644
--- a/addons/crm/wizard/crm_forward_to_partner_view.xml
+++ b/addons/crm/wizard/crm_forward_to_partner_view.xml
@@ -7,28 +7,24 @@
form
diff --git a/addons/event/board_association_demo.xml b/addons/event/board_association_demo.xml
index 959f2c1f5a8..c30dad64790 100644
--- a/addons/event/board_association_demo.xml
+++ b/addons/event/board_association_demo.xml
@@ -6,13 +6,13 @@
Administrator shortcut
Demo user startup menu
-->
-
- Dashboard
-
- ir.ui.menu
- 1
-
-
+
+
+
+
+
+
+
diff --git a/addons/event_project/i18n/el.po b/addons/event_project/i18n/el.po
new file mode 100644
index 00000000000..e693321250f
--- /dev/null
+++ b/addons/event_project/i18n/el.po
@@ -0,0 +1,88 @@
+# Greek translation for openobject-addons
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2009-08-28 16:01+0000\n"
+"PO-Revision-Date: 2010-06-24 22:21+0000\n"
+"Last-Translator: Panayiotis Konstantinidis \n"
+"Language-Team: Greek \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: event_project
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Λανθασμένο XML για προβολή αρχιτεκτονικής!"
+
+#. module: event_project
+#: model:ir.actions.wizard,name:event_project.wizard_event_task
+msgid "Tasks"
+msgstr "Εργασίες"
+
+#. module: event_project
+#: wizard_button:event.project,init,done:0
+msgid "Ok"
+msgstr "Εντάξει"
+
+#. module: event_project
+#: model:ir.module.module,description:event_project.module_meta_information
+msgid ""
+"Organization and management of events.\n"
+"\n"
+" This module allow you to create retro planning for managing your "
+"events.\n"
+msgstr ""
+"Οργάνωση και διαχείριση συμβάντων.\n"
+"\n"
+" Αυτή το τμήμα του προγράμματος σας επιτρέπει να κάνετε ανασχεδιασμό για "
+"τη διαχείριση των συμβάντων σας.\n"
+
+#. module: event_project
+#: view:event.event:0
+msgid "Remaining Tasks"
+msgstr "Εργασίες που παραμένουν"
+
+#. module: event_project
+#: model:ir.module.module,shortdesc:event_project.module_meta_information
+msgid "Event - Project"
+msgstr "Συμβάν - Έργο"
+
+#. module: event_project
+#: field:event.event,project_id:0
+#: wizard_field:event.project,init,project_id:0
+#: model:ir.actions.wizard,name:event_project.event_wiz
+msgid "Project"
+msgstr "Έργο"
+
+#. module: event_project
+#: field:event.event,task_ids:0
+msgid "Project tasks"
+msgstr "Εργασίες Έργου"
+
+#. module: event_project
+#: wizard_button:event.project,init,end:0
+msgid "Cancel"
+msgstr "Ακύρωση"
+
+#. module: event_project
+#: view:event.event:0
+msgid "Create Retro-Planning"
+msgstr "Δημιουργία προγραμματισμού"
+
+#. module: event_project
+#: wizard_view:event.project,init:0
+msgid "Event"
+msgstr "Συμβάν"
+
+#. module: event_project
+#: view:event.event:0
+msgid "Tasks management"
+msgstr "Διαχείριση εργασιών"
diff --git a/addons/fetchmail/fetchmail.py b/addons/fetchmail/fetchmail.py
index 14981c13837..947434052ae 100644
--- a/addons/fetchmail/fetchmail.py
+++ b/addons/fetchmail/fetchmail.py
@@ -50,7 +50,7 @@ class email_server(osv.osv):
'type':fields.selection([
('pop', 'POP Server'),
('imap', 'IMAP Server'),
- ], 'State', select=True, readonly=False),
+ ], 'Server Type', select=True, readonly=False),
'is_ssl':fields.boolean('SSL ?', required=False),
'attach':fields.boolean('Add Attachments ?', required=False),
'date': fields.date('Date', readonly=True, states={'draft':[('readonly', False)]}),
@@ -107,11 +107,13 @@ class email_server(osv.osv):
ids = self.search(cr, uid, [])
return self.fetch_mail(cr, uid, ids, context)
- def fetch_mail(self, cr, uid, ids, context={}):
+ def fetch_mail(self, cr, uid, ids, context=None):
+ if not context:
+ context = {}
email_tool = self.pool.get('email.server.tools')
for server in self.browse(cr, uid, ids, context):
logger.notifyChannel('imap', netsvc.LOG_INFO, 'fetchmail start checking for new emails on %s' % (server.name))
-
+ context.update({'server_id': server.id, 'server_type': server.type})
count = 0
try:
if server.type == 'imap':
@@ -123,10 +125,10 @@ class email_server(osv.osv):
imap_server.login(server.user, server.password)
imap_server.select()
- result, data = imap_server.search(None, '(UNSEEN)')
+ result, data = imap_server.search(None, '(UNSEEN)')
for num in data[0].split():
result, data = imap_server.fetch(num, '(RFC822)')
- res_id = email_tool.process_email(cr, uid, server.object_id.model, data[0][1], attach=server.attach, server_id=server.id, server_type=server.type, context=context)
+ res_id = email_tool.process_email(cr, uid, server.object_id.model, data[0][1], attach=server.attach, context=context)
if res_id and server.action_id:
action_pool = self.pool.get('ir.actions.server')
action_pool.run(cr, uid, [server.action_id.id], {'active_id': res_id, 'active_ids':[res_id]})
@@ -154,7 +156,7 @@ class email_server(osv.osv):
for num in range(1, numMsgs + 1):
(header, msges, octets) = pop_server.retr(num)
msg = '\n'.join(msges)
- res_id = email_tool.process_email(cr, uid, server.object_id.model, data[0][1], attach=server.attach, server_id=server.id, server_type=server.type, context=context)
+ res_id = email_tool.process_email(cr, uid, server.object_id.model, data[0][1], attach=server.attach, context=context)
if res_id and server.action_id:
action_pool = self.pool.get('ir.actions.server')
action_pool.run(cr, uid, [server.action_id.id], {'active_id': res_id, 'active_ids':[res_id]})
@@ -182,10 +184,34 @@ class mailgate_message(osv.osv):
'type':fields.selection([
('pop', 'POP Server'),
('imap', 'IMAP Server'),
- ], 'State', select=True, readonly=True),
+ ], 'Server Type', select=True, readonly=True),
}
_order = 'id desc'
+ def create(self, cr, uid, values, context=None):
+ if not context:
+ context={}
+ server_id = context.get('server_id',False)
+ server_type = context.get('server_type',False)
+ if server_id:
+ values['server_id'] = server_id
+ if server_type:
+ values['server_type'] = server_type
+ res = super(mailgate_message,self).create(cr, uid, values, context=context)
+ return res
+
+ def write(self, cr, uid, ids, values, context=None):
+ if not context:
+ context={}
+ server_id = context.get('server_id',False)
+ server_type = context.get('server_type',False)
+ if server_id:
+ values['server_id'] = server_id
+ if server_type:
+ values['server_type'] = server_type
+ res = super(mailgate_message,self).write(cr, uid, ids, values, context=context)
+ return res
+
mailgate_message()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr/i18n/el.po b/addons/hr/i18n/el.po
index 5d965fa1178..8e5ce7616dd 100644
--- a/addons/hr/i18n/el.po
+++ b/addons/hr/i18n/el.po
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
"X-Poedit-Country: GREECE\n"
"X-Poedit-Language: Greek\n"
diff --git a/addons/hr_attendance/hr_attendance.py b/addons/hr_attendance/hr_attendance.py
index 9f5846601ef..e14a91df084 100644
--- a/addons/hr_attendance/hr_attendance.py
+++ b/addons/hr_attendance/hr_attendance.py
@@ -54,7 +54,7 @@ class hr_attendance(osv.osv):
return res
_columns = {
- 'name' : fields.datetime('Date', required=True),
+ 'name' : fields.datetime('Date', required=True, select=1),
'action' : fields.selection([('sign_in', 'Sign In'), ('sign_out', 'Sign Out'),('action','Action')], 'Action', required=True),
'action_desc' : fields.many2one("hr.action.reason", "Action reason", domain="[('action_type', '=', action)]", help='Specifies the reason for Signing In/Signing Out in case of extra hours.'),
'employee_id' : fields.many2one('hr.employee', "Employee's Name", required=True, select=True),
diff --git a/addons/hr_contract/i18n/el.po b/addons/hr_contract/i18n/el.po
index afdd0c4c3b8..2595b89be23 100644
--- a/addons/hr_contract/i18n/el.po
+++ b/addons/hr_contract/i18n/el.po
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
"X-Poedit-Country: GREECE\n"
"X-Poedit-Language: Greek\n"
diff --git a/addons/hr_expense/i18n/el.po b/addons/hr_expense/i18n/el.po
index 7ce942b3ff7..846eb9e17ed 100644
--- a/addons/hr_expense/i18n/el.po
+++ b/addons/hr_expense/i18n/el.po
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
"X-Poedit-Country: GREECE\n"
"X-Poedit-Language: Greek\n"
diff --git a/addons/hr_holidays/hr_bel_holidays_2008.xml b/addons/hr_holidays/hr_bel_holidays_2008.xml
index 4cc3322f6b7..0c09586cb0c 100644
--- a/addons/hr_holidays/hr_bel_holidays_2008.xml
+++ b/addons/hr_holidays/hr_bel_holidays_2008.xml
@@ -1,66 +1,66 @@
-
+
-
- New Year
- 2008-01-01 08:00
- 2008-01-01 18:00
-
-
-
- Easter Monday
- 2008-03-24 08:00
- 2008-03-24 18:00
-
-
-
- Labour Day
- 2008-05-01 08:00
- 2008-05-01 18:00
-
-
-
- Ascension
- 2008-05-02 08:00
- 2008-05-02 18:00
-
-
-
- Pentecost Monday
- 2008-05-12 08:00
- 2008-05-12 18:00
-
-
-
- National Day
- 2008-07-21 08:00
- 2008-07-21 18:00
-
-
-
- Assumption Day
- 2008-08-15 08:00
- 2008-08-15 18:00
-
-
-
- All Saints
- 2008-11-01 08:00
- 2008-11-01 18:00
-
-
-
- Armistice
- 2008-11-11 08:00
- 2008-11-11 18:00
-
-
-
- Christmas
- 2008-12-25 08:00
- 2008-12-25 18:00
-
-
-
+
+ New Year
+ 2008-01-01 08:00
+ 2008-01-01 18:00
+
+
+
+ Easter Monday
+ 2008-03-24 08:00
+ 2008-03-24 18:00
+
+
+
+ Labour Day
+ 2008-05-01 08:00
+ 2008-05-01 18:00
+
+
+
+ Ascension
+ 2008-05-02 08:00
+ 2008-05-02 18:00
+
+
+
+ Pentecost Monday
+ 2008-05-12 08:00
+ 2008-05-12 18:00
+
+
+
+ National Day
+ 2008-07-21 08:00
+ 2008-07-21 18:00
+
+
+
+ Assumption Day
+ 2008-08-15 08:00
+ 2008-08-15 18:00
+
+
+
+ All Saints
+ 2008-11-01 08:00
+ 2008-11-01 18:00
+
+
+
+ Armistice
+ 2008-11-11 08:00
+ 2008-11-11 18:00
+
+
+
+ Christmas
+ 2008-12-25 08:00
+ 2008-12-25 18:00
+
+
+
diff --git a/addons/hr_holidays/i18n/el.po b/addons/hr_holidays/i18n/el.po
index 2d0c0fa2310..85f4621e414 100644
--- a/addons/hr_holidays/i18n/el.po
+++ b/addons/hr_holidays/i18n/el.po
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
"X-Poedit-Country: GREECE\n"
"X-Poedit-Language: Greek\n"
diff --git a/addons/hr_payroll/i18n/et.po b/addons/hr_payroll/i18n/et.po
new file mode 100644
index 00000000000..4c9d55d7434
--- /dev/null
+++ b/addons/hr_payroll/i18n/et.po
@@ -0,0 +1,1439 @@
+# Estonian translation for openobject-addons
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2009-11-25 13:16+0000\n"
+"PO-Revision-Date: 2010-06-25 17:48+0000\n"
+"Last-Translator: lyyser \n"
+"Language-Team: Estonian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+msgid "E-mail Address"
+msgstr "E-mail Aadres"
+
+#. module: hr_payroll
+#: view:hr.holidays.status:0
+msgid "(Based on type Payroll will calculate basic salary)"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.register,net:0
+#: field:hr.payslip,net:0
+msgid "Net Salary"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,working_days:0
+msgid "Working Days"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payroll.register,state:0
+#: selection:hr.payslip,state:0
+msgid "New Slip"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payroll.advice:0
+msgid "Axis Bank"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.employee,esp_account:0
+msgid "EPS Account"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.employee,analytic_account:0
+msgid "Analytic Account for Salary Analysis"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+msgid "Allowances with Basic:"
+msgstr ""
+
+#. module: hr_payroll
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Vigane mudeli nimi toimingu definitsioonis."
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+#: rml:salary.structure:0
+msgid "Department"
+msgstr "Osakond"
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+msgid "Deductions:"
+msgstr "Mahaarvamised:"
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,gratuity:0
+msgid "Use for Gratuity ?"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payslip.pdf:0
+msgid "Employee No"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid "Salary Payment Register"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,paid:0
+msgid "Paid ? "
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.report.xml,name:hr_payroll.year_salary_report
+msgid "Year Salary Report"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payroll.register,state:0
+#: selection:hr.payslip,state:0
+msgid "Paid Salary"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.advice.line,flag:0
+msgid "D/C"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.register,company_id:0
+#: field:hr.payslip,company_id:0
+#: wizard_field:payroll.analysis,init,company_id:0
+msgid "Company"
+msgstr "Ettevõte"
+
+#. module: hr_payroll
+#: help:hr.employee,employee_account:0
+msgid "Employee Payable Account"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+msgid "Letter Details"
+msgstr "Kirja detailid"
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid ","
+msgstr ","
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+#: view:hr.payroll.register:0
+#: view:hr.payslip:0
+msgid "Set to Draft"
+msgstr "Sea mustandiks"
+
+#. module: hr_payroll
+#: rml:payroll.advice:0
+msgid "The Manager"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.holidays.status,type:0
+msgid "Half-Pay Holiday"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.allounce.deduction.categoty,type:0
+#: rml:hr.payroll.register.sheet:0
+#: field:hr.payslip,other_pay:0
+msgid "Others"
+msgstr "Muud"
+
+#. module: hr_payroll
+#: field:hr.payslip.line,slip_id:0
+#: model:ir.model,name:hr_payroll.model_hr_payslip
+#: rml:payslip.pdf:0
+msgid "Pay Slip"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.allounce.deduction.categoty:0
+msgid "Calculations Rules"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.module.module,description:hr_payroll.module_meta_information
+msgid ""
+"\n"
+" The Payroll system - India, Manages and depends on,\n"
+" * HR Details\n"
+" * HR Contracts\n"
+" * HR Payslip\n"
+" * HR Paysheet\n"
+" * HR Attendance\n"
+" * HR Holidays\n"
+" "
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+#: rml:salary.structure:0
+msgid "Salary"
+msgstr "Palk"
+
+#. module: hr_payroll
+#: field:hr.holidays.status,account_id:0
+msgid "Account"
+msgstr "Konto"
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid "Payment From"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+msgid "Miscelleanous / Statutory"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payslip.line,type:0
+msgid "Leaves"
+msgstr "Lehed"
+
+#. module: hr_payroll
+#: field:hr.payslip,register_id:0
+msgid "Register"
+msgstr "Registreeri"
+
+#. module: hr_payroll
+#: selection:wizard.year.salary,init,salary_on:0
+msgid "Next Month Date"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.payroll.register,period_id:0
+#: help:hr.payslip,period_id:0
+msgid "Keep empty to use the period of the validation(Payslip) date."
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty.line,value:0
+msgid "Value"
+msgstr "Väärtus"
+
+#. module: hr_payroll
+#: rml:payroll.advice:0
+msgid "Name of the Employee"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.contract,permit_no:0
+msgid "Work Permit No"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.advice.line,amount:0
+#: rml:payroll.advice:0
+msgid "Amount"
+msgstr "Hulk"
+
+#. module: hr_payroll
+#: field:hr.payslip,line_ids:0
+#: view:hr.payslip.line:0
+#: model:ir.model,name:hr_payroll.model_hr_payslip_line
+msgid "Payslip Line"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.passport,country_id:0
+msgid "Country of Issue"
+msgstr ""
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:0
+#, python-format
+msgid "Warning !"
+msgstr "Hoiatus!"
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:0
+#, python-format
+msgid "Please Confirm all Expanse Invoice appear for Reimbursement"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payslip.line,type:0
+msgid "Other Deduction"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.holidays.status,type:0
+msgid "Paid Holiday"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+msgid "Employees Salary Details"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.passport,date_expire:0
+msgid "Passport Expire Date"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+msgid "Special Allowance and Deductions for Employee"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.holidays.status,type:0
+msgid "Un-Paid Holiday"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.register,period_id:0
+#: field:hr.payslip,period_id:0
+msgid "Force Period"
+msgstr "Suru periood"
+
+#. module: hr_payroll
+#: rml:payslip.pdf:0
+msgid "Amount (in words) :"
+msgstr "Summa (sõnadega) :"
+
+#. module: hr_payroll
+#: field:hr.holidays.status,type:0
+msgid "Payment"
+msgstr "Makse"
+
+#. module: hr_payroll
+#: field:hr.employee,analytic_account:0
+#: field:hr.employee.grade,account_id:0
+#: field:hr.holidays.status,analytic_account_id:0
+#: field:hr.payslip.line,analytic_account_id:0
+#: rml:salary.structure:0
+msgid "Analytic Account"
+msgstr "Analüütiline konto"
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid "Expanse To"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,base:0
+msgid "Based on"
+msgstr "Põhineb"
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+#: rml:salary.structure:0
+msgid "Bank"
+msgstr "Pank"
+
+#. module: hr_payroll
+#: field:hr.payslip,move_id:0
+msgid "Expanse Entries"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.module.module,shortdesc:hr_payroll.module_meta_information
+msgid "Human Resource Payroll"
+msgstr ""
+
+#. module: hr_payroll
+#: constraint:account.analytic.account:0
+msgid "Error! You can not create recursive analytic accounts."
+msgstr "Viga! Sa ei saa luua rekursiivseid analüütilisi kontosid."
+
+#. module: hr_payroll
+#: field:hr.employee,esi_account:0
+msgid "ESI Account"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.model,name:hr_payroll.model_hr_passport
+msgid "Passport Detail"
+msgstr ""
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:0
+#, python-format
+msgid "Please defined the Employee Home Address Along with Partners !!"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.line,total:0
+msgid "Sub Total"
+msgstr "Vahesumma"
+
+#. module: hr_payroll
+#: field:hr.contract,visa_no:0
+msgid "Visa No"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty.line,from:0
+msgid "From"
+msgstr "Alates"
+
+#. module: hr_payroll
+#: field:hr.payroll.advice.line,bysal:0
+msgid "By Salary"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.ui.menu,name:hr_payroll.menu_wizard_print_year_salary
+msgid "Employee Year Salary"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.report.xml,name:hr_payroll.salary_payslip
+msgid "Employee PaySlip"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+#: rml:payroll.advice:0
+msgid "Authorised Signature"
+msgstr "Volitatud isiku allkiri"
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty.line,umo_id:0
+msgid "Unite"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Salary Detail"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:salary.structure:0
+msgid "Notes:"
+msgstr "Märkused:"
+
+#. module: hr_payroll
+#: rml:salary.structure:0
+msgid "End Date"
+msgstr "Lõppkuupäev"
+
+#. module: hr_payroll
+#: view:hr.employee:0
+msgid "Accounting Information"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee.grade:0
+msgid "Amount Information"
+msgstr "Summa info"
+
+#. module: hr_payroll
+#: field:hr.contract,passport_id:0
+#: field:hr.employee,passport_id:0
+#: view:hr.passport:0
+msgid "Passport"
+msgstr "Pass"
+
+#. module: hr_payroll
+#: field:hr.passport,employee_id:0
+#: field:hr.payroll.advice.line,employee_id:0
+#: field:hr.payslip,employee_id:0
+#: field:hr.payslip.line,employee_id:0
+msgid "Employee"
+msgstr "Töötaja"
+
+#. module: hr_payroll
+#: rml:salary.structure:0
+msgid "Start Date"
+msgstr "Alguskuupäev"
+
+#. module: hr_payroll
+#: model:ir.model,name:hr_payroll.model_hr_payroll_advice_line
+msgid "Bank Advice Lines"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,type:0
+#: field:hr.payslip.line,type:0
+#: wizard_field:payroll.analysis,init,type:0
+#: rml:salary.structure:0
+msgid "Type"
+msgstr "Tüüp"
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid "#"
+msgstr "#"
+
+#. module: hr_payroll
+#: view:hr.employee:0
+msgid "Miscelleanous"
+msgstr "Mitmesugune"
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:0
+#, python-format
+msgid "Integrity Error !"
+msgstr "Terviklikkuse viga !"
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+#: view:hr.payslip:0
+msgid "Verify Sheet"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.employee,pan_no:0
+msgid "PAN No"
+msgstr ""
+
+#. module: hr_payroll
+#: wizard_button:wizard.employees.detail,init,report:0
+#: wizard_button:wizard.year.salary,init,report:0
+msgid "Print"
+msgstr "Trüki"
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Accounting Informations"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.allounce.deduction.categoty:0
+msgid "Contributions Configuration"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.register,grows:0
+#: field:hr.payslip,grows:0
+msgid "Gross Salary"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payslip.pdf:0
+msgid "Total Earnings"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payslip.line,type:0
+msgid "Other Payment"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,basic:0
+msgid "Basic Salary - Leaves"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payroll.advice:0
+msgid "C/D"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:payroll.analysis,init,type:0
+msgid "By Employee Function"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.advice,line_ids:0
+msgid "Employee Salary"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.advice,chaque_nos:0
+msgid "Chaque Nos"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.wizard,name:hr_payroll.wizard_print_year_salary
+msgid "Year Salary Detail"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.allounce.deduction.categoty.line,amount_type:0
+#: selection:hr.payslip.line,amount_type:0
+msgid "Fixed Amount"
+msgstr "Kindel summa"
+
+#. module: hr_payroll
+#: selection:hr.payroll.register,state:0
+#: selection:hr.payslip,state:0
+msgid "Wating for Verification"
+msgstr "Ootan valideerimist"
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Account Lines"
+msgstr ""
+
+#. module: hr_payroll
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Vigane XML vaate arhitektuurile!"
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+#: view:hr.payslip:0
+msgid "Pay Salary"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid "Gross SAL"
+msgstr ""
+
+#. module: hr_payroll
+#: code:addons/hr_payroll/hr_payroll.py:0
+#, python-format
+msgid "Please defined the Partner in Home Address !!"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+#: rml:payslip.pdf:0
+msgid "For the month of"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+#: view:hr.payslip:0
+msgid "Payslip"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.allounce.deduction.categoty,type:0
+#: field:hr.payroll.register,deduction:0
+#: rml:hr.payroll.register.sheet:0
+#: field:hr.payslip,deduction:0
+#: selection:hr.payslip.line,type:0
+msgid "Deduction"
+msgstr "Mahaarvamine"
+
+#. module: hr_payroll
+#: model:ir.model,name:hr_payroll.model_hr_payroll_advice
+msgid "Bank Advice Note"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.passport:0
+msgid "Passport List"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,payment_id:0
+msgid "Payment Entries"
+msgstr "Makse kirjed"
+
+#. module: hr_payroll
+#: rml:payslip.pdf:0
+msgid "YTD"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.line,expanse_id:0
+msgid "Expense"
+msgstr "Kulu"
+
+#. module: hr_payroll
+#: selection:hr.allounce.deduction.categoty,based_on:0
+msgid "Fided Value"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payslip.line,type:0
+msgid "Loan Installment"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+#: view:hr.payslip:0
+msgid "Complete HR Checking"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payroll.advice:0
+msgid "Yours Sincerely"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid "Allowances"
+msgstr "Toetused"
+
+#. module: hr_payroll
+#: rml:payroll.advice:0
+msgid "SI. No."
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payslip.pdf:0
+msgid "Net Amount"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,based_on:0
+#: field:hr.payroll.advice,state:0
+#: field:hr.payroll.register,state:0
+#: field:hr.payslip,state:0
+msgid "State"
+msgstr "Olek"
+
+#. module: hr_payroll
+#: rml:salary.structure:0
+msgid "Salary Structure:"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.report.xml,name:hr_payroll.year_employees_detail
+#: model:ir.actions.wizard,name:hr_payroll.wizard_print_employees_detail
+#: model:ir.ui.menu,name:hr_payroll.menu_wizard_print_employees_detail
+msgid "Employees Salary Detail"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.model,name:hr_payroll.model_hr_employee_grade
+msgid "Function of the Employee"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+#: selection:hr.payroll.advice,state:0
+#: selection:hr.payroll.register,state:0
+#: selection:hr.payslip,state:0
+msgid "Confirm Sheet"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payroll.register,state:0
+#: selection:hr.payslip,state:0
+msgid "Wating for Account Verification"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+msgid "Others:"
+msgstr "Ülejäänud:"
+
+#. module: hr_payroll
+#: view:hr.employee:0
+#: field:hr.passport,contracts_ids:0
+msgid "Contracts"
+msgstr "Lepingud"
+
+#. module: hr_payroll
+#: view:hr.employee:0
+msgid "Passport and Visa"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+msgid "Employee Code"
+msgstr "Töötaja kood"
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty.line,amount_type:0
+#: field:hr.payslip.line,amount_type:0
+#: rml:salary.structure:0
+msgid "Amount Type"
+msgstr "Summa liik"
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty.line,category_id:0
+#: field:hr.payslip.line,category_id:0
+#: rml:salary.structure:0
+msgid "Category"
+msgstr "Kategooria"
+
+#. module: hr_payroll
+#: field:hr.payslip,move_line_ids:0
+msgid "Accounting Lines"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.register,bank_journal_id:0
+#: field:hr.payslip,bank_journal_id:0
+msgid "Bank Journal"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid "Total SAL"
+msgstr ""
+
+#. module: hr_payroll
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+"Objekti nimi peab algama x_'ga ja ei tohi sisaldada ühtegi erisümbolit !"
+
+#. module: hr_payroll
+#: field:hr.employee,hospital_id:0
+msgid "ESI Hospital"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.employee,slip_ids:0
+#: view:hr.payroll.register:0
+#: field:hr.payroll.register,line_ids:0
+msgid "Payslips"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payslip.pdf:0
+msgid "Earnings"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payroll.advice,state:0
+#: selection:hr.payroll.register,state:0
+#: selection:hr.payslip,state:0
+msgid "Reject"
+msgstr "Keeldu"
+
+#. module: hr_payroll
+#: model:ir.actions.act_window,name:hr_payroll.action_hr_passport_tree
+#: model:ir.ui.menu,name:hr_payroll.menu_action_hr_passport_tree
+msgid "All Passports"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+#: rml:hr.payroll.register.sheet:0
+#: rml:payslip.pdf:0
+msgid "Employee Name"
+msgstr "Töötaja nimi"
+
+#. module: hr_payroll
+#: field:hr.employee,salary_account:0
+msgid "Salary Account"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.allounce.deduction.categoty.line,amount_type:0
+#: selection:hr.payslip.line,amount_type:0
+msgid "Percentage (%)"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.advice,register_id:0
+#: view:hr.payroll.register:0
+#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_payroll_register_form
+#: model:ir.model,name:hr_payroll.model_hr_payroll_register
+#: model:ir.ui.menu,name:hr_payroll.hr_menu_payroll_register
+msgid "Payroll Register"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+#: rml:hr.payroll.register.sheet:0
+#: rml:payroll.advice:0
+#: rml:salary.structure:0
+#: rml:year.salary:0
+msgid "For"
+msgstr "Kellele"
+
+#. module: hr_payroll
+#: field:hr.payroll.register,journal_id:0
+#: field:hr.payslip,journal_id:0
+msgid "Expanse Journal"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.act_window,name:hr_payroll.action_hr_contract
+#: model:ir.ui.menu,name:hr_payroll.hr_menu_contract
+msgid "Employee Contract"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,contribute:0
+msgid "Contribe by Company ?"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee.grade:0
+msgid "Employee Function"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.contract,working_days_per_week:0
+msgid "Working Days / Week"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip,worked_days:0
+msgid "Worked Day"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+#: view:hr.payslip:0
+msgid "Complete Accountant Checking"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+msgid "Title"
+msgstr "Pealkiri"
+
+#. module: hr_payroll
+#: selection:hr.allounce.deduction.categoty,based_on:0
+msgid "On Attendance"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_employee_grade_form
+#: model:ir.ui.menu,name:hr_payroll.menu_hr_allounce_deduction_tree
+msgid "Allowance/Deduction Heads"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Compute Sheet"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.register,active:0
+msgid "Active"
+msgstr "Aktiivne"
+
+#. module: hr_payroll
+#: field:hr.employee,employee_account:0
+msgid "Employee Account"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:year.salary:0
+msgid "Yearly Salary Details"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,condition:0
+msgid "Condition"
+msgstr "Tingimus"
+
+#. module: hr_payroll
+#: selection:hr.payroll.register,state:0
+#: selection:hr.payslip,state:0
+msgid "Wating for HR Verification"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.employee,pf_account:0
+msgid "PF Account"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+msgid "Compute"
+msgstr "Arvuta"
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+#: view:hr.payslip:0
+#: field:hr.payslip,move_payment_ids:0
+msgid "Payment Lines"
+msgstr "Makseread"
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+#: field:hr.payslip,deg_id:0
+#: rml:payslip.pdf:0
+#: rml:salary.structure:0
+msgid "Designation"
+msgstr "Sihtkoht"
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid "HR Manager"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.allounce.deduction.categoty,based_on:0
+#: field:hr.payslip,basic_before_leaves:0
+#: rml:payslip.pdf:0
+msgid "Basic Salary"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,code:0
+msgid "Categoty Code"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+msgid "Salary Information"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.model,name:hr_payroll.model_hr_allounce_deduction_categoty
+#: model:ir.model,name:hr_payroll.model_hr_allounce_deduction_categoty_line
+msgid "Allowance Deduction Categoty"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payslip.pdf:0
+msgid "Authorized Signature"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.allounce.deduction.categoty:0
+msgid "Allowance / Deduction Category"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payroll.advice,state:0
+msgid "Draft Sheet"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.advice,date:0
+#: field:hr.payroll.register,date:0
+#: rml:hr.payroll.register.sheet:0
+#: field:hr.payslip,date:0
+msgid "Date"
+msgstr "Kuupäev"
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid "Basic SAL"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.contract,visa_expire:0
+msgid "Visa Expire Date"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+#: rml:salary.structure:0
+msgid "Phone No."
+msgstr "Telefon nr."
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,include_in_salary:0
+msgid "Included in Salary ?"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.expense.expense,category_id:0
+#: field:hr.holidays.status,head_id:0
+msgid "Payroll Head"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+#: field:hr.payroll.advice.line,advice_id:0
+msgid "Bank Advice"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payslip.line,account_id:0
+#: rml:salary.structure:0
+msgid "General Account"
+msgstr "Üldine konto"
+
+#. module: hr_payroll
+#: field:hr.holidays.status,code:0
+#: field:hr.payslip.line,code:0
+#: rml:salary.structure:0
+msgid "Code"
+msgstr "Kood"
+
+#. module: hr_payroll
+#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_bank_advice_tree
+#: model:ir.ui.menu,name:hr_payroll.hr_menu_payment_advice
+#: rml:payroll.advice:0
+msgid "Payment Advice"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty.line,to:0
+msgid "To"
+msgstr "Kuni"
+
+#. module: hr_payroll
+#: wizard_button:payroll.analysis,init,process:0
+msgid "Process"
+msgstr "Etapp"
+
+#. module: hr_payroll
+#: selection:hr.payslip.line,type:0
+msgid "Loan"
+msgstr "Laen"
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,sequence:0
+msgid "Sequence"
+msgstr "Järjestus"
+
+#. module: hr_payroll
+#: wizard_field:wizard.year.salary,init,salary_on:0
+msgid "Salary On"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.advice,number:0
+#: field:hr.payroll.register,number:0
+#: rml:hr.payroll.register.sheet:0
+#: field:hr.payslip,number:0
+msgid "Number"
+msgstr "Number"
+
+#. module: hr_payroll
+#: rml:salary.structure:0
+msgid "Contract Detail:"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee.grade:0
+msgid "General Information"
+msgstr "Üldine info"
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+msgid "Paymeny Lines"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+#: field:hr.employee,line_ids:0
+#: view:hr.employee.grade:0
+#: field:hr.employee.grade,line_ids:0
+#: rml:salary.structure:0
+msgid "Salary Structure"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+#: view:hr.payslip:0
+#: wizard_button:payroll.analysis,init,end:0
+#: wizard_button:wizard.employees.detail,init,end:0
+#: wizard_button:wizard.year.salary,init,end:0
+msgid "Cancel"
+msgstr "Katkesta"
+
+#. module: hr_payroll
+#: field:hr.payslip.line,amount:0
+#: rml:salary.structure:0
+msgid "Amount / Percentage"
+msgstr "Summa / protsent"
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Accounting Details"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:wizard.year.salary,init,salary_on:0
+msgid "Current Month Date"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+msgid "Contract Duration"
+msgstr "Lepingu kestus"
+
+#. module: hr_payroll
+#: wizard_view:payroll.analysis,init:0
+msgid "Process Form"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.passport,name:0
+msgid "Passport No"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee.grade:0
+msgid "Account Information"
+msgstr "Konto info"
+
+#. module: hr_payroll
+#: view:hr.employee:0
+msgid "Generalities"
+msgstr "Üldine"
+
+#. module: hr_payroll
+#: rml:payroll.advice:0
+msgid "for period"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.register:0
+msgid "Allowance / Deduction"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:salary.structure:0
+msgid "E-mail"
+msgstr "E-post"
+
+#. module: hr_payroll
+#: model:ir.actions.report.xml,name:hr_payroll.year_payroll_register
+msgid "Print Statement"
+msgstr "Trüki avaldus"
+
+#. module: hr_payroll
+#: view:hr.allounce.deduction.categoty:0
+#: field:hr.allounce.deduction.categoty,line_ids:0
+msgid "Calculations"
+msgstr "Arvutused"
+
+#. module: hr_payroll
+#: wizard_view:wizard.year.salary,init:0
+msgid "Salary Deposit Date Option?"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payslip:0
+msgid "Other Informations"
+msgstr "Muu info"
+
+#. module: hr_payroll
+#: view:hr.allounce.deduction.categoty:0
+msgid "Dynamic Computation"
+msgstr "Dünaamiline arvutamine"
+
+#. module: hr_payroll
+#: field:hr.employee.grade,function_id:0
+#: field:hr.payslip.line,function_id:0
+msgid "Function"
+msgstr "Funktsioon"
+
+#. module: hr_payroll
+#: rml:payroll.advice:0
+msgid "Dear Sir/Madam,"
+msgstr "Lugupeetud Härra/Proua,"
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+#: rml:salary.structure:0
+msgid "PAN No."
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.payroll.advice,note:0
+msgid "Description"
+msgstr "Kirjeldus"
+
+#. module: hr_payroll
+#: field:hr.employee,pg_joining:0
+msgid "PF Join Date"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.ui.menu,name:hr_payroll.menu_hr_payroll_reporting
+#: model:ir.ui.menu,name:hr_payroll.menu_hr_root_payroll
+msgid "Payroll"
+msgstr ""
+
+#. module: hr_payroll
+#: wizard_view:wizard.employees.detail,init:0
+#: wizard_view:wizard.year.salary,init:0
+msgid "Year Salary"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty,name:0
+msgid "Categoty Name"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.wizard,name:hr_payroll.wizard_payroll_analysis
+#: model:ir.ui.menu,name:hr_payroll.menu_wizard_payroll_analysis
+msgid "Create Analytic Structure"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+#: rml:payslip.pdf:0
+#: rml:salary.structure:0
+msgid "Address"
+msgstr "Aadress"
+
+#. module: hr_payroll
+#: help:hr.employee,property_bank_account:0
+msgid "Select Bank Account from where Salary Expanse will be Paid"
+msgstr ""
+
+#. module: hr_payroll
+#: help:hr.employee,salary_account:0
+msgid "Expanse account when Salary Expanse will be recorded"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+msgid "Notes"
+msgstr "Märkused"
+
+#. module: hr_payroll
+#: model:ir.ui.menu,name:hr_payroll.payroll_configure
+msgid "Configure Payroll"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+msgid "Cancel Sheet"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.payslip.line,type:0
+msgid "Advance"
+msgstr "Edenema"
+
+#. module: hr_payroll
+#: rml:salary.structure:0
+msgid "Special Allowances and Deductions For Employee:"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.allounce.deduction.categoty.line,name:0
+#: field:hr.payroll.advice,name:0
+#: field:hr.payroll.register,name:0
+#: field:hr.payslip,name:0
+#: field:hr.payslip.line,name:0
+#: rml:salary.structure:0
+#: rml:year.salary:0
+msgid "Name"
+msgstr "Nimi"
+
+#. module: hr_payroll
+#: field:hr.payslip,leaves:0
+msgid "Leaved Deduction"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.employee:0
+msgid "Statutory Information"
+msgstr "Ametlik info"
+
+#. module: hr_payroll
+#: model:ir.ui.menu,name:hr_payroll.menu_hr_employee_function
+msgid "Employee Functions"
+msgstr "Töötajate ülesanded"
+
+#. module: hr_payroll
+#: wizard_field:wizard.employees.detail,init,employee_ids:0
+#: wizard_field:wizard.year.salary,init,employee_ids:0
+msgid "Employees"
+msgstr "Töötajad"
+
+#. module: hr_payroll
+#: field:hr.employee,property_bank_account:0
+#: rml:payroll.advice:0
+msgid "Bank Account"
+msgstr "Pangakonto"
+
+#. module: hr_payroll
+#: field:hr.payroll.advice.line,name:0
+msgid "Bank Account A/C"
+msgstr ""
+
+#. module: hr_payroll
+#: wizard_field:wizard.employees.detail,init,fiscalyear_id:0
+#: wizard_field:wizard.year.salary,init,fiscalyear_id:0
+msgid "Fiscal Year"
+msgstr "Majandusaasta"
+
+#. module: hr_payroll
+#: view:hr.employee:0
+msgid "Contract"
+msgstr "Leping"
+
+#. module: hr_payroll
+#: selection:payroll.analysis,init,type:0
+msgid "By Allownce / Deduction"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.holidays.status:0
+msgid "Payroll Configurtion"
+msgstr ""
+
+#. module: hr_payroll
+#: field:hr.passport,date_issue:0
+msgid "Passport Issue Date"
+msgstr ""
+
+#. module: hr_payroll
+#: selection:hr.allounce.deduction.categoty,type:0
+#: field:hr.payroll.register,allounce:0
+#: field:hr.payslip,allounce:0
+#: selection:hr.payslip.line,type:0
+msgid "Allowance"
+msgstr "Abiraha"
+
+#. module: hr_payroll
+#: field:hr.payslip,holiday_days:0
+msgid "No of Leaves"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payslip.pdf:0
+msgid "Bank Details"
+msgstr "Pangadetailid"
+
+#. module: hr_payroll
+#: rml:payslip.pdf:0
+msgid "Deductions"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_payslip_form
+#: model:ir.ui.menu,name:hr_payroll.menu_department_tree
+msgid "Employee Payslip"
+msgstr ""
+
+#. module: hr_payroll
+#: view:hr.payroll.advice:0
+msgid "Letter Content"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:payroll.advice:0
+msgid "By Sal"
+msgstr ""
+
+#. module: hr_payroll
+#: rml:hr.payroll.register.sheet:0
+msgid "Net SAL"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.report.xml,name:hr_payroll.payroll_advice
+msgid "Bank Payment Advice"
+msgstr ""
+
+#. module: hr_payroll
+#: model:ir.actions.report.xml,name:hr_payroll.salary_structure_register
+msgid "Print Salary Structure"
+msgstr "Trüki palgastruktuur"
+
+#. module: hr_payroll
+#: rml:payslip.pdf:0
+msgid "Total Deductions"
+msgstr "Kokku mahaarvamised"
+
+#. module: hr_payroll
+#: rml:employees.salary:0
+#: rml:payroll.advice:0
+#: rml:year.salary:0
+msgid "Total"
+msgstr "Kokku"
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py
index 9d6c2cfbbbb..09ad521d24b 100644
--- a/addons/hr_recruitment/hr_recruitment.py
+++ b/addons/hr_recruitment/hr_recruitment.py
@@ -327,37 +327,6 @@ class hr_applicant(osv.osv, crm.crm_case):
res = self.write(cr, uid, ids, vals)
return res
- def emails_get(self, cr, uid, ids, context=None):
-
- """
- Get Emails
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param ids: List of email’s IDs
- @param context: A standard dictionary for contextual values
- """
- res = {}
-
- if isinstance(ids, (str, int, long)):
- select = [long(ids)]
- else:
- select = ids
-
- for thread in self.browse(cr, uid, select, context=context):
- values = collections.defaultdict(set)
-
- for message in thread.message_ids:
- user_email = (message.user_id and message.user_id.address_id and message.user_id.address_id.email) or False
- values['user_email'].add(user_email)
- values['email_from'].add(message.email_from)
- values['email_cc'].add(message.email_cc or False)
- values['priority'] = thread.priority
-
- res[thread.id] = dict((key,list(values[key])) for key, value in values.iteritems())
-
- return res
-
def msg_send(self, cr, uid, id, *args, **argv):
""" Send The Message
diff --git a/addons/hr_recruitment/hr_recruitment_menu.xml b/addons/hr_recruitment/hr_recruitment_menu.xml
index 1723c802b0a..971423d45a7 100644
--- a/addons/hr_recruitment/hr_recruitment_menu.xml
+++ b/addons/hr_recruitment/hr_recruitment_menu.xml
@@ -1,6 +1,6 @@
-
+
######################## JOB OPPORTUNITIES (menu) ###########################
diff --git a/addons/hr_timesheet/__openerp__.py b/addons/hr_timesheet/__openerp__.py
index 930877b77c2..95244d25564 100644
--- a/addons/hr_timesheet/__openerp__.py
+++ b/addons/hr_timesheet/__openerp__.py
@@ -48,7 +48,7 @@ to set up a management by affair.
'wizard/hr_timesheet_print_employee_view.xml',
'wizard/hr_timesheet_print_users_view.xml',
'wizard/hr_timesheet_sign_in_out_view.xml',
-
+ 'report/hr_timesheet_report_view.xml',
],
'demo_xml': ['hr_timesheet_demo.xml'],
'test': ['test/test_hr_timesheet.yml'],
diff --git a/addons/hr_timesheet/report/__init__.py b/addons/hr_timesheet/report/__init__.py
index 156a4b83c63..d54615fbd0b 100644
--- a/addons/hr_timesheet/report/__init__.py
+++ b/addons/hr_timesheet/report/__init__.py
@@ -19,8 +19,7 @@
#
##############################################################################
+import hr_timesheet_report
import user_timesheet
import users_timesheet
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/hr_timesheet/report/hr_timesheet_report.py b/addons/hr_timesheet/report/hr_timesheet_report.py
new file mode 100644
index 00000000000..100041ca35a
--- /dev/null
+++ b/addons/hr_timesheet/report/hr_timesheet_report.py
@@ -0,0 +1,78 @@
+# -*- 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
+from osv import fields,osv
+
+class hr_timesheet_report(osv.osv):
+ _name = "hr.timesheet.report"
+ _description = "Timesheet"
+ _auto = False
+ _columns = {
+ 'year': fields.char('Year',size=64,required=False, readonly=True),
+ 'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'),
+ ('05','May'), ('06','June'), ('07','July'), ('08','August'), ('09','September'),
+ ('10','October'), ('11','November'), ('12','December')], 'Month',readonly=True),
+ 'date': fields.date('Date', readonly=True),
+ 'name': fields.char('Description', size=64,readonly=True),
+ 'product_id' : fields.many2one('product.product', 'Product',readonly=True),
+ 'journal_id' : fields.many2one('account.analytic.journal', 'Journal',readonly=True),
+ 'general_account_id' : fields.many2one('account.account', 'General Account', readonly=True),
+ 'user_id': fields.many2one('res.users', 'User',readonly=True),
+ 'account_id': fields.many2one('account.analytic.account', 'Analytic Account',readonly=True),
+ 'company_id': fields.many2one('res.company', 'Company',readonly=True),
+ 'cost': fields.float('Cost',readonly=True),
+ 'quantity': fields.float('Quantity',readonly=True),
+ }
+
+ def init(self, cr):
+ tools.drop_view_if_exists(cr, 'hr_timesheet_report')
+ cr.execute("""
+ create or replace view hr_timesheet_report as (
+ select
+ min(t.id) as id,
+ l.date as date,
+ to_char(l.date,'YYYY') as year,
+ to_char(l.date,'MM') as month,
+ sum(l.amount) as cost,
+ sum(l.unit_amount) as quantity,
+ l.account_id as account_id,
+ l.journal_id as journal_id,
+ l.product_id as product_id,
+ l.general_account_id as general_account_id,
+ l.user_id as user_id,
+ l.company_id as company_id,
+ l.currency_id as currency_id
+ from
+ hr_analytic_timesheet as t
+ left join account_analytic_line as l ON (t.line_id=l.id)
+ group by
+ l.date,
+ l.account_id,
+ l.product_id,
+ l.general_account_id,
+ l.journal_id,
+ l.user_id,
+ l.company_id,
+ l.currency_id
+ )
+ """)
+hr_timesheet_report()
diff --git a/addons/hr_timesheet/report/hr_timesheet_report_view.xml b/addons/hr_timesheet/report/hr_timesheet_report_view.xml
new file mode 100644
index 00000000000..7f2df2e815e
--- /dev/null
+++ b/addons/hr_timesheet/report/hr_timesheet_report_view.xml
@@ -0,0 +1,99 @@
+
+
+
+
+ hr.timesheet.report.graph
+ hr.timesheet.report
+ graph
+
+
+
+
+
+
+
+
+ hr.timesheet.report.tree
+ hr.timesheet.report
+ tree
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ hr.timesheet.report.search
+ hr.timesheet.report
+ search
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Timesheet Analysis
+ hr.timesheet.report
+ form
+ tree,graph
+ {'search_default_month':1,'search_default_group_user_id':1,'group_by_no_leaf':1,'group_by':[]}
+
+
+
+
diff --git a/addons/hr_timesheet/report/user_timesheet.py b/addons/hr_timesheet/report/user_timesheet.py
index 8dbda07ea76..d444e4a19bc 100644
--- a/addons/hr_timesheet/report/user_timesheet.py
+++ b/addons/hr_timesheet/report/user_timesheet.py
@@ -101,6 +101,3 @@ class report_custom(report_rml):
report_custom('report.hr.analytical.timesheet', 'hr.employee', '', 'addons/hr_timesheet/report/user_timesheet.xsl')
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/hr_timesheet/security/ir.model.access.csv b/addons/hr_timesheet/security/ir.model.access.csv
index ce340fb4eb9..d0573745208 100644
--- a/addons/hr_timesheet/security/ir.model.access.csv
+++ b/addons/hr_timesheet/security/ir.model.access.csv
@@ -6,3 +6,4 @@
"access_hr_sign_out_project","hr.sign.out.project","model_hr_sign_out_project","hr.group_hr_user",1,1,1,1
"access_hr_analytal_timesheet_employee","hr.analytical.timesheet.employee","model_hr_analytical_timesheet_employee","hr.group_hr_manager",1,1,1,1
"access_hr_analytal_timesheet_user","hr.analytical.timesheet.user","model_hr_analytical_timesheet_users","hr.group_hr_user",1,1,1,1
+"access_hr_timesheet_report","hr.timesheet.report","model_hr_timesheet_report","hr.group_hr_manager",1,0,0,0
diff --git a/addons/hr_timesheet_invoice/i18n/es.po b/addons/hr_timesheet_invoice/i18n/es.po
index 3a6afaac4ef..53fe459a86e 100644
--- a/addons/hr_timesheet_invoice/i18n/es.po
+++ b/addons/hr_timesheet_invoice/i18n/es.po
@@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: hr_timesheet_invoice
diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
index 487e3687b36..050b798f16d 100644
--- a/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
+++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet_view.xml
@@ -96,12 +96,15 @@
form
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
@@ -124,7 +127,6 @@
-
@@ -137,8 +139,8 @@
-
-
+
+
@@ -147,9 +149,9 @@
-
-
-
+
+
+
diff --git a/addons/hr_timesheet_sheet/i18n/el.po b/addons/hr_timesheet_sheet/i18n/el.po
index 99558a120ff..e5a6f55bce0 100644
--- a/addons/hr_timesheet_sheet/i18n/el.po
+++ b/addons/hr_timesheet_sheet/i18n/el.po
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
"X-Poedit-Country: GREECE\n"
"X-Poedit-Language: Greek\n"
diff --git a/addons/hr_timesheet_sheet/report/timesheet_report_view.xml b/addons/hr_timesheet_sheet/report/timesheet_report_view.xml
index d628c119530..a5d7d9b420f 100644
--- a/addons/hr_timesheet_sheet/report/timesheet_report_view.xml
+++ b/addons/hr_timesheet_sheet/report/timesheet_report_view.xml
@@ -8,8 +8,8 @@
-
-
+
+
@@ -50,71 +50,71 @@
-
-
-
-
-
-
-
-
+ domain="[('date_current','<=', time.strftime('%%Y-%%m-%%d')),('date_current','>',(datetime.date.today()-datetime.timedelta(days=365)).strftime('%%Y-%%m-%%d'))]"
+ help="Timesheet in this year"/>
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
- Timesheet
+ Timesheet Sheet Analysis
timesheet.report
form
tree,graph
diff --git a/addons/l10n_be/account_pcmn_belgium.xml b/addons/l10n_be/account_pcmn_belgium.xml
index e4a9c52a437..f4fe7969790 100644
--- a/addons/l10n_be/account_pcmn_belgium.xml
+++ b/addons/l10n_be/account_pcmn_belgium.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/addons/l10n_be/fiscal_templates.xml b/addons/l10n_be/fiscal_templates.xml
index 47376f8c7ab..e40cd6a3a1b 100644
--- a/addons/l10n_be/fiscal_templates.xml
+++ b/addons/l10n_be/fiscal_templates.xml
@@ -1,23 +1,23 @@
-
+
-
-
-
+
+
+
Régime National
-
-
-
+
+
+
Régime Extra-Communautaire
-
+
-
+
Régime Intra-Communautaire
-
+
@@ -25,77 +25,77 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -105,37 +105,37 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -144,54 +144,54 @@
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
diff --git a/addons/l10n_ch/zip_code_default.xml b/addons/l10n_ch/zip_code_default.xml
index 4608a1fe5b6..a5ff1a51287 100644
--- a/addons/l10n_ch/zip_code_default.xml
+++ b/addons/l10n_ch/zip_code_default.xml
@@ -1,5 +1,5 @@
-
+
city
zip=1753
diff --git a/addons/l10n_ch_chart_c2c_pcg/account.xml b/addons/l10n_ch_chart_c2c_pcg/account.xml
index 1db72015516..da21b30e58d 100644
--- a/addons/l10n_ch_chart_c2c_pcg/account.xml
+++ b/addons/l10n_ch_chart_c2c_pcg/account.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/addons/l10n_ch_chart_c2c_pcg/vat.xml b/addons/l10n_ch_chart_c2c_pcg/vat.xml
index de3643b4a8c..0c8bacbb252 100644
--- a/addons/l10n_ch_chart_c2c_pcg/vat.xml
+++ b/addons/l10n_ch_chart_c2c_pcg/vat.xml
@@ -1,6 +1,6 @@
-
+
@@ -530,4 +530,4 @@
purchase
-
\ No newline at end of file
+
diff --git a/addons/l10n_chart_uk_minimal/account_chart.xml b/addons/l10n_chart_uk_minimal/account_chart.xml
index 32ee1cdc0df..804568afecc 100644
--- a/addons/l10n_chart_uk_minimal/account_chart.xml
+++ b/addons/l10n_chart_uk_minimal/account_chart.xml
@@ -1,7 +1,6 @@
-
-
+
@@ -15,14 +14,14 @@
- 1
+ 1
Balance Sheet
view
-
-
+
+
Assets
10
view
@@ -41,7 +40,7 @@
- 100
+ 100
Fixed Assets
view
@@ -49,7 +48,7 @@
- 1000
+ 1000
Fixed Asset Account
other
@@ -57,7 +56,7 @@
- 101
+ 101
Net Current Assets
view
@@ -65,9 +64,9 @@
- 1100
+ 1100
Current Assets
-
+
view
@@ -94,7 +93,7 @@
-->
- 11003
+ 11003
Output VAT
other
@@ -102,7 +101,7 @@
- 11004
+ 11004
Bank Current Account
other
@@ -118,7 +117,7 @@
- 110
+ 110
Current Liabilities
view
@@ -139,7 +138,7 @@
-->
- 1112
+ 1112
Input VAT
other
@@ -149,14 +148,14 @@
- 2
+ 2
Profit and Loss
view
-
-
+
+
Income
20
view
@@ -175,7 +174,7 @@
- 200
+ 200
Revenue
view
@@ -195,7 +194,7 @@
-->
- 210
+ 210
Cost of Sales
view
@@ -211,7 +210,7 @@
- 211
+ 211
Overheads
view
diff --git a/addons/l10n_chart_uk_minimal/account_tax.xml b/addons/l10n_chart_uk_minimal/account_tax.xml
index 42f214e5685..502cea9b0d2 100644
--- a/addons/l10n_chart_uk_minimal/account_tax.xml
+++ b/addons/l10n_chart_uk_minimal/account_tax.xml
@@ -1,7 +1,6 @@
-
-
+
@@ -257,4 +256,4 @@
-
\ No newline at end of file
+
diff --git a/addons/l10n_chart_uk_minimal/account_types.xml b/addons/l10n_chart_uk_minimal/account_types.xml
index adecc45c228..f2d773236bf 100644
--- a/addons/l10n_chart_uk_minimal/account_types.xml
+++ b/addons/l10n_chart_uk_minimal/account_types.xml
@@ -1,26 +1,26 @@
-
+
- Receivable
- receivable
- unreconciled
-
+ Receivable
+ receivable
+ unreconciled
+
-
- Payable
- payable
- unreconciled
-
+
+ Payable
+ payable
+ unreconciled
+
-
- View
- view
- none
-
-
-
+
+ View
+ view
+ none
+
+
+
Income View
view
income
@@ -40,44 +40,44 @@
liability
liability
-
- Income
- income
- none
- income
-
+
+ Income
+ income
+ none
+ income
+
-
- Expense
- expense
- none
- expense
-
+
+ Expense
+ expense
+ none
+ expense
+
-
- Tax
- tax
- unreconciled
-
+
+ Tax
+ tax
+ unreconciled
+
-
- Cash
- cash
- balance
-
+
+ Cash
+ cash
+ balance
+
-
- Asset
- asset
- balance
- asset
-
+
+ Asset
+ asset
+ balance
+ asset
+
-
- Equity
- equity
- balance
-
+
+ Equity
+ equity
+ balance
+
diff --git a/addons/l10n_fr/fiscal_templates_fr.xml b/addons/l10n_fr/fiscal_templates_fr.xml
index 01a7beefc90..d3380581cba 100644
--- a/addons/l10n_fr/fiscal_templates_fr.xml
+++ b/addons/l10n_fr/fiscal_templates_fr.xml
@@ -1,6 +1,6 @@
-
+
diff --git a/addons/l10n_fr/l10n_fr_pcg_taxes.xml b/addons/l10n_fr/l10n_fr_pcg_taxes.xml
index 3d1261df5f5..11f6465096f 100644
--- a/addons/l10n_fr/l10n_fr_pcg_taxes.xml
+++ b/addons/l10n_fr/l10n_fr_pcg_taxes.xml
@@ -1,7 +1,6 @@
-
-
+
diff --git a/addons/l10n_in/i18n/et.po b/addons/l10n_in/i18n/et.po
new file mode 100644
index 00000000000..40b02c3415b
--- /dev/null
+++ b/addons/l10n_in/i18n/et.po
@@ -0,0 +1,95 @@
+# Estonian translation for openobject-addons
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2009-11-25 15:28+0000\n"
+"PO-Revision-Date: 2010-06-25 17:49+0000\n"
+"Last-Translator: lyyser \n"
+"Language-Team: Estonian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: l10n_chart_in
+#: model:ir.module.module,description:l10n_chart_in.module_meta_information
+msgid ""
+"\n"
+" Indian Accounting : chart of Account\n"
+" "
+msgstr ""
+
+#. module: l10n_chart_in
+#: constraint:account.account.template:0
+msgid "Error ! You can not create recursive account templates."
+msgstr "Viga ! Sa ei saa luua rekrusiivseid kontomalle."
+
+#. module: l10n_chart_in
+#: model:account.journal,name:l10n_chart_in.opening_journal
+msgid "Opening Journal"
+msgstr ""
+
+#. module: l10n_chart_in
+#: model:ir.actions.todo,note:l10n_chart_in.config_call_account_template_in_minimal
+msgid ""
+"Generate Chart of Accounts from a Chart Template. You will be asked to pass "
+"the name of the company, the chart template to follow, the no. of digits to "
+"generate the code for your accounts and Bank account, currency to create "
+"Journals. Thus,the pure copy of chart Template is generated.\n"
+"\tThis is the same wizard that runs from Financial "
+"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
+"Chart of Accounts from a Chart Template."
+msgstr ""
+"Genereeri kontoplaan plaanimallist. Sul palutakse valida ettevõte, "
+"plaanimall, numbrite arv sinu kontode ja pangakontode koodide "
+"genereerimiseks, valuuta päevikute loomiseks. Nii genereeritakse puhas "
+"koopia plaanimallist.\n"
+"\tSee on sama nõustaja mis käivitub asukohast "
+"Finantsjuhtimine/Seadistus/Finantsraamatupidamine/Mallid/Tekita kontoplaan "
+"kasutades plaani malli."
+
+#. module: l10n_chart_in
+#: model:account.account.type,name:l10n_chart_in.account_type_liability1
+msgid "Liability"
+msgstr "Kohustus"
+
+#. module: l10n_chart_in
+#: model:account.account.type,name:l10n_chart_in.account_type_asset1
+msgid "Asset"
+msgstr "Vara"
+
+#. module: l10n_chart_in
+#: model:account.account.type,name:l10n_chart_in.account_type_closed1
+msgid "Closed"
+msgstr "Suletud"
+
+#. module: l10n_chart_in
+#: model:account.account.type,name:l10n_chart_in.account_type_income1
+msgid "Income"
+msgstr "Tulu"
+
+#. module: l10n_chart_in
+#: constraint:account.tax.code.template:0
+msgid "Error ! You can not create recursive Tax Codes."
+msgstr "Viga ! sa ei saa luua rekrusiivseid maksukoode."
+
+#. module: l10n_chart_in
+#: model:account.account.type,name:l10n_chart_in.account_type_expense1
+msgid "Expense"
+msgstr "Kulu"
+
+#. module: l10n_chart_in
+#: model:ir.module.module,shortdesc:l10n_chart_in.module_meta_information
+msgid "Indian Chart of Account"
+msgstr ""
+
+#. module: l10n_chart_in
+#: model:account.account.type,name:l10n_chart_in.account_type_root_ind1
+msgid "View"
+msgstr "Vaade"
diff --git a/addons/mail_gateway/__init__.py b/addons/mail_gateway/__init__.py
index 7380514e45a..6526541a068 100644
--- a/addons/mail_gateway/__init__.py
+++ b/addons/mail_gateway/__init__.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL ().
#
@@ -15,11 +15,12 @@
# 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 .
+# along with this program. If not, see .
#
##############################################################################
import mail_gateway
+import res_partner
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/mail_gateway/__openerp__.py b/addons/mail_gateway/__openerp__.py
index 1584067ea38..aa08c7f190d 100644
--- a/addons/mail_gateway/__openerp__.py
+++ b/addons/mail_gateway/__openerp__.py
@@ -32,6 +32,7 @@
'init_xml': [],
'update_xml': [
"mail_gateway_view.xml",
+ "res_partner_view.xml",
'security/ir.model.access.csv'
],
'demo_xml': [],
diff --git a/addons/mail_gateway/mail_gateway.py b/addons/mail_gateway/mail_gateway.py
index edb723a3ba0..3ccde181883 100644
--- a/addons/mail_gateway/mail_gateway.py
+++ b/addons/mail_gateway/mail_gateway.py
@@ -28,6 +28,9 @@ from email.header import decode_header
import base64
import re
from tools.translate import _
+import logging
+
+_logger = logging.getLogger('mailgate')
class mailgate_thread(osv.osv):
'''
@@ -35,7 +38,6 @@ class mailgate_thread(osv.osv):
'''
_name = 'mailgate.thread'
_description = 'Mailgateway Thread'
- _rec_name = 'thread'
_columns = {
'message_ids': fields.one2many('mailgate.message', 'res_id', 'Messages', domain=[('history', '=', True)]),
@@ -46,12 +48,24 @@ class mailgate_thread(osv.osv):
raise Exception, _('Method is not implemented')
def message_update(self, cr, uid, ids, vals={}, msg="", default_act='pending', context={}):
- raise Exception, _('Method is not implemented')
+ raise Exception, _('Method is not implemented')
- def emails_get(self, cr, uid, ids, context=None):
- raise Exception, _('Method is not implemented')
+ def message_followers(self, cr, uid, ids, context=None):
+ """ Get a list of emails of the people following this thread
+ """
+ res = {}
+ if isinstance(ids, (str, int, long)):
+ ids = [long(ids)]
+ for thread in self.browse(cr, uid, ids, context=context):
+ l=[]
+ for message in thread.message_ids:
+ l.append((message.user_id and message.user_id.email) or '')
+ l.append(message.email_from or '')
+ l.append(message.email_cc or '')
+ res[thread.id] = l
+ return res
- def msg_send(self, cr, uid, id, *args, **argv):
+ def msg_send(self, cr, uid, id, *args, **argv):
raise Exception, _('Method is not implemented')
def _history(self, cr, uid, cases, keyword, history=False, subject=None, email=False, details=None, \
@@ -93,7 +107,7 @@ class mailgate_thread(osv.osv):
if history:
for att in attach:
attachments.append(att_obj.create(cr, uid, {'name': att[0], 'datas': base64.encodestring(att[1])}))
-
+
data = {
'name': subject or 'History',
'history': True,
@@ -125,7 +139,7 @@ class mailgate_message(osv.osv):
_description = 'Mailgateway Message'
_order = 'id desc'
_columns = {
- 'name':fields.char('Message', size=64),
+ 'name':fields.char('Subject', size=128),
'model': fields.char('Object Name', size=128),
'res_id': fields.integer('Resource ID'),
'ref_id': fields.char('Reference Id', size=256, readonly=True, help="Message Id in Email Server.", select=True),
@@ -150,8 +164,10 @@ class mailgate_tool(osv.osv_memory):
_name = 'email.server.tools'
_description = "Email Server Tools"
-
+
def _to_decode(self, s, charsets):
+ if not s:
+ return s
for charset in charsets:
if charset:
try:
@@ -164,19 +180,11 @@ class mailgate_tool(osv.osv_memory):
if text:
text = decode_header(text.replace('\r', ''))
return ''.join(map(lambda x:self._to_decode(x[0], [x[1]]), text or []))
-
- def to_email(self, text):
- _email = re.compile(r'.*<.*@.*\..*>', re.UNICODE)
- def record(path):
- eml = path.group()
- index = eml.index('<')
- eml = eml[index:-1].replace('<', '').replace('>', '')
- return eml
- bits = _email.sub(record, text)
- return bits
-
- def history(self, cr, uid, model, res_ids, msg, attach):
+ def to_email(self,text):
+ return re.findall(r'([^ ,<@]+@[^> ,]+)',text)
+
+ def history(self, cr, uid, model, res_ids, msg, attach, context=None):
"""This function creates history for mails fetched
@param self: The object pointer
@param cr: the current row, from the database cursor,
@@ -206,67 +214,42 @@ class mailgate_tool(osv.osv_memory):
'user_id': uid,
'attachment_ids': [(6, 0, attach)]
}
- msg_id = msg_pool.create(cr, uid, msg_data)
+ msg_id = msg_pool.create(cr, uid, msg_data, context=context)
return True
-
- def email_send(self, cr, uid, model, res_id, msg, from_email=False, email_default=False):
- """This function Sends return email on submission of Fetched email in OpenERP database
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param model: OpenObject Model
+
+ def email_forward(self, cr, uid, model, res_ids, msg, email_error=False):
+ """Sends an email to all people following the thread
@param res_id: Id of the record of OpenObject model created from the Email details
@param msg: Email details
- @param email_default: Default Email address in case of any Problem
+ @param email_error: Default Email address in case of any Problem
"""
- history_pool = self.pool.get('mailgate.message')
- model_pool = self.pool.get(model)
- from_email = from_email or tools.config.get('email_from', None)
- message = email.message_from_string(str(msg))
- subject = "[%s] %s" %(res_id, self._decode_header(message['Subject']))
- #msg_mails = []
- #mails = [self._decode_header(message['From']), self._decode_header(message['To'])]
- #mails += self._decode_header(message.get('Cc', '')).split(',')
+ for res_id in res_ids:
+ history_pool = self.pool.get('mailgate.message')
+ message = email.message_from_string(tools.ustr(msg).encode('utf-8'))
+ encoding = message.get_content_charset()
+ message['body'] = message.get_payload(decode=True)
+ if encoding:
+ message['body'] = self._to_decode(message['body'], [encoding])
+ subject = message['Subject']
- values = {}
- if hasattr(model_pool, 'emails_get'):
- values = model_pool.emails_get(cr, uid, [res_id])
- emails = values.get(res_id, {})
+ from_email = self._decode_header(message['From'])
- priority = emails.get('priority', [3])[0]
- em = emails['user_email'] + emails['email_from'] + emails['email_cc']
- msg_mails = map(self.to_email, filter(None, em))
+ model_pool = self.pool.get(model)
+ message_followers = model_pool.message_followers(cr, uid, [res_id])[res_id]
+ message_followers_emails = self.to_email(','.join(message_followers))
- #mm = [self._decode_header(message['From']), self._decode_header(message['To'])]
- #mm += self._decode_header(message.get('Cc', '')).split(',')
+ message_recipients = self.to_email(','.join([from_email,self._decode_header(message['To']),self._decode_header(message['Cc'])]) )
+ message_forward = [i for i in message_followers_emails if (i and (i not in message_recipients))]
- #msg_mails = map(self.to_email, filter(None, mm))
-
- encoding = message.get_content_charset()
- message['body'] = message.get_payload(decode=True)
- if encoding:
- message['body'] = tools.ustr(message['body'].decode(encoding))
-
- body = _("""
-Hello %s,
-
- Your Request ID: %s
-
-Thanks
-
--------- Original Message --------
-%s
-""") %(self._decode_header(message['From']), res_id, message['body'])
- res = None
- try:
- res = tools.email_send(from_email, msg_mails, subject, body, openobject_id=res_id)
- except Exception, e:
- if email_default:
- temp_msg = '[%s] %s'%(res_id, self._decode_header(message['Subject']))
- del message['Subject']
- message['Subject'] = '[OpenERP-FetchError] %s' %(temp_msg)
- tools.email_send(from_email, email_default, message.get('Subject'), message.get('body'), openobject_id=res_id)
- return res
+ res = None
+ try:
+ res = tools.email_send(from_email, message_forward, subject, body, openobject_id=res_id)
+ except Exception, e:
+ if email_error:
+ temp_msg = '[%s] %s'%(res_id, message['Subject'])
+ del message['Subject']
+ message['Subject'] = '[OpenERP-Error] %s' %(temp_msg)
+ tools.email_send(from_email, email_error, message.get('Subject'), message.get('body'), openobject_id=res_id)
def process_email(self, cr, uid, model, message, attach=True, context=None):
"""This function Processes email and create record for given OpenERP model
@@ -275,25 +258,24 @@ Thanks
@param uid: the current user’s ID for security checks,
@param model: OpenObject Model
@param message: Email details
- @param attach: Email attachments
+ @param attach: Email attachments
@param context: A standard dictionary for contextual values"""
-
model_pool = self.pool.get(model)
if not context:
context = {}
res_id = False
# Create New Record into particular model
- def create_record(msg):
+ def create_record(msg):
if hasattr(model_pool, 'message_new'):
res_id = model_pool.message_new(cr, uid, msg, context)
else:
data = {
- 'name': msg.get('subject'),
- 'email_from': msg.get('from'),
- 'email_cc': msg.get('cc'),
- 'user_id': False,
- 'description': msg.get('body'),
- 'state' : 'draft',
+ 'name': msg.get('subject'),
+ 'email_from': msg.get('from'),
+ 'email_cc': msg.get('cc'),
+ 'user_id': False,
+ 'description': msg.get('body'),
+ 'state' : 'draft',
}
data.update(self.get_partner(cr, uid, msg.get('from'), context=context))
res_id = model_pool.create(cr, uid, data, context=context)
@@ -302,28 +284,35 @@ Thanks
if attach:
for attachment in msg.get('attachments', []):
data_attach = {
- 'name': attachment,
- 'datas': binascii.b2a_base64(str(attachments.get(attachment))),
- 'datas_fname': attachment,
- 'description': 'Mail attachment',
- 'res_model': model,
- 'res_id': res_id,
+ 'name': attachment,
+ 'datas': binascii.b2a_base64(str(attachments.get(attachment))),
+ 'datas_fname': attachment,
+ 'description': 'Mail attachment',
+ 'res_model': model,
+ 'res_id': res_id,
}
- att_ids.append(self.pool.get('ir.attachment').create(cr, uid, data_attach))
-
+ att_ids.append(self.pool.get('ir.attachment').create(cr, uid, data_attach))
+
return res_id
history_pool = self.pool.get('mailgate.message')
- msg_txt = email.message_from_string(message)
+
+ # Warning: message_from_string doesn't always work correctly on unicode,
+ # we must use utf-8 strings here :-(
+ msg_txt = email.message_from_string(tools.ustr(message).encode('utf-8'))
message_id = msg_txt.get('Message-ID', False)
msg = {}
+
if not message_id:
- return False
+ # Very unusual situation, be we should be fault-tolerant here
+ message_id = time.time()
+ msg_txt['Message-ID'] = message_id
+ _logger.info('Message without message-id, generating a random one: %s', message_id)
fields = msg_txt.keys()
msg['id'] = message_id
- msg['message-id'] = message_id
-
+ msg['message-id'] = message_id
+
if 'Subject' in fields:
msg['subject'] = self._decode_header(msg_txt.get('Subject'))
@@ -349,19 +338,19 @@ Thanks
msg['encoding'] = msg_txt.get('Content-Transfer-Encoding')
if 'References' in fields:
- msg['references'] = msg_txt.get('References')
+ msg['references'] = msg_txt.get('References')
if 'X-Priority' in fields:
msg['priority'] = msg_txt.get('X-priority', '3 (Normal)').split(' ')[0]
- if not msg_txt.is_multipart() or 'text/plain' in msg.get('content-type', None):
+ if not msg_txt.is_multipart() or 'text/plain' in msg.get('content-type', ''):
encoding = msg_txt.get_content_charset()
msg['body'] = msg_txt.get_payload(decode=True)
if encoding:
msg['body'] = tools.ustr(msg['body'])
attachments = {}
- if msg_txt.is_multipart() or 'multipart/alternative' in msg.get('content-type', None):
+ if msg_txt.is_multipart() or 'multipart/alternative' in msg.get('content-type', ''):
body = ""
counter = 1
for part in msg_txt.walk():
@@ -390,14 +379,13 @@ Thanks
res = part.get_payload(decode=True)
if encoding:
res = tools.ustr(res)
-
body += res
msg['body'] = body
msg['attachments'] = attachments
res_ids = []
new_res_id = False
- if msg.get('references', False):
+ if msg.get('references'):
references = msg.get('references')
if '\r\n' in references:
references = msg.get('references').split('\r\n')
@@ -416,27 +404,29 @@ Thanks
res_id = int(res_id)
res_ids.append(res_id)
model_pool = self.pool.get(model)
-
+
vals = {}
if hasattr(model_pool, 'message_update'):
model_pool.message_update(cr, uid, [res_id], vals, msg, context=context)
-
+
if not len(res_ids):
new_res_id = create_record(msg)
res_ids = [new_res_id]
- # Store messages
+ # Store messages
+ context.update({'model' : model})
if hasattr(model_pool, '_history'):
- model_pool._history(cr, uid, res_ids, _('Receive'), history=True,
- subject = msg.get('subject'),
- email = msg.get('to'),
- details = msg.get('body'),
- email_from = msg.get('from'),
- message_id = msg.get('message-id'),
+ model_pool._history(cr, uid, res_ids, _('Receive'), history=True,
+ subject = msg.get('subject'),
+ email = msg.get('to'),
+ details = msg.get('body'),
+ email_from = msg.get('from'),
+ message_id = msg.get('message-id'),
references = msg.get('references', False),
- attach = msg.get('attachments', {}).items(),
- context = {'model' : model})
+ attach = msg.get('attachments', {}).items(),
+ context = context)
else:
- self.history(cr, uid, model, res_ids, msg, att_ids)
+ self.history(cr, uid, model, res_ids, msg, att_ids, context=context)
+ self.email_forward(cr, uid, model, res_ids, message)
return new_res_id
def get_partner(self, cr, uid, from_email, context=None):
@@ -448,10 +438,10 @@ Thanks
"""
address_pool = self.pool.get('res.partner.address')
res = {
- 'partner_address_id': False,
+ 'partner_address_id': False,
'partner_id': False
}
- from_email = self.to_email(from_email)
+ from_email = self.to_email(from_email)[0]
address_ids = address_pool.search(cr, uid, [('email', '=', from_email)])
if address_ids:
address = address_pool.browse(cr, uid, address_ids[0])
@@ -461,5 +451,3 @@ Thanks
return res
mailgate_tool()
-
-
diff --git a/addons/mail_gateway/mail_gateway_view.xml b/addons/mail_gateway/mail_gateway_view.xml
index 09a24f92772..c73d62b08ad 100644
--- a/addons/mail_gateway/mail_gateway_view.xml
+++ b/addons/mail_gateway/mail_gateway_view.xml
@@ -8,28 +8,28 @@
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
+
@@ -46,7 +46,7 @@
mailgate.message
tree
-
+
@@ -60,7 +60,7 @@
mailgate.message
search
-
+
@@ -81,25 +81,25 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -154,9 +154,9 @@
-
+
- Mailgateway Messages
+ Emails
mailgate.message
tree,form
form
@@ -165,29 +165,29 @@
- Mailgateway Threads
- mailgate.thread
- tree,form
- form
-
-
+ Mailgateway Threads
+ mailgate.thread
+ tree,form
+ form
+
+
-
-
- tree
-
-
-
-
-
- form
-
-
-
+
+
+ tree
+
+
+
+
+
+ form
+
+
+
-
+
- Mailgateway Messages
+ Emails
mailgate.message
tree,form
form
@@ -209,7 +209,7 @@
-
).
+#
+# 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 res_partner(osv.osv):
+ """ Inherits partner and adds CRM information in the partner form """
+ _inherit = 'res.partner'
+ _columns = {
+ 'emails': fields.one2many('mailgate.message', 'partner_id',\
+ 'Emails', readonly=True),
+ }
+
+res_partner()
+
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/mail_gateway/res_partner_view.xml b/addons/mail_gateway/res_partner_view.xml
new file mode 100644
index 00000000000..3cb1bb7fe5a
--- /dev/null
+++ b/addons/mail_gateway/res_partner_view.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+ res.partner.emails.info.inherit
+ res.partner
+ form
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/mail_gateway/scripts/openerp_mailgate/openerp_mailgate.py b/addons/mail_gateway/scripts/openerp_mailgate/openerp_mailgate.py
index f294c819c78..166e1e8781f 100755
--- a/addons/mail_gateway/scripts/openerp_mailgate/openerp_mailgate.py
+++ b/addons/mail_gateway/scripts/openerp_mailgate/openerp_mailgate.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
##############################################################################
-#
+#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL ().
# Copyright (C) 2010-TODAY OpenERP S.A. (http://www.openerp.com)
@@ -17,7 +17,7 @@
# 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 .
+# along with this program. If not, see
#
###########################################################################################
@@ -38,7 +38,7 @@ class rpc_proxy(object):
return self.rpc.execute(self.dbname, self.user_id, self.passwd, *request, **kwargs)
class email_parser(object):
- def __init__(self, uid, password, model, email, email_default, dbname, host, port):
+ def __init__(self, uid, password, model, email_default, dbname, host, port):
self.rpc = rpc_proxy(uid, password, host=host, port=port, dbname=dbname)
try:
self.model_id = int(model)
@@ -46,33 +46,26 @@ class email_parser(object):
except:
self.model_id = self.rpc('ir.model', 'search', [('model', '=', model)])[0]
self.model = str(model)
- self.email = email
self.email_default = email_default
-
-
-
+
def parse(self, message):
try:
res_id = self.rpc('email.server.tools', 'process_email', self.model, message)
except Exception, e:
+ logger = logging.getLogger('mail-gateway')
+ logger.warning('Failed to process incoming email. Source of the failed mail is available at debug level.', exc_info=True)
+ logger.debug('Source of the mail that failed to parse:', message)
res_id = False
-# Reply mail
- if res_id:
- self.rpc('email.server.tools', 'email_send', self.model, res_id, message, self.email, self.email_default)
-
- return res_id
-
if __name__ == '__main__':
parser = optparse.OptionParser(usage='usage: %prog [options]', version='%prog v1.0')
- group = optparse.OptionGroup(parser, "Note",
+ group = optparse.OptionGroup(parser, "Note",
"This program parse a mail from standard input and communicate "
"with the Open ERP server for case management in the CRM module.")
parser.add_option_group(group)
parser.add_option("-u", "--user", dest="userid", help="ID of the user in Open ERP", default=1, type='int')
parser.add_option("-p", "--password", dest="password", help="Password of the user in Open ERP", default='admin')
- parser.add_option("-e", "--email", dest="email", help="Email address used in the From field of outgoing messages")
parser.add_option("-o", "--model", dest="model", help="Name or ID of crm model", default="crm.lead")
parser.add_option("-m", "--default", dest="default", help="Default eMail in case of any trouble.", default=None)
parser.add_option("-d", "--dbname", dest="dbname", help="Database name (default: terp)", default='terp')
@@ -83,10 +76,10 @@ if __name__ == '__main__':
logging.basicConfig(level=logging.DEBUG, format="%(asctime)s %(levelname)s %(message)s")
- parser = email_parser(options.userid, options.password, options.model, options.email, options.default, dbname=options.dbname, host=options.host, port=options.port)
+ parser = email_parser(options.userid, options.password, options.model, options.default, dbname=options.dbname, host=options.host, port=options.port)
msg_txt = sys.stdin.read()
parser.parse(msg_txt)
-
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/marketing/__openerp__.py b/addons/marketing/__openerp__.py
index 6db46333985..e3890ffe8f6 100644
--- a/addons/marketing/__openerp__.py
+++ b/addons/marketing/__openerp__.py
@@ -30,9 +30,10 @@
'website': 'http://www.openerp.com',
'init_xml': [],
'update_xml': [
- 'marketing_view.xml',
- 'security/ir.model.access.csv'
- ],
+ 'security/marketing_security.xml',
+ 'security/ir.model.access.csv',
+ 'marketing_view.xml'
+ ],
'demo_xml': [],
'installable': True,
'active': False,
diff --git a/addons/marketing/marketing_view.xml b/addons/marketing/marketing_view.xml
index 64ea6111bd5..a3288fb471f 100644
--- a/addons/marketing/marketing_view.xml
+++ b/addons/marketing/marketing_view.xml
@@ -1,8 +1,9 @@
-
+
-
+
marketing.installer.view
diff --git a/addons/marketing/security/marketing_security.xml b/addons/marketing/security/marketing_security.xml
new file mode 100644
index 00000000000..232b3ecce79
--- /dev/null
+++ b/addons/marketing/security/marketing_security.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+ Marketing / User
+
+
+
+
diff --git a/addons/marketing_campaign/__init__.py b/addons/marketing_campaign/__init__.py
index d37d8604380..23796d1baaf 100644
--- a/addons/marketing_campaign/__init__.py
+++ b/addons/marketing_campaign/__init__.py
@@ -20,6 +20,7 @@
##############################################################################
import marketing_campaign
+import res_partner
import report
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/marketing_campaign/__openerp__.py b/addons/marketing_campaign/__openerp__.py
index 16e45a36c96..1044030df7e 100644
--- a/addons/marketing_campaign/__openerp__.py
+++ b/addons/marketing_campaign/__openerp__.py
@@ -24,7 +24,7 @@
"name" : "",
"version" : "1.1",
"depends" : ["marketing",
- "crm",
+ "crm",
"document",
"email_template"
],
@@ -42,8 +42,9 @@ are dynamic and multi-channels. The process:
'init_xml': [],
'update_xml': [
'marketing_campaign_view.xml',
- 'marketing_campaign_data.xml',
- 'marketing_campaign_workflow.xml',
+ 'marketing_campaign_data.xml',
+ 'marketing_campaign_workflow.xml',
+ 'res_partner_view.xml',
'report/campaign_analysis_view.xml',
"security/marketing_campaign_security.xml",
"security/ir.model.access.csv"
diff --git a/addons/marketing_campaign/marketing_campaign.py b/addons/marketing_campaign/marketing_campaign.py
index 386e5639dd7..a9f898f3270 100644
--- a/addons/marketing_campaign/marketing_campaign.py
+++ b/addons/marketing_campaign/marketing_campaign.py
@@ -50,8 +50,8 @@ this campaign to be run"),
('manual', 'With Manual Confirmation'),
('active', 'Normal')],
'Mode', required=True, help= \
-"""Test - It creates and process all the workitems directly (without waiting for the delay on transitions) but do not send emails or produce reports.
-Test in Realtime - It creates and process all the workitems directly but do not send emails or produce reports.
+"""Test - It creates and process all the activities directly (without waiting for the delay on transitions) but do not send emails or produce reports.
+Test in Realtime - It creates and process all the activities directly but do not send emails or produce reports.
With Manual Confirmation - the campaigns runs normally, but the user has to validate all workitem manually.
Normal - the campaign runs normally and automatically sends all emails and reports"""),
'state': fields.selection([('draft', 'Draft'),
@@ -289,7 +289,9 @@ class marketing_campaign_activity(osv.osv):
context = {}
server_obj = self.pool.get('ir.actions.server')
context['active_id'] = workitem.res_id
- return server_obj.run(cr, uid, [activity.server_action_id.id], context)
+ res = server_obj.run(cr, uid, [activity.server_action_id.id], context)
+ #server action return False if the action is perfomed except client_action,other and python code
+ return res==False and True or res
def process(self, cr, uid, act_id, wi_id, context={}):
activity = self.browse(cr, uid, act_id)
diff --git a/addons/marketing_campaign/marketing_campaign_data.xml b/addons/marketing_campaign/marketing_campaign_data.xml
index 81402dd73c2..42ed4d12118 100644
--- a/addons/marketing_campaign/marketing_campaign_data.xml
+++ b/addons/marketing_campaign/marketing_campaign_data.xml
@@ -5,7 +5,7 @@
- Check Workitem
+ Check Marketing Campaign Activities
1
hours
-1
diff --git a/addons/marketing_campaign/marketing_campaign_view.xml b/addons/marketing_campaign/marketing_campaign_view.xml
index 62cb4a9cf50..d7d5cfe22d4 100644
--- a/addons/marketing_campaign/marketing_campaign_view.xml
+++ b/addons/marketing_campaign/marketing_campaign_view.xml
@@ -2,6 +2,8 @@
+
+
+
True
@@ -39,7 +39,7 @@
state_cancel_set()
-
+
@@ -66,7 +66,7 @@
True
-
+
True
@@ -95,7 +95,7 @@
state_cancel_set()
-
+
diff --git a/addons/marketing_campaign/res_partner.py b/addons/marketing_campaign/res_partner.py
new file mode 100644
index 00000000000..2ec92522d6a
--- /dev/null
+++ b/addons/marketing_campaign/res_partner.py
@@ -0,0 +1,37 @@
+# -*- 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 res_partner(osv.osv):
+ """ Inherits partner and adds CRM information in the partner form """
+ _inherit = 'res.partner'
+
+ _columns = {
+ 'workitem_ids': fields.one2many('marketing.campaign.workitem', 'partner_id',\
+ 'Workitems', readonly=True),
+
+ }
+
+res_partner()
+
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/marketing_campaign/res_partner_view.xml b/addons/marketing_campaign/res_partner_view.xml
new file mode 100644
index 00000000000..a035a4ea5f0
--- /dev/null
+++ b/addons/marketing_campaign/res_partner_view.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+ res.partner.workitem.info.inherit
+ res.partner
+ form
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/marketing_campaign/security/ir.model.access.csv b/addons/marketing_campaign/security/ir.model.access.csv
index dfafc2cd8a5..43a24d9e5eb 100644
--- a/addons/marketing_campaign/security/ir.model.access.csv
+++ b/addons/marketing_campaign/security/ir.model.access.csv
@@ -5,3 +5,4 @@
"access_marketing_campaign_workitem_campaignadmin","marketing.campaign.workitem","model_marketing_campaign_workitem","marketing_campaign.res_groups_marketing_campaign",1,1,1,1
"access_marketing_campaign_transition_campaignadmin","marketing.campaign.transition","model_marketing_campaign_transition","marketing_campaign.res_groups_marketing_campaign",1,1,1,1
"access_marketing_campaign_analysis_campaignadmin","campaign.analysis","model_campaign_analysis","marketing_campaign.res_groups_marketing_campaign",1,0,0,0
+"access_marketing_campaign_workitem_all","marketing.campaign.workitem","model_marketing_campaign_workitem","base.group_user",1,0,0,0
diff --git a/addons/mrp/board_manufacturing_demo.xml b/addons/mrp/board_manufacturing_demo.xml
index 080467eb8b7..aea87558a1c 100644
--- a/addons/mrp/board_manufacturing_demo.xml
+++ b/addons/mrp/board_manufacturing_demo.xml
@@ -1,13 +1,13 @@
-
+
diff --git a/addons/mrp/i18n/zh_CN.po b/addons/mrp/i18n/zh_CN.po
index afa393000d3..98db38dddd9 100644
--- a/addons/mrp/i18n/zh_CN.po
+++ b/addons/mrp/i18n/zh_CN.po
@@ -13,7 +13,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-24 03:46+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:57+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp
diff --git a/addons/mrp_operations/i18n/es.po b/addons/mrp_operations/i18n/es.po
index c278fc52afd..e29983cadcb 100644
--- a/addons/mrp_operations/i18n/es.po
+++ b/addons/mrp_operations/i18n/es.po
@@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp_operations
diff --git a/addons/olap/i18n/es.po b/addons/olap/i18n/es.po
index b7e1d5eeaea..6af368a67b2 100644
--- a/addons/olap/i18n/es.po
+++ b/addons/olap/i18n/es.po
@@ -15,7 +15,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: olap
diff --git a/addons/olap/i18n/et.po b/addons/olap/i18n/et.po
index ead8009afcc..77464b4f4f0 100644
--- a/addons/olap/i18n/et.po
+++ b/addons/olap/i18n/et.po
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2009-11-26 05:24+0000\n"
-"PO-Revision-Date: 2010-05-07 10:06+0000\n"
+"PO-Revision-Date: 2010-06-25 18:21+0000\n"
"Last-Translator: lyyser \n"
"Language-Team: Estonian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-22 04:20+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: olap
@@ -192,7 +192,7 @@ msgstr ""
#: wizard_button:olap.query_builder,exec,exec:0
#: wizard_button:olap.query_builder,ok,exec:0
msgid "Execute"
-msgstr ""
+msgstr "Käivita"
#. module: olap
#: wizard_button:olap.application.configuration,configure,end:0
@@ -202,7 +202,7 @@ msgstr ""
#: wizard_button:olap.query.logs.clear,ok,end:0
#: view:olap.warehouse.wizard:0
msgid "Ok"
-msgstr ""
+msgstr "Ok"
#. module: olap
#: model:ir.ui.menu,name:olap.menu_bi_conf_known_application
@@ -213,7 +213,7 @@ msgstr ""
#: wizard_field:olap.query_builder,exec,level:0
#: wizard_field:olap.query_builder,ok,level:0
msgid "Level"
-msgstr ""
+msgstr "Tase"
#. module: olap
#: field:olap.level,column_id_name:0
@@ -237,7 +237,7 @@ msgstr ""
#. module: olap
#: field:olap.saved.query,name:0
msgid "Query Name"
-msgstr ""
+msgstr "Päringu nimi"
#. module: olap
#: wizard_field:olap.query_builder,exec,mdx_query:0
@@ -258,12 +258,12 @@ msgstr "Primaarvõti"
#. module: olap
#: model:ir.actions.act_window,name:olap.act_bi_auto_configure
msgid "Auto Configuration"
-msgstr ""
+msgstr "Automaatne seadistamine"
#. module: olap
#: field:olap.schema,note:0
msgid "Schema description"
-msgstr ""
+msgstr "Skeemi kirjeldus"
#. module: olap
#: model:ir.actions.act_window,name:olap.act_bi_load_db_wizard
diff --git a/addons/olap_crm/olap_crm.xml b/addons/olap_crm/olap_crm.xml
index 96dadb7d783..619e133e609 100644
--- a/addons/olap_crm/olap_crm.xml
+++ b/addons/olap_crm/olap_crm.xml
@@ -1,6 +1,6 @@
-
+
-
+
diff --git a/addons/project/i18n/es.po b/addons/project/i18n/es.po
index 175a17229bc..7f5b605cdf1 100644
--- a/addons/project/i18n/es.po
+++ b/addons/project/i18n/es.po
@@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-24 03:46+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:57+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: project
diff --git a/addons/project/project_mailgate.py b/addons/project/project_mailgate.py
index 93c9732c720..5409aa4e752 100644
--- a/addons/project/project_mailgate.py
+++ b/addons/project/project_mailgate.py
@@ -77,7 +77,7 @@ class project_tasks(osv.osv):
getattr(self,act)(cr, uid, [id])
return True
- def emails_get(self, cr, uid, ids, context={}):
+ def message_followers(self, cr, uid, ids, context={}):
res = []
if isinstance(ids, (str, int, long)):
select = [ids]
diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml
index 86250622c5a..7b299cdcccc 100644
--- a/addons/project/project_view.xml
+++ b/addons/project/project_view.xml
@@ -1,7 +1,11 @@
-
+
+
diff --git a/addons/project/res_partner.py b/addons/project/res_partner.py
new file mode 100644
index 00000000000..f0297cf6a72
--- /dev/null
+++ b/addons/project/res_partner.py
@@ -0,0 +1,33 @@
+# -*- 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 res_partner(osv.osv):
+ """ Inherits partner and adds CRM information in the partner form """
+ _inherit = 'res.partner'
+ _columns = {
+ 'task_ids': fields.one2many('project.task', 'partner_id', 'Tasks'),
+ }
+res_partner()
+
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project/res_partner_view.xml b/addons/project/res_partner_view.xml
new file mode 100644
index 00000000000..4778c0f1017
--- /dev/null
+++ b/addons/project/res_partner_view.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+ res.partner.task.info.inherit
+ res.partner
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/project/security/ir.model.access.csv b/addons/project/security/ir.model.access.csv
index 502c8af0596..0c030e0c701 100644
--- a/addons/project/security/ir.model.access.csv
+++ b/addons/project/security/ir.model.access.csv
@@ -23,3 +23,5 @@
"access_partner_task manager","base.res.partner manager","base.model_res_partner","project.group_project_manager",1,0,0,0
"access_partner_address_task user","base.res.partner.address user","base.model_res_partner_address","project.group_project_user",1,0,0,0
"access_partner_address_task manager","base.res.partner.address manager","base.model_res_partner_address","project.group_project_manager",1,0,0,0
+"access_task_on_partner","project.task on partners","model_project_task","base.group_user",1,0,0,0
+"access_project_on_partner","project.project on partners","model_project_project","base.group_user",1,0,0,0
diff --git a/addons/project_issue/__openerp__.py b/addons/project_issue/__openerp__.py
index 7339399cc08..97f9e96afa0 100644
--- a/addons/project_issue/__openerp__.py
+++ b/addons/project_issue/__openerp__.py
@@ -34,7 +34,7 @@
'crm',
'project',
'hr_timesheet_sheet',
- 'project_long_term',
+ 'resource'
],
'init_xml': [
'project_issue_data.xml'
diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py
index 3523485f542..b9d7baed6dd 100644
--- a/addons/project_issue/project_issue.py
+++ b/addons/project_issue/project_issue.py
@@ -183,6 +183,8 @@ class project_issue(osv.osv, crm.crm_case):
method=True, multi='working_days_close', type="float", store=True),
'message_ids': fields.one2many('mailgate.message', 'res_id', 'Messages', domain=[('history', '=', True),('model','=',_name)]),
'log_ids': fields.one2many('mailgate.message', 'res_id', 'Logs', domain=[('history', '=', False),('model','=',_name)]),
+ 'date_action_last': fields.datetime('Last Action', readonly=1),
+ 'date_action_next': fields.datetime('Next Action', readonly=1),
}
def _get_project(self, cr, uid, context):
@@ -332,7 +334,7 @@ class project_issue(osv.osv, crm.crm_case):
if res:
vals.update(res)
res = self.create(cr, uid, vals, context)
-
+ self.convert_to_bug(cr, uid, [res], context=context)
attachents = msg.get('attachments', [])
for attactment in attachents or []:
@@ -383,36 +385,6 @@ class project_issue(osv.osv, crm.crm_case):
res = self.write(cr, uid, ids, vals)
return res
- def emails_get(self, cr, uid, ids, context=None):
-
- """
- Get Emails
- @param self: The object pointer
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param ids: List of email’s IDs
- @param context: A standard dictionary for contextual values
- """
- res = {}
-
- if isinstance(ids, (str, int, long)):
- select = [long(ids)]
- else:
- select = ids
-
- for thread in self.browse(cr, uid, select, context=context):
- values = collections.defaultdict(set)
-
- for message in thread.message_ids:
- user_email = (message.user_id and message.user_id.address_id and message.user_id.address_id.email) or False
- values['user_email'].add(user_email)
- values['email_from'].add(message.email_from)
- values['email_cc'].add(message.email_cc or False)
- values['priority'] = thread.priority
-
- res[thread.id] = dict((key,list(values[key])) for key, value in values.iteritems())
-
- return res
def msg_send(self, cr, uid, id, *args, **argv):
@@ -428,3 +400,11 @@ class project_issue(osv.osv, crm.crm_case):
project_issue()
+class project(osv.osv):
+ _inherit = "project.project"
+ _columns = {
+ 'resource_calendar_id': fields.many2one('resource.calendar', 'Working Time', help="Timetable working hours to adjust the gantt diagram report"),
+ }
+project()
+
+
diff --git a/addons/project_issue/project_issue_demo.xml b/addons/project_issue/project_issue_demo.xml
index ed031672360..aee12ccf01e 100644
--- a/addons/project_issue/project_issue_demo.xml
+++ b/addons/project_issue/project_issue_demo.xml
@@ -1,290 +1,278 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/project_issue/project_issue_menu.xml b/addons/project_issue/project_issue_menu.xml
index ea902ea599f..fefdd496559 100644
--- a/addons/project_issue/project_issue_menu.xml
+++ b/addons/project_issue/project_issue_menu.xml
@@ -1,6 +1,6 @@
-
+
######################## ISSUE TRACKING (menu) ###########################
diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml
index 973e0a1a20c..fd523ad7774 100644
--- a/addons/project_issue/project_issue_view.xml
+++ b/addons/project_issue/project_issue_view.xml
@@ -95,7 +95,7 @@
diff --git a/addons/project_timesheet/i18n/es.po b/addons/project_timesheet/i18n/es.po
index 777b9212e77..28dd6ec6d3c 100644
--- a/addons/project_timesheet/i18n/es.po
+++ b/addons/project_timesheet/i18n/es.po
@@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: project_timesheet
diff --git a/addons/purchase/i18n/el.po b/addons/purchase/i18n/el.po
index 09f8256c503..ceb54327a4d 100644
--- a/addons/purchase/i18n/el.po
+++ b/addons/purchase/i18n/el.po
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
-"PO-Revision-Date: 2009-12-16 19:12+0000\n"
-"Last-Translator: Andreas Porevopoulos \n"
+"PO-Revision-Date: 2010-06-26 00:12+0000\n"
+"Last-Translator: Fotis Tsamis \n"
"Language-Team: nls@hellug.gr \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-22 03:56+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:57+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
"X-Poedit-Country: GREECE\n"
"X-Poedit-Language: Greek\n"
@@ -788,7 +788,7 @@ msgstr "Προϊόν"
#: field:purchase.order.line,name:0
#: rml:purchase.quotation:0
msgid "Description"
-msgstr "Περογραφή"
+msgstr "Περιγραφή"
#. module: purchase
#: model:process.transition,name:purchase.process_transition_productrecept0
diff --git a/addons/report_analytic_planning/i18n/es.po b/addons/report_analytic_planning/i18n/es.po
index bf4ebb8ce76..f1a6e356108 100644
--- a/addons/report_analytic_planning/i18n/es.po
+++ b/addons/report_analytic_planning/i18n/es.po
@@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-24 03:46+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:57+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: report_analytic_planning
diff --git a/addons/report_task/i18n/es.po b/addons/report_task/i18n/es.po
index 8bb396c5454..25894c98146 100644
--- a/addons/report_task/i18n/es.po
+++ b/addons/report_task/i18n/es.po
@@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: report_task
diff --git a/addons/sale/board_sale_demo.xml b/addons/sale/board_sale_demo.xml
index 996821c02e1..09419de206c 100644
--- a/addons/sale/board_sale_demo.xml
+++ b/addons/sale/board_sale_demo.xml
@@ -1,17 +1,17 @@
-
+
-
+
diff --git a/addons/sale/i18n/es.po b/addons/sale/i18n/es.po
index 3c481e1f885..c200c9f3dcb 100644
--- a/addons/sale/i18n/es.po
+++ b/addons/sale/i18n/es.po
@@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: sale
diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml
index 206e9441524..aeeba26bed7 100644
--- a/addons/sale/sale_view.xml
+++ b/addons/sale/sale_view.xml
@@ -158,7 +158,8 @@
-
+
+
diff --git a/addons/sale_crm/__openerp__.py b/addons/sale_crm/__openerp__.py
index 9464db91b6f..007711da5d0 100644
--- a/addons/sale_crm/__openerp__.py
+++ b/addons/sale_crm/__openerp__.py
@@ -38,8 +38,9 @@ crm modules.
'website': 'http://www.openerp.com',
'depends': ['sale', 'crm'],
'init_xml': [],
- 'update_xml': ['sale_crm_wizard.xml',
+ 'update_xml': ['wizard/crm_make_sale_view.xml',
'sale_crm_view.xml',
+ 'board_sale_crm_view.xml',
'process/sale_crm_process.xml',
'security/sale_crm_security.xml',
],
diff --git a/addons/sale_crm/board_sale_crm_view.xml b/addons/sale_crm/board_sale_crm_view.xml
new file mode 100644
index 00000000000..42b7cc1cd47
--- /dev/null
+++ b/addons/sale_crm/board_sale_crm_view.xml
@@ -0,0 +1,94 @@
+
+
+
+
+
+ Quotations
+ sale.order
+ form
+ tree,form
+ [('state','=','draft'),('user_id','=',uid)]
+
+
+
+
+ turnover.by.month.tree
+ account.invoice.report
+ tree
+
+
+
+
+
+
+
+
+
+ turnover.by.month.graph
+ account.invoice.report
+ graph
+
+
+
+
+
+
+
+
+
+ account.invoice.report
+ form
+ graph,tree
+
+ [('year','ilike',time.strftime('%Y')),('user_id','=',uid)]
+ {'group_by_no_leaf':1,'group_by':['month']}
+
+
+
+
+ CRM - Dashboard Form
+ board.board
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/addons/sale_crm/sale_crm_view.xml b/addons/sale_crm/sale_crm_view.xml
index 565fd687b4e..5cf4cf552f0 100644
--- a/addons/sale_crm/sale_crm_view.xml
+++ b/addons/sale_crm/sale_crm_view.xml
@@ -9,7 +9,7 @@
-
+
diff --git a/addons/sale_crm/sale_crm_wizard.xml b/addons/sale_crm/sale_crm_wizard.xml
deleted file mode 100644
index 74dcf06e901..00000000000
--- a/addons/sale_crm/sale_crm_wizard.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/addons/sale_crm/wizard/__init__.py b/addons/sale_crm/wizard/__init__.py
index 87048a13fc4..04f40c92207 100644
--- a/addons/sale_crm/wizard/__init__.py
+++ b/addons/sale_crm/wizard/__init__.py
@@ -19,7 +19,7 @@
#
##############################################################################
-import makesale
+import crm_make_sale
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/sale_crm/wizard/crm_make_sale.py b/addons/sale_crm/wizard/crm_make_sale.py
new file mode 100644
index 00000000000..db6bcd832b3
--- /dev/null
+++ b/addons/sale_crm/wizard/crm_make_sale.py
@@ -0,0 +1,183 @@
+# -*- 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
+from tools.translate import _
+from mx.DateTime import now
+
+
+class crm_make_sale(osv.osv_memory):
+ """ Make sale order for crm """
+
+ _name = "crm.make.sale"
+ _description = "Make sale"
+
+ def _selectPartner(self, cr, uid, context=None):
+ """
+ This function gets default value for partner_id field.
+ @param self: The object pointer
+ @param cr: the current row, from the database cursor,
+ @param uid: the current user’s ID for security checks,
+ @param context: A standard dictionary for contextual values
+ @return : default value of partner_id field.
+ """
+ if not context:
+ context = {}
+
+ active_id = context and context.get('active_id', False) or False
+ if not active_id:
+ return False
+ lead_obj = self.pool.get('crm.lead')
+ lead = lead_obj.read(cr, uid, active_id, ['partner_id'])
+ return lead['partner_id']
+
+ def makeOrder(self, cr, uid, ids, context=None):
+ """
+ This function create Quotation on given case.
+ @param self: The object pointer
+ @param cr: the current row, from the database cursor,
+ @param uid: the current user’s ID for security checks,
+ @param ids: List of crm make sale' ids
+ @param context: A standard dictionary for contextual values
+ @return : Dictionary value of created sale order.
+ """
+ if not context:
+ context = {}
+
+ mod_obj = self.pool.get('ir.model.data')
+
+
+ result = mod_obj._get_id(cr, uid, 'sale', 'view_sales_order_filter')
+ id = mod_obj.read(cr, uid, result, ['res_id'])
+
+ case_obj = self.pool.get('crm.lead')
+ sale_obj = self.pool.get('sale.order')
+ partner_obj = self.pool.get('res.partner')
+ sale_line_obj = self.pool.get('sale.order.line')
+
+ data = context and context.get('active_ids', []) or []
+
+ for make in self.browse(cr, uid, ids):
+ default_partner_addr = partner_obj.address_get(cr, uid, [make.partner_id.id],
+ ['invoice', 'delivery', 'contact'])
+ default_pricelist = partner_obj.browse(cr, uid, make.partner_id.id,
+ context).property_product_pricelist.id
+ fpos_data = partner_obj.browse(cr, uid, make.partner_id.id, context).property_account_position
+ new_ids = []
+
+ for case in case_obj.browse(cr, uid, data):
+ if case.partner_id and case.partner_id.id:
+ partner_id = case.partner_id.id
+ fpos = case.partner_id.property_account_position and case.partner_id.property_account_position.id or False
+ partner_addr = partner_obj.address_get(cr, uid, [case.partner_id.id],
+ ['invoice', 'delivery', 'contact'])
+ pricelist = partner_obj.browse(cr, uid, case.partner_id.id,
+ context).property_product_pricelist.id
+ else:
+ partner_id = make.partner_id.id
+ fpos = fpos_data and fpos_data.id or False
+ partner_addr = default_partner_addr
+ pricelist = default_pricelist
+
+ if False in partner_addr.values():
+ raise osv.except_osv(_('Data Insufficient!'),_('Customer has no addresses defined!'))
+
+ vals = {
+ 'origin': 'CRM-Opportunity:%s' % str(case.id),
+ 'section_id': case.section_id and case.section_id.id or False,
+ 'picking_policy': make.picking_policy,
+ 'shop_id': make.shop_id.id,
+ 'partner_id': partner_id,
+ 'pricelist_id': pricelist,
+ 'partner_invoice_id': partner_addr['invoice'],
+ 'partner_order_id': partner_addr['contact'],
+ 'partner_shipping_id': partner_addr['delivery'],
+ 'order_policy': 'manual',
+ 'date_order': now(),
+ 'fiscal_position': fpos,
+ }
+
+ if partner_id:
+ partner = partner_obj.browse(cr, uid, partner_id, context=context)
+ vals['user_id'] = partner.user_id and partner.user_id.id or uid
+
+ if make.analytic_account.id:
+ vals['project_id'] = make.analytic_account.id
+ new_id = sale_obj.create(cr, uid, vals)
+ for product_id in make.product_ids:
+ value = sale_line_obj.product_id_change(cr, uid, [], pricelist,
+ product_id.id, qty=1, partner_id=partner_id, fiscal_position=fpos)['value']
+ value['product_id'] = product_id.id
+ value['order_id'] = new_id
+ value['tax_id'] = [(6,0,value['tax_id'])]
+ sale_line_obj.create(cr, uid, value)
+
+ case_obj.write(cr, uid, [case.id], {'ref': 'sale.order,%s' % new_id})
+ new_ids.append(new_id)
+
+ if make.close:
+ case_obj.case_close(cr, uid, data)
+
+ if not new_ids:
+ return {}
+ if len(new_ids)<=1:
+ value = {
+ 'domain': str([('id', 'in', new_ids)]),
+ 'view_type': 'form',
+ 'view_mode': 'form',
+ 'res_model': 'sale.order',
+ 'view_id': False,
+ 'type': 'ir.actions.act_window',
+ 'res_id': new_ids and new_ids[0]
+
+ }
+
+
+ else:
+ value = {
+ 'domain': str([('id', 'in', new_ids)]),
+ 'view_type': 'form',
+ 'view_mode': 'tree,form',
+ 'res_model': 'sale.order',
+ 'view_id': False,
+ 'type': 'ir.actions.act_window',
+ 'res_id':new_ids
+ }
+ return value
+
+
+ _columns = {
+ 'shop_id': fields.many2one('sale.shop', 'Shop', required = True),
+ 'partner_id': fields.many2one('res.partner', 'Customer', required = True, help = 'Use this partner if there is no partner on the Opportunity'),
+ 'picking_policy': fields.selection([('direct','Partial Delivery'),
+ ('one','Complete Delivery')], 'Picking Policy', required = True),
+ 'product_ids': fields.many2many('product.product', 'product_sale_rel',\
+ 'sale_id', 'product_id', 'Products'),
+ 'analytic_account': fields.many2one('account.analytic.account', 'Analytic Account'),
+ 'close': fields.boolean('Close Case', help = 'Check this to close the case after having created the sale order.'),
+ }
+ _defaults = {
+ 'partner_id': _selectPartner,
+ 'close': lambda *a: 1
+ }
+
+crm_make_sale()
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/sale_crm/wizard/crm_make_sale_view.xml b/addons/sale_crm/wizard/crm_make_sale_view.xml
new file mode 100644
index 00000000000..a1da3ed1fec
--- /dev/null
+++ b/addons/sale_crm/wizard/crm_make_sale_view.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+ crm.make.sale.form
+ crm.make.sale
+ form
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Make Quotation
+ ir.actions.act_window
+ crm.make.sale
+ form
+ form
+ new
+
+
+
+
diff --git a/addons/sale_crm/wizard/makesale.py b/addons/sale_crm/wizard/makesale.py
deleted file mode 100644
index e4aacce1044..00000000000
--- a/addons/sale_crm/wizard/makesale.py
+++ /dev/null
@@ -1,179 +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 mx.DateTime import now
-
-import wizard
-import netsvc
-import ir
-import pooler
-from tools.translate import _
-
-sale_form = """
-
-
-
-
-
-
-
-
- """
-
-sale_fields = {
- 'shop_id': {'string': 'Shop', 'type': 'many2one', 'relation': 'sale.shop'},
- 'partner_id': {'string': 'Customer', 'type': 'many2one',
- 'relation': 'res.partner',
- 'help': 'Use this partner if there is no partner on the case'},
- 'picking_policy': {'string': 'Picking Policy', 'type': 'selection',
- 'selection': [('direct', 'Partial Delivery'), ('one', 'Complete Delivery')]},
- 'products': {'string': 'Products', 'type': 'many2many',
- 'relation': 'product.product'},
- 'analytic_account': {'string': 'Analytic Account', 'type': 'many2one',
- 'relation': 'account.analytic.account'},
- 'close': {'string': 'Close Case', 'type': 'boolean', 'default': lambda *a: 1,
- 'help': 'Check this to close the case after having created the sale order.'},
-}
-
-
-class make_sale(wizard.interface):
-
- def _selectPartner(self, cr, uid, data, context):
- case_obj = pooler.get_pool(cr.dbname).get('crm.lead')
- case = case_obj.read(cr, uid, data['ids'], ['partner_id'])
- return {'partner_id': case[0]['partner_id']}
-
- def _makeOrder(self, cr, uid, data, context):
- pool = pooler.get_pool(cr.dbname)
- mod_obj = pool.get('ir.model.data')
- result = mod_obj._get_id(cr, uid, 'sale', 'view_sales_order_filter')
- id = mod_obj.read(cr, uid, result, ['res_id'])
- case_obj = pool.get('crm.lead')
- sale_obj = pool.get('sale.order')
- partner_obj = pool.get('res.partner')
- sale_line_obj = pool.get('sale.order.line')
-
- default_partner_addr = partner_obj.address_get(cr, uid, [data['form']['partner_id']],
- ['invoice', 'delivery', 'contact'])
- default_pricelist = partner_obj.browse(cr, uid, data['form']['partner_id'],
- context).property_product_pricelist.id
- fpos_data = partner_obj.browse(cr, uid, data['form']['partner_id'],context).property_account_position
- new_ids = []
-
- for case in case_obj.browse(cr, uid, data['ids']):
- if case.partner_id and case.partner_id.id:
- partner_id = case.partner_id.id
- fpos = case.partner_id.property_account_position and case.partner_id.property_account_position.id or False
- partner_addr = partner_obj.address_get(cr, uid, [case.partner_id.id],
- ['invoice', 'delivery', 'contact'])
- pricelist = partner_obj.browse(cr, uid, case.partner_id.id,
- context).property_product_pricelist.id
- else:
- partner_id = data['form']['partner_id']
- fpos = fpos_data and fpos_data.id or False
- partner_addr = default_partner_addr
- pricelist = default_pricelist
-
- if False in partner_addr.values():
- raise wizard.except_wizard(_('Data Insufficient!'),_('Customer has no addresses defined!'))
-
- vals = {
- 'origin': 'CRM-Opportunity:%s' % str(case.id),
- 'section_id': case.section_id and case.section_id.id or False,
- 'picking_policy': data['form']['picking_policy'],
- 'shop_id': data['form']['shop_id'],
- 'partner_id': partner_id,
- 'pricelist_id': pricelist,
- 'partner_invoice_id': partner_addr['invoice'],
- 'partner_order_id': partner_addr['contact'],
- 'partner_shipping_id': partner_addr['delivery'],
- 'order_policy': 'manual',
- 'date_order': now(),
- 'fiscal_position': fpos,
- }
-
- if partner_id:
- partner = partner_obj.browse(cr, uid, partner_id, context=context)
- vals['user_id'] = partner.user_id and partner.user_id.id or uid
-
- if data['form']['analytic_account']:
- vals['project_id'] = data['form']['analytic_account']
-
- vals.update( sale_obj.onchange_partner_id(cr, uid, [], partner_id).get('value',{}) )
- new_id = sale_obj.create(cr, uid, vals)
- if data['form']['products']:
- for product_id in data['form']['products'][0][2]:
- value = {
- 'price_unit': 0.0,
- 'product_id': product_id,
- 'order_id': new_id,
- }
- value.update( sale_line_obj.product_id_change(cr, uid, [], pricelist,product_id, qty=1, partner_id=partner_id, fiscal_position=fpos)['value'] )
- value['tax_id'] = [(6,0,value['tax_id'])]
- sale_line_obj.create(cr, uid, value)
-
- case_obj.write(cr, uid, [case.id], {'ref': 'sale.order,%s' % new_id})
- new_ids.append(new_id)
-
- if data['form']['close']:
- case_obj.case_close(cr, uid, data['ids'])
-
- if not new_ids:
- return {}
-
- if len(new_ids)<=1:
- value = {
- 'domain': str([('id', 'in', new_ids)]),
- 'view_type': 'form',
- 'view_mode': 'form',
- 'res_model': 'sale.order',
- 'view_id': False,
- 'type': 'ir.actions.act_window',
- 'res_id': new_ids and new_ids[0]
- }
- else:
- value = {
- 'domain': str([('id', 'in', new_ids)]),
- 'view_type': 'form',
- 'view_mode': 'tree,form',
- 'res_model': 'sale.order',
- 'view_id': False,
- 'type': 'ir.actions.act_window',
- 'res_id':new_ids
- }
-
- return value
-
- states = {
- 'init': {
- 'actions': [_selectPartner],
- 'result': {'type': 'form', 'arch': sale_form, 'fields': sale_fields,
- 'state' : [('end', 'Cancel', 'gtk-cancel'),('order', 'Create', 'gtk-apply')]}
- },
- 'order': {
- 'actions': [],
- 'result': {'type': 'action', 'action': _makeOrder, 'state': 'end'}
- }
- }
-
-make_sale('crm.opportunity.make_order')
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/sale_margin/i18n/et.po b/addons/sale_margin/i18n/et.po
new file mode 100644
index 00000000000..d4178048461
--- /dev/null
+++ b/addons/sale_margin/i18n/et.po
@@ -0,0 +1,370 @@
+# Estonian translation for openobject-addons
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2009-11-25 14:28+0000\n"
+"PO-Revision-Date: 2010-06-25 18:17+0000\n"
+"Last-Translator: lyyser \n"
+"Language-Team: Estonian \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: sale_margin
+#: selection:report.account.invoice,type:0
+#: selection:report.account.invoice.category,type:0
+#: selection:report.account.invoice.partner,type:0
+#: selection:report.account.invoice.partner.product,type:0
+#: selection:report.account.invoice.product,type:0
+msgid "Customer Refund"
+msgstr "Kliendi tagasimakse"
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice_product
+msgid "report.account.invoice.product"
+msgstr ""
+
+#. module: sale_margin
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+"Objekti nimi peab algama x_'ga ja ei tohi sisaldada ühtegi erisümbolit !"
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_product
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_product
+msgid "Invoices by Product"
+msgstr ""
+
+#. module: sale_margin
+#: selection:report.account.invoice,type:0
+#: selection:report.account.invoice.category,type:0
+#: selection:report.account.invoice.partner,type:0
+#: selection:report.account.invoice.partner.product,type:0
+#: selection:report.account.invoice.product,type:0
+msgid "Customer Invoice"
+msgstr "Kliendi arve"
+
+#. module: sale_margin
+#: wizard_view:stock.invoice_onshipping,init:0
+msgid "Create invoices"
+msgstr "Loo arved"
+
+#. module: sale_margin
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "Vigane XML vaate arhitektuurile!"
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice_partner_product
+msgid "report.account.invoice.partner.product"
+msgstr ""
+
+#. module: sale_margin
+#: selection:report.account.invoice,type:0
+#: selection:report.account.invoice.category,type:0
+#: selection:report.account.invoice.partner,type:0
+#: selection:report.account.invoice.partner.product,type:0
+#: selection:report.account.invoice.product,type:0
+msgid "Supplier Invoice"
+msgstr "Tarnija arve"
+
+#. module: sale_margin
+#: field:report.account.invoice,state:0
+#: field:report.account.invoice.category,state:0
+#: field:report.account.invoice.partner,state:0
+#: field:report.account.invoice.partner.product,state:0
+#: field:report.account.invoice.product,state:0
+msgid "State"
+msgstr ""
+
+#. module: sale_margin
+#: view:stock.picking:0
+msgid "Create Invoice"
+msgstr "Loo arve"
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Draft"
+msgstr "Mustand"
+
+#. module: sale_margin
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Vigane mudeli nimi toimingu definitsioonis."
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_month_product
+msgid "All Months"
+msgstr "Kõik kuud"
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_product_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_product_tree_all
+msgid "report.account.invoice.partner.product.tree"
+msgstr ""
+
+#. module: sale_margin
+#: field:report.account.invoice,type:0
+#: field:report.account.invoice.category,type:0
+#: field:report.account.invoice.partner,type:0
+#: field:report.account.invoice.partner.product,type:0
+#: field:report.account.invoice.product,type:0
+#: wizard_field:stock.invoice_onshipping,init,type:0
+msgid "Type"
+msgstr "Tüüp"
+
+#. module: sale_margin
+#: wizard_field:stock.invoice_onshipping,init,journal_id:0
+msgid "Destination Journal"
+msgstr "Sihtkoha päevik"
+
+#. module: sale_margin
+#: view:stock.picking:0
+msgid "Supplier Invoices"
+msgstr "Tarnija arved"
+
+#. module: sale_margin
+#: field:report.account.invoice.partner.product,product_id:0
+#: field:report.account.invoice.product,product_id:0
+msgid "Product"
+msgstr "Toode"
+
+#. module: sale_margin
+#: view:report.account.invoice.partner:0
+msgid "Invoices by partner"
+msgstr ""
+
+#. module: sale_margin
+#: view:report.account.invoice.category:0
+msgid "Invoices by category"
+msgstr "Arved kategooria järgi"
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Paid"
+msgstr "Makstud"
+
+#. module: sale_margin
+#: model:ir.actions.wizard,name:sale_margin.wizard_picking_invoice_create
+#: wizard_button:stock.invoice_onshipping,init,create_invoice:0
+msgid "Create invoice"
+msgstr "Loo arve"
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_category_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_category_tree_all
+msgid "report.account.invoice.category.tree"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_partner_product
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_partner_product
+msgid "Invoices by Partner and Product"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice_category
+msgid "report.account.invoice.category"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_this_month_product
+msgid "This Month"
+msgstr "See kuu"
+
+#. module: sale_margin
+#: field:report.account.invoice.category,categ_id:0
+msgid "Categories"
+msgstr "Kategooriad"
+
+#. module: sale_margin
+#: field:account.invoice.line,cost_price:0
+#: field:report.account.invoice,cost_price:0
+#: field:report.account.invoice.category,cost_price:0
+#: field:report.account.invoice.partner,cost_price:0
+#: field:report.account.invoice.partner.product,cost_price:0
+#: field:report.account.invoice.product,cost_price:0
+#: field:sale.order.line,purchase_price:0
+msgid "Cost Price"
+msgstr "Ostuhind"
+
+#. module: sale_margin
+#: wizard_field:stock.invoice_onshipping,init,group:0
+msgid "Group by partner"
+msgstr "Grupeeri partneri järgi"
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice_partner
+msgid "report.account.invoice.partner"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_partner
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_partner
+msgid "Invoices by Partner"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_category
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_category
+msgid "Invoices by Category"
+msgstr ""
+
+#. module: sale_margin
+#: view:report.account.invoice.partner.product:0
+msgid "Invoices by partner and product"
+msgstr ""
+
+#. module: sale_margin
+#: field:report.account.invoice,amount:0
+#: field:report.account.invoice.category,amount:0
+#: field:report.account.invoice.partner,amount:0
+#: field:report.account.invoice.partner.product,amount:0
+#: field:report.account.invoice.product,amount:0
+msgid "Amount"
+msgstr "Hulk"
+
+#. module: sale_margin
+#: wizard_field:stock.invoice_onshipping,init,invoice_date:0
+msgid "Invoiced date"
+msgstr "Arve kuupäeva"
+
+#. module: sale_margin
+#: selection:report.account.invoice,type:0
+#: selection:report.account.invoice.category,type:0
+#: selection:report.account.invoice.partner,type:0
+#: selection:report.account.invoice.partner.product,type:0
+#: selection:report.account.invoice.product,type:0
+msgid "Supplier Refund"
+msgstr "Tarnija tagasimakse"
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_tree_all
+msgid "report.account.invoice.partner.tree"
+msgstr ""
+
+#. module: sale_margin
+#: field:report.account.invoice,margin:0
+#: field:report.account.invoice.category,margin:0
+#: field:report.account.invoice.partner,margin:0
+#: field:report.account.invoice.partner.product,margin:0
+#: field:report.account.invoice.product,margin:0
+#: field:sale.order,margin:0
+#: field:sale.order.line,margin:0
+msgid "Margin"
+msgstr "Veeris"
+
+#. module: sale_margin
+#: field:report.account.invoice,quantity:0
+#: field:report.account.invoice.category,quantity:0
+#: field:report.account.invoice.partner,quantity:0
+#: field:report.account.invoice.partner.product,quantity:0
+#: field:report.account.invoice.product,quantity:0
+msgid "Quantity"
+msgstr "Kogus"
+
+#. module: sale_margin
+#: view:report.account.invoice.product:0
+msgid "Invoices by product"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.module.module,shortdesc:sale_margin.module_meta_information
+msgid "Margins in Sale Orders"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice
+msgid "report.account.invoice"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_invoices
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_invoices
+#: view:report.account.invoice:0
+#: view:stock.picking:0
+#: field:stock.picking,invoice_ids:0
+msgid "Invoices"
+msgstr "Arved"
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Pro-forma"
+msgstr "Pro-forma"
+
+#. module: sale_margin
+#: field:report.account.invoice,name:0
+#: field:report.account.invoice.category,name:0
+#: field:report.account.invoice.partner,name:0
+#: field:report.account.invoice.partner.product,name:0
+#: field:report.account.invoice.product,name:0
+msgid "Month"
+msgstr "Kuu"
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Canceled"
+msgstr "Katkestatud"
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_product
+msgid "Invoice"
+msgstr "Arve"
+
+#. module: sale_margin
+#: wizard_button:stock.invoice_onshipping,init,end:0
+msgid "Cancel"
+msgstr "Katkesta"
+
+#. module: sale_margin
+#: field:report.account.invoice.partner,partner_id:0
+#: field:report.account.invoice.partner.product,partner_id:0
+msgid "Partner"
+msgstr "Partner"
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_tree_all
+msgid "report.account.invoice.tree"
+msgstr ""
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Open"
+msgstr "Ava"
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_product_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_product_tree_all
+msgid "report.account.invoice.product.tree"
+msgstr ""
diff --git a/addons/scrum/scrum.py b/addons/scrum/scrum.py
index 40f17319df7..bcd67c757c4 100644
--- a/addons/scrum/scrum.py
+++ b/addons/scrum/scrum.py
@@ -108,7 +108,7 @@ class scrum_sprint(osv.osv):
'date_stop': fields.date('Ending Date', required=True),
'project_id': fields.many2one('project.project', 'Project', required=True, domain=[('scrum','=',1)], help="If you have [?] in the project name, it means there are no analytic account linked to this project."),
'product_owner_id': fields.many2one('res.users', 'Product Owner', required=True,help="The person who is responsible for the product"),
- 'scrum_master_id': fields.many2one('res.users', 'Scrum Manager', required=True,help="The person who is maintains the processes for the product"),
+ 'scrum_master_id': fields.many2one('res.users', 'Scrum Master', required=True,help="The person who is maintains the processes for the product"),
'meeting_ids': fields.one2many('scrum.meeting', 'sprint_id', 'Daily Scrum'),
'review': fields.text('Sprint Review'),
'retrospective': fields.text('Sprint Retrospective'),
@@ -308,9 +308,9 @@ class scrum_meeting(osv.osv):
if context is None:
context = {}
meeting_id = self.browse(cr, uid, ids)[0]
- email = meeting_id.sprint_id.scrum_master_id.user_email
- if email:
- self.email_send(cr, uid, ids, email, context=context)
+ user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
+ if meeting_id and meeting_id.sprint_id.scrum_master_id.user_email:
+ self.email_send(cr, uid, ids, meeting_id.sprint_id.scrum_master_id.user_email)
else:
raise osv.except_osv(_('Error !'), _('Please provide email address for scrum master defined on sprint.'))
return True
@@ -320,9 +320,8 @@ class scrum_meeting(osv.osv):
context = {}
context.update({'button_send_product_owner': True})
meeting_id = self.browse(cr, uid, ids)[0]
- email = meeting_id.sprint_id.product_owner_id.user_email
- if email:
- self.email_send(cr, uid, ids, email, context=context)
+ if meeting_id.sprint_id.product_owner_id.user_email:
+ self.email_send(cr,uid,ids,meeting_id.sprint_id.product_owner_id.user_email)
else:
raise osv.except_osv(_('Error !'), _('Please provide email address for product owner defined on sprint.'))
return True
diff --git a/addons/scrum/scrum_view.xml b/addons/scrum/scrum_view.xml
index d6a63d4eae6..db4d5d7af81 100644
--- a/addons/scrum/scrum_view.xml
+++ b/addons/scrum/scrum_view.xml
@@ -34,7 +34,7 @@
tree
-
+
@@ -152,7 +152,12 @@
domain="[('sprint_id','=',False)]"
help="Backlogs Not Assigned To Sprints."/>
-
+
+
+
@@ -161,7 +166,10 @@
-
+
+
+
+
diff --git a/addons/stock/i18n/es.po b/addons/stock/i18n/es.po
index 4b8113738fd..3b8da43d1c7 100644
--- a/addons/stock/i18n/es.po
+++ b/addons/stock/i18n/es.po
@@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-24 03:46+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:57+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: stock
diff --git a/addons/stock/stock.py b/addons/stock/stock.py
index 0e2f5499ba6..f1348b1427a 100644
--- a/addons/stock/stock.py
+++ b/addons/stock/stock.py
@@ -1007,6 +1007,18 @@ class stock_picking(osv.osv):
}, context=context)
return res
+ def test_done(self, cr, uid, ids, context={}):
+ ok = False
+ for pick in self.browse(cr, uid, ids, context=context):
+ if not pick.move_lines:
+ return True
+ for move in pick.move_lines:
+ if move.state not in ('cancel','done'):
+ return False
+ if move.state=='done':
+ ok = True
+ return ok
+
def test_cancel(self, cr, uid, ids, context={}):
""" Test whether the move lines are canceled or not.
@return: True or False
@@ -1834,11 +1846,10 @@ class stock_move(osv.osv):
for id in ids:
wf_service.trg_trigger(uid, 'stock.move', id, cr)
- # We should remove this
picking_obj = self.pool.get('stock.picking')
- for pick in picking_obj.browse(cr, uid, picking_ids):
- if len([(move.state in ('done','cancelled')) for move in pick.move_lines]) == len(pick.move_lines):
- picking_obj.action_done(cr, uid, [pick.id])
+ wf_service = netsvc.LocalService("workflow")
+ for pick_id in picking_ids:
+ wf_service.trg_write(uid, 'stock.picking', pick_id, cr)
for (id,name) in picking_obj.name_get(cr, uid, picking_ids):
message = _('Document') + " '" + name + "' "+ _("is processed")
diff --git a/addons/stock/stock_workflow.xml b/addons/stock/stock_workflow.xml
index 1c82eac49c3..3b9db02ce1f 100644
--- a/addons/stock/stock_workflow.xml
+++ b/addons/stock/stock_workflow.xml
@@ -67,6 +67,11 @@
test_assigned()
+
+
+
+ test_done()
+
diff --git a/addons/stock_location/i18n/es.po b/addons/stock_location/i18n/es.po
index 70f2d3a33cd..cd838d6959e 100644
--- a/addons/stock_location/i18n/es.po
+++ b/addons/stock_location/i18n/es.po
@@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-06-24 03:47+0000\n"
+"X-Launchpad-Export-Date: 2010-06-26 03:58+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: stock_location
diff --git a/addons/wiki/test/wiki_test00.yml b/addons/wiki/test/wiki_test00.yml
index 221aeded790..48cdacab11d 100755
--- a/addons/wiki/test/wiki_test00.yml
+++ b/addons/wiki/test/wiki_test00.yml
@@ -61,7 +61,7 @@
menu_parent_id: base.menu_base_partner
page: wiki.wiki_wiki_openerpwikiediting0
-
- I will check that menu is generated properly
+ I fill in the form and create the menu
-
!python {model: wiki.create.menu}: |
ids = self.search(cr, uid, [])
diff --git a/addons/wiki/wizard/wiki_create_menu.py b/addons/wiki/wizard/wiki_create_menu.py
index 0b242e655bb..f1b28382976 100644
--- a/addons/wiki/wizard/wiki_create_menu.py
+++ b/addons/wiki/wizard/wiki_create_menu.py
@@ -23,7 +23,6 @@ from osv import fields, osv
class wiki_create_menu(osv.osv_memory):
""" Create Menu """
-
_name = "wiki.create.menu"
_description = "Wizard Create Menu"
@@ -42,9 +41,13 @@ class wiki_create_menu(osv.osv_memory):
"""
mod_obj = self.pool.get('ir.model.data')
- action_id = mod_obj._get_id(cr, uid, 'wiki', 'action_view_wiki_wiki_page_open')
-
for menu in self.browse(cr, uid, ids):
+ action_id = mod_obj._get_id(cr, uid, 'wiki', 'action_view_wiki_wiki_page_open')
+ action_id = mod_obj.copy(cr, uid, action_id, context=context, default={
+ 'domain':"[('group_id','=',"+str(context.get('active_id',False))+"]",
+ "name": menu.menu_name
+ })
+
menu_id = self.pool.get('ir.ui.menu').create(cr, uid, {
'name': menu.menu_name,
'parent_id':menu.menu_parent_id.id,
diff --git a/addons/wiki_faq/wiki_faq.xml b/addons/wiki_faq/wiki_faq.xml
index 0bf1616fdc2..fdb93660682 100644
--- a/addons/wiki_faq/wiki_faq.xml
+++ b/addons/wiki_faq/wiki_faq.xml
@@ -1,6 +1,6 @@
-
+
Internal FAQ
list
diff --git a/addons/wiki_quality_manual/wiki_quality_manual.xml b/addons/wiki_quality_manual/wiki_quality_manual.xml
index e8601867e4a..9ef451f8a77 100644
--- a/addons/wiki_quality_manual/wiki_quality_manual.xml
+++ b/addons/wiki_quality_manual/wiki_quality_manual.xml
@@ -1,6 +1,6 @@
-
+
Quality Manual
quality, faq, manual