[MERGE]: Merge with lp:openobject-server

bzr revid: rpa@tinyerp.com-20100908051704-ndbu7ewdzap55ua7
bzr revid: hmo@tinyerp.com-20100908113129-0rud31cdpv42yfa6
bzr revid: rpa@tinyerp.com-20100909053230-ycmnc0k96dedyjq6
This commit is contained in:
rpa (Open ERP)
2010-09-09 11:02:30 +05:30
41 changed files with 725 additions and 554 deletions
+93 -53
View File
@@ -1021,6 +1021,7 @@
<record id="EUR" model="res.currency">
<field name="name">EUR</field>
<field name="code">EUR</field>
<field name="symbol">€</field>
<field name="rounding">0.01</field>
<field name="accuracy">4</field>
<!-- Company ID will be set later -->
@@ -1031,7 +1032,7 @@
<field name="currency_id" ref="EUR"/>
<field eval="time.strftime('%Y-01-01')" name="name"/>
</record>
<!-- Basic Company -->
<record id="main_company" model="res.company">
<field name="name">OpenERP S.A.</field>
@@ -1041,7 +1042,7 @@
<field name="rml_footer2">IBAN: BE74 1262 0132 6907 - SWIFT: CPHBBE75 - VAT: BE0477.472.701</field>
<field name="currency_id" ref="base.EUR"/>
</record>
<assert id="main_company" model="res.company">
<test expr="currency_id.code == 'eur'.upper()"/>
<test expr="name">OpenERP S.A.</test>
@@ -1066,6 +1067,7 @@
<field name="company_id" ref="main_company"/>
</record>
<!-- The Following currency rates are considered as on 1st Jan,2010 against EUR. -->
<!-- Currencies -->
<record id="EUR" model="res.currency">
<field name="company_id" ref="main_company"/>
@@ -1073,260 +1075,298 @@
<record id="USD" model="res.currency">
<field name="name">USD</field>
<field name="code">USD</field>
<field name="symbol">$</field>
<field name="rounding">0.01</field>
<field name="accuracy">4</field>
<field name="company_id" ref="main_company"/>
</record>
<record id="rateUSD" model="res.currency.rate">
<field name="rate">1.3785</field>
<field name="rate">1.2834</field>
<field name="currency_id" ref="USD"/>
<field eval="time.strftime('%Y-01-01')" name="name"/>
</record>
<record id="VEB" model="res.currency">
<field name="name">Bs</field>
<field name="code">VEB</field>
<field name="symbol">Bs</field>
<field name="rounding">2.95</field>
<field name="accuracy">4</field>
<field name="company_id" ref="main_company"/>
</record>
<record id="rateVEB" model="res.currency.rate">
<field name="rate">3132.9</field>
<field name="rate">2768.45</field>
<field name="currency_id" ref="VEB"/>
<field eval="time.strftime('%Y-01-01')" name="name"/>
</record>
<record id="CAD" model="res.currency">
<field name="name">CAD</field>
<field name="code">CAD</field>
<field name="symbol">$</field>
<field name="rounding">0.01</field>
<field name="accuracy">4</field>
<field name="company_id" ref="main_company"/>
</record>
<record id="rateCAD" model="res.currency.rate">
<field name="rate">1.451</field>
<field name="rate">1.3388</field>
<field name="currency_id" ref="CAD"/>
<field eval="time.strftime('%Y-01-01')" name="name"/>
</record>
<record id="CHF" model="res.currency">
<field name="name">CHF</field>
<field name="code">CHF</field>
<field name="symbol">CHF</field>
<field name="rounding">0.01</field>
<field name="accuracy">4</field>
<field name="company_id" ref="main_company"/>
</record>
<record id="rateCHF" model="res.currency.rate">
<field name="rate">1.644</field>
<field name="rate">1.3086</field>
<field name="currency_id" ref="CHF"/>
<field eval="time.strftime('%Y-01-01')" name="name"/>
</record>
<record id="BRL" model="res.currency">
<field name="name">BRL</field>
<field name="code">BRL</field>
<field name="symbol">R$</field>
<field name="rounding">0.01</field>
<field name="accuracy">4</field>
<field name="company_id" ref="main_company"/>
</record>
<record id="rateBRL" model="res.currency.rate">
<field name="rate">2.588</field>
<field name="rate">2.2344</field>
<field name="currency_id" ref="BRL"/>
<field eval="time.strftime('%Y-01-01')" name="name"/>
</record>
<record id="CNY" model="res.currency">
<field name="name">CNY</field>
<field name="code">CNY</field>
<field name="symbol">¥</field>
<field name="rounding">0.01</field>
<field name="accuracy">4</field>
<field name="company_id" ref="main_company"/>
</record>
<record id="rateCNY" model="res.currency.rate">
<field name="rate">10.4311</field>
<field name="rate">8.7556</field>
<field name="currency_id" ref="CNY"/>
<field eval="time.strftime('%Y-01-01')" name="name"/>
</record>
<record id="COP" model="res.currency">
<field name="name">COP</field>
<field name="code">COP</field>
<field name="symbol">$</field>
<field name="rounding">0.01</field>
<field name="accuracy">4</field>
<field name="company_id" ref="main_company"/>
</record>
<record id="rateCOP" model="res.currency.rate">
<field name="rate">2933.8378</field>
<field name="currency_id" ref="COP"/>
<field eval="time.strftime('%Y-01-01')" name="name"/>
</record>
<record id="CZK" model="res.currency">
<field name="name">Kč</field>
<field name="code">CZK</field>
<field name="symbol">Kč</field>
<field name="rounding">0.01</field>
<field name="accuracy">4</field>
<field name="company_id" ref="main_company"/>
</record>
<record id="rateCZK" model="res.currency.rate">
<field name="rate">26.5634</field>
<field name="currency_id" ref="CZK"/>
<field eval="time.strftime('%Y-01-01')" name="name"/>
</record>
<record id="DKK" model="res.currency">
<field name="name">kr</field>
<field name="code">DKK</field>
<field name="symbol">kr</field>
<field name="rounding">0.01</field>
<field name="accuracy">4</field>
<field name="company_id" ref="main_company"/>
</record>
<record id="rateDKK" model="res.currency.rate">
<field name="rate">7.4416</field>
<field name="rate">7.4445</field>
<field name="currency_id" ref="DKK"/>
<field eval="time.strftime('%Y-01-01')" name="name"/>
</record>
<record id="HUF" model="res.currency">
<field name="name">Ft</field>
<field name="code">HUF</field>
<field name="symbol">Ft</field>
<field name="rounding">0.01</field>
<field name="accuracy">4</field>
<field name="company_id" ref="main_company"/>
</record>
<record id="rateHUF" model="res.currency.rate">
<field name="rate">271.5621</field>
<field name="currency_id" ref="HUF"/>
<field eval="time.strftime('%Y-01-01')" name="name"/>
</record>
<record id="IDR" model="res.currency">
<field name="name">Rs</field>
<field name="code">IDR</field>
<field name="symbol">Rs</field>
<field name="rounding">0.01</field>
<field name="accuracy">4</field>
<field name="company_id" ref="main_company"/>
</record>
<record id="rateIDR" model="res.currency.rate">
<field name="rate">13495.2056</field>
<field name="currency_id" ref="IDR"/>
<field eval="time.strftime('%Y-01-01')" name="name"/>
</record>
<record id="LVL" model="res.currency">
<field name="name">Ls</field>
<field name="code">LVL</field>
<field name="symbol">Ls</field>
<field name="rounding">0.01</field>
<field name="accuracy">4</field>
<field name="company_id" ref="main_company"/>
</record>
<record id="rateLVL" model="res.currency.rate">
<field name="rate">0.71</field>
<field name="rate">0.7086</field>
<field name="currency_id" ref="LVL"/>
<field eval="time.strftime('%Y-01-01')" name="name"/>
</record>
<record id="NOK" model="res.currency">
<field name="name">kr</field>
<field name="code">NOK</field>
<field name="symbol">kr</field>
<field name="rounding">0.01</field>
<field name="accuracy">4</field>
<field name="company_id" ref="main_company"/>
</record>
<record id="rateNOK" model="res.currency.rate">
<field name="rate">7.93</field>
<field name="rate">7.8668</field>
<field name="currency_id" ref="NOK"/>
<field eval="time.strftime('%Y-01-01')" name="name"/>
</record>
<record id="PAB" model="res.currency">
<field name="name">PAB</field>
<field name="code">PAB</field>
<field name="symbol">B/.</field>
<field name="rounding">0.01</field>
<field name="accuracy">4</field>
<field name="company_id" ref="main_company"/>
</record>
<record id="ratePAB" model="res.currency.rate">
<field name="rate">1.3813</field>
<field name="rate">1.2676</field>
<field name="currency_id" ref="PAB"/>
<field eval="time.strftime('%Y-01-01')" name="name"/>
</record>
<record id="PLN" model="res.currency">
<field name="name">zł</field>
<field name="code">PLN</field>
<field name="symbol">zł</field>
<field name="rounding">0.01</field>
<field name="accuracy">4</field>
<field name="company_id" ref="main_company"/>
</record>
<record id="ratePLN" model="res.currency.rate">
<field name="rate">4.1005</field>
<field name="currency_id" ref="PLN"/>
<field eval="time.strftime('%Y-01-01')" name="name"/>
</record>
<record id="SEK" model="res.currency">
<field name="name">kr</field>
<field name="code">SEK</field>
<field name="symbol">kr</field>
<field name="rounding">0.01</field>
<field name="accuracy">4</field>
<field name="company_id" ref="main_company"/>
</record>
<record id="rateSEK" model="res.currency.rate">
<field name="rate">10.3004</field>
<field name="currency_id" ref="SEK"/>
<field eval="time.strftime('%Y-01-01')" name="name"/>
</record>
<record id="GBP" model="res.currency">
<field name="name">GBP</field>
<field name="code">GBP</field>
<field name="symbol">₤</field>
<field name="rounding">0.01</field>
<field name="accuracy">4</field>
<field name="company_id" ref="main_company"/>
</record>
<record id="rateGBP" model="res.currency.rate">
<field name="rate">0.675</field>
<field name="rate">0.8333</field>
<field name="currency_id" ref="GBP"/>
<field eval="time.strftime('%Y-01-01')" name="name"/>
</record>
<record id="ARS" model="res.currency">
<field name="name">ARS</field>
<field name="code">ARS</field>
<field name="symbol">$</field>
<field name="rounding">0.01</field>
<field name="accuracy">4</field>
<field name="company_id" ref="main_company"/>
</record>
<record id="rateARS" model="res.currency.rate">
<field name="rate">5.6</field>
</record>
= <record id="rateARS" model="res.currency.rate">
<field name="rate">5.0881</field>
<field name="currency_id" ref="ARS"/>
<field eval="time.strftime('%Y-01-01')" name="name"/>
</record>
</record>
<record id="INR" model="res.currency">
<field name="name">INR</field>
<field name="code">Rs</field>
<field name="symbol">Rs</field>
<field name="rounding">0.01</field>
<field name="accuracy">4</field>
<field name="company_id" ref="main_company"/>
</record>
<record id="rateINR" model="res.currency.rate">
<field name="rate">0.634</field>
<field name="rate">59.9739</field>
<field name="currency_id" ref="INR"/>
<field eval="time.strftime('%Y-01-01')" name="name"/>
</record>
<record id="rateINR2001" model="res.currency.rate">
<field name="rate">0.631</field>
<field name="currency_id" ref="INR"/>
<field name="name">2001-01-01</field>
</record>
<record id="rateINR2002" model="res.currency.rate">
<field name="rate">0.632</field>
<field name="currency_id" ref="INR"/>
<field name="name">2002-01-01</field>
</record>
<record id="AUD" model="res.currency">
<field name="name">AUD</field>
<field name="code">AUD</field>
<field name="symbol">$</field>
<field name="rounding">0.01</field>
<field name="accuracy">4</field>
<field name="company_id" ref="main_company"/>
</record>
<record id="rateAUD" model="res.currency.rate">
<field name="rate">1.5266</field>
<field name="rate">1.4070</field>
<field name="currency_id" ref="AUD"/>
<field eval="time.strftime('%Y-01-01')" name="name"/>
</record>
<record id="UAH" model="res.currency">
<field name="name">UAH</field>
<field name="code">UAH</field>
<field name="symbol">₴</field>
<field name="rounding">0.01</field>
<field name="accuracy">4</field>
<field name="company_id" ref="main_company"/>
</record>
<record id="rateUAH" model="res.currency.rate">
<field name="rate">10.8266</field>
<field name="rate">10.1969</field>
<field name="currency_id" ref="UAH"/>
<field eval="time.strftime('%Y-01-01')" name="name"/>
</record>
+2 -2
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-05-17 05:31+0000\n"
"PO-Revision-Date: 2010-09-08 22:19+0000\n"
"Last-Translator: Boris <boris.t.ivanov@gmail.com>\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-07-13 03:44+0000\n"
"X-Launchpad-Export-Date: 2010-09-09 04:42+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
+2 -2
View File
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-05-02 05:54+0000\n"
"PO-Revision-Date: 2010-09-08 21:58+0000\n"
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
"<jesteve@zikzakmedia.com>\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-07-13 03:44+0000\n"
"X-Launchpad-Export-Date: 2010-09-09 04:42+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
+2 -2
View File
@@ -6,13 +6,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
"PO-Revision-Date: 2009-12-16 06:38+0000\n"
"PO-Revision-Date: 2010-09-08 21:42+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"Language-Team: nls@hellug.gr <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-07-13 03:45+0000\n"
"X-Launchpad-Export-Date: 2010-09-09 04:42+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
"X-Poedit-Country: GREECE\n"
"X-Poedit-Language: Greek\n"
+3 -3
View File
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-server\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-07-10 04:47+0000\n"
"Last-Translator: OpenERP Administrators <Unknown>\n"
"PO-Revision-Date: 2010-09-08 22:13+0000\n"
"Last-Translator: Olivier Dony (OpenERP) <Unknown>\n"
"Language-Team: English (United Kingdom) <en_GB@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-07-13 03:48+0000\n"
"X-Launchpad-Export-Date: 2010-09-09 04:44+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
+2 -2
View File
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-05-02 05:52+0000\n"
"PO-Revision-Date: 2010-09-08 21:29+0000\n"
"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
"<jesteve@zikzakmedia.com>\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-07-13 03:47+0000\n"
"X-Launchpad-Export-Date: 2010-09-09 04:43+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
+2 -2
View File
@@ -3,13 +3,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-04-11 04:49+0000\n"
"PO-Revision-Date: 2010-09-08 21:58+0000\n"
"Last-Translator: Sadegh Ismael Nattaj <nat@sethack.com>\n"
"Language-Team: OpenERP Iran <info@openerp-iran.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-07-13 03:46+0000\n"
"X-Launchpad-Export-Date: 2010-09-09 04:43+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
"X-Poedit-Country: IRAN, ISLAMIC REPUBLIC OF\n"
"X-Poedit-Language: Persian\n"
+2 -2
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-09-02 07:50+0000\n"
"PO-Revision-Date: 2010-09-03 07:19+0000\n"
"Last-Translator: Quentin THEURET <quentin@theuret.net>\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-09-03 03:44+0000\n"
"X-Launchpad-Export-Date: 2010-09-04 04:43+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
+2 -2
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-09-02 06:44+0000\n"
"PO-Revision-Date: 2010-09-08 22:15+0000\n"
"Last-Translator: nafterburner <nafterburner@gmail.com>\n"
"Language-Team: openerp-translators\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-09-03 03:44+0000\n"
"X-Launchpad-Export-Date: 2010-09-09 04:43+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
"Language: hr\n"
+3 -3
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-09-02 06:41+0000\n"
"Last-Translator: OpenERP Administrators <Unknown>\n"
"PO-Revision-Date: 2010-09-08 21:23+0000\n"
"Last-Translator: Olivier Dony (OpenERP) <Unknown>\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-09-03 03:44+0000\n"
"X-Launchpad-Export-Date: 2010-09-09 04:43+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
+2 -2
View File
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-server\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-09-02 06:33+0000\n"
"PO-Revision-Date: 2010-09-08 21:43+0000\n"
"Last-Translator: Harry (Open ERP) <hmo@tinyerp.com>\n"
"Language-Team: Japanese <ja@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-09-03 03:44+0000\n"
"X-Launchpad-Export-Date: 2010-09-09 04:43+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
+2 -2
View File
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-09-02 10:24+0000\n"
"PO-Revision-Date: 2010-09-08 21:12+0000\n"
"Last-Translator: ub121 <ubs121@gmail.com>\n"
"Language-Team: Mongolian <mn@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-09-03 03:44+0000\n"
"X-Launchpad-Export-Date: 2010-09-09 04:43+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
+3 -3
View File
@@ -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-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-02-19 05:34+0000\n"
"Last-Translator: OpenERP Administrators <Unknown>\n"
"PO-Revision-Date: 2010-09-08 22:14+0000\n"
"Last-Translator: Olivier Dony (OpenERP) <Unknown>\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-07-13 03:45+0000\n"
"X-Launchpad-Export-Date: 2010-09-09 04:42+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
+3 -3
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-06-01 04:46+0000\n"
"Last-Translator: OpenERP Administrators <Unknown>\n"
"PO-Revision-Date: 2010-09-08 21:50+0000\n"
"Last-Translator: Olivier Dony (OpenERP) <Unknown>\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-07-13 03:47+0000\n"
"X-Launchpad-Export-Date: 2010-09-09 04:43+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
+2 -2
View File
@@ -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-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-02-08 05:18+0000\n"
"PO-Revision-Date: 2010-09-08 22:19+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\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-07-13 03:47+0000\n"
"X-Launchpad-Export-Date: 2010-09-09 04:43+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
+48 -33
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: pt_BR\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-09-02 06:28+0000\n"
"Last-Translator: OpenERP Administrators <Unknown>\n"
"PO-Revision-Date: 2010-09-08 21:39+0000\n"
"Last-Translator: Olivier Dony (OpenERP) <Unknown>\n"
"Language-Team: <pt@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-09-03 03:45+0000\n"
"X-Launchpad-Export-Date: 2010-09-09 04:44+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
@@ -24,7 +24,7 @@ msgstr "Santa Helena"
#. module: base
#: wizard_view:res.partner.sms_send,init:0
msgid "SMS - Gateway: clickatell"
msgstr ""
msgstr "SMS - Gateway: clickatell"
#. module: base
#: view:res.lang:0
@@ -725,12 +725,12 @@ msgstr "STOCK_OK"
#: selection:ir.actions.server,state:0
#: selection:workflow.activity,kind:0
msgid "Dummy"
msgstr ""
msgstr "Imitação"
#. module: base
#: constraint:ir.ui.view:0
msgid "Invalid XML for View Architecture!"
msgstr ""
msgstr "XML inválido para Arquitetura da View"
#. module: base
#: model:res.country,name:base.ky
@@ -923,7 +923,7 @@ msgstr "STOCK_REMOVE"
#. module: base
#: selection:ir.actions.report.xml,report_type:0
msgid "raw"
msgstr ""
msgstr "não processado"
#. module: base
#: help:ir.actions.server,email:0
@@ -1019,6 +1019,8 @@ msgid ""
"You try to install the module '%s' that depends on the module:'%s'.\n"
"But this module is not available in your system."
msgstr ""
"Você está tentando instalar o módulo '%s' que depende do módulo: '%s'.\n"
"Mas este módulo não está disponivel em seu sistema."
#. module: base
#: model:ir.model,name:base.model_res_request_link
@@ -1467,6 +1469,8 @@ msgstr "Madadascar"
msgid ""
"The Object name must start with x_ and not contain any special character !"
msgstr ""
"O nome do Objeto deve começar com x_ e não deve conter nenhum caracter "
"especial!"
#. module: base
#: help:ir.rule.group,global:0
@@ -1486,7 +1490,7 @@ msgstr "Menu"
#. module: base
#: field:res.currency,rate:0
msgid "Current Rate"
msgstr ""
msgstr "Taxa atual"
#. module: base
#: selection:module.lang.install,init,lang:0
@@ -1555,7 +1559,7 @@ msgstr "Zimbábue"
#. module: base
#: model:ir.ui.menu,name:base.menu_translation_export
msgid "Import / Export"
msgstr ""
msgstr "Importar / Exportar"
#. module: base
#: model:ir.actions.act_window,name:base.action_config_user_form
@@ -1763,7 +1767,7 @@ msgstr "%S - Segundos como um numero decimal[00,61]."
#. module: base
#: model:res.country,name:base.am
msgid "Armenia"
msgstr ""
msgstr "Armênia"
#. module: base
#: view:ir.sequence:0
@@ -1778,7 +1782,7 @@ msgstr "Diariamente"
#. module: base
#: model:res.country,name:base.se
msgid "Sweden"
msgstr ""
msgstr "Suécia"
#. module: base
#: selection:ir.actions.act_window.view,view_mode:0
@@ -1811,7 +1815,7 @@ msgstr "Configuração da ação de iteração"
#. module: base
#: model:res.country,name:base.at
msgid "Austria"
msgstr ""
msgstr "Austria"
#. module: base
#: selection:ir.actions.act_window.view,view_mode:0
@@ -1932,7 +1936,7 @@ msgstr "Prefixo"
#. module: base
#: field:ir.actions.server,loop_action:0
msgid "Loop Action"
msgstr ""
msgstr "Ação de repetição"
#. module: base
#: selection:module.lang.install,init,lang:0
@@ -1962,7 +1966,7 @@ msgstr "Iniciar atualização"
#. module: base
#: field:ir.default,ref_id:0
msgid "ID Ref."
msgstr ""
msgstr "Ref. de ID"
#. module: base
#: selection:module.lang.install,init,lang:0
@@ -2061,7 +2065,7 @@ msgstr "Voce tambem pode importar arquivos .po ."
#: code:addons/base/maintenance/maintenance.py:0
#, python-format
msgid "Unable to find a valid contract"
msgstr ""
msgstr "Não foi possível encontrar um contrato válido."
#. module: base
#: code:addons/base/ir/ir_actions.py:0
@@ -2193,7 +2197,7 @@ msgstr "Países"
#. module: base
#: view:ir.rule.group:0
msgid "Record rules"
msgstr ""
msgstr "Registro de Regras"
#. module: base
#: field:res.partner,vat:0
@@ -2303,7 +2307,7 @@ msgstr "Categorias"
#: model:ir.actions.wizard,name:base.res_partner_send_sms_wizard
#: wizard_button:res.partner.sms_send,init,send:0
msgid "Send SMS"
msgstr ""
msgstr "Enviar SMS"
#. module: base
#: selection:ir.module.module,state:0
@@ -2486,6 +2490,8 @@ msgid ""
"Specify the subject. You can use fields from the object, e.g. `Hello [[ "
"object.partner_id.name ]]`"
msgstr ""
"Informe o assunto. Voce pode usar campos de um objeto. Ex.: `Olá [[ "
"object.partner_id.name ]]`"
#. module: base
#: view:res.company:0
@@ -2545,7 +2551,7 @@ msgstr "Atualização de Sistema"
#. module: base
#: field:workflow.activity,in_transitions:0
msgid "Incoming Transitions"
msgstr "Transações de Entrada"
msgstr "Transições de Entrada"
#. module: base
#: model:res.country,name:base.sr
@@ -2577,6 +2583,8 @@ msgid ""
"You try to upgrade a module that depends on the module: %s.\n"
"But this module is not available in your system."
msgstr ""
"Voce tenta atualizar um módulo que depende do módulo: %s. \n"
"Mas este módulo não está disponível em seu sistema."
#. module: base
#: view:res.partner.address:0
@@ -2762,7 +2770,7 @@ msgstr ""
#. module: base
#: view:res.users:0
msgid "Skip"
msgstr ""
msgstr "Saltar"
#. module: base
#: model:ir.actions.act_window,name:base.res_request_link-act
@@ -2855,7 +2863,7 @@ msgstr "Cabeçalho RML"
#. module: base
#: wizard_field:res.partner.sms_send,init,app_id:0
msgid "API ID"
msgstr ""
msgstr "API ID"
#. module: base
#: model:res.country,name:base.mu
@@ -3475,6 +3483,8 @@ msgid ""
"Some installed modules depend on the module you plan to Uninstall :\n"
" %s"
msgstr ""
"Alguns módulos instalados dependem do módulo que voce deseja desinstalar:\n"
" %s"
#. module: base
#: model:ir.actions.act_window,name:base.act_res_partner_event
@@ -3569,7 +3579,7 @@ msgstr "terp-mrp"
#. module: base
#: field:ir.actions.server,trigger_obj_id:0
msgid "Trigger On"
msgstr ""
msgstr "Ligar gatilho"
#. module: base
#: model:res.country,name:base.fj
@@ -3793,7 +3803,7 @@ msgstr "Itens de trabalho"
#. module: base
#: field:wizard.module.lang.export,advice:0
msgid "Advice"
msgstr ""
msgstr "Advertência"
#. module: base
#: selection:module.lang.install,init,lang:0
@@ -3967,7 +3977,7 @@ msgstr "Aplicar atualizações agendadas"
#. module: base
#: model:ir.ui.menu,name:base.maintenance
msgid "Maintenance"
msgstr ""
msgstr "Manutenção"
#. module: base
#: model:res.country,name:base.mp
@@ -4107,7 +4117,7 @@ msgstr "Itens de trabalho do workflow"
#. module: base
#: model:res.country,name:base.vc
msgid "Saint Vincent & Grenadines"
msgstr ""
msgstr "Saint Vincent & Grenadines"
#. module: base
#: field:ir.model.config,password:0
@@ -4226,7 +4236,7 @@ msgstr "Nome do modelo inválido na definição da ação."
#. module: base
#: wizard_field:res.partner.sms_send,init,text:0
msgid "SMS Message"
msgstr ""
msgstr "Mensagem SMS"
#. module: base
#: selection:ir.ui.menu,icon:0
@@ -4338,7 +4348,7 @@ msgstr "E-mail do Remetente"
#. module: base
#: field:ir.default,field_name:0
msgid "Object Field"
msgstr ""
msgstr "Campo de objeto"
#. module: base
#: selection:module.lang.install,init,lang:0
@@ -4592,7 +4602,7 @@ msgstr "iCal id"
#. module: base
#: wizard_view:res.partner.sms_send,init:0
msgid "Bulk SMS send"
msgstr ""
msgstr "Enviar SMS em massa"
#. module: base
#: view:res.lang:0
@@ -4626,6 +4636,8 @@ msgid ""
"Can not create the module file:\n"
" %s"
msgstr ""
"Não posso criar o arquivo de módulo:\n"
" %s"
#. module: base
#: model:ir.actions.wizard,name:base.wizard_update
@@ -4784,7 +4796,7 @@ msgstr "Reunião"
#. module: base
#: field:ir.rule.group,global:0
msgid "Global"
msgstr ""
msgstr "Global"
#. module: base
#: model:res.country,name:base.cz
@@ -4890,7 +4902,7 @@ msgstr "Tipo de visão"
#. module: base
#: model:ir.ui.menu,name:base.next_id_2
msgid "User Interface"
msgstr ""
msgstr "Interface de Usuário"
#. module: base
#: selection:ir.ui.menu,icon:0
@@ -5583,7 +5595,7 @@ msgstr "Versão instalada"
#. module: base
#: model:ir.ui.menu,name:base.menu_workflow_root
msgid "Workflow Definitions"
msgstr ""
msgstr "Definição de workflow"
#. module: base
#: model:res.country,name:base.mr
@@ -5927,6 +5939,9 @@ msgid ""
"' \\n 'for the currency: %s \n"
"' \\n 'at the date: %s"
msgstr ""
"Nenhuma valor encontrado \n"
"'\\n 'para a taxa escolhida: %s \n"
"'\\n 'na data: %s"
#. module: base
#: view:ir.actions.act_window:0
@@ -6491,7 +6506,7 @@ msgstr "Holanda"
#. module: base
#: model:ir.ui.menu,name:base.next_id_4
msgid "Low Level Objects"
msgstr ""
msgstr "Objetos de baixo nível"
#. module: base
#: model:ir.model,name:base.model_ir_report_custom
@@ -7163,7 +7178,7 @@ msgstr "Adicionar ou não um cabeçalho RML corporativo"
#. module: base
#: field:res.partner.event,document:0
msgid "Document"
msgstr ""
msgstr "Documento"
#. module: base
#: selection:ir.ui.menu,icon:0
@@ -7550,7 +7565,7 @@ msgstr "Correspondendo a"
#. module: base
#: field:ir.actions.configuration.wizard,name:0
msgid "Next Wizard"
msgstr ""
msgstr "Próximo assistente"
#. module: base
#: field:ir.attachment,datas_fname:0
+2 -2
View File
@@ -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-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-09-02 06:31+0000\n"
"PO-Revision-Date: 2010-09-08 21:06+0000\n"
"Last-Translator: Anders Wallenquist <anders.wallenquist@vertel.se>\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-09-03 03:45+0000\n"
"X-Launchpad-Export-Date: 2010-09-09 04:43+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
+2 -2
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-02-07 05:12+0000\n"
"PO-Revision-Date: 2010-09-08 21:42+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\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-07-13 03:48+0000\n"
"X-Launchpad-Export-Date: 2010-09-09 04:43+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
+2 -2
View File
@@ -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-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-09-02 06:38+0000\n"
"PO-Revision-Date: 2010-09-08 22:18+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\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-09-03 03:45+0000\n"
"X-Launchpad-Export-Date: 2010-09-09 04:44+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
+3 -3
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
"PO-Revision-Date: 2010-09-01 06:36+0000\n"
"Last-Translator: OpenERP Administrators <Unknown>\n"
"PO-Revision-Date: 2010-09-08 21:31+0000\n"
"Last-Translator: Olivier Dony (OpenERP) <Unknown>\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-09-02 03:51+0000\n"
"X-Launchpad-Export-Date: 2010-09-09 04:44+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: base
+18 -16
View File
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# $Id$
#
@@ -50,7 +50,7 @@ class ir_cron(osv.osv, netsvc.Agent):
'interval_number': fields.integer('Interval Number'),
'interval_type': fields.selection( [('minutes', 'Minutes'),
('hours', 'Hours'), ('work_days','Work Days'), ('days', 'Days'),('weeks', 'Weeks'), ('months', 'Months')], 'Interval Unit'),
'numbercall': fields.integer('Number of Calls', help='Number of time the function is called,\na negative number indicates that the function will always be called'),
'numbercall': fields.integer('Number of Calls', help='Number of time the function is called,\na negative number indicates that the function will always be called'),
'doall' : fields.boolean('Repeat Missed'),
'nextcall' : fields.datetime('Next Call Date', required=True),
'model': fields.char('Object', size=64),
@@ -77,7 +77,7 @@ class ir_cron(osv.osv, netsvc.Agent):
except:
return False
return True
_constraints = [
(_check_args, 'Invalid arguments', ['args']),
]
@@ -98,7 +98,7 @@ class ir_cron(osv.osv, netsvc.Agent):
try:
db, pool = pooler.get_db_and_pool(db_name)
except:
return False
return False
cr = db.cursor()
try:
if not pool._init:
@@ -107,7 +107,7 @@ class ir_cron(osv.osv, netsvc.Agent):
for job in cr.dictfetchall():
nextcall = datetime.strptime(job['nextcall'], '%Y-%m-%d %H:%M:%S')
numbercall = job['numbercall']
ok = False
while nextcall < now and numbercall:
if numbercall > 0:
@@ -125,12 +125,12 @@ class ir_cron(osv.osv, netsvc.Agent):
cr.execute('select min(nextcall) as min_next_call from ir_cron where numbercall<>0 and active and nextcall>=now()')
next_call = cr.dictfetchone()['min_next_call']
next_call = cr.dictfetchone()['min_next_call']
if next_call:
next_call = time.mktime(time.strptime(next_call, '%Y-%m-%d %H:%M:%S'))
else:
next_call = int(time.time()) + 3600 # if do not find active cron job from database, it will run again after 1 day
if not check:
self.setAlarm(self._poolJobs, next_call, db_name, db_name)
@@ -138,29 +138,31 @@ class ir_cron(osv.osv, netsvc.Agent):
logger = netsvc.Logger()
logger.notifyChannel('cron', netsvc.LOG_WARNING,
'Exception in cron:'+str(ex))
finally:
cr.commit()
cr.close()
def restart(self, dbname):
self.cancel(dbname)
self._poolJobs(dbname)
def create(self, cr, uid, vals, context=None):
res = super(ir_cron, self).create(cr, uid, vals, context=context)
res = super(ir_cron, self).create(cr, uid, vals, context=context)
cr.commit()
self.cancel(cr.dbname)
self._poolJobs(cr.dbname)
self.restart(cr.dbname)
return res
def write(self, cr, user, ids, vals, context=None):
res = super(ir_cron, self).write(cr, user, ids, vals, context=context)
cr.commit()
self.cancel(cr.dbname)
self._poolJobs(cr.dbname)
self.restart(cr.dbname)
return res
def unlink(self, cr, uid, ids, context=None):
res = super(ir_cron, self).unlink(cr, uid, ids, context=context)
cr.commit()
self.cancel(cr.dbname)
self._poolJobs(cr.dbname)
self.restart(cr.dbname)
return res
ir_cron()
+19 -5
View File
@@ -132,11 +132,25 @@ class ir_translation(osv.osv):
@tools.cache(skiparg=3)
def _get_source(self, cr, uid, name, tt, lang, source=None):
"""
Returns the translation for the given combination of name, type, language
and source. All values passed to this method should be unicode (not byte strings),
especially ``source``.
:param name: identification of the term to translate, such as field name
:param type: type of term to translate (see ``type`` field on ir.translation)
:param lang: language code of the desired translation
:param source: optional source term to translate (should be unicode)
:rtype: unicode
:return: the request translation, or an empty unicode string if no translation was
found and `source` was not passed
"""
# FIXME: should assert that `source` is unicode and fix all callers to always pass unicode
# so we can remove the string encoding/decoding.
if not lang:
return ''
return u''
if source:
#if isinstance(source, unicode):
# source = source.encode('utf8')
cr.execute('select value ' \
'from ir_translation ' \
'where lang=%s ' \
@@ -152,9 +166,9 @@ class ir_translation(osv.osv):
'and name=%s',
(lang or '', tt, tools.ustr(name)))
res = cr.fetchone()
trad = res and res[0] or ''
trad = res and res[0] or u''
if source and not trad:
return source
return tools.ustr(source)
return trad
def create(self, cursor, user, vals, context=None):
@@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@@ -27,7 +27,7 @@ from osv import fields,osv
from tools.translate import _
from tools.misc import get_iso_codes
class base_export_language(osv.osv_memory):
class base_language_export(osv.osv_memory):
def _get_languages(self, cr, uid, context):
lang_obj=pooler.get_pool(cr.dbname).get('res.lang')
@@ -67,7 +67,7 @@ class base_export_language(osv.osv_memory):
buf.close()
return self.write(cr, uid, ids, {'state':'get', 'data':out, 'advice':this.advice, 'name':this.name}, context=context)
_name = "base.export.language"
_name = "base.language.export"
_columns = {
'name': fields.char('Filename', 16, readonly=True),
'lang': fields.selection(_get_languages, 'Language', help='To export a new language, do not select a language.'), # not required: unset = new language
@@ -82,7 +82,7 @@ class base_export_language(osv.osv_memory):
_defaults = { 'state': lambda *a: 'choose',
'name': lambda *a: 'lang.tar.gz'
}
base_export_language()
base_language_export()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -4,25 +4,33 @@
<record id="wizard_lang_export" model="ir.ui.view">
<field name="name">Export a Translation File</field>
<field name="model">base.export.language</field>
<field name="model">base.language.export</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form col="3" string="Export language">
<form string="Export language">
<notebook>
<page string="Export Data">
<group col="2" colspan="4" fill="0" states="choose">
<separator colspan="2" string="Export translation file"/>
<group colspan="4" states="choose">
<separator colspan="4" string="Export translation file"/>
<field name="lang" required="1"/>
<field name="format" required="1"/>
<field height="200" name="modules" nolabel="1" colspan="4"/>
<field invisible="1" name="state"/>
</group>
<group col="1" fill="0" states="get">
<separator string="Export done"/>
<field name="name" invisible="1"/>
<field name="data" nolabel="1" readonly="1" fieldname="name"/>
<field height="80" name="advice" nolabel="1"/>
<group colspan="4" states="get">
<separator string="Export done" colspan="4"/>
<field name="name" invisible="1" colspan="4"/>
<field name="data" nolabel="1" readonly="1" fieldname="name" colspan="4"/>
<field height="80" name="advice" nolabel="1" colspan="4"/>
</group>
<separator string="" colspan="4"/>
<group col="2" colspan="2">
</group>
<group col="2" colspan="2">
<button icon="gtk-cancel" name="act_cancel" special="cancel" states="choose" string="_Close" type="object"/>
<button icon="gtk-ok" name="act_getfile" states="choose" string="_Export" type="object"></button>
<button icon="gtk-close" name="act_destroy" special="cancel" states="get" string="_Close" type="object"/>
</group>
</page>
<page string="Help">
<label align="0.0" colspan="4" string="The official translations pack of all OpenERP/OpenObjects module are managed through launchpad. We use their online interface to synchronize all translations efforts."/>
@@ -31,12 +39,6 @@
<label align="0.0" colspan="4" string="https://translations.launchpad.net/openobject"/>
</page>
</notebook>
<group col="2" colspan="3" fill="0">
<button icon="gtk-cancel" name="act_cancel" special="cancel" states="choose" string="Close" type="object"/>
<button icon="gtk-ok" name="act_getfile" states="choose" string="Get file" type="object"></button>
<button icon="gtk-close" name="act_destroy" special="cancel" states="get" string="Close" type="object"/>
</group>
</form>
</field>
</record>
@@ -44,7 +46,7 @@
<record id="action_wizard_lang_export" model="ir.actions.act_window">
<field name="name">Export a Translation File</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">base.export.language</field>
<field name="res_model">base.language.export</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
@@ -10,27 +10,30 @@
<form string="Import language">
<notebook colspan="4">
<page string="Import Data">
<group colspan="2" col="4">
<separator string="Import New Language" colspan="4"/>
<group colspan="4" col="4">
<separator string="Import New Language" colspan="4"/>
<field name="name" width="200"/>
<field name="code"/>
<field name="data" colspan="4"/>
</group>
<separator string="" colspan="4"/>
<group colspan="2" col="2">
</group>
<group colspan="2" col="2">
<button special="cancel" string="_Close" icon="gtk-cancel"/>
<button name="import_lang" string="_Import" type="object" icon="gtk-ok"/>
</group>
</page>
<page string="Help">
<label string="You have to import a .CSV file which is encoded in UTF-8.\n
Please check that the first line of your file is one of the following:" colspan="4" align="0.0"/>
<label string="You have to import a .CSV file which is encoded in UTF-8."/>
<label string="Please check that the first line of your file is one of the following:" colspan="4" align="0.0"/>
<label string="type,name,res_id,src,value" colspan="4"/>
<label string="module,type,name,res_id,src,value" colspan="4"/>
<label string="You can also import .po files." colspan="4" align="0.0"/>
</page>
</notebook>
<newline/>
<group colspan="6" >
<button special="cancel" string="Close" icon="gtk-cancel"/>
<button name="import_lang" string="OK" type="object" icon="gtk-ok"/>
</group>
</form>
</notebook>
</form>
</field>
</record>
@@ -50,4 +53,4 @@
parent="menu_translation_export"/>
</data>
</openerp>
</openerp>
+4 -4
View File
@@ -14,8 +14,8 @@
<xsl:template name="stylesheet">
<paraStyle name="title" fontName="Helvetica-Bold" fontSize="22" alignment="center"/>
<paraStyle name="test" alignment="left" leftIndent="10.0"/>
<paraStyle name="float_right" alignment="right"/>
<paraStyle name="test" alignment="left" />
<paraStyle name="float_right" alignment="left"/>
<paraStyle name="tbl_heading" alignment="left"/>
<blockTableStyle id="products">
<!--<blockBackground colorName="grey" start="0,0" stop="-1,0"/> -->
@@ -114,7 +114,7 @@
</para>
</xsl:when>
<xsl:when test="@tree='float'">
<para style="float_right"><font fontName="Helvetica-bold" fontSize="9" color="blue">
<para style="float_right"><font fontName="Helvetica-bold" fontSize="9" color="black">
<xsl:value-of select="."/>
</font></para>
</xsl:when>
@@ -131,7 +131,7 @@
<xsl:otherwise>
<para>
<font fontName="Helvetica-bold" fontSize="9" color="blue">
<font fontName="Helvetica-bold" fontSize="9" color="black">
<xsl:value-of select="."/>
</font>
</para>
+5 -2
View File
@@ -305,7 +305,10 @@ class res_partner_address(osv.osv):
if r['name'] and (r['city'] or r['country_id']):
addr += ', '
addr += (r['country_id'] and r['country_id'][1] or '') + ' ' + (r['city'] or '') + ' ' + (r['street'] or '')
res.append((r['id'], addr.strip() or '/'))
if context.get('contact_display', 'contact')=='partner_address':
res.append((r['id'], r['partner_id'][1] +','+ addr.strip() or '/'))
else:
res.append((r['id'], addr.strip() or '/'))
return res
def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=100):
@@ -313,7 +316,7 @@ class res_partner_address(osv.osv):
args=[]
if not context:
context={}
if context.get('contact_display', 'contact')=='partner':
if context.get('contact_display', 'contact')=='partner ' or context.get('contact_display', 'contact')=='partner_address ' :
ids = self.search(cr, user, [('partner_id',operator,name)], limit=limit, context=context)
else:
if not name:
+2 -2
View File
@@ -330,7 +330,7 @@ class res_config_installer(osv.osv_memory):
def _already_installed(self, cr, uid, context=None):
""" For each module (boolean fields in a res.config.installer),
check if it's already installed (neither uninstallable nor uninstalled)
check if it's already installed (either 'to install', 'to upgrade' or 'installed')
and if it is, check it by default
"""
modules = self.pool.get('ir.module.module')
@@ -341,7 +341,7 @@ class res_config_installer(osv.osv_memory):
cr, uid,
modules.search(cr, uid,
[('name','in',selectable),
('state','not in',['uninstallable', 'uninstalled'])],
('state','in',['to install', 'installed', 'to upgrade'])],
context=context),
context=context)
+17 -12
View File
@@ -27,26 +27,29 @@ from tools.misc import currency
from tools.translate import _
class res_currency(osv.osv):
def _current_rate(self, cr, uid, ids, name, arg, context={}):
res={}
def _current_rate(self, cr, uid, ids, name, arg, context=None):
if context is None:
context = {}
res = {}
if 'date' in context:
date=context['date']
date = context['date']
else:
date=time.strftime('%Y-%m-%d')
date= date or time.strftime('%Y-%m-%d')
date = time.strftime('%Y-%m-%d')
date = date or time.strftime('%Y-%m-%d')
for id in ids:
cr.execute("SELECT currency_id, rate FROM res_currency_rate WHERE currency_id = %s AND name <= %s ORDER BY name desc LIMIT 1" ,(id, date))
if cr.rowcount:
id, rate=cr.fetchall()[0]
res[id]=rate
id, rate = cr.fetchall()[0]
res[id] = rate
else:
res[id]=0
res[id] = 0
return res
_name = "res.currency"
_description = "Currency"
_columns = {
'name': fields.char('Currency', size=32, required=True),
'code': fields.char('Code', size=3),
'symbol': fields.char('Symbol', size=3),
'rate': fields.function(_current_rate, method=True, string='Current Rate', digits=(12,6),
help='The rate of the currency to the currency of rate 1'),
'rate_ids': fields.one2many('res.currency.rate', 'currency_id', 'Rates'),
@@ -70,9 +73,9 @@ class res_currency(osv.osv):
if r.__contains__('rate_ids'):
rates=r['rate_ids']
if rates:
currency_rate_obj=self.pool.get('res.currency.rate')
currency_date=currency_rate_obj.read(cr,user,rates[0],['name'])['name']
r['date']=currency_date
currency_rate_obj= self.pool.get('res.currency.rate')
currency_date = currency_rate_obj.read(cr,user,rates[0],['name'])['name']
r['date'] = currency_date
return res
def round(self, cr, uid, currency, amount):
@@ -86,7 +89,9 @@ class res_currency(osv.osv):
def is_zero(self, cr, uid, currency, amount):
return abs(self.round(cr, uid, currency, amount)) < currency.rounding
def compute(self, cr, uid, from_currency_id, to_currency_id, from_amount, round=True, context={}, account=None, account_invert=False):
def compute(self, cr, uid, from_currency_id, to_currency_id, from_amount, round=True, context=None, account=None, account_invert=False):
if context is None:
context = {}
if not from_currency_id:
from_currency_id = to_currency_id
if not to_currency_id:
+6 -5
View File
@@ -26,13 +26,14 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Currency">
<group col="6" colspan="4">
<field name="name" select="1" colspan="4"/>
<group col="6" colspan="6">
<field name="name" select="1"/>
<field name="code" select="1"/>
<field name="company_id" select="2" />
<field name="rate"/>
<field name="company_id" select="2" groups="base.group_multi_company" />
<field name="symbol"/>
</group>
<group col="2" colspan="2">
<separator string="Price Accuracy" colspan="2"/>
<field name="rounding"/>
@@ -44,7 +45,7 @@
<field name="base"/>
<field name="active" select="1"/>
</group>
<field colspan="4" mode="tree,form" name="rate_ids" nolabel="1" attrs="{'readonly':[('base','=',True)]}">
<form string="Rates">
<field name="name"/>
+11 -7
View File
@@ -165,21 +165,24 @@ LEVEL_COLOR_MAPPING = {
logging.CRITICAL: (WHITE, RED),
}
class ColoredFormatter(logging.Formatter):
class DBFormatter(logging.Formatter):
def format(self, record):
record.dbname = getattr(threading.currentThread(), 'dbname', '?')
return logging.Formatter.format(self, record)
class ColoredFormatter(DBFormatter):
def format(self, record):
fg_color, bg_color = LEVEL_COLOR_MAPPING[record.levelno]
record.levelname = COLOR_PATTERN % (30 + fg_color, 40 + bg_color, record.levelname)
return logging.Formatter.format(self, record)
return DBFormatter.format(self, record)
def init_logger():
import os
from tools.translate import resetlocale
resetlocale()
logger = logging.getLogger()
# create a format for log messages and dates
format = '[%(asctime)s] %(levelname)s:%(name)s:%(message)s'
format = '[%(asctime)s][%(dbname)s] %(levelname)s:%(name)s:%(message)s'
if tools.config['syslog']:
# SysLog Handler
@@ -188,7 +191,7 @@ def init_logger():
else:
handler = logging.handlers.SysLogHandler('/dev/log')
format = '%s %s' % (release.description, release.version) \
+ ':%(levelname)s:%(name)s:%(message)s'
+ ':%(dbname)s:%(levelname)s:%(name)s:%(message)s'
elif tools.config['logfile']:
# LogFile Handler
@@ -213,10 +216,11 @@ def init_logger():
if isinstance(handler, logging.StreamHandler) and os.isatty(handler.stream.fileno()):
formatter = ColoredFormatter(format)
else:
formatter = logging.Formatter(format)
formatter = DBFormatter(format)
handler.setFormatter(formatter)
# add the handler to the root logger
logger = logging.getLogger()
logger.addHandler(handler)
logger.setLevel(int(tools.config['log_level'] or '0'))
+368 -276
View File
File diff suppressed because it is too large Load Diff
+5 -6
View File
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
#
@@ -15,7 +15,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 <http://www.gnu.org/licenses/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
@@ -34,10 +34,10 @@ def get_db_and_pool(db_name, force_demo=False, status=None, update_module=False,
import osv.osv
pool = osv.osv.osv_pool()
pool_dic[db_name] = pool
try:
addons.load_modules(db, force_demo, status, update_module)
except Exception, e:
except Exception:
del pool_dic[db_name]
raise
@@ -51,13 +51,12 @@ def get_db_and_pool(db_name, force_demo=False, status=None, update_module=False,
import report
report.interface.register_all(db)
if pooljobs:
pool.get('ir.cron')._poolJobs(db.dbname)
pool.get('ir.cron').restart(db.dbname)
return db, pool
def restart_pool(db_name, force_demo=False, status=None, update_module=False):
if db_name in pool_dic:
pool_dic[db_name].get('ir.cron').cancel(db_name)
del pool_dic[db_name]
return get_db_and_pool(db_name, force_demo, status, update_module=update_module)
+6 -12
View File
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
#
@@ -15,7 +15,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 <http://www.gnu.org/licenses/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
@@ -54,17 +54,11 @@ class report_printscreen_list(report_int):
if not context:
context={}
datas['ids'] = ids
pool = pooler.get_pool(cr.dbname)
model_id = pool.get('ir.model').search(cr, uid, [('model','=',model._name)])
if model_id:
model_desc = pool.get('ir.model').browse(cr, uid, model_id, context).name
self.title = model_desc
else:
model_desc = model._description
self.title = model_desc
model = pool.get(datas['model'])
result = model.fields_view_get(cr, uid, view_type='tree', context=context)
pool = pooler.get_pool(cr.dbname)
# title come from description of model which are specified in py file.
self.title = model._description
result = model.fields_view_get(cr, uid, view_type='form', context=context)
fields_order = self._parse_string(result['arch'])
rows = model.read(cr, uid, datas['ids'], result['fields'].keys() )
+3 -7
View File
@@ -65,13 +65,9 @@ class report_printscreen_list(report_int):
self.groupby_no_leaf = context.get('group_by_no_leaf',False)
pool = pooler.get_pool(cr.dbname)
model = pool.get(datas['model'])
model_id = pool.get('ir.model').search(cr, uid, [('model','=',model._name)])
if model_id:
model_desc = pool.get('ir.model').browse(cr, uid, model_id[0], context).name
self.title = model_desc
else:
model_desc = model._description
self.title = model_desc
# Title come from description of model which are specified in py file.
model_desc = model._description
self.title = model_desc
datas['ids'] = ids
model = pooler.get_pool(cr.dbname).get(datas['model'])
result = model.fields_view_get(cr, uid, view_type='tree', context=context)
+3 -12
View File
@@ -110,7 +110,7 @@ class _date_format(str, _format):
if self.val:
if getattr(self,'name', None):
date = datetime.strptime(self.name, DT_FORMAT)
return date.strftime(str(self.lang_obj.date_format))
return date.strftime(str(self.lang_obj.date_format))
return self.val
class _dttime_format(str, _format):
@@ -253,20 +253,11 @@ class rml_parse(object):
date_format = self.lang_dict['date_format']
parse_format = DT_FORMAT
if date_time:
value=value.split('.')[0]
date_format = date_format + " " + self.lang_dict['time_format']
parse_format = DHM_FORMAT
# filtering time.strftime('%Y-%m-%d')
# if type(value) == type(''):
# parse_format = DHM_FORMAT
# if (not date_time):
# return str(value)
if not isinstance(value, time.struct_time):
try:
date = datetime.datetime(str(value), parse_format)
except:# sometimes it takes converted values into value, so we dont need conversion.
return str(value)
return time.strftime(date_format, time.strptime(value, parse_format))
else:
date = datetime(*value.timetuple()[:6])
return date.strftime(date_format)
-3
View File
@@ -20,7 +20,6 @@
##############################################################################
import base64
import logging
import os
import security
import thread
@@ -39,8 +38,6 @@ import tools
import locale
from cStringIO import StringIO
logging.basicConfig()
class db(netsvc.ExportService):
def __init__(self, name="db"):
netsvc.ExportService.__init__(self, name)
+14 -7
View File
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
##############################################################################
#
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
#
@@ -15,12 +15,13 @@
# 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 <http://www.gnu.org/licenses/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
__all__ = ['db_connect', 'close_db']
from threading import currentThread
import logging
from psycopg2.extensions import ISOLATION_LEVEL_AUTOCOMMIT, ISOLATION_LEVEL_READ_COMMITTED, ISOLATION_LEVEL_SERIALIZABLE
from psycopg2.psycopg1 import cursor as psycopg1cursor
@@ -107,7 +108,7 @@ class Cursor(object):
self._close(True)
@check
def execute(self, query, params=None):
def execute(self, query, params=None, log_exceptions=True):
if '%d' in query or '%f' in query:
self.__logger.warn(query)
self.__logger.warn("SQL queries cannot contain %d or %f anymore. "
@@ -122,10 +123,12 @@ class Cursor(object):
params = params or None
res = self._obj.execute(query, params)
except psycopg2.ProgrammingError, pe:
self.__logger.error("Programming error: %s, in query %s", pe, query)
if log_exceptions or self.sql_log:
self.__logger.error("Programming error: %s, in query %s", pe, query)
raise
except Exception:
self.__logger.exception("bad query: %s", self._obj.query)
if log_exceptions or self.sql_log:
self.__logger.exception("bad query: %s", self._obj.query or query)
raise
if self.sql_log:
@@ -267,7 +270,7 @@ class ConnectionPool(object):
delattr(cnx, 'leaked')
self._connections.pop(i)
self._connections.append((cnx, False))
self._debug('Free leaked connection to %r', cnx.dsn)
self.__logger.warn('%r: Free leaked connection to %r', self, cnx.dsn)
for i, (cnx, used) in enumerate(self._connections):
if not used and dsn_are_equals(cnx.dsn, dsn):
@@ -310,7 +313,7 @@ class ConnectionPool(object):
@locked
def close_all(self, dsn):
self._debug('Close all connections to %r', dsn)
self.__logger.info('%r: Close all connections to %r', self, dsn)
for i, (cnx, used) in tools.reverse_enumerate(self._connections):
if dsn_are_equals(cnx.dsn, dsn):
cnx.close()
@@ -362,11 +365,15 @@ def dsn_are_equals(first, second):
_Pool = ConnectionPool(int(tools.config['db_maxconn']))
def db_connect(db_name):
currentThread().dbname = db_name
return Connection(_Pool, db_name)
def close_db(db_name):
_Pool.close_all(dsn(db_name))
tools.cache.clean_caches_for_db(db_name)
ct = currentThread()
if hasattr(ct, 'dbname'):
delattr(ct, 'dbname')
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+1
View File
@@ -29,6 +29,7 @@ from graph import graph
from amount_to_text import *
from amount_to_text_en import *
from pdf_utils import *
from yaml_import import *
from sql import *
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+21 -19
View File
@@ -68,7 +68,7 @@ class configmanager(object):
'import_partial': "",
'pidfile': None,
'logfile': None,
'logrotate': '1',
'logrotate': True,
'smtp_server': 'localhost',
'smtp_user': False,
'smtp_port':25,
@@ -88,6 +88,8 @@ class configmanager(object):
'static_http_enable': False,
'static_http_document_root': None,
'static_http_url_prefix': None,
'secure_cert_file': 'server.cert',
'secure_pkey_file': 'server.pkey',
}
self.misc = {}
@@ -119,8 +121,8 @@ class configmanager(object):
group.add_option("--xmlrpcs-interface", dest="xmlrpcs_interface", help="specify the TCP IP address for the XML-RPC Secure protocol")
group.add_option("--xmlrpcs-port", dest="xmlrpcs_port", help="specify the TCP port for the XML-RPC Secure protocol", type="int")
group.add_option("--no-xmlrpcs", dest="xmlrpcs", action="store_false", help="disable the XML-RPC Secure protocol")
group.add_option("--cert-file", dest="secure_cert_file", default="server.cert", help="specify the certificate file for the SSL connection")
group.add_option("--pkey-file", dest="secure_pkey_file", default="server.pkey", help="specify the private key file for the SSL connection")
group.add_option("--cert-file", dest="secure_cert_file", help="specify the certificate file for the SSL connection")
group.add_option("--pkey-file", dest="secure_pkey_file", help="specify the private key file for the SSL connection")
parser.add_option_group(group)
# NET-RPC
@@ -129,21 +131,21 @@ class configmanager(object):
group.add_option("--netrpc-port", dest="netrpc_port", help="specify the TCP port for the NETRPC protocol", type="int")
group.add_option("--no-netrpc", dest="netrpc", action="store_false", help="disable the NETRPC protocol")
parser.add_option_group(group)
# Static HTTP
group = optparse.OptionGroup(parser, "Static HTTP service")
group.add_option("--static-http-enable", dest="static_http_enable", action="store_true", default=False, help="enable static HTTP service for serving plain HTML files")
group.add_option("--static-http-document-root", dest="static_http_document_root", help="specify the directory containing your static HTML files (e.g '/var/www/')")
group.add_option("--static-http-url-prefix", dest="static_http_url_prefix", help="specify the URL root prefix where you want web browsers to access your static HTML files (e.g '/')")
parser.add_option_group(group)
parser.add_option("-i", "--init", dest="init", help="init a module (use \"all\" for all modules)")
parser.add_option("--without-demo", dest="without_demo",
help="load demo data for a module (use \"all\" for all modules)", default=False)
parser.add_option("-u", "--update", dest="update",
help="update a module (use \"all\" for all modules)")
parser.add_option("--cache-timeout", dest="cache_timeout",
help="set the timeout for the cache system", default=100000, type="int")
help="set the timeout for the cache system", type="int")
parser.add_option("-t", "--timezone", dest="timezone", help="specify reference timezone for the server (e.g. Europe/Brussels")
# stops the server from launching after initialization
@@ -166,7 +168,7 @@ class configmanager(object):
group = optparse.OptionGroup(parser, "Logging Configuration")
group.add_option("--logfile", dest="logfile", help="file where the server log will be stored")
group.add_option("--no-logrotate", dest="logrotate", action="store_false",
default=None, help="do not rotate the logfile")
help="do not rotate the logfile")
group.add_option("--syslog", action="store_true", dest="syslog",
default=False, help="Send the log to the syslog server")
group.add_option('--log-level', dest='log_level', type='choice', choices=self._LOGLEVELS.keys(),
@@ -175,12 +177,12 @@ class configmanager(object):
# SMTP Group
group = optparse.OptionGroup(parser, "SMTP Configuration")
group.add_option('--email-from', dest='email_from', default='', help='specify the SMTP email address for sending email')
group.add_option('--smtp', dest='smtp_server', default='', help='specify the SMTP server for sending email')
group.add_option('--smtp-port', dest='smtp_port', default='25', help='specify the SMTP port', type="int")
group.add_option('--smtp-ssl', dest='smtp_ssl', default='', help='specify the SMTP server support SSL or not')
group.add_option('--smtp-user', dest='smtp_user', default='', help='specify the SMTP username for sending email')
group.add_option('--smtp-password', dest='smtp_password', default='', help='specify the SMTP password for sending email')
group.add_option('--email-from', dest='email_from', help='specify the SMTP email address for sending email')
group.add_option('--smtp', dest='smtp_server', help='specify the SMTP server for sending email')
group.add_option('--smtp-port', dest='smtp_port', help='specify the SMTP port', type="int")
group.add_option('--smtp-ssl', dest='smtp_ssl', action='store_true', help='specify the SMTP server support SSL or not')
group.add_option('--smtp-user', dest='smtp_user', help='specify the SMTP username for sending email')
group.add_option('--smtp-password', dest='smtp_password', help='specify the SMTP password for sending email')
parser.add_option_group(group)
group = optparse.OptionGroup(parser, "Database related options")
@@ -190,7 +192,7 @@ class configmanager(object):
group.add_option("--pg_path", dest="pg_path", help="specify the pg executable path")
group.add_option("--db_host", dest="db_host", help="specify the database host")
group.add_option("--db_port", dest="db_port", help="specify the database port", type="int")
group.add_option("--db_maxconn", dest="db_maxconn", default='64',
group.add_option("--db_maxconn", dest="db_maxconn", type='int',
help="specify the the maximum number of physical connections to posgresql")
group.add_option("-P", "--import-partial", dest="import_partial",
help="Use this for big data importation, if it crashes you will be able to continue at the current state. Provide a filename to store intermediate importation states.", default=False)
@@ -216,7 +218,7 @@ class configmanager(object):
parser.add_option_group(group)
security = optparse.OptionGroup(parser, 'Security-related options')
security.add_option('--no-database-list', action="store_false", dest='list_db', default=True, help="disable the ability to return the list of databases")
security.add_option('--no-database-list', action="store_false", dest='list_db', help="disable the ability to return the list of databases")
security.add_option('--enable-code-actions', action='store_true',
dest='server_actions_allow_code', default=False,
help='Enables server actions of state "code". Warning, this is a security risk.')
@@ -267,8 +269,8 @@ class configmanager(object):
self.options['pidfile'] = False
keys = ['xmlrpc_interface', 'xmlrpc_port', 'db_name', 'db_user', 'db_password', 'db_host',
'db_port', 'list_db', 'logfile', 'pidfile', 'smtp_port', 'cache_timeout','smtp_ssl',
'email_from', 'smtp_server', 'smtp_user', 'smtp_password',
'db_port', 'logfile', 'pidfile', 'smtp_port', 'cache_timeout',
'email_from', 'smtp_server', 'smtp_user', 'smtp_password',
'netrpc_interface', 'netrpc_port', 'db_maxconn', 'import_partial', 'addons_path',
'netrpc', 'xmlrpc', 'syslog', 'without_demo', 'timezone',
'xmlrpcs_interface', 'xmlrpcs_port', 'xmlrpcs',
@@ -280,9 +282,9 @@ class configmanager(object):
if getattr(opt, arg):
self.options[arg] = getattr(opt, arg)
keys = ['language', 'translate_out', 'translate_in', 'debug_mode',
keys = ['language', 'translate_out', 'translate_in', 'debug_mode', 'smtp_ssl',
'stop_after_init', 'logrotate', 'without_demo', 'netrpc', 'xmlrpc', 'syslog',
'list_db', 'server_actions_allow_code', 'xmlrpcs',
'list_db', 'server_actions_allow_code', 'xmlrpcs',
'test_file', 'test_disable', 'test_commit'
]
+3
View File
@@ -262,6 +262,9 @@ def safe_eval(expr, globals_dict=None, locals_dict=None, mode="eval", nocopy=Fal
'map': map,
'abs': abs,
'reduce': reduce,
'filter': filter,
'round': round,
'len': len
}
)
return eval(test_expr(expr,_SAFE_OPCODES, mode=mode), globals_dict, locals_dict)