diff --git a/debian/control b/debian/control index ce0d3df55e1..f5d425c5586 100644 --- a/debian/control +++ b/debian/control @@ -16,6 +16,7 @@ Depends: python, postgresql-client, python-dateutil, + python-docutils, python-feedparser, python-gdata, python-ldap, diff --git a/openerp-server b/openerp-server index be0710cbce9..5d717c834de 100755 --- a/openerp-server +++ b/openerp-server @@ -30,7 +30,6 @@ GNU Public Licence. (c) 2003-TODAY, Fabien Pinckaers - OpenERP SA """ -import imp import logging import os import signal @@ -203,7 +202,7 @@ def quit_on_signals(): try: while quit_signals_received == 0: time.sleep(60) - except KeyboardInterrupt, e: + except KeyboardInterrupt: pass if config['pidfile']: diff --git a/openerp/addons/base/__openerp__.py b/openerp/addons/base/__openerp__.py index 02ba93166f6..937c9cbd20b 100644 --- a/openerp/addons/base/__openerp__.py +++ b/openerp/addons/base/__openerp__.py @@ -35,6 +35,8 @@ The kernel of OpenERP, needed for all installation. 'depends': [], 'data': [ 'base_data.xml', + 'currency_data.xml', + 'country_data.xml', 'security/base_security.xml', 'base_menu.xml', 'res/res_security.xml', diff --git a/openerp/addons/base/base_data.xml b/openerp/addons/base/base_data.xml index 8e99fe9bc47..2fa9910758d 100644 --- a/openerp/addons/base/base_data.xml +++ b/openerp/addons/base/base_data.xml @@ -29,1034 +29,8 @@ - - - United Arab Emirates - ae - - - Afghanistan, Islamic State of - af - - - Antigua and Barbuda - ag - - - Anguilla - ai - - - Albania - al - - - Armenia - am - - - Netherlands Antilles - an - - - Angola - ao - - - Antarctica - aq - - - Argentina - ar - - - American Samoa - as - - - Austria - at - - - Australia - au - - - - Aruba - aw - - - Åland Islands - ax - - - Azerbaijan - az - - - Bosnia-Herzegovina - ba - - - Barbados - bb - - - Bangladesh - bd - - - Belgium - be - - - - Burkina Faso - bf - - - Bulgaria - bg - - - Bahrain - bh - - - Burundi - bi - - - Benin - bj - - - Saint Barthélémy - bl - - - Bermuda - bm - - - Brunei Darussalam - bn - - - Bolivia - bo - - - Bonaire, Sint Eustatius and Saba - bq - - - Brazil - br - - - - Bahamas - bs - - - Bhutan - bt - - - Bouvet Island - bv - - - Botswana - bw - - - Belarus - by - - - Belize - bz - - - Canada - ca - - - - Cocos (Keeling) Islands - cc - - - Central African Republic - cf - - - Congo, Democratic Republic of the - cd - - - Congo - cg - - - Switzerland - ch - - - Ivory Coast (Cote D'Ivoire) - ci - - - Cook Islands - ck - - - Chile - cl - - - Cameroon - cm - - - China - cn - - - Colombia - co - - - Costa Rica - cr - - - Cuba - cu - - - Cape Verde - cv - - - Curaçao - cw - - - Christmas Island - cx - - - Cyprus - cy - - - Czech Republic - cz - - - Germany - de - - - - Djibouti - dj - - - Denmark - dk - - - Dominica - dm - - - Dominican Republic - do - - - Algeria - dz - - - Ecuador - ec - - - Estonia - ee - - - Egypt - eg - - - Western Sahara - eh - - - Eritrea - er - - - Spain - es - - - - Ethiopia - et - - - Finland - fi - - - Fiji - fj - - - Falkland Islands - fk - - - Micronesia - fm - - - Faroe Islands - fo - - - France - fr - - - - Gabon - ga - - - Grenada - gd - - - Georgia - ge - - - French Guyana - gf - - - Ghana - gh - - - Gibraltar - gi - - - Guernsey - gg - - - Greenland - gl - - - Gambia - gm - - - Guinea - gn - - - Guadeloupe (French) - gp - - - Equatorial Guinea - gq - - - Greece - gr - - - South Georgia and the South Sandwich Islands - gs - - - Guatemala - gt - - - Guam (USA) - gu - - - Guinea Bissau - gw - - - Guyana - gy - - - Hong Kong - hk - - - Heard and McDonald Islands - hm - - - Honduras - hn - - - Croatia - hr - - - Haiti - ht - - - Hungary - hu - - - Indonesia - id - - - Ireland - ie - - - Israel - il - - - Isle of Man - im - - - India - in - - - - British Indian Ocean Territory - io - - - Iraq - iq - - - Iran - ir - - - Iceland - is - - - Italy - it - - - Jersey - je - - - Jamaica - jm - - - Jordan - jo - - - Japan - jp - - - Kenya - ke - - - Kyrgyz Republic (Kyrgyzstan) - kg - - - Cambodia, Kingdom of - kh - - - Kiribati - ki - - - Comoros - km - - - Saint Kitts & Nevis Anguilla - kn - - - North Korea - kp - - - South Korea - kr - - - Kuwait - kw - - - Cayman Islands - ky - - - Kazakhstan - kz - - - Laos - la - - - Lebanon - lb - - - Saint Lucia - lc - - - Liechtenstein - li - - - Sri Lanka - lk - - - Liberia - lr - - - Lesotho - ls - - - Lithuania - lt - - - Luxembourg - lu - - - Latvia - lv - - - Libya - ly - - - Morocco - ma - - - Monaco - mc - - - Moldavia - md - - - Montenegro - me - - - Saint Martin (French part) - mf - - - Madagascar - mg - - - Marshall Islands - mh - - - Macedonia, the former Yugoslav Republic of - mk - - - Mali - ml - - - Myanmar - mm - - - Mongolia - mn - - - Macau - mo - - - Northern Mariana Islands - mp - - - Martinique (French) - mq - - - Mauritania - mr - - - Montserrat - ms - - - Malta - mt - - - Mauritius - mu - - - Maldives - mv - - - Malawi - mw - - - Mexico - mx - - - Malaysia - my - - - Mozambique - mz - - - Namibia - na - - - New Caledonia (French) - nc - - - Niger - ne - - - Norfolk Island - nf - - - Nigeria - ng - - - Nicaragua - ni - - - Netherlands - nl - - - - Norway - no - - - Nepal - np - - - Nauru - nr - - - Neutral Zone - nt - - - Niue - nu - - - New Zealand - nz - - - Oman - om - - - Panama - pa - - - Peru - pe - - - Polynesia (French) - pf - - - Papua New Guinea - pg - - - Philippines - ph - - - Pakistan - pk - - - Poland - pl - - - Saint Pierre and Miquelon - pm - - - Pitcairn Island - pn - - - Puerto Rico - pr - - - Palestinian Territory, Occupied - ps - - - Portugal - pt - - - Palau - pw - - - Paraguay - py - - - Qatar - qa - - - Reunion (French) - re - - - Romania - ro - - - Serbia - rs - - - Russian Federation - ru - - - Rwanda - rw - - - Saudi Arabia - sa - - - Solomon Islands - sb - - - Seychelles - sc - - - Sudan - sd - - - Sweden - se - - - Singapore - sg - - - Saint Helena - sh - - - Slovenia - si - - - Svalbard and Jan Mayen Islands - sj - - - Slovakia - sk - - - Sierra Leone - sl - - - San Marino - sm - - - Senegal - sn - - - Somalia - so - - - Suriname - sr - - - South Sudan - ss - - - Saint Tome (Sao Tome) and Principe - st - - - El Salvador - sv - - - Sint Maarten (Dutch part) - sx - - - Syria - sy - - - Swaziland - sz - - - Turks and Caicos Islands - tc - - - Chad - td - - - French Southern Territories - tf - - - Togo - tg - - - Thailand - th - - - Tajikistan - tj - - - Tokelau - tk - - - Turkmenistan - tm - - - Tunisia - tn - - - Tonga - to - - - East Timor - tp - - - Turkey - tr - - - Trinidad and Tobago - tt - - - Tuvalu - tv - - - Taiwan - tw - - - Tanzania - tz - - - Ukraine - ua - - - Uganda - ug - - - United Kingdom - - gb - - - USA Minor Outlying Islands - um - - - United States - us - - - - Uruguay - uy - - - Uzbekistan - uz - - - Holy See (Vatican City State) - va - - - Saint Vincent & Grenadines - vc - - - Venezuela - ve - - - Virgin Islands (British) - vg - - - Virgin Islands (USA) - vi - - - Vietnam - vn - - - Vanuatu - vu - - - Wallis and Futuna Islands - wf - - - Samoa - ws - - - Yemen - ye - - - Mayotte - yt - - - Yugoslavia - yu - - - South Africa - za - - - Zambia - zm - - - - Zaire - zr - - - Zimbabwe - zw - - - + Your Company - @@ -1111,644 +85,9 @@ - - - - USD - $ - 0.01 - 4 - - - - 1.2834 - - - - - - - VEF - Bs.F - 0.0001 - 4 - - - - 5.864 - - - - - - CAD - $ - 0.01 - 4 - - - - 1.3388 - - - - - - - CHF - CHF - 0.01 - 4 - - - - 1.3086 - - - - - - BRL - R$ - 0.01 - 4 - - - - 2.2344 - - - - - - CNY - ¥ - 0.01 - 4 - - - - 8.7556 - - - - - - - COP - $ - 0.01 - 4 - - - - 2933.8378 - - - - - - CZK - Kč - 0.01 - 4 - - - - 26.5634 - - - - - - DKK - kr - 0.01 - 4 - - - - 7.4445 - - - - - - - HUF - Ft - 0.01 - 4 - - - - 271.5621 - - - - - - IDR - Rp - 0.01 - 4 - - - - 14352.00 - - - - - 11796.39 - - - - - - LVL - Ls - 0.01 - 4 - - - - 0.7086 - - - - - - - NOK - kr - 0.01 - 4 - - - - 7.8668 - - - - - - XPF - XPF - 1.00 - 4 - - - - 119.331742 - - - - - - PAB - B/. - 0.01 - 4 - - - - 1.2676 - - - - - - PLN - zł - 0.01 - 4 - - - - 4.1005 - - - - - - SEK - kr - 0.01 - 4 - - - - 10.3004 - - - - - - GBP - £ - 0.01 - 4 - - - - 0.8333 - - - - - - ARS - $ - 0.01 - 4 - - - - 5.0881 - - - - - - INR - ₹ - 0.01 - 4 - - - - 59.9739 - - - - - - AUD - $ - 0.01 - 4 - - - - 1.4070 - - - - - - UAH - ₴ - 0.01 - 4 - - - - 10.1969 - - - - - - VND - ₫ - 0.01 - 4 - - - - 26330.01 - - - - - - HKD - $ - 0.01 - 4 - - - - 11.1608 - - - - - - JPY - ¥ - 0.01 - 4 - - - - 133.62 - - - - - - BGN - лв - 0.01 - 4 - - - - 1.9558 - - - - - - LTL - Lt - 0.01 - 4 - - - - 3.4528 - - - - - - RON - lei - 0.01 - 4 - - - - 4.2253 - - - - - - HRK - kn - 0.01 - 4 - - - - 7.2936 - - - - - - RUB - руб - 0.01 - 4 - - - - 43.16 - - - - - - TRY - TL - 0.01 - 4 - - - - 2.1411 - - - - - - KRW - ₩ - 0.01 - 4 - - - - 1662.37 - - - - - - MXN - $ - 0.01 - 4 - - - - 18.6664 - - - - - - MYR - RM - 0.01 - 4 - - - - 4.8887 - - - - - - NZD - $ - 0.01 - 4 - - - - 1.9764 - - - - - - PHP - Php - 0.01 - 4 - - - - 66.1 - - - - - - SGD - $ - 0.01 - 4 - - - - 2.0126 - - - - - - THB - ฿ - 0.01 - 4 - - - - 47.779 - - - - - - ZAR - R - 0.01 - 4 - - - - 10.5618 - - - - - - International Bank - - - - CRC - 0.01 - 4 - ¢ - - - - 691.3153 - - - - - - localhost - localhost - - - - - - MUR - Rs - 0.01 - 4 - - - - 40.28 - - - - - - XOF - CFA - 1 - 4 - - - - 655.957 - - - - - - XAF - FCFA - 1 - 4 - - - - 655.957 - - - - - - UGX - USh - 1 - 4 - - - - 3401.91388 - - - - - - HNL - L - 0.01 - 4 - - - - 25 - - - - - - - CLP - $ - 0.01 - 4 - - - - 710 - - - - - - - UYU - $ - 0.01 - 4 - - - - - - 28.36 - - + diff --git a/openerp/addons/base/base_demo.xml b/openerp/addons/base/base_demo.xml index 34feb3af990..064b1f49e69 100644 --- a/openerp/addons/base/base_demo.xml +++ b/openerp/addons/base/base_demo.xml @@ -1,10 +1,15 @@ + + Demo User + + + + demo demo - Demo User Mr Demo diff --git a/openerp/addons/base/country_data.xml b/openerp/addons/base/country_data.xml new file mode 100644 index 00000000000..d4d880cb8ed --- /dev/null +++ b/openerp/addons/base/country_data.xml @@ -0,0 +1,1285 @@ + + + + + + + United Arab Emirates + ae + + + + Afghanistan, Islamic State of + af + + + + Antigua and Barbuda + ag + + + + Anguilla + ai + + + + Albania + al + + + + Armenia + am + + + + Netherlands Antilles + an + + + + Angola + ao + + + + Antarctica + aq + + + + Argentina + ar + + + + American Samoa + as + + + + Austria + at + + + + Australia + au + + + + + Aruba + aw + + + + Åland Islands + ax + + + + Azerbaijan + az + + + + Bosnia-Herzegovina + ba + + + + Barbados + bb + + + + Bangladesh + bd + + + + Belgium + be + + + + + Burkina Faso + bf + + + + Bulgaria + bg + + + + Bahrain + bh + + + + Burundi + bi + + + + Benin + bj + + + + Saint Barthélémy + bl + + + + Bermuda + bm + + + + Brunei Darussalam + bn + + + + Bolivia + bo + + + + Bonaire, Sint Eustatius and Saba + bq + + + + Brazil + br + + + + + Bahamas + bs + + + + Bhutan + bt + + + + Bouvet Island + bv + + + + Botswana + bw + + + + Belarus + by + + + + Belize + bz + + + + Canada + ca + + + + + Cocos (Keeling) Islands + cc + + + + Central African Republic + cf + + + + Congo, Democratic Republic of the + cd + + + + Congo + cg + + + + Switzerland + ch + + + + Ivory Coast (Cote D'Ivoire) + ci + + + + Cook Islands + ck + + + + Chile + cl + + + + Cameroon + cm + + + + China + cn + + + + Colombia + co + + + + Costa Rica + cr + + + + Cuba + cu + + + + Cape Verde + cv + + + + Curaçao + cw + + + + Christmas Island + cx + + + + Cyprus + cy + + + + Czech Republic + cz + + + + Germany + de + + + + + Djibouti + dj + + + + Denmark + dk + + + + Dominica + dm + + + + Dominican Republic + do + + + + Algeria + dz + + + + Ecuador + ec + + + + Estonia + ee + + + + Egypt + eg + + + + Western Sahara + eh + + + + Eritrea + er + + + + Spain + es + + + + + Ethiopia + et + + + + Finland + fi + + + + Fiji + fj + + + + Falkland Islands + fk + + + + Micronesia + fm + + + + Faroe Islands + fo + + + + France + fr + + + + + Gabon + ga + + + + Grenada + gd + + + + Georgia + ge + + + + French Guyana + gf + + + + Ghana + gh + + + + Gibraltar + gi + + + + Guernsey + gg + + + + Greenland + gl + + + + Gambia + gm + + + + Guinea + gn + + + + Guadeloupe (French) + gp + + + + Equatorial Guinea + gq + + + + Greece + gr + + + + South Georgia and the South Sandwich Islands + gs + + + + Guatemala + gt + + + + Guam (USA) + gu + + + + Guinea Bissau + gw + + + + Guyana + gy + + + + Hong Kong + hk + + + + Heard and McDonald Islands + hm + + + + Honduras + hn + + + + Croatia + hr + + + + Haiti + ht + + + + Hungary + hu + + + + Indonesia + id + + + + Ireland + ie + + + + Israel + il + + + + Isle of Man + im + + + + India + in + + + + + British Indian Ocean Territory + io + + + + Iraq + iq + + + + Iran + ir + + + + Iceland + is + + + + Italy + it + + + + Jersey + je + + + + Jamaica + jm + + + + Jordan + jo + + + + Japan + jp + + + + Kenya + ke + + + + Kyrgyz Republic (Kyrgyzstan) + kg + + + + Cambodia, Kingdom of + kh + + + + Kiribati + ki + + + + Comoros + km + + + + Saint Kitts & Nevis Anguilla + kn + + + + North Korea + kp + + + + South Korea + kr + + + + Kuwait + kw + + + + Cayman Islands + ky + + + + Kazakhstan + kz + + + + Laos + la + + + + Lebanon + lb + + + + Saint Lucia + lc + + + + Liechtenstein + li + + + + Sri Lanka + lk + + + + Liberia + lr + + + + Lesotho + ls + + + + Lithuania + lt + + + + Luxembourg + lu + + + + Latvia + lv + + + + Libya + ly + + + + Morocco + ma + + + + Monaco + + mc + + + Moldavia + md + + + + Montenegro + me + + + + Saint Martin (French part) + mf + + + + Madagascar + mg + + + + Marshall Islands + mh + + + + Macedonia, the former Yugoslav Republic of + mk + + + + Mali + ml + + + + Myanmar + mm + + + + Mongolia + mn + + + + Macau + mo + + + + Northern Mariana Islands + mp + + + + Martinique (French) + mq + + + + Mauritania + mr + + + + Montserrat + ms + + + + Malta + mt + + + + Mauritius + mu + + + + Maldives + mv + + + + Malawi + mw + + + + Mexico + mx + + + + Malaysia + my + + + + Mozambique + mz + + + + Namibia + na + + + + New Caledonia (French) + nc + + + + Niger + ne + + + + Norfolk Island + nf + + + + Nigeria + ng + + + + Nicaragua + ni + + + + Netherlands + nl + + + + + Norway + no + + + + Nepal + np + + + + Nauru + nr + + + + Neutral Zone + nt + + + + Niue + nu + + + + New Zealand + nz + + + + Oman + om + + + + Panama + pa + + + + Peru + pe + + + + Polynesia (French) + pf + + + + Papua New Guinea + pg + + + + Philippines + ph + + + + Pakistan + pk + + + + Poland + pl + + + + Saint Pierre and Miquelon + pm + + + + Pitcairn Island + pn + + + + Puerto Rico + pr + + + + Palestinian Territory, Occupied + ps + + + + Portugal + pt + + + + Palau + pw + + + + Paraguay + py + + + + Qatar + qa + + + + Reunion (French) + re + + + + Romania + ro + + + + Serbia + rs + + + + Russian Federation + ru + + + + Rwanda + rw + + + + Saudi Arabia + sa + + + + Solomon Islands + sb + + + + Seychelles + sc + + + + Sudan + sd + + + + Sweden + se + + + + Singapore + sg + + + + Saint Helena + sh + + + + Slovenia + si + + + + Svalbard and Jan Mayen Islands + sj + + + + Slovakia + sk + + + + Sierra Leone + sl + + + + San Marino + sm + + + + Senegal + sn + + + + Somalia + so + + + + Suriname + sr + + + + South Sudan + ss + + + + Saint Tome (Sao Tome) and Principe + st + + + + El Salvador + sv + + + + Sint Maarten (Dutch part) + sx + + + + Syria + sy + + + + Swaziland + sz + + + + Turks and Caicos Islands + tc + + + + Chad + td + + + + French Southern Territories + tf + + + + Togo + tg + + + + Thailand + th + + + + Tajikistan + tj + + + + Tokelau + tk + + + + Turkmenistan + tm + + + + Tunisia + tn + + + + Tonga + to + + + + East Timor + tp + + + + Turkey + tr + + + + Trinidad and Tobago + tt + + + + Tuvalu + tv + + + + Taiwan + tw + + + + Tanzania + tz + + + + Ukraine + ua + + + + + Uganda + ug + + + + United Kingdom + + gb + + + + USA Minor Outlying Islands + um + + + + United States + us + + + + + Uruguay + uy + + + + Uzbekistan + uz + + + + Holy See (Vatican City State) + va + + + + Saint Vincent & Grenadines + vc + + + + Venezuela + ve + + + + Virgin Islands (British) + vg + + + + Virgin Islands (USA) + vi + + + + Vietnam + vn + + + + Vanuatu + vu + + + + Wallis and Futuna Islands + wf + + + + Samoa + ws + + + + Yemen + ye + + + + Mayotte + yt + + + + Yugoslavia + yu + + + + South Africa + za + + + + Zambia + zm + + + + + + Zaire + zr + + + + Zimbabwe + zw + + + + diff --git a/openerp/addons/base/currency_data.xml b/openerp/addons/base/currency_data.xml new file mode 100644 index 00000000000..11a83404b02 --- /dev/null +++ b/openerp/addons/base/currency_data.xml @@ -0,0 +1,2299 @@ + + + + + + + USD + $ + 0.01 + 4 + + + + 1.2834 + + + + + + + VEF + Bs.F + 0.0001 + 4 + + + + 5.864 + + + + + + CAD + $ + 0.01 + 4 + + + + 1.3388 + + + + + + + CHF + CHF + 0.01 + 4 + + + + 1.3086 + + + + + + BRL + R$ + 0.01 + 4 + + + + 2.2344 + + + + + + CNY + ¥ + 0.01 + 4 + + + + 8.7556 + + + + + + + COP + $ + 0.01 + 4 + + + + 2933.8378 + + + + + + CZK + Kč + 0.01 + 4 + + + + 26.5634 + + + + + + DKK + kr + 0.01 + 4 + + + + 7.4445 + + + + + + + HUF + Ft + 0.01 + 4 + + + + 271.5621 + + + + + + IDR + Rp + 0.01 + 4 + + + + 14352.00 + + + + + 11796.39 + + + + + + LVL + Ls + 0.01 + 4 + + + + 0.7086 + + + + + + NOK + kr + 0.01 + 4 + + + + 7.8668 + + + + + + XPF + XPF + 1.00 + 4 + + + + 119.331742 + + + + + + PAB + B/. + 0.01 + 4 + + + + 1.2676 + + + + + + PLN + zł + 0.01 + 4 + + + + 4.1005 + + + + + + SEK + kr + 0.01 + 4 + + + + 10.3004 + + + + + + ARS + $ + 0.01 + 4 + + + + 5.0881 + + + + + + INR + ₹ + 0.01 + 4 + + + + 59.9739 + + + + + + AUD + $ + 0.01 + 4 + + + + 1.4070 + + + + + + UAH + ₴ + 0.01 + 4 + + + + 10.1969 + + + + + + VND + ₫ + 0.01 + 4 + + + + 26330.01 + + + + + + HKD + $ + 0.01 + 4 + + + + 11.1608 + + + + + + JPY + ¥ + 0.01 + 4 + + + + 133.62 + + + + + + BGN + лв + 0.01 + 4 + + + + 1.9558 + + + + + + LTL + Lt + 0.01 + 4 + + + + 3.4528 + + + + + + RON + lei + 0.01 + 4 + + + + 4.2253 + + + + + + HRK + kn + 0.01 + 4 + + + + 7.2936 + + + + + + RUB + руб + 0.01 + 4 + + + + 43.16 + + + + + + TRY + TL + 0.01 + 4 + + + + 2.1411 + + + + + + KRW + ₩ + 0.01 + 4 + + + + 1662.37 + + + + + + MXN + $ + 0.01 + 4 + + + + 18.6664 + + + + + + MYR + RM + 0.01 + 4 + + + + 4.8887 + + + + + + NZD + $ + 0.01 + 4 + + + + 1.9764 + + + + + + PHP + Php + 0.01 + 4 + + + + 66.1 + + + + + + SGD + $ + 0.01 + 4 + + + + 2.0126 + + + + + + ZAR + R + 0.01 + 4 + + + + 10.5618 + + + + + + Reserve + + + + CRC + 0.01 + 4 + ¢ + + + + 691.3153 + + + + + + localhost + localhost + + + + + + MUR + Rs + 0.01 + 4 + + + + 40.28 + + + + + + XOF + CFA + 1 + 4 + + + + 655.957 + + + + + + XAF + FCFA + 1 + 4 + + + + 655.957 + + + + + + UGX + USh + 1 + 4 + + + + 3401.91388 + + + + + + HNL + L + 0.01 + 4 + + + + 25 + + + + + + CLP + $ + 0.01 + 4 + + + + 710 + + + + + + UYU + $ + 0.01 + 4 + + + + + + 28.36 + + + + AFN + Afs + 0.01 + 4 + + + + + + 59.33 + + + + AOA + Kz + 0.01 + 4 + + + + + + 117.080 + + + + XCD + $ + 0.01 + 4 + + + + + + 3.32 + + + + AMD + դր. + 0.01 + 4 + + + + + + 506.02 + + + + AWG + Afl. + 0.01 + 4 + + + + + + 0.45 + + + + AZN + m + 0.01 + 4 + + + + + + 0.96 + + + + BSD + B$ + 0.01 + 4 + + + + + + 1.23 + + + + BHD + BD + 0.01 + 4 + + + + + + 0.46 + + + + BDT + ৳ + 0.01 + 4 + + + + + + 100.59 + + + + BBD + Bds$ + 0.01 + 4 + + + + + + 2.46 + + + + BYR + BR + 0.01 + 4 + + + + + + 10228.19 + + + + BZD + BZ$ + 0.01 + 4 + + + + + + 2.33 + + + + BMD + BD$ + 0.01 + 4 + + + + + + 1.23 + + + + BTN + Nu. + 0.01 + 4 + + + + + + 67.81 + + + + BOB + Bs. + 0.01 + 4 + + + + + + 8.50 + + + + BAM + KM + 0.01 + 4 + + + + + + 1.96 + + + + BWP + P + 0.01 + 4 + + + + + + 9.45 + + + + BIF + FBu + 0.01 + 4 + + + + + + 1736.73 + + + + KHR + ៛ + 0.01 + 4 + + + + + + 5054.53 + + + + KYD + $ + 0.01 + 4 + + + + + + 1.007 + + + + KMF + CF + 0.01 + 4 + + + + + + 492.23 + + + + CDF + Fr + 0.01 + 4 + + + + + + 1112.80 + + + + CUP + $ + 0.01 + 4 + + + + + + 1.226 + + + + ANG + ƒ + 0.01 + 4 + + + + + + 2.11 + + + + CYP + £ + 0.01 + 4 + + + + + + 0.475 + + + + DJF + Fdj + 0.01 + 4 + + + + + + 222.22 + + + + DOP + RD$ + 0.01 + 4 + + + + + + 48.09 + + + + + TPE + 0.01 + 4 + + + + + + 1.2535 + + + + ECS + S/. + 0.01 + 4 + + + + + + 30707.5 + + + + EGP + E£ + 0.01 + 4 + + + + + + 7.46 + + + + SVC + ¢ + 0.01 + 4 + + + + + + 10.74 + + + + ERN + Nfk + 0.01 + 4 + + + + + + 18.89 + + + + EEK + kr + 0.01 + 4 + + + + + + 14.41 + + + + ETB + Br + 0.01 + 4 + + + + + + 21.94 + + + + FKP + £ + 0.01 + 4 + + + + + + 0.78 + + + + FJD + FJ$ + 0.01 + 4 + + + + + + 2.22 + + + + GEL + ლ + 0.01 + 4 + + + + + + 2.018 + + + + GIP + £ + 0.01 + 4 + + + + + + 0.786 + + + + QTQ + Q + 0.01 + 4 + + + + + + 9.8827 + + + + GNF + FG + 0.01 + 4 + + + + + + 8835.85 + + + + GWP + 0.01 + 4 + + + + + + 659.30 + + + + GYD + $ + 0.01 + 4 + + + + + + 247.31 + + + + HTG + G + 0.01 + 4 + + + + + + 51.69 + + + + ISK + kr + 0.01 + 4 + + + + + + 158.70 + + + + IRR + ﷼ + 0.01 + 4 + + + + + + 15059.97 + + + + IQD + ع.د + 0.01 + 4 + + + + + + 1432.27 + + + + ILS + ₪ + 0.01 + 4 + + + + + + 4.89 + + + + JMD + $ + 0.01 + 4 + + + + + + 108.94 + + + + JOD + د.ا + 0.01 + 4 + + + + + + 0.87 + + + + KZT + лв + 0.01 + 4 + + + + + + 184.09 + + + + KES + KSh + 0.01 + 4 + + + + + + 103.43 + + + + KWD + د.ك + 0.01 + 4 + + + + + + 0.35 + + + + KGS + лв + 0.01 + 4 + + + + + + 57.93 + + + + LAK + ₭ + 0.01 + 4 + + + + + + 9847.72 + + + + LBP + ل.ل + 0.01 + 4 + + + + + + 1853.94 + + + + LSL + L + 0.01 + 4 + + + + + + 10.06 + + + + LRD + L$ + 0.01 + 4 + + + + + + 90.28 + + + + LYD + ل.د + 0.01 + 4 + + + + + + 1.54 + + + + MOP + MOP$ + 0.01 + 4 + + + + + + 9.81 + + + + MKD + ден + 0.01 + 4 + + + + + + 60.29 + + + + MGA + Ar + 0.01 + 4 + + + + + + 2775.86 + + + + MWK + MK + 0.01 + 4 + + + + + + 329.79 + + + + MVR + .ރ + 0.01 + 4 + + + + + + 18.89 + + + + MRO + UM + 0.01 + 4 + + + + + + 362.23 + + + + MDL + L + 0.01 + 4 + + + + + + 15.27 + + + + MNT + ₮ + 0.01 + 4 + + + + + + 1643.57 + + + + MAD + د.م. + 0.01 + 4 + + + + + + 10.9962499 + + + + BND + $ + 0.01 + 4 + + + + + + 1.54 + + + + DZD + DZ + 0.01 + 4 + + + + + + 99.65 + + + + GHS + GH¢ + 0.01 + 4 + + + + + + 2.39 + + + + GMD + D + 0.01 + 4 + + + + + + 38.89 + + + + ZRZ + Ƶ + 0.01 + 4 + + + + + + 1148948.76 + + + + MZN + MT + 0.01 + 4 + + + + + + 33.65 + + + + MMK + K + 0.01 + 4 + + + + + + 1080.82 + + + + NAD + $ + 0.01 + 4 + + + + + + 10.06 + + + + NPR + ₨ + 0.01 + 4 + + + + + + 108.33 + + + + ALL + L + 0.01 + 4 + + + + + + 138.00 + + + + NIO + C$ + 0.01 + 4 + + + + + + 28.97 + + + + NGN + ₦ + 0.01 + 4 + + + + + + 196.77 + + + + KPW + ₩ + 0.01 + 4 + + + + + + 1105.24376765 + + + + ZWD + Z$ + 0.01 + 4 + + + + + + 460.93 + + + + ZMK + ZK + 0.01 + 4 + + + + + + 6022.54902 + + + + YER + ﷼ + 0.01 + 4 + + + + + + 264.784483 + + + + VUB + Bs + 0.01 + 4 + + + + + + 5.3821 + + + + EUR + € + 0.01 + 4 + + + + + + 1.0 + + + + VUV + VT + 0.01 + 4 + + + + + + 114.024315363 + + + + UZS + лв + 0.01 + 4 + + + + + + 2331.3093 + + + + UYP + $U + 0.01 + 4 + + + + + + 26.91 + + + + AED + د.إ + 0.01 + 4 + + + + + + 4.51253195 + + + + UAG + ₴ + 0.01 + 4 + + + + + + 10.17 + + + + TMM + m + 0.01 + 4 + + + + + + 0.00313859649123 + + + + TRL + TL + 0.01 + 4 + + + + + + 2.255 + + + + TND + DT + 0.01 + 4 + + + + + + 34.0661408 + + + + TTD + $ + 0.01 + 4 + + + + + + 8.61926302 + + + + TOP + T$ + 0.01 + 4 + + + + + + 31.1217 + + + + THB + ฿ + 0.01 + 4 + + + + + + 38.4070124 + + + + TZS + x/y + 0.01 + 4 + + + + + + 1947.06815 + + + + TJR + 0.01 + 4 + + + + + + 5.95 + + + + TWD + NT$ + 0.01 + 4 + + + + + + 36.8329536 + + + + SYP + £ + 0.01 + 4 + + + + + + 78.8338 + + + + SZL + E + 0.01 + 4 + + + + + + 10.07 + + + + SRG + $ + 0.01 + 4 + + + + + + 3980.29 + + + + SDD + £Sd + 0.01 + 4 + + + + + + 544.44 + + + + LKR + Rs + 0.01 + 4 + + + + + + 163.552526 + + + + SSP + £ + 0.01 + 4 + + + + + + 5.528 + + + + GBP + £ + 0.01 + 4 + + + + + + 0.784221994 + + + + SOD + Sh. + 0.01 + 4 + + + + + + 1993.71 + + + + SBD + SI$ + 0.01 + 4 + + + + + + 8.6605 + + + + SLL + Le + 0.01 + 4 + + + + + + 5320.43478 + + + + SCR + SR + 0.01 + 4 + + + + + + 18.2587287 + + + + RSD + din. + 0.01 + 4 + + + + + + 117.381295 + + + + SAR + SR + 0.01 + 4 + + + + + + 4.58898972 + + + + STD + Db + 0.01 + 4 + + + + + + 24105.86 + + + + ITL + ₤ + 0.01 + 4 + + + + + + 1936.27 + + + + WST + WS$ + 0.01 + 4 + + + + + + 2.8628 + + + + SHP + £ + 0.01 + 4 + + + + + + 0.7856 + + + + RWF + RF + 0.01 + 4 + + + + + + 752.57 + + + + RUR + R + 0.01 + 4 + + + + + + 39.6622695 + + + + ROL + L + 0.01 + 4 + + + + + + 45638.59 + + + + QAR + QR + 0.01 + 4 + + + + + + 4.45500218 + + + + PLZ + zł + 0.01 + 4 + + + + + + 4.17281888 + + + + PEN + S/. + 0.01 + 4 + + + + + + 3.20731573 + + + + PYG + ₲ + 0.01 + 4 + + + + + + 5343.66812 + + + + PGK + K + 0.01 + 4 + + + + + + 2.5903895 + + + + PKR + Rs. + 0.01 + 4 + + + + + + 115.97432 + + + + OMR + ر.ع. + 0.01 + 4 + + + + + + 0.472921728 + + + + CVE + $ + 0.01 + 4 + + + + + + 0.61 + + + + SKK + Sk + 0.01 + 4 + + + + + + 30.1263029 + + + + SIT + 0.01 + 4 + + + + + + 239.64 + + + + YUM + дин. + 0.01 + 4 + + + + + + 1.96 + + + + diff --git a/openerp/addons/base/i18n/ab.po b/openerp/addons/base/i18n/ab.po index a1ac5d7b6b0..7edfde74afc 100644 --- a/openerp/addons/base/i18n/ab.po +++ b/openerp/addons/base/i18n/ab.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:47+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:37+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/af.po b/openerp/addons/base/i18n/af.po index 2e2512f5066..cb52e2f5de9 100644 --- a/openerp/addons/base/i18n/af.po +++ b/openerp/addons/base/i18n/af.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:47+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:38+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/am.po b/openerp/addons/base/i18n/am.po index 3cba52b55cf..3e1e29f7661 100644 --- a/openerp/addons/base/i18n/am.po +++ b/openerp/addons/base/i18n/am.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:47+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:38+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/ar.po b/openerp/addons/base/i18n/ar.po index 6de1f50edb6..e127ce1abbb 100644 --- a/openerp/addons/base/i18n/ar.po +++ b/openerp/addons/base/i18n/ar.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:48+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:38+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/bg.po b/openerp/addons/base/i18n/bg.po index 06f33f26195..3d2625e4733 100644 --- a/openerp/addons/base/i18n/bg.po +++ b/openerp/addons/base/i18n/bg.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:48+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:39+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/bs.po b/openerp/addons/base/i18n/bs.po index 452d8e8bb7b..9a3b2255563 100644 --- a/openerp/addons/base/i18n/bs.po +++ b/openerp/addons/base/i18n/bs.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:48+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:38+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/ca.po b/openerp/addons/base/i18n/ca.po index 284f45479f8..6fc2fb91702 100644 --- a/openerp/addons/base/i18n/ca.po +++ b/openerp/addons/base/i18n/ca.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:48+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:39+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/cs.po b/openerp/addons/base/i18n/cs.po index b4ae65d2e0c..6069a8e44ca 100644 --- a/openerp/addons/base/i18n/cs.po +++ b/openerp/addons/base/i18n/cs.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:48+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:39+0000\n" +"X-Generator: Launchpad (build 15901)\n" "X-Poedit-Language: Czech\n" #. module: base diff --git a/openerp/addons/base/i18n/da.po b/openerp/addons/base/i18n/da.po index 13feac0f4aa..62dc22344a7 100644 --- a/openerp/addons/base/i18n/da.po +++ b/openerp/addons/base/i18n/da.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:48+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:39+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/de.po b/openerp/addons/base/i18n/de.po index b096d2e6ff2..301be6a019e 100644 --- a/openerp/addons/base/i18n/de.po +++ b/openerp/addons/base/i18n/de.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:49+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:40+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/el.po b/openerp/addons/base/i18n/el.po index eda2e5cbbf9..610613af10c 100644 --- a/openerp/addons/base/i18n/el.po +++ b/openerp/addons/base/i18n/el.po @@ -12,8 +12,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:49+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:40+0000\n" +"X-Generator: Launchpad (build 15901)\n" "X-Poedit-Country: GREECE\n" "X-Poedit-Language: Greek\n" "X-Poedit-SourceCharset: utf-8\n" diff --git a/openerp/addons/base/i18n/en_GB.po b/openerp/addons/base/i18n/en_GB.po index a8ba188c7e9..ee7bd182672 100644 --- a/openerp/addons/base/i18n/en_GB.po +++ b/openerp/addons/base/i18n/en_GB.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:53+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:45+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/es.po b/openerp/addons/base/i18n/es.po index 2e0dabd4d72..3f0a4646113 100644 --- a/openerp/addons/base/i18n/es.po +++ b/openerp/addons/base/i18n/es.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:52+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:43+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/es_AR.po b/openerp/addons/base/i18n/es_AR.po index 9592a170bf4..cd7ff89c0ef 100644 --- a/openerp/addons/base/i18n/es_AR.po +++ b/openerp/addons/base/i18n/es_AR.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:53+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:45+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/es_CL.po b/openerp/addons/base/i18n/es_CL.po index d89e62f0213..f215912bd37 100644 --- a/openerp/addons/base/i18n/es_CL.po +++ b/openerp/addons/base/i18n/es_CL.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:54+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:45+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/es_CR.po b/openerp/addons/base/i18n/es_CR.po index 0aef8f393c6..87c2b8aa483 100644 --- a/openerp/addons/base/i18n/es_CR.po +++ b/openerp/addons/base/i18n/es_CR.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:54+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:45+0000\n" +"X-Generator: Launchpad (build 15901)\n" "Language: \n" #. module: base diff --git a/openerp/addons/base/i18n/es_EC.po b/openerp/addons/base/i18n/es_EC.po index 5c399edb8c0..0ba92adb8ff 100644 --- a/openerp/addons/base/i18n/es_EC.po +++ b/openerp/addons/base/i18n/es_EC.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:54+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:46+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/es_MX.po b/openerp/addons/base/i18n/es_MX.po new file mode 100644 index 00000000000..cc9d519e705 --- /dev/null +++ b/openerp/addons/base/i18n/es_MX.po @@ -0,0 +1,15177 @@ +# Spanish (Mexico) translation for openobject-server +# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012 +# This file is distributed under the same license as the openobject-server package. +# FIRST AUTHOR , 2012. +# +msgid "" +msgstr "" +"Project-Id-Version: openobject-server\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2012-02-08 00:44+0000\n" +"PO-Revision-Date: 2012-09-07 01:11+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Spanish (Mexico) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2012-09-08 04:54+0000\n" +"X-Generator: Launchpad (build 15914)\n" + +#. module: base +#: model:res.country,name:base.sh +msgid "Saint Helena" +msgstr "" + +#. module: base +#: view:ir.actions.report.xml:0 +msgid "Other Configuration" +msgstr "" + +#. module: base +#: selection:ir.property,type:0 +msgid "DateTime" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_project_mailgate +msgid "Tasks-Mail Integration" +msgstr "" + +#. module: base +#: code:addons/fields.py:582 +#, python-format +msgid "" +"The second argument of the many2many field %s must be a SQL table !You used " +"%s, which is not a valid SQL table name." +msgstr "" + +#. module: base +#: field:ir.ui.view,arch:0 +#: field:ir.ui.view.custom,arch:0 +msgid "View Architecture" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_project +msgid "" +"\n" +"Project management module tracks multi-level projects, tasks, work done on " +"tasks, eso.\n" +"=============================================================================" +"=========\n" +"\n" +"It is able to render planning, order tasks, eso.\n" +"\n" +"Dashboard for project members that includes:\n" +"--------------------------------------------\n" +" * List of my open tasks\n" +" * List of my delegated tasks\n" +" * Graph of My Projects: Planned vs Total Hours\n" +" * Graph of My Remaining Hours by Project\n" +" " +msgstr "" + +#. module: base +#: field:base.language.import,code:0 +msgid "Code (eg:en__US)" +msgstr "" + +#. module: base +#: view:workflow:0 +#: view:workflow.activity:0 +#: field:workflow.activity,wkf_id:0 +#: field:workflow.instance,wkf_id:0 +#: field:workflow.transition,wkf_id:0 +#: field:workflow.workitem,wkf_id:0 +msgid "Workflow" +msgstr "" + +#. module: base +#: selection:ir.sequence,implementation:0 +msgid "No gap" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Hungarian / Magyar" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Spanish (PY) / Español (PY)" +msgstr "" + +#. module: base +#: model:ir.module.category,description:base.module_category_project_management +msgid "" +"Helps you manage your projects and tasks by tracking them, generating " +"plannings, etc..." +msgstr "" + +#. module: base +#: field:ir.actions.act_window,display_menu_tip:0 +msgid "Display Menu Tips" +msgstr "" + +#. module: base +#: help:ir.cron,model:0 +msgid "" +"Model name on which the method to be called is located, e.g. 'res.partner'." +msgstr "" + +#. module: base +#: view:ir.module.module:0 +msgid "Created Views" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_model.py:532 +#, python-format +msgid "" +"You can not write in this document (%s) ! Be sure your user belongs to one " +"of these groups: %s." +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_event_project +msgid "" +"\n" +"Organization and management of events.\n" +"======================================\n" +"\n" +"This module allows you to create retro planning for managing your events.\n" +msgstr "" + +#. module: base +#: help:ir.model.fields,domain:0 +msgid "" +"The optional domain to restrict possible values for relationship fields, " +"specified as a Python expression defining a list of triplets. For example: " +"[('color','=','red')]" +msgstr "" + +#. module: base +#: field:res.partner,ref:0 +msgid "Reference" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_be_invoice_bba +msgid "Belgium - Structured Communication" +msgstr "" + +#. module: base +#: field:ir.actions.act_window,target:0 +msgid "Target Window" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_sale_analytic_plans +msgid "Sales Analytic Distribution" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_web_process +msgid "Process" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_analytic_journal_billing_rate +msgid "Billing Rates on Contracts" +msgstr "" + +#. module: base +#: code:addons/base/res/res_users.py:558 +#, python-format +msgid "Warning!" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_model.py:344 +#, python-format +msgid "" +"Properties of base fields cannot be altered in this manner! Please modify " +"them through Python code, preferably through a custom addon!" +msgstr "" + +#. module: base +#: code:addons/osv.py:129 +#, python-format +msgid "Constraint Error" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_ui_view_custom +msgid "ir.ui.view.custom" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_model.py:313 +#, python-format +msgid "Renaming sparse field \"%s\" is not allowed" +msgstr "" + +#. module: base +#: model:res.country,name:base.sz +msgid "Swaziland" +msgstr "" + +#. module: base +#: code:addons/orm.py:4206 +#, python-format +msgid "created." +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_tr +msgid "Turkey - Accounting" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_mrp_subproduct +msgid "MRP Subproducts" +msgstr "" + +#. module: base +#: code:addons/base/module/module.py:390 +#, python-format +msgid "" +"Some installed modules depend on the module you plan to Uninstall :\n" +" %s" +msgstr "" + +#. module: base +#: field:ir.sequence,number_increment:0 +msgid "Increment Number" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_res_company_tree +#: model:ir.ui.menu,name:base.menu_action_res_company_tree +msgid "Company's Structure" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Inuktitut / ᐃᓄᒃᑎᑐᑦ" +msgstr "" + +#. module: base +#: model:ir.actions.todo.category,name:base.category_sales_management_config +#: model:ir.module.category,name:base.module_category_sales_management +#: model:ir.module.module,shortdesc:base.module_sale +msgid "Sales Management" +msgstr "" + +#. module: base +#: view:res.partner:0 +msgid "Search Partner" +msgstr "" + +#. module: base +#: code:addons/base/module/wizard/base_export_language.py:60 +#, python-format +msgid "new" +msgstr "" + +#. module: base +#: field:ir.actions.report.xml,multi:0 +msgid "On multiple doc." +msgstr "" + +#. module: base +#: field:ir.module.category,module_nr:0 +msgid "Number of Modules" +msgstr "" + +#. module: base +#: help:multi_company.default,company_dest_id:0 +msgid "Company to store the current record" +msgstr "" + +#. module: base +#: field:res.partner.bank.type.field,size:0 +msgid "Max. Size" +msgstr "" + +#. module: base +#: model:ir.module.category,name:base.module_category_reporting +#: model:ir.ui.menu,name:base.menu_lunch_reporting +#: model:ir.ui.menu,name:base.menu_project_report +#: model:ir.ui.menu,name:base.menu_report_association +#: model:ir.ui.menu,name:base.menu_report_marketing +#: model:ir.ui.menu,name:base.menu_reporting +#: model:ir.ui.menu,name:base.next_id_64 +#: model:ir.ui.menu,name:base.next_id_73 +#: model:ir.ui.menu,name:base.reporting_menu +msgid "Reporting" +msgstr "" + +#. module: base +#: view:res.partner:0 +#: field:res.partner,subname:0 +#: field:res.partner.address,name:0 +msgid "Contact Name" +msgstr "" + +#. module: base +#: code:addons/base/module/wizard/base_export_language.py:56 +#, python-format +msgid "" +"Save this document to a %s file and edit it with a specific software or a " +"text editor. The file encoding is UTF-8." +msgstr "" + +#. module: base +#: help:ir.values,key2:0 +msgid "" +"For actions, one of the possible action slots: \n" +" - client_action_multi\n" +" - client_print_multi\n" +" - client_action_relate\n" +" - tree_but_open\n" +"For defaults, an optional condition" +msgstr "" + +#. module: base +#: sql_constraint:res.lang:0 +msgid "The name of the language must be unique !" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_import_base +msgid "" +"\n" +" This module provide a class import_framework to help importing \n" +" complex data from other software\n" +" " +msgstr "" + +#. module: base +#: field:ir.actions.wizard,wiz_name:0 +msgid "Wizard Name" +msgstr "" + +#. module: base +#: model:res.groups,name:base.group_partner_manager +msgid "Partner Manager" +msgstr "" + +#. module: base +#: model:ir.module.category,name:base.module_category_customer_relationship_management +msgid "Customer Relationship Management" +msgstr "" + +#. module: base +#: view:ir.module.module:0 +msgid "Extra" +msgstr "" + +#. module: base +#: code:addons/orm.py:2526 +#, python-format +msgid "Invalid group_by" +msgstr "" + +#. module: base +#: field:ir.module.category,child_ids:0 +msgid "Child Applications" +msgstr "" + +#. module: base +#: field:res.partner,credit_limit:0 +msgid "Credit Limit" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_web_graph +msgid "Openerp web graph view" +msgstr "" + +#. module: base +#: field:ir.model.data,date_update:0 +msgid "Update Date" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_base_action_rule +msgid "Automated Action Rules" +msgstr "" + +#. module: base +#: view:ir.attachment:0 +msgid "Owner" +msgstr "" + +#. module: base +#: field:ir.actions.act_window,src_model:0 +msgid "Source Object" +msgstr "" + +#. module: base +#: model:res.partner.bank.type,format_layout:base.bank_normal +msgid "%(bank_name)s: %(acc_number)s" +msgstr "" + +#. module: base +#: view:ir.actions.todo:0 +msgid "Config Wizard Steps" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_ui_view_sc +msgid "ir.ui.view_sc" +msgstr "" + +#. module: base +#: field:res.widget.user,widget_id:0 +#: field:res.widget.wizard,widgets_list:0 +msgid "Widget" +msgstr "" + +#. module: base +#: view:ir.model.access:0 +#: field:ir.model.access,group_id:0 +msgid "Group" +msgstr "" + +#. module: base +#: constraint:res.lang:0 +msgid "" +"Invalid date/time format directive specified. Please refer to the list of " +"allowed directives, displayed when you edit a language." +msgstr "" + +#. module: base +#: code:addons/orm.py:3895 +#, python-format +msgid "" +"One of the records you are trying to modify has already been deleted " +"(Document type: %s)." +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_pad_project +msgid "Specifications on PADs" +msgstr "" + +#. module: base +#: help:ir.filters,user_id:0 +msgid "" +"The user this filter is available to. When left empty the filter is usable " +"by the system only." +msgstr "" + +#. module: base +#: help:res.partner,website:0 +msgid "Website of Partner." +msgstr "" + +#. module: base +#: help:ir.actions.act_window,views:0 +msgid "" +"This function field computes the ordered list of views that should be " +"enabled when displaying the result of an action, federating view mode, views " +"and reference view. The result is returned as an ordered list of pairs " +"(view_id,view_mode)." +msgstr "" + +#. module: base +#: model:res.country,name:base.tv +msgid "Tuvalu" +msgstr "" + +#. module: base +#: selection:ir.model,state:0 +msgid "Custom Object" +msgstr "" + +#. module: base +#: field:res.lang,date_format:0 +msgid "Date Format" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_base_report_designer +msgid "OpenOffice Report Designer" +msgstr "" + +#. module: base +#: field:res.bank,email:0 +#: field:res.partner.address,email:0 +msgid "E-Mail" +msgstr "" + +#. module: base +#: model:res.country,name:base.an +msgid "Netherlands Antilles" +msgstr "" + +#. module: base +#: model:res.country,name:base.ro +msgid "Romania" +msgstr "" + +#. module: base +#: code:addons/base/res/res_users.py:396 +#, python-format +msgid "" +"You can not remove the admin user as it is used internally for resources " +"created by OpenERP (updates, module installation, ...)" +msgstr "" + +#. module: base +#: view:ir.values:0 +msgid "Action Binding" +msgstr "" + +#. module: base +#: model:res.country,name:base.gf +msgid "French Guyana" +msgstr "" + +#. module: base +#: field:ir.ui.view.custom,ref_id:0 +msgid "Original View" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Bosnian / bosanski jezik" +msgstr "" + +#. module: base +#: help:ir.actions.report.xml,attachment_use:0 +msgid "" +"If you check this, then the second time the user prints with same attachment " +"name, it returns the previous report." +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_sale_layout +msgid "Sales Orders Print Layout" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Spanish (VE) / Español (VE)" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_hr_timesheet_invoice +msgid "Invoice on Timesheets" +msgstr "" + +#. module: base +#: view:base.module.upgrade:0 +msgid "Your system will be updated." +msgstr "" + +#. module: base +#: field:ir.actions.todo,note:0 +#: selection:ir.property,type:0 +msgid "Text" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_account_followup +msgid "" +"\n" +"Module to automate letters for unpaid invoices, with multi-level recalls.\n" +"==========================================================================\n" +"\n" +"You can define your multiple levels of recall through the menu:\n" +" Accounting/Configuration/Miscellaneous/Follow-Ups\n" +"\n" +"Once it is defined, you can automatically print recalls every day through " +"simply clicking on the menu:\n" +" Accounting/Periodical Processing/Billing/Send followups\n" +"\n" +"It will generate a PDF with all the letters according to the the\n" +"different levels of recall defined. You can define different policies\n" +"for different companies. You can also send mail to the customer.\n" +"\n" +"Note that if you want to check the followup level for a given " +"partner/account entry, you can do from in the menu:\n" +" Accounting/Reporting/Generic Reporting/Partners/Follow-ups Sent\n" +"\n" +msgstr "" + +#. module: base +#: field:res.country,name:0 +msgid "Country Name" +msgstr "" + +#. module: base +#: model:res.country,name:base.co +msgid "Colombia" +msgstr "" + +#. module: base +#: code:addons/orm.py:1390 +#, python-format +msgid "Key/value '%s' not found in selection field '%s'" +msgstr "" + +#. module: base +#: help:res.country,code:0 +msgid "" +"The ISO country code in two chars.\n" +"You can use this field for quick search." +msgstr "" + +#. module: base +#: model:res.country,name:base.pw +msgid "Palau" +msgstr "" + +#. module: base +#: view:res.partner:0 +msgid "Sales & Purchases" +msgstr "" + +#. module: base +#: view:ir.translation:0 +msgid "Untranslated" +msgstr "" + +#. module: base +#: help:ir.actions.act_window,context:0 +msgid "" +"Context dictionary as Python expression, empty by default (Default: {})" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.ir_action_wizard +#: view:ir.actions.wizard:0 +#: model:ir.ui.menu,name:base.menu_ir_action_wizard +msgid "Wizards" +msgstr "" + +#. module: base +#: model:res.partner.category,name:base.res_partner_category_miscellaneoussuppliers0 +msgid "Miscellaneous Suppliers" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_model.py:287 +#, python-format +msgid "Custom fields must have a name that starts with 'x_' !" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_mx +msgid "Mexico - Accounting" +msgstr "" + +#. module: base +#: help:ir.actions.server,action_id:0 +msgid "Select the Action Window, Report, Wizard to be executed." +msgstr "" + +#. module: base +#: model:res.country,name:base.ai +msgid "Anguilla" +msgstr "" + +#. module: base +#: view:base.language.export:0 +msgid "Export done" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_plugin_outlook +msgid "Outlook Plug-In" +msgstr "" + +#. module: base +#: view:ir.model:0 +#: field:ir.model,name:0 +msgid "Model Description" +msgstr "" + +#. module: base +#: help:ir.actions.act_window,src_model:0 +msgid "" +"Optional model name of the objects on which this action should be visible" +msgstr "" + +#. module: base +#: field:workflow.transition,trigger_expr_id:0 +msgid "Trigger Expression" +msgstr "" + +#. module: base +#: model:res.country,name:base.jo +msgid "Jordan" +msgstr "" + +#. module: base +#: help:ir.cron,nextcall:0 +msgid "Next planned execution date for this job." +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_model.py:139 +#, python-format +msgid "You can not remove the model '%s' !" +msgstr "" + +#. module: base +#: model:res.country,name:base.er +msgid "Eritrea" +msgstr "" + +#. module: base +#: sql_constraint:res.company:0 +msgid "The company name must be unique !" +msgstr "" + +#. module: base +#: view:res.config:0 +#: view:res.config.installer:0 +msgid "description" +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.menu_base_action_rule +#: model:ir.ui.menu,name:base.menu_base_action_rule_admin +msgid "Automated Actions" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_ro +msgid "Romania - Accounting" +msgstr "" + +#. module: base +#: view:partner.wizard.ean.check:0 +msgid "Want to check Ean ? " +msgstr "" + +#. module: base +#: help:ir.actions.server,mobile:0 +msgid "" +"Provides fields that be used to fetch the mobile number, e.g. you select the " +"invoice, then `object.invoice_address_id.mobile` is the field which gives " +"the correct mobile number" +msgstr "" + +#. module: base +#: view:ir.mail_server:0 +msgid "Security and Authentication" +msgstr "" + +#. module: base +#: view:base.language.export:0 +msgid "" +"OpenERP translations (core, modules, clients) are managed through " +"Launchpad.net, our open source project management facility. We use their " +"online interface to synchronize all translations efforts." +msgstr "" + +#. module: base +#: help:ir.actions.todo,type:0 +msgid "" +"Manual: Launched manually.\n" +"Automatic: Runs whenever the system is reconfigured.\n" +"Launch Manually Once: after hacing been launched manually, it sets " +"automatically to Done." +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Swedish / svenska" +msgstr "" + +#. module: base +#: model:res.country,name:base.rs +msgid "Serbia" +msgstr "" + +#. module: base +#: selection:ir.translation,type:0 +msgid "Wizard View" +msgstr "" + +#. module: base +#: model:res.country,name:base.kh +msgid "Cambodia, Kingdom of" +msgstr "" + +#. module: base +#: field:base.language.import,overwrite:0 +#: field:base.language.install,overwrite:0 +msgid "Overwrite Existing Terms" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_base_language_import +msgid "Language Import" +msgstr "" + +#. module: base +#: help:ir.cron,interval_number:0 +msgid "Repeat every x." +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Albanian / Shqip" +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.menu_crm_config_opportunity +msgid "Opportunities" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_base_language_export +msgid "base.language.export" +msgstr "" + +#. module: base +#: help:ir.actions.server,write_id:0 +msgid "" +"Provide the field name that the record id refers to for the write operation. " +"If it is empty it will refer to the active id of the object." +msgstr "" + +#. module: base +#: help:ir.actions.report.xml,report_type:0 +msgid "Report Type, e.g. pdf, html, raw, sxw, odt, html2html, mako2html, ..." +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_document_webdav +msgid "Shared Repositories (WebDAV)" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_import_google +msgid "" +"The module adds google contact in partner address and add google calendar " +"events details in Meeting" +msgstr "" + +#. module: base +#: view:res.users:0 +msgid "Email Preferences" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_audittrail +msgid "" +"\n" +"This module lets administrator track every user operation on all the objects " +"of the system.\n" +"=============================================================================" +"==============\n" +"\n" +"The administrator can subscribe to rules for read, write and\n" +"delete on objects and can check logs.\n" +" " +msgstr "" + +#. module: base +#: model:res.partner.category,name:base.res_partner_category_4 +msgid "Basic Partner" +msgstr "" + +#. module: base +#: report:ir.module.reference.graph:0 +msgid "," +msgstr "" + +#. module: base +#: view:res.partner:0 +msgid "My Partners" +msgstr "" + +#. module: base +#: view:ir.actions.report.xml:0 +msgid "XML Report" +msgstr "" + +#. module: base +#: model:res.country,name:base.es +msgid "Spain" +msgstr "" + +#. module: base +#: view:base.module.update:0 +msgid "Please be patient, as this operation may take a few seconds..." +msgstr "" + +#. module: base +#: help:ir.actions.act_window,domain:0 +msgid "" +"Optional domain filtering of the destination data, as a Python expression" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_view_base_module_upgrade +#: model:ir.model,name:base.model_base_module_upgrade +msgid "Module Upgrade" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Spanish (UY) / Español (UY)" +msgstr "" + +#. module: base +#: field:res.partner,mobile:0 +#: field:res.partner.address,mobile:0 +msgid "Mobile" +msgstr "" + +#. module: base +#: model:res.country,name:base.om +msgid "Oman" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_mrp +msgid "MRP" +msgstr "" + +#. module: base +#: report:ir.module.reference.graph:0 +msgid "1cm 28cm 20cm 28cm" +msgstr "" + +#. module: base +#: model:res.country,name:base.nu +msgid "Niue" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_membership +msgid "Membership Management" +msgstr "" + +#. module: base +#: selection:ir.module.module,license:0 +msgid "Other OSI Approved Licence" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.act_menu_create +#: view:wizard.ir.model.menu.create:0 +msgid "Create Menu" +msgstr "" + +#. module: base +#: model:res.country,name:base.in +msgid "India" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.res_request_link-act +#: model:ir.ui.menu,name:base.menu_res_request_link_act +msgid "Request Reference Types" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_google_base_account +msgid "Google Users" +msgstr "" + +#. module: base +#: help:ir.server.object.lines,value:0 +msgid "" +"Expression containing a value specification. \n" +"When Formula type is selected, this field may be a Python expression that " +"can use the same values as for the condition field on the server action.\n" +"If Value type is selected, the value will be used directly without " +"evaluation." +msgstr "" + +#. module: base +#: model:res.country,name:base.ad +msgid "Andorra, Principality of" +msgstr "" + +#. module: base +#: field:res.partner.category,child_ids:0 +msgid "Child Categories" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_config_parameter +msgid "ir.config_parameter" +msgstr "" + +#. module: base +#: selection:base.language.export,format:0 +msgid "TGZ Archive" +msgstr "" + +#. module: base +#: view:res.groups:0 +msgid "" +"Users added to this group are automatically added in the following groups." +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "%B - Full month name." +msgstr "" + +#. module: base +#: field:ir.actions.todo,type:0 +#: view:ir.attachment:0 +#: field:ir.attachment,type:0 +#: field:ir.model,state:0 +#: field:ir.model.fields,state:0 +#: field:ir.property,type:0 +#: field:ir.server.object.lines,type:0 +#: field:ir.translation,type:0 +#: view:ir.ui.view:0 +#: view:ir.values:0 +#: field:ir.values,key:0 +#: view:res.partner:0 +#: view:res.partner.address:0 +msgid "Type" +msgstr "" + +#. module: base +#: field:ir.mail_server,smtp_user:0 +msgid "Username" +msgstr "" + +#. module: base +#: code:addons/orm.py:398 +#, python-format +msgid "" +"Language with code \"%s\" is not defined in your system !\n" +"Define it through the Administration menu." +msgstr "" + +#. module: base +#: model:res.country,name:base.gu +msgid "Guam (USA)" +msgstr "" + +#. module: base +#: code:addons/base/res/res_users.py:558 +#, python-format +msgid "Setting empty passwords is not allowed for security reasons!" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_mail_server.py:192 +#, python-format +msgid "Connection test failed!" +msgstr "" + +#. module: base +#: selection:ir.actions.server,state:0 +#: selection:workflow.activity,kind:0 +msgid "Dummy" +msgstr "" + +#. module: base +#: constraint:ir.ui.view:0 +msgid "Invalid XML for View Architecture!" +msgstr "" + +#. module: base +#: model:res.country,name:base.ky +msgid "Cayman Islands" +msgstr "" + +#. module: base +#: model:res.country,name:base.kr +msgid "South Korea" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_workflow_transition_form +#: model:ir.ui.menu,name:base.menu_workflow_transition +#: view:workflow.activity:0 +msgid "Transitions" +msgstr "" + +#. module: base +#: code:addons/orm.py:4615 +#, python-format +msgid "Record #%d of %s not found, cannot copy!" +msgstr "" + +#. module: base +#: field:ir.module.module,contributors:0 +msgid "Contributors" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_project_planning +msgid "" +"Keep track of your planning\n" +"This module helps you to manage your plannings.\n" +"===============================================\n" +"\n" +"This module is based on the analytic accounting and is totally integrated " +"with\n" +"* the timesheets encoding\n" +"* the holidays management\n" +"* the project management\n" +"\n" +"So that, each department manager can know if someone in his team has still " +"unallocated time for a given planning (taking in consideration the validated " +"leaves) or if he still needs to encode tasks.\n" +"\n" +"At the end of the month, the planning manager can also check if the encoded " +"timesheets are respecting the planned time on each analytic account.\n" +msgstr "" + +#. module: base +#: selection:ir.property,type:0 +msgid "Char" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Slovak / Slovenský jazyk" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Spanish (AR) / Español (AR)" +msgstr "" + +#. module: base +#: model:res.country,name:base.ug +msgid "Uganda" +msgstr "" + +#. module: base +#: field:ir.model.access,perm_unlink:0 +msgid "Delete Access" +msgstr "" + +#. module: base +#: model:res.country,name:base.ne +msgid "Niger" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Chinese (HK)" +msgstr "" + +#. module: base +#: model:res.country,name:base.ba +msgid "Bosnia-Herzegovina" +msgstr "" + +#. module: base +#: view:base.language.export:0 +msgid "" +"To improve or expand the official translations, you should use directly " +"Lauchpad's web interface (Rosetta). If you need to perform mass translation, " +"Launchpad also allows uploading full .po files at once" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Spanish (GT) / Español (GT)" +msgstr "" + +#. module: base +#: field:ir.mail_server,smtp_port:0 +msgid "SMTP Port" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_import_sugarcrm +msgid "SugarCRM Import" +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "" +"%W - Week number of the year (Monday as the first day of the week) as a " +"decimal number [00,53]. All days in a new year preceding the first Monday " +"are considered to be in week 0." +msgstr "" + +#. module: base +#: code:addons/base/module/wizard/base_language_install.py:55 +#, python-format +msgid "Language Pack" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_web_tests +msgid "Tests" +msgstr "" + +#. module: base +#: field:ir.ui.view_sc,res_id:0 +msgid "Resource Ref." +msgstr "" + +#. module: base +#: model:res.country,name:base.gs +msgid "S. Georgia & S. Sandwich Isls." +msgstr "" + +#. module: base +#: field:ir.actions.url,url:0 +msgid "Action URL" +msgstr "" + +#. module: base +#: field:base.module.import,module_name:0 +msgid "Module Name" +msgstr "" + +#. module: base +#: model:res.country,name:base.mh +msgid "Marshall Islands" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_model.py:368 +#, python-format +msgid "Changing the model of a field is forbidden!" +msgstr "" + +#. module: base +#: model:res.country,name:base.ht +msgid "Haiti" +msgstr "" + +#. module: base +#: view:ir.ui.view:0 +#: selection:ir.ui.view,type:0 +msgid "Search" +msgstr "" + +#. module: base +#: code:addons/osv.py:132 +#, python-format +msgid "" +"The operation cannot be completed, probably due to the following:\n" +"- deletion: you may be trying to delete a record while other records still " +"reference it\n" +"- creation/update: a mandatory field is not correctly set" +msgstr "" + +#. module: base +#: field:ir.module.category,parent_id:0 +msgid "Parent Application" +msgstr "" + +#. module: base +#: code:addons/base/res/res_users.py:222 +#, python-format +msgid "Operation Canceled" +msgstr "" + +#. module: base +#: help:base.language.export,lang:0 +msgid "To export a new language, do not select a language." +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_document +#: model:ir.module.module,shortdesc:base.module_knowledge +msgid "Document Management System" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_crm_claim +msgid "Claims Management" +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.menu_purchase_root +msgid "Purchases" +msgstr "" + +#. module: base +#: model:res.country,name:base.md +msgid "Moldavia" +msgstr "" + +#. module: base +#: view:ir.module.module:0 +msgid "Features" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,help:base.bank_account_update +msgid "" +"Configure your company's bank accounts and select those that must appear on " +"the report footer. You can reorder bank accounts from the list view. If you " +"use the accounting application of OpenERP, journals and accounts will be " +"created automatically based on these data." +msgstr "" + +#. module: base +#: view:ir.module.module:0 +#: report:ir.module.reference.graph:0 +msgid "Version" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_sale_order_dates +msgid "" +"\n" +"Add additional date information to the sales order.\n" +"===================================================\n" +"\n" +"You can add the following additional dates to a sale order:\n" +" * Requested Date\n" +" * Commitment Date\n" +" * Effective Date\n" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_account_sequence +msgid "Entries Sequence Numbering" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_exports +msgid "ir.exports" +msgstr "" + +#. module: base +#: code:addons/base/module/wizard/base_update_translations.py:38 +#, python-format +msgid "No language with code \"%s\" exists" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_document +msgid "" +"\n" +"This is a complete document management system.\n" +"==============================================\n" +"\n" +" * User Authentication\n" +" * Document Indexation :- .pptx and .docx files are not supported in " +"Windows platform.\n" +" * Dashboard for Document that includes:\n" +" * New Files (list)\n" +" * Files by Resource Type (graph)\n" +" * Files by Partner (graph)\n" +" * Files Size by Month (graph)\n" +"\n" +"ATTENTION:\n" +" - When you install this module in a running company that have already " +"PDF files stored into the database,\n" +" you will lose them all.\n" +" - After installing this module PDF's are no longer stored into the " +"database,\n" +" but in the servers rootpad like /server/bin/filestore.\n" +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "%Y - Year with century." +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_web_gantt +msgid "" +"\n" +" OpenERP Web gantt chart view.\n" +" " +msgstr "" + +#. module: base +#: report:ir.module.reference.graph:0 +msgid "-" +msgstr "" + +#. module: base +#: view:publisher_warranty.contract.wizard:0 +msgid "" +"This wizard helps you register a publisher warranty contract in your OpenERP " +"system. After the contract has been registered, you will be able to send " +"issues directly to OpenERP." +msgstr "" + +#. module: base +#: view:wizard.ir.model.menu.create:0 +msgid "Create _Menu" +msgstr "" + +#. module: base +#: field:res.payterm,name:0 +msgid "Payment Term (short name)" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_res_bank +#: view:res.bank:0 +#: field:res.partner.bank,bank:0 +msgid "Bank" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_exports_line +msgid "ir.exports.line" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_html_view +msgid "" +"\n" +"This is the test module which shows HTML tag support in normal XML form " +"view.\n" +"=============================================================================" +"\n" +"\n" +"Creates a sample form-view using HTML tags. It is visible only in OpenERP " +"Web.\n" +" " +msgstr "" + +#. module: base +#: model:ir.module.category,description:base.module_category_purchase_management +msgid "" +"Helps you manage your purchase-related processes such as requests for " +"quotations, supplier invoices, etc..." +msgstr "" + +#. module: base +#: help:base.language.install,overwrite:0 +msgid "" +"If you check this box, your customized translations will be overwritten and " +"replaced by the official ones." +msgstr "" + +#. module: base +#: field:ir.actions.report.xml,report_rml:0 +msgid "Main report file path" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.ir_action_report_xml +#: field:ir.module.module,reports_by_module:0 +#: model:ir.ui.menu,name:base.menu_ir_action_report_xml +msgid "Reports" +msgstr "" + +#. module: base +#: help:ir.actions.act_window.view,multi:0 +#: help:ir.actions.report.xml,multi:0 +msgid "" +"If set to true, the action will not be displayed on the right toolbar of a " +"form view." +msgstr "" + +#. module: base +#: field:workflow,on_create:0 +msgid "On Create" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_model.py:681 +#, python-format +msgid "" +"'%s' contains too many dots. XML ids should not contain dots ! These are " +"used to refer to other modules data, as in module.reference_id" +msgstr "" + +#. module: base +#: field:partner.sms.send,user:0 +#: field:res.users,login:0 +msgid "Login" +msgstr "" + +#. module: base +#: view:base.update.translations:0 +#: model:ir.actions.act_window,name:base.action_wizard_update_translations +#: model:ir.ui.menu,name:base.menu_wizard_update_translations +msgid "Synchronize Terms" +msgstr "" + +#. module: base +#: view:ir.actions.server:0 +msgid "" +"Access all the fields related to the current object using expressions, i.e. " +"object.partner_id.name " +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_event +msgid "" +"\n" +"Organization and management of Events.\n" +"======================================\n" +"\n" +"This module allows you\n" +" * to manage your events and their registrations\n" +" * to use emails to automatically confirm and send acknowledgements for " +"any registration to an event\n" +" * ...\n" +"\n" +"Note that:\n" +" - You can define new types of events in\n" +" Association / Configuration / Types of Events\n" +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.menu_tools +msgid "Tools" +msgstr "" + +#. module: base +#: selection:ir.property,type:0 +msgid "Float" +msgstr "" + +#. module: base +#: model:ir.module.category,name:base.module_category_warehouse_management +#: model:ir.module.module,shortdesc:base.module_stock +msgid "Warehouse Management" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_res_request_link +msgid "res.request.link" +msgstr "" + +#. module: base +#: field:ir.actions.wizard,name:0 +msgid "Wizard Info" +msgstr "" + +#. module: base +#: view:base.language.export:0 +#: model:ir.actions.act_window,name:base.action_wizard_lang_export +#: model:ir.ui.menu,name:base.menu_wizard_lang_export +msgid "Export Translation" +msgstr "" + +#. module: base +#: help:res.log,secondary:0 +msgid "" +"Do not display this log if it belongs to the same object the user is working " +"on" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_lu +msgid "Luxembourg - Accounting" +msgstr "" + +#. module: base +#: model:res.country,name:base.tp +msgid "East Timor" +msgstr "" + +#. module: base +#: model:res.company,follow_up_msg:base.main_company +msgid "" +"Date : %(date)s\n" +"\n" +"Dear %(partner_name)s,\n" +"\n" +"Please find in attachment a reminder of all your unpaid invoices, for a " +"total amount due of:\n" +"\n" +"%(followup_amount).2f %(company_currency)s\n" +"\n" +"Thanks,\n" +"--\n" +"%(user_signature)s\n" +"%(company_name)s" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_share +msgid "" +"\n" +"This module adds generic sharing tools to your current OpenERP database.\n" +"========================================================================\n" +"\n" +"It specifically adds a 'share' button that is available in the Web client " +"to\n" +"share any kind of OpenERP data with colleagues, customers, friends, etc.\n" +"\n" +"The system will work by creating new users and groups on the fly, and by\n" +"combining the appropriate access rights and ir.rules to ensure that the\n" +"shared users only have access to the data that has been shared with them.\n" +"\n" +"This is extremely useful for collaborative work, knowledge sharing,\n" +"synchronization with other companies, etc.\n" +"\n" +" " +msgstr "" + +#. module: base +#: field:res.currency,accuracy:0 +msgid "Computational Accuracy" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_lunch +msgid "" +"\n" +" The base module to manage lunch\n" +"\n" +" keep track for the Lunch Order ,Cash Moves ,CashBox ,Product.\n" +" Apply Different Category for the product.\n" +" " +msgstr "" + +#. module: base +#: model:res.country,name:base.kg +msgid "Kyrgyz Republic (Kyrgyzstan)" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_wizard_ir_model_menu_create_line +msgid "wizard.ir.model.menu.create.line" +msgstr "" + +#. module: base +#: field:ir.attachment,res_id:0 +msgid "Attached ID" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_base_vat +msgid "" +"\n" +"VAT validation for Partners' VAT numbers\n" +"========================================\n" +"\n" +"After installing this module, values entered in the VAT field of Partners " +"will\n" +"be validated for all supported countries. The country is inferred from the\n" +"2-letter country code that prefixes the VAT number, e.g. ``BE0477472701``\n" +"will be validated using the Belgian rules.\n" +"\n" +"There are two different levels of VAT number validation:\n" +"\n" +" * By default, a simple off-line check is performed using the known " +"validation\n" +" rules for the country, usually a simple check digit. This is quick and \n" +" always available, but allows numbers that are perhaps not truly " +"allocated,\n" +" or not valid anymore.\n" +" * When the \"VAT VIES Check\" option is enabled (in the configuration of " +"the user's\n" +" Company), VAT numbers will be instead submitted to the online EU VIES\n" +" database, which will truly verify that the number is valid and currently\n" +" allocated to a EU company. This is a little bit slower than the simple\n" +" off-line check, requires an Internet connection, and may not be " +"available\n" +" all the time. If the service is not available or does not support the\n" +" requested country (e.g. for non-EU countries), a simple check will be " +"performed\n" +" instead.\n" +"\n" +"Supported countries currently include EU countries, and a few non-EU " +"countries\n" +"such as Chile, Colombia, Mexico, Norway or Russia. For unsupported " +"countries,\n" +"only the country code will be validated.\n" +"\n" +" " +msgstr "" + +#. module: base +#: view:ir.sequence:0 +msgid "Day: %(day)s" +msgstr "" + +#. module: base +#: model:ir.module.category,description:base.module_category_point_of_sale +msgid "" +"Helps you get the most out of your points of sales with fast sale encoding, " +"simplified payment mode encoding, automatic picking lists generation and " +"more." +msgstr "" + +#. module: base +#: model:res.country,name:base.mv +msgid "Maldives" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_idea +msgid "" +"\n" +"This module allows your user to easily and efficiently participate in " +"enterprise innovation.\n" +"=============================================================================" +"===============\n" +"\n" +"It allows everybody to express ideas about different subjects.\n" +"Then, other users can comment on these ideas and vote for particular ideas.\n" +"Each idea has a score based on the different votes.\n" +"The managers can obtain an easy view of best ideas from all the users.\n" +"Once installed, check the menu 'Ideas' in the 'Tools' main menu." +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_rule +msgid "ir.rule" +msgstr "" + +#. module: base +#: selection:ir.cron,interval_type:0 +msgid "Days" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_web_rpc +msgid "OpenERP Web web" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_html_view +msgid "Html View" +msgstr "" + +#. module: base +#: field:res.currency,position:0 +msgid "Symbol position" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_process +msgid "Enterprise Process" +msgstr "" + +#. module: base +#: help:ir.cron,function:0 +msgid "Name of the method to be called when this job is processed." +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_hr_evaluation +msgid "Employee Appraisals" +msgstr "" + +#. module: base +#: selection:ir.actions.server,state:0 +msgid "Write Object" +msgstr "" + +#. module: base +#: code:addons/base/res/res_company.py:66 +#: code:addons/base/res/res_partner.py:175 +#, python-format +msgid " (copy)" +msgstr "" + +#. module: base +#: field:res.company,rml_footer1:0 +msgid "General Information Footer" +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "7. %H:%M:%S ==> 18:25:20" +msgstr "" + +#. module: base +#: view:res.partner:0 +#: view:res.partner.category:0 +#: field:res.partner.category,partner_ids:0 +msgid "Partners" +msgstr "" + +#. module: base +#: field:res.partner.category,parent_left:0 +msgid "Left parent" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_project_mrp +msgid "Create Tasks on SO" +msgstr "" + +#. module: base +#: field:ir.attachment,res_model:0 +msgid "Attached Model" +msgstr "" + +#. module: base +#: field:res.partner.bank,footer:0 +msgid "Display on Reports" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_cn +msgid "" +"\n" +" 添加中文省份数据\n" +" 科目类型\\会计科目表模板\\增值税\\辅助核算类别\\管理会计凭证簿\\财务会计凭证簿\n" +" ============================================================\n" +" " +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_model_access +msgid "ir.model.access" +msgstr "" + +#. module: base +#: field:ir.cron,priority:0 +#: field:ir.mail_server,sequence:0 +#: field:res.request,priority:0 +#: field:res.request.link,priority:0 +msgid "Priority" +msgstr "" + +#. module: base +#: field:workflow.transition,act_from:0 +msgid "Source Activity" +msgstr "" + +#. module: base +#: view:ir.sequence:0 +msgid "Legend (for prefix, suffix)" +msgstr "" + +#. module: base +#: selection:ir.server.object.lines,type:0 +msgid "Formula" +msgstr "" + +#. module: base +#: code:addons/base/res/res_users.py:396 +#, python-format +msgid "Can not remove root user!" +msgstr "" + +#. module: base +#: model:res.country,name:base.mw +msgid "Malawi" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_ec +msgid "" +"\n" +"This is the base module to manage the accounting chart for Ecuador in " +"OpenERP.\n" +"=============================================================================" +"=\n" +"\n" +"Accounting chart and localization for Ecuador.\n" +" " +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_filters.py:38 +#: code:addons/base/res/res_users.py:80 +#: code:addons/base/res/res_users.py:420 +#, python-format +msgid "%s (copy)" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_account_chart +msgid "Template of Charts of Accounts" +msgstr "" + +#. module: base +#: field:res.partner.address,type:0 +msgid "Address Type" +msgstr "" + +#. module: base +#: view:ir.ui.menu:0 +msgid "Full Path" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_br +msgid "" +"\n" +"Base module for the Brazilian localization\n" +"==========================================\n" +"\n" +"This module consists in:\n" +"\n" +" - Generic Brazilian chart of accounts\n" +" - Brazilian taxes such as:\n" +"\n" +" - IPI\n" +" - ICMS\n" +" - PIS\n" +" - COFINS\n" +" - ISS\n" +" - IR\n" +" - IRPJ\n" +" - CSLL\n" +"\n" +" - Tax Situation Code (CST) required for the electronic fiscal invoicing " +"(NFe)\n" +"\n" +"The field tax_discount has also been added in the account.tax.template and " +"account.tax objects to allow the proper computation of some Brazilian VATs " +"such as ICMS. The chart of account creation wizard has been extended to " +"propagate those new data properly.\n" +"\n" +"It's important to note however that this module lack many implementations to " +"use OpenERP properly in Brazil. Those implementations (such as the " +"electronic fiscal Invoicing which is already operational) are brought by " +"more than 15 additional modules of the Brazilian Launchpad localization " +"project https://launchpad.net/openerp.pt-br-localiz and their dependencies " +"in the extra addons branch. Those modules aim at not breaking with the " +"remarkable OpenERP modularity, this is why they are numerous but small. One " +"of the reasons for maintaining those modules apart is that Brazilian " +"Localization leaders need commit rights agility to complete the localization " +"as companies fund the remaining legal requirements (such as soon fiscal " +"ledgers, accounting SPED, fiscal SPED and PAF ECF that are still missing as " +"September 2011). Those modules are also strictly licensed under AGPL V3 and " +"today don't come with any additional paid permission for online use of " +"'private modules'." +msgstr "" + +#. module: base +#: view:res.request:0 +msgid "References" +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "" +"%U - Week number of the year (Sunday as the first day of the week) as a " +"decimal number [00,53]. All days in a new year preceding the first Sunday " +"are considered to be in week 0." +msgstr "" + +#. module: base +#: view:ir.ui.view:0 +msgid "Advanced" +msgstr "" + +#. module: base +#: model:res.country,name:base.fi +msgid "Finland" +msgstr "" + +#. module: base +#: code:addons/base/res/res_company.py:156 +#, python-format +msgid "Website: " +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.menu_administration +msgid "Settings" +msgstr "" + +#. module: base +#: selection:ir.actions.act_window,view_type:0 +#: selection:ir.actions.act_window.view,view_mode:0 +#: view:ir.ui.view:0 +#: selection:ir.ui.view,type:0 +#: selection:wizard.ir.model.menu.create.line,view_type:0 +msgid "Tree" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_analytic_multicurrency +msgid "Multi-Currency in Analytic" +msgstr "" + +#. module: base +#: view:base.language.export:0 +msgid "https://help.launchpad.net/Translations" +msgstr "" + +#. module: base +#: field:ir.actions.act_window,view_mode:0 +msgid "View Mode" +msgstr "" + +#. module: base +#: help:res.partner.bank,footer:0 +msgid "" +"Display this bank account on the footer of printed documents like invoices " +"and sales orders." +msgstr "" + +#. module: base +#: view:base.language.import:0 +msgid "" +"When using CSV format, please also check that the first line of your file is " +"one of the following:" +msgstr "" + +#. module: base +#: view:res.log:0 +msgid "Logs" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Spanish / Español" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Korean (KP) / 한국어 (KP)" +msgstr "" + +#. module: base +#: view:base.module.update:0 +msgid "" +"This wizard will scan all module repositories on the server side to detect " +"newly added modules as well as any change to existing modules." +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_sale_journal +msgid "" +"\n" +"The sales journal modules allows you to categorise your sales and deliveries " +"(picking lists) between different journals.\n" +"=============================================================================" +"===========================================\n" +"\n" +"This module is very helpful for bigger companies that\n" +"works by departments.\n" +"\n" +"You can use journal for different purposes, some examples:\n" +" * isolate sales of different departments\n" +" * journals for deliveries by truck or by UPS\n" +"\n" +"Journals have a responsible and evolves between different status:\n" +" * draft, open, cancel, done.\n" +"\n" +"Batch operations can be processed on the different journals to\n" +"confirm all sales at once, to validate or invoice packing, ...\n" +"\n" +"It also supports batch invoicing methods that can be configured by partners " +"and sales orders, examples:\n" +" * daily invoicing,\n" +" * monthly invoicing, ...\n" +"\n" +"Some statistics by journals are provided.\n" +" " +msgstr "" + +#. module: base +#: field:res.company,logo:0 +msgid "Logo" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_cr +msgid "Costa Rica - Accounting" +msgstr "" + +#. module: base +#: view:ir.module.module:0 +msgid "Uninstall (beta)" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_hr_expense +msgid "" +"\n" +"This module aims to manage employee's expenses.\n" +"===============================================\n" +"\n" +"The whole workflow is implemented:\n" +" * Draft expense\n" +" * Confirmation of the sheet by the employee\n" +" * Validation by his manager\n" +" * Validation by the accountant and invoice creation\n" +" * Payment of the invoice to the employee\n" +"\n" +"This module also uses the analytic accounting and is compatible with\n" +"the invoice on timesheet module so that you will be able to automatically\n" +"re-invoice your customer's expenses if your work by project.\n" +" " +msgstr "" + +#. module: base +#: field:ir.values,action_id:0 +msgid "Action (change only)" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_subscription +msgid "Recurring Documents" +msgstr "" + +#. module: base +#: model:res.country,name:base.bs +msgid "Bahamas" +msgstr "" + +#. module: base +#: selection:res.request,state:0 +msgid "active" +msgstr "" + +#. module: base +#: code:addons/base/res/res_partner.py:273 +#, python-format +msgid "" +"Couldn't generate the next id because some partners have an alphabetic id !" +msgstr "" + +#. module: base +#: view:ir.attachment:0 +msgid "Attachment" +msgstr "" + +#. module: base +#: model:res.country,name:base.ie +msgid "Ireland" +msgstr "" + +#. module: base +#: field:base.module.update,update:0 +msgid "Number of modules updated" +msgstr "" + +#. module: base +#: field:ir.cron,function:0 +msgid "Method" +msgstr "" + +#. module: base +#: view:res.partner.event:0 +msgid "General Description" +msgstr "" + +#. module: base +#: view:workflow.activity:0 +msgid "Workflow Activity" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,help:base.action_ui_view +msgid "" +"Views allows you to personalize each view of OpenERP. You can add new " +"fields, move fields, rename them or delete the ones that you do not need." +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_base_setup +msgid "Initial Setup Tools" +msgstr "" + +#. module: base +#: field:ir.actions.act_window,groups_id:0 +#: model:ir.actions.act_window,name:base.action_res_groups +#: view:ir.actions.report.xml:0 +#: field:ir.actions.report.xml,groups_id:0 +#: view:ir.actions.todo:0 +#: field:ir.actions.todo,groups_id:0 +#: field:ir.actions.wizard,groups_id:0 +#: view:ir.model:0 +#: field:ir.model.fields,groups:0 +#: field:ir.rule,groups:0 +#: view:ir.ui.menu:0 +#: field:ir.ui.menu,groups_id:0 +#: model:ir.ui.menu,name:base.menu_action_res_groups +#: view:res.groups:0 +#: field:res.users,groups_id:0 +msgid "Groups" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Spanish (CL) / Español (CL)" +msgstr "" + +#. module: base +#: model:res.country,name:base.bz +msgid "Belize" +msgstr "" + +#. module: base +#: help:ir.actions.report.xml,header:0 +msgid "Add or not the corporate RML header" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_hr_recruitment +msgid "" +"\n" +"Manages job positions and the recruitment process.\n" +"==================================================\n" +"\n" +"It's integrated with the survey module to allow you to define interview for " +"different jobs.\n" +"\n" +"This module is integrated with the mail gateway to automatically tracks " +"email\n" +"sent to jobs@YOURCOMPANY.com. It's also integrated with the document " +"management\n" +"system to store and search in your CV base.\n" +" " +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_res_widget_wizard +msgid "Homepage Widgets Management" +msgstr "" + +#. module: base +#: field:res.company,rml_header1:0 +msgid "Report Header / Company Slogan" +msgstr "" + +#. module: base +#: model:res.country,name:base.pl +msgid "Poland" +msgstr "" + +#. module: base +#: help:ir.actions.act_window,view_mode:0 +msgid "" +"Comma-separated list of allowed view modes, such as 'form', 'tree', " +"'calendar', etc. (Default: tree,form)" +msgstr "" + +#. module: base +#: code:addons/orm.py:3615 +#, python-format +msgid "A document was modified since you last viewed it (%s:%d)" +msgstr "" + +#. module: base +#: view:workflow:0 +msgid "Workflow Editor" +msgstr "" + +#. module: base +#: selection:ir.module.module,state:0 +#: selection:ir.module.module.dependency,state:0 +msgid "To be removed" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_sequence +msgid "ir.sequence" +msgstr "" + +#. module: base +#: help:ir.actions.server,expression:0 +msgid "" +"Enter the field/expression that will return the list. E.g. select the sale " +"order in Object, and you can have loop on the sales order line. Expression = " +"`object.order_line`." +msgstr "" + +#. module: base +#: field:ir.mail_server,smtp_debug:0 +msgid "Debugging" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_crm_helpdesk +msgid "" +"\n" +"Helpdesk Management.\n" +"====================\n" +"\n" +"Like records and processing of claims, Helpdesk and Support are good tools\n" +"to trace your interventions. This menu is more adapted to oral " +"communication,\n" +"which is not necessarily related to a claim. Select a customer, add notes\n" +"and categorize your interventions with a channel and a priority level.\n" +" " +msgstr "" + +#. module: base +#: sql_constraint:ir.ui.view_sc:0 +msgid "Shortcut for this menu already exists!" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_resource +msgid "" +"\n" +"Module for resource management.\n" +"===============================\n" +"\n" +"A resource represent something that can be scheduled\n" +"(a developer on a task or a work center on manufacturing orders).\n" +"This module manages a resource calendar associated to every resource.\n" +"It also manages the leaves of every resource.\n" +"\n" +" " +msgstr "" + +#. module: base +#: view:ir.rule:0 +msgid "Groups (no group = global)" +msgstr "" + +#. module: base +#: selection:res.users,view:0 +msgid "Simplified" +msgstr "" + +#. module: base +#: model:res.country,name:base.st +msgid "Saint Tome (Sao Tome) and Principe" +msgstr "" + +#. module: base +#: selection:res.partner.address,type:0 +msgid "Invoice" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Portugese (BR) / Português (BR)" +msgstr "" + +#. module: base +#: model:res.country,name:base.bb +msgid "Barbados" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_base_synchro +msgid "" +"\n" +"Synchronization with all objects.\n" +"=================================\n" +"\n" +"Configure servers and trigger synchronization with its database objects.\n" +msgstr "" + +#. module: base +#: model:res.country,name:base.mg +msgid "Madagascar" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_model.py:116 +#, python-format +msgid "" +"The Object name must start with x_ and not contain any special character !" +msgstr "" + +#. module: base +#: field:ir.actions.configuration.wizard,note:0 +msgid "Next Wizard" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_menu_admin +#: view:ir.ui.menu:0 +#: field:ir.ui.menu,name:0 +msgid "Menu" +msgstr "" + +#. module: base +#: field:res.currency,rate:0 +msgid "Current Rate" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_idea +msgid "Ideas" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_sale_crm +msgid "Opportunity to Quotation" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_sale_analytic_plans +msgid "" +"\n" +"The base module to manage analytic distribution and sales orders.\n" +"=================================================================\n" +"\n" +"Using this module you will be able to link analytic accounts to sales " +"orders.\n" +" " +msgstr "" + +#. module: base +#: field:ir.actions.url,target:0 +msgid "Action Target" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_base_calendar +msgid "Calendar Layer" +msgstr "" + +#. module: base +#: model:ir.actions.report.xml,name:base.report_ir_model_overview +msgid "Model Overview" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_product_margin +msgid "Margins by Products" +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.menu_invoiced +msgid "Invoicing" +msgstr "" + +#. module: base +#: field:ir.ui.view_sc,name:0 +msgid "Shortcut Name" +msgstr "" + +#. module: base +#: help:ir.actions.act_window,limit:0 +msgid "Default limit for the list view" +msgstr "" + +#. module: base +#: model:res.country,name:base.pg +msgid "Papua New Guinea" +msgstr "" + +#. module: base +#: model:res.country,name:base.zw +msgid "Zimbabwe" +msgstr "" + +#. module: base +#: model:res.country,name:base.io +msgid "British Indian Ocean Territory" +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.menu_translation_export +msgid "Import / Export" +msgstr "" + +#. module: base +#: model:ir.actions.todo.category,name:base.category_tools_customization_config +msgid "Tools / Customization" +msgstr "" + +#. module: base +#: field:ir.model.data,res_id:0 +#: field:ir.values,res_id:0 +msgid "Record ID" +msgstr "" + +#. module: base +#: field:ir.actions.server,email:0 +msgid "Email Address" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "French (BE) / Français (BE)" +msgstr "" + +#. module: base +#: view:ir.actions.server:0 +#: field:workflow.activity,action_id:0 +msgid "Server Action" +msgstr "" + +#. module: base +#: help:ir.actions.client,params:0 +msgid "Arguments sent to the client along withthe view tag" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_project_gtd +msgid "" +"\n" +"This module implements all concepts defined by the Getting Things Done " +"methodology.\n" +"=============================================================================" +"======\n" +"\n" +"This module implements a simple personnal Todo list based on tasks. It adds " +"in\n" +"the project application an editable list of tasks simplified to the minimum\n" +"required fields.\n" +"\n" +"The todo list is based on the GTD methodology. This world-wide used " +"methodology\n" +"is used for personal time management improvement.\n" +"\n" +"Getting Things Done (commonly abbreviated as GTD) is an action management\n" +"method created by David Allen, and described in a book of the same name.\n" +"\n" +"GTD rests on the principle that a person needs to move tasks out of the mind " +"by\n" +"recording them externally. That way, the mind is freed from the job of\n" +"remembering everything that needs to be done, and can concentrate on " +"actually\n" +"performing those tasks.\n" +" " +msgstr "" + +#. module: base +#: model:res.country,name:base.tt +msgid "Trinidad and Tobago" +msgstr "" + +#. module: base +#: model:res.country,name:base.lv +msgid "Latvia" +msgstr "" + +#. module: base +#: view:partner.sms.send:0 +msgid "SMS - Gateway: clickatell" +msgstr "" + +#. module: base +#: view:ir.actions.server:0 +msgid "Field Mappings" +msgstr "" + +#. module: base +#: code:addons/base/publisher_warranty/publisher_warranty.py:125 +#: code:addons/base/publisher_warranty/publisher_warranty.py:163 +#, python-format +msgid "Error during communication with the publisher warranty server." +msgstr "" + +#. module: base +#: model:res.groups,name:base.group_sale_manager +#: model:res.groups,name:base.group_tool_manager +msgid "Manager" +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.menu_custom +msgid "Customization" +msgstr "" + +#. module: base +#: model:res.country,name:base.py +msgid "Paraguay" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_actions_act_window_close +msgid "ir.actions.act_window_close" +msgstr "" + +#. module: base +#: field:ir.server.object.lines,col1:0 +msgid "Destination" +msgstr "" + +#. module: base +#: model:res.country,name:base.lt +msgid "Lithuania" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_view_partner_clear_ids +#: model:ir.model,name:base.model_partner_clear_ids +#: view:partner.clear.ids:0 +msgid "Clear IDs" +msgstr "" + +#. module: base +#: view:res.groups:0 +msgid "Inherited" +msgstr "" + +#. module: base +#: field:ir.model.fields,serialization_field_id:0 +msgid "Serialization Field" +msgstr "" + +#. module: base +#: model:ir.module.category,description:base.module_category_report_designer +msgid "" +"Lets you install various tools to simplify and enhance OpenERP's report " +"creation." +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "%y - Year without century [00,99]." +msgstr "" + +#. module: base +#: code:addons/base/res/res_company.py:155 +#, python-format +msgid "Fax: " +msgstr "" + +#. module: base +#: model:res.country,name:base.si +msgid "Slovenia" +msgstr "" + +#. module: base +#: help:res.currency,name:0 +msgid "Currency Code (ISO 4217)" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.res_log_act_window +#: model:ir.ui.menu,name:base.menu_res_log_act_window +msgid "Client Logs" +msgstr "" + +#. module: base +#: code:addons/orm.py:1883 +#: code:addons/orm.py:1894 +#, python-format +msgid "Invalid Object Architecture!" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_model.py:311 +#: code:addons/base/ir/ir_model.py:313 +#: code:addons/base/ir/ir_model.py:343 +#: code:addons/base/ir/ir_model.py:357 +#: code:addons/base/ir/ir_model.py:359 +#: code:addons/base/ir/ir_model.py:361 +#: code:addons/base/ir/ir_model.py:368 +#: code:addons/base/ir/ir_model.py:371 +#: code:addons/base/module/wizard/base_update_translations.py:38 +#, python-format +msgid "Error!" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_fr_rib +msgid "French RIB Bank Details" +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "%p - Equivalent of either AM or PM." +msgstr "" + +#. module: base +#: view:ir.actions.server:0 +msgid "Iteration Actions" +msgstr "" + +#. module: base +#: help:multi_company.default,company_id:0 +msgid "Company where the user is connected" +msgstr "" + +#. module: base +#: field:publisher_warranty.contract,date_stop:0 +msgid "Ending Date" +msgstr "" + +#. module: base +#: model:res.country,name:base.nz +msgid "New Zealand" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_pad_project +msgid "" +"\n" +"This module adds a PAD in all project kanban views\n" +"==================================================\n" +" " +msgstr "" + +#. module: base +#: model:ir.actions.act_window,help:base.action_country +msgid "" +"Display and manage the list of all countries that can be assigned to your " +"partner records. You can create or delete countries to make sure the ones " +"you are working on will be maintained." +msgstr "" + +#. module: base +#: model:res.partner.category,name:base.res_partner_category_7 +msgid "Openstuff.net" +msgstr "" + +#. module: base +#: model:res.country,name:base.nf +msgid "Norfolk Island" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Korean (KR) / 한국어 (KR)" +msgstr "" + +#. module: base +#: help:ir.model.fields,model:0 +msgid "The technical name of the model this field belongs to" +msgstr "" + +#. module: base +#: field:ir.actions.server,action_id:0 +#: selection:ir.actions.server,state:0 +msgid "Client Action" +msgstr "" + +#. module: base +#: model:res.country,name:base.bd +msgid "Bangladesh" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_project_retro_planning +msgid "Project Retro-planning" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_stock_planning +msgid "Master Procurement Schedule" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_module_category +#: field:ir.module.module,application:0 +#: field:res.groups,category_id:0 +msgid "Application" +msgstr "" + +#. module: base +#: selection:publisher_warranty.contract,state:0 +msgid "Valid" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_decimal_precision +msgid "" +"\n" +"Configure the price accuracy you need for different kinds of usage: " +"accounting, sales, purchases, etc.\n" +"=============================================================================" +"=========================\n" +"\n" +"The decimal precision is configured per company.\n" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_pl +msgid "" +"\n" +"This is the module to manage the accounting chart and taxes for Poland in " +"OpenERP.\n" +"=============================================================================" +"=====\n" +"\n" +"To jest moduł do tworzenia wzorcowego planu kont i podstawowych ustawień do " +"podatków\n" +"VAT 0%, 7% i 22%. Moduł ustawia też konta do kupna i sprzedaży towarów " +"zakładając,\n" +"że wszystkie towary są w obrocie hurtowym.\n" +" " +msgstr "" + +#. module: base +#: field:ir.actions.client,params_store:0 +msgid "Params storage" +msgstr "" + +#. module: base +#: code:addons/base/module/module.py:409 +#, python-format +msgid "Can not upgrade module '%s'. It is not installed." +msgstr "" + +#. module: base +#: model:res.country,name:base.cu +msgid "Cuba" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_crm_profiling +msgid "" +"\n" +"This module allows users to perform segmentation within partners.\n" +"=================================================================\n" +"\n" +"It uses the profiles criteria from the earlier segmentation module and " +"improve it. Thanks to the new concept of questionnaire. You can now regroup " +"questions into a questionnaire and directly use it on a partner.\n" +"\n" +"It also has been merged with the earlier CRM & SRM segmentation tool because " +"they were overlapping.\n" +"\n" +" * Note: this module is not compatible with the module segmentation, " +"since it's the same which has been renamed.\n" +" " +msgstr "" + +#. module: base +#: code:addons/report_sxw.py:434 +#, python-format +msgid "Unknown report type: %s" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_model.py:282 +#, python-format +msgid "For selection fields, the Selection Options must be given!" +msgstr "" + +#. module: base +#: model:res.widget,title:base.facebook_widget +msgid "Facebook" +msgstr "" + +#. module: base +#: model:res.country,name:base.am +msgid "Armenia" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.ir_property_form +#: model:ir.ui.menu,name:base.menu_ir_property_form_all +msgid "Configuration Parameters" +msgstr "" + +#. module: base +#: constraint:ir.cron:0 +msgid "Invalid arguments" +msgstr "" + +#. module: base +#: model:res.country,name:base.se +msgid "Sweden" +msgstr "" + +#. module: base +#: selection:ir.actions.act_window.view,view_mode:0 +#: selection:ir.ui.view,type:0 +#: selection:wizard.ir.model.menu.create.line,view_type:0 +msgid "Gantt" +msgstr "" + +#. module: base +#: view:ir.property:0 +msgid "Property" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_res_partner_bank_type +#: field:res.partner.bank,state:0 +#: view:res.partner.bank.type:0 +msgid "Bank Account Type" +msgstr "" + +#. module: base +#: field:base.language.export,config_logo:0 +#: field:base.language.import,config_logo:0 +#: field:base.language.install,config_logo:0 +#: field:base.module.import,config_logo:0 +#: field:base.module.update,config_logo:0 +#: field:base.update.translations,config_logo:0 +#: field:ir.actions.configuration.wizard,config_logo:0 +#: field:ir.wizard.screen,config_logo:0 +#: field:publisher_warranty.contract.wizard,config_logo:0 +#: field:res.config,config_logo:0 +#: field:res.config.installer,config_logo:0 +msgid "Image" +msgstr "" + +#. module: base +#: view:ir.actions.server:0 +msgid "Iteration Action Configuration" +msgstr "" + +#. module: base +#: selection:publisher_warranty.contract,state:0 +msgid "Canceled" +msgstr "" + +#. module: base +#: model:res.country,name:base.at +msgid "Austria" +msgstr "" + +#. module: base +#: view:ir.module.module:0 +msgid "Cancel Install" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_be_invoice_bba +msgid "" +"\n" +" \n" +"Belgian localisation for in- and outgoing invoices (prereq to " +"account_coda):\n" +" - Rename 'reference' field labels to 'Communication'\n" +" - Add support for Belgian Structured Communication\n" +"\n" +"A Structured Communication can be generated automatically on outgoing " +"invoices according to the following algorithms:\n" +" 1) Random : +++RRR/RRRR/RRRDD+++\n" +" R..R = Random Digits, DD = Check Digits\n" +" 2) Date : +++DOY/YEAR/SSSDD+++\n" +" DOY = Day of the Year, SSS = Sequence Number, DD = Check Digits)\n" +" 3) Customer Reference +++RRR/RRRR/SSSDDD+++\n" +" R..R = Customer Reference without non-numeric characters, SSS = " +"Sequence Number, DD = Check Digits) \n" +" \n" +"The preferred type of Structured Communication and associated Algorithm can " +"be specified on the Partner records. \n" +"A 'random' Structured Communication will generated if no algorithm is " +"specified on the Partner record. \n" +"\n" +" " +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_wiki_quality_manual +msgid "Wiki: Quality Manual" +msgstr "" + +#. module: base +#: selection:ir.actions.act_window.view,view_mode:0 +#: model:ir.ui.menu,name:base.menu_calendar_configuration +#: selection:ir.ui.view,type:0 +#: selection:wizard.ir.model.menu.create.line,view_type:0 +msgid "Calendar" +msgstr "" + +#. module: base +#: field:res.partner.address,partner_id:0 +msgid "Partner Name" +msgstr "" + +#. module: base +#: field:workflow.activity,signal_send:0 +msgid "Signal (subflow.*)" +msgstr "" + +#. module: base +#: model:res.partner.category,name:base.res_partner_category_17 +msgid "HR sector" +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.menu_dashboard_admin +msgid "Administration Dashboard" +msgstr "" + +#. module: base +#: code:addons/orm.py:4408 +#, python-format +msgid "" +"Invalid \"order\" specified. A valid \"order\" specification is a comma-" +"separated list of valid field names (optionally followed by asc/desc for the " +"direction)" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_module_module_dependency +msgid "Module dependency" +msgstr "" + +#. module: base +#: selection:publisher_warranty.contract.wizard,state:0 +msgid "Draft" +msgstr "" + +#. module: base +#: selection:res.users,view:0 +msgid "Extended" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,help:base.action_partner_title_contact +msgid "" +"Manage the contact titles you want to have available in your system and the " +"way you want to print them in letters and other documents. Some example: " +"Mr., Mrs. " +msgstr "" + +#. module: base +#: view:ir.model.access:0 +#: view:res.groups:0 +#: field:res.groups,model_access:0 +msgid "Access Controls" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_model.py:237 +#, python-format +msgid "" +"The Selection Options expression is not a valid Pythonic expression.Please " +"provide an expression in the [('key','Label'), ...] format." +msgstr "" + +#. module: base +#: model:res.groups,name:base.group_survey_user +msgid "Survey / User" +msgstr "" + +#. module: base +#: view:ir.module.module:0 +#: field:ir.module.module,dependencies_id:0 +msgid "Dependencies" +msgstr "" + +#. module: base +#: field:multi_company.default,company_id:0 +msgid "Main Company" +msgstr "" + +#. module: base +#: field:ir.ui.menu,web_icon_hover:0 +msgid "Web Icon File (hover)" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_web_diagram +msgid "Openerp web Diagram view" +msgstr "" + +#. module: base +#: model:res.groups,name:base.group_hr_user +msgid "HR Officer" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_hr_contract +msgid "Employee Contracts" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_wiki_faq +msgid "" +"\n" +"This module provides a Wiki FAQ Template.\n" +"=========================================\n" +"\n" +"It provides demo data, thereby creating a Wiki Group and a Wiki Page\n" +"for Wiki FAQ.\n" +" " +msgstr "" + +#. module: base +#: view:ir.actions.server:0 +msgid "" +"If you use a formula type, use a python expression using the variable " +"'object'." +msgstr "" + +#. module: base +#: constraint:res.company:0 +msgid "Error! You can not create recursive companies." +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_res_users +#: field:ir.default,uid:0 +#: model:ir.ui.menu,name:base.menu_action_res_users +#: model:ir.ui.menu,name:base.menu_users +#: view:res.groups:0 +#: field:res.groups,users:0 +#: view:res.users:0 +msgid "Users" +msgstr "" + +#. module: base +#: field:res.partner.address,birthdate:0 +msgid "Birthdate" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_partner_title_contact +#: model:ir.ui.menu,name:base.menu_partner_title_contact +msgid "Contact Titles" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_product_manufacturer +msgid "Products Manufacturers" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_mail_server.py:217 +#, python-format +msgid "SMTP-over-SSL mode unavailable" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_survey +msgid "Survey" +msgstr "" + +#. module: base +#: view:base.language.import:0 +msgid "" +"Please double-check that the file encoding is set to UTF-8 (sometimes called " +"Unicode) when the translator exports it." +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Spanish (DO) / Español (DO)" +msgstr "" + +#. module: base +#: model:res.country,name:base.na +msgid "Namibia" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_workflow_activity +msgid "workflow.activity" +msgstr "" + +#. module: base +#: help:ir.ui.view_sc,res_id:0 +msgid "" +"Reference of the target resource, whose model/table depends on the 'Resource " +"Name' field." +msgstr "" + +#. module: base +#: field:ir.model.fields,select_level:0 +msgid "Searchable" +msgstr "" + +#. module: base +#: model:res.country,name:base.uy +msgid "Uruguay" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_fetchmail_crm +msgid "eMail Gateway for Leads" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Finnish / Suomi" +msgstr "" + +#. module: base +#: field:ir.rule,perm_write:0 +msgid "Apply For Write" +msgstr "" + +#. module: base +#: field:ir.sequence,prefix:0 +msgid "Prefix" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "German / Deutsch" +msgstr "" + +#. module: base +#: view:ir.actions.server:0 +msgid "Fields Mapping" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_web_dashboard +msgid "web Dashboard" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_sale +msgid "" +"\n" +"The base module to manage quotations and sales orders.\n" +"======================================================\n" +"\n" +"Workflow with validation steps:\n" +"-------------------------------\n" +" * Quotation -> Sales order -> Invoice\n" +"\n" +"Invoicing methods:\n" +"------------------\n" +" * Invoice on order (before or after shipping)\n" +" * Invoice on delivery\n" +" * Invoice on timesheets\n" +" * Advance invoice\n" +"\n" +"Partners preferences:\n" +"---------------------\n" +" * shipping\n" +" * invoicing\n" +" * incoterm\n" +"\n" +"Products stocks and prices\n" +"--------------------------\n" +"\n" +"Delivery methods:\n" +"-----------------\n" +" * all at once\n" +" * multi-parcel\n" +" * delivery costs\n" +"\n" +"Dashboard for Sales Manager that includes:\n" +"------------------------------------------\n" +" * Quotations\n" +" * Sales by Month\n" +" * Graph of Sales by Salesman in last 90 days\n" +" * Graph of Sales per Customer in last 90 days\n" +" * Graph of Sales by Product's Category in last 90 days\n" +" " +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Portugese / Português" +msgstr "" + +#. module: base +#: model:res.partner.title,name:base.res_partner_title_sir +msgid "Sir" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_ca +msgid "" +"\n" +"This is the module to manage the English and French - Canadian accounting " +"chart in OpenERP.\n" +"=============================================================================" +"==============\n" +"\n" +"Canadian accounting charts and localizations.\n" +" " +msgstr "" + +#. module: base +#: view:base.module.import:0 +msgid "Select module package to import (.zip file):" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "French / Français" +msgstr "" + +#. module: base +#: model:res.country,name:base.mt +msgid "Malta" +msgstr "" + +#. module: base +#: field:ir.actions.server,fields_lines:0 +msgid "Field Mappings." +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_lu +msgid "" +"\n" +"This is the base module to manage the accounting chart for Luxembourg.\n" +"======================================================================\n" +"\n" +" * the KLUWER Chart of Accounts,\n" +" * the Tax Code Chart for Luxembourg\n" +" * the main taxes used in Luxembourg" +msgstr "" + +#. module: base +#: field:ir.module.module,demo:0 +msgid "Demo data" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_portal +msgid "" +"\n" +"This module defines 'portals' to customize the access to your OpenERP " +"database\n" +"for external users.\n" +"\n" +"A portal defines customized user menu and access rights for a group of " +"users\n" +"(the ones associated to that portal). It also associates user groups to " +"the\n" +"portal users (adding a group in the portal automatically adds it to the " +"portal\n" +"users, etc). That feature is very handy when used in combination with the\n" +"module 'share'.\n" +" " +msgstr "" + +#. module: base +#: selection:res.request,priority:0 +msgid "High" +msgstr "" + +#. module: base +#: field:ir.attachment,description:0 +#: field:ir.mail_server,name:0 +#: field:ir.module.category,description:0 +#: view:ir.module.module:0 +#: field:ir.module.module,description:0 +#: view:res.partner.event:0 +#: field:res.partner.event,description:0 +#: view:res.request:0 +msgid "Description" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_workflow_instance_form +#: model:ir.ui.menu,name:base.menu_workflow_instance +msgid "Instances" +msgstr "" + +#. module: base +#: help:ir.mail_server,smtp_host:0 +msgid "Hostname or IP of SMTP server" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Japanese / 日本語" +msgstr "" + +#. module: base +#: field:ir.actions.report.xml,auto:0 +msgid "Custom python parser" +msgstr "" + +#. module: base +#: view:base.language.import:0 +msgid "_Import" +msgstr "" + +#. module: base +#: selection:ir.translation,type:0 +msgid "XSL" +msgstr "" + +#. module: base +#: field:res.lang,grouping:0 +msgid "Separator Format" +msgstr "" + +#. module: base +#: constraint:res.partner.bank:0 +msgid "The RIB and/or IBAN is not valid" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_report_webkit +msgid "Webkit Report Engine" +msgstr "" + +#. module: base +#: selection:publisher_warranty.contract,state:0 +msgid "Unvalidated" +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.next_id_9 +msgid "Database Structure" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_partner_mass_mail +#: model:ir.model,name:base.model_partner_massmail_wizard +#: view:partner.massmail.wizard:0 +msgid "Mass Mailing" +msgstr "" + +#. module: base +#: model:res.country,name:base.yt +msgid "Mayotte" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_crm_todo +msgid "Tasks on CRM" +msgstr "" + +#. module: base +#: model:ir.module.category,name:base.module_category_generic_modules_accounting +#: view:res.company:0 +msgid "Accounting" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_account_payment +msgid "" +"\n" +"Module to manage invoice payment.\n" +"=================================\n" +"\n" +"This module provides :\n" +"----------------------\n" +"* a more efficient way to manage invoice payment.\n" +"* a basic mechanism to easily plug various automated payment.\n" +" " +msgstr "" + +#. module: base +#: view:ir.rule:0 +msgid "Interaction between rules" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_account_invoice_layout +msgid "" +"\n" +"This module provides some features to improve the layout of the invoices.\n" +"=========================================================================\n" +"\n" +"It gives you the possibility to:\n" +"--------------------------------\n" +" * order all the lines of an invoice\n" +" * add titles, comment lines, sub total lines\n" +" * draw horizontal lines and put page breaks\n" +"\n" +"Moreover, there is one option which allows you to print all the selected " +"invoices with a given special message at the bottom of it. This feature can " +"be very useful for printing your invoices with end-of-year wishes, special " +"punctual conditions.\n" +"\n" +" " +msgstr "" + +#. module: base +#: constraint:res.partner:0 +msgid "Error ! You cannot create recursive associated members." +msgstr "" + +#. module: base +#: view:res.payterm:0 +msgid "Payment Term" +msgstr "" + +#. module: base +#: selection:res.lang,direction:0 +msgid "Right-to-Left" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_res_partner_event +msgid "res.partner.event" +msgstr "" + +#. module: base +#: view:ir.actions.act_window:0 +#: model:ir.actions.act_window,name:base.actions_ir_filters_view +#: view:ir.filters:0 +#: model:ir.model,name:base.model_ir_filters +#: model:ir.ui.menu,name:base.menu_ir_filters +msgid "Filters" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,help:base.open_module_tree +msgid "" +"You can install new modules in order to activate new features, menu, reports " +"or data in your OpenERP instance. To install some modules, click on the " +"button \"Install\" from the form view and then click on \"Start Upgrade\"." +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.ir_cron_act +#: view:ir.cron:0 +#: model:ir.ui.menu,name:base.menu_ir_cron_act +msgid "Scheduled Actions" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_web_chat +msgid "" +"\n" +" OpenERP Web chat module.\n" +" " +msgstr "" + +#. module: base +#: field:res.partner.address,title:0 +#: field:res.partner.title,name:0 +#: field:res.widget,title:0 +msgid "Title" +msgstr "" + +#. module: base +#: help:ir.property,res_id:0 +msgid "If not set, acts as a default value for new resources" +msgstr "" + +#. module: base +#: code:addons/orm.py:3988 +#, python-format +msgid "Recursivity Detected." +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_report_webkit_sample +msgid "Webkit Report Samples" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_point_of_sale +msgid "Point Of Sale" +msgstr "" + +#. module: base +#: code:addons/base/module/module.py:302 +#, python-format +msgid "Recursion error in modules dependencies !" +msgstr "" + +#. module: base +#: view:base.language.install:0 +msgid "" +"This wizard helps you add a new language to your OpenERP system. After " +"loading a new language it becomes available as default interface language " +"for users and partners." +msgstr "" + +#. module: base +#: view:ir.model:0 +msgid "Create a Menu" +msgstr "" + +#. module: base +#: help:res.partner,vat:0 +msgid "" +"Value Added Tax number. Check the box if the partner is subjected to the " +"VAT. Used by the VAT legal statement." +msgstr "" + +#. module: base +#: selection:ir.sequence,implementation:0 +msgid "Standard" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_maintenance_contract +msgid "maintenance.contract" +msgstr "" + +#. module: base +#: model:res.country,name:base.ru +msgid "Russian Federation" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Urdu / اردو" +msgstr "" + +#. module: base +#: field:res.company,name:0 +msgid "Company Name" +msgstr "" + +#. module: base +#: code:addons/orm.py:2683 +#, python-format +msgid "" +"Invalid value for reference field \"%s.%s\" (last part must be a non-zero " +"integer): \"%s\"" +msgstr "" + +#. module: base +#: model:ir.module.category,name:base.module_category_human_resources +msgid "Human Resources" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_country +#: model:ir.ui.menu,name:base.menu_country_partner +msgid "Countries" +msgstr "" + +#. module: base +#: selection:ir.translation,type:0 +msgid "RML (deprecated - use Report)" +msgstr "" + +#. module: base +#: sql_constraint:ir.translation:0 +msgid "Language code of translation item must be among known languages" +msgstr "" + +#. module: base +#: view:ir.rule:0 +msgid "Record rules" +msgstr "" + +#. module: base +#: view:ir.property:0 +msgid "Field Information" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_multilang +msgid "" +"\n" +" * Multi language support for Chart of Accounts, Taxes, Tax Codes , " +"Journals, Accounting Templates,\n" +" Analytic Chart of Accounts and Analytic Journals.\n" +" * Setup wizard changes\n" +" - Copy translations for COA, Tax, Tax Code and Fiscal Position from " +"templates to target objects.\n" +" " +msgstr "" + +#. module: base +#: view:ir.actions.todo:0 +msgid "Search Actions" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_view_partner_wizard_ean_check +#: view:partner.wizard.ean.check:0 +msgid "Ean check" +msgstr "" + +#. module: base +#: field:res.partner,vat:0 +msgid "VAT" +msgstr "RFC" + +#. module: base +#: field:res.users,new_password:0 +msgid "Set password" +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "12. %w ==> 5 ( Friday is the 6th day)" +msgstr "" + +#. module: base +#: constraint:res.partner.category:0 +msgid "Error ! You can not create recursive categories." +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "%x - Appropriate date representation." +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_web_mobile +msgid "" +"\n" +" OpenERP Web mobile.\n" +" " +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "%d - Day of the month [01,31]." +msgstr "" + +#. module: base +#: model:res.country,name:base.tj +msgid "Tajikistan" +msgstr "" + +#. module: base +#: selection:ir.module.module,license:0 +msgid "GPL-2 or later version" +msgstr "" + +#. module: base +#: model:res.partner.title,shortcut:base.res_partner_title_sir +msgid "M." +msgstr "" + +#. module: base +#: code:addons/base/module/module.py:519 +#, python-format +msgid "" +"Can not create the module file:\n" +" %s" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_actions_wizard +#: selection:ir.ui.menu,action:0 +msgid "ir.actions.wizard" +msgstr "" + +#. module: base +#: code:addons/orm.py:3437 +#, python-format +msgid "" +"Operation prohibited by access rules, or performed on an already deleted " +"document (Operation: read, Document type: %s)." +msgstr "" + +#. module: base +#: model:res.country,name:base.nr +msgid "Nauru" +msgstr "" + +#. module: base +#: report:ir.module.reference.graph:0 +msgid "Introspection report on objects" +msgstr "" + +#. module: base +#: code:addons/base/module/module.py:240 +#, python-format +msgid "The certificate ID of the module must be unique !" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_hn +msgid "" +"Agrega una nomenclatura contable para Honduras. También incluye impuestos y " +"la moneda Lempira. -- Adds accounting chart for Honduras. It also includes " +"taxes and the Lempira currency" +msgstr "" + +#. module: base +#: selection:ir.actions.act_window,view_type:0 +#: selection:ir.actions.act_window.view,view_mode:0 +#: view:ir.ui.view:0 +#: selection:ir.ui.view,type:0 +#: selection:wizard.ir.model.menu.create.line,view_type:0 +msgid "Form" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_it +msgid "" +"\n" +"Piano dei conti italiano di un'impresa generica.\n" +"================================================\n" +"\n" +"Italian accounting chart and localization.\n" +" " +msgstr "" + +#. module: base +#: model:res.country,name:base.me +msgid "Montenegro" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_document_ics +msgid "iCal Support" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_fetchmail +msgid "Email Gateway" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_mail_server.py:439 +#, python-format +msgid "" +"Mail delivery failed via SMTP server '%s'.\n" +"%s: %s" +msgstr "" + +#. module: base +#: view:ir.cron:0 +msgid "Technical Data" +msgstr "" + +#. module: base +#: view:res.partner:0 +#: field:res.partner,category_id:0 +msgid "Categories" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_web_mobile +msgid "OpenERP Web mobile" +msgstr "" + +#. module: base +#: view:base.language.import:0 +msgid "" +"If you need another language than the official ones available, you can " +"import a language pack from here. Other OpenERP languages than the official " +"ones can be found on launchpad." +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_account_accountant +msgid "" +"\n" +"Accounting Access Rights.\n" +"=========================\n" +"\n" +"This module gives the admin user the access to all the accounting features\n" +"like the journal items and the chart of accounts.\n" +"\n" +"It assigns manager and user access rights to the Administrator, and only\n" +"user rights to Demo user.\n" +" " +msgstr "" + +#. module: base +#: selection:ir.module.module,state:0 +#: selection:ir.module.module.dependency,state:0 +msgid "To be upgraded" +msgstr "" + +#. module: base +#: model:res.country,name:base.ly +msgid "Libya" +msgstr "" + +#. module: base +#: model:res.country,name:base.cf +msgid "Central African Republic" +msgstr "" + +#. module: base +#: model:res.country,name:base.li +msgid "Liechtenstein" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_web_rpc +msgid "Openerp web web" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_project_issue_sheet +msgid "Timesheet on Issues" +msgstr "" + +#. module: base +#: model:res.partner.title,name:base.res_partner_title_ltd +msgid "Ltd" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_account_voucher +msgid "" +"\n" +"Account Voucher module includes all the basic requirements of Voucher " +"Entries for Bank, Cash, Sales, Purchase, Expanse, Contra, etc.\n" +"=============================================================================" +"=======================================================\n" +"\n" +" * Voucher Entry\n" +" * Voucher Receipt\n" +" * Cheque Register\n" +" " +msgstr "" + +#. module: base +#: field:res.partner,ean13:0 +msgid "EAN13" +msgstr "" + +#. module: base +#: code:addons/orm.py:2134 +#, python-format +msgid "Invalid Architecture!" +msgstr "" + +#. module: base +#: model:res.country,name:base.pt +msgid "Portugal" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_share +msgid "Share any Document" +msgstr "" + +#. module: base +#: field:ir.module.module,certificate:0 +msgid "Quality Certificate" +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "6. %d, %m ==> 05, 12" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_analytic_multicurrency +msgid "" +"\n" +"This improve OpenERP multi-currency handling in analytic accountiong, " +"overall for multi-company.\n" +"\n" +"This module is based on the work made in all c2c_multicost* available on the " +"v5.0 stable version and\n" +"allow you to shar analytic account between company (even if currency differs " +"in each one).\n" +"\n" +"What has been done here:\n" +"\n" +" * Adapt the owner of analytic line (= to company that own the general " +"account associated with en analytic line)\n" +" * Add multi-currency on analytic lines (similar to financial accounting)\n" +" * Correct all \"costs\" indicators into analytic account to base them on " +"the right currency (owner's company)\n" +" * By default, nothing change for single company implementation.\n" +"\n" +"As a result, we can now really share the same analytic account between " +"companies that doesn't have the same \n" +"currency. This setup becomes True, Enjoy !\n" +"\n" +"- Company A : EUR\n" +"- Company B : CHF\n" +"\n" +"- Analytic Account A : USD, owned by Company A\n" +" - Analytic Account B : CHF, owned by Company A\n" +" - Analytic Account C : EUR, owned by Company B\n" +"\n" +"\n" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_it +msgid "Italy - Accounting" +msgstr "" + +#. module: base +#: field:ir.actions.act_window,help:0 +msgid "Action description" +msgstr "" + +#. module: base +#: help:res.partner,customer:0 +msgid "Check this box if the partner is a customer." +msgstr "" + +#. module: base +#: help:ir.module.module,auto_install:0 +msgid "" +"An auto-installable module is automatically installed by the system when all " +"its dependencies are satisfied. If the module has no dependency, it is " +"always installed." +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.res_lang_act_window +#: model:ir.model,name:base.model_res_lang +#: model:ir.ui.menu,name:base.menu_res_lang_act_window +#: view:res.lang:0 +msgid "Languages" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_crm_claim +msgid "" +"\n" +"This modules allows you to track your customers/suppliers claims and " +"grievances.\n" +"=============================================================================" +"===\n" +"\n" +"It is fully integrated with the email gateway so that you can create\n" +"automatically new claims based on incoming emails.\n" +" " +msgstr "" + +#. module: base +#: selection:workflow.activity,join_mode:0 +#: selection:workflow.activity,split_mode:0 +msgid "Xor" +msgstr "" + +#. module: base +#: model:ir.module.category,name:base.module_category_localization_account_charts +msgid "Account Charts" +msgstr "" + +#. module: base +#: view:res.request:0 +msgid "Request Date" +msgstr "" + +#. module: base +#: code:addons/base/module/wizard/base_export_language.py:52 +#, python-format +msgid "" +"Save this document to a .CSV file and open it with your favourite " +"spreadsheet software. The file encoding is UTF-8. You have to translate the " +"latest column before reimporting it." +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_partner_customer_form +#: model:ir.actions.act_window,name:base.action_partner_form +#: model:ir.ui.menu,name:base.menu_partner_form +#: view:res.partner:0 +msgid "Customers" +msgstr "" + +#. module: base +#: model:res.country,name:base.au +msgid "Australia" +msgstr "" + +#. module: base +#: help:res.partner,lang:0 +msgid "" +"If the selected language is loaded in the system, all documents related to " +"this partner will be printed in this language. If not, it will be english." +msgstr "" + +#. module: base +#: report:ir.module.reference.graph:0 +msgid "Menu :" +msgstr "" + +#. module: base +#: selection:ir.model.fields,state:0 +msgid "Base Field" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_anonymization +msgid "" +"\n" +"This module allows you to anonymize a database.\n" +"===============================================\n" +"\n" +"This module allows you to keep your data confidential for a given database.\n" +"This process is useful if you want to use the migration process and protect\n" +"your own or your customer’s confidential data. The principle is that you " +"run\n" +"an anonymization tool which will hide your confidential data(they are " +"replaced\n" +"by ‘XXX’ characters). Then you can send the anonymized database to the " +"migration\n" +"team. Once you get back your migrated database, you restore it and reverse " +"the\n" +"anonymization process to recover your previous data.\n" +" " +msgstr "" + +#. module: base +#: help:publisher_warranty.contract,name:0 +#: help:publisher_warranty.contract.wizard,name:0 +msgid "" +"Your OpenERP Publisher's Warranty Contract unique key, also called serial " +"number." +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_base_setup +msgid "" +"\n" +"This module helps to configure the system at the installation of a new " +"database.\n" +"=============================================================================" +"===\n" +"\n" +"Shows you a list of applications features to install from.\n" +"\n" +" " +msgstr "" + +#. module: base +#: field:ir.actions.report.xml,report_sxw_content:0 +#: field:ir.actions.report.xml,report_sxw_content_data:0 +msgid "SXW content" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_pl +msgid "Poland - Accounting" +msgstr "" + +#. module: base +#: view:ir.cron:0 +msgid "Action to Trigger" +msgstr "" + +#. module: base +#: selection:ir.translation,type:0 +msgid "Constraint" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_purchase +msgid "" +"\n" +"Purchase module is for generating a purchase order for purchase of goods " +"from a supplier.\n" +"=============================================================================" +"============\n" +"\n" +"A supplier invoice is created for the particular purchase order.\n" +"\n" +"Dashboard for purchase management that includes:\n" +" * Current Purchase Orders\n" +" * Draft Purchase Orders\n" +" * Graph for quantity and amount per month\n" +"\n" +" " +msgstr "" + +#. module: base +#: view:ir.model.fields:0 +#: field:ir.model.fields,required:0 +#: field:res.partner.bank.type.field,required:0 +msgid "Required" +msgstr "" + +#. module: base +#: view:res.users:0 +msgid "Default Filters" +msgstr "" + +#. module: base +#: field:res.request.history,name:0 +msgid "Summary" +msgstr "" + +#. module: base +#: model:ir.module.category,name:base.module_category_hidden_dependency +msgid "Dependency" +msgstr "" + +#. module: base +#: field:multi_company.default,expression:0 +msgid "Expression" +msgstr "" + +#. module: base +#: view:publisher_warranty.contract:0 +msgid "Validate" +msgstr "" + +#. module: base +#: view:res.company:0 +msgid "Header/Footer" +msgstr "" + +#. module: base +#: help:ir.mail_server,sequence:0 +msgid "" +"When no specific mail server is requested for a mail, the highest priority " +"one is used. Default priority is 10 (smaller number = higher priority)" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_crm_partner_assign +msgid "" +"\n" +"This is the module used by OpenERP SA to redirect customers to its partners, " +"based on geolocalization.\n" +"=============================================================================" +"=========================\n" +"\n" +"You can geolocalize your opportunities by using this module.\n" +"\n" +"Use geolocalization when assigning opportunities to partners.\n" +"Determine the GPS coordinates according to the address of the partner.\n" +"The most appropriate partner can be assigned.\n" +"You can also use the geolocalization without using the GPS coordinates.\n" +" " +msgstr "" + +#. module: base +#: help:ir.actions.act_window,help:0 +msgid "" +"Optional help text for the users with a description of the target view, such " +"as its usage and purpose." +msgstr "" + +#. module: base +#: model:res.country,name:base.va +msgid "Holy See (Vatican City State)" +msgstr "" + +#. module: base +#: field:base.module.import,module_file:0 +msgid "Module .ZIP file" +msgstr "" + +#. module: base +#: model:res.partner.category,name:base.res_partner_category_16 +msgid "Telecom sector" +msgstr "" + +#. module: base +#: field:workflow.transition,trigger_model:0 +msgid "Trigger Object" +msgstr "" + +#. module: base +#: sql_constraint:ir.sequence.type:0 +msgid "`code` must be unique." +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_hr_expense +msgid "Expenses Management" +msgstr "" + +#. module: base +#: view:workflow.activity:0 +#: field:workflow.activity,in_transitions:0 +msgid "Incoming Transitions" +msgstr "" + +#. module: base +#: field:ir.values,value_unpickle:0 +msgid "Default value or action reference" +msgstr "" + +#. module: base +#: model:res.country,name:base.sr +msgid "Suriname" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_project_timesheet +msgid "Bill Time on Tasks" +msgstr "" + +#. module: base +#: model:ir.module.category,name:base.module_category_marketing +#: model:ir.module.module,shortdesc:base.module_marketing +#: model:ir.ui.menu,name:base.marketing_menu +msgid "Marketing" +msgstr "" + +#. module: base +#: view:res.partner.bank:0 +msgid "Bank account" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_gr +msgid "Greece - Accounting" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Spanish (HN) / Español (HN)" +msgstr "" + +#. module: base +#: view:ir.sequence.type:0 +msgid "Sequence Type" +msgstr "" + +#. module: base +#: view:ir.ui.view.custom:0 +msgid "Customized Architecture" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_web_gantt +msgid "web Gantt" +msgstr "" + +#. module: base +#: field:ir.module.module,license:0 +msgid "License" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_web_graph +msgid "web Graph" +msgstr "" + +#. module: base +#: field:ir.attachment,url:0 +msgid "Url" +msgstr "" + +#. module: base +#: selection:ir.translation,type:0 +msgid "SQL Constraint" +msgstr "" + +#. module: base +#: help:ir.ui.menu,groups_id:0 +msgid "" +"If you have groups, the visibility of this menu will be based on these " +"groups. If this field is empty, OpenERP will compute visibility based on the " +"related object's read access." +msgstr "" + +#. module: base +#: view:base.module.upgrade:0 +msgid "" +"We suggest to reload the menu tab to see the new menus (Ctrl+T then Ctrl+R)." +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_subscription +msgid "" +"\n" +"Create recurring documents.\n" +"===========================\n" +"\n" +"This module allows to create new documents and add subscriptions on that " +"document.\n" +"\n" +"e.g. To have an invoice generated automatically periodically:\n" +" * Define a document type based on Invoice object\n" +" * Define a subscription whose source document is the document defined as " +"above. Specify the interval information and partner to be invoice.\n" +" " +msgstr "" + +#. module: base +#: field:ir.actions.server,srcmodel_id:0 +#: field:ir.model,model:0 +#: field:ir.model.fields,model_id:0 +#: view:ir.values:0 +msgid "Model" +msgstr "" + +#. module: base +#: view:base.language.install:0 +msgid "" +"The selected language has been successfully installed. You must change the " +"preferences of the user and open a new menu to view the changes." +msgstr "" + +#. module: base +#: sql_constraint:ir.config_parameter:0 +msgid "Key must be unique." +msgstr "" + +#. module: base +#: view:ir.actions.act_window:0 +msgid "Open a Window" +msgstr "" + +#. module: base +#: model:res.country,name:base.gq +msgid "Equatorial Guinea" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_warning +msgid "Warning Messages and Alerts" +msgstr "" + +#. module: base +#: view:base.module.import:0 +#: model:ir.actions.act_window,name:base.action_view_base_module_import +msgid "Module Import" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_ch +msgid "Switzerland - Accounting" +msgstr "" + +#. module: base +#: field:res.bank,zip:0 +#: field:res.company,zip:0 +#: field:res.partner.address,zip:0 +#: field:res.partner.bank,zip:0 +msgid "Zip" +msgstr "" + +#. module: base +#: view:ir.module.module:0 +#: field:ir.module.module,author:0 +msgid "Author" +msgstr "" + +#. module: base +#: model:res.country,name:base.mk +msgid "FYROM" +msgstr "" + +#. module: base +#: view:ir.actions.todo:0 +msgid "Set as Todo" +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "%c - Appropriate date and time representation." +msgstr "" + +#. module: base +#: code:addons/base/res/res_config.py:386 +#, python-format +msgid "" +"Your database is now fully configured.\n" +"\n" +"Click 'Continue' and enjoy your OpenERP experience..." +msgstr "" + +#. module: base +#: model:ir.module.category,description:base.module_category_marketing +msgid "Helps you manage your marketing campaigns step by step." +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Hebrew / עִבְרִי" +msgstr "" + +#. module: base +#: model:res.country,name:base.bo +msgid "Bolivia" +msgstr "" + +#. module: base +#: model:res.country,name:base.gh +msgid "Ghana" +msgstr "" + +#. module: base +#: field:res.lang,direction:0 +msgid "Direction" +msgstr "" + +#. module: base +#: view:ir.actions.act_window:0 +#: model:ir.actions.act_window,name:base.action_ui_view +#: field:ir.actions.act_window,view_ids:0 +#: field:ir.actions.act_window,views:0 +#: view:ir.model:0 +#: field:ir.model,view_ids:0 +#: field:ir.module.module,views_by_module:0 +#: model:ir.ui.menu,name:base.menu_action_ui_view +#: view:ir.ui.view:0 +msgid "Views" +msgstr "" + +#. module: base +#: view:res.groups:0 +#: field:res.groups,rule_groups:0 +msgid "Rules" +msgstr "" + +#. module: base +#: field:ir.mail_server,smtp_host:0 +msgid "SMTP Server" +msgstr "" + +#. module: base +#: code:addons/base/module/module.py:256 +#, python-format +msgid "You try to remove a module that is installed or will be installed" +msgstr "" + +#. module: base +#: view:base.module.upgrade:0 +msgid "The selected modules have been updated / installed !" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Spanish (PR) / Español (PR)" +msgstr "" + +#. module: base +#: model:res.country,name:base.gt +msgid "Guatemala" +msgstr "" + +#. module: base +#: help:ir.actions.server,message:0 +msgid "" +"Email contents, may contain expressions enclosed in double brackets based on " +"the same values as those available in the condition field, e.g. `Dear [[ " +"object.partner_id.name ]]`" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_workflow_form +#: model:ir.ui.menu,name:base.menu_low_workflow +#: model:ir.ui.menu,name:base.menu_workflow +#: model:ir.ui.menu,name:base.menu_workflow_root +msgid "Workflows" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_profile_tools +msgid "" +"\n" +"Installer for extra Hidden like lunch, survey, idea, share, etc.\n" +"===============================================================\n" +"\n" +"Makes the Extra Hidden Configuration available from where you can install\n" +"modules like share, lunch, pad, idea, survey and subscription.\n" +" " +msgstr "" + +#. module: base +#: model:ir.module.category,name:base.module_category_specific_industry_applications +msgid "Specific Industry Applications" +msgstr "" + +#. module: base +#: model:res.partner.category,name:base.res_partner_category_retailers0 +msgid "Retailers" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_web_uservoice +msgid "Receive User Feedback" +msgstr "" + +#. module: base +#: model:res.country,name:base.ls +msgid "Lesotho" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_base_vat +msgid "VAT Number Validation" +msgstr "Validación del RFC" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_crm_partner_assign +msgid "Partners Geo-Localization" +msgstr "" + +#. module: base +#: model:res.country,name:base.ke +msgid "Kenya" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_translation +#: model:ir.ui.menu,name:base.menu_action_translation +msgid "Translated Terms" +msgstr "" + +#. module: base +#: view:res.partner.event:0 +msgid "Event" +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.menu_custom_reports +msgid "Custom Reports" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Abkhazian / аҧсуа" +msgstr "" + +#. module: base +#: view:base.module.configuration:0 +msgid "System Configuration Done" +msgstr "" + +#. module: base +#: code:addons/orm.py:1459 +#, python-format +msgid "Error occurred while validating the field(s) %s: %s" +msgstr "" + +#. module: base +#: view:ir.property:0 +msgid "Generic" +msgstr "" + +#. module: base +#: view:ir.actions.server:0 +msgid "SMS Configuration" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_document_webdav +msgid "" +"\n" +"With this module, the WebDAV server for documents is activated.\n" +"===============================================================\n" +"\n" +"You can then use any compatible browser to remotely see the attachments of " +"OpenObject.\n" +"\n" +"After installation, the WebDAV server can be controlled by a [webdav] " +"section in the server's config.\n" +"Server Configuration Parameter:\n" +"\n" +" [webdav]\n" +" ; enable = True ; Serve webdav over the http(s) servers\n" +" ; vdir = webdav ; the directory that webdav will be served at\n" +" ; this default val means that webdav will be\n" +" ; on \"http://localhost:8069/webdav/\n" +" ; verbose = True ; Turn on the verbose messages of webdav\n" +" ; debug = True ; Turn on the debugging messages of webdav\n" +" ; since the messages are routed to the python logging, with\n" +" ; levels \"debug\" and \"debug_rpc\" respectively, you can leave\n" +" ; these options on\n" +"\n" +"Also implements IETF RFC 5785 for services discovery on a http server,\n" +"which needs explicit configuration in openerp-server.conf, too.\n" +msgstr "" + +#. module: base +#: model:res.country,name:base.sm +msgid "San Marino" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_survey +msgid "" +"\n" +"This module is used for surveying.\n" +"==================================\n" +"\n" +"It depends on the answers or reviews of some questions by different users.\n" +"A survey may have multiple pages. Each page may contain multiple questions " +"and each question may have multiple answers.\n" +"Different users may give different answers of question and according to that " +"survey is done.\n" +"Partners are also sent mails with user name and password for the invitation " +"of the survey\n" +" " +msgstr "" + +#. module: base +#: model:res.country,name:base.bm +msgid "Bermuda" +msgstr "" + +#. module: base +#: model:res.country,name:base.pe +msgid "Peru" +msgstr "" + +#. module: base +#: selection:ir.model.fields,on_delete:0 +msgid "Set NULL" +msgstr "" + +#. module: base +#: model:res.country,name:base.bj +msgid "Benin" +msgstr "" + +#. module: base +#: code:addons/base/publisher_warranty/publisher_warranty.py:295 +#: sql_constraint:publisher_warranty.contract:0 +#, python-format +msgid "That contract is already registered in the system." +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_res_partner_bank_type_form +#: model:ir.ui.menu,name:base.menu_action_res_partner_bank_typeform +msgid "Bank Account Types" +msgstr "" + +#. module: base +#: help:ir.sequence,suffix:0 +msgid "Suffix value of the record for the sequence" +msgstr "" + +#. module: base +#: help:ir.mail_server,smtp_user:0 +msgid "Optional username for SMTP authentication" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_actions_actions +msgid "ir.actions.actions" +msgstr "" + +#. module: base +#: selection:ir.model.fields,select_level:0 +msgid "Not Searchable" +msgstr "" + +#. module: base +#: field:ir.config_parameter,key:0 +msgid "Key" +msgstr "" + +#. module: base +#: field:res.company,rml_header:0 +msgid "RML Header" +msgstr "" + +#. module: base +#: code:addons/base/res/res_users.py:271 +#, python-format +msgid "" +"Please keep in mind that documents currently displayed may not be relevant " +"after switching to another company. If you have unsaved changes, please make " +"sure to save and close all forms before switching to a different company. " +"(You can click on Cancel in the User Preferences now)" +msgstr "" + +#. module: base +#: field:partner.sms.send,app_id:0 +msgid "API ID" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_model.py:533 +#, python-format +msgid "" +"You can not create this document (%s) ! Be sure your user belongs to one of " +"these groups: %s." +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_web_chat +msgid "Web Chat" +msgstr "" + +#. module: base +#: field:res.company,rml_footer2:0 +msgid "Bank Accounts Footer" +msgstr "" + +#. module: base +#: model:res.country,name:base.mu +msgid "Mauritius" +msgstr "" + +#. module: base +#: view:ir.model.access:0 +#: view:ir.rule:0 +msgid "Full Access" +msgstr "" + +#. module: base +#: view:ir.actions.act_window:0 +#: view:ir.actions.report.xml:0 +#: view:ir.actions.wizard:0 +#: view:ir.model.fields:0 +#: model:ir.ui.menu,name:base.menu_security +msgid "Security" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_model.py:311 +#, python-format +msgid "Changing the storing system for field \"%s\" is not allowed." +msgstr "" + +#. module: base +#: help:res.partner.bank,company_id:0 +msgid "Only if this bank account belong to your company" +msgstr "" + +#. module: base +#: model:res.country,name:base.za +msgid "South Africa" +msgstr "" + +#. module: base +#: view:ir.module.module:0 +#: selection:ir.module.module,state:0 +#: selection:ir.module.module.dependency,state:0 +msgid "Installed" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Ukrainian / українська" +msgstr "" + +#. module: base +#: model:res.country,name:base.sn +msgid "Senegal" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_purchase_requisition +msgid "" +"\n" +"This module allows you to manage your Purchase Requisition.\n" +"===========================================================\n" +"\n" +"When a purchase order is created, you now have the opportunity to save the " +"related requisition.\n" +"This new object will regroup and will allow you to easily keep track and " +"order all your purchase orders.\n" +msgstr "" + +#. module: base +#: model:res.country,name:base.hu +msgid "Hungary" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_hr_recruitment +msgid "Recruitment Process" +msgstr "" + +#. module: base +#: model:res.country,name:base.br +msgid "Brazil" +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "%M - Minute [00,59]." +msgstr "" + +#. module: base +#: selection:ir.module.module,license:0 +msgid "Affero GPL-3" +msgstr "" + +#. module: base +#: field:ir.sequence,number_next:0 +msgid "Next Number" +msgstr "" + +#. module: base +#: help:workflow.transition,condition:0 +msgid "Expression to be satisfied if we want the transition done." +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_publisher_warranty_contract_wizard +msgid "publisher_warranty.contract.wizard" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Spanish (PA) / Español (PA)" +msgstr "" + +#. module: base +#: view:res.currency:0 +#: field:res.currency,rate_ids:0 +msgid "Rates" +msgstr "" + +#. module: base +#: model:res.country,name:base.sy +msgid "Syria" +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "======================================================" +msgstr "" + +#. module: base +#: view:base.module.upgrade:0 +msgid "System update completed" +msgstr "" + +#. module: base +#: sql_constraint:ir.model:0 +msgid "Each model must be unique!" +msgstr "" + +#. module: base +#: model:ir.module.category,name:base.module_category_localization +msgid "Localization" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_sale_mrp +msgid "" +"\n" +"This module provides facility to the user to install mrp and sales modulesat " +"a time.\n" +"=============================================================================" +"=======\n" +"\n" +"It is basically used when we want to keep track of production\n" +"orders generated from sales order.\n" +"It adds sales name and sales Reference on production order.\n" +" " +msgstr "" + +#. module: base +#: selection:res.request,state:0 +msgid "draft" +msgstr "" + +#. module: base +#: selection:ir.property,type:0 +#: field:res.currency,date:0 +#: field:res.currency.rate,name:0 +#: field:res.partner,date:0 +#: field:res.partner.event,date:0 +#: field:res.request,date_sent:0 +msgid "Date" +msgstr "" + +#. module: base +#: field:ir.actions.report.xml,report_sxw:0 +msgid "SXW path" +msgstr "" + +#. module: base +#: view:ir.attachment:0 +msgid "Data" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_hr_timesheet_invoice +msgid "" +"Generate your Invoices from Expenses, Timesheet Entries, ...\n" +"Module to generate invoices based on costs (human resources, expenses, " +"...).\n" +"============================================================================" +"\n" +"\n" +"You can define price lists in analytic account, make some theoretical " +"revenue\n" +"reports, etc." +msgstr "" + +#. module: base +#: field:ir.ui.menu,parent_id:0 +#: field:wizard.ir.model.menu.create,menu_id:0 +msgid "Parent Menu" +msgstr "" + +#. module: base +#: field:res.partner.bank,owner_name:0 +msgid "Account Owner Name" +msgstr "" + +#. module: base +#: field:ir.rule,perm_unlink:0 +msgid "Apply For Delete" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_model.py:359 +#, python-format +msgid "Cannot rename column to %s, because that column already exists!" +msgstr "" + +#. module: base +#: view:ir.attachment:0 +msgid "Attached To" +msgstr "" + +#. module: base +#: field:res.lang,decimal_point:0 +msgid "Decimal Separator" +msgstr "" + +#. module: base +#: code:addons/base/module/module.py:346 +#: view:ir.module.module:0 +#, python-format +msgid "Install" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,help:base.action_res_groups +msgid "" +"A group is a set of functional areas that will be assigned to the user in " +"order to give them access and rights to specific applications and tasks in " +"the system. You can create custom groups or edit the ones existing by " +"default in order to customize the view of the menu that users will be able " +"to see. Whether they can have a read, write, create and delete access right " +"can be managed from here." +msgstr "" + +#. module: base +#: field:ir.filters,name:0 +msgid "Filter Name" +msgstr "" + +#. module: base +#: view:res.partner:0 +#: view:res.request:0 +#: field:res.request,history:0 +msgid "History" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_uk +msgid "" +"This is the latest UK OpenERP localisation necesary to run OpenERP " +"accounting for UK SME's with:\n" +" - a CT600-ready chart of accounts\n" +" - VAT100-ready tax structure\n" +" - InfoLogic UK counties listing\n" +" - a few other adaptations" +msgstr "" + +#. module: base +#: field:ir.attachment,create_uid:0 +msgid "Creator" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_account_asset +msgid "" +"Financial and accounting asset management.\n" +" This Module manages the assets owned by a company or an individual. It " +"will keep track of depreciation's occurred on\n" +" those assets. And it allows to create Move's of the depreciation lines.\n" +" " +msgstr "" + +#. module: base +#: model:res.country,name:base.bv +msgid "Bouvet Island" +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.menu_base_config_plugins +msgid "Plugins" +msgstr "" + +#. module: base +#: field:res.company,child_ids:0 +msgid "Child Companies" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_res_users +msgid "res.users" +msgstr "" + +#. module: base +#: model:res.country,name:base.ni +msgid "Nicaragua" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_be +msgid "" +"\n" +"This is the base module to manage the accounting chart for Belgium in " +"OpenERP.\n" +"=============================================================================" +"=\n" +"\n" +"After installing this module, the Configuration wizard for accounting is " +"launched.\n" +" * We have the account templates which can be helpful to generate Charts " +"of Accounts.\n" +" * On that particular wizard, 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 account and bank account, currency to create journals.\n" +"\n" +"Thus, the pure copy of Chart Template is generated.\n" +"\n" +"Wizards provided by this module:\n" +" * Partner VAT Intra: Enlist the partners with their related VAT and " +"invoiced amounts.Prepares an XML file format.\n" +" Path to access : Accounting/Reporting//Legal Statements/Belgium " +"Statements/Partner VAT Listing\n" +" * Periodical VAT Declaration: Prepares an XML file for Vat Declaration " +"of the Main company of the User currently Logged in.\n" +" Path to access : Accounting/Reporting/Legal Statements/Belgium " +"Statements/Periodical VAT Declaration\n" +" * Annual Listing Of VAT-Subjected Customers: Prepares an XML file for " +"Vat Declaration of the Main company of the User currently Logged in.Based on " +"Fiscal year\n" +" Path to access : Accounting/Reporting/Legal Statements/Belgium " +"Statements/Annual Listing Of VAT-Subjected Customers\n" +"\n" +" " +msgstr "" + +#. module: base +#: field:ir.property,fields_id:0 +#: selection:ir.translation,type:0 +#: field:multi_company.default,field_id:0 +msgid "Field" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_project_long_term +msgid "Long Term Projects" +msgstr "" + +#. module: base +#: model:res.country,name:base.ve +msgid "Venezuela" +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "9. %j ==> 340" +msgstr "" + +#. module: base +#: model:res.country,name:base.zm +msgid "Zambia" +msgstr "" + +#. module: base +#: view:ir.actions.todo:0 +msgid "Launch Configuration Wizard" +msgstr "" + +#. module: base +#: help:res.partner,user_id:0 +msgid "" +"The internal user that is in charge of communicating with this partner if " +"any." +msgstr "" + +#. module: base +#: field:res.partner,parent_id:0 +msgid "Parent Partner" +msgstr "" + +#. module: base +#: view:ir.module.module:0 +msgid "Cancel Upgrade" +msgstr "" + +#. module: base +#: model:res.country,name:base.ci +msgid "Ivory Coast (Cote D'Ivoire)" +msgstr "" + +#. module: base +#: model:res.country,name:base.kz +msgid "Kazakhstan" +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "%w - Weekday number [0(Sunday),6]." +msgstr "" + +#. module: base +#: model:ir.actions.act_window,help:base.action_partner_form +msgid "" +"A customer is an entity you do business with, like a company or an " +"organization. A customer can have several contacts or addresses which are " +"the people working for this company. You can use the history tab, to follow " +"all transactions related to a customer: sales order, emails, opportunities, " +"claims, etc. If you use the email gateway, the Outlook or the Thunderbird " +"plugin, don't forget to register emails to each contact so that the gateway " +"will automatically attach incoming emails to the right partner." +msgstr "" + +#. module: base +#: field:ir.actions.report.xml,name:0 +#: field:ir.actions.todo,name:0 +#: field:ir.actions.todo.category,name:0 +#: field:ir.cron,name:0 +#: field:ir.model.access,name:0 +#: field:ir.model.fields,name:0 +#: field:ir.module.category,name:0 +#: view:ir.module.module:0 +#: field:ir.module.module,name:0 +#: field:ir.module.module.dependency,name:0 +#: report:ir.module.reference.graph:0 +#: field:ir.property,name:0 +#: field:ir.rule,name:0 +#: field:ir.sequence,name:0 +#: field:ir.sequence.type,name:0 +#: field:ir.values,name:0 +#: field:multi_company.default,name:0 +#: field:res.bank,name:0 +#: field:res.currency.rate.type,name:0 +#: field:res.groups,name:0 +#: field:res.lang,name:0 +#: field:res.partner,name:0 +#: field:res.partner.bank.type,name:0 +#: view:res.partner.event:0 +#: field:res.request.link,name:0 +#: field:workflow,name:0 +#: field:workflow.activity,name:0 +msgid "Name" +msgstr "" + +#. module: base +#: help:ir.actions.act_window,multi:0 +msgid "" +"If set to true, the action will not be displayed on the right toolbar of a " +"form view" +msgstr "" + +#. module: base +#: model:res.country,name:base.ms +msgid "Montserrat" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_decimal_precision +msgid "Decimal Precision Configuration" +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.menu_translation_app +msgid "Application Terms" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_stock +msgid "" +"\n" +"OpenERP Inventory Management module can manage multi-warehouses, multi and " +"structured stock locations.\n" +"=============================================================================" +"=========================\n" +"\n" +"Thanks to the double entry management, the inventory controlling is powerful " +"and flexible:\n" +" * Moves history and planning,\n" +" * Different inventory methods (FIFO, LIFO, ...)\n" +" * Stock valuation (standard or average price, ...)\n" +" * Robustness faced with Inventory differences\n" +" * Automatic reordering rules (stock level, JIT, ...)\n" +" * Bar code supported\n" +" * Rapid detection of mistakes through double entry system\n" +" * Traceability (upstream/downstream, production lots, serial number, " +"...)\n" +" * Dashboard for warehouse that includes:\n" +" * Procurement in exception\n" +" * List of Incoming Products\n" +" * List of Outgoing Products\n" +" * Graph : Products to receive in delay (date < = today)\n" +" * Graph : Products to send in delay (date < = today)\n" +" " +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_module_module +#: view:ir.model.data:0 +#: field:ir.model.data,module:0 +#: view:ir.module.module:0 +#: field:ir.module.module.dependency,module_id:0 +#: report:ir.module.reference.graph:0 +msgid "Module" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "English (UK)" +msgstr "" + +#. module: base +#: model:res.country,name:base.aq +msgid "Antarctica" +msgstr "" + +#. module: base +#: help:workflow.transition,act_from:0 +msgid "" +"Source activity. When this activity is over, the condition is tested to " +"determine if we can start the ACT_TO activity." +msgstr "" + +#. module: base +#: model:res.partner.category,name:base.res_partner_category_3 +msgid "Starter Partner" +msgstr "" + +#. module: base +#: help:ir.model.fields,relation_field:0 +msgid "" +"For one2many fields, the field on the target model that implement the " +"opposite many2one relationship" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_account_budget +msgid "" +"\n" +"This module allows accountants to manage analytic and crossovered budgets.\n" +"==========================================================================\n" +"\n" +"Once the Master Budgets and the Budgets are defined (in " +"Accounting/Budgets/),\n" +"the Project Managers can set the planned amount on each Analytic Account.\n" +"\n" +"The accountant has the possibility to see the total of amount planned for " +"each\n" +"Budget and Master Budget in order to ensure the total planned is not\n" +"greater/lower than what he planned for this Budget/Master Budget. Each list " +"of\n" +"record can also be switched to a graphical view of it.\n" +"\n" +"Three reports are available:\n" +" 1. The first is available from a list of Budgets. It gives the " +"spreading, for these Budgets, of the Analytic Accounts per Master Budgets.\n" +"\n" +" 2. The second is a summary of the previous one, it only gives the " +"spreading, for the selected Budgets, of the Analytic Accounts.\n" +"\n" +" 3. The last one is available from the Analytic Chart of Accounts. It " +"gives the spreading, for the selected Analytic Accounts, of the Master " +"Budgets per Budgets.\n" +"\n" +msgstr "" + +#. module: base +#: help:res.lang,iso_code:0 +msgid "This ISO code is the name of po files to use for translations" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_actions_act_window_view +msgid "ir.actions.act_window.view" +msgstr "" + +#. module: base +#: report:ir.module.reference.graph:0 +msgid "Web" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_lunch +msgid "Lunch Orders" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "English (CA)" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_publisher_warranty_contract +msgid "publisher_warranty.contract" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_account_coda +msgid "" +"\n" +" Module to import CODA bank statements.\n" +"\n" +" Supported are CODA flat files in V2 format from Belgian bank accounts.\n" +" - CODA v1 support.\n" +" - CODA v2.2 support.\n" +" - Foreign Currency support.\n" +" - Support for all data record types (0, 1, 2, 3, 4, 8, 9).\n" +" - Parsing & logging of all Transaction Codes and Structured Format " +"Communications.\n" +" - Automatic Financial Journal assignment via CODA configuration " +"parameters.\n" +" - Support for multiple Journals per Bank Account Number.\n" +" - Support for multiple statements from different bank accounts in a " +"single CODA file.\n" +" - Support for 'parsing only' CODA Bank Accounts (defined as type='info' " +"in the CODA Bank Account configuration records).\n" +" - Multi-language CODA parsing, parsing configuration data provided for " +"EN, NL, FR.\n" +"\n" +" The machine readable CODA Files are parsed and stored in human readable " +"format in CODA Bank Statements.\n" +" Also Bank Statements are generated containing a subset of the CODA " +"information (only those transaction lines\n" +" that are required for the creation of the Financial Accounting " +"records).\n" +" The CODA Bank Statement is a 'read-only' object, hence remaining a " +"reliable representation of the original CODA file\n" +" whereas the Bank Statement will get modified as required by accounting " +"business processes.\n" +"\n" +" CODA Bank Accounts configured as type 'Info' will only generate CODA " +"Bank Statements.\n" +"\n" +" A removal of one object in the CODA processing results in the removal of " +"the associated objects.\n" +" The removal of a CODA File containing multiple Bank Statements will also " +"remove those associated\n" +" statements.\n" +"\n" +" The following reconciliation logic has been implemented in the CODA " +"processing:\n" +" 1) The Company's Bank Account Number of the CODA statement is compared " +"against the Bank Account Number field\n" +" of the Company's CODA Bank Account configuration records (whereby " +"bank accounts defined in type='info' configuration records are ignored).\n" +" If this is the case an 'internal transfer' transaction is generated " +"using the 'Internal Transfer Account' field of the CODA File Import wizard.\n" +" 2) As a second step the 'Structured Communication' field of the CODA " +"transaction line is matched against\n" +" the reference field of in- and outgoing invoices (supported : Belgian " +"Structured Communication Type).\n" +" 3) When the previous step doesn't find a match, the transaction " +"counterparty is located via the\n" +" Bank Account Number configured on the OpenERP Customer and Supplier " +"records.\n" +" 4) In case the previous steps are not successful, the transaction is " +"generated by using the 'Default Account\n" +" for Unrecognized Movement' field of the CODA File Import wizard in " +"order to allow further manual processing.\n" +"\n" +" In stead of a manual adjustment of the generated Bank Statements, you " +"can also re-import the CODA\n" +" after updating the OpenERP database with the information that was " +"missing to allow automatic reconciliation.\n" +"\n" +" Remark on CODA V1 support:\n" +" In some cases a transaction code, transaction category or structured " +"communication code has been given a new or clearer description in CODA V2.\n" +" The description provided by the CODA configuration tables is based upon " +"the CODA V2.2 specifications.\n" +" If required, you can manually adjust the descriptions via the CODA " +"configuration menu.\n" +"\n" +" " +msgstr "" + +#. module: base +#: model:res.country,name:base.et +msgid "Ethiopia" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_account_analytic_plans +msgid "" +"\n" +"This module allows to use several analytic plans, according to the general " +"journal.\n" +"=============================================================================" +"======\n" +"\n" +"Here multiple analytic lines are created when the invoice or the entries\n" +"are confirmed.\n" +"\n" +"For example, you can define the following analytic structure:\n" +" Projects\n" +" Project 1\n" +" SubProj 1.1\n" +" SubProj 1.2\n" +"\n" +" Project 2\n" +" Salesman\n" +" Eric\n" +" Fabien\n" +"\n" +"Here, we have two plans: Projects and Salesman. An invoice line must\n" +"be able to write analytic entries in the 2 plans: SubProj 1.1 and\n" +"Fabien. The amount can also be split. The following example is for\n" +"an invoice that touches the two subproject and assigned to one salesman:\n" +"\n" +"Plan1:\n" +" SubProject 1.1 : 50%\n" +" SubProject 1.2 : 50%\n" +"Plan2:\n" +" Eric: 100%\n" +"\n" +"So when this line of invoice will be confirmed, it will generate 3 analytic " +"lines,\n" +"for one account entry.\n" +"The analytic plan validates the minimum and maximum percentage at the time " +"of creation\n" +"of distribution models.\n" +" " +msgstr "" + +#. module: base +#: help:res.country.state,code:0 +msgid "The state code in three chars.\n" +msgstr "" + +#. module: base +#: model:res.country,name:base.sj +msgid "Svalbard and Jan Mayen Islands" +msgstr "" + +#. module: base +#: model:ir.module.category,name:base.module_category_hidden_test +msgid "Test" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_web_kanban +msgid "Base Kanban" +msgstr "" + +#. module: base +#: view:ir.actions.act_window:0 +#: view:ir.actions.report.xml:0 +#: view:ir.actions.server:0 +#: view:res.request:0 +msgid "Group By" +msgstr "" + +#. module: base +#: view:res.config:0 +#: view:res.config.installer:0 +msgid "title" +msgstr "" + +#. module: base +#: field:base.language.install,state:0 +#: field:base.module.import,state:0 +#: field:base.module.update,state:0 +msgid "state" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_account_analytic_analysis +msgid "" +"\n" +"This module is for modifying account analytic view to show important data to " +"project manager of services companies.\n" +"=============================================================================" +"======================================\n" +"\n" +"Adds menu to show relevant information to each manager.\n" +"You can also view the report of account analytic summary\n" +"user-wise as well as month wise.\n" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_base_language_install +msgid "Install Language" +msgstr "" + +#. module: base +#: view:ir.translation:0 +msgid "Translation" +msgstr "" + +#. module: base +#: selection:res.request,state:0 +msgid "closed" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_cr +msgid "" +"\n" +"Chart of accounts for Costa Rica.\n" +"=================================\n" +"\n" +"Includes:\n" +"* account.type\n" +"* account.account.template\n" +"* account.tax.template\n" +"* account.tax.code.template\n" +"* account.chart.template\n" +"\n" +"Everything is in English with Spanish translation. Further translations are " +"welcome, please go to\n" +"http://translations.launchpad.net/openerp-costa-rica\n" +" " +msgstr "" + +#. module: base +#: selection:base.language.export,state:0 +msgid "get" +msgstr "" + +#. module: base +#: help:ir.model.fields,on_delete:0 +msgid "On delete property for many2one fields" +msgstr "" + +#. module: base +#: model:ir.module.category,name:base.module_category_accounting_and_finance +msgid "Accounting & Finance" +msgstr "" + +#. module: base +#: field:ir.actions.server,write_id:0 +msgid "Write Id" +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.menu_product +msgid "Products" +msgstr "" + +#. module: base +#: help:res.users,name:0 +msgid "The new user's real name, used for searching and most listings" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.act_values_form_defaults +#: model:ir.ui.menu,name:base.menu_values_form_defaults +#: view:ir.values:0 +msgid "User-defined Defaults" +msgstr "" + +#. module: base +#: model:ir.module.category,name:base.module_category_usability +#: view:res.users:0 +msgid "Usability" +msgstr "" + +#. module: base +#: field:ir.actions.act_window,domain:0 +#: field:ir.filters,domain:0 +msgid "Domain Value" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_base_module_quality +msgid "Analyse Module Quality" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Spanish (BO) / Español (BO)" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.ir_access_act +#: model:ir.ui.menu,name:base.menu_ir_access_act +msgid "Access Controls List" +msgstr "" + +#. module: base +#: model:res.country,name:base.um +msgid "USA Minor Outlying Islands" +msgstr "" + +#. module: base +#: help:ir.cron,numbercall:0 +msgid "" +"How many times the method is called,\n" +"a negative number indicates no limit." +msgstr "" + +#. module: base +#: field:res.partner.bank.type.field,bank_type_id:0 +msgid "Bank Type" +msgstr "" + +#. module: base +#: code:addons/base/res/res_users.py:87 +#: code:addons/base/res/res_users.py:96 +#, python-format +msgid "The name of the group can not start with \"-\"" +msgstr "" + +#. module: base +#: view:ir.module.module:0 +msgid "Apps" +msgstr "" + +#. module: base +#: view:ir.ui.view_sc:0 +#: field:res.partner.title,shortcut:0 +msgid "Shortcut" +msgstr "" + +#. module: base +#: field:ir.model.data,date_init:0 +msgid "Init Date" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Gujarati / ગુજરાતી" +msgstr "" + +#. module: base +#: code:addons/base/module/module.py:297 +#, python-format +msgid "" +"Unable to process module \"%s\" because an external dependency is not met: %s" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_be_hr_payroll +msgid "Belgium - Payroll" +msgstr "" + +#. module: base +#: view:publisher_warranty.contract.wizard:0 +msgid "Please enter the serial key provided in your contract document:" +msgstr "" + +#. module: base +#: view:workflow.activity:0 +#: field:workflow.activity,flow_start:0 +msgid "Flow Start" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_res_partner_title +msgid "res.partner.title" +msgstr "" + +#. module: base +#: view:res.partner.bank:0 +msgid "Bank Account Owner" +msgstr "" + +#. module: base +#: model:ir.module.category,name:base.module_category_uncategorized +msgid "Uncategorized" +msgstr "" + +#. module: base +#: field:ir.attachment,res_name:0 +#: field:ir.ui.view_sc,resource:0 +msgid "Resource Name" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_default +msgid "ir.default" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_hr_payroll +msgid "" +"\n" +"Generic Payroll system.\n" +"=======================\n" +"\n" +" * Employee Details\n" +" * Employee Contracts\n" +" * Passport based Contract\n" +" * Allowances / Deductions\n" +" * Allow to configure Basic / Grows / Net Salary\n" +" * Employee Payslip\n" +" * Monthly Payroll Register\n" +" * Integrated with Holiday Management\n" +" " +msgstr "" + +#. module: base +#: selection:ir.cron,interval_type:0 +msgid "Hours" +msgstr "" + +#. module: base +#: model:res.country,name:base.gp +msgid "Guadeloupe (French)" +msgstr "" + +#. module: base +#: code:addons/base/res/res_lang.py:187 +#: code:addons/base/res/res_lang.py:189 +#: code:addons/base/res/res_lang.py:191 +#, python-format +msgid "User Error" +msgstr "" + +#. module: base +#: help:workflow.transition,signal:0 +msgid "" +"When the operation of transition comes from a button pressed in the client " +"form, signal tests the name of the pressed button. If signal is NULL, no " +"button is necessary to validate this transition." +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_web_diagram +msgid "OpenERP Web Diagram" +msgstr "" + +#. module: base +#: view:res.partner.bank:0 +msgid "My Banks" +msgstr "" + +#. module: base +#: help:multi_company.default,object_id:0 +msgid "Object affected by this rule" +msgstr "" + +#. module: base +#: report:ir.module.reference.graph:0 +msgid "Directory" +msgstr "" + +#. module: base +#: field:wizard.ir.model.menu.create,name:0 +msgid "Menu Name" +msgstr "" + +#. module: base +#: view:ir.module.module:0 +msgid "Author Website" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_board +msgid "" +"\n" +"Lets the user create a custom dashboard.\n" +"========================================\n" +"\n" +"This module also creates the Administration Dashboard.\n" +"\n" +"The user can also publish notes.\n" +" " +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_project_scrum +msgid "Methodology: SCRUM" +msgstr "" + +#. module: base +#: view:ir.attachment:0 +msgid "Month" +msgstr "" + +#. module: base +#: model:res.country,name:base.my +msgid "Malaysia" +msgstr "" + +#. module: base +#: view:base.language.install:0 +#: model:ir.actions.act_window,name:base.action_view_base_language_install +msgid "Load Official Translation" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_account_cancel +msgid "Cancel Journal Entries" +msgstr "" + +#. module: base +#: view:ir.actions.server:0 +msgid "Client Action Configuration" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_res_partner_address +#: view:res.partner.address:0 +msgid "Partner Addresses" +msgstr "" + +#. module: base +#: help:ir.mail_server,smtp_debug:0 +msgid "" +"If enabled, the full output of SMTP sessions will be written to the server " +"log at DEBUG level(this is very verbose and may include confidential info!)" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_base_report_creator +msgid "Query Builder" +msgstr "" + +#. module: base +#: selection:ir.actions.todo,type:0 +msgid "Launch Automatically" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_mail +msgid "" +"\n" +"A generic email subsystem with message storage and queuing\n" +"==========================================================\n" +"\n" +"This email subsystem is not intended to be used as as standalone\n" +"application, but to provide a unified email abstraction that all\n" +"other applications can use.\n" +"\n" +"The main features are:\n" +"\n" +" * Relies on the global Outgoing Mail Servers configured in the \n" +" Administration menu for delivering outgoing mail\n" +" * Provides an API for sending messages and archiving them,\n" +" grouped by conversation\n" +" * Any OpenERP document can act as a conversation topic, provided\n" +" it includes the necessary support for handling incoming emails\n" +" (see the ``mail.thread`` class for more details). \n" +" * Includes queuing mechanism with automated configurable\n" +" scheduler-based processing\n" +" * Includes a generic email composition assistant, that can turn\n" +" into a mass-mailing assistant, and is capable of interpreting\n" +" simple *placeholder expressions* that will be replaced with\n" +" dynamic data when each email is actually sent.\n" +" This generic assistant is easily extensible to provide advanced\n" +" features (see ``email_template`` for example, which adds email\n" +" templating features to this assistant)\n" +"\n" +" " +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "%S - Seconds [00,61]." +msgstr "" + +#. module: base +#: model:res.country,name:base.cv +msgid "Cape Verde" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_base_contact +msgid "" +"\n" +"This module allows you to manage your contacts\n" +"==============================================\n" +"\n" +"It lets you define:\n" +" * contacts unrelated to a partner,\n" +" * contacts working at several addresses (possibly for different " +"partners),\n" +" * contacts with possibly different functions for each of its job's " +"addresses\n" +"\n" +"It also adds new menu items located in\n" +" Purchases / Address Book / Contacts\n" +" Sales / Address Book / Contacts\n" +"\n" +"Pay attention that this module converts the existing addresses into " +"\"addresses + contacts\". It means that some fields of the addresses will be " +"missing (like the contact name), since these are supposed to be defined in " +"an other object.\n" +" " +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.act_res_partner_event +#: model:ir.ui.menu,name:base.menu_event_association +#: field:res.partner,events:0 +#: field:res.partner.event,name:0 +#: model:res.widget,title:base.events_widget +msgid "Events" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_actions_url +#: selection:ir.ui.menu,action:0 +msgid "ir.actions.url" +msgstr "" + +#. module: base +#: model:res.widget,title:base.currency_converter_widget +msgid "Currency Converter" +msgstr "" + +#. module: base +#: help:ir.values,key:0 +msgid "" +"- Action: an action attached to one slot of the given model\n" +"- Default: a default value for a model field" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_partner_addess_tree +#: view:res.partner:0 +msgid "Partner Contacts" +msgstr "" + +#. module: base +#: field:base.module.update,add:0 +msgid "Number of modules added" +msgstr "" + +#. module: base +#: view:res.currency:0 +msgid "Price Accuracy" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Latvian / latviešu valoda" +msgstr "" + +#. module: base +#: view:res.config:0 +#: view:res.config.installer:0 +msgid "vsep" +msgstr "" + +#. module: base +#: model:res.widget,title:base.openerp_favorites_twitter_widget +msgid "OpenERP Tweets" +msgstr "" + +#. module: base +#: code:addons/base/module/module.py:392 +#, python-format +msgid "Uninstall" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_account_budget +msgid "Budgets Management" +msgstr "" + +#. module: base +#: field:workflow.triggers,workitem_id:0 +msgid "Workitem" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_anonymization +msgid "Database Anonymization" +msgstr "" + +#. module: base +#: selection:ir.mail_server,smtp_encryption:0 +msgid "SSL/TLS" +msgstr "" + +#. module: base +#: field:publisher_warranty.contract,check_opw:0 +msgid "OPW" +msgstr "" + +#. module: base +#: field:res.log,secondary:0 +msgid "Secondary Log" +msgstr "" + +#. module: base +#: field:ir.actions.act_window.view,act_window_id:0 +#: view:ir.actions.actions:0 +#: field:ir.actions.todo,action_id:0 +#: field:ir.ui.menu,action:0 +#: view:ir.values:0 +#: selection:ir.values,key:0 +#: view:res.users:0 +msgid "Action" +msgstr "" + +#. module: base +#: view:ir.actions.server:0 +msgid "Email Configuration" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_cron +msgid "ir.cron" +msgstr "" + +#. module: base +#: field:partner.sms.send,mobile_to:0 +#: field:res.request,act_to:0 +#: field:res.request.history,act_to:0 +msgid "To" +msgstr "" + +#. module: base +#: view:ir.sequence:0 +msgid "Current Year without Century: %(y)s" +msgstr "" + +#. module: base +#: help:ir.actions.client,tag:0 +msgid "" +"An arbitrary string, interpreted by the client according to its own needs " +"and wishes. There is no central tag repository across clients." +msgstr "" + +#. module: base +#: sql_constraint:ir.rule:0 +msgid "Rule must have at least one checked access right !" +msgstr "" + +#. module: base +#: model:res.country,name:base.fj +msgid "Fiji" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_document_ftp +msgid "" +"\n" +"This is a support FTP Interface with document management system.\n" +"================================================================\n" +"\n" +"With this module you would not only be able to access documents through " +"OpenERP\n" +"but you would also be able to connect with them through the file system " +"using the\n" +"FTP client.\n" +msgstr "" + +#. module: base +#: field:ir.model.fields,size:0 +msgid "Size" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_analytic_user_function +msgid "" +"\n" +"This module allows you to define what is the default function of a specific " +"user on a given account.\n" +"=============================================================================" +"=======================\n" +"\n" +"This is mostly used when a user encodes his timesheet: the values are " +"retrieved and the fields are auto-filled. But the possibility to change " +"these values is still available.\n" +"\n" +"Obviously if no data has been recorded for the current account, the default " +"value is given as usual by the employee data so that this module is " +"perfectly compatible with older configurations.\n" +"\n" +" " +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_audittrail +msgid "Audit Trail" +msgstr "" + +#. module: base +#: model:res.country,name:base.sd +msgid "Sudan" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_currency_rate_type_form +#: model:ir.model,name:base.model_res_currency_rate_type +#: field:res.currency.rate,currency_rate_type_id:0 +#: view:res.currency.rate.type:0 +msgid "Currency Rate Type" +msgstr "" + +#. module: base +#: model:res.country,name:base.fm +msgid "Micronesia" +msgstr "" + +#. module: base +#: field:res.widget,content:0 +msgid "Content" +msgstr "" + +#. module: base +#: field:ir.module.module,menus_by_module:0 +#: view:res.groups:0 +msgid "Menus" +msgstr "" + +#. module: base +#: selection:ir.actions.todo,type:0 +msgid "Launch Manually Once" +msgstr "" + +#. module: base +#: model:ir.module.category,name:base.module_category_hidden +msgid "Hidden" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Serbian (Latin) / srpski" +msgstr "" + +#. module: base +#: model:res.country,name:base.il +msgid "Israel" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_syscohada +msgid "OHADA - Accounting" +msgstr "" + +#. module: base +#: help:res.bank,bic:0 +msgid "Sometimes called BIC or Swift." +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_mx +msgid "" +"\n" +"This is the module to manage the accounting chart for Mexico in OpenERP.\n" +"========================================================================\n" +"\n" +"Mexican accounting chart and localization.\n" +" " +msgstr "" + +#. module: base +#: field:res.lang,time_format:0 +msgid "Time Format" +msgstr "" + +#. module: base +#: code:addons/orm.py:2134 +#, python-format +msgid "There is no view of type '%s' defined for the structure!" +msgstr "" + +#. module: base +#: view:ir.module.module:0 +msgid "Defined Reports" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_payterm_form +#: model:ir.model,name:base.model_res_payterm +msgid "Payment term" +msgstr "" + +#. module: base +#: view:ir.actions.report.xml:0 +msgid "Report xml" +msgstr "" + +#. module: base +#: field:base.language.export,modules:0 +#: model:ir.actions.act_window,name:base.action_module_open_categ +#: model:ir.actions.act_window,name:base.open_module_tree +#: field:ir.module.category,module_ids:0 +#: view:ir.module.module:0 +#: model:ir.ui.menu,name:base.menu_management +#: model:ir.ui.menu,name:base.menu_module_tree +msgid "Modules" +msgstr "" + +#. module: base +#: view:workflow.activity:0 +#: selection:workflow.activity,kind:0 +#: field:workflow.activity,subflow_id:0 +#: field:workflow.workitem,subflow_id:0 +msgid "Subflow" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_res_config +msgid "res.config" +msgstr "" + +#. module: base +#: field:workflow.transition,signal:0 +msgid "Signal (button Name)" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_res_bank_form +#: model:ir.ui.menu,name:base.menu_action_res_bank_form +#: view:res.bank:0 +#: field:res.partner,bank_ids:0 +msgid "Banks" +msgstr "" + +#. module: base +#: view:res.log:0 +msgid "Unread" +msgstr "" + +#. module: base +#: field:res.users,id:0 +msgid "ID" +msgstr "" + +#. module: base +#: field:ir.cron,doall:0 +msgid "Repeat Missed" +msgstr "" + +#. module: base +#: code:addons/base/module/wizard/base_module_import.py:69 +#, python-format +msgid "Can not create the module file: %s !" +msgstr "" + +#. module: base +#: field:ir.server.object.lines,server_id:0 +msgid "Object Mapping" +msgstr "" + +#. module: base +#: field:ir.ui.view,xml_id:0 +msgid "External ID" +msgstr "" + +#. module: base +#: help:res.currency.rate,rate:0 +msgid "The rate of the currency to the currency of rate 1" +msgstr "" + +#. module: base +#: model:res.country,name:base.uk +msgid "United Kingdom" +msgstr "" + +#. module: base +#: view:res.config:0 +msgid "res_config_contents" +msgstr "" + +#. module: base +#: help:res.partner.category,active:0 +msgid "The active field allows you to hide the category without removing it." +msgstr "" + +#. module: base +#: report:ir.module.reference.graph:0 +msgid "Object:" +msgstr "" + +#. module: base +#: model:res.country,name:base.bw +msgid "Botswana" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_partner_title_partner +#: model:ir.ui.menu,name:base.menu_partner_title_partner +#: view:res.partner.title:0 +msgid "Partner Titles" +msgstr "" + +#. module: base +#: help:ir.actions.act_window,auto_refresh:0 +msgid "Add an auto-refresh on the view" +msgstr "" + +#. module: base +#: help:res.partner,employee:0 +msgid "Check this box if the partner is an Employee." +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_crm_profiling +msgid "Customer Profiling" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_project_issue +msgid "Issues Tracker" +msgstr "" + +#. module: base +#: selection:ir.cron,interval_type:0 +msgid "Work Days" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_multi_company +msgid "Multi-Company" +msgstr "" + +#. module: base +#: field:ir.actions.report.xml,report_rml_content:0 +#: field:ir.actions.report.xml,report_rml_content_data:0 +msgid "RML content" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_workflow_workitem_form +#: model:ir.ui.menu,name:base.menu_workflow_workitem +msgid "Workitems" +msgstr "" + +#. module: base +#: code:addons/orm.py:1300 +#, python-format +msgid "" +"Please check that all your lines have %d columns.Stopped around line %d " +"having %d columns." +msgstr "" + +#. module: base +#: field:base.language.export,advice:0 +msgid "Advice" +msgstr "" + +#. module: base +#: view:res.company:0 +msgid "Header/Footer of Reports" +msgstr "" + +#. module: base +#: code:addons/base/res/res_users.py:746 +#: view:res.users:0 +#, python-format +msgid "Applications" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_attachment +msgid "ir.attachment" +msgstr "" + +#. module: base +#: code:addons/orm.py:4086 +#, python-format +msgid "" +"You cannot perform this operation. New Record Creation is not allowed for " +"this object as this object is for reporting purpose." +msgstr "" + +#. module: base +#: help:ir.model.fields,translate:0 +msgid "" +"Whether values for this field can be translated (enables the translation " +"mechanism for that field)" +msgstr "" + +#. module: base +#: selection:res.currency,position:0 +msgid "After Amount" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Lithuanian / Lietuvių kalba" +msgstr "" + +#. module: base +#: help:ir.actions.server,record_id:0 +msgid "" +"Provide the field name where the record id is stored after the create " +"operations. If it is empty, you can not track the new record." +msgstr "" + +#. module: base +#: help:ir.model.fields,relation:0 +msgid "For relationship fields, the technical name of the target model" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Indonesian / Bahasa Indonesia" +msgstr "" + +#. module: base +#: help:base.language.import,overwrite:0 +msgid "" +"If you enable this option, existing translations (including custom ones) " +"will be overwritten and replaced by those in this file" +msgstr "" + +#. module: base +#: field:ir.ui.view,inherit_id:0 +msgid "Inherited View" +msgstr "" + +#. module: base +#: view:ir.translation:0 +msgid "Source Term" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_hr_timesheet_sheet +msgid "Timesheets Validation" +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.menu_main_pm +msgid "Project" +msgstr "" + +#. module: base +#: field:ir.ui.menu,web_icon_hover_data:0 +msgid "Web Icon Image (hover)" +msgstr "" + +#. module: base +#: view:base.module.import:0 +msgid "Module file successfully imported!" +msgstr "" + +#. module: base +#: model:res.country,name:base.ws +msgid "Samoa" +msgstr "" + +#. module: base +#: field:publisher_warranty.contract,name:0 +#: field:publisher_warranty.contract.wizard,name:0 +msgid "Serial Key" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_hr_timesheet +msgid "Timesheets" +msgstr "" + +#. module: base +#: field:res.partner,function:0 +msgid "function" +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.menu_audit +msgid "Audit" +msgstr "" + +#. module: base +#: help:ir.values,company_id:0 +msgid "If set, action binding only applies for this company" +msgstr "" + +#. module: base +#: model:res.country,name:base.lc +msgid "Saint Lucia" +msgstr "" + +#. module: base +#: help:res.users,new_password:0 +msgid "" +"Specify a value only when creating a user or if you're changing the user's " +"password, otherwise leave empty. After a change of password, the user has to " +"login again." +msgstr "" + +#. module: base +#: view:publisher_warranty.contract:0 +msgid "Maintenance Contract" +msgstr "" + +#. module: base +#: model:res.groups,name:base.group_user +#: field:res.partner,employee:0 +msgid "Employee" +msgstr "" + +#. module: base +#: field:ir.model.access,perm_create:0 +msgid "Create Access" +msgstr "" + +#. module: base +#: field:res.bank,state:0 +#: field:res.company,state_id:0 +#: field:res.partner.address,state_id:0 +#: field:res.partner.bank,state_id:0 +msgid "Fed. State" +msgstr "" + +#. module: base +#: field:ir.actions.server,copy_object:0 +msgid "Copy Of" +msgstr "" + +#. module: base +#: field:ir.model,osv_memory:0 +msgid "In-memory model" +msgstr "" + +#. module: base +#: view:partner.clear.ids:0 +msgid "Clear Ids" +msgstr "" + +#. module: base +#: view:res.partner:0 +#: view:res.partner.address:0 +msgid "Edit" +msgstr "" + +#. module: base +#: field:ir.actions.client,params:0 +msgid "Supplementary arguments" +msgstr "" + +#. module: base +#: field:res.users,view:0 +msgid "Interface" +msgstr "" + +#. module: base +#: view:ir.actions.server:0 +msgid "Field Mapping" +msgstr "" + +#. module: base +#: view:publisher_warranty.contract:0 +msgid "Refresh Validation Dates" +msgstr "" + +#. module: base +#: field:ir.model.fields,ttype:0 +msgid "Field Type" +msgstr "" + +#. module: base +#: field:res.country.state,code:0 +msgid "State Code" +msgstr "" + +#. module: base +#: field:ir.model.fields,on_delete:0 +msgid "On delete" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_multilang +msgid "Multi Language Chart of Accounts" +msgstr "" + +#. module: base +#: selection:res.lang,direction:0 +msgid "Left-to-Right" +msgstr "" + +#. module: base +#: view:res.lang:0 +#: field:res.lang,translatable:0 +msgid "Translatable" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_analytic +msgid "" +"\n" +"Module for defining analytic accounting object.\n" +"===============================================\n" +"\n" +"In OpenERP, analytic accounts are linked to general accounts but are " +"treated\n" +"totally independently. So you can enter various different analytic " +"operations\n" +"that have no counterpart in the general financial accounts.\n" +" " +msgstr "" + +#. module: base +#: field:res.users,signature:0 +msgid "Signature" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_crm_caldav +msgid "Meetings Synchronization" +msgstr "" + +#. module: base +#: field:ir.actions.act_window,context:0 +#: field:ir.filters,context:0 +msgid "Context Value" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_res_widget_user +msgid "res.widget.user" +msgstr "" + +#. module: base +#: field:res.partner.category,complete_name:0 +msgid "Full Name" +msgstr "" + +#. module: base +#: view:base.module.configuration:0 +msgid "_Ok" +msgstr "" + +#. module: base +#: code:addons/base/module/module.py:238 +#, python-format +msgid "The name of the module must be unique !" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_base_contact +msgid "Contacts Management" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_fr_rib +msgid "" +"\n" +"This module lets users enter the banking details of Partners in the RIB " +"format (French standard for bank accounts details).\n" +"RIB Bank Accounts can be entered in the \"Accounting\" tab of the Partner " +"form by specifying the account type \"RIB\". The four standard RIB fields " +"will then become mandatory:\n" +"- Bank Code\n" +"- Office Code\n" +"- Account number\n" +"- RIB key\n" +"As a safety measure, OpenERP will check the RIB key whenever a RIB is saved, " +"and will refuse to record the data if the key is incorrect. Please bear in " +"mind that this can only happen when the user presses the \"save\" button, " +"for example on the Partner Form.\n" +"Since each bank account may relate to a Bank, users may enter the RIB Bank " +"Code in the Bank form - it will the pre-fill the Bank Code on the RIB when " +"they select the Bank. \n" +"To make this easier, this module will also let users find Banks using their " +"RIB code.\n" +"\n" +"The module base_iban can be a useful addition to this module, because French " +"banks are now progressively adopting the international IBAN format instead " +"of the RIB format.\n" +"The RIB and IBAN codes for a single account can be entered by recording two " +"Bank Accounts in OpenERP: the first with the type \"RIB\", the second with " +"the type \"IBAN\". \n" +msgstr "" + +#. module: base +#: view:ir.property:0 +msgid "Parameters that are used by all resources." +msgstr "" + +#. module: base +#: model:res.country,name:base.mz +msgid "Mozambique" +msgstr "" + +#. module: base +#: help:ir.values,action_id:0 +msgid "" +"Action bound to this entry - helper field for binding an action, will " +"automatically set the correct reference" +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.menu_project_long_term +msgid "Long Term Planning" +msgstr "" + +#. module: base +#: field:ir.actions.server,message:0 +#: field:partner.massmail.wizard,text:0 +#: view:partner.sms.send:0 +#: field:res.log,name:0 +msgid "Message" +msgstr "" + +#. module: base +#: field:ir.actions.act_window.view,multi:0 +msgid "On Multiple Doc." +msgstr "" + +#. module: base +#: view:res.partner:0 +#: field:res.partner,user_id:0 +msgid "Salesman" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_account_accountant +msgid "Accounting and Finance" +msgstr "" + +#. module: base +#: code:addons/base/module/module.py:429 +#: view:ir.module.module:0 +#, python-format +msgid "Upgrade" +msgstr "" + +#. module: base +#: field:res.partner,address:0 +#: view:res.partner.address:0 +msgid "Contacts" +msgstr "" + +#. module: base +#: model:res.country,name:base.fo +msgid "Faroe Islands" +msgstr "" + +#. module: base +#: field:ir.mail_server,smtp_encryption:0 +msgid "Connection Security" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_actions.py:653 +#, python-format +msgid "Please specify an action to launch !" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_us +msgid "" +"\n" +" United States - Chart of accounts\n" +" " +msgstr "" + +#. module: base +#: view:res.widget.wizard:0 +msgid "Add" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_ec +msgid "Ecuador - Accounting" +msgstr "" + +#. module: base +#: field:res.partner.category,name:0 +msgid "Category Name" +msgstr "" + +#. module: base +#: view:res.widget:0 +msgid "Widgets" +msgstr "" + +#. module: base +#: model:res.country,name:base.cz +msgid "Czech Republic" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_hr +msgid "" +"\n" +"Module for human resource management.\n" +"=====================================\n" +"\n" +"You can manage:\n" +" * Employees and hierarchies : You can define your employee with User and " +"display hierarchies\n" +" * HR Departments\n" +" * HR Jobs\n" +" " +msgstr "" + +#. module: base +#: view:res.widget.wizard:0 +msgid "Widget Wizard" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_hn +msgid "Honduras - Accounting" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_report_intrastat +msgid "Intrastat Reporting" +msgstr "" + +#. module: base +#: code:addons/base/res/res_users.py:222 +#, python-format +msgid "" +"Please use the change password wizard (in User Preferences or User menu) to " +"change your own password." +msgstr "" + +#. module: base +#: code:addons/orm.py:1883 +#, python-format +msgid "Insufficient fields for Calendar View!" +msgstr "" + +#. module: base +#: selection:ir.property,type:0 +msgid "Integer" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Hindi / हिंदी" +msgstr "" + +#. module: base +#: help:res.users,company_id:0 +msgid "The company this user is currently working for." +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_wizard_ir_model_menu_create +msgid "wizard.ir.model.menu.create" +msgstr "" + +#. module: base +#: view:workflow.transition:0 +msgid "Transition" +msgstr "" + +#. module: base +#: field:ir.cron,active:0 +#: field:ir.sequence,active:0 +#: field:res.bank,active:0 +#: field:res.currency,active:0 +#: field:res.lang,active:0 +#: field:res.partner,active:0 +#: field:res.partner.address,active:0 +#: field:res.partner.category,active:0 +#: field:res.request,active:0 +#: field:res.users,active:0 +#: view:workflow.instance:0 +#: view:workflow.workitem:0 +msgid "Active" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_ma +msgid "Maroc - Accounting" +msgstr "" + +#. module: base +#: model:res.country,name:base.mn +msgid "Mongolia" +msgstr "" + +#. module: base +#: view:ir.module.module:0 +msgid "Created Menus" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_account_analytic_default +msgid "Account Analytic Defaults" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_hr_contract +msgid "" +"\n" +"Add all information on the employee form to manage contracts.\n" +"=============================================================\n" +"\n" +" * Marital status,\n" +" * Security number,\n" +" * Place of birth, birth date, ...\n" +"\n" +"You can assign several contracts per employee.\n" +" " +msgstr "" + +#. module: base +#: selection:ir.ui.view,type:0 +msgid "mdx" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_sale_crm +msgid "" +"\n" +"This module adds a shortcut on one or several opportunity cases in the CRM.\n" +"===========================================================================\n" +"\n" +"This shortcut allows you to generate a sales order based on the selected " +"case.\n" +"If different cases are open (a list), it generates one sale order by\n" +"case.\n" +"The case is then closed and linked to the generated sales order.\n" +"\n" +"We suggest you to install this module if you installed both the sale and " +"the\n" +"crm modules.\n" +" " +msgstr "" + +#. module: base +#: model:res.country,name:base.bi +msgid "Burundi" +msgstr "" + +#. module: base +#: view:base.language.install:0 +#: view:base.module.import:0 +#: view:base.module.update:0 +#: view:publisher_warranty.contract.wizard:0 +#: view:res.request:0 +msgid "Close" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Spanish (MX) / Español (MX)" +msgstr "" + +#. module: base +#: code:addons/base/publisher_warranty/publisher_warranty.py:145 +#, python-format +msgid "Please verify your publisher warranty serial number and validity." +msgstr "" + +#. module: base +#: view:res.log:0 +msgid "My Logs" +msgstr "" + +#. module: base +#: model:res.country,name:base.bt +msgid "Bhutan" +msgstr "" + +#. module: base +#: help:ir.sequence,number_next:0 +msgid "Next number of this sequence" +msgstr "" + +#. module: base +#: model:res.partner.category,name:base.res_partner_category_11 +msgid "Textile Suppliers" +msgstr "" + +#. module: base +#: selection:ir.actions.url,target:0 +msgid "This Window" +msgstr "" + +#. module: base +#: view:publisher_warranty.contract:0 +msgid "Publisher Warranty Contracts" +msgstr "" + +#. module: base +#: help:res.log,name:0 +msgid "The logging message." +msgstr "" + +#. module: base +#: field:base.language.export,format:0 +msgid "File Format" +msgstr "" + +#. module: base +#: field:res.lang,iso_code:0 +msgid "ISO code" +msgstr "" + +#. module: base +#: view:res.log:0 +#: field:res.log,read:0 +msgid "Read" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_association +msgid "Associations Management" +msgstr "" + +#. module: base +#: help:ir.model,modules:0 +msgid "List of modules in which the object is defined or inherited" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_hr_payroll +msgid "Payroll" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,help:base.action_country_state +msgid "" +"If you are working on the American market, you can manage the different " +"federal states you are working on from here. Each state is attached to one " +"country." +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_delivery +msgid "" +"\n" +"Allows you to add delivery methods in sale orders and picking.\n" +"==============================================================\n" +"\n" +"You can define your own carrier and delivery grids for prices.\n" +"When creating invoices from picking, OpenERP is able to add and compute the " +"shipping line.\n" +"\n" +" " +msgstr "" + +#. module: base +#: view:workflow.workitem:0 +msgid "Workflow Workitems" +msgstr "" + +#. module: base +#: model:res.country,name:base.vc +msgid "Saint Vincent & Grenadines" +msgstr "" + +#. module: base +#: field:ir.mail_server,smtp_pass:0 +#: field:partner.sms.send,password:0 +#: field:res.users,password:0 +msgid "Password" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_account_anglo_saxon +msgid "" +"\n" +"This module supports the Anglo-Saxon accounting methodology by changing the " +"accounting logic with stock transactions.\n" +"=============================================================================" +"========================================\n" +"\n" +"The difference between the Anglo-Saxon accounting countries\n" +"and the Rhine or also called Continental accounting countries is the moment " +"of taking the Cost of Goods Sold versus Cost of Sales.\n" +"Anglo-Saxons accounting does take the cost when sales invoice is created, " +"Continental accounting will take the cost at the moment the goods are " +"shipped.\n" +"This module will add this functionality by using a interim account, to store " +"the value of shipped goods and will contra book this interim account\n" +"when the invoice is created to transfer this amount to the debtor or " +"creditor account.\n" +"Secondly, price differences between actual purchase price and fixed product " +"standard price are booked on a separate account" +msgstr "" + +#. module: base +#: field:res.partner,title:0 +msgid "Partner Firm" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_model_fields +#: view:ir.model:0 +#: field:ir.model,field_id:0 +#: model:ir.model,name:base.model_ir_model_fields +#: view:ir.model.fields:0 +#: model:ir.ui.menu,name:base.ir_model_model_fields +msgid "Fields" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_partner_employee_form +msgid "Employees" +msgstr "" + +#. module: base +#: field:ir.exports.line,name:0 +#: field:ir.translation,name:0 +#: field:res.partner.bank.type.field,name:0 +msgid "Field Name" +msgstr "" + +#. module: base +#: help:res.log,read:0 +msgid "" +"If this log item has been read, get() should not send it to the client" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_web_uservoice +msgid "" +"\n" +"Add Feedback button in header.\n" +"==============================\n" +"\n" +"Invite OpenERP user feedback, powered by uservoice.\n" +" " +msgstr "" + +#. module: base +#: field:res.company,rml_header2:0 +#: field:res.company,rml_header3:0 +msgid "RML Internal Header" +msgstr "" + +#. module: base +#: field:ir.actions.act_window,search_view_id:0 +msgid "Search View Ref." +msgstr "" + +#. module: base +#: field:ir.module.module,installed_version:0 +msgid "Latest version" +msgstr "" + +#. module: base +#: view:ir.mail_server:0 +msgid "Test Connection" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_partner_address_form +#: model:ir.ui.menu,name:base.menu_partner_address_form +msgid "Addresses" +msgstr "" + +#. module: base +#: model:res.country,name:base.mm +msgid "Myanmar" +msgstr "" + +#. module: base +#: help:ir.model.fields,modules:0 +msgid "List of modules in which the field is defined" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Chinese (CN) / 简体中文" +msgstr "" + +#. module: base +#: field:res.bank,street:0 +#: field:res.company,street:0 +#: field:res.partner.address,street:0 +#: field:res.partner.bank,street:0 +msgid "Street" +msgstr "" + +#. module: base +#: model:res.country,name:base.yu +msgid "Yugoslavia" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_purchase_double_validation +msgid "" +"\n" +"Double-validation for purchases exceeding minimum amount.\n" +"=========================================================\n" +"\n" +"This module modifies the purchase workflow in order to validate purchases\n" +"that exceeds minimum amount set by configuration wizard.\n" +" " +msgstr "" + +#. module: base +#: field:res.currency,rounding:0 +msgid "Rounding Factor" +msgstr "" + +#. module: base +#: model:res.country,name:base.ca +msgid "Canada" +msgstr "" + +#. module: base +#: code:addons/base/res/res_company.py:158 +#, python-format +msgid "Reg: " +msgstr "" + +#. module: base +#: help:res.currency.rate,currency_rate_type_id:0 +msgid "" +"Allow you to define your own currency rate types, like 'Average' or 'Year to " +"Date'. Leave empty if you simply want to use the normal 'spot' rate type" +msgstr "" + +#. module: base +#: selection:ir.module.module.dependency,state:0 +msgid "Unknown" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_res_users_my +msgid "Change My Preferences" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_actions.py:167 +#, python-format +msgid "Invalid model name in the action definition." +msgstr "" + +#. module: base +#: field:partner.sms.send,text:0 +msgid "SMS Message" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_ro +msgid "" +"\n" +"This is the module to manage the accounting chart, VAT structure and " +"Registration Number for Romania in OpenERP.\n" +"=============================================================================" +"===================================\n" +"\n" +"Romanian accounting chart and localization.\n" +" " +msgstr "" + +#. module: base +#: model:res.country,name:base.cm +msgid "Cameroon" +msgstr "" + +#. module: base +#: model:res.country,name:base.bf +msgid "Burkina Faso" +msgstr "" + +#. module: base +#: selection:ir.model.fields,state:0 +msgid "Custom Field" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_project_retro_planning +msgid "" +"\n" +"Changes dates according to change in project End Date.\n" +"======================================================\n" +"\n" +"If end date of project is changed then the deadline date and start date for " +"all the tasks will change accordingly.\n" +" " +msgstr "" + +#. module: base +#: help:res.users,view:0 +msgid "" +"OpenERP offers a simplified and an extended user interface. If you use " +"OpenERP for the first time we strongly advise you to select the simplified " +"interface, which has less features but is easier to use. You can switch to " +"the other interface from the User/Preferences menu at any time." +msgstr "" + +#. module: base +#: model:res.country,name:base.cc +msgid "Cocos (Keeling) Islands" +msgstr "" + +#. module: base +#: selection:base.language.install,state:0 +#: selection:base.module.import,state:0 +#: selection:base.module.update,state:0 +msgid "init" +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "11. %U or %W ==> 48 (49th week)" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_res_partner_bank_type_field +msgid "Bank type fields" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Dutch / Nederlands" +msgstr "" + +#. module: base +#: selection:res.company,paper_format:0 +msgid "US Letter" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_stock_location +msgid "" +"\n" +"This module supplements the Warehouse application by effectively " +"implementing Push and Pull inventory flows.\n" +"=============================================================================" +"===============================\n" +"\n" +"Typically this could be used to:\n" +" * Manage product manufacturing chains\n" +" * Manage default locations per product\n" +" * Define routes within your warehouse according to business needs, such " +"as:\n" +" - Quality Control\n" +" - After Sales Services\n" +" - Supplier Returns\n" +"\n" +" * Help rental management, by generating automated return moves for " +"rented products\n" +"\n" +"Once this module is installed, an additional tab appear on the product form, " +"where you can add\n" +"Push and Pull flow specifications. The demo data of CPU1 product for that " +"push/pull :\n" +"\n" +"Push flows\n" +"----------\n" +"Push flows are useful when the arrival of certain products in a given " +"location should always\n" +"be followed by a corresponding move to another location, optionally after a " +"certain delay.\n" +"The original Warehouse application already supports such Push flow " +"specifications on the\n" +"Locations themselves, but these cannot be refined per-product.\n" +"\n" +"A push flow specification indicates which location is chained with which " +"location, and with\n" +"what parameters. As soon as a given quantity of products is moved in the " +"source location,\n" +"a chained move is automatically foreseen according to the parameters set on " +"the flow specification\n" +"(destination location, delay, type of move, journal, etc.) The new move can " +"be automatically\n" +"processed, or require a manual confirmation, depending on the parameters.\n" +"\n" +"Pull flows\n" +"----------\n" +"Pull flows are a bit different from Push flows, in the sense that they are " +"not related to\n" +"the processing of product moves, but rather to the processing of procurement " +"orders.\n" +"What is being pulled is a need, not directly products.\n" +"A classical example of Pull flow is when you have an Outlet company, with a " +"parent Company\n" +"that is responsible for the supplies of the Outlet.\n" +"\n" +" [ Customer ] <- A - [ Outlet ] <- B - [ Holding ] <~ C ~ [ Supplier ]\n" +"\n" +"When a new procurement order (A, coming from the confirmation of a Sale " +"Order for example) arrives\n" +"in the Outlet, it is converted into another procurement (B, via a Pull flow " +"of type 'move')\n" +"requested from the Holding. When procurement order B is processed by the " +"Holding company, and\n" +"if the product is out of stock, it can be converted into a Purchase Order " +"(C) from the Supplier\n" +"(Pull flow of type Purchase). The result is that the procurement order, the " +"need, is pushed\n" +"all the way between the Customer and Supplier.\n" +"\n" +"Technically, Pull flows allow to process procurement orders differently, not " +"only depending on\n" +"the product being considered, but also depending on which location holds the " +"\"need\" for that\n" +"product (i.e. the destination location of that procurement order).\n" +"\n" +"Use-Case\n" +"--------\n" +"\n" +"You can use the demo data as follow:\n" +" CPU1: Sell some CPU1 from Shop 1 and run the scheduler\n" +" - Warehouse: delivery order, Shop 1: reception\n" +" CPU3:\n" +" - When receiving the product, it goes to Quality Control location then " +"stored to shelf 2.\n" +" - When delivering the customer: Pick List -> Packing -> Delivery Order " +"from Gate A\n" +" " +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_marketing +msgid "" +"\n" +"Menu for Marketing.\n" +"===================\n" +"\n" +"Contains the installer for marketing-related modules.\n" +" " +msgstr "" + +#. module: base +#: model:ir.module.category,name:base.module_category_knowledge_management +msgid "Knowledge Management" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.bank_account_update +msgid "Company Bank Accounts" +msgstr "" + +#. module: base +#: help:ir.mail_server,smtp_pass:0 +msgid "Optional password for SMTP authentication" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_project_mrp +msgid "" +"\n" +"Automatically creates project tasks from procurement lines\n" +"==========================================================\n" +"\n" +"This module will automatically create a new task for each procurement\n" +"order line (e.g. for sale order lines), if the corresponding product\n" +"meets the following characteristics:\n" +"\n" +" * Type = Service\n" +" * Procurement method (Order fulfillment) = MTO (make to order)\n" +" * Supply/Procurement method = Produce\n" +"\n" +"If on top of that a projet is specified on the product form (in the " +"Procurement\n" +"tab), then the new task will be created in that specific project.\n" +"Otherwise, the new task will not belong to any project, and may be added to " +"a\n" +"project manually later.\n" +"\n" +"When the project task is completed or cancelled, the workflow of the " +"corresponding\n" +"procurement line is updated accordingly. For example if this procurement " +"corresponds\n" +"to a sale order line, the sale order line will be considered delivered when " +"the\n" +"task is completed.\n" +"\n" +msgstr "" + +#. module: base +#: code:addons/base/res/res_config.py:348 +#, python-format +msgid "" +"\n" +"\n" +"This addon is already installed on your system" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_account_check_writing +msgid "" +"\n" +" Module for the Check writing and check printing \n" +" " +msgstr "" + +#. module: base +#: model:res.partner.bank.type,name:base.bank_normal +msgid "Normal Bank Account" +msgstr "" + +#. module: base +#: view:ir.actions.wizard:0 +#: field:wizard.ir.model.menu.create.line,wizard_id:0 +msgid "Wizard" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_project_mailgate +msgid "" +"\n" +"This module can automatically create Project Tasks based on incoming emails\n" +"===========================================================================\n" +"\n" +"Allows creating tasks based on new emails arriving at a given mailbox,\n" +"similarly to what the CRM application has for Leads/Opportunities.\n" +"There are two common alternatives to configure the mailbox integration:\n" +"\n" +" * Install the ``fetchmail`` module and configure a new mailbox, then " +"select\n" +" ``Project Tasks`` as the target for incoming emails.\n" +" * Set it up manually on your mail server based on the 'mail gateway' " +"script\n" +" provided in the ``mail`` module - and connect it to the `project.task` " +"model.\n" +"\n" +"\n" +" " +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_membership +msgid "" +"\n" +"This module allows you to manage all operations for managing memberships.\n" +"=========================================================================\n" +"\n" +"It supports different kind of members:\n" +"* Free member\n" +"* Associated member (eg.: a group subscribes to a membership for all " +"subsidiaries)\n" +"* Paid members,\n" +"* Special member prices, ...\n" +"\n" +"It is integrated with sales and accounting to allow you to automatically\n" +"invoice and send propositions for membership renewal.\n" +" " +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_hr_attendance +msgid "" +"\n" +"This module aims to manage employee's attendances.\n" +"==================================================\n" +"\n" +"Keeps account of the attendances of the employees on the basis of the\n" +"actions(Sign in/Sign out) performed by them.\n" +" " +msgstr "" + +#. module: base +#: field:ir.module.module,maintainer:0 +msgid "Maintainer" +msgstr "" + +#. module: base +#: field:ir.sequence,suffix:0 +msgid "Suffix" +msgstr "" + +#. module: base +#: model:res.country,name:base.mo +msgid "Macau" +msgstr "" + +#. module: base +#: model:ir.actions.report.xml,name:base.res_partner_address_report +msgid "Labels" +msgstr "" + +#. module: base +#: field:partner.massmail.wizard,email_from:0 +msgid "Sender's email" +msgstr "" + +#. module: base +#: field:ir.default,field_name:0 +msgid "Object Field" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Spanish (PE) / Español (PE)" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "French (CH) / Français (CH)" +msgstr "" + +#. module: base +#: help:ir.actions.server,subject:0 +msgid "" +"Email subject, may contain expressions enclosed in double brackets based on " +"the same values as those available in the condition field, e.g. `Hello [[ " +"object.partner_id.name ]]`" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_account_sequence +msgid "" +"\n" +"This module maintains internal sequence number for accounting entries.\n" +"======================================================================\n" +"\n" +"Allows you to configure the accounting sequences to be maintained.\n" +"\n" +"You can customize the following attributes of the sequence:\n" +" * Prefix\n" +" * Suffix\n" +" * Next Number\n" +" * Increment Number\n" +" * Number Padding\n" +" " +msgstr "" + +#. module: base +#: model:res.country,name:base.to +msgid "Tonga" +msgstr "" + +#. module: base +#: help:ir.model.fields,serialization_field_id:0 +msgid "" +"If set, this field will be stored in the sparse structure of the " +"serialization field, instead of having its own database column. This cannot " +"be changed after creation." +msgstr "" + +#. module: base +#: view:res.partner.bank:0 +msgid "Bank accounts belonging to one of your companies" +msgstr "" + +#. module: base +#: help:res.users,action_id:0 +msgid "" +"If specified, this action will be opened at logon for this user, in addition " +"to the standard menu." +msgstr "" + +#. module: base +#: selection:ir.module.module,complexity:0 +msgid "Easy" +msgstr "" + +#. module: base +#: view:ir.values:0 +msgid "Client Actions" +msgstr "" + +#. module: base +#: help:ir.actions.server,trigger_obj_id:0 +msgid "" +"The field on the current object that links to the target object record (must " +"be a many2one, or an integer field with the record ID)" +msgstr "" + +#. module: base +#: code:addons/base/module/module.py:423 +#, python-format +msgid "" +"You try to upgrade a module that depends on the module: %s.\n" +"But this module is not available in your system." +msgstr "" + +#. module: base +#: field:workflow.transition,act_to:0 +msgid "Destination Activity" +msgstr "" + +#. module: base +#: help:res.currency,position:0 +msgid "" +"Determines where the currency symbol should be placed after or before the " +"amount." +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_base_update_translations +msgid "base.update.translations" +msgstr "" + +#. module: base +#: field:res.partner.category,parent_id:0 +msgid "Parent Category" +msgstr "" + +#. module: base +#: selection:ir.property,type:0 +msgid "Integer Big" +msgstr "" + +#. module: base +#: selection:res.partner.address,type:0 +#: selection:res.partner.title,domain:0 +msgid "Contact" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_at +msgid "Austria - Accounting" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_ui_menu +msgid "ir.ui.menu" +msgstr "" + +#. module: base +#: model:ir.module.category,name:base.module_category_project_management +#: model:ir.module.module,shortdesc:base.module_project +msgid "Project Management" +msgstr "" + +#. module: base +#: model:res.country,name:base.us +msgid "United States" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_crm_fundraising +msgid "Fundraising" +msgstr "" + +#. module: base +#: view:ir.module.module:0 +msgid "Cancel Uninstall" +msgstr "" + +#. module: base +#: view:res.bank:0 +#: view:res.partner:0 +#: view:res.partner.address:0 +msgid "Communication" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_analytic +msgid "Analytic Accounting" +msgstr "" + +#. module: base +#: view:ir.actions.report.xml:0 +msgid "RML Report" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_server_object_lines +msgid "ir.server.object.lines" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_be +msgid "Belgium - Accounting" +msgstr "" + +#. module: base +#: code:addons/base/module/module.py:622 +#, python-format +msgid "Module %s: Invalid Quality Certificate" +msgstr "" + +#. module: base +#: model:res.country,name:base.kw +msgid "Kuwait" +msgstr "" + +#. module: base +#: field:workflow.workitem,inst_id:0 +msgid "Instance" +msgstr "" + +#. module: base +#: help:ir.actions.report.xml,attachment:0 +msgid "" +"This is the filename of the attachment used to store the printing result. " +"Keep empty to not save the printed reports. You can use a python expression " +"with the object and time variables." +msgstr "" + +#. module: base +#: sql_constraint:ir.model.data:0 +msgid "" +"You cannot have multiple records with the same external ID in the same " +"module!" +msgstr "" + +#. module: base +#: selection:ir.property,type:0 +msgid "Many2One" +msgstr "" + +#. module: base +#: model:res.country,name:base.ng +msgid "Nigeria" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_crm_caldav +msgid "" +"\n" +"Caldav features in Meeting.\n" +"===========================\n" +"\n" +" * Share meeting with other calendar clients like sunbird\n" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_base_iban +msgid "IBAN Bank Accounts" +msgstr "" + +#. module: base +#: field:res.company,user_ids:0 +msgid "Accepted Users" +msgstr "" + +#. module: base +#: field:ir.ui.menu,web_icon_data:0 +msgid "Web Icon Image" +msgstr "" + +#. module: base +#: field:ir.actions.server,wkf_model_id:0 +msgid "Target Object" +msgstr "" + +#. module: base +#: selection:ir.model.fields,select_level:0 +msgid "Always Searchable" +msgstr "" + +#. module: base +#: model:res.country,name:base.hk +msgid "Hong Kong" +msgstr "" + +#. module: base +#: field:ir.default,ref_id:0 +msgid "ID Ref." +msgstr "" + +#. module: base +#: model:ir.actions.act_window,help:base.action_partner_address_form +msgid "" +"Customers (also called Partners in other areas of the system) helps you " +"manage your address book of companies whether they are prospects, customers " +"and/or suppliers. The partner form allows you to track and record all the " +"necessary information to interact with your partners from the company " +"address to their contacts as well as pricelists, and much more. If you " +"installed the CRM, with the history tab, you can track all the interactions " +"with a partner such as opportunities, emails, or sales orders issued." +msgstr "" + +#. module: base +#: model:res.country,name:base.ph +msgid "Philippines" +msgstr "" + +#. module: base +#: model:res.country,name:base.ma +msgid "Morocco" +msgstr "" + +#. module: base +#: help:ir.values,model_id:0 +msgid "" +"Model to which this entry applies - helper field for setting a model, will " +"automatically set the correct model name" +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "2. %a ,%A ==> Fri, Friday" +msgstr "" + +#. module: base +#: view:res.request.history:0 +msgid "Request History" +msgstr "" + +#. module: base +#: help:ir.rule,global:0 +msgid "If no group is specified the rule is global and applied to everyone" +msgstr "" + +#. module: base +#: model:res.country,name:base.td +msgid "Chad" +msgstr "" + +#. module: base +#: help:ir.cron,priority:0 +msgid "" +"The priority of the job, as an integer: 0 means higher priority, 10 means " +"lower priority." +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_workflow_transition +msgid "workflow.transition" +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "%a - Abbreviated weekday name." +msgstr "" + +#. module: base +#: view:ir.ui.menu:0 +msgid "Submenus" +msgstr "" + +#. module: base +#: model:res.groups,name:base.group_extended +msgid "Extended View" +msgstr "" + +#. module: base +#: model:res.country,name:base.pf +msgid "Polynesia (French)" +msgstr "" + +#. module: base +#: model:res.country,name:base.dm +msgid "Dominica" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_base_module_record +msgid "Record and Create Modules" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_partner_sms_send +#: view:partner.sms.send:0 +msgid "Send SMS" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_hr_holidays +msgid "" +"\n" +"This module allows you to manage leaves and leaves' requests.\n" +"=============================================================\n" +"\n" +"Implements a dashboard for human resource management that includes.\n" +" * Leaves\n" +"\n" +"Note that:\n" +" - A synchronisation with an internal agenda (use of the CRM module) is " +"possible: in order to automatically create a case when an holiday request is " +"accepted, you have to link the holidays status to a case section. You can " +"set up this info and your colour preferences in\n" +" Human Resources/Configuration/Holidays/Leave Type\n" +" - An employee can make an ask for more off-days by making a new " +"Allocation It will increase his total of that leave type available (if the " +"request is accepted).\n" +" - There are two ways to print the employee's holidays:\n" +" * The first will allow to choose employees by department and is used " +"by clicking the menu item located in\n" +" Human Resources/Reporting/Holidays/Leaves by Department\n" +" * The second will allow you to choose the holidays report for " +"specific employees. Go on the list\n" +" Human Resources/Human Resources/Employees\n" +" then select the ones you want to choose, click on the print " +"icon and select the option\n" +" 'Employee's Holidays'\n" +" - The wizard allows you to choose if you want to print either the " +"Confirmed & Validated holidays or only the Validated ones. These states must " +"be set up by a user from the group 'HR'. You can define these features in " +"the security tab from the user data in\n" +" Administration / Users / Users\n" +" for example, you maybe will do it for the user 'admin'.\n" +msgstr "" + +#. module: base +#: field:ir.actions.report.xml,report_xsl:0 +msgid "XSL path" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_account_invoice_layout +msgid "Invoice Layouts" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_stock_location +msgid "Advanced Routes" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_pad +msgid "Collaborative Pads" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_account_anglo_saxon +msgid "Anglo-Saxon Accounting" +msgstr "" + +#. module: base +#: model:res.country,name:base.np +msgid "Nepal" +msgstr "" + +#. module: base +#: help:res.groups,implied_ids:0 +msgid "Users of this group automatically inherit those groups" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_hr_attendance +msgid "Attendances" +msgstr "" + +#. module: base +#: field:ir.module.category,visible:0 +msgid "Visible" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_ui_view_custom +#: model:ir.ui.menu,name:base.menu_action_ui_view_custom +#: view:ir.ui.view.custom:0 +msgid "Customized Views" +msgstr "" + +#. module: base +#: view:partner.sms.send:0 +msgid "Bulk SMS send" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_wiki_quality_manual +msgid "" +"\n" +"Quality Manual Template.\n" +"========================\n" +"\n" +"It provides demo data, thereby creating a Wiki Group and a Wiki Page\n" +"for Wiki Quality Manual.\n" +" " +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.act_values_form_action +#: model:ir.ui.menu,name:base.menu_values_form_action +#: view:ir.values:0 +msgid "Action Bindings" +msgstr "" + +#. module: base +#: view:ir.sequence:0 +msgid "Seconde: %(sec)s" +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.menu_view_base_module_update +msgid "Update Modules List" +msgstr "" + +#. module: base +#: code:addons/base/module/module.py:295 +#, python-format +msgid "" +"Unable to upgrade module \"%s\" because an external dependency is not met: %s" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_account +msgid "eInvoicing" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_association +msgid "" +"\n" +"This module is to configure modules related to an association.\n" +"==============================================================\n" +"\n" +"It installs the profile for associations to manage events, registrations, " +"memberships, membership products (schemes), etc.\n" +" " +msgstr "" + +#. module: base +#: code:addons/orm.py:2693 +#, python-format +msgid "The value \"%s\" for the field \"%s.%s\" is not in the selection" +msgstr "" + +#. module: base +#: view:ir.actions.configuration.wizard:0 +msgid "Continue" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Thai / ภาษาไทย" +msgstr "" + +#. module: base +#: code:addons/orm.py:343 +#, python-format +msgid "Object %s does not exists" +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "%j - Day of the year [001,366]." +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Slovenian / slovenščina" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_wiki +msgid "Wiki" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_de +msgid "" +"\n" +"Dieses Modul beinhaltet einen deutschen Kontenrahmen basierend auf dem " +"SKR03.\n" +"=============================================================================" +"=\n" +"\n" +"German accounting chart and localization.\n" +" " +msgstr "" + +#. module: base +#: field:ir.actions.report.xml,attachment_use:0 +msgid "Reload from Attachment" +msgstr "" + +#. module: base +#: view:ir.module.module:0 +msgid "Hide technical modules" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_procurement +msgid "" +"\n" +"This is the module for computing Procurements.\n" +"==============================================\n" +"\n" +"In the MRP process, procurements orders are created to launch manufacturing\n" +"orders, purchase orders, stock allocations, etc. Procurement orders are\n" +"generated automatically by the system and unless there is a problem, the\n" +"user will not be notified. In case of problems, the system will raise some\n" +"procurement exceptions to inform the user about blocking problems that need\n" +"to be resolved manually (like, missing BoM structure or missing supplier).\n" +"\n" +"The procurement order will schedule a proposal for automatic procurement\n" +"for the product which needs replenishment. This procurement will start a\n" +"task, either a purchase order form for the supplier, or a production order\n" +"depending on the product's configuration.\n" +" " +msgstr "" + +#. module: base +#: model:res.country,name:base.mx +msgid "Mexico" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_mail_server.py:414 +#, python-format +msgid "Missing SMTP Server" +msgstr "" + +#. module: base +#: field:ir.attachment,name:0 +msgid "Attachment Name" +msgstr "" + +#. module: base +#: field:base.language.export,data:0 +#: field:base.language.import,data:0 +msgid "File" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_view_base_module_upgrade_install +msgid "Module Upgrade Install" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_email_template +msgid "E-Mail Templates" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_actions_configuration_wizard +msgid "ir.actions.configuration.wizard" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_report_webkit +msgid "" +"\n" +"This module adds a new Report Engine based on WebKit library (wkhtmltopdf) " +"to support reports designed in HTML + CSS.\n" +"=============================================================================" +"========================================\n" +"\n" +"The module structure and some code is inspired by the report_openoffice " +"module.\n" +"\n" +"The module allows:\n" +"\n" +" - HTML report definition\n" +" - Multi header support\n" +" - Multi logo\n" +" - Multi company support\n" +" - HTML and CSS-3 support (In the limit of the actual WebKIT version)\n" +" - JavaScript support\n" +" - Raw HTML debugger\n" +" - Book printing capabilities\n" +" - Margins definition\n" +" - Paper size definition\n" +"\n" +"... and much more\n" +"\n" +"Multiple headers and logos can be defined per company.\n" +"CSS style, header and footer body are defined per company.\n" +"\n" +"For a sample report see also the webkit_report_sample module, and this " +"video:\n" +" http://files.me.com/nbessi/06n92k.mov\n" +"\n" +"Requirements and Installation\n" +"-----------------------------\n" +"This module requires the ``wkthtmltopdf`` library to render HTML documents " +"as\n" +"PDF. Version 0.9.9 or later is necessary, and can be found at " +"http://code.google.com/p/wkhtmltopdf/\n" +"for Linux, Mac OS X (i386) and Windows (32bits).\n" +"\n" +"After installing the library on the OpenERP Server machine, you need to set " +"the\n" +"path to the ``wkthtmltopdf`` executable file on each Company.\n" +"\n" +"If you are experiencing missing header/footer problems on Linux, be sure to\n" +"install a \"static\" version of the library. The default ``wkhtmltopdf`` on\n" +"Ubuntu is known to have this issue.\n" +"\n" +"\n" +"TODO\n" +"----\n" +"\n" +" * JavaScript support activation deactivation\n" +" * Collated and book format support\n" +" * Zip return for separated PDF\n" +" * Web client WYSIWYG\n" +"\n" +" " +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_gt +msgid "" +"\n" +"This is the base module to manage the accounting chart for Guatemala.\n" +"=====================================================================\n" +"\n" +"Agrega una nomenclatura contable para Guatemala. También icluye impuestos y " +"la moneda del Quetzal. -- Adds accounting chart for Guatemala. It also " +"includes taxes and the Quetzal currency" +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "%b - Abbreviated month name." +msgstr "" + +#. module: base +#: field:res.partner,supplier:0 +#: view:res.partner.address:0 +#: field:res.partner.address,is_supplier_add:0 +#: model:res.partner.category,name:base.res_partner_category_8 +msgid "Supplier" +msgstr "" + +#. module: base +#: view:ir.actions.server:0 +#: selection:ir.actions.server,state:0 +msgid "Multi Actions" +msgstr "" + +#. module: base +#: view:base.language.export:0 +#: view:base.language.import:0 +#: view:wizard.ir.model.menu.create:0 +msgid "_Close" +msgstr "" + +#. module: base +#: field:multi_company.default,company_dest_id:0 +msgid "Default Company" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Spanish (EC) / Español (EC)" +msgstr "" + +#. module: base +#: help:ir.ui.view,xml_id:0 +msgid "ID of the view defined in xml file" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_base_module_import +msgid "Import Module" +msgstr "" + +#. module: base +#: model:res.country,name:base.as +msgid "American Samoa" +msgstr "" + +#. module: base +#: help:ir.actions.act_window,res_model:0 +msgid "Model name of the object to open in the view window" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_caldav +msgid "" +"\n" +"This module contains basic functionality for Caldav system.\n" +"===========================================================\n" +"\n" +" - Webdav server that provides remote access to calendar\n" +" - Synchronisation of calendar using WebDAV\n" +" - Customize calendar event and todo attribute with any of OpenERP model\n" +" - Provides iCal Import/Export functionality\n" +"\n" +"To access Calendars using CalDAV clients, point them to:\n" +" http://HOSTNAME:PORT/webdav/DATABASE_NAME/calendars/users/USERNAME/c\n" +"\n" +"To access OpenERP Calendar using WebCal to remote site use the URL like:\n" +" http://HOSTNAME:PORT/webdav/DATABASE_NAME/Calendars/CALENDAR_NAME.ics\n" +"\n" +" Where,\n" +" HOSTNAME: Host on which OpenERP server(With webdav) is running\n" +" PORT : Port on which OpenERP server is running (By Default : 8069)\n" +" DATABASE_NAME: Name of database on which OpenERP Calendar is " +"created\n" +" CALENDAR_NAME: Name of calendar to access\n" +msgstr "" + +#. module: base +#: field:ir.model.fields,selectable:0 +msgid "Selectable" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_mail_server.py:199 +#, python-format +msgid "Everything seems properly set up!" +msgstr "" + +#. module: base +#: field:res.users,date:0 +msgid "Latest Connection" +msgstr "" + +#. module: base +#: view:res.request.link:0 +msgid "Request Link" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_plugin_outlook +msgid "" +"\n" +"This module provides the Outlook Plug-in.\n" +"=========================================\n" +"Outlook plug-in allows you to select an object that you would like to add\n" +"to your email and its attachments from MS Outlook. You can select a partner, " +"a task,\n" +"a project, an analytical account, or any other object and archive selected\n" +"mail into mail.message with attachments.\n" +" " +msgstr "" + +#. module: base +#: view:ir.attachment:0 +#: selection:ir.attachment,type:0 +#: field:ir.module.module,url:0 +msgid "URL" +msgstr "" + +#. module: base +#: help:res.users,context_tz:0 +msgid "" +"The user's timezone, used to output proper date and time values inside " +"printed reports. It is important to set a value for this field. You should " +"use the same timezone that is otherwise used to pick and render date and " +"time values: your computer's timezone." +msgstr "" + +#. module: base +#: help:res.country,name:0 +msgid "The full name of the country." +msgstr "" + +#. module: base +#: selection:ir.actions.server,state:0 +msgid "Iteration" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_project_planning +msgid "Resources Planing" +msgstr "" + +#. module: base +#: field:ir.module.module,complexity:0 +msgid "Complexity" +msgstr "" + +#. module: base +#: selection:ir.actions.act_window,target:0 +msgid "Inline" +msgstr "" + +#. module: base +#: model:res.partner.bank.type.field,name:base.bank_normal_field_bic +msgid "bank_bic" +msgstr "" + +#. module: base +#: code:addons/orm.py:3988 +#: code:addons/orm.py:4085 +#, python-format +msgid "UserError" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_account_analytic_default +msgid "" +"Set default values for your analytic accounts\n" +"Allows to automatically select analytic accounts based on criterions:\n" +"=====================================================================\n" +"\n" +"* Product\n" +"* Partner\n" +"* User\n" +"* Company\n" +"* Date\n" +" " +msgstr "" + +#. module: base +#: model:res.country,name:base.ae +msgid "United Arab Emirates" +msgstr "" + +#. module: base +#: code:addons/orm.py:3704 +#, python-format +msgid "" +"Unable to delete this document because it is used as a default property" +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.menu_crm_case_job_req_main +msgid "Recruitment" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_gr +msgid "" +"\n" +"This is the base module to manage the accounting chart for Greece.\n" +"==================================================================\n" +"\n" +"Greek accounting chart and localization.\n" +" " +msgstr "" + +#. module: base +#: view:ir.values:0 +msgid "Action Reference" +msgstr "" + +#. module: base +#: model:res.country,name:base.re +msgid "Reunion (French)" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_model.py:361 +#, python-format +msgid "" +"New column name must still start with x_ , because it is a custom field!" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_wiki +msgid "" +"\n" +"The base module to manage documents(wiki).\n" +"==========================================\n" +"\n" +"Keep track of Wiki groups, pages, and history.\n" +" " +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_mrp_repair +msgid "Repairs Management" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_account_asset +msgid "Assets Management" +msgstr "" + +#. module: base +#: view:ir.model.access:0 +#: view:ir.rule:0 +#: field:ir.rule,global:0 +msgid "Global" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_stock_planning +msgid "" +"\n" +"MPS allows to create a manual procurement plan apart of the normal MRP " +"scheduling, which works automatically based on minimum stock rules\n" +"=============================================================================" +"============================================================\n" +"\n" +"Quick Glossary\n" +"--------------\n" +"- Stock Period - the time boundaries (between Start Date and End Date) for " +"your Sales and Stock forecasts and planning\n" +"- Sales Forecast - the quantity of products you plan to sell during the " +"related Stock Period.\n" +"- Stock Planning - the quantity of products you plan to purchase or produce " +"for the related Stock Period.\n" +"\n" +"To avoid confusion with the terms used by the ``sale_forecast`` module, " +"(\"Sales Forecast\" and \"Planning\" are amounts) we use terms \"Stock and " +"Sales Forecast\" and \"Stock Planning\" to emphasize that we use quantity " +"values.\n" +"\n" +"Where to begin\n" +"--------------\n" +"Using this module is done in three steps:\n" +"\n" +" * Create Stock Periods via the Warehouse>Configuration>Stock Periods menu " +"(Mandatory step)\n" +" * Create Sale Forecasts fill them with forecast quantities, via the " +"Sales>Sales Forecast menu. (Optional step but useful for further planning)\n" +" * Create the actual MPS plan, check the balance and trigger the " +"procurements as required. The actual procurement is the final step for the " +"Stock Period.\n" +"\n" +"Stock Period configuration\n" +"--------------------------\n" +"You have two menu items for Periods in \"Warehouse > Configuration > Stock " +"Periods\". There are:\n" +"\n" +" * \"Create Stock Periods\" - can automatically creating daily, weekly or " +"monthly periods.\n" +" * \"Stock Periods\" - allows to create any type of periods, change the " +"dates and change the state of period.\n" +"\n" +"Creating periods is the first step. You can create custom periods using the " +"\"New\" button in \"Stock Periods\", but it is recommended to use the " +"automatic assistant \"Create Stock Periods\".\n" +"\n" +"Remarks:\n" +"\n" +" - These periods (Stock Periods) are completely distinct from Financial or " +"other periods in the system.\n" +" - Periods are not assigned to companies (when you use multicompany). Module " +"suppose that you use the same periods across companies. If you wish to use " +"different periods for different companies define them as you wish (they can " +"overlap). Later on in this text will be indications how to use such " +"periods.\n" +" - When periods are created automatically their start and finish dates are " +"with start hour 00:00:00 and end hour 23:59:00. When you create daily " +"periods they will have start date 31.01.2010 00:00:00 and end date " +"31.01.2010 23:59:00. It works only in automatic creation of periods. When " +"you create periods manually you have to take care about hours because you " +"can have incorrect values form sales or stock.\n" +" - If you use overlapping periods for the same product, warehouse and " +"company results can be unpredictable.\n" +" - If current date doesn't belong to any period or you have holes between " +"periods results can be unpredictable.\n" +"\n" +"Sales Forecasts configuration\n" +"-----------------------------\n" +"You have few menus for Sales forecast in \"Sales > Sales Forecasts\":\n" +"\n" +" - \"Create Sales Forecasts\" - can automatically create forecast lines " +"according to your needs\n" +" - \"Sales Forecasts\" - for managing the Sales forecasts\n" +"\n" +"Menu \"Create Sales Forecasts\" creates Forecasts for products from selected " +"Category, for selected Period and for selected Warehouse.\n" +"It is also possible to copy the previous forecast.\n" +"\n" +"Remarks:\n" +"\n" +" - This tool doesn't duplicate lines if you already have an entry for the " +"same Product, Period, Warehouse, created or validated by the same user. If " +"you wish to create another forecast, if relevant lines exists you have to do " +"it manually as described below.\n" +" - When created lines are validated by someone else you can use this tool to " +"create another line for the same Period, Product and Warehouse.\n" +" - When you choose \"Copy Last Forecast\", created line take quantity and " +"other settings from your (validated by you or created by you if not " +"validated yet) forecast which is for last period before period of created " +"forecast.\n" +"\n" +"On \"Sales Forecast\" form mainly you have to enter a forecast quantity in " +"\"Product Quantity\".\n" +"Further calculation can work for draft forecasts. But validation can save " +"your data against any accidental changes.\n" +"You can click \"Validate\" button but it is not mandatory.\n" +"\n" +"Instead of forecast quantity you may enter the amount of forecast sales via " +"the \"Product Amount\" field.\n" +"The system will count quantity from amount according to Sale price of the " +"Product.\n" +"\n" +"All values on the form are expressed in unit of measure selected on form.\n" +"You can select a unit of measure from the default category or from secondary " +"category.\n" +"When you change unit of measure the forecast product quantity will be re-" +"computed according to new UoM.\n" +"\n" +"To work out your Sale Forecast you can use the \"Sales History\" of the " +"product.\n" +"You have to enter parameters to the top and left of this table and system " +"will count sale quantities according to these parameters.\n" +"So you can get results for a given sales team or period.\n" +"\n" +"\n" +"MPS or Procurement Planning\n" +"---------------------------\n" +"An MPS planning consists in Stock Planning lines, used to analyze and " +"possibly drive the procurement of \n" +"products for each relevant Stock Period and Warehouse.\n" +"The menu is located in \"Warehouse > Schedulers > Master Procurement " +"Schedule\":\n" +"\n" +" - \"Create Stock Planning Lines\" - a wizard to help automatically create " +"many planning lines\n" +" - \"Master Procurement Schedule\" - management of your planning lines\n" +"\n" +"Similarly to the way Sales forecast serves to define your sales planning, " +"the MPS lets you plan your procurements (Purchase/Manufacturing).\n" +"You can quickly populate the MPS with the \"Create Stock Planning Lines\" " +"wizard, and then proceed to review them via the \"Master Procurement " +"Schedule\" menu.\n" +"\n" +"The \"Create Stock Planning Lines\" wizard lets you to quickly create all " +"MPS lines for a given Product Category, and a given Period and Warehouse.\n" +"When you enable the \"All Products with Forecast\" option of the wizard, the " +"system creates lines for all products having sales forecast for selected\n" +"Period and Warehouse (the selected Category will be ignored in this case).\n" +"\n" +"Under menu \"Master Procurement Schedule\" you will usually change the " +"\"Planned Out\" and \"Planned In\" quantities and observe the resulting " +"\"Stock Simulation\" value\n" +"to decide if you need to procure more products for the given Period.\n" +"\"Planned Out\" will be initially based on \"Warehouse Forecast\" which is " +"the sum of all outgoing stock moves already planned for the Period and " +"Warehouse.\n" +"Of course you can alter this value to provide your own quantities. It is not " +"necessary to have any forecast.\n" +"\"Planned In\" quantity is used to calculate field \"Incoming Left\" which " +"is the quantity to be procured to reach the \"Stock Simulation\" at the end " +"of Period.\n" +"You can compare \"Stock Simulation\" quantity to minimum stock rules visible " +"on the form.\n" +"And you can plan different quantity than in Minimum Stock Rules. " +"Calculations are done for whole Warehouse by default,\n" +"if you want to see values for Stock location of calculated warehouse you can " +"check \"Stock Location Only\".\n" +"\n" +"When you are satisfied with the \"Planned Out\", \"Planned In\" and end of " +"period \"Stock Simulation\",\n" +"you can click on \"Procure Incoming Left\" to create a procurement for the " +"\"Incoming Left\" quantity.\n" +"You can decide if procurement will go to the to Stock or Input location of " +"the Warehouse.\n" +"\n" +"If you don't want to Produce or Buy the product but just transfer the " +"calculated quantity from another warehouse\n" +"you can click \"Supply from Another Warehouse\" (instead of \"Procure " +"Incoming Left\") and the system will\n" +"create the appropriate picking list (stock moves).\n" +"You can choose to take the goods from the Stock or the Output location of " +"the source warehouse.\n" +"Destination location (Stock or Input) in the destination warehouse will be " +"taken as for the procurement case.\n" +"\n" +"To see update the quantities of \"Confirmed In\", \"Confirmed Out\", " +"\"Confirmed In Before\", \"Planned Out Before\"\n" +"and \"Stock Simulation\" you can press \"Calculate Planning\".\n" +"\n" +"All values on the form are expressed in unit of measure selected on form.\n" +"You can select one of unit of measure from default category or from " +"secondary category.\n" +"When you change unit of measure the editable quantities will be re-computed " +"according to new UoM. The others will be updated after pressing \"Calculate " +"Planning\".\n" +"\n" +"Computation of Stock Simulation quantities\n" +"------------------------------------------\n" +"The Stock Simulation value is the estimated stock quantity at the end of the " +"period.\n" +"The calculation always starts with the real stock on hand at the beginning " +"of the current period, then\n" +"adds or subtracts the computed quantities.\n" +"When you are in the same period (current period is the same as calculated) " +"Stock Simulation is calculated as follows:\n" +"\n" +"Stock Simulation =\n" +"\tStock of beginning of current Period\n" +"\t- Planned Out\n" +"\t+ Planned In\n" +"\n" +"When you calculate period next to current:\n" +"\n" +"Stock Simulation =\n" +"\tStock of beginning of current Period\n" +"\t- Planned Out of current Period\n" +"\t+ Confirmed In of current Period (incl. Already In)\n" +"\t- Planned Out of calculated Period\n" +"\t+ Planned In of calculated Period .\n" +"\n" +"As you see the calculated Period is taken the same way as in previous case, " +"but the calculation in the current\n" +"Period is a little bit different. First you should note that system takes " +"for only Confirmed moves for the\n" +"current period. This means that you should complete the planning and " +"procurement of the current Period before\n" +"going to the next one.\n" +"\n" +"When you plan for future Periods:\n" +"\n" +"Stock Simulation =\n" +"\tStock of beginning of current Period\n" +"\t- Sum of Planned Out of Periods before calculated\n" +"\t+ Sum of Confirmed In of Periods before calculated (incl. Already In)\n" +"\t- Planned Out of calculated Period\n" +"\t+ Planned In of calculated Period.\n" +"\n" +"Here \"Periods before calculated\" designates all periods starting with the " +"current until the period before the one being calculated.\n" +"\n" +"Remarks:\n" +"\n" +" - Remember to make the proceed with the planning of each period in " +"chronological order, otherwise the numbers will not reflect the\n" +" reality\n" +" - If you planned for future periods and find that real Confirmed Out is " +"larger than Planned Out in some periods before,\n" +" you can repeat Planning and make another procurement. You should do it in " +"the same planning line.\n" +" If you create another planning line the suggestions can be wrong.\n" +" - When you wish to work with different periods for some products, define " +"two kinds of periods (e.g. Weekly and Monthly) and use\n" +" them for different products. Example: If you use always Weekly periods " +"for Product A, and Monthly periods for Product B\n" +" all calculations will work correctly. You can also use different kind of " +"periods for the same product from different warehouse\n" +" or companies. But you cannot use overlapping periods for the same " +"product, warehouse and company because results\n" +" can be unpredictable. The same applies to Forecasts lines.\n" +msgstr "" + +#. module: base +#: model:res.country,name:base.mp +msgid "Northern Mariana Islands" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_claim_from_delivery +msgid "Claim on Deliveries" +msgstr "" + +#. module: base +#: model:res.country,name:base.sb +msgid "Solomon Islands" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_model.py:537 +#: code:addons/orm.py:3436 +#: code:addons/orm.py:3656 +#: code:addons/orm.py:3668 +#: code:addons/orm.py:3894 +#: code:addons/orm.py:4408 +#, python-format +msgid "AccessError" +msgstr "" + +#. module: base +#: view:res.request:0 +msgid "Waiting" +msgstr "" + +#. module: base +#: field:ir.exports,resource:0 +#: model:ir.module.module,shortdesc:base.module_resource +#: view:ir.property:0 +#: field:ir.property,res_id:0 +msgid "Resource" +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "8. %I:%M:%S %p ==> 06:25:20 PM" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_base_module_doc_rst +msgid "" +"\n" +"This module generates the Technical Guides of selected modules in " +"Restructured Text format (RST).\n" +"=============================================================================" +"====================\n" +"\n" +" * It uses the Sphinx (http://sphinx.pocoo.org) implementation of RST\n" +" * It creates a tarball (.tgz file suffix) containing an index file and " +"one file per module\n" +" * Generates Relationship Graph\n" +" " +msgstr "" + +#. module: base +#: field:res.log,create_date:0 +msgid "Creation Date" +msgstr "" + +#. module: base +#: view:ir.translation:0 +#: model:ir.ui.menu,name:base.menu_translation +msgid "Translations" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_project_gtd +msgid "Todo Lists" +msgstr "" + +#. module: base +#: view:ir.actions.report.xml:0 +msgid "Report" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_mail_server.py:218 +#, python-format +msgid "" +"Your OpenERP Server does not support SMTP-over-SSL. You could use STARTTLS " +"instead.If SSL is needed, an upgrade to Python 2.6 on the server-side should " +"do the trick." +msgstr "" + +#. module: base +#: model:res.country,name:base.ua +msgid "Ukraine" +msgstr "" + +#. module: base +#: field:ir.module.module,website:0 +#: field:res.company,website:0 +#: field:res.partner,website:0 +msgid "Website" +msgstr "" + +#. module: base +#: selection:ir.mail_server,smtp_encryption:0 +msgid "None" +msgstr "" + +#. module: base +#: view:ir.module.category:0 +msgid "Module Category" +msgstr "" + +#. module: base +#: view:partner.wizard.ean.check:0 +msgid "Ignore" +msgstr "" + +#. module: base +#: report:ir.module.reference.graph:0 +msgid "Reference Guide" +msgstr "" + +#. module: base +#: view:ir.values:0 +msgid "Default Value Scope" +msgstr "" + +#. module: base +#: view:ir.ui.view:0 +msgid "Architecture" +msgstr "" + +#. module: base +#: model:res.country,name:base.ml +msgid "Mali" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_at +msgid "" +"This module provides the standard Accounting Chart for Austria which is " +"based on the Template from BMF.gv.at. Please keep in mind that you should " +"review and adapt it with your Accountant, before using it in a live " +"Environment." +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Flemish (BE) / Vlaams (BE)" +msgstr "" + +#. module: base +#: field:ir.cron,interval_number:0 +msgid "Interval Number" +msgstr "" + +#. module: base +#: model:res.country,name:base.tk +msgid "Tokelau" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_hr_timesheet_sheet +msgid "" +"\n" +"This module helps you to easily encode and validate timesheet and " +"attendances within the same view.\n" +"=============================================================================" +"======================\n" +"\n" +"The upper part of the view is for attendances and track (sign in/sign out) " +"events.\n" +"The lower part is for timesheet.\n" +"\n" +"Other tabs contains statistics views to help you analyse your\n" +"time or the time of your team:\n" +"* Time spent by day (with attendances)\n" +"* Time spent by project\n" +"\n" +"This module also implements a complete timesheet validation process:\n" +"* Draft sheet\n" +"* Confirmation at the end of the period by the employee\n" +"* Validation by the project manager\n" +"\n" +"The validation can be configured in the company:\n" +"* Period size (day, week, month, year)\n" +"* Maximal difference between timesheet and attendances\n" +" " +msgstr "" + +#. module: base +#: model:res.country,name:base.bn +msgid "Brunei Darussalam" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_fetchmail_crm +#: model:ir.module.module,description:base.module_fetchmail_crm_claim +#: model:ir.module.module,description:base.module_fetchmail_hr_recruitment +#: model:ir.module.module,description:base.module_fetchmail_project_issue +msgid "" +"\n" +" " +msgstr "" + +#. module: base +#: view:ir.actions.act_window:0 +#: field:ir.actions.act_window,view_type:0 +#: field:ir.actions.act_window.view,view_mode:0 +#: field:ir.ui.view,type:0 +#: field:wizard.ir.model.menu.create.line,view_type:0 +msgid "View Type" +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.next_id_2 +msgid "User Interface" +msgstr "" + +#. module: base +#: field:res.partner,child_ids:0 +#: field:res.request,ref_partner_id:0 +msgid "Partner Ref." +msgstr "" + +#. module: base +#: field:ir.attachment,create_date:0 +msgid "Date Created" +msgstr "" + +#. module: base +#: help:ir.actions.server,trigger_name:0 +msgid "The workflow signal to trigger" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_mrp +msgid "" +"\n" +"This is the base module to manage the manufacturing process in OpenERP.\n" +"=======================================================================\n" +"\n" +"Features:\n" +"---------\n" +" * Make to Stock / Make to Order (by line)\n" +" * Multi-level BoMs, no limit\n" +" * Multi-level routing, no limit\n" +" * Routing and work center integrated with analytic accounting\n" +" * Scheduler computation periodically / Just In Time module\n" +" * Multi-pos, multi-warehouse\n" +" * Different reordering policies\n" +" * Cost method by product: standard price, average price\n" +" * Easy analysis of troubles or needs\n" +" * Very flexible\n" +" * Allows to browse Bill of Materials in complete structure that include " +"child and phantom BoMs\n" +"\n" +"It supports complete integration and planification of stockable goods,\n" +"consumable of services. Services are completely integrated with the rest\n" +"of the software. For instance, you can set up a sub-contracting service\n" +"in a BoM to automatically purchase on order the assembly of your " +"production.\n" +"\n" +"Reports provided by this module:\n" +"--------------------------------\n" +" * Bill of Material structure and components\n" +" * Load forecast on Work Centers\n" +" * Print a production order\n" +" * Stock forecasts\n" +"\n" +"Dashboard provided by this module:\n" +"----------------------------------\n" +" * List of next production orders\n" +" * List of procurements in exception\n" +" * Graph of work center load\n" +" * Graph of stock value variation\n" +" " +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_google_base_account +msgid "The module adds google user in res user" +msgstr "" + +#. module: base +#: selection:base.language.install,state:0 +#: selection:base.module.import,state:0 +#: selection:base.module.update,state:0 +msgid "done" +msgstr "" + +#. module: base +#: view:ir.actions.act_window:0 +msgid "General Settings" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_uy +msgid "Uruguay - Chart of Accounts" +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.menu_administration_shortcut +msgid "Custom Shortcuts" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Vietnamese / Tiếng Việt" +msgstr "" + +#. module: base +#: model:res.country,name:base.dz +msgid "Algeria" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_plugin +msgid "CRM Plugins" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_model_model +#: model:ir.model,name:base.model_ir_model +#: model:ir.ui.menu,name:base.ir_model_model_menu +msgid "Models" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_cron.py:292 +#, python-format +msgid "Record cannot be modified right now" +msgstr "" + +#. module: base +#: selection:ir.actions.todo,type:0 +msgid "Launch Manually" +msgstr "" + +#. module: base +#: model:res.country,name:base.be +msgid "Belgium" +msgstr "" + +#. module: base +#: view:res.company:0 +msgid "Preview Header" +msgstr "" + +#. module: base +#: field:res.company,paper_format:0 +msgid "Paper Format" +msgstr "" + +#. module: base +#: field:base.language.export,lang:0 +#: field:base.language.install,lang:0 +#: field:base.update.translations,lang:0 +#: field:ir.translation,lang:0 +#: field:res.partner,lang:0 +#: field:res.users,context_lang:0 +msgid "Language" +msgstr "" + +#. module: base +#: model:res.country,name:base.gm +msgid "Gambia" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_res_company_form +#: model:ir.model,name:base.model_res_company +#: model:ir.ui.menu,name:base.menu_action_res_company_form +#: model:ir.ui.menu,name:base.menu_res_company_global +#: view:res.company:0 +#: field:res.users,company_ids:0 +msgid "Companies" +msgstr "" + +#. module: base +#: help:res.currency,symbol:0 +msgid "Currency sign, to be used when printing amounts." +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "%H - Hour (24-hour clock) [00,23]." +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_mail_server.py:451 +#, python-format +msgid "" +"Your server does not seem to support SSL, you may want to try STARTTLS " +"instead" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_res_widget +msgid "res.widget" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_model.py:290 +#, python-format +msgid "Model %s does not exist!" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_plugin +msgid "" +"\n" +"The common interface for pugin.\n" +"=====================================================\n" +"\n" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_mrp_jit +msgid "Just In Time Scheduling" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_account_bank_statement_extensions +msgid "Bank Statement extensions to support e-banking" +msgstr "" + +#. module: base +#: view:ir.actions.server:0 +#: field:ir.actions.server,code:0 +#: selection:ir.actions.server,state:0 +msgid "Python Code" +msgstr "" + +#. module: base +#: help:ir.actions.server,state:0 +msgid "Type of the Action that is to be executed" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_base +msgid "The kernel of OpenERP, needed for all installation." +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_osv_memory_autovacuum +msgid "osv_memory.autovacuum" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_us +msgid "United States - Chart of accounts" +msgstr "" + +#. module: base +#: view:base.language.install:0 +#: view:base.module.import:0 +#: view:base.module.update:0 +#: view:base.module.upgrade:0 +#: view:base.update.translations:0 +#: view:partner.clear.ids:0 +#: view:partner.massmail.wizard:0 +#: view:partner.sms.send:0 +#: view:publisher_warranty.contract.wizard:0 +#: view:res.config:0 +#: view:res.config.installer:0 +#: view:res.widget.wizard:0 +msgid "Cancel" +msgstr "" + +#. module: base +#: selection:base.language.export,format:0 +msgid "PO File" +msgstr "" + +#. module: base +#: model:res.country,name:base.nt +msgid "Neutral Zone" +msgstr "" + +#. module: base +#: view:ir.model:0 +msgid "Custom" +msgstr "" + +#. module: base +#: view:res.request:0 +msgid "Current" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_crm_fundraising +msgid "" +"\n" +"Fundraising.\n" +"============\n" +"\n" +"When you wish to support your organization or a campaign, you can trace\n" +"all your activities for collecting money. The menu opens a search list\n" +"where you can find fund descriptions, email, history and probability of\n" +"success. Several action buttons allow you to easily modify your different\n" +"fund status.\n" +" " +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_sale_margin +msgid "Margins in Sales Orders" +msgstr "" + +#. module: base +#: model:res.partner.category,name:base.res_partner_category_9 +msgid "Components Supplier" +msgstr "" + +#. module: base +#: model:ir.module.category,name:base.module_category_purchase_management +#: model:ir.module.module,shortdesc:base.module_purchase +msgid "Purchase Management" +msgstr "" + +#. module: base +#: field:ir.module.module,published_version:0 +msgid "Published Version" +msgstr "" + +#. module: base +#: model:res.country,name:base.is +msgid "Iceland" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.ir_action_window +#: model:ir.ui.menu,name:base.menu_ir_action_window +msgid "Window Actions" +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "%I - Hour (12-hour clock) [01,12]." +msgstr "" + +#. module: base +#: selection:publisher_warranty.contract.wizard,state:0 +msgid "Finished" +msgstr "" + +#. module: base +#: model:res.country,name:base.de +msgid "Germany" +msgstr "" + +#. module: base +#: view:ir.sequence:0 +msgid "Week of the year: %(woy)s" +msgstr "" + +#. module: base +#: model:res.partner.category,name:base.res_partner_category_14 +msgid "Bad customers" +msgstr "" + +#. module: base +#: report:ir.module.reference.graph:0 +msgid "Reports :" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_multi_company +msgid "" +"\n" +"This module is for managing a multicompany environment.\n" +"=======================================================\n" +"\n" +"This module is the base module for other multi-company modules.\n" +" " +msgstr "" + +#. module: base +#: sql_constraint:res.currency:0 +msgid "The currency code must be unique per company!" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_property +msgid "ir.property" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_fetchmail +msgid "" +"\n" +"Retrieve incoming email on POP / IMAP servers\n" +"=============================================\n" +"\n" +"Enter the parameters of your POP/IMAP account(s), and any incoming\n" +"emails on these accounts will be automatically downloaded into your OpenERP\n" +"system. All POP3/IMAP-compatible servers are supported, included those\n" +"that require an encrypted SSL/TLS connection.\n" +"\n" +"This can be used to easily create email-based workflows for many\n" +"email-enabled OpenERP documents, such as:\n" +"\n" +" * CRM Leads/Opportunities\n" +" * CRM Claims\n" +" * Project Issues\n" +" * Project Tasks\n" +" * Human Resource Recruitments (Applicants)\n" +" * etc.\n" +"\n" +"Just install the relevant application, and you can assign any of\n" +"these document types (Leads, Project Issues, etc.) to your incoming\n" +"email accounts. New emails will automatically spawn new documents\n" +"of the chosen type, so it's a snap to create a mailbox-to-OpenERP\n" +"integration. Even better: these documents directly act as mini\n" +"conversations synchronized by email. You can reply from within\n" +"OpenERP, and the answers will automatically be collected when\n" +"they come back, and attached to the same *conversation* document.\n" +"\n" +"For more specific needs, you may also assign custom-defined actions\n" +"(technically: Server Actions) to be triggered for each incoming\n" +"mail. \n" +" " +msgstr "" + +#. module: base +#: help:ir.actions.server,email:0 +msgid "" +"Expression that returns the email address to send to. Can be based on the " +"same values as for the condition field.\n" +"Example: object.invoice_address_id.email, or 'me@example.com'" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_web_hello +msgid "" +"\n" +" OpenERP Web example module.\n" +" " +msgstr "" + +#. module: base +#: model:res.country,name:base.gy +msgid "Guyana" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_product_expiry +msgid "Products Expiry Date" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_account +msgid "" +"\n" +"Accounting and Financial Management.\n" +"====================================\n" +"\n" +"Financial and accounting module that covers:\n" +"--------------------------------------------\n" +"General accountings\n" +"Cost / Analytic accounting\n" +"Third party accounting\n" +"Taxes management\n" +"Budgets\n" +"Customer and Supplier Invoices\n" +"Bank statements\n" +"Reconciliation process by partner\n" +"\n" +"Creates a dashboard for accountants that includes:\n" +"--------------------------------------------------\n" +"* List of Customer Invoice to Approve\n" +"* Company Analysis\n" +"* Graph of Aged Receivables\n" +"* Graph of Treasury\n" +"\n" +"The processes like maintaining of general ledger is done through the defined " +"financial Journals (entry move line or\n" +"grouping is maintained through journal) for a particular financial year and " +"for preparation of vouchers there is a\n" +"module named account_voucher.\n" +" " +msgstr "" + +#. module: base +#: help:ir.actions.act_window,view_type:0 +msgid "" +"View type: set to 'tree' for a hierarchical tree view, or 'form' for other " +"views" +msgstr "" + +#. module: base +#: code:addons/base/res/res_config.py:385 +#, python-format +msgid "Click 'Continue' to configure the next addon..." +msgstr "" + +#. module: base +#: field:ir.actions.server,record_id:0 +msgid "Create Id" +msgstr "" + +#. module: base +#: model:res.country,name:base.hn +msgid "Honduras" +msgstr "" + +#. module: base +#: help:res.users,menu_tips:0 +msgid "" +"Check out this box if you want to always display tips on each menu action" +msgstr "" + +#. module: base +#: model:res.country,name:base.eg +msgid "Egypt" +msgstr "" + +#. module: base +#: field:ir.rule,perm_read:0 +msgid "Apply For Read" +msgstr "" + +#. module: base +#: help:ir.actions.server,model_id:0 +msgid "" +"Select the object on which the action will work (read, write, create)." +msgstr "" + +#. module: base +#: field:base.language.import,name:0 +msgid "Language Name" +msgstr "" + +#. module: base +#: selection:ir.property,type:0 +msgid "Boolean" +msgstr "" + +#. module: base +#: help:ir.mail_server,smtp_encryption:0 +msgid "" +"Choose the connection encryption scheme:\n" +"- None: SMTP sessions are done in cleartext.\n" +"- TLS (STARTTLS): TLS encryption is requested at start of SMTP session " +"(Recommended)\n" +"- SSL/TLS: SMTP sessions are encrypted with SSL/TLS through a dedicated port " +"(default: 465)" +msgstr "" + +#. module: base +#: view:ir.model:0 +msgid "Fields Description" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_report_designer +msgid "" +"\n" +"Installer for reporting Hidden.\n" +"==============================\n" +"\n" +"Makes the Reporting Hidden Configuration available from where you can " +"install\n" +"modules like base_report_designer and base_report_creator.\n" +" " +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_base_synchro +msgid "Multi-DB Synchronization" +msgstr "" + +#. module: base +#: selection:ir.module.module,complexity:0 +msgid "Expert" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_hr_holidays +msgid "Leaves Management" +msgstr "" + +#. module: base +#: view:ir.actions.todo:0 +#: view:ir.attachment:0 +#: view:ir.cron:0 +#: view:ir.model.access:0 +#: view:ir.model.data:0 +#: view:ir.model.fields:0 +#: view:ir.ui.view:0 +#: view:ir.values:0 +#: view:res.partner:0 +#: view:res.partner.address:0 +#: view:workflow.activity:0 +msgid "Group By..." +msgstr "" + +#. module: base +#: view:ir.model.fields:0 +#: field:ir.model.fields,readonly:0 +#: field:res.partner.bank.type.field,readonly:0 +msgid "Readonly" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_crm_todo +msgid "" +"\n" +"Todo list for CRM leads and opportunities.\n" +" " +msgstr "" + +#. module: base +#: field:ir.actions.act_window.view,view_id:0 +#: field:ir.default,page:0 +#: selection:ir.translation,type:0 +#: field:wizard.ir.model.menu.create.line,view_id:0 +msgid "View" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_wiki_sale_faq +msgid "Wiki: Sale FAQ" +msgstr "" + +#. module: base +#: selection:ir.module.module,state:0 +#: selection:ir.module.module.dependency,state:0 +msgid "To be installed" +msgstr "" + +#. module: base +#: help:ir.actions.act_window,display_menu_tip:0 +msgid "" +"It gives the status if the tip has to be displayed or not when a user " +"executes an action" +msgstr "" + +#. module: base +#: view:ir.model:0 +#: model:ir.module.module,shortdesc:base.module_base +#: field:res.currency,base:0 +msgid "Base" +msgstr "" + +#. module: base +#: field:ir.model.data,model:0 +#: field:ir.values,model:0 +msgid "Model Name" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Telugu / తెలుగు" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_document_ics +msgid "" +"\n" +"Allows to synchronise calendars with others applications.\n" +"=========================================================\n" +"\n" +"Will allow you to synchronise your OpenERP calendars with your phone, " +"outlook, Sunbird, ical, ...\n" +" " +msgstr "" + +#. module: base +#: model:res.country,name:base.lr +msgid "Liberia" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_in +msgid "" +"\n" +"Indian Accounting : Chart of Account.\n" +"=====================================\n" +"\n" +"Indian accounting chart and localization.\n" +" " +msgstr "" + +#. module: base +#: view:ir.attachment:0 +#: view:ir.model:0 +#: view:res.groups:0 +#: view:res.partner:0 +#: field:res.partner,comment:0 +#: model:res.widget,title:base.note_widget +msgid "Notes" +msgstr "" + +#. module: base +#: field:ir.config_parameter,value:0 +#: field:ir.property,value_binary:0 +#: field:ir.property,value_datetime:0 +#: field:ir.property,value_float:0 +#: field:ir.property,value_integer:0 +#: field:ir.property,value_reference:0 +#: field:ir.property,value_text:0 +#: selection:ir.server.object.lines,type:0 +#: field:ir.server.object.lines,value:0 +#: field:ir.values,value:0 +msgid "Value" +msgstr "" + +#. module: base +#: field:ir.sequence,code:0 +#: field:ir.sequence.type,code:0 +#: selection:ir.translation,type:0 +#: field:res.partner.bank.type,code:0 +msgid "Code" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_res_config_installer +msgid "res.config.installer" +msgstr "" + +#. module: base +#: model:res.country,name:base.mc +msgid "Monaco" +msgstr "" + +#. module: base +#: view:base.module.import:0 +msgid "Please be patient, this operation may take a few minutes..." +msgstr "" + +#. module: base +#: selection:ir.cron,interval_type:0 +msgid "Minutes" +msgstr "" + +#. module: base +#: view:res.currency:0 +msgid "Display" +msgstr "" + +#. module: base +#: selection:ir.translation,type:0 +msgid "Help" +msgstr "" + +#. module: base +#: help:res.users,menu_id:0 +msgid "" +"If specified, the action will replace the standard menu for this user." +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_google_map +msgid "Google Maps on Customers" +msgstr "" + +#. module: base +#: model:ir.actions.report.xml,name:base.preview_report +msgid "Preview Report" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_purchase_analytic_plans +msgid "Purchase Analytic Plans" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_analytic_journal_billing_rate +msgid "" +"\n" +"This module allows you to define what is the default invoicing rate for a " +"specific journal on a given account.\n" +"=============================================================================" +"=================================\n" +"\n" +"This is mostly used when a user encodes his timesheet: the values are " +"retrieved and the fields are auto-filled. But the possibility to change " +"these values is still available.\n" +"\n" +"Obviously if no data has been recorded for the current account, the default " +"value is given as usual by the account data so that this module is perfectly " +"compatible with older configurations.\n" +"\n" +" " +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.menu_fundrising +msgid "Fund Raising" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.ir_sequence_type +#: model:ir.ui.menu,name:base.menu_ir_sequence_type +msgid "Sequence Codes" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Spanish (CO) / Español (CO)" +msgstr "" + +#. module: base +#: view:base.module.configuration:0 +msgid "" +"All pending configuration wizards have been executed. You may restart " +"individual wizards via the list of configuration wizards." +msgstr "" + +#. module: base +#: view:ir.sequence:0 +msgid "Current Year with Century: %(year)s" +msgstr "" + +#. module: base +#: field:ir.exports,export_fields:0 +msgid "Export ID" +msgstr "" + +#. module: base +#: model:res.country,name:base.fr +msgid "France" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_res_log +msgid "res.log" +msgstr "" + +#. module: base +#: view:workflow.activity:0 +#: field:workflow.activity,flow_stop:0 +msgid "Flow Stop" +msgstr "" + +#. module: base +#: selection:ir.cron,interval_type:0 +msgid "Weeks" +msgstr "" + +#. module: base +#: code:addons/base/res/res_company.py:157 +#, python-format +msgid "VAT: " +msgstr "RFC " + +#. module: base +#: model:res.country,name:base.af +msgid "Afghanistan, Islamic State of" +msgstr "" + +#. module: base +#: code:addons/base/module/wizard/base_module_import.py:60 +#: code:addons/base/module/wizard/base_module_import.py:68 +#, python-format +msgid "Error !" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_marketing_campaign_crm_demo +msgid "Marketing Campaign - Demo" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_fetchmail_hr_recruitment +msgid "eMail Gateway for Applicants" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_account_coda +msgid "Belgium - Import bank CODA statements" +msgstr "" + +#. module: base +#: field:ir.cron,interval_type:0 +msgid "Interval Unit" +msgstr "" + +#. module: base +#: field:publisher_warranty.contract,kind:0 +#: field:workflow.activity,kind:0 +msgid "Kind" +msgstr "" + +#. module: base +#: code:addons/orm.py:4368 +#, python-format +msgid "This method does not exist anymore" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_import_google +msgid "Google Import" +msgstr "" + +#. module: base +#: model:res.partner.category,name:base.res_partner_category_12 +msgid "Segmentation" +msgstr "" + +#. module: base +#: field:res.lang,thousands_sep:0 +msgid "Thousands Separator" +msgstr "" + +#. module: base +#: field:res.request,create_date:0 +msgid "Created Date" +msgstr "" + +#. module: base +#: view:ir.module.module:0 +msgid "Keywords" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_cn +msgid "中国会计科目表 - Accounting" +msgstr "" + +#. module: base +#: view:ir.model.access:0 +#: field:ir.model.access,perm_read:0 +#: view:ir.rule:0 +msgid "Read Access" +msgstr "" + +#. module: base +#: help:ir.actions.server,loop_action:0 +msgid "" +"Select the action that will be executed. Loop action will not be avaliable " +"inside loop." +msgstr "" + +#. module: base +#: help:ir.model.data,res_id:0 +msgid "ID of the target record in the database" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_account_analytic_analysis +msgid "Contracts Management" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Chinese (TW) / 正體字" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_res_request +msgid "res.request" +msgstr "" + +#. module: base +#: view:ir.model:0 +msgid "In Memory" +msgstr "" + +#. module: base +#: view:ir.actions.todo:0 +msgid "Todo" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_product_visible_discount +msgid "Prices Visible Discounts" +msgstr "" + +#. module: base +#: field:ir.attachment,datas:0 +msgid "File Content" +msgstr "" + +#. module: base +#: model:res.country,name:base.pa +msgid "Panama" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_account_bank_statement_extensions +msgid "" +"\n" +"Module that extends the standard account_bank_statement_line object for " +"improved e-banking support.\n" +"\n" +"Adds\n" +"- valuta date\n" +"- batch payments\n" +"- traceability of changes to bank statement lines\n" +"- bank statement line views\n" +"- bank statements balances report\n" +"- performance improvements for digital import of bank statement (via " +"'ebanking_import' context flag)\n" +"- name_search on res.partner.bank enhanced to allow search on bank and iban " +"account numbers\n" +" " +msgstr "" + +#. module: base +#: code:addons/orm.py:1895 +#, python-format +msgid "" +"Insufficient fields to generate a Calendar View for %s, missing a date_stop " +"or a date_delay\" % (self._name)))\n" +"\n" +" return view\n" +"\n" +" def _get_default_search_view(self, cr, uid, context=None):\n" +" \"\n" +" :param cr: database cursor\n" +" :param int user: user id\n" +" :param dict context: connection context\n" +" :returns: an lxml document of the view\n" +" :rtype: etree._Element\n" +" \"\n" +" form_view = self.fields_view_get(cr, uid, False, 'form', " +"context=context)\n" +" tree_view = self.fields_view_get(cr, uid, False, 'tree', " +"context=context)\n" +"\n" +" # TODO it seems _all_columns could be used instead of fields_get (no " +"need for translated fields info)\n" +" fields = self.fields_get(cr, uid, context=context)\n" +" fields_to_search = set(\n" +" field for field, descriptor in fields.iteritems()\n" +" if descriptor.get('select'))\n" +"\n" +" for view in (form_view, tree_view):\n" +" view_root = etree.fromstring(view['arch'])\n" +" # Only care about select=1 in xpath below, because select=2 is " +"covered\n" +" # by the custom advanced search in clients\n" +" " +"fields_to_search.update(view_root.xpath(\"//field[@select=1]/@name" +msgstr "" + +#. module: base +#: constraint:res.users:0 +msgid "The chosen company is not in the allowed companies for this user" +msgstr "" + +#. module: base +#: model:res.country,name:base.gi +msgid "Gibraltar" +msgstr "" + +#. module: base +#: field:ir.actions.report.xml,report_name:0 +msgid "Service Name" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_import_base +msgid "Framework for complex import" +msgstr "" + +#. module: base +#: view:ir.actions.todo.category:0 +msgid "Wizard Category" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_account_cancel +msgid "" +"\n" +"Allows cancelling accounting entries.\n" +"=====================================\n" +"\n" +"This module adds 'Allow cancelling entries' field on form view of account " +"journal. If set to true it allows user to cancel entries & invoices.\n" +" " +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_rule +#: model:ir.ui.menu,name:base.menu_action_rule +msgid "Record Rules" +msgstr "" + +#. module: base +#: field:res.users,name:0 +msgid "User Name" +msgstr "" + +#. module: base +#: view:ir.sequence:0 +msgid "Day of the year: %(doy)s" +msgstr "" + +#. module: base +#: model:ir.module.category,name:base.module_category_portal +#: model:ir.module.module,shortdesc:base.module_portal +msgid "Portal" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_claim_from_delivery +msgid "" +"\n" +"Create a claim from a delivery order.\n" +"=====================================\n" +"\n" +"Adds a Claim link to the delivery order.\n" +msgstr "" + +#. module: base +#: view:ir.model:0 +#: view:ir.model.fields:0 +#: view:workflow.activity:0 +msgid "Properties" +msgstr "" + +#. module: base +#: help:ir.sequence,padding:0 +msgid "" +"OpenERP will automatically adds some '0' on the left of the 'Next Number' to " +"get the required padding size." +msgstr "" + +#. module: base +#: constraint:res.partner.bank:0 +msgid "" +"\n" +"Please define BIC/Swift code on bank for bank type IBAN Account to make " +"valid payments" +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "%A - Full weekday name." +msgstr "" + +#. module: base +#: help:ir.values,user_id:0 +msgid "If set, action binding only applies for this user." +msgstr "" + +#. module: base +#: model:res.country,name:base.gw +msgid "Guinea Bissau" +msgstr "" + +#. module: base +#: field:ir.actions.act_window,search_view:0 +msgid "Search View" +msgstr "" + +#. module: base +#: view:base.language.import:0 +msgid "- module,type,name,res_id,src,value" +msgstr "" + +#. module: base +#: sql_constraint:res.lang:0 +msgid "The code of the language must be unique !" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_attachment +#: view:ir.actions.report.xml:0 +#: view:ir.attachment:0 +#: model:ir.ui.menu,name:base.menu_action_attachment +msgid "Attachments" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_uy +msgid "" +"\n" +"General Chart of Accounts\n" +"=========================\n" +"\n" +"Provide Templates for Chart of Accounts, Taxes for Uruguay\n" +"\n" +msgstr "" + +#. module: base +#: help:res.company,bank_ids:0 +msgid "Bank accounts related to this company" +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.menu_base_partner +#: model:ir.ui.menu,name:base.menu_sale_config_sales +#: model:ir.ui.menu,name:base.menu_sales +msgid "Sales" +msgstr "" + +#. module: base +#: field:ir.actions.server,child_ids:0 +msgid "Other Actions" +msgstr "" + +#. module: base +#: selection:ir.actions.todo,state:0 +msgid "Done" +msgstr "" + +#. module: base +#: help:ir.cron,doall:0 +msgid "" +"Specify if missed occurrences should be executed when the server restarts." +msgstr "" + +#. module: base +#: model:res.partner.title,name:base.res_partner_title_miss +msgid "Miss" +msgstr "" + +#. module: base +#: view:ir.model.access:0 +#: field:ir.model.access,perm_write:0 +#: view:ir.rule:0 +msgid "Write Access" +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "%m - Month number [01,12]." +msgstr "" + +#. module: base +#: field:res.bank,city:0 +#: field:res.company,city:0 +#: field:res.partner,city:0 +#: field:res.partner.address,city:0 +#: field:res.partner.bank,city:0 +msgid "City" +msgstr "" + +#. module: base +#: model:res.country,name:base.qa +msgid "Qatar" +msgstr "" + +#. module: base +#: model:res.country,name:base.it +msgid "Italy" +msgstr "" + +#. module: base +#: view:ir.actions.todo:0 +#: selection:ir.actions.todo,state:0 +msgid "To Do" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Estonian / Eesti keel" +msgstr "" + +#. module: base +#: field:res.partner,email:0 +msgid "E-mail" +msgstr "" + +#. module: base +#: selection:ir.module.module,license:0 +msgid "GPL-3 or later version" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_google_map +msgid "" +"\n" +"The module adds Google Map field in partner address.\n" +"====================================================\n" +"\n" +"Using this you can directly open Google Map from the URL widget." +msgstr "" + +#. module: base +#: field:workflow.activity,action:0 +msgid "Python Action" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_report_webkit_sample +msgid "" +"\n" +"Samples for Webkit Report Engine (report_webkit module).\n" +"========================================================\n" +"\n" +"A sample invoice report is included in this module, as well as a wizard to\n" +"add Webkit Report entries on any Document in the system.\n" +"\n" +"You have to create the print buttons by calling the wizard. For more details " +"see:\n" +" http://files.me.com/nbessi/06n92k.mov\n" +" " +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "English (US)" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,help:base.action_partner_title_partner +msgid "" +"Manage the partner titles you want to have available in your system. The " +"partner titles is the legal status of the company: Private Limited, SA, etc." +msgstr "" + +#. module: base +#: view:base.language.export:0 +msgid "To browse official translations, you can start with these links:" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_model.py:531 +#, python-format +msgid "" +"You can not read this document (%s) ! Be sure your user belongs to one of " +"these groups: %s." +msgstr "" + +#. module: base +#: view:res.bank:0 +#: view:res.partner.address:0 +msgid "Address" +msgstr "" + +#. module: base +#: code:addons/base/module/module.py:308 +#, python-format +msgid "" +"You try to install module '%s' that depends on module '%s'.\n" +"But the latter module is not available in your system." +msgstr "" + +#. module: base +#: field:ir.module.module,latest_version:0 +msgid "Installed version" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Mongolian / монгол" +msgstr "" + +#. module: base +#: model:res.country,name:base.mr +msgid "Mauritania" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_translation +msgid "ir.translation" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_product_manufacturer +msgid "" +"\n" +"A module that adds manufacturers and attributes on the product form.\n" +"====================================================================\n" +"\n" +"You can now define the following for a product:\n" +" * Manufacturer\n" +" * Manufacturer Product Name\n" +" * Manufacturer Product Code\n" +" * Product Attributes\n" +" " +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_actions_todo_category +msgid "Configuration Wizard Category" +msgstr "" + +#. module: base +#: view:base.module.update:0 +msgid "Module update result" +msgstr "" + +#. module: base +#: view:workflow.activity:0 +#: field:workflow.workitem,act_id:0 +msgid "Activity" +msgstr "" + +#. module: base +#: view:res.partner:0 +#: view:res.partner.address:0 +msgid "Postal Address" +msgstr "" + +#. module: base +#: field:res.company,parent_id:0 +msgid "Parent Company" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_base_iban +msgid "" +"\n" +"This module installs the base for IBAN (International Bank Account Number) " +"bank accounts and checks for its validity.\n" +"=============================================================================" +"========================================\n" +"\n" +"The ability to extract the correctly represented local accounts from IBAN " +"accounts with a single statement.\n" +" " +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_mail_server +msgid "ir.mail_server" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Spanish (CR) / Español (CR)" +msgstr "" + +#. module: base +#: view:ir.rule:0 +msgid "" +"Global rules (non group-specific) are restrictions, and cannot be bypassed. " +"Group-local rules grant additional permissions, but are constrained within " +"the bounds of global ones. The first group rules restrict further than " +"global rules, but any additional group rule will add more permissions" +msgstr "" + +#. module: base +#: field:res.currency.rate,rate:0 +msgid "Rate" +msgstr "" + +#. module: base +#: model:res.country,name:base.cg +msgid "Congo" +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "Examples" +msgstr "" + +#. module: base +#: field:ir.default,value:0 +#: view:ir.values:0 +msgid "Default Value" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_res_country_state +msgid "Country state" +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.next_id_5 +msgid "Sequences & Identifiers" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_th +msgid "" +"\n" +"Chart of Accounts for Thailand.\n" +"===============================\n" +"\n" +"Thai accounting chart and localization.\n" +" " +msgstr "" + +#. module: base +#: model:res.country,name:base.kn +msgid "Saint Kitts & Nevis Anguilla" +msgstr "" + +#. module: base +#: model:ir.module.category,name:base.module_category_point_of_sale +msgid "Point of Sales" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_hr_payroll_account +msgid "" +"\n" +"Generic Payroll system Integrated with Accountings.\n" +"===================================================\n" +"\n" +" * Expense Encoding\n" +" * Payment Encoding\n" +" * Company Contribution Management\n" +" " +msgstr "" + +#. module: base +#: code:addons/base/res/res_currency.py:190 +#, python-format +msgid "" +"No rate found \n" +"for the currency: %s \n" +"at the date: %s" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_point_of_sale +msgid "" +"\n" +"This module provides a quick and easy sale process.\n" +"===================================================\n" +"\n" +"Main features :\n" +"---------------\n" +" * Fast encoding of the sale.\n" +" * Allow to choose one payment mode (the quick way) or to split the " +"payment between several payment mode.\n" +" * Computation of the amount of money to return.\n" +" * Create and confirm picking list automatically.\n" +" * Allow the user to create invoice automatically.\n" +" * Allow to refund former sales.\n" +" " +msgstr "" + +#. module: base +#: model:ir.actions.act_window,help:base.action_ui_view_custom +msgid "" +"Customized views are used when users reorganize the content of their " +"dashboard views (via web client)" +msgstr "" + +#. module: base +#: help:publisher_warranty.contract,check_opw:0 +msgid "" +"Checked if this is an OpenERP Publisher's Warranty contract (versus older " +"contract types" +msgstr "" + +#. module: base +#: field:ir.model.fields,model:0 +msgid "Object Name" +msgstr "" + +#. module: base +#: help:ir.actions.server,srcmodel_id:0 +msgid "" +"Object in which you want to create / write the object. If it is empty then " +"refer to the Object field." +msgstr "" + +#. module: base +#: view:ir.module.module:0 +#: selection:ir.module.module,state:0 +#: selection:ir.module.module.dependency,state:0 +msgid "Not Installed" +msgstr "" + +#. module: base +#: view:workflow.activity:0 +#: field:workflow.activity,out_transitions:0 +msgid "Outgoing Transitions" +msgstr "" + +#. module: base +#: field:ir.ui.menu,icon:0 +msgid "Icon" +msgstr "" + +#. module: base +#: model:ir.module.category,description:base.module_category_human_resources +msgid "" +"Helps you manage your human resources by encoding your employees structure, " +"generating work sheets, tracking attendance and more." +msgstr "" + +#. module: base +#: help:ir.model.fields,model_id:0 +msgid "The model this field belongs to" +msgstr "" + +#. module: base +#: model:res.country,name:base.mq +msgid "Martinique (French)" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_wiki_sale_faq +msgid "" +"\n" +"This module provides a Wiki Sales FAQ Template.\n" +"===============================================\n" +"\n" +"It provides demo data, thereby creating a Wiki Group and a Wiki Page\n" +"for Wiki Sale FAQ.\n" +" " +msgstr "" + +#. module: base +#: view:ir.sequence.type:0 +msgid "Sequences Type" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_base_action_rule +msgid "" +"\n" +"This module allows to implement action rules for any object.\n" +"============================================================\n" +"\n" +"Use automated actions to automatically trigger actions for various screens.\n" +"\n" +"Example: a lead created by a specific user may be automatically set to a " +"specific\n" +"sales team, or an opportunity which still has status pending after 14 days " +"might\n" +"trigger an automatic reminder email.\n" +" " +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.res_request-act +#: model:ir.ui.menu,name:base.menu_res_request_act +#: model:ir.ui.menu,name:base.menu_resquest_ref +#: view:res.request:0 +msgid "Requests" +msgstr "" + +#. module: base +#: model:res.country,name:base.ye +msgid "Yemen" +msgstr "" + +#. module: base +#: selection:workflow.activity,split_mode:0 +msgid "Or" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_br +msgid "Brazilian - Accounting" +msgstr "" + +#. module: base +#: model:res.country,name:base.pk +msgid "Pakistan" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_product_margin +msgid "" +"\n" +"Adds a reporting menu in products that computes sales, purchases, margins " +"and other interesting indicators based on invoices.\n" +"=============================================================================" +"================================================\n" +"\n" +"The wizard to launch the report has several options to help you get the data " +"you need.\n" +msgstr "" + +#. module: base +#: model:res.country,name:base.al +msgid "Albania" +msgstr "" + +#. module: base +#: help:ir.module.module,complexity:0 +msgid "" +"Level of difficulty of module. Easy: intuitive and easy to use for everyone. " +"Normal: easy to use for business experts. Expert: requires technical skills." +msgstr "" + +#. module: base +#: code:addons/base/res/res_lang.py:191 +#, python-format +msgid "" +"You cannot delete the language which is Active !\n" +"Please de-activate the language first." +msgstr "" + +#. module: base +#: view:base.language.install:0 +msgid "" +"Please be patient, this operation may take a few minutes (depending on the " +"number of modules currently installed)..." +msgstr "" + +#. module: base +#: field:ir.ui.menu,child_id:0 +msgid "Child IDs" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_actions.py:748 +#: code:addons/base/ir/ir_actions.py:751 +#, python-format +msgid "Problem in configuration `Record Id` in Server Action!" +msgstr "" + +#. module: base +#: code:addons/orm.py:2682 +#: code:addons/orm.py:2692 +#, python-format +msgid "ValidateError" +msgstr "" + +#. module: base +#: view:base.module.import:0 +#: view:base.module.update:0 +msgid "Open Modules" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_sale_margin +msgid "" +"\n" +"This module adds the 'Margin' on sales order.\n" +"=============================================\n" +"\n" +"This gives the profitability by calculating the difference between the Unit " +"Price and Cost Price.\n" +" " +msgstr "" + +#. module: base +#: model:ir.actions.act_window,help:base.action_res_bank_form +msgid "Manage bank records you want to be used in the system." +msgstr "" + +#. module: base +#: view:base.module.import:0 +msgid "Import module" +msgstr "" + +#. module: base +#: field:ir.actions.server,loop_action:0 +msgid "Loop Action" +msgstr "" + +#. module: base +#: help:ir.actions.report.xml,report_file:0 +msgid "" +"The path to the main report file (depending on Report Type) or NULL if the " +"content is in another field" +msgstr "" + +#. module: base +#: model:res.country,name:base.la +msgid "Laos" +msgstr "" + +#. module: base +#: selection:ir.actions.server,state:0 +#: model:ir.ui.menu,name:base.menu_email +#: field:res.company,email:0 +#: field:res.users,user_email:0 +msgid "Email" +msgstr "" + +#. module: base +#: field:res.users,action_id:0 +msgid "Home Action" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_event_project +msgid "Retro-Planning on Events" +msgstr "" + +#. module: base +#: code:addons/custom.py:555 +#, python-format +msgid "" +"The sum of the data (2nd field) is null.\n" +"We can't draw a pie chart !" +msgstr "" + +#. module: base +#: view:partner.clear.ids:0 +msgid "Want to Clear Ids ? " +msgstr "" + +#. module: base +#: view:res.partner.bank:0 +msgid "Information About the Bank" +msgstr "" + +#. module: base +#: help:ir.actions.server,condition:0 +msgid "" +"Condition that is tested before the action is executed, and prevent " +"execution if it is not verified.\n" +"Example: object.list_price > 5000\n" +"It is a Python expression that can use the following values:\n" +" - self: ORM model of the record on which the action is triggered\n" +" - object or obj: browse_record of the record on which the action is " +"triggered\n" +" - pool: ORM model pool (i.e. self.pool)\n" +" - time: Python time module\n" +" - cr: database cursor\n" +" - uid: current user id\n" +" - context: current context" +msgstr "" + +#. module: base +#: view:ir.rule:0 +msgid "" +"2. Group-specific rules are combined together with a logical OR operator" +msgstr "" + +#. module: base +#: model:res.partner.category,name:base.res_partner_category_woodsuppliers0 +msgid "Wood Suppliers" +msgstr "" + +#. module: base +#: model:res.country,name:base.tg +msgid "Togo" +msgstr "" + +#. module: base +#: selection:ir.module.module,license:0 +msgid "Other Proprietary" +msgstr "" + +#. module: base +#: model:res.country,name:base.ec +msgid "Ecuador" +msgstr "" + +#. module: base +#: selection:workflow.activity,kind:0 +msgid "Stop All" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_analytic_user_function +msgid "Jobs on Contracts" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_import_sugarcrm +msgid "" +"This Module Import SugarCRM \"Leads\", \"Opportunities\", \"Users\", " +"\"Accounts\", \n" +" \"Contacts\", \"Employees\", Meetings, Phonecalls, Emails, and " +"Project, Project Tasks Data into OpenERP Module." +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_publisher_warranty_contract_add_wizard +#: model:ir.ui.menu,name:base.menu_publisher_warranty_contract_add +#: view:publisher_warranty.contract.wizard:0 +msgid "Register a Contract" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_ve +msgid "" +"\n" +"This is the module to manage the accounting chart for Venezuela in OpenERP.\n" +"===========================================================================\n" +"\n" +"Este módulo es para manejar un catálogo de cuentas ejemplo para Venezuela.\n" +msgstr "" + +#. module: base +#: view:ir.model.data:0 +msgid "Updatable" +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "3. %x ,%X ==> 12/05/08, 18:25:20" +msgstr "" + +#. module: base +#: selection:ir.model.fields,on_delete:0 +msgid "Cascade" +msgstr "" + +#. module: base +#: field:workflow.transition,group_id:0 +msgid "Group Required" +msgstr "" + +#. module: base +#: model:ir.module.category,description:base.module_category_knowledge_management +msgid "" +"Lets you install addons geared towards sharing knowledge with and between " +"your employees." +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Arabic / الْعَرَبيّة" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_web_hello +msgid "Hello" +msgstr "" + +#. module: base +#: view:ir.actions.configuration.wizard:0 +msgid "Next Configuration Step" +msgstr "" + +#. module: base +#: field:res.groups,comment:0 +msgid "Comment" +msgstr "" + +#. module: base +#: model:res.groups,name:base.group_hr_manager +msgid "HR Manager" +msgstr "" + +#. module: base +#: view:ir.filters:0 +#: field:ir.model.fields,domain:0 +#: field:ir.rule,domain:0 +#: field:ir.rule,domain_force:0 +#: field:res.partner.title,domain:0 +msgid "Domain" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_marketing_campaign +msgid "Marketing Campaigns" +msgstr "" + +#. module: base +#: code:addons/base/publisher_warranty/publisher_warranty.py:144 +#, python-format +msgid "Contract validation error" +msgstr "" + +#. module: base +#: field:ir.values,key2:0 +msgid "Qualifier" +msgstr "" + +#. module: base +#: field:res.country.state,name:0 +msgid "State Name" +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "Update Languague Terms" +msgstr "" + +#. module: base +#: field:workflow.activity,join_mode:0 +msgid "Join Mode" +msgstr "" + +#. module: base +#: field:res.users,context_tz:0 +msgid "Timezone" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_wiki_faq +msgid "Wiki: Internal FAQ" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_actions_report_xml +#: selection:ir.ui.menu,action:0 +msgid "ir.actions.report.xml" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_project_issue_sheet +msgid "" +"\n" +"This module adds the Timesheet support for the Issues/Bugs Management in " +"Project.\n" +"=============================================================================" +"====\n" +"\n" +"Worklogs can be maintained to signify number of hours spent by users to " +"handle an issue.\n" +" " +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.ir_sequence_form +#: view:ir.sequence:0 +#: model:ir.ui.menu,name:base.menu_ir_sequence_form +msgid "Sequences" +msgstr "" + +#. module: base +#: model:res.partner.title,shortcut:base.res_partner_title_miss +msgid "Mss" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_ui_view +msgid "ir.ui.view" +msgstr "" + +#. module: base +#: help:res.lang,code:0 +msgid "This field is used to set/get locales for user" +msgstr "" + +#. module: base +#: model:res.partner.category,name:base.res_partner_category_2 +msgid "OpenERP Partners" +msgstr "" + +#. module: base +#: code:addons/base/module/module.py:293 +#, python-format +msgid "" +"Unable to install module \"%s\" because an external dependency is not met: %s" +msgstr "" + +#. module: base +#: view:ir.module.module:0 +msgid "Search modules" +msgstr "" + +#. module: base +#: model:res.country,name:base.by +msgid "Belarus" +msgstr "" + +#. module: base +#: field:ir.actions.act_window,name:0 +#: field:ir.actions.act_window_close,name:0 +#: field:ir.actions.actions,name:0 +#: field:ir.actions.client,name:0 +#: field:ir.actions.server,name:0 +#: field:ir.actions.url,name:0 +msgid "Action Name" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,help:base.action_res_users +msgid "" +"Create and manage users that will connect to the system. Users can be " +"deactivated should there be a period of time during which they will/should " +"not connect to the system. You can assign them groups in order to give them " +"specific access to the applications they need to use in the system." +msgstr "" + +#. module: base +#: selection:ir.module.module,complexity:0 +#: selection:res.request,priority:0 +msgid "Normal" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_purchase_double_validation +msgid "Double Validation on Purchases" +msgstr "" + +#. module: base +#: field:res.bank,street2:0 +#: field:res.company,street2:0 +#: field:res.partner.address,street2:0 +msgid "Street2" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_view_base_module_update +msgid "Module Update" +msgstr "" + +#. module: base +#: code:addons/base/module/wizard/base_module_upgrade.py:95 +#, python-format +msgid "Following modules are not installed or unknown: %s" +msgstr "" + +#. module: base +#: view:ir.cron:0 +#: field:ir.cron,user_id:0 +#: field:ir.filters,user_id:0 +#: field:ir.ui.view.custom,user_id:0 +#: field:ir.values,user_id:0 +#: model:res.groups,name:base.group_document_user +#: model:res.groups,name:base.group_tool_user +#: field:res.log,user_id:0 +#: field:res.partner.event,user_id:0 +#: view:res.users:0 +#: field:res.widget.user,user_id:0 +msgid "User" +msgstr "" + +#. module: base +#: model:res.country,name:base.pr +msgid "Puerto Rico" +msgstr "" + +#. module: base +#: view:ir.actions.act_window:0 +msgid "Open Window" +msgstr "" + +#. module: base +#: field:ir.actions.act_window,auto_search:0 +msgid "Auto Search" +msgstr "" + +#. module: base +#: field:ir.actions.act_window,filter:0 +msgid "Filter" +msgstr "" + +#. module: base +#: model:res.partner.title,shortcut:base.res_partner_title_madam +msgid "Ms." +msgstr "" + +#. module: base +#: view:base.module.import:0 +msgid "" +"This wizard helps you to import a new module to your OpenERP system. After " +"importing a new module you can install it by clicking on the button " +"\"Install\" from the form view." +msgstr "" + +#. module: base +#: model:res.country,name:base.ch +msgid "Switzerland" +msgstr "" + +#. module: base +#: model:res.country,name:base.gd +msgid "Grenada" +msgstr "" + +#. module: base +#: view:ir.actions.server:0 +msgid "Trigger Configuration" +msgstr "" + +#. module: base +#: view:base.language.install:0 +msgid "Load" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_warning +msgid "" +"\n" +"Module to trigger warnings in OpenERP objects.\n" +"==============================================\n" +"\n" +"Warning messages can be displayed for objects like sale order, purchase " +"order,\n" +"picking and invoice. The message is triggered by the form's onchange event.\n" +" " +msgstr "" + +#. module: base +#: code:addons/osv.py:150 +#: code:addons/osv.py:152 +#, python-format +msgid "Integrity Error" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_wizard_screen +msgid "ir.wizard.screen" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_workflow +msgid "workflow" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_model.py:255 +#, python-format +msgid "Size of the field can never be less than 1 !" +msgstr "" + +#. module: base +#: model:res.country,name:base.so +msgid "Somalia" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_mrp_operations +msgid "Manufacturing Operations" +msgstr "" + +#. module: base +#: selection:publisher_warranty.contract,state:0 +msgid "Terminated" +msgstr "" + +#. module: base +#: model:res.partner.category,name:base.res_partner_category_13 +msgid "Important customers" +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "Update Terms" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_project_messages +msgid "" +"\n" +"This module provides the functionality to send messages within a project.\n" +"=========================================================================\n" +"\n" +"A user can send messages individually to other user. He can even broadcast\n" +"it to all the users.\n" +" " +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_hr +msgid "Employee Directory" +msgstr "" + +#. module: base +#: view:ir.cron:0 +#: field:ir.cron,args:0 +msgid "Arguments" +msgstr "" + +#. module: base +#: code:addons/orm.py:1260 +#, python-format +msgid "Database ID doesn't exist: %s : %s" +msgstr "" + +#. module: base +#: selection:ir.module.module,license:0 +msgid "GPL Version 2" +msgstr "" + +#. module: base +#: selection:ir.module.module,license:0 +msgid "GPL Version 3" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_report_intrastat +msgid "" +"\n" +"A module that adds intrastat reports.\n" +"=====================================\n" +"\n" +"This module gives the details of the goods traded between the countries of " +"European Union " +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_stock_invoice_directly +msgid "" +"\n" +"Invoice Wizard for Delivery.\n" +"============================\n" +"\n" +"When you send or deliver goods, this module automatically launch\n" +"the invoicing wizard if the delivery is to be invoiced.\n" +" " +msgstr "" + +#. module: base +#: code:addons/orm.py:1388 +#, python-format +msgid "key '%s' not found in selection field '%s'" +msgstr "" + +#. module: base +#: selection:ir.values,key:0 +#: selection:res.partner.address,type:0 +msgid "Default" +msgstr "" + +#. module: base +#: view:partner.wizard.ean.check:0 +msgid "Correct EAN13" +msgstr "" + +#. module: base +#: selection:res.company,paper_format:0 +msgid "A4" +msgstr "" + +#. module: base +#: field:publisher_warranty.contract,check_support:0 +msgid "Support Level 1" +msgstr "" + +#. module: base +#: field:res.partner,customer:0 +#: view:res.partner.address:0 +#: field:res.partner.address,is_customer_add:0 +#: model:res.partner.category,name:base.res_partner_category_0 +msgid "Customer" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Spanish (NI) / Español (NI)" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_product_visible_discount +msgid "" +"\n" +"This module lets you calculate discounts on Sale Order lines and Invoice " +"lines base on the partner's pricelist.\n" +"=============================================================================" +"==================================\n" +"\n" +"To this end, a new check box named \"Visible Discount\" is added to the " +"pricelist form.\n" +"\n" +"Example:\n" +" For the product PC1 and the partner \"Asustek\": if listprice=450, and " +"the price calculated using Asustek's pricelist is 225\n" +" If the check box is checked, we will have on the sale order line: Unit " +"price=450, Discount=50,00, Net price=225\n" +" If the check box is unchecked, we will have on Sale Order and Invoice " +"lines: Unit price=225, Discount=0,00, Net price=225\n" +" " +msgstr "" + +#. module: base +#: field:ir.module.module,shortdesc:0 +msgid "Short Description" +msgstr "" + +#. module: base +#: field:res.country,code:0 +msgid "Country Code" +msgstr "" + +#. module: base +#: view:ir.sequence:0 +msgid "Hour 00->24: %(h24)s" +msgstr "" + +#. module: base +#: field:ir.cron,nextcall:0 +msgid "Next Execution Date" +msgstr "" + +#. module: base +#: field:ir.sequence,padding:0 +msgid "Number Padding" +msgstr "" + +#. module: base +#: help:multi_company.default,field_id:0 +msgid "Select field property" +msgstr "" + +#. module: base +#: field:res.request.history,date_sent:0 +msgid "Date sent" +msgstr "" + +#. module: base +#: view:ir.sequence:0 +msgid "Month: %(month)s" +msgstr "" + +#. module: base +#: field:ir.actions.act_window.view,sequence:0 +#: field:ir.actions.server,sequence:0 +#: field:ir.actions.todo,sequence:0 +#: field:ir.actions.todo.category,sequence:0 +#: view:ir.cron:0 +#: field:ir.module.category,sequence:0 +#: field:ir.module.module,sequence:0 +#: view:ir.sequence:0 +#: field:ir.ui.menu,sequence:0 +#: view:ir.ui.view:0 +#: field:ir.ui.view,priority:0 +#: field:ir.ui.view_sc,sequence:0 +#: field:multi_company.default,sequence:0 +#: field:res.partner.bank,sequence:0 +#: field:res.widget.user,sequence:0 +#: field:wizard.ir.model.menu.create.line,sequence:0 +msgid "Sequence" +msgstr "" + +#. module: base +#: model:res.country,name:base.tn +msgid "Tunisia" +msgstr "" + +#. module: base +#: view:ir.actions.todo:0 +msgid "Wizards to be Launched" +msgstr "" + +#. module: base +#: model:ir.module.category,name:base.module_category_manufacturing +#: model:ir.ui.menu,name:base.menu_mrp_root +msgid "Manufacturing" +msgstr "" + +#. module: base +#: model:res.country,name:base.km +msgid "Comoros" +msgstr "" + +#. module: base +#: view:res.request:0 +msgid "Draft and Active" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_server_action +#: view:ir.actions.server:0 +#: model:ir.ui.menu,name:base.menu_server_action +msgid "Server Actions" +msgstr "" + +#. module: base +#: field:res.partner.bank.type,format_layout:0 +msgid "Format Layout" +msgstr "" + +#. module: base +#: field:ir.model.fields,selection:0 +msgid "Selection Options" +msgstr "" + +#. module: base +#: field:res.partner.category,parent_right:0 +msgid "Right parent" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_auth_openid +msgid "OpenID Authentification" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_plugin_thunderbird +msgid "" +"\n" +"This module is required for the Thuderbird Plug-in to work properly.\n" +"====================================================================\n" +"\n" +"The plugin allows you archive email and its attachments to the selected\n" +"OpenERP objects. You can select a partner, a task, a project, an analytical\n" +"account, or any other object and attach the selected mail as a .eml file in\n" +"the attachment of a selected record. You can create documents for CRM Lead,\n" +"HR Applicant and Project Issue from selected mails.\n" +" " +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "Legends for Date and Time Formats" +msgstr "" + +#. module: base +#: selection:ir.actions.server,state:0 +msgid "Copy Object" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_mail +msgid "Emails Management" +msgstr "" + +#. module: base +#: field:ir.actions.server,trigger_name:0 +msgid "Trigger Signal" +msgstr "" + +#. module: base +#: code:addons/base/res/res_users.py:119 +#, python-format +msgid "" +"Group(s) cannot be deleted, because some user(s) still belong to them: %s !" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_mrp_repair +msgid "" +"\n" +"The aim is to have a complete module to manage all products repairs. The " +"following topics should be covered by this module:\n" +"=============================================================================" +"==============================================\n" +"\n" +" * Add/remove products in the reparation\n" +" * Impact for stocks\n" +" * Invoicing (products and/or services)\n" +" * Warranty concept\n" +" * Repair quotation report\n" +" * Notes for the technician and for the final customer\n" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_country_state +#: model:ir.ui.menu,name:base.menu_country_state_partner +msgid "Fed. States" +msgstr "" + +#. module: base +#: view:ir.model:0 +#: view:res.groups:0 +msgid "Access Rules" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_knowledge +msgid "" +"\n" +"Installer for knowledge-based Hidden.\n" +"====================================\n" +"\n" +"Makes the Knowledge Application Configuration available from where you can " +"install\n" +"document and Wiki based Hidden.\n" +" " +msgstr "" + +#. module: base +#: field:res.groups,trans_implied_ids:0 +msgid "Transitively inherits" +msgstr "" + +#. module: base +#: field:ir.default,ref_table:0 +msgid "Table Ref." +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_mail_server.py:443 +#, python-format +msgid "Mail delivery failed" +msgstr "" + +#. module: base +#: field:ir.actions.act_window,res_model:0 +#: field:ir.actions.report.xml,model:0 +#: field:ir.actions.server,model_id:0 +#: field:ir.actions.wizard,model:0 +#: field:ir.cron,model:0 +#: field:ir.default,field_tbl:0 +#: field:ir.filters,model_id:0 +#: view:ir.model.access:0 +#: field:ir.model.access,model_id:0 +#: view:ir.model.data:0 +#: view:ir.model.fields:0 +#: field:ir.rule,model_id:0 +#: selection:ir.translation,type:0 +#: view:ir.ui.view:0 +#: field:ir.ui.view,model:0 +#: field:multi_company.default,object_id:0 +#: field:res.log,res_model:0 +#: field:res.request.link,object:0 +#: field:workflow.triggers,model:0 +msgid "Object" +msgstr "" + +#. module: base +#: code:addons/osv.py:147 +#, python-format +msgid "" +"\n" +"\n" +"[object with reference: %s - %s]" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_account_analytic_plans +msgid "Multiple Analytic Plans" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_project_timesheet +msgid "" +"\n" +"Synchronization of project task work entries with timesheet entries.\n" +"====================================================================\n" +"\n" +"This module lets you transfer the entries under tasks defined for Project " +"Management to\n" +"the Timesheet line entries for particular date and particular user with the " +"effect of creating, editing and deleting either ways.\n" +"\n" +" " +msgstr "" + +#. module: base +#: view:ir.sequence:0 +msgid "Minute: %(min)s" +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.next_id_10 +msgid "Scheduler" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_base_tools +msgid "Base Tools" +msgstr "" + +#. module: base +#: help:res.country,address_format:0 +msgid "" +"You can state here the usual format to use for the addresses belonging to " +"this country.\n" +"\n" +"You can use the python-style string patern with all the field of the address " +"(for example, use '%(street)s' to display the field 'street') plus\n" +" \n" +"%(state_name)s: the name of the state\n" +" \n" +"%(state_code)s: the code of the state\n" +" \n" +"%(country_name)s: the name of the country\n" +" \n" +"%(country_code)s: the code of the country" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_pad +msgid "" +"\n" +"Adds enhanced support for (Ether)Pad attachments in the web client.\n" +"===================================================================\n" +"\n" +"Lets the company customize which Pad installation should be used to link to " +"new pads\n" +"(by default, http://ietherpad.com/).\n" +" " +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_uk +msgid "UK - Accounting" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_project_scrum +msgid "" +"\n" +"This module implements all concepts defined by the scrum project management " +"methodology for IT companies.\n" +"=============================================================================" +"============================\n" +"\n" +" * Project with sprints, product owner, scrum master\n" +" * Sprints with reviews, daily meetings, feedbacks\n" +" * Product backlog\n" +" * Sprint backlog\n" +"\n" +"It adds some concepts to the project management module:\n" +" * Mid-term, long-term road-map\n" +" * Customers/functional requests VS technical ones\n" +"\n" +"It also creates a new reporting:\n" +" * Burn-down chart\n" +"\n" +"The scrum projects and tasks inherit from the real projects and\n" +"tasks, so you can continue working on normal tasks that will also\n" +"include tasks from scrum projects.\n" +"\n" +"More information on the methodology:\n" +" * http://controlchaos.com\n" +" " +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_model.py:371 +#, python-format +msgid "" +"Changing the type of a column is not yet supported. Please drop it and " +"create it again!" +msgstr "" + +#. module: base +#: field:ir.ui.view_sc,user_id:0 +msgid "User Ref." +msgstr "" + +#. module: base +#: code:addons/base/res/res_users.py:118 +#, python-format +msgid "Warning !" +msgstr "" + +#. module: base +#: model:res.widget,title:base.google_maps_widget +msgid "Google Maps" +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.menu_base_config +#: model:ir.ui.menu,name:base.menu_config +#: model:ir.ui.menu,name:base.menu_event_config +#: model:ir.ui.menu,name:base.menu_lunch_survey_root +#: model:ir.ui.menu,name:base.menu_marketing_config_association +#: model:ir.ui.menu,name:base.menu_marketing_config_root +#: view:res.company:0 +#: model:res.groups,name:base.group_system +msgid "Configuration" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_in +msgid "India - Accounting" +msgstr "" + +#. module: base +#: field:ir.actions.server,expression:0 +msgid "Loop Expression" +msgstr "" + +#. module: base +#: field:publisher_warranty.contract,date_start:0 +msgid "Starting Date" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_gt +msgid "Guatemala - Accounting" +msgstr "" + +#. module: base +#: help:ir.cron,args:0 +msgid "Arguments to be passed to the method, e.g. (uid,)." +msgstr "" + +#. module: base +#: model:res.partner.category,name:base.res_partner_category_5 +msgid "Gold Partner" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_res_partner +#: field:res.company,partner_id:0 +#: view:res.partner.address:0 +#: field:res.partner.event,partner_id:0 +#: selection:res.partner.title,domain:0 +#: model:res.request.link,name:base.req_link_partner +msgid "Partner" +msgstr "" + +#. module: base +#: field:ir.model.fields,complete_name:0 +#: field:ir.ui.menu,complete_name:0 +msgid "Complete Name" +msgstr "" + +#. module: base +#: model:res.country,name:base.tr +msgid "Turkey" +msgstr "" + +#. module: base +#: model:res.country,name:base.fk +msgid "Falkland Islands" +msgstr "" + +#. module: base +#: model:res.country,name:base.lb +msgid "Lebanon" +msgstr "" + +#. module: base +#: view:ir.actions.report.xml:0 +#: field:ir.actions.report.xml,report_type:0 +msgid "Report Type" +msgstr "" + +#. module: base +#: field:ir.actions.todo,state:0 +#: field:ir.module.module,state:0 +#: field:ir.module.module.dependency,state:0 +#: field:publisher_warranty.contract,state:0 +#: view:res.country.state:0 +#: view:res.request:0 +#: field:res.request,state:0 +#: field:workflow.instance,state:0 +#: field:workflow.workitem,state:0 +msgid "State" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_hr_evaluation +msgid "" +"\n" +"Ability to create employees evaluation.\n" +"=======================================\n" +"\n" +"An evaluation can be created by employee for subordinates,\n" +"juniors as well as his manager.The evaluation is done under a plan\n" +"in which various surveys can be created and it can be defined which\n" +"level of employee hierarchy fills what and final review and evaluation\n" +"is done by the manager.Every evaluation filled by the employees can be " +"viewed\n" +"in the form of pdf file. Implements a dashboard for My Current Evaluations\n" +" " +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Galician / Galego" +msgstr "" + +#. module: base +#: model:res.country,name:base.no +msgid "Norway" +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "4. %b, %B ==> Dec, December" +msgstr "" + +#. module: base +#: view:base.language.install:0 +#: model:ir.ui.menu,name:base.menu_view_base_language_install +msgid "Load an Official Translation" +msgstr "" + +#. module: base +#: view:res.currency:0 +msgid "Miscelleanous" +msgstr "" + +#. module: base +#: model:res.partner.category,name:base.res_partner_category_10 +msgid "Open Source Service Company" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Sinhalese / සිංහල" +msgstr "" + +#. module: base +#: selection:res.request,state:0 +msgid "waiting" +msgstr "" + +#. module: base +#: field:ir.actions.report.xml,report_file:0 +msgid "Report file" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_workflow_triggers +msgid "workflow.triggers" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_model.py:74 +#, python-format +msgid "Invalid search criterions" +msgstr "" + +#. module: base +#: view:ir.mail_server:0 +msgid "Connection Information" +msgstr "" + +#. module: base +#: view:ir.attachment:0 +msgid "Created" +msgstr "" + +#. module: base +#: help:ir.actions.wizard,multi:0 +msgid "" +"If set to true, the wizard will not be displayed on the right toolbar of a " +"form view." +msgstr "" + +#. module: base +#: view:base.language.import:0 +msgid "- type,name,res_id,src,value" +msgstr "" + +#. module: base +#: model:res.country,name:base.hm +msgid "Heard and McDonald Islands" +msgstr "" + +#. module: base +#: help:ir.model.data,name:0 +msgid "" +"External Key/Identifier that can be used for data integration with third-" +"party systems" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_mrp_operations +msgid "" +"\n" +"This module adds state, date_start,date_stop in production order operation " +"lines (in the \"Work Centers\" tab).\n" +"=============================================================================" +"================================\n" +"\n" +"State: draft, confirm, done, cancel\n" +"When finishing/confirming,cancelling production orders set all state lines " +"to the according state\n" +"\n" +"Create menus:\n" +" Manufacturing > Manufacturing > Work Orders\n" +"\n" +"Which is a view on \"Work Centers\" lines in production order.\n" +"\n" +"Add buttons in the form view of production order under workcenter tab:\n" +" * start (set state to confirm), set date_start\n" +" * done (set state to done), set date_stop\n" +" * set to draft (set state to draft)\n" +" * cancel set state to cancel\n" +"\n" +"When the production order becomes \"ready to produce\", operations must\n" +"become 'confirmed'. When the production order is done, all operations\n" +"must become done.\n" +"\n" +"The field delay is the delay(stop date - start date).\n" +"So that we can compare the theoretic delay and real delay.\n" +"\n" +" " +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_auction +msgid "" +"\n" +"This module manages the records of artists, auction articles, buyers and " +"sellers.\n" +"=============================================================================" +"====\n" +"\n" +"It completely manages an auction such as managing bids,\n" +"keeping track of the sold articles along with the paid\n" +"and unpaid objects including delivery of the articles.\n" +"\n" +"The dashboard for auction includes:\n" +" * Latest Objects (list)\n" +" * Latest Deposits (list)\n" +" * Objects Statistics (list)\n" +" * Total Adjudications (graph)\n" +" * Min/Adj/Max (graph)\n" +" * Objects By Day (graph)\n" +" " +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_base_crypt +msgid "" +"\n" +"Replaces cleartext passwords in the database with a secure hash\n" +"===============================================================\n" +"For your existing user base, the removal of the cleartext\n" +"passwords occurs immediately when you instal base_crypt.\n" +"\n" +"All passwords will be replaced by a secure, salted, cryptographic\n" +"hash, preventing anyone from reading the original password in\n" +"the database.\n" +"\n" +"After installing this module it won't be possible to recover a\n" +"forgotten password for your users, the only solution is for an\n" +"admin to set a new password.\n" +"\n" +"Security Warning\n" +"++++++++++++++++\n" +"Installing this module does not mean you can ignore other security " +"measures,\n" +"as the password is still transmitted unencrypted on the network, unless you\n" +"are using a secure protocol such as XML-RPCS or HTTPS.\n" +"It also does not protect the rest of the content of the database, which may\n" +"contain critical data. Appropriate security measures need to be implemented\n" +"by the system administrator in all areas, such as: protection of database\n" +"backups, system files, remote shell access, physical server access, etc.\n" +"\n" +"Interation with LDAP authentication\n" +"+++++++++++++++++++++++++++++++++++\n" +"This module is currently not compatible with the ``user_ldap`` module and\n" +"will disable LDAP authentication completely if installed at the same time.\n" +"\n" +" " +msgstr "" + +#. module: base +#: field:ir.actions.act_window,view_id:0 +msgid "View Ref." +msgstr "" + +#. module: base +#: model:ir.module.category,description:base.module_category_sales_management +msgid "Helps you handle your quotations, sale orders and invoicing." +msgstr "" + +#. module: base +#: field:res.groups,implied_ids:0 +msgid "Inherits" +msgstr "" + +#. module: base +#: selection:ir.translation,type:0 +msgid "Selection" +msgstr "" + +#. module: base +#: field:ir.module.module,icon:0 +msgid "Icon URL" +msgstr "" + +#. module: base +#: field:ir.actions.act_window,type:0 +#: field:ir.actions.act_window_close,type:0 +#: field:ir.actions.actions,type:0 +#: field:ir.actions.client,type:0 +#: field:ir.actions.report.xml,type:0 +#: view:ir.actions.server:0 +#: field:ir.actions.server,state:0 +#: field:ir.actions.server,type:0 +#: field:ir.actions.url,type:0 +#: field:ir.actions.wizard,type:0 +msgid "Action Type" +msgstr "" + +#. module: base +#: model:res.country,name:base.vn +msgid "Vietnam" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_syscohada +msgid "" +"This module implements the accounting chart for OHADA area.\n" +" It allows any company or association to manage its financial " +"accounting.\n" +" Countries that use OHADA are the following:\n" +" Benin, Burkina Faso, Cameroon, Central African Republic, Comoros, " +"Congo,\n" +" Ivory Coast, Gabon, Guinea, Guinea Bissau,\n" +" Equatorial Guinea, Mali, Niger, Replica of Democratic Congo, Senegal, " +"Chad, Togo.\n" +" " +msgstr "" + +#. module: base +#: view:base.language.import:0 +#: model:ir.actions.act_window,name:base.action_view_base_import_language +#: model:ir.ui.menu,name:base.menu_view_base_import_language +msgid "Import Translation" +msgstr "" + +#. module: base +#: field:res.partner.bank.type,field_ids:0 +msgid "Type fields" +msgstr "" + +#. module: base +#: view:ir.actions.todo:0 +#: field:ir.actions.todo,category_id:0 +#: field:ir.module.module,category_id:0 +msgid "Category" +msgstr "" + +#. module: base +#: view:ir.attachment:0 +#: selection:ir.attachment,type:0 +#: selection:ir.property,type:0 +msgid "Binary" +msgstr "" + +#. module: base +#: field:ir.actions.server,sms:0 +#: selection:ir.actions.server,state:0 +msgid "SMS" +msgstr "" + +#. module: base +#: model:res.country,name:base.cr +msgid "Costa Rica" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_base_module_doc_rst +msgid "Generate Docs of Modules" +msgstr "" + +#. module: base +#: model:res.company,overdue_msg:base.main_company +msgid "" +"Our records indicate that the following payments are still due. If the " +"amount\n" +"has already been paid, please disregard this notice. However, if you have " +"any\n" +"queries regarding your account, please contact us.\n" +"Thank you in advance.\n" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_users_ldap +msgid "Authentication via LDAP" +msgstr "" + +#. module: base +#: view:workflow.activity:0 +msgid "Conditions" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_partner_other_form +msgid "Other Partners" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_currency_form +#: model:ir.ui.menu,name:base.menu_action_currency_form +#: view:res.currency:0 +msgid "Currencies" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_actions_client +#: selection:ir.ui.menu,action:0 +msgid "ir.actions.client" +msgstr "" + +#. module: base +#: help:ir.values,value:0 +msgid "Default value (pickled) or reference to an action" +msgstr "" + +#. module: base +#: sql_constraint:res.groups:0 +msgid "The name of the group must be unique !" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_base_report_designer +msgid "" +"\n" +"This module is used along with OpenERP OpenOffice Plugin.\n" +"=========================================================\n" +"\n" +"This module adds wizards to Import/Export .sxw report that\n" +"you can modify in OpenOffice. Once you have modified it you can\n" +"upload the report using the same wizard.\n" +msgstr "" + +#. module: base +#: view:ir.sequence:0 +msgid "Hour 00->12: %(h12)s" +msgstr "" + +#. module: base +#: help:res.partner.address,active:0 +msgid "Uncheck the active field to hide the contact." +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_res_widget_wizard +msgid "Add a widget for User" +msgstr "" + +#. module: base +#: model:res.country,name:base.dk +msgid "Denmark" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_base_calendar +msgid "" +"\n" +"This is a full-featured calendar system.\n" +"========================================\n" +"\n" +"It supports:\n" +" - Calendar of events\n" +" - Alerts (create requests)\n" +" - Recurring events\n" +" - Invitations to people\n" +"\n" +"If you need to manage your meetings, you should install the CRM module.\n" +" " +msgstr "" + +#. module: base +#: view:ir.rule:0 +msgid "Rule definition (domain filter)" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_workflow_instance +msgid "workflow.instance" +msgstr "" + +#. module: base +#: code:addons/orm.py:471 +#, python-format +msgid "Unknown attribute %s in %s " +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "10. %S ==> 20" +msgstr "" + +#. module: base +#: code:addons/fields.py:122 +#, python-format +msgid "undefined get method !" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Norwegian Bokmål / Norsk bokmål" +msgstr "" + +#. module: base +#: model:res.partner.title,name:base.res_partner_title_madam +msgid "Madam" +msgstr "" + +#. module: base +#: model:res.country,name:base.ee +msgid "Estonia" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_board +#: model:ir.ui.menu,name:base.menu_dashboard +msgid "Dashboards" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_procurement +msgid "Procurements" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_hr_payroll_account +msgid "Payroll Accounting" +msgstr "" + +#. module: base +#: help:ir.attachment,type:0 +msgid "Binary File or external URL" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_sale_order_dates +msgid "Dates on Sales Order" +msgstr "" + +#. module: base +#: view:ir.attachment:0 +msgid "Creation Month" +msgstr "" + +#. module: base +#: model:res.country,name:base.nl +msgid "Netherlands" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_edi +msgid "" +"\n" +"Provides a common EDI platform that other Applications can use\n" +"==============================================================\n" +"\n" +"OpenERP specifies a generic EDI format for exchanging business\n" +"documents between different systems, and provides generic\n" +"mechanisms to import and export them.\n" +"\n" +"More details about OpenERP's EDI format may be found in the\n" +"technical OpenERP documentation at http://doc.openerp.com\n" +" " +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.next_id_4 +msgid "Low Level Objects" +msgstr "" + +#. module: base +#: help:ir.values,model:0 +msgid "Model to which this entry applies" +msgstr "" + +#. module: base +#: field:res.country,address_format:0 +msgid "Address Format" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_values +msgid "ir.values" +msgstr "" + +#. module: base +#: model:res.groups,name:base.group_no_one +msgid "Technical Features" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Occitan (FR, post 1500) / Occitan" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_mail_server.py:192 +#, python-format +msgid "" +"Here is what we got instead:\n" +" %s" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_model_data +#: view:ir.model.data:0 +#: model:ir.ui.menu,name:base.ir_model_data_menu +msgid "External Identifiers" +msgstr "" + +#. module: base +#: model:res.groups,name:base.group_sale_salesman +msgid "User - Own Leads Only" +msgstr "" + +#. module: base +#: model:res.country,name:base.cd +msgid "Congo, The Democratic Republic of the" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Malayalam / മലയാളം" +msgstr "" + +#. module: base +#: view:res.request:0 +#: field:res.request,body:0 +#: field:res.request.history,req_id:0 +msgid "Request" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,help:base.act_ir_actions_todo_form +msgid "" +"The configuration wizards are used to help you configure a new instance of " +"OpenERP. They are launched during the installation of new modules, but you " +"can choose to restart some wizards manually from this menu." +msgstr "" + +#. module: base +#: view:res.company:0 +msgid "Portrait" +msgstr "" + +#. module: base +#: field:ir.cron,numbercall:0 +msgid "Number of Calls" +msgstr "" + +#. module: base +#: code:addons/base/res/res_bank.py:189 +#, python-format +msgid "BANK" +msgstr "" + +#. module: base +#: view:base.module.upgrade:0 +#: field:base.module.upgrade,module_info:0 +msgid "Modules to update" +msgstr "" + +#. module: base +#: help:ir.actions.server,sequence:0 +msgid "" +"Important when you deal with multiple actions, the execution order will be " +"decided based on this, low number is higher priority." +msgstr "" + +#. module: base +#: field:ir.actions.report.xml,header:0 +msgid "Add RML header" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_tr +msgid "" +"\n" +"Türkiye için Tek düzen hesap planı şablonu OpenERP Modülü.\n" +"=============================================================================" +"=\n" +"\n" +"Bu modül kurulduktan sonra, Muhasebe yapılandırma sihirbazı çalışır\n" +" * Sihirbaz sizden hesap planı şablonu, planın kurulacağı şirket,banka " +"hesap bilgileriniz,ilgili para birimi gibi bilgiler isteyecek.\n" +" " +msgstr "" + +#. module: base +#: view:res.config:0 +msgid "Apply" +msgstr "" + +#. module: base +#: field:res.request,trigger_date:0 +msgid "Trigger Date" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Croatian / hrvatski jezik" +msgstr "" + +#. module: base +#: sql_constraint:res.country:0 +msgid "The code of the country must be unique !" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_web_kanban +msgid "" +"\n" +" OpenERP Web kanban view.\n" +" " +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.menu_project_management_time_tracking +msgid "Time Tracking" +msgstr "" + +#. module: base +#: view:res.partner.category:0 +msgid "Partner Category" +msgstr "" + +#. module: base +#: view:ir.actions.server:0 +#: selection:ir.actions.server,state:0 +msgid "Trigger" +msgstr "" + +#. module: base +#: model:ir.module.category,description:base.module_category_warehouse_management +msgid "" +"Helps you manage your inventory and main stock operations: delivery orders, " +"receptions, etc." +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_base_module_update +msgid "Update Module" +msgstr "" + +#. module: base +#: view:ir.model.fields:0 +#: field:ir.model.fields,translate:0 +msgid "Translate" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_users_ldap +msgid "" +"\n" +"Adds support for authentication by LDAP server.\n" +"===============================================\n" +"This module allows users to login with their LDAP username and\n" +"password, and will automatically create OpenERP users for them\n" +"on the fly.\n" +"\n" +"**Note**: This module only work on servers who have Python's\n" +"``ldap`` module installed.\n" +"\n" +"Configuration\n" +"+++++++++++++\n" +"After installing this module, you need to configure the LDAP\n" +"parameters in the Configuration tab of the Company details.\n" +"Different companies may have different LDAP servers, as long\n" +"as they have unique usernames (usernames need to be unique in\n" +"OpenERP, even across multiple companies).\n" +"\n" +"Anonymous LDAP binding is also supported (for LDAP servers\n" +"that allow it), by simpling keeping the LDAP user and password\n" +"empty in the LDAP configuration. This does **not** allow\n" +"anonymous authentication for users, it is only for the master\n" +"LDAP account that is used to verify if a user exists before\n" +"attempting to authenticate it.\n" +"\n" +"Securing the connection with STARTTLS is available for LDAP\n" +"servers supporting it, by enabling the TLS option in the LDAP\n" +"configuration.\n" +"\n" +"For further options configuring the LDAP settings, refer to the\n" +"ldap.conf manpage :manpage:`ldap.conf(5)`.\n" +"\n" +"Security Considerations\n" +"+++++++++++++++++++++++\n" +"Users' LDAP passwords are never stored in the OpenERP database,\n" +"the LDAP server is queried whenever a user needs to be\n" +"authenticated. No duplication of the password occurs, and\n" +"passwords are managed in one place only.\n" +"\n" +"OpenERP does not manage password changes in the LDAP, so\n" +"any change of password should be conducted by other means\n" +"in the LDAP directory directly (for LDAP users).\n" +"\n" +"It is also possible to have local OpenERP users in the\n" +"database along with LDAP-authenticated users (the Administrator\n" +"account is one obvious example).\n" +"\n" +"Here is how it works:\n" +"\n" +" * The system first attempts to authenticate users against\n" +" the local OpenERP database ;\n" +" * if this authentication fails (for example because the\n" +" user has no local password), the system then attempts\n" +" to authenticate against LDAP ;\n" +"\n" +"As LDAP users have blank passwords by default in the local\n" +"OpenERP database (which means no access), the first step\n" +"always fails and the LDAP server is queried to do the\n" +"authentication.\n" +"\n" +"Enabling STARTTLS ensures that the authentication query to the\n" +"LDAP server is encrypted.\n" +"\n" +"User Template\n" +"+++++++++++++\n" +"In the LDAP configuration on the Company form, it is possible to\n" +"select a *User Template*. If set, this user will be used as\n" +"template to create the local users whenever someone authenticates\n" +"for the first time via LDAP authentication.\n" +"This allows pre-setting the default groups and menus of the\n" +"first-time users.\n" +"\n" +"**Warning**: if you set a password for the user template,\n" +"this password will be assigned as local password for each new\n" +"LDAP user, effectively setting a *master password* for these\n" +"users (until manually changed). You usually do not want this.\n" +"One easy way to setup a template user is to login once with\n" +"a valid LDAP user, let OpenERP create a blank local user with the\n" +"same login (and a blank password), then rename this new user\n" +"to a username that does not exist in LDAP, and setup its\n" +"groups the way you want.\n" +"\n" +"Interaction with base_crypt\n" +"+++++++++++++++++++++++++++\n" +"The base_crypt module is not compatible with this module, and\n" +"will disable LDAP authentication if installed at the same time.\n" +"\n" +" " +msgstr "" + +#. module: base +#: field:res.request.history,body:0 +msgid "Body" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_mail_server.py:199 +#, python-format +msgid "Connection test succeeded!" +msgstr "" + +#. module: base +#: view:partner.massmail.wizard:0 +msgid "Send Email" +msgstr "" + +#. module: base +#: field:res.users,menu_id:0 +msgid "Menu Action" +msgstr "" + +#. module: base +#: help:ir.model.fields,selection:0 +msgid "" +"List of options for a selection field, specified as a Python expression " +"defining a list of (key, label) pairs. For example: " +"[('blue','Blue'),('yellow','Yellow')]" +msgstr "" + +#. module: base +#: selection:base.language.export,state:0 +msgid "choose" +msgstr "" + +#. module: base +#: help:ir.model,osv_memory:0 +msgid "" +"Indicates whether this object model lives in memory only, i.e. is not " +"persisted (osv.osv_memory)" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_mail_server.py:415 +#, python-format +msgid "" +"Please define at least one SMTP server, or provide the SMTP parameters " +"explicitly." +msgstr "" + +#. module: base +#: view:ir.attachment:0 +msgid "Filter on my documents" +msgstr "" + +#. module: base +#: help:ir.actions.server,code:0 +msgid "" +"Python code to be executed if condition is met.\n" +"It is a Python block that can use the same values as for the condition field" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_partner_supplier_form +#: model:ir.ui.menu,name:base.menu_procurement_management_supplier_name +#: view:res.partner:0 +msgid "Suppliers" +msgstr "" + +#. module: base +#: view:publisher_warranty.contract.wizard:0 +msgid "Register" +msgstr "" + +#. module: base +#: field:res.request,ref_doc2:0 +msgid "Document Ref 2" +msgstr "" + +#. module: base +#: field:res.request,ref_doc1:0 +msgid "Document Ref 1" +msgstr "" + +#. module: base +#: model:res.country,name:base.ga +msgid "Gabon" +msgstr "" + +#. module: base +#: model:res.groups,name:base.group_multi_company +msgid "Multi Companies" +msgstr "" + +#. module: base +#: view:ir.model:0 +#: view:ir.rule:0 +#: view:res.groups:0 +#: model:res.groups,name:base.group_erp_manager +#: view:res.users:0 +msgid "Access Rights" +msgstr "" + +#. module: base +#: model:res.country,name:base.gl +msgid "Greenland" +msgstr "" + +#. module: base +#: model:res.groups,name:base.group_sale_salesman_all_leads +msgid "User - All Leads" +msgstr "" + +#. module: base +#: field:res.partner.bank,acc_number:0 +msgid "Account Number" +msgstr "" + +#. module: base +#: view:ir.rule:0 +msgid "" +"Example: GLOBAL_RULE_1 AND GLOBAL_RULE_2 AND ( (GROUP_A_RULE_1 OR " +"GROUP_A_RULE_2) OR (GROUP_B_RULE_1 OR GROUP_B_RULE_2) )" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_th +msgid "Thailand - Accounting" +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "1. %c ==> Fri Dec 5 18:25:20 2008" +msgstr "" + +#. module: base +#: model:res.country,name:base.nc +msgid "New Caledonia (French)" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_mrp_jit +msgid "" +"\n" +"This module allows Just In Time computation of procurement orders.\n" +"==================================================================\n" +"\n" +"If you install this module, you will not have to run the regular " +"procurement\n" +"scheduler anymore (but you still need to run the minimum order point rule\n" +"scheduler, or for example let it run daily.)\n" +"All procurement orders will be processed immediately, which could in some\n" +"cases entail a small performance impact.\n" +"\n" +"It may also increase your stock size because products are reserved as soon\n" +"as possible and the scheduler time range is not taken into account anymore.\n" +"In that case, you can not use priorities any more on the different picking.\n" +"\n" +" " +msgstr "" + +#. module: base +#: model:res.country,name:base.cy +msgid "Cyprus" +msgstr "" + +#. module: base +#: field:ir.actions.server,subject:0 +#: field:partner.massmail.wizard,subject:0 +#: field:res.request,name:0 +msgid "Subject" +msgstr "" + +#. module: base +#: selection:res.currency,position:0 +msgid "Before Amount" +msgstr "" + +#. module: base +#: field:res.request,act_from:0 +#: field:res.request.history,act_from:0 +msgid "From" +msgstr "" + +#. module: base +#: view:res.users:0 +msgid "Preferences" +msgstr "" + +#. module: base +#: model:res.partner.category,name:base.res_partner_category_consumers0 +msgid "Consumers" +msgstr "" + +#. module: base +#: view:res.company:0 +msgid "Set Bank Accounts" +msgstr "" + +#. module: base +#: field:ir.actions.client,tag:0 +msgid "Client action tag" +msgstr "" + +#. module: base +#: code:addons/base/res/res_lang.py:189 +#, python-format +msgid "You cannot delete the language which is User's Preferred Language !" +msgstr "" + +#. module: base +#: field:ir.values,model_id:0 +msgid "Model (change only)" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_marketing_campaign_crm_demo +msgid "" +"\n" +"Demo data for the module marketing_campaign.\n" +"============================================\n" +"\n" +"Creates demo data like leads, campaigns and segments for the module " +"marketing_campaign.\n" +" " +msgstr "" + +#. module: base +#: selection:ir.actions.act_window.view,view_mode:0 +#: selection:ir.ui.view,type:0 +msgid "Kanban" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_model.py:251 +#, python-format +msgid "" +"The Selection Options expression is must be in the [('key','Label'), ...] " +"format!" +msgstr "" + +#. module: base +#: view:ir.filters:0 +msgid "Current User" +msgstr "" + +#. module: base +#: field:res.company,company_registry:0 +msgid "Company Registry" +msgstr "" + +#. module: base +#: view:ir.actions.report.xml:0 +msgid "Miscellaneous" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_ir_mail_server_list +#: view:ir.mail_server:0 +#: model:ir.ui.menu,name:base.menu_mail_servers +msgid "Outgoing Mail Servers" +msgstr "" + +#. module: base +#: model:res.country,name:base.cn +msgid "China" +msgstr "" + +#. module: base +#: help:ir.actions.server,wkf_model_id:0 +msgid "" +"The object that should receive the workflow signal (must have an associated " +"workflow)" +msgstr "" + +#. module: base +#: model:ir.module.category,description:base.module_category_account_voucher +msgid "" +"Allows you to create your invoices and track the payments. It is an easier " +"version of the accounting module for managers who are not accountants." +msgstr "" + +#. module: base +#: model:res.country,name:base.eh +msgid "Western Sahara" +msgstr "" + +#. module: base +#: model:ir.module.category,name:base.module_category_account_voucher +msgid "Invoicing & Payments" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,help:base.action_res_company_form +msgid "" +"Create and manage the companies that will be managed by OpenERP from here. " +"Shops or subsidiaries can be created and maintained from here." +msgstr "" + +#. module: base +#: model:res.country,name:base.id +msgid "Indonesia" +msgstr "" + +#. module: base +#: view:base.update.translations:0 +msgid "" +"This wizard will detect new terms to translate in the application, so that " +"you can then add translations manually or perform a complete export (as a " +"template for a new language example)." +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_ch +msgid "" +"\n" +"Swiss localisation :\n" +" - DTA generation for a lot of payment types\n" +" - BVR management (number generation, report, etc..)\n" +" - Import account move from the bank file (like v11 etc..)\n" +" - Simplify the way you handle the bank statement for reconciliation\n" +"\n" +"You can also add ZIP and bank completion with:\n" +" - l10n_ch_zip\n" +" - l10n_ch_bank\n" +" \n" +" Author: Camptocamp SA\n" +" Donors: Hasa Sàrl, Open Net Sàrl and Prisme Solutions Informatique SA\n" +"\n" +"------------------------------------------------------------------------\n" +"\n" +"Module incluant la localisation Suisse de TinyERP revu et corrigé par " +"Camptocamp. Cette nouvelle version\n" +"comprend la gestion et l'émissionde BVR, le paiement électronique via DTA " +"(pour les banques, le système postal est en développement)\n" +"et l'import du relevé de compte depuis la banque de manière automatisée.\n" +"De plus, nous avons intégré la définition de toutes les banques " +"Suisses(adresse, swift et clearing).\n" +"\n" +"Par ailleurs, conjointement à ce module, nous proposons la complétion NPA:\n" +"\n" +"Vous pouvez ajouter la completion des banques et des NPA avec with:\n" +" - l10n_ch_zip\n" +" - l10n_ch_bank\n" +" \n" +" Auteur: Camptocamp SA\n" +" Donateurs: Hasa Sàrl, Open Net Sàrl and Prisme Solutions Informatique SA\n" +"\n" +"--------------------------------------------------------------------------\n" +"TODO :\n" +"- Implement bvr import partial reconciliation\n" +"- Replace wizard by osv_memory when possible\n" +"- Add mising HELP\n" +"- Finish code comment\n" +"- Improve demo data\n" +"\n" +"\n" +msgstr "" + +#. module: base +#: help:multi_company.default,expression:0 +msgid "" +"Expression, must be True to match\n" +"use context.get or user (browse)" +msgstr "" + +#. module: base +#: model:res.country,name:base.bg +msgid "Bulgaria" +msgstr "" + +#. module: base +#: view:publisher_warranty.contract.wizard:0 +msgid "Publisher warranty contract successfully registered!" +msgstr "" + +#. module: base +#: model:res.country,name:base.ao +msgid "Angola" +msgstr "" + +#. module: base +#: model:res.country,name:base.tf +msgid "French Southern Territories" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_res_currency +#: field:res.company,currency_id:0 +#: field:res.company,currency_ids:0 +#: view:res.currency:0 +#: field:res.currency,name:0 +#: field:res.currency.rate,currency_id:0 +msgid "Currency" +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "5. %y, %Y ==> 08, 2008" +msgstr "" + +#. module: base +#: model:res.partner.title,shortcut:base.res_partner_title_ltd +msgid "ltd" +msgstr "" + +#. module: base +#: field:res.log,res_id:0 +msgid "Object ID" +msgstr "" + +#. module: base +#: view:res.company:0 +msgid "Landscape" +msgstr "" + +#. module: base +#: model:ir.actions.todo.category,name:base.category_administration_config +#: model:ir.module.category,name:base.module_category_administration +msgid "Administration" +msgstr "" + +#. module: base +#: view:base.module.update:0 +msgid "Click on Update below to start the process..." +msgstr "" + +#. module: base +#: model:res.country,name:base.ir +msgid "Iran" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.res_widget_user_act_window +#: model:ir.ui.menu,name:base.menu_res_widget_user_act_window +msgid "Widgets per User" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_publisher_warranty_contract_form +#: model:ir.ui.menu,name:base.menu_publisher_warranty_contract +msgid "Contracts" +msgstr "" + +#. module: base +#: field:base.language.export,state:0 +#: field:ir.ui.menu,icon_pict:0 +#: field:publisher_warranty.contract.wizard,state:0 +msgid "unknown" +msgstr "" + +#. module: base +#: field:res.currency,symbol:0 +msgid "Symbol" +msgstr "" + +#. module: base +#: help:res.users,login:0 +msgid "Used to log into the system" +msgstr "" + +#. module: base +#: view:base.update.translations:0 +msgid "Synchronize Translation" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_base_module_quality +msgid "" +"\n" +"The aim of this module is to check the quality of other modules.\n" +"================================================================\n" +"\n" +"It defines a wizard on the list of modules in OpenERP, which allows you to\n" +"evaluate them on different criteria such as: the respect of OpenERP coding\n" +"standards, the speed efficiency...\n" +"\n" +"This module also provides generic framework to define your own quality " +"test.\n" +"For further info, coders may take a look into base_module_quality\\" +"README.txt\n" +"\n" +"WARNING: This module cannot work as a ZIP file, you must unzip it before\n" +"using it, otherwise it may crash.\n" +" " +msgstr "" + +#. module: base +#: field:res.partner.bank,bank_name:0 +msgid "Bank Name" +msgstr "" + +#. module: base +#: model:res.country,name:base.ki +msgid "Kiribati" +msgstr "" + +#. module: base +#: model:res.country,name:base.iq +msgid "Iraq" +msgstr "" + +#. module: base +#: model:ir.module.category,name:base.module_category_association +#: model:ir.ui.menu,name:base.menu_association +msgid "Association" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_stock_no_autopicking +msgid "" +"\n" +"This module allows an intermediate picking process to provide raw materials " +"to production orders.\n" +"=============================================================================" +"====================\n" +"\n" +"One example of usage of this module is to manage production made by your\n" +"suppliers (sub-contracting). To achieve this, set the assembled product\n" +"which is sub-contracted to \"No Auto-Picking\" and put the location of the\n" +"supplier in the routing of the assembly operation.\n" +" " +msgstr "" + +#. module: base +#: view:ir.actions.server:0 +msgid "Action to Launch" +msgstr "" + +#. module: base +#: help:res.users,context_lang:0 +msgid "" +"The default language used in the graphical user interface, when translations " +"are available. To add a new language, you can use the 'Load an Official " +"Translation' wizard available from the 'Administration' menu." +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_es +msgid "" +"\n" +"Spanish Charts of Accounts (PGCE 2008).\n" +"=======================================\n" +"\n" +"* Defines the following chart of account templates:\n" +" * Spanish General Chart of Accounts 2008.\n" +" * Spanish General Chart of Accounts 2008 for small and medium " +"companies.\n" +"* Defines templates for sale and purchase VAT.\n" +"* Defines tax code templates.\n" +"\n" +"Note: You should install the l10n_ES_account_balance_report module\n" +"for yearly account reporting (balance, profit & losses).\n" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_sequence_type +msgid "ir.sequence.type" +msgstr "" + +#. module: base +#: selection:base.language.export,format:0 +msgid "CSV File" +msgstr "" + +#. module: base +#: code:addons/base/res/res_company.py:154 +#, python-format +msgid "Phone: " +msgstr "" + +#. module: base +#: field:res.company,account_no:0 +msgid "Account No." +msgstr "" + +#. module: base +#: code:addons/base/res/res_lang.py:187 +#, python-format +msgid "Base Language 'en_US' can not be deleted !" +msgstr "" + +#. module: base +#: selection:ir.model,state:0 +msgid "Base Object" +msgstr "" + +#. module: base +#: report:ir.module.reference.graph:0 +msgid "Dependencies :" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_purchase_analytic_plans +msgid "" +"\n" +"The base module to manage analytic distribution and purchase orders.\n" +"====================================================================\n" +"\n" +"Allows the user to maintain several analysis plans. These let you split\n" +"a line on a supplier purchase order into several accounts and analytic " +"plans.\n" +" " +msgstr "" + +#. module: base +#: field:res.company,vat:0 +msgid "Tax ID" +msgstr "" + +#. module: base +#: field:ir.model.fields,field_description:0 +msgid "Field Label" +msgstr "" + +#. module: base +#: help:ir.actions.report.xml,report_rml:0 +msgid "" +"The path to the main report file (depending on Report Type) or NULL if the " +"content is in another data field" +msgstr "" + +#. module: base +#: model:res.country,name:base.dj +msgid "Djibouti" +msgstr "" + +#. module: base +#: field:ir.translation,value:0 +msgid "Translation Value" +msgstr "" + +#. module: base +#: model:res.country,name:base.ag +msgid "Antigua and Barbuda" +msgstr "" + +#. module: base +#: code:addons/orm.py:3669 +#, python-format +msgid "" +"Operation prohibited by access rules, or performed on an already deleted " +"document (Operation: %s, Document type: %s)." +msgstr "" + +#. module: base +#: model:res.country,name:base.zr +msgid "Zaire" +msgstr "" + +#. module: base +#: field:ir.translation,res_id:0 +#: field:workflow.instance,res_id:0 +#: field:workflow.triggers,res_id:0 +msgid "Resource ID" +msgstr "" + +#. module: base +#: view:ir.cron:0 +#: field:ir.model,info:0 +msgid "Information" +msgstr "" + +#. module: base +#: view:res.widget.user:0 +msgid "User Widgets" +msgstr "" + +#. module: base +#: view:base.module.update:0 +msgid "Update Module List" +msgstr "" + +#. module: base +#: code:addons/base/res/res_users.py:755 +#: code:addons/base/res/res_users.py:892 +#: selection:res.partner.address,type:0 +#: view:res.users:0 +#, python-format +msgid "Other" +msgstr "" + +#. module: base +#: view:res.request:0 +msgid "Reply" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Turkish / Türkçe" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_project_long_term +msgid "" +"\n" +"Long Term Project management module that tracks planning, scheduling, " +"resources allocation.\n" +"=============================================================================" +"==============\n" +"\n" +"Features\n" +"--------\n" +" * Manage Big project.\n" +" * Define various Phases of Project.\n" +" * Compute Phase Scheduling: Compute start date and end date of the " +"phases which are in draft,open and pending state of the project given.\n" +" If no project given then all the draft,open and pending state phases " +"will be taken.\n" +" * Compute Task Scheduling: This works same as the scheduler button on " +"project.phase. It takes the project as argument and computes all the " +"open,draft and pending tasks.\n" +" * Schedule Tasks: All the tasks which are in draft,pending and open " +"state are scheduled with taking the phase's start date\n" +" " +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_workflow_activity_form +#: model:ir.ui.menu,name:base.menu_workflow_activity +#: view:workflow:0 +#: field:workflow,activities:0 +msgid "Activities" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_product +msgid "Products & Pricelists" +msgstr "" + +#. module: base +#: field:ir.actions.act_window,auto_refresh:0 +msgid "Auto-Refresh" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_model.py:74 +#, python-format +msgid "The osv_memory field can only be compared with = and != operator." +msgstr "" + +#. module: base +#: selection:ir.ui.view,type:0 +msgid "Diagram" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_es +msgid "Spanish - Accounting (PGCE 2008)" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_stock_no_autopicking +msgid "Picking Before Manufacturing" +msgstr "" + +#. module: base +#: model:res.country,name:base.wf +msgid "Wallis and Futuna Islands" +msgstr "" + +#. module: base +#: help:multi_company.default,name:0 +msgid "Name it to easily find a record" +msgstr "" + +#. module: base +#: model:res.country,name:base.gr +msgid "Greece" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_web_calendar +msgid "web calendar" +msgstr "" + +#. module: base +#: field:ir.model.data,name:0 +msgid "External Identifier" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.grant_menu_access +#: model:ir.ui.menu,name:base.menu_grant_menu_access +msgid "Menu Items" +msgstr "" + +#. module: base +#: constraint:ir.rule:0 +msgid "Rules are not supported for osv_memory objects !" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_event +#: model:ir.ui.menu,name:base.menu_event_main +msgid "Events Organisation" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.ir_sequence_actions +#: model:ir.ui.menu,name:base.menu_custom_action +#: model:ir.ui.menu,name:base.menu_ir_sequence_actions +#: model:ir.ui.menu,name:base.next_id_6 +#: view:workflow.activity:0 +msgid "Actions" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_delivery +msgid "Delivery Costs" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_cron.py:293 +#, python-format +msgid "" +"This cron task is currently being executed and may not be modified, please " +"try again in a few minutes" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_product_expiry +msgid "" +"\n" +"Track different dates on products and production lots.\n" +"======================================================\n" +"\n" +"Following dates can be tracked:\n" +" - end of life\n" +" - best before date\n" +" - removal date\n" +" - alert date\n" +"\n" +"Used, for example, in food industries." +msgstr "" + +#. module: base +#: field:ir.exports.line,export_id:0 +msgid "Export" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_nl +msgid "Netherlands - Accounting" +msgstr "" + +#. module: base +#: field:res.bank,bic:0 +#: field:res.partner.bank,bank_bic:0 +msgid "Bank Identifier Code" +msgstr "" + +#. module: base +#: model:res.country,name:base.tm +msgid "Turkmenistan" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_web_process +msgid "" +"\n" +" OpenERP Web process view.\n" +" " +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_account_chart +msgid "" +"\n" +"Remove minimal account chart.\n" +"=============================\n" +"\n" +"Deactivates minimal chart of accounts.\n" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_actions.py:653 +#: code:addons/base/ir/ir_actions.py:748 +#: code:addons/base/ir/ir_actions.py:751 +#: code:addons/base/ir/ir_model.py:139 +#: code:addons/base/ir/ir_model.py:236 +#: code:addons/base/ir/ir_model.py:250 +#: code:addons/base/ir/ir_model.py:264 +#: code:addons/base/ir/ir_model.py:282 +#: code:addons/base/ir/ir_model.py:287 +#: code:addons/base/ir/ir_model.py:290 +#: code:addons/base/module/module.py:255 +#: code:addons/base/module/module.py:298 +#: code:addons/base/module/module.py:302 +#: code:addons/base/module/module.py:308 +#: code:addons/base/module/module.py:390 +#: code:addons/base/module/module.py:408 +#: code:addons/base/module/module.py:423 +#: code:addons/base/module/module.py:519 +#: code:addons/base/module/module.py:622 +#: code:addons/base/publisher_warranty/publisher_warranty.py:124 +#: code:addons/base/publisher_warranty/publisher_warranty.py:163 +#: code:addons/base/publisher_warranty/publisher_warranty.py:295 +#: code:addons/base/res/res_currency.py:190 +#: code:addons/base/res/res_users.py:86 +#: code:addons/base/res/res_users.py:95 +#: code:addons/custom.py:555 +#: code:addons/orm.py:791 +#: code:addons/orm.py:3704 +#, python-format +msgid "Error" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_base_crypt +msgid "DB Password Encryption" +msgstr "" + +#. module: base +#: help:workflow.transition,act_to:0 +msgid "The destination activity." +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_account_check_writing +msgid "Check writing" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_sale_layout +msgid "" +"\n" +"This module provides features to improve the layout of the Sales Order.\n" +"=======================================================================\n" +"\n" +"It gives you the possibility to\n" +" * order all the lines of a sales order\n" +" * add titles, comment lines, sub total lines\n" +" * draw horizontal lines and put page breaks\n" +"\n" +" " +msgstr "" + +#. module: base +#: view:base.module.update:0 +#: view:base.module.upgrade:0 +#: view:base.update.translations:0 +msgid "Update" +msgstr "" + +#. module: base +#: model:ir.actions.report.xml,name:base.ir_module_reference_print +msgid "Technical guide" +msgstr "" + +#. module: base +#: view:res.company:0 +msgid "Address Information" +msgstr "" + +#. module: base +#: model:res.country,name:base.tz +msgid "Tanzania" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Danish / Dansk" +msgstr "" + +#. module: base +#: selection:ir.model.fields,select_level:0 +msgid "Advanced Search (deprecated)" +msgstr "" + +#. module: base +#: model:res.country,name:base.cx +msgid "Christmas Island" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_web_livechat +msgid "Live Chat Support" +msgstr "" + +#. module: base +#: view:ir.actions.server:0 +msgid "Other Actions Configuration" +msgstr "" + +#. module: base +#: selection:ir.module.module.dependency,state:0 +msgid "Uninstallable" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_web_dashboard +msgid "" +"\n" +" OpenERP Web dashboard view.\n" +" " +msgstr "" + +#. module: base +#: view:res.partner:0 +msgid "Supplier Partners" +msgstr "" + +#. module: base +#: view:res.config.installer:0 +msgid "Install Modules" +msgstr "" + +#. module: base +#: view:ir.ui.view:0 +msgid "Extra Info" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_be_hr_payroll +msgid "" +"\n" +"Belgian Payroll Rules\n" +"=====================\n" +"\n" +" * Employee Details\n" +" * Employee Contracts\n" +" * Passport based Contract\n" +" * Allowances / Deductions\n" +" * Allow to configure Basic / Grows / Net Salary\n" +" * Employee Payslip\n" +" * Monthly Payroll Register\n" +" * Integrated with Holiday Management\n" +" * Salary Maj, ONSS, Withholding Tax, Child Allowance, ...\n" +" " +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_partner_wizard_ean_check +msgid "Ean Check" +msgstr "" + +#. module: base +#: view:res.partner:0 +msgid "Customer Partners" +msgstr "" + +#. module: base +#: sql_constraint:res.users:0 +msgid "You can not have two users with the same login !" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_res_request_history +msgid "res.request.history" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_multi_company_default +msgid "Default multi company" +msgstr "" + +#. module: base +#: view:res.request:0 +msgid "Send" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_process +msgid "" +"\n" +"This module shows the basic processes involved in the selected modules and " +"in the sequence they occur.\n" +"=============================================================================" +"=========================\n" +"\n" +"Note: This applies to the modules containing modulename_process_xml\n" +"e.g product/process/product_process_xml\n" +"\n" +" " +msgstr "" + +#. module: base +#: field:res.users,menu_tips:0 +msgid "Menu Tips" +msgstr "" + +#. module: base +#: field:ir.translation,src:0 +msgid "Source" +msgstr "" + +#. module: base +#: help:res.partner.address,partner_id:0 +msgid "Keep empty for a private address, not related to partner." +msgstr "" + +#. module: base +#: model:res.country,name:base.vu +msgid "Vanuatu" +msgstr "" + +#. module: base +#: view:res.company:0 +msgid "Internal Header/Footer" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_crm +msgid "CRM" +msgstr "" + +#. module: base +#: code:addons/base/module/wizard/base_export_language.py:59 +#, python-format +msgid "" +"Save this document to a .tgz file. This archive containt UTF-8 %s files and " +"may be uploaded to launchpad." +msgstr "" + +#. module: base +#: view:base.module.upgrade:0 +msgid "Start configuration" +msgstr "" + +#. module: base +#: view:base.language.export:0 +msgid "_Export" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_account_followup +msgid "Followup Management" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_fr +msgid "" +"\n" +"This is the module to manage the accounting chart for France in OpenERP.\n" +"========================================================================\n" +"\n" +"Credits: Sistheo Zeekom CrysaLEAD\n" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Catalan / Català" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Greek / Ελληνικά" +msgstr "" + +#. module: base +#: model:res.country,name:base.do +msgid "Dominican Republic" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Serbian (Cyrillic) / српски" +msgstr "" + +#. module: base +#: code:addons/orm.py:2527 +#, python-format +msgid "" +"Invalid group_by specification: \"%s\".\n" +"A group_by specification must be a list of valid fields." +msgstr "" + +#. module: base +#: selection:ir.mail_server,smtp_encryption:0 +msgid "TLS (STARTTLS)" +msgstr "" + +#. module: base +#: help:ir.actions.act_window,usage:0 +msgid "Used to filter menu and home actions from the user form." +msgstr "" + +#. module: base +#: model:res.country,name:base.sa +msgid "Saudi Arabia" +msgstr "" + +#. module: base +#: help:res.company,rml_header1:0 +msgid "Appears by default on the top right corner of your printed documents." +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_fetchmail_crm_claim +msgid "eMail Gateway for CRM Claim" +msgstr "" + +#. module: base +#: help:res.partner,supplier:0 +msgid "" +"Check this box if the partner is a supplier. If it's not checked, purchase " +"people will not see it when encoding a purchase order." +msgstr "" + +#. module: base +#: field:ir.actions.server,trigger_obj_id:0 +#: field:ir.model.fields,relation_field:0 +msgid "Relation Field" +msgstr "" + +#. module: base +#: view:res.partner.event:0 +msgid "Event Logs" +msgstr "" + +#. module: base +#: code:addons/base/module/wizard/base_module_configuration.py:38 +#, python-format +msgid "System Configuration done" +msgstr "" + +#. module: base +#: view:ir.actions.server:0 +msgid "Create / Write / Copy" +msgstr "" + +#. module: base +#: field:workflow.triggers,instance_id:0 +msgid "Destination Instance" +msgstr "" + +#. module: base +#: field:ir.actions.act_window,multi:0 +#: field:ir.actions.wizard,multi:0 +msgid "Action on Multiple Doc." +msgstr "" + +#. module: base +#: view:base.language.export:0 +msgid "https://translations.launchpad.net/openobject" +msgstr "" + +#. module: base +#: view:base.language.export:0 +msgid "Export Translations" +msgstr "" + +#. module: base +#: field:ir.actions.report.xml,report_xml:0 +msgid "XML path" +msgstr "" + +#. module: base +#: help:ir.sequence,implementation:0 +msgid "" +"Two sequence object implementations are offered: Standard and 'No gap'. The " +"later is slower than the former but forbids any gap in the sequence (while " +"they are possible in the former)." +msgstr "" + +#. module: base +#: model:res.country,name:base.gn +msgid "Guinea" +msgstr "" + +#. module: base +#: model:res.country,name:base.lu +msgid "Luxembourg" +msgstr "" + +#. module: base +#: selection:res.request,priority:0 +msgid "Low" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_ui_menu.py:284 +#, python-format +msgid "Error ! You can not create recursive Menu." +msgstr "" + +#. module: base +#: view:ir.rule:0 +msgid "" +"3. If user belongs to several groups, the results from step 2 are combined " +"with logical OR operator" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_auth_openid +msgid "Allow users to login through OpenID." +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_account_payment +msgid "Suppliers Payment Management" +msgstr "" + +#. module: base +#: model:res.country,name:base.sv +msgid "El Salvador" +msgstr "" + +#. module: base +#: field:res.bank,phone:0 +#: field:res.company,phone:0 +#: field:res.partner,phone:0 +#: field:res.partner.address,phone:0 +msgid "Phone" +msgstr "" + +#. module: base +#: field:res.groups,menu_access:0 +msgid "Access Menu" +msgstr "" + +#. module: base +#: model:res.country,name:base.th +msgid "Thailand" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_base_report_creator +msgid "" +"\n" +"This module allows you to create any statistic report on several objects.\n" +"=========================================================================\n" +"\n" +"It's an SQL query builder and browser\n" +"for end-users.\n" +"\n" +"After installing the module, it adds a menu to define a custom report in\n" +"the Administration / Customization / Reporting menu.\n" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_report_designer +msgid "Report Designer" +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.menu_address_book +#: model:ir.ui.menu,name:base.menu_config_address_book +#: model:ir.ui.menu,name:base.menu_procurement_management_supplier +msgid "Address Book" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_ma +msgid "" +"\n" +"This is the base module to manage the accounting chart for Maroc.\n" +"=================================================================\n" +"\n" +"Ce Module charge le modèle du plan de comptes standard Marocain et permet " +"de générer les états comptables aux normes marocaines (Bilan, CPC (comptes " +"de produits et charges), balance générale à 6 colonnes, Grand livre " +"cumulatif...). L'intégration comptable a été validé avec l'aide du Cabinet " +"d'expertise comptable Seddik au cours du troisième trimestre 2010" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_web_calendar +msgid "" +"\n" +" OpenERP Web calendar view.\n" +" " +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.menu_crm_config_lead +msgid "Leads & Opportunities" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Romanian / română" +msgstr "" + +#. module: base +#: view:res.log:0 +msgid "System Logs" +msgstr "" + +#. module: base +#: selection:workflow.activity,join_mode:0 +#: selection:workflow.activity,split_mode:0 +msgid "And" +msgstr "" + +#. module: base +#: help:ir.values,res_id:0 +msgid "" +"Database identifier of the record to which this applies. 0 = for all records" +msgstr "" + +#. module: base +#: field:ir.model.fields,relation:0 +msgid "Object Relation" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_account_voucher +msgid "eInvoicing & Payments" +msgstr "" + +#. module: base +#: view:ir.rule:0 +#: view:res.partner:0 +msgid "General" +msgstr "" + +#. module: base +#: model:res.country,name:base.uz +msgid "Uzbekistan" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_actions_act_window +#: selection:ir.ui.menu,action:0 +msgid "ir.actions.act_window" +msgstr "" + +#. module: base +#: field:ir.rule,perm_create:0 +msgid "Apply For Create" +msgstr "" + +#. module: base +#: model:res.country,name:base.vi +msgid "Virgin Islands (USA)" +msgstr "" + +#. module: base +#: model:res.country,name:base.tw +msgid "Taiwan" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_res_currency_rate +msgid "Currency Rate" +msgstr "" + +#. module: base +#: field:workflow,osv:0 +#: field:workflow.instance,res_type:0 +msgid "Resource Object" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_crm_helpdesk +msgid "Helpdesk" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,help:base.grant_menu_access +msgid "" +"Manage and customize the items available and displayed in your OpenERP " +"system menu. You can delete an item by clicking on the box at the beginning " +"of each line and then delete it through the button that appeared. Items can " +"be assigned to specific groups in order to make them accessible to some " +"users within the system." +msgstr "" + +#. module: base +#: field:ir.ui.view,field_parent:0 +msgid "Child Field" +msgstr "" + +#. module: base +#: view:ir.rule:0 +msgid "Detailed algorithm:" +msgstr "" + +#. module: base +#: field:ir.actions.act_window,usage:0 +#: field:ir.actions.act_window_close,usage:0 +#: field:ir.actions.actions,usage:0 +#: field:ir.actions.client,usage:0 +#: field:ir.actions.report.xml,usage:0 +#: field:ir.actions.server,usage:0 +#: field:ir.actions.wizard,usage:0 +msgid "Action Usage" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_workflow_workitem +msgid "workflow.workitem" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_profile_tools +msgid "Miscellaneous Tools" +msgstr "" + +#. module: base +#: model:ir.module.category,description:base.module_category_tools +msgid "" +"Lets you install various interesting but non-essential tools like Survey, " +"Lunch and Ideas box." +msgstr "" + +#. module: base +#: selection:ir.module.module,state:0 +msgid "Not Installable" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_product +msgid "" +"\n" +"This is the base module for managing products and pricelists in OpenERP.\n" +"========================================================================\n" +"\n" +"Products support variants, different pricing methods, suppliers\n" +"information, make to stock/order, different unit of measures,\n" +"packaging and properties.\n" +"\n" +"Pricelists support:\n" +" * Multiple-level of discount (by product, category, quantities)\n" +" * Compute price based on different criteria:\n" +" * Other pricelist,\n" +" * Cost price,\n" +" * List price,\n" +" * Supplier price, ...\n" +"\n" +"Pricelists preferences by product and/or partners.\n" +"\n" +"Print product labels with barcode.\n" +" " +msgstr "" + +#. module: base +#: report:ir.module.reference.graph:0 +msgid "View :" +msgstr "" + +#. module: base +#: field:ir.model.fields,view_load:0 +msgid "View Auto-Load" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_model.py:264 +#, python-format +msgid "You cannot remove the field '%s' !" +msgstr "" + +#. module: base +#: view:res.users:0 +msgid "Allowed Companies" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_de +msgid "Deutschland - Accounting" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_auction +msgid "Auction Houses" +msgstr "" + +#. module: base +#: field:ir.ui.menu,web_icon:0 +msgid "Web Icon File" +msgstr "" + +#. module: base +#: view:base.module.upgrade:0 +#: model:ir.ui.menu,name:base.menu_view_base_module_upgrade +msgid "Apply Scheduled Upgrades" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_sale_journal +msgid "Invoicing Journals" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Persian / فارس" +msgstr "" + +#. module: base +#: view:ir.actions.act_window:0 +msgid "View Ordering" +msgstr "" + +#. module: base +#: code:addons/base/module/wizard/base_module_upgrade.py:95 +#, python-format +msgid "Unmet dependency !" +msgstr "" + +#. module: base +#: view:base.language.import:0 +msgid "" +"Supported file formats: *.csv (Comma-separated values) or *.po (GetText " +"Portable Objects)" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_model.py:534 +#, python-format +msgid "" +"You can not delete this document (%s) ! Be sure your user belongs to one of " +"these groups: %s." +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_web_livechat +msgid "" +"\n" +"Enable live chat support for those who have a maintenance contract.\n" +"===================================================================\n" +"\n" +"Add \"Support\" button in header from where you can access OpenERP Support.\n" +" " +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_base_module_configuration +msgid "base.module.configuration" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_web +msgid "" +"\n" +" OpenERP Web core module.\n" +" This module provides the core of the OpenERP web client.\n" +" " +msgstr "" + +#. module: base +#: sql_constraint:res.country:0 +msgid "The name of the country must be unique !" +msgstr "" + +#. module: base +#: field:base.language.export,name:0 +#: field:ir.attachment,datas_fname:0 +msgid "Filename" +msgstr "" + +#. module: base +#: field:ir.model,access_ids:0 +#: view:ir.model.access:0 +msgid "Access" +msgstr "" + +#. module: base +#: model:res.country,name:base.sk +msgid "Slovak Republic" +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.publisher_warranty +msgid "Publisher Warranty" +msgstr "" + +#. module: base +#: model:res.country,name:base.aw +msgid "Aruba" +msgstr "" + +#. module: base +#: code:addons/base/module/wizard/base_module_import.py:60 +#, python-format +msgid "File is not a zip file!" +msgstr "" + +#. module: base +#: model:res.country,name:base.ar +msgid "Argentina" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_project_issue +msgid "" +"\n" +"This module provides Issues/Bugs Management in Project.\n" +"=======================================================\n" +"\n" +"OpenERP allows you to manage the issues you might face in a project\n" +"like bugs in a system, client complaints or material breakdowns. A\n" +"list view allows the manager to quickly check the issues, assign them\n" +"and decide on their status as they evolve.\n" +" " +msgstr "" + +#. module: base +#: field:res.groups,full_name:0 +msgid "Group Name" +msgstr "" + +#. module: base +#: model:res.country,name:base.bh +msgid "Bahrain" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_web +msgid "web" +msgstr "" + +#. module: base +#: field:res.bank,fax:0 +#: field:res.company,fax:0 +#: field:res.partner.address,fax:0 +msgid "Fax" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_l10n_nl +msgid "" +"\n" +"This is the module to manage the accounting chart for Netherlands in " +"OpenERP.\n" +"=============================================================================" +"\n" +"\n" +"Read changelog in file __openerp__.py for version information.\n" +"Dit is een basismodule om een uitgebreid grootboek- en BTW schema voor " +"Nederlandse bedrijven te installeren in OpenERP versie 5.\n" +"\n" +"De BTW rekeningen zijn waar nodig gekoppeld om de juiste rapportage te " +"genereren, denk b.v. aan intracommunautaire verwervingen\n" +"waarbij u 19% BTW moet opvoeren, maar tegelijkertijd ook 19% als voorheffing " +"weer mag aftrekken.\n" +"\n" +"Na installatie van deze module word de configuratie wizard voor " +"\"Accounting\" aangeroepen.\n" +" * U krijgt een lijst met grootboektemplates aangeboden waarin zich ook " +"het Nederlandse grootboekschema bevind.\n" +"\n" +" * Als de configuratie wizard start, wordt u gevraagd om de naam van uw " +"bedrijf in te voeren, welke grootboekschema te installeren, uit hoeveel " +"cijfers een grootboekrekening mag bestaan, het rekeningnummer van uw bank en " +"de currency om Journalen te creeren.\n" +"\n" +"Let op!! -> De template van het Nederlandse rekeningschema is opgebouwd uit " +"4 cijfers. Dit is het minimale aantal welk u moet invullen, u mag het aantal " +"verhogen. De extra cijfers worden dan achter het rekeningnummer aangevult " +"met \"nullen\"\n" +"\n" +" * Dit is dezelfe configuratie wizard welke aangeroepen kan worden via " +"Financial Management/Configuration/Financial Accounting/Financial " +"Accounts/Generate Chart of Accounts from a Chart Template.\n" +"\n" +" " +msgstr "" + +#. module: base +#: view:res.partner.address:0 +msgid "Search Contact" +msgstr "" + +#. module: base +#: view:ir.attachment:0 +#: field:ir.attachment,company_id:0 +#: field:ir.default,company_id:0 +#: field:ir.property,company_id:0 +#: field:ir.sequence,company_id:0 +#: field:ir.values,company_id:0 +#: view:res.company:0 +#: field:res.currency,company_id:0 +#: field:res.partner,company_id:0 +#: field:res.partner.address,company_id:0 +#: field:res.partner.bank,company_id:0 +#: view:res.users:0 +#: field:res.users,company_id:0 +msgid "Company" +msgstr "" + +#. module: base +#: model:ir.module.category,name:base.module_category_report_designer +msgid "Advanced Reporting" +msgstr "" + +#. module: base +#: selection:ir.actions.act_window,target:0 +#: selection:ir.actions.url,target:0 +msgid "New Window" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_model_data +msgid "ir.model.data" +msgstr "" + +#. module: base +#: view:publisher_warranty.contract:0 +msgid "Publisher Warranty Contract" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Bulgarian / български език" +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.menu_aftersale +msgid "After-Sale Services" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_fr +msgid "France - Accounting" +msgstr "" + +#. module: base +#: view:ir.actions.todo:0 +msgid "Launch" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_caldav +msgid "Share Calendar using CalDAV" +msgstr "" + +#. module: base +#: field:ir.actions.act_window,limit:0 +msgid "Limit" +msgstr "" + +#. module: base +#: help:workflow.transition,group_id:0 +msgid "" +"The group that a user must have to be authorized to validate this transition." +msgstr "" + +#. module: base +#: code:addons/orm.py:791 +#, python-format +msgid "Serialization field `%s` not found for sparse field `%s`!" +msgstr "" + +#. module: base +#: model:res.country,name:base.jm +msgid "Jamaica" +msgstr "" + +#. module: base +#: field:res.partner,color:0 +#: field:res.partner.address,color:0 +msgid "Color Index" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,help:base.action_partner_category_form +msgid "" +"Manage the partner categories in order to better classify them for tracking " +"and analysis purposes. A partner may belong to several categories and " +"categories have a hierarchy structure: a partner belonging to a category " +"also belong to his parent category." +msgstr "" + +#. module: base +#: model:res.country,name:base.az +msgid "Azerbaijan" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_mail_server.py:450 +#: code:addons/base/res/res_partner.py:273 +#, python-format +msgid "Warning" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_edi +msgid "Electronic Data Interchange (EDI)" +msgstr "" + +#. module: base +#: model:ir.module.category,name:base.module_category_tools +msgid "Extra Tools" +msgstr "" + +#. module: base +#: model:res.country,name:base.vg +msgid "Virgin Islands (British)" +msgstr "" + +#. module: base +#: view:ir.property:0 +#: model:ir.ui.menu,name:base.next_id_15 +msgid "Parameters" +msgstr "" + +#. module: base +#: model:res.country,name:base.pm +msgid "Saint Pierre and Miquelon" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_email_template +msgid "" +"\n" +"Email Templating (simplified version of the original Power Email by " +"Openlabs)\n" +"=============================================================================" +"\n" +"\n" +"Lets you design complete email templates related to any OpenERP document " +"(Sale\n" +"Orders, Invoices and so on), including sender, recipient, subject, body " +"(HTML and\n" +"Text). You may also automatically attach files to your templates, or print " +"and\n" +"attach a report.\n" +"\n" +"For advanced use, the templates may include dynamic attributes of the " +"document\n" +"they are related to. For example, you may use the name of a Partner's " +"country\n" +"when writing to them, also providing a safe default in case the attribute " +"is\n" +"not defined. Each template contains a built-in assistant to help with the\n" +"inclusion of these dynamic values.\n" +"\n" +"If you enable the option, a composition assistant will also appear in the " +"sidebar\n" +"of the OpenERP documents to which the template applies (e.g. Invoices).\n" +"This serves as a quick way to send a new email based on the template, after\n" +"reviewing and adapting the contents, if needed.\n" +"This composition assistant will also turn into a mass mailing system when " +"called\n" +"for multiple documents at once.\n" +"\n" +"These email templates are also at the heart of the marketing campaign " +"system\n" +"(see the ``marketing_campaign`` application), if you need to automate " +"larger\n" +"campaigns on any OpenERP document.\n" +"\n" +"Technical note: only the templating system of the original Power Email by\n" +"Openlabs was kept\n" +"\n" +" " +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Czech / Čeština" +msgstr "" + +#. module: base +#: model:ir.module.category,name:base.module_category_generic_modules +msgid "Generic Modules" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,help:base.action_partner_supplier_form +msgid "" +"You can access all information regarding your suppliers from the supplier " +"form: accounting data, history of emails, meetings, purchases, etc. You can " +"uncheck the 'Suppliers' filter button in order to search in all your " +"partners, including customers and prospects." +msgstr "" + +#. module: base +#: model:res.country,name:base.rw +msgid "Rwanda" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_hr_timesheet +msgid "" +"\n" +"This module implements a timesheet system.\n" +"==========================================\n" +"\n" +"Each employee can encode and track their time spent on the different " +"projects.\n" +"A project is an analytic account and the time spent on a project generates " +"costs on\n" +"the analytic account.\n" +"\n" +"Lots of reporting on time and employee tracking are provided.\n" +"\n" +"It is completely integrated with the cost accounting module. It allows you\n" +"to set up a management by affair.\n" +" " +msgstr "" + +#. module: base +#: help:ir.mail_server,smtp_port:0 +msgid "SMTP Port. Usually 465 for SSL, and 25 or 587 for other cases." +msgstr "" + +#. module: base +#: view:ir.sequence:0 +msgid "Day of the week (0:Monday): %(weekday)s" +msgstr "" + +#. module: base +#: model:res.country,name:base.ck +msgid "Cook Islands" +msgstr "" + +#. module: base +#: field:ir.model.data,noupdate:0 +msgid "Non Updatable" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Klingon" +msgstr "" + +#. module: base +#: model:res.country,name:base.sg +msgid "Singapore" +msgstr "" + +#. module: base +#: selection:ir.actions.act_window,target:0 +msgid "Current Window" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_crm +msgid "" +"\n" +"The generic OpenERP Customer Relationship Management.\n" +"=====================================================\n" +"\n" +"This system enables a group of people to intelligently and efficiently " +"manage\n" +"leads, opportunities, meeting, phonecall etc.\n" +"It manages key tasks such as communication, identification, prioritization,\n" +"assignment, resolution and notification.\n" +"\n" +"OpenERP ensures that all cases are successfully tracked by users, customers " +"and\n" +"suppliers. It can automatically send reminders, escalate the request, " +"trigger\n" +"specific methods and lots of other actions based on your own enterprise " +"rules.\n" +"\n" +"The greatest thing about this system is that users don't need to do " +"anything\n" +"special. They can just send email to the request tracker. OpenERP will take\n" +"care of thanking them for their message, automatically routing it to the\n" +"appropriate staff, and make sure all future correspondence gets to the " +"right\n" +"place.\n" +"\n" +"The CRM module has a email gateway for the synchronisation interface\n" +"between mails and OpenERP.\n" +"\n" +"Creates a dashboard for CRM that includes:\n" +" * Opportunities by Categories (graph)\n" +" * Opportunities by Stage (graph)\n" +" * Planned Revenue by Stage and User (graph)\n" +msgstr "" + +#. module: base +#: model:ir.module.category,description:base.module_category_accounting_and_finance +msgid "" +"Helps you handle your accounting needs, if you are not an accountant, we " +"suggest you to install only the Invoicing." +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_plugin_thunderbird +msgid "Thunderbird Plug-In" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_res_country +#: field:res.bank,country:0 +#: field:res.company,country_id:0 +#: view:res.country:0 +#: field:res.country.state,country_id:0 +#: field:res.partner,country:0 +#: view:res.partner.address:0 +#: field:res.partner.address,country_id:0 +#: field:res.partner.bank,country_id:0 +msgid "Country" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_project_messages +msgid "In-Project Messaging System" +msgstr "" + +#. module: base +#: model:res.country,name:base.pn +msgid "Pitcairn Island" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_web_tests +msgid "" +"\n" +" OpenERP Web test suite.\n" +" " +msgstr "" + +#. module: base +#: view:ir.values:0 +msgid "Action Bindings/Defaults" +msgstr "" + +#. module: base +#: view:ir.rule:0 +msgid "" +"1. Global rules are combined together with a logical AND operator, and with " +"the result of the following steps" +msgstr "" + +#. module: base +#: view:res.partner:0 +#: view:res.partner.address:0 +msgid "Change Color" +msgstr "" + +#. module: base +#: model:res.partner.category,name:base.res_partner_category_15 +msgid "IT sector" +msgstr "" + +#. module: base +#: view:ir.actions.act_window:0 +msgid "Select Groups" +msgstr "" + +#. module: base +#: view:res.lang:0 +msgid "%X - Appropriate time representation." +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Spanish (SV) / Español (SV)" +msgstr "" + +#. module: base +#: help:res.lang,grouping:0 +msgid "" +"The Separator Format should be like [,n] where 0 < n :starting from Unit " +"digit.-1 will end the separation. e.g. [3,2,-1] will represent 106500 to be " +"1,06,500;[1,2,-1] will represent it to be 106,50,0;[3] will represent it as " +"106,500. Provided ',' as the thousand separator in each case." +msgstr "" + +#. module: base +#: field:ir.module.module,auto_install:0 +msgid "Automatic Installation" +msgstr "" + +#. module: base +#: model:res.country,name:base.jp +msgid "Japan" +msgstr "" + +#. module: base +#: code:addons/base/ir/ir_model.py:357 +#, python-format +msgid "Can only rename one column at a time!" +msgstr "" + +#. module: base +#: selection:ir.translation,type:0 +msgid "Wizard Button" +msgstr "" + +#. module: base +#: selection:ir.translation,type:0 +msgid "Report/Template" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_marketing_campaign +msgid "" +"\n" +"This module provides leads automation through marketing campaigns (campaigns " +"can in fact be defined on any resource, not just CRM Leads).\n" +"=============================================================================" +"============================================================\n" +"\n" +"The campaigns are dynamic and multi-channels. The process is as follows:\n" +" * Design marketing campaigns like workflows, including email templates " +"to send, reports to print and send by email, custom actions, etc.\n" +" * Define input segments that will select the items that should enter the " +"campaign (e.g leads from certain countries, etc.)\n" +" * Run you campaign in simulation mode to test it real-time or " +"accelerated, and fine-tune it\n" +" * You may also start the real campaign in manual mode, where each action " +"requires manual validation\n" +" * Finally launch your campaign live, and watch the statistics as the " +"campaign does everything fully automatically.\n" +"\n" +"While the campaign runs you can of course continue to fine-tune the " +"parameters, input segments, workflow, etc.\n" +"\n" +"Note: If you need demo data, you can install the marketing_campaign_crm_demo " +"module, but this will also install the CRM application as it depends on CRM " +"Leads.\n" +" " +msgstr "" + +#. module: base +#: selection:ir.actions.act_window.view,view_mode:0 +#: selection:ir.ui.view,type:0 +#: selection:wizard.ir.model.menu.create.line,view_type:0 +msgid "Graph" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_ir_actions_server +#: selection:ir.ui.menu,action:0 +msgid "ir.actions.server" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_ca +msgid "Canada - Accounting" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.act_ir_actions_todo_form +#: field:ir.actions.todo.category,wizards_ids:0 +#: model:ir.model,name:base.model_ir_actions_todo +#: model:ir.ui.menu,name:base.menu_ir_actions_todo_form +#: model:ir.ui.menu,name:base.next_id_11 +msgid "Configuration Wizards" +msgstr "" + +#. module: base +#: field:res.lang,code:0 +msgid "Locale Code" +msgstr "" + +#. module: base +#: field:workflow.activity,split_mode:0 +msgid "Split Mode" +msgstr "" + +#. module: base +#: view:base.module.upgrade:0 +msgid "Note that this operation might take a few minutes." +msgstr "" + +#. module: base +#: model:ir.ui.menu,name:base.menu_localisation +msgid "Localisation" +msgstr "" + +#. module: base +#: field:ir.sequence,implementation:0 +msgid "Implementation" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_l10n_ve +msgid "Venezuela - Accounting" +msgstr "" + +#. module: base +#: model:res.country,name:base.cl +msgid "Chile" +msgstr "" + +#. module: base +#: view:ir.cron:0 +msgid "Execution" +msgstr "" + +#. module: base +#: field:ir.actions.server,condition:0 +#: view:ir.values:0 +#: field:workflow.transition,condition:0 +msgid "Condition" +msgstr "" + +#. module: base +#: help:res.currency,rate:0 +msgid "The rate of the currency to the currency of rate 1." +msgstr "" + +#. module: base +#: field:ir.ui.view,name:0 +msgid "View Name" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_document_ftp +msgid "Shared Repositories (FTP)" +msgstr "" + +#. module: base +#: model:ir.model,name:base.model_res_groups +msgid "Access Groups" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Italian / Italiano" +msgstr "" + +#. module: base +#: field:ir.actions.report.xml,attachment:0 +msgid "Save As Attachment Prefix" +msgstr "" + +#. module: base +#: view:ir.actions.server:0 +msgid "" +"Only one client action will be executed, last client action will be " +"considered in case of multiple client actions." +msgstr "" + +#. module: base +#: model:res.country,name:base.hr +msgid "Croatia" +msgstr "" + +#. module: base +#: field:ir.actions.server,mobile:0 +msgid "Mobile No" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_partner_by_category +#: model:ir.actions.act_window,name:base.action_partner_category_form +#: model:ir.model,name:base.model_res_partner_category +#: model:ir.ui.menu,name:base.menu_partner_category_form +#: view:res.partner.category:0 +msgid "Partner Categories" +msgstr "" + +#. module: base +#: view:base.module.upgrade:0 +msgid "System Update" +msgstr "" + +#. module: base +#: selection:ir.translation,type:0 +msgid "Wizard Field" +msgstr "" + +#. module: base +#: help:ir.sequence,prefix:0 +msgid "Prefix value of the record for the sequence" +msgstr "" + +#. module: base +#: model:res.country,name:base.sc +msgid "Seychelles" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_res_partner_bank_account_form +#: model:ir.model,name:base.model_res_partner_bank +#: model:ir.ui.menu,name:base.menu_action_res_partner_bank_form +#: view:res.company:0 +#: field:res.company,bank_ids:0 +#: view:res.partner.bank:0 +msgid "Bank Accounts" +msgstr "" + +#. module: base +#: field:ir.model,modules:0 +#: field:ir.model.fields,modules:0 +msgid "In modules" +msgstr "" + +#. module: base +#: model:res.country,name:base.sl +msgid "Sierra Leone" +msgstr "" + +#. module: base +#: view:res.company:0 +#: view:res.partner:0 +msgid "General Information" +msgstr "" + +#. module: base +#: model:res.country,name:base.tc +msgid "Turks and Caicos Islands" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_fetchmail_project_issue +msgid "eMail Gateway for Project Issues" +msgstr "" + +#. module: base +#: field:res.partner.bank,partner_id:0 +msgid "Account Owner" +msgstr "" + +#. module: base +#: code:addons/base/res/res_users.py:270 +#, python-format +msgid "Company Switch Warning" +msgstr "" + +#. module: base +#: model:res.country,name:base.ge +msgid "Georgia" +msgstr "" + +#. module: base +#: model:ir.module.category,description:base.module_category_manufacturing +msgid "" +"Helps you manage your manufacturing processes and generate reports on those " +"processes." +msgstr "" + +#. module: base +#: help:ir.sequence,number_increment:0 +msgid "The next number of the sequence will be incremented by this number" +msgstr "" + +#. module: base +#: code:addons/orm.py:341 +#, python-format +msgid "Wrong ID for the browse record, got %r, expected an integer." +msgstr "" + +#. module: base +#: field:res.partner.address,function:0 +#: selection:workflow.activity,kind:0 +msgid "Function" +msgstr "" + +#. module: base +#: view:res.widget:0 +msgid "Search Widget" +msgstr "" + +#. module: base +#: model:ir.module.category,description:base.module_category_customer_relationship_management +msgid "" +"Manage relations with prospects and customers using leads, opportunities, " +"requests or issues." +msgstr "" + +#. module: base +#: selection:res.partner.address,type:0 +msgid "Delivery" +msgstr "" + +#. module: base +#: model:res.partner.title,name:base.res_partner_title_pvt_ltd +#: model:res.partner.title,shortcut:base.res_partner_title_pvt_ltd +msgid "Corp." +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_purchase_requisition +msgid "Purchase Requisitions" +msgstr "" + +#. module: base +#: selection:ir.cron,interval_type:0 +msgid "Months" +msgstr "" + +#. module: base +#: view:workflow.instance:0 +msgid "Workflow Instances" +msgstr "" + +#. module: base +#: code:addons/base/res/res_partner.py:284 +#, python-format +msgid "Partners: " +msgstr "" + +#. module: base +#: field:res.partner.bank,name:0 +msgid "Bank Account" +msgstr "" + +#. module: base +#: model:res.country,name:base.kp +msgid "North Korea" +msgstr "" + +#. module: base +#: selection:ir.actions.server,state:0 +msgid "Create Object" +msgstr "" + +#. module: base +#: view:ir.filters:0 +#: field:res.log,context:0 +msgid "Context" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_sale_mrp +msgid "Sales and MRP Management" +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.action_partner_sms_send +msgid "Send an SMS" +msgstr "" + +#. module: base +#: model:res.partner.category,name:base.res_partner_category_1 +msgid "Prospect" +msgstr "" + +#. module: base +#: model:ir.module.module,shortdesc:base.module_stock_invoice_directly +msgid "Invoice Picking Directly" +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Polish / Język polski" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_base_tools +msgid "" +"\n" +"Common base for tools modules.\n" +"==============================\n" +"\n" +"Creates menu link for Tools from where tools like survey, lunch, idea, etc. " +"are accessible if installed.\n" +" " +msgstr "" + +#. module: base +#: field:ir.exports,name:0 +msgid "Export Name" +msgstr "" + +#. module: base +#: help:res.partner.address,type:0 +msgid "" +"Used to select automatically the right address according to the context in " +"sales and purchases documents." +msgstr "" + +#. module: base +#: model:ir.actions.act_window,name:base.res_widget_act_window +#: model:ir.ui.menu,name:base.menu_res_widget_act_window +msgid "Homepage Widgets" +msgstr "" + +#. module: base +#: help:res.company,rml_footer2:0 +msgid "" +"This field is computed automatically based on bank accounts defined, having " +"the display on footer checkbox set." +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_mrp_subproduct +msgid "" +"\n" +"This module allows you to produce several products from one production " +"order.\n" +"=============================================================================" +"\n" +"\n" +"You can configure sub-products in the bill of material.\n" +"\n" +"Without this module:\n" +" A + B + C -> D\n" +"\n" +"With this module:\n" +" A + B + C -> D + E\n" +" " +msgstr "" + +#. module: base +#: model:res.country,name:base.lk +msgid "Sri Lanka" +msgstr "" + +#. module: base +#: model:ir.module.module,description:base.module_base_module_record +msgid "" +"\n" +"This module allows you to create a new module without any development.\n" +"======================================================================\n" +"\n" +"It records all operations on objects during the recording session and\n" +"produce a .ZIP module. So you can create your own module directly from\n" +"the OpenERP client.\n" +"\n" +"This version works for creating and updating existing records. It " +"recomputes\n" +"dependencies and links for all types of widgets (many2one, many2many, ...).\n" +"It also support workflows and demo/update data.\n" +"\n" +"This should help you to easily create reusable and publishable modules\n" +"for custom configurations and demo/testing data.\n" +"\n" +"How to use it:\n" +"Run Administration/Customization/Module Creation/Export Customizations As a " +"Module wizard.\n" +"Select datetime criteria of recording and objects to be recorded and Record " +"module.\n" +" " +msgstr "" + +#. module: base +#: selection:base.language.install,lang:0 +msgid "Russian / русский язык" +msgstr "" diff --git a/openerp/addons/base/i18n/et.po b/openerp/addons/base/i18n/et.po index 9062f990858..aac50f06100 100644 --- a/openerp/addons/base/i18n/et.po +++ b/openerp/addons/base/i18n/et.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:49+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:39+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/eu.po b/openerp/addons/base/i18n/eu.po index 6960c42c604..792b21b6765 100644 --- a/openerp/addons/base/i18n/eu.po +++ b/openerp/addons/base/i18n/eu.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:48+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:38+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/fa.po b/openerp/addons/base/i18n/fa.po index cb2640e275c..066fe2500d8 100644 --- a/openerp/addons/base/i18n/fa.po +++ b/openerp/addons/base/i18n/fa.po @@ -9,8 +9,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:51+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:42+0000\n" +"X-Generator: Launchpad (build 15901)\n" "X-Poedit-Country: IRAN, ISLAMIC REPUBLIC OF\n" "X-Poedit-Language: Persian\n" diff --git a/openerp/addons/base/i18n/fa_AF.po b/openerp/addons/base/i18n/fa_AF.po index 7421652096b..6d1b941729e 100644 --- a/openerp/addons/base/i18n/fa_AF.po +++ b/openerp/addons/base/i18n/fa_AF.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:54+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:46+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/fi.po b/openerp/addons/base/i18n/fi.po index 23c260fa777..62d3fff7aa8 100644 --- a/openerp/addons/base/i18n/fi.po +++ b/openerp/addons/base/i18n/fi.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:49+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:39+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/fr.po b/openerp/addons/base/i18n/fr.po index 4e9b8b65314..02830069df2 100644 --- a/openerp/addons/base/i18n/fr.po +++ b/openerp/addons/base/i18n/fr.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:49+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:40+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/gl.po b/openerp/addons/base/i18n/gl.po index a5aedfcbabd..a1f6dec55ea 100644 --- a/openerp/addons/base/i18n/gl.po +++ b/openerp/addons/base/i18n/gl.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:49+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:40+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/gu.po b/openerp/addons/base/i18n/gu.po index 98078661372..7a54b30f5c7 100644 --- a/openerp/addons/base/i18n/gu.po +++ b/openerp/addons/base/i18n/gu.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:49+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:40+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/he.po b/openerp/addons/base/i18n/he.po index e93ad5bc99c..63b5e98ee3e 100644 --- a/openerp/addons/base/i18n/he.po +++ b/openerp/addons/base/i18n/he.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:50+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:40+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/hr.po b/openerp/addons/base/i18n/hr.po index 77ffdcfad88..a001f4b9cbe 100644 --- a/openerp/addons/base/i18n/hr.po +++ b/openerp/addons/base/i18n/hr.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:52+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:43+0000\n" +"X-Generator: Launchpad (build 15901)\n" "Language: hr\n" #. module: base diff --git a/openerp/addons/base/i18n/hu.po b/openerp/addons/base/i18n/hu.po index 6306c0c08d8..3a4de493607 100644 --- a/openerp/addons/base/i18n/hu.po +++ b/openerp/addons/base/i18n/hu.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:50+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:41+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/hy.po b/openerp/addons/base/i18n/hy.po index ee8e052c65b..aa1d7e92777 100644 --- a/openerp/addons/base/i18n/hy.po +++ b/openerp/addons/base/i18n/hy.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:48+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:38+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/id.po b/openerp/addons/base/i18n/id.po index eb8fc32dae6..20884ecd62d 100644 --- a/openerp/addons/base/i18n/id.po +++ b/openerp/addons/base/i18n/id.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:50+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:41+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/is.po b/openerp/addons/base/i18n/is.po index abc6822f8cf..b7d55808fb0 100644 --- a/openerp/addons/base/i18n/is.po +++ b/openerp/addons/base/i18n/is.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:50+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:41+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/it.po b/openerp/addons/base/i18n/it.po index 3a94ae3dad4..b73f9844de2 100644 --- a/openerp/addons/base/i18n/it.po +++ b/openerp/addons/base/i18n/it.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:50+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:41+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/ja.po b/openerp/addons/base/i18n/ja.po index da0df0161b6..f67e49e8630 100644 --- a/openerp/addons/base/i18n/ja.po +++ b/openerp/addons/base/i18n/ja.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:50+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:41+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/ka.po b/openerp/addons/base/i18n/ka.po index 5e103c4ddcd..3a13c7a3c19 100644 --- a/openerp/addons/base/i18n/ka.po +++ b/openerp/addons/base/i18n/ka.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:49+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:40+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/kk.po b/openerp/addons/base/i18n/kk.po index c0ccdbb7941..331db58c6fa 100644 --- a/openerp/addons/base/i18n/kk.po +++ b/openerp/addons/base/i18n/kk.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:50+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:41+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/ko.po b/openerp/addons/base/i18n/ko.po index b0e7ef59bb6..dff6a43c5e1 100644 --- a/openerp/addons/base/i18n/ko.po +++ b/openerp/addons/base/i18n/ko.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:50+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:41+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/lt.po b/openerp/addons/base/i18n/lt.po index 0c8fd797b12..71314ff39ec 100644 --- a/openerp/addons/base/i18n/lt.po +++ b/openerp/addons/base/i18n/lt.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:51+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:42+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/lv.po b/openerp/addons/base/i18n/lv.po index b358f73598c..cfc772f32f0 100644 --- a/openerp/addons/base/i18n/lv.po +++ b/openerp/addons/base/i18n/lv.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:51+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:42+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/mk.po b/openerp/addons/base/i18n/mk.po index 230c9287251..a487c340251 100644 --- a/openerp/addons/base/i18n/mk.po +++ b/openerp/addons/base/i18n/mk.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:51+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:42+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/mn.po b/openerp/addons/base/i18n/mn.po index fb8fbd3124d..273d4002096 100644 --- a/openerp/addons/base/i18n/mn.po +++ b/openerp/addons/base/i18n/mn.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:51+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:42+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/nb.po b/openerp/addons/base/i18n/nb.po index 2349bd550f7..5a6b76b7e6a 100644 --- a/openerp/addons/base/i18n/nb.po +++ b/openerp/addons/base/i18n/nb.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:51+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:42+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/nl.po b/openerp/addons/base/i18n/nl.po index 0b628b49d58..dbd37e376ac 100644 --- a/openerp/addons/base/i18n/nl.po +++ b/openerp/addons/base/i18n/nl.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:48+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:39+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh @@ -921,7 +921,7 @@ msgid "" "The module adds google contact in partner address and add google calendar " "events details in Meeting" msgstr "" -"Deze module voegt Google contact[ersonen in relatie adressen en voegt Google " +"Deze module voegt Google contactersonen in relatie adressen en voegt Google " "agenda items details in OpenERP agenda." #. module: base @@ -942,6 +942,15 @@ msgid "" "delete on objects and can check logs.\n" " " msgstr "" +"\n" +"Met deze module heeft de administrator de mogelijkheid om iedere gebruikers " +"handeling op alle objecten in het systeem te volgen.\n" +"=============================================================================" +"=======================\n" +"\n" +"De administrator kan regels voor lezen, schrijven en verwijderen definiëren " +"en logs hiervan bekijken\n" +" " #. module: base #: model:res.partner.category,name:base.res_partner_category_4 @@ -2482,6 +2491,18 @@ msgid "" "and categorize your interventions with a channel and a priority level.\n" " " msgstr "" +"\n" +"Helpdesk management.\n" +"===================\n" +"\n" +"Net als administratie en verwerking van claims is de Helpdesk en " +"ondersteuning tool, een goed instrument\n" +"om uw acties vast te leggen. Dit menu is meer aangepast aan de mondelinge " +"communicatie,\n" +"die niet noodzakelijkerwijs verband houden met een claim. Selecteer een " +"klant, voeg notities toe\n" +"en deel uw acties in.\n" +" " #. module: base #: sql_constraint:ir.ui.view_sc:0 @@ -2542,6 +2563,11 @@ msgid "" "\n" "Configure servers and trigger synchronization with its database objects.\n" msgstr "" +"\n" +"Synchronisatie van objecten.\n" +"=======================\n" +"Configureer servers and trigger database synchronisatie van de database " +"objecten.\n" #. module: base #: model:res.country,name:base.mg @@ -7548,6 +7574,14 @@ msgid "" "that exceeds minimum amount set by configuration wizard.\n" " " msgstr "" +"\n" +"Dubbele controle voor inkopen, welke een minimum bedrag overstijgen.\n" +"==========================================================\n" +"\n" +"Deze module past de inkoop workflow aan, zodat inkopen, welke een \n" +"minimum bedrag overstijgen moeten worden gecontroleerd. Dit kan worden\n" +"ingesteld in de configuratie wizard.\n" +" " #. module: base #: field:res.currency,rounding:0 @@ -10556,6 +10590,11 @@ msgid "" "\n" "Adds a Claim link to the delivery order.\n" msgstr "" +"\n" +"Maak een claim van een uitgaande levering.\n" +"===================================\n" +"\n" +"Voegt claim link toe aan een uitgaande order.\n" #. module: base #: view:ir.model:0 @@ -11772,6 +11811,13 @@ msgid "" "the invoicing wizard if the delivery is to be invoiced.\n" " " msgstr "" +"\n" +"Factuur wizard bij levering.\n" +"======================\n" +"\n" +"Deze module start de factuur wizard, direct na het verzamelen van een\n" +"inkomende of uitgaande levering en deze levering moet worden gefactureerd.\n" +" " #. module: base #: code:addons/orm.py:1388 @@ -13330,6 +13376,13 @@ msgid "" "marketing_campaign.\n" " " msgstr "" +"\n" +"Demo data voor de module marketing_campaign.\n" +"========================================\n" +"\n" +"maakt demo data aan, zoals leads, campagnes en segmenten voor de module " +"marketing_campaign.\n" +" " #. module: base #: selection:ir.actions.act_window.view,view_mode:0 @@ -13962,6 +14015,17 @@ msgid "" "\n" "Used, for example, in food industries." msgstr "" +"\n" +"Traceer verschillende datums van producten and productie partijen.\n" +"=======================================================\n" +"\n" +"de volgende datums kunnen worden getraceerd:\n" +" - THT datum\n" +" - Te gebruiken voor datum\n" +" - verwijder datum\n" +" - waarschuwing datum\n" +"\n" +"Wordt bijvoorbeeld gebruikt in de voedingsmiddelen industrie." #. module: base #: field:ir.exports.line,export_id:0 diff --git a/openerp/addons/base/i18n/nl_BE.po b/openerp/addons/base/i18n/nl_BE.po index 4572bc243e8..bf6b8deabaf 100644 --- a/openerp/addons/base/i18n/nl_BE.po +++ b/openerp/addons/base/i18n/nl_BE.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:54+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:45+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/pl.po b/openerp/addons/base/i18n/pl.po index 2798e4fa698..77e41253840 100644 --- a/openerp/addons/base/i18n/pl.po +++ b/openerp/addons/base/i18n/pl.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:51+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:42+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/pt.po b/openerp/addons/base/i18n/pt.po index 81d9978b4b1..5029fad58ed 100644 --- a/openerp/addons/base/i18n/pt.po +++ b/openerp/addons/base/i18n/pt.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:51+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:43+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/pt_BR.po b/openerp/addons/base/i18n/pt_BR.po index 79a1fed3fc1..3a7516a9dc2 100644 --- a/openerp/addons/base/i18n/pt_BR.po +++ b/openerp/addons/base/i18n/pt_BR.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:53+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:45+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/ro.po b/openerp/addons/base/i18n/ro.po index 33e70d7897d..2f82536f1ab 100644 --- a/openerp/addons/base/i18n/ro.po +++ b/openerp/addons/base/i18n/ro.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:52+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:43+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/ru.po b/openerp/addons/base/i18n/ru.po index 4bc5c7cfaba..92d742a292b 100644 --- a/openerp/addons/base/i18n/ru.po +++ b/openerp/addons/base/i18n/ru.po @@ -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: 2012-02-08 00:44+0000\n" -"PO-Revision-Date: 2012-08-20 15:45+0000\n" -"Last-Translator: OpenERP Administrators \n" +"PO-Revision-Date: 2012-09-10 14:37+0000\n" +"Last-Translator: Chertykov Denis \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:52+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-11 04:50+0000\n" +"X-Generator: Launchpad (build 15924)\n" #. module: base #: model:res.country,name:base.sh @@ -604,7 +604,7 @@ msgstr "Испанский (VE) / Español (VE)" #. module: base #: model:ir.module.module,shortdesc:base.module_hr_timesheet_invoice msgid "Invoice on Timesheets" -msgstr "" +msgstr "Счет по затратам времени" #. module: base #: view:base.module.upgrade:0 @@ -1269,7 +1269,7 @@ msgstr "Порт SMTP" #. module: base #: model:ir.module.module,shortdesc:base.module_import_sugarcrm msgid "SugarCRM Import" -msgstr "" +msgstr "Импорт SugarCRM" #. module: base #: view:res.lang:0 @@ -1374,7 +1374,7 @@ msgstr "Система управления документами" #. module: base #: model:ir.module.module,shortdesc:base.module_crm_claim msgid "Claims Management" -msgstr "" +msgstr "Управление претензиями" #. module: base #: model:ir.ui.menu,name:base.menu_purchase_root @@ -1749,6 +1749,12 @@ msgid "" " Apply Different Category for the product.\n" " " msgstr "" +"\n" +" Базовый модуль управления ланчами\n" +"\n" +" Отслеживание заказов, движения средств, кассы, продукции.\n" +" Возможность разнесения продукции по категориям.\n" +" " #. module: base #: model:res.country,name:base.kg @@ -1862,7 +1868,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_html_view msgid "Html View" -msgstr "" +msgstr "Просмотр HTML" #. module: base #: field:res.currency,position:0 @@ -2533,7 +2539,7 @@ msgstr "Идеи" #. module: base #: model:ir.module.module,shortdesc:base.module_sale_crm msgid "Opportunity to Quotation" -msgstr "" +msgstr "Предложение в Запрос цен" #. module: base #: model:ir.module.module,description:base.module_sale_analytic_plans @@ -2767,7 +2773,7 @@ msgstr "Словения" #. module: base #: help:res.currency,name:0 msgid "Currency Code (ISO 4217)" -msgstr "" +msgstr "Код валюты (ISO 4217)" #. module: base #: model:ir.actions.act_window,name:base.res_log_act_window @@ -3267,7 +3273,7 @@ msgstr "Режим SMTP-over-SSL недоступен" #. module: base #: model:ir.module.module,shortdesc:base.module_survey msgid "Survey" -msgstr "" +msgstr "Опрос" #. module: base #: view:base.language.import:0 @@ -3315,7 +3321,7 @@ msgstr "Уругвай" #. module: base #: model:ir.module.module,shortdesc:base.module_fetchmail_crm msgid "eMail Gateway for Leads" -msgstr "" +msgstr "Шлюз эл.почты для кандидатов" #. module: base #: selection:base.language.install,lang:0 @@ -3530,7 +3536,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_report_webkit msgid "Webkit Report Engine" -msgstr "" +msgstr "Инструмент создания отчетов Webkit" #. module: base #: selection:publisher_warranty.contract,state:0 @@ -3557,7 +3563,7 @@ msgstr "Майотта" #. module: base #: model:ir.module.module,shortdesc:base.module_crm_todo msgid "Tasks on CRM" -msgstr "" +msgstr "Задачи по CRM" #. module: base #: model:ir.module.category,name:base.module_category_generic_modules_accounting @@ -3683,12 +3689,12 @@ msgstr "Обнаружена рекурсия." #. module: base #: model:ir.module.module,shortdesc:base.module_report_webkit_sample msgid "Webkit Report Samples" -msgstr "" +msgstr "Примеры отчетов Webkit" #. module: base #: model:ir.module.module,shortdesc:base.module_point_of_sale msgid "Point Of Sale" -msgstr "" +msgstr "Точка продажи" #. module: base #: code:addons/base/module/module.py:302 @@ -3812,7 +3818,7 @@ msgstr "Проверка кода Ean" #. module: base #: field:res.partner,vat:0 msgid "VAT" -msgstr "ИНН" +msgstr "НДС" #. module: base #: field:res.users,new_password:0 @@ -3945,7 +3951,7 @@ msgstr "Поддержка iCal" #. module: base #: model:ir.module.module,shortdesc:base.module_fetchmail msgid "Email Gateway" -msgstr "" +msgstr "Шлюз эл.почты" #. module: base #: code:addons/base/ir/ir_mail_server.py:439 @@ -4069,7 +4075,7 @@ msgstr "Португалия" #. module: base #: model:ir.module.module,shortdesc:base.module_share msgid "Share any Document" -msgstr "" +msgstr "Совместный доступ r любым документам" #. module: base #: field:ir.module.module,certificate:0 @@ -4407,7 +4413,7 @@ msgstr "Код должен быть уникальным" #. module: base #: model:ir.module.module,shortdesc:base.module_hr_expense msgid "Expenses Management" -msgstr "" +msgstr "Управление расходами" #. module: base #: view:workflow.activity:0 @@ -4418,7 +4424,7 @@ msgstr "Входящие переходы" #. module: base #: field:ir.values,value_unpickle:0 msgid "Default value or action reference" -msgstr "" +msgstr "Значение по умолчанию или ссылка на действие" #. module: base #: model:res.country,name:base.sr @@ -4558,7 +4564,7 @@ msgstr "Экваториальная Гвинея" #. module: base #: model:ir.module.module,shortdesc:base.module_warning msgid "Warning Messages and Alerts" -msgstr "" +msgstr "Предупреждающие сообщения и оповещения" #. module: base #: view:base.module.import:0 @@ -4870,7 +4876,7 @@ msgstr "Договор уже зарегистрирован в системе." #: model:ir.actions.act_window,name:base.action_res_partner_bank_type_form #: model:ir.ui.menu,name:base.menu_action_res_partner_bank_typeform msgid "Bank Account Types" -msgstr "" +msgstr "Типы банковского счета" #. module: base #: help:ir.sequence,suffix:0 @@ -4880,7 +4886,7 @@ msgstr "Суффикс записи для нумерации" #. module: base #: help:ir.mail_server,smtp_user:0 msgid "Optional username for SMTP authentication" -msgstr "" +msgstr "Необязательное имя пользователя для аутентификации SMTP" #. module: base #: model:ir.model,name:base.model_ir_actions_actions @@ -4935,7 +4941,7 @@ msgstr "" #. module: base #: model:ir.module.module,shortdesc:base.module_web_chat msgid "Web Chat" -msgstr "" +msgstr "Веб-чат" #. module: base #: field:res.company,rml_footer2:0 @@ -4966,7 +4972,7 @@ msgstr "Права доступа" #: code:addons/base/ir/ir_model.py:311 #, python-format msgid "Changing the storing system for field \"%s\" is not allowed." -msgstr "" +msgstr "Изменение системы хранения для поля \"%s\" не допускается." #. module: base #: help:res.partner.bank,company_id:0 diff --git a/openerp/addons/base/i18n/sk.po b/openerp/addons/base/i18n/sk.po index e04f30d17b4..d6f64ab0e58 100644 --- a/openerp/addons/base/i18n/sk.po +++ b/openerp/addons/base/i18n/sk.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:52+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:43+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/sl.po b/openerp/addons/base/i18n/sl.po index b09a605f061..7fb3aa56052 100644 --- a/openerp/addons/base/i18n/sl.po +++ b/openerp/addons/base/i18n/sl.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:52+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:43+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/sq.po b/openerp/addons/base/i18n/sq.po index 1458397d8aa..d7e31006f9a 100644 --- a/openerp/addons/base/i18n/sq.po +++ b/openerp/addons/base/i18n/sq.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:47+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:38+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/sr.po b/openerp/addons/base/i18n/sr.po index 438f2ddf7fd..b409d0c1fa1 100644 --- a/openerp/addons/base/i18n/sr.po +++ b/openerp/addons/base/i18n/sr.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:52+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:43+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/sr@latin.po b/openerp/addons/base/i18n/sr@latin.po index 2698eaf9fe2..28f5c4fcf97 100644 --- a/openerp/addons/base/i18n/sr@latin.po +++ b/openerp/addons/base/i18n/sr@latin.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:54+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:46+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/sv.po b/openerp/addons/base/i18n/sv.po index c42f59727c7..70905626277 100644 --- a/openerp/addons/base/i18n/sv.po +++ b/openerp/addons/base/i18n/sv.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:52+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:44+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/th.po b/openerp/addons/base/i18n/th.po index 1ba6b797df1..95cbf8b8e7e 100644 --- a/openerp/addons/base/i18n/th.po +++ b/openerp/addons/base/i18n/th.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:53+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:44+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/tlh.po b/openerp/addons/base/i18n/tlh.po index 83667f9608c..a01448bde57 100644 --- a/openerp/addons/base/i18n/tlh.po +++ b/openerp/addons/base/i18n/tlh.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:53+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:44+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/tr.po b/openerp/addons/base/i18n/tr.po index fdf6e873862..c3827b43537 100644 --- a/openerp/addons/base/i18n/tr.po +++ b/openerp/addons/base/i18n/tr.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:53+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:44+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/uk.po b/openerp/addons/base/i18n/uk.po index 1f42e2d7096..fb53900b256 100644 --- a/openerp/addons/base/i18n/uk.po +++ b/openerp/addons/base/i18n/uk.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:53+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:44+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/ur.po b/openerp/addons/base/i18n/ur.po index 00005a0b91a..5942b9e11a0 100644 --- a/openerp/addons/base/i18n/ur.po +++ b/openerp/addons/base/i18n/ur.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:53+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:44+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/vi.po b/openerp/addons/base/i18n/vi.po index af94cce7bab..fbf09c542a4 100644 --- a/openerp/addons/base/i18n/vi.po +++ b/openerp/addons/base/i18n/vi.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:53+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:44+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/zh_CN.po b/openerp/addons/base/i18n/zh_CN.po index 13f80ce52be..c80e08c3c03 100644 --- a/openerp/addons/base/i18n/zh_CN.po +++ b/openerp/addons/base/i18n/zh_CN.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:54+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:46+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/zh_HK.po b/openerp/addons/base/i18n/zh_HK.po index d6e460642d7..f29b2edd59e 100644 --- a/openerp/addons/base/i18n/zh_HK.po +++ b/openerp/addons/base/i18n/zh_HK.po @@ -14,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:53+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:44+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/i18n/zh_TW.po b/openerp/addons/base/i18n/zh_TW.po index 4e60fac3c98..9886f689f96 100644 --- a/openerp/addons/base/i18n/zh_TW.po +++ b/openerp/addons/base/i18n/zh_TW.po @@ -13,8 +13,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2012-08-28 05:54+0000\n" -"X-Generator: Launchpad (build 15864)\n" +"X-Launchpad-Export-Date: 2012-09-05 04:45+0000\n" +"X-Generator: Launchpad (build 15901)\n" #. module: base #: model:res.country,name:base.sh diff --git a/openerp/addons/base/ir/ir.xml b/openerp/addons/base/ir/ir.xml index 49bb719bad7..29bb681981a 100644 --- a/openerp/addons/base/ir/ir.xml +++ b/openerp/addons/base/ir/ir.xml @@ -556,29 +556,6 @@ - - - ir.needaction_users_rel.tree - ir.needaction_users_rel - - - - - - - - - - - Need action relationships - ir.needaction_users_rel - form - tree,form - - - - - ir.ui.view @@ -599,8 +576,15 @@ - - + + + + + + + + + @@ -1173,6 +1157,7 @@ + @@ -1185,6 +1170,9 @@ ir.translation
+
+ +
@@ -1210,12 +1198,12 @@ Translations ir.translation - - + + - - - + + + diff --git a/openerp/addons/base/ir/ir_actions.py b/openerp/addons/base/ir/ir_actions.py index a5d04d7f1bc..383f78181e9 100644 --- a/openerp/addons/base/ir/ir_actions.py +++ b/openerp/addons/base/ir/ir_actions.py @@ -35,6 +35,7 @@ from tools.config import config from tools.safe_eval import safe_eval as eval from tools.translate import _ from socket import gethostname +from openerp import SUPERUSER_ID _logger = logging.getLogger(__name__) @@ -43,7 +44,7 @@ class actions(osv.osv): _table = 'ir_actions' _order = 'name' _columns = { - 'name': fields.char('Action Name', required=True, size=64), + 'name': fields.char('Name', size=64, required=True), 'type': fields.char('Action Type', required=True, size=32,readonly=True), 'usage': fields.char('Action Usage', size=32), } @@ -271,7 +272,7 @@ class act_window(osv.osv): :return: A read() view of the ir.actions.act_window """ dataobj = self.pool.get('ir.model.data') - data_id = dataobj._get_id (cr, 1, module, xml_id) + data_id = dataobj._get_id (cr, SUPERUSER_ID, module, xml_id) res_id = dataobj.browse(cr, uid, data_id, context).res_id return self.read(cr, uid, res_id, [], context) @@ -860,11 +861,10 @@ class act_client(osv.osv): _order = 'name' def _get_params(self, cr, uid, ids, field_name, arg, context): - return dict([ - ((record.id, ast.literal_eval(record.params_store)) - if record.params_store else (record.id, False)) - for record in self.browse(cr, uid, ids, context=context) - ]) + result = {} + for record in self.browse(cr, uid, ids, context=context): + result[record.id] = record.params_store and eval(record.params_store, {'uid': uid}) or False + return result def _set_params(self, cr, uid, id, field_name, field_value, arg, context): if isinstance(field_value, dict): @@ -873,10 +873,15 @@ class act_client(osv.osv): self.write(cr, uid, id, {'params_store': field_value}, context=context) _columns = { + 'name': fields.char('Action Name', required=True, size=64, translate=True), 'tag': fields.char('Client action tag', size=64, required=True, help="An arbitrary string, interpreted by the client" " according to its own needs and wishes. There " "is no central tag repository across clients."), + 'res_model': fields.char('Destination Model', size=64, + help="Optional model, mostly used for needactions."), + 'context': fields.char('Context Value', size=250, required=True, + help="Context dictionary as Python expression, empty by default (Default: {})"), 'params': fields.function(_get_params, fnct_inv=_set_params, type='binary', string="Supplementary arguments", @@ -886,6 +891,7 @@ class act_client(osv.osv): } _defaults = { 'type': 'ir.actions.client', + 'context': '{}', } act_client() diff --git a/openerp/addons/base/ir/ir_config_parameter.py b/openerp/addons/base/ir/ir_config_parameter.py index f21c2db8d0a..120fcfca554 100644 --- a/openerp/addons/base/ir/ir_config_parameter.py +++ b/openerp/addons/base/ir/ir_config_parameter.py @@ -26,6 +26,7 @@ from osv import osv,fields import uuid import datetime from tools import misc, config +from openerp import SUPERUSER_ID """ A dictionary holding some configuration parameters to be initialized when the database is created. @@ -55,9 +56,9 @@ class ir_config_parameter(osv.osv): Initializes the parameters listed in _default_parameters. """ for key, func in _default_parameters.iteritems(): - ids = self.search(cr, 1, [('key','=',key)]) + ids = self.search(cr, SUPERUSER_ID, [('key','=',key)]) if not ids: - self.set_param(cr, 1, key, func()) + self.set_param(cr, SUPERUSER_ID, key, func()) def get_param(self, cr, uid, key, default=False, context=None): """Retrieve the value for a given key. diff --git a/openerp/addons/base/ir/ir_needaction.py b/openerp/addons/base/ir/ir_needaction.py index 0f28c33ded9..db133ad9904 100644 --- a/openerp/addons/base/ir/ir_needaction.py +++ b/openerp/addons/base/ir/ir_needaction.py @@ -19,180 +19,45 @@ # ############################################################################## -import openerp.pooler as pooler -from operator import itemgetter -from osv import osv, fields -from tools.translate import _ +from osv import osv -class ir_needaction_users_rel(osv.Model): - ''' ir_needaction_users_rel holds data related to the needaction - mechanism inside OpenERP. A row in this model is characterized - by: - - res_model: model of the record requiring an action - - res_id: ID of the record requiring an action - - user_id: foreign key to the res.users table, to the user that has to - perform the action - This model can be seen as a many2many, linking (res_model, res_id) to users - (those whose attention is required on the record). ''' - - _name = 'ir.needaction_users_rel' - _description = 'Needaction relationship table' - _rec_name = 'id' - _order = 'id desc' - _columns = { - 'res_model': fields.char('Related Document Model', size=128, - select=1, required=True), - 'res_id': fields.integer('Related Document ID', - select=1, required=True), - 'user_id': fields.many2one('res.users', string='Related User', - ondelete='cascade', select=1, required=True), - } - - def _get_users(self, cr, uid, res_ids, res_model, context=None): - """Given res_ids of res_model, get user_ids present in table""" - rel_ids = self.search(cr, uid, [('res_model', '=', res_model), ('res_id', 'in', res_ids)], context=context) - return list(set(map(itemgetter('user_id'), self.read(cr, uid, rel_ids, ['user_id'], context=context)))) - - def create_users(self, cr, uid, res_ids, res_model, user_ids, context=None): - """Given res_ids of res_model, add user_ids to the relationship table""" - for res_id in res_ids: - for user_id in user_ids: - self.create(cr, uid, {'res_model': res_model, 'res_id': res_id, 'user_id': user_id}, context=context) - return True - - def unlink_users(self, cr, uid, res_ids, res_model, context=None): - """Given res_ids of res_model, delete all entries in the relationship table""" - to_del_ids = self.search(cr, uid, [('res_model', '=', res_model), ('res_id', 'in', res_ids)], context=context) - return self.unlink(cr, uid, to_del_ids, context=context) - - def update_users(self, cr, uid, res_ids, res_model, user_ids, context=None): - """Given res_ids of res_model, update their entries in the relationship table to user_ids""" - # read current records - cur_users = self._get_users(cr, uid, res_ids, res_model, context=context) - if len(cur_users) == len(user_ids) and all(cur_user in user_ids for cur_user in cur_users): - return True - # unlink old records - self.unlink_users(cr, uid, res_ids, res_model, context=context) - # link new records - self.create_users(cr, uid, res_ids, res_model, user_ids, context=context) - return True - - -class ir_needaction_mixin(osv.Model): +class ir_needaction_mixin(osv.AbstractModel): '''Mixin class for objects using the need action feature. - - Need action feature can be used by objects having to be able to - signal that an action is required on a particular record. If in - the business logic an action must be performed by somebody, for - instance validation by a manager, this mechanism allows to set a + + Need action feature can be used by models that have to be able to + signal that an action is required on a particular record. If in + the business logic an action must be performed by somebody, for + instance validation by a manager, this mechanism allows to set a list of users asked to perform an action. - - This class wraps a class (ir.ir_needaction_users_rel) that - behaves like a many2many field. This class handles the low-level - considerations of updating relationships. Every change made on - the record calls a method that updates the relationships. - - Objects using the 'need_action' feature should override the - ``get_needaction_user_ids`` method. This methods returns a - dictionary whose keys are record ids, and values a list of user - ids, like in a many2many relationship. Therefore by defining - only one method, you can specify if an action is required by - defining the users that have to do it, in every possible - situation. - - This class also offers several global services: - - ``needaction_get_record_ids``: for the current model and uid, get - all record ids that ask this user to perform an action. This - mechanism is used for instance to display the number of pending - actions in menus, such as Leads (12) - - ``needaction_get_action_count``: as ``needaction_get_record_ids`` - but returns only the number of action, not the ids (performs a - search with count=True) - The ``ir_needaction_mixin`` class adds a calculated field - ``needaction_pending``. This function field allows to state - whether a given record has a needaction for the current user. - This is usefull if you want to customize views according to the - needaction feature. For example, you may want to set records in - bold in a list view if the current user has an action to perform - on the record. ''' - + Models using the 'need_action' feature should override the + ``_needaction_domain_get`` method. This method returns a + domain to filter records requiring an action for a specific user. + + This class also offers several global services: + - ``_needaction_count``: returns the number of actions uid has to perform + ''' + _name = 'ir.needaction_mixin' - _description = 'Need action mixin' - - def get_needaction_pending(self, cr, uid, ids, name, arg, context=None): - res = {} - needaction_user_ids = self.get_needaction_user_ids(cr, uid, ids, context=context) - for id in ids: - res[id] = uid in needaction_user_ids[id] - return res + _needaction = True - def search_needaction_pending(self, cr, uid, self_again, field_name, criterion, context=None): - ids = self.needaction_get_record_ids( - cr, uid, uid, limit=1024, context=context) - return [('id', 'in', ids)] - - _columns = { - 'needaction_pending': fields.function( - get_needaction_pending, type='boolean', - fnct_search=search_needaction_pending, - string='Need action pending', - help="If True, this field states that users have to perform an " \ - "action This field comes from the ir.needaction_mixin class."), - } - #------------------------------------------------------ - # Addon API + # Addons API #------------------------------------------------------ - - def get_needaction_user_ids(self, cr, uid, ids, context=None): - """ Returns the user_ids that have to perform an action - :return: dict { record_id: [user_ids], } + + def _needaction_domain_get(self, cr, uid, context=None): + """ Returns the domain to filter records that require an action + :return: domain or False is no action """ - return dict((id,list()) for id in ids) - - def create(self, cr, uid, values, context=None): - rel_obj = self.pool.get('ir.needaction_users_rel') - # perform create - obj_id = super(ir_needaction_mixin, self).create(cr, uid, values, context=context) - # link user_ids - needaction_user_ids = self.get_needaction_user_ids(cr, uid, [obj_id], context=context) - rel_obj.create_users(cr, uid, [obj_id], self._name, needaction_user_ids[obj_id], context=context) - return obj_id - - def write(self, cr, uid, ids, values, context=None): - rel_obj = self.pool.get('ir.needaction_users_rel') - # perform write - write_res = super(ir_needaction_mixin, self).write(cr, uid, ids, values, context=context) - # get and update user_ids - needaction_user_ids = self.get_needaction_user_ids(cr, uid, ids, context=context) - for id in ids: - rel_obj.update_users(cr, uid, [id], self._name, needaction_user_ids[id], context=context) - return write_res - - def unlink(self, cr, uid, ids, context=None): - # unlink user_ids - rel_obj = self.pool.get('ir.needaction_users_rel') - rel_obj.unlink_users(cr, uid, ids, self._name, context=context) - # perform unlink - return super(ir_needaction_mixin, self).unlink(cr, uid, ids, context=context) - + return False + #------------------------------------------------------ # "Need action" API #------------------------------------------------------ - - def needaction_get_record_ids(self, cr, uid, user_id, limit=80, context=None): - """Given the current model and a user_id - return the record ids that require the user to perform an - action""" - rel_obj = self.pool.get('ir.needaction_users_rel') - rel_ids = rel_obj.search(cr, uid, [('res_model', '=', self._name), ('user_id', '=', user_id)], limit=limit, context=context) - return map(itemgetter('res_id'), rel_obj.read(cr, uid, rel_ids, ['res_id'], context=context)) - - def needaction_get_action_count(self, cr, uid, user_id, limit=80, context=None): - """Given the current model and a user_id - get the number of actions it has to perform""" - rel_obj = self.pool.get('ir.needaction_users_rel') - return rel_obj.search(cr, uid, [('res_model', '=', self._name), ('user_id', '=', user_id)], limit=limit, count=True, context=context) -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: + def _needaction_count(self, cr, uid, domain=[], context=None): + """ Get the number of actions uid has to perform. """ + dom = self._needaction_domain_get(cr, uid, context=context) + if not dom: + return 0 + return self.search(cr, uid, (domain or []) +dom, context=context, count=True) diff --git a/openerp/addons/base/ir/ir_rule.py b/openerp/addons/base/ir/ir_rule.py index 2b864a7f8c6..75882051e6b 100644 --- a/openerp/addons/base/ir/ir_rule.py +++ b/openerp/addons/base/ir/ir_rule.py @@ -44,7 +44,7 @@ class ir_rule(osv.osv): def _eval_context(self, cr, uid): """Returns a dictionary to use as evaluation context for ir.rule domains.""" - return {'user': self.pool.get('res.users').browse(cr, 1, uid), + return {'user': self.pool.get('res.users').browse(cr, SUPERUSER_ID, uid), 'time':time} def _domain_force_get(self, cr, uid, ids, field_name, arg, context=None): @@ -152,7 +152,7 @@ class ir_rule(osv.osv): # involve objects on which the real uid has no acces rights. # This means also there is no implicit restriction (e.g. an object # references another object the user can't see). - query = self.pool.get(model_name)._where_calc(cr, 1, dom, active_test=False) + query = self.pool.get(model_name)._where_calc(cr, SUPERUSER_ID, dom, active_test=False) return query.where_clause, query.where_clause_params, query.tables return [], [], ['"'+self.pool.get(model_name)._table+'"'] diff --git a/openerp/addons/base/ir/ir_sequence.py b/openerp/addons/base/ir/ir_sequence.py index e3136b92b6e..8b03cd3f3b3 100644 --- a/openerp/addons/base/ir/ir_sequence.py +++ b/openerp/addons/base/ir/ir_sequence.py @@ -210,7 +210,7 @@ class ir_sequence(openerp.osv.osv.osv): def next_by_id(self, cr, uid, sequence_id, context=None): """ Draw an interpolated string using the specified sequence.""" - self.check_read(cr, uid) + self.check_access_rights(cr, uid, 'read') company_ids = self.pool.get('res.company').search(cr, uid, [], order='company_id', context=context) + [False] ids = self.search(cr, uid, ['&',('id','=', sequence_id),('company_id','in',company_ids)]) return self._next(cr, uid, ids, context) @@ -227,7 +227,7 @@ class ir_sequence(openerp.osv.osv.osv): sequence selection. A matching sequence for that specific company will get higher priority. """ - self.check_read(cr, uid) + self.check_access_rights(cr, uid, 'read') company_ids = self.pool.get('res.company').search(cr, uid, [], order='company_id', context=context) + [False] ids = self.search(cr, uid, ['&',('code','=', sequence_code),('company_id','in',company_ids)]) return self._next(cr, uid, ids, context) diff --git a/openerp/addons/base/ir/ir_translation.py b/openerp/addons/base/ir/ir_translation.py index 61e40e807d4..3650f28d3f5 100644 --- a/openerp/addons/base/ir/ir_translation.py +++ b/openerp/addons/base/ir/ir_translation.py @@ -77,14 +77,14 @@ class ir_translation_import_cursor(object): def push(self, ddict): """Feed a translation, as a dictionary, into the cursor """ - + state = "translated" if (ddict['value'] and ddict['value'] != "") else "to_translate" self._cr.execute("INSERT INTO " + self._table_name \ + """(name, lang, res_id, src, type, - imd_model, imd_module, imd_name, value) - VALUES(%s, %s, %s, %s, %s, %s, %s, %s, %s)""", + imd_model, imd_module, imd_name, value,state) + VALUES(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)""", (ddict['name'], ddict['lang'], ddict.get('res_id'), ddict['src'], ddict['type'], ddict.get('imd_model'), ddict.get('imd_module'), ddict.get('imd_name'), - ddict['value'])) + ddict['value'],state)) def finish(self): """ Transfer the data from the temp table to ir.translation @@ -125,15 +125,16 @@ class ir_translation_import_cursor(object): # Step 2: update existing (matching) translations if self._overwrite: cr.execute("""UPDATE ONLY %s AS irt - SET value = ti.value + SET value = ti.value, + state = 'translated' FROM %s AS ti WHERE %s AND ti.value IS NOT NULL AND ti.value != '' """ % (self._parent_table, self._table_name, find_expr)) # Step 3: insert new translations - cr.execute("""INSERT INTO %s(name, lang, res_id, src, type, value) - SELECT name, lang, res_id, src, type, value + cr.execute("""INSERT INTO %s(name, lang, res_id, src, type, value,state) + SELECT name, lang, res_id, src, type, value,state FROM %s AS ti WHERE NOT EXISTS(SELECT 1 FROM ONLY %s AS irt WHERE %s); """ % (self._parent_table, self._table_name, self._parent_table, find_expr)) @@ -167,6 +168,11 @@ class ir_translation(osv.osv): 'type': fields.selection(TRANSLATION_TYPE, string='Type', size=16, select=True), 'src': fields.text('Source'), 'value': fields.text('Translation Value'), + 'state':fields.selection([('to_translate','To Translate'),('inprogress','Translation in Progress'),('translated','Translated')]) + } + + _defaults = { + 'state':'to_translate', } _sql_constraints = [ ('lang_fkey_res_lang', 'FOREIGN KEY(lang) REFERENCES res_lang(code)', @@ -301,6 +307,10 @@ class ir_translation(osv.osv): context = {} if isinstance(ids, (int, long)): ids = [ids] + if vals.get('src') or ('value' in vals and not(vals.get('value'))): + result = vals.update({'state':'to_translate'}) + if vals.get('value'): + result = vals.update({'state':'translated'}) result = super(ir_translation, self).write(cursor, user, ids, vals, context=context) for trans_obj in self.read(cursor, user, ids, ['name','type','res_id','src','lang'], context=context): self._get_source.clear_cache(self, user, trans_obj['name'], trans_obj['type'], trans_obj['lang'], trans_obj['src']) @@ -318,6 +328,52 @@ class ir_translation(osv.osv): result = super(ir_translation, self).unlink(cursor, user, ids, context=context) return result + def translate_fields(self, cr, uid, model, id, field=None, context=None): + trans_model = self.pool.get(model) + domain = ['&', ('res_id', '=', id), ('name', '=like', model + ',%')] + langs_ids = self.pool.get('res.lang').search(cr, uid, [('code', '!=', 'en_US')], context=context) + langs = [lg.code for lg in self.pool.get('res.lang').browse(cr, uid, langs_ids, context=context)] + main_lang = 'en_US' + translatable_fields = [] + for f, info in trans_model._all_columns.items(): + if info.column.translate: + if info.parent_model: + parent_id = trans_model.read(cr, uid, [id], [info.parent_column], context=context)[0][info.parent_column][0] + translatable_fields.append({ 'name': f, 'id': parent_id, 'model': info.parent_model }) + domain.insert(0, '|') + domain.extend(['&', ('res_id', '=', parent_id), ('name', '=', "%s,%s" % (info.parent_model, f))]) + else: + translatable_fields.append({ 'name': f, 'id': id, 'model': model }) + if len(langs): + fields = [f.get('name') for f in translatable_fields] + record = trans_model.read(cr, uid, [id], fields, context={ 'lang': main_lang })[0] + for lg in langs: + for f in translatable_fields: + # Check if record exists, else create it (at once) + sql = """INSERT INTO ir_translation (lang, src, name, type, res_id, value) + SELECT %s, %s, %s, 'model', %s, %s WHERE NOT EXISTS + (SELECT 1 FROM ir_translation WHERE lang=%s AND name=%s AND res_id=%s AND type='model'); + UPDATE ir_translation SET src = %s WHERE lang=%s AND name=%s AND res_id=%s AND type='model'; + """ + src = record[f['name']] or None + name = "%s,%s" % (f['model'], f['name']) + cr.execute(sql, (lg, src , name, f['id'], src, lg, name, f['id'], src, lg, name, id)) + + action = { + 'name': 'Translate', + 'res_model': 'ir.translation', + 'type': 'ir.actions.act_window', + 'view_type': 'form', + 'view_mode': 'tree,form', + 'domain': domain, + } + if field: + info = trans_model._all_columns[field] + action['context'] = { + 'search_default_name': "%s,%s" % (info.parent_model or model, field) + } + return action + def _get_import_cursor(self, cr, uid, context=None): """ Return a cursor-like object for fast inserting translations """ diff --git a/openerp/addons/base/ir/ir_ui_menu.py b/openerp/addons/base/ir/ir_ui_menu.py index 77c0c4d738a..51aee886390 100644 --- a/openerp/addons/base/ir/ir_ui_menu.py +++ b/openerp/addons/base/ir/ir_ui_menu.py @@ -23,11 +23,12 @@ import base64 import re import threading - +from tools.safe_eval import safe_eval as eval import tools import openerp.modules from osv import fields, osv from tools.translate import _ +from openerp import SUPERUSER_ID def one_in(setA, setB): """Check the presence of an element of setA in setB @@ -59,7 +60,7 @@ class ir_ui_menu(osv.osv): """ with self.cache_lock: modelaccess = self.pool.get('ir.model.access') - user_groups = set(self.pool.get('res.users').read(cr, 1, uid, ['groups_id'])['groups_id']) + user_groups = set(self.pool.get('res.users').read(cr, SUPERUSER_ID, uid, ['groups_id'])['groups_id']) result = [] for menu in self.browse(cr, uid, ids, context=context): # this key works because user access rights are all based on user's groups (cfr ir_model_access.check) @@ -255,23 +256,24 @@ class ir_ui_menu(osv.osv): return res - def _get_needaction_info(self, cr, uid, id, domain=[], context={}): - return [False, 0] - def _get_needaction(self, cr, uid, ids, field_names, args, context=None): - if context is None: - context = {} res = {} for menu in self.browse(cr, uid, ids, context=context): - res[menu.id] = {} - if menu.action and menu.action.type == 'ir.actions.act_window' and menu.action.res_model: - menu_needaction_res = self.pool.get(menu.action.res_model)._get_needaction_info(cr, uid, uid, domain=menu.action.domain, context=context) - else: - menu_needaction_res = [False, 0] - res[menu.id]['needaction_enabled'] = menu_needaction_res[0] - res[menu.id]['needaction_counter'] = menu_needaction_res[1] + res[menu.id] = { + 'needaction_enabled': False, + 'needaction_counter': False, + } + if menu.action and menu.action.type in ('ir.actions.act_window','ir.actions.client') and menu.action.res_model: + obj = self.pool.get(menu.action.res_model) + if obj._needaction: + if menu.action.type=='ir.actions.act_window': + dom = menu.action.domain and eval(menu.action.domain, {'uid': uid}) or [] + else: + dom = eval(menu.action.params_store or '{}', {'uid': uid}).get('domain') + res[menu.id]['needaction_enabled'] = obj._needaction + res[menu.id]['needaction_counter'] = obj._needaction_count(cr, uid, dom, context=context) return res - + _columns = { 'name': fields.char('Menu', size=64, required=True, translate=True), 'sequence': fields.integer('Sequence'), diff --git a/openerp/addons/base/ir/ir_ui_view.py b/openerp/addons/base/ir/ir_ui_view.py index b2805884f18..bad2c3d85af 100644 --- a/openerp/addons/base/ir/ir_ui_view.py +++ b/openerp/addons/base/ir/ir_ui_view.py @@ -78,6 +78,8 @@ class view(osv.osv): 'field_parent': fields.char('Child Field',size=64), 'xml_id': fields.function(osv.osv.get_xml_id, type='char', size=128, string="External ID", help="ID of the view defined in xml file"), + 'groups_id': fields.many2many('res.groups', 'ir_ui_view_group_rel', 'view_id', 'group_id', + string='Groups', help="If this field is empty, the view applies to all users. Otherwise, the view applies to the users of those groups only."), } _defaults = { 'arch': '\n\n\t\n', @@ -167,20 +169,25 @@ class view(osv.osv): :rtype: list of tuples :return: [(view_arch,view_id), ...] """ + user_groups = frozenset(self.pool.get('res.users').browse(cr, 1, uid, context).groups_id) if self.pool._init: # Module init currently in progress, only consider views from modules whose code was already loaded - query = """SELECT v.arch, v.id FROM ir_ui_view v LEFT JOIN ir_model_data md ON (md.model = 'ir.ui.view' AND md.res_id = v.id) + query = """SELECT v.id FROM ir_ui_view v LEFT JOIN ir_model_data md ON (md.model = 'ir.ui.view' AND md.res_id = v.id) WHERE v.inherit_id=%s AND v.model=%s AND md.module in %s ORDER BY priority""" query_params = (view_id, model, tuple(self.pool._init_modules)) else: # Modules fully loaded, consider all views - query = """SELECT v.arch, v.id FROM ir_ui_view v + query = """SELECT v.id FROM ir_ui_view v WHERE v.inherit_id=%s AND v.model=%s ORDER BY priority""" query_params = (view_id, model) cr.execute(query, query_params) - return cr.fetchall() + view_ids = [v[0] for v in cr.fetchall()] + # filter views based on user groups + return [(view.arch, view.id) + for view in self.browse(cr, 1, view_ids, context) + if not (view.groups_id and user_groups.isdisjoint(view.groups_id))] def write(self, cr, uid, ids, vals, context=None): if not isinstance(ids, (list, tuple)): diff --git a/openerp/addons/base/module/wizard/base_update_translations_view.xml b/openerp/addons/base/module/wizard/base_update_translations_view.xml index 1fe52511ebb..4a20ef30bee 100644 --- a/openerp/addons/base/module/wizard/base_update_translations_view.xml +++ b/openerp/addons/base/module/wizard/base_update_translations_view.xml @@ -10,7 +10,9 @@
-
diff --git a/openerp/addons/base/report/corporate_defaults.xml b/openerp/addons/base/report/corporate_defaults.xml index 12e8bb5eeea..751693e7e89 100644 --- a/openerp/addons/base/report/corporate_defaults.xml +++ b/openerp/addons/base/report/corporate_defaults.xml @@ -2,8 +2,7 @@ - - + <name type="field" name="partner_id.name"/> <street type="field" name="street"/> diff --git a/openerp/addons/base/report/corporate_defaults.xsl b/openerp/addons/base/report/corporate_defaults.xsl index e0f6918ec59..9e976381e48 100644 --- a/openerp/addons/base/report/corporate_defaults.xsl +++ b/openerp/addons/base/report/corporate_defaults.xsl @@ -39,8 +39,7 @@ <!--page bottom--> <lines>1.5cm 2.2cm 19.9cm 2.2cm</lines> - <drawCentredString x="10.5cm" y="1.7cm"><xsl:value-of select="//corporate-header/corporation/rml_footer1"/></drawCentredString> - <drawCentredString x="10.5cm" y="1.25cm"><xsl:value-of select="//corporate-header/corporation/rml_footer2"/></drawCentredString> + <drawCentredString x="10.5cm" y="1.7cm"><xsl:value-of select="//corporate-header/corporation/rml_footer"/></drawCentredString> <drawCentredString x="10.5cm" y="0.8cm">Your contact : <xsl:value-of select="//corporate-header/user/name"/></drawCentredString> </xsl:template> @@ -73,8 +72,7 @@ <!--page bottom--> <lines>1.5cm 1.2cm 19.9cm 1.2cm</lines> - <drawCentredString x="10.5cm" y="1.7cm"><xsl:value-of select="//corporate-header/corporation/rml_footer1"/></drawCentredString> - <drawCentredString x="10.5cm" y="1.25cm"><xsl:value-of select="//corporate-header/corporation/rml_footer2"/></drawCentredString> + <drawCentredString x="10.5cm" y="1.7cm"><xsl:value-of select="//corporate-header/corporation/rml_footer"/></drawCentredString> <!-- <drawCentredString x="10.5cm" y="0.8cm">Your contact : <xsl:value-of select="//corporate-header/user/name"/></drawCentredString>--> </xsl:template> diff --git a/openerp/addons/base/report/corporate_sxw_header.xml b/openerp/addons/base/report/corporate_sxw_header.xml index d752ffa91a5..6cd8e5a218f 100644 --- a/openerp/addons/base/report/corporate_sxw_header.xml +++ b/openerp/addons/base/report/corporate_sxw_header.xml @@ -233,8 +233,7 @@ <table:table-column table:style-name="Table1.A"/> <table:table-row> <table:table-cell table:style-name="Table1.A1" table:value-type="string"> - <text:p text:style-name="P7">[[ company.rml_footer1 ]]</text:p> - <text:p text:style-name="P7">[[ company.rml_footer2 ]]</text:p> + <text:p text:style-name="P7">[[ company.rml_footer ]]</text:p> <text:p text:style-name="P7">Contact : [[ user.name ]]</text:p> </table:table-cell> </table:table-row> diff --git a/openerp/addons/base/report/mako_footer.html b/openerp/addons/base/report/mako_footer.html index 7c2d5b67a08..9f8990998a7 100644 --- a/openerp/addons/base/report/mako_footer.html +++ b/openerp/addons/base/report/mako_footer.html @@ -7,15 +7,8 @@ </tr> <tr> <td> - % if company['rml_footer1']: - <p align = "center"><small><b>${company.rml_footer1}</b></small></br></p> - %endif - </td> - </tr> - <tr> - <td> - % if company['rml_footer2']: - <p align = "center"><small><b>${company.rml_footer2}</b></small></br></p> + % if company['rml_footer']: + <p align="center"><small><b>${company.rml_footer}</b></small></p> %endif </td> </tr> diff --git a/openerp/addons/base/res/res_bank.py b/openerp/addons/base/res/res_bank.py index c5c05c1807c..a839afc10e4 100644 --- a/openerp/addons/base/res/res_bank.py +++ b/openerp/addons/base/res/res_bank.py @@ -109,7 +109,7 @@ class res_partner_bank(osv.osv): if not context.get('address'): return value - for address in self.pool.get('res.partner').resolve_o2m_commands_to_record_dicts( + for address in self.pool.get('res.partner').resolve_2many_commands( cursor, user, 'address', context['address'], ['type', field], context=context): if address.get('type') == 'default': diff --git a/openerp/addons/base/res/res_bank_view.xml b/openerp/addons/base/res/res_bank_view.xml index 0c88ceeff7c..8a8fa0e2922 100644 --- a/openerp/addons/base/res/res_bank_view.xml +++ b/openerp/addons/base/res/res_bank_view.xml @@ -91,8 +91,9 @@ <group col="4"> <field name="state"/> <field name="acc_number"/> - <field name="company_id" on_change="onchange_company_id(company_id)" invisible="context.get('company_hide', True)" widget="selection"/> - <field name="footer" attrs="{'invisible': [('company_id','=',False)]}"/> + <field name="company_id" on_change="onchange_company_id(company_id)" + invisible="context.get('company_hide', True)" widget="selection"/> + <field name="footer" invisible="context.get('footer_hide', True)"/> </group> <group> <group name="owner" string="Bank Account Owner"> @@ -128,7 +129,7 @@ <field name="acc_number"/> <field name="bank_name"/> <field name="company_id" invisible="context.get('company_hide', True)"/> - <field name="footer" invisible="context.get('company_hide', True)"/> + <field name="footer" invisible="context.get('footer_hide', True)"/> <field name="partner_id"/> </tree> </field> diff --git a/openerp/addons/base/res/res_company.py b/openerp/addons/base/res/res_company.py index c1062f2af2c..83b24b55a93 100644 --- a/openerp/addons/base/res/res_company.py +++ b/openerp/addons/base/res/res_company.py @@ -24,6 +24,7 @@ from osv import fields import os import tools import openerp +from openerp import SUPERUSER_ID from tools.translate import _ from tools.safe_eval import safe_eval as eval @@ -88,7 +89,6 @@ class res_company(osv.osv): result[company.id][field] = address[field] or False return result - def _set_address_data(self, cr, uid, company_id, name, value, arg, context=None): """ Write the 'address' functional fields. """ company = self.browse(cr, uid, company_id, context=context) @@ -102,18 +102,18 @@ class res_company(osv.osv): part_obj.create(cr, uid, {name: value or False, 'parent_id': company.partner_id.id}, context=context) return True - _columns = { 'name': fields.related('partner_id', 'name', string='Company Name', size=128, required=True, store=True, type='char'), 'parent_id': fields.many2one('res.company', 'Parent Company', select=True), 'child_ids': fields.one2many('res.company', 'parent_id', 'Child Companies'), 'partner_id': fields.many2one('res.partner', 'Partner', required=True), - 'rml_header1': fields.char('Company Slogan', size=200, help="Appears by default on the top right corner of your printed documents (report header)."), - 'rml_footer1': fields.char('General Information Footer', size=200), - 'rml_footer2': fields.char('Bank Accounts Footer', size=250, help="Write here your bank accounts for customer payments."), 'rml_header': fields.text('RML Header', required=True), + 'rml_header1': fields.char('Company Slogan', size=200, help="Appears by default on the top right corner of your printed documents (report header)."), 'rml_header2': fields.text('RML Internal Header', required=True), 'rml_header3': fields.text('RML Internal Header for Landscape Reports', required=True), + 'rml_footer': fields.text('Report Footer', help="Footer text displayed at the bottom of all reports. Automatically set based on company details, "\ + "but may also be customized by directly editing it."), + 'custom_footer': fields.boolean('Custom Footer', help="Check this to define the report footer manually. Otherwise it will be filled in automatically."), 'logo': fields.related('partner_id', 'image', string="Logo", type="binary"), 'currency_id': fields.many2one('res.currency', 'Currency', required=True), 'currency_ids': fields.one2many('res.currency', 'company_id', 'Currency'), @@ -137,15 +137,43 @@ class res_company(osv.osv): _sql_constraints = [ ('name_uniq', 'unique (name)', 'The company name must be unique !') ] - def on_change_header(self, cr, uid, ids, phone, email, fax, website, vat, reg=False, context=None): - val = [] - if phone: val.append(_('Phone: ')+phone) - if fax: val.append(_('Fax: ')+fax) - if website: val.append(_('Website: ')+website) - if vat: val.append(_('TIN: ')+vat) - if reg: val.append(_('Reg: ')+reg) - return {'value': {'rml_footer1':' | '.join(val)}} + def onchange_footer(self, cr, uid, ids, context=None): + # when touched, the footer becomes custom + return {'value': {'custom_footer': True}} + + def set_auto_footer(self, cr, uid, ids, context=None): + # unset the flag 'custom_footer'; this will automatically compute the footer + return self.write(cr, uid, ids, {'custom_footer': False}, context=context) + + def compute_footer(self, cr, uid, ids, context=None): + res_partner_bank = self.pool.get('res.partner.bank') + for company in self.browse(cr, uid, ids, context): + if not company.custom_footer: + # first line (notice that missing elements are filtered out before the join) + res = ' | '.join(filter(bool, [ + company.phone and '%s: %s' % (_('Phone'), company.phone), + company.fax and '%s: %s' % (_('Fax'), company.fax), + company.email and '%s: %s' % (_('Email'), company.email), + company.website and '%s: %s' % (_('Website'), company.website), + company.vat and '%s: %s' % (_('TIN'), company.vat), + company.company_registry and '%s: %s' % (_('Reg'), company.company_registry), + ])) + # second line: bank accounts + account_ids = [acc.id for acc in company.bank_ids if acc.footer] + account_names = res_partner_bank.name_get(cr, uid, account_ids, context=context) + if account_names: + title = _('Bank Accounts') if len(account_names) > 1 else _('Bank Account') + res += '\n%s: %s' % (title, ', '.join(name for id, name in account_names)) + # update footer + self.write(cr, uid, [company.id], {'rml_footer': res}, context=context) + return True + + def on_change_country(self, cr, uid, ids, country_id, context=None): + currency_id = self._get_euro(cr, uid, context=context) + if country_id: + currency_id = self.pool.get('res.country').browse(cr, uid, country_id, context=context).currency_id.id + return {'value': {'currency_id': currency_id}} def _search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False, access_rights_uid=None): @@ -156,7 +184,7 @@ class res_company(osv.osv): # select only the currently visible companies (according to rules, # which are probably to allow to see the child companies) even if # she belongs to some other companies. - user = self.pool.get('res.users').browse(cr, 1, uid, context=context) + user = self.pool.get('res.users').browse(cr, SUPERUSER_ID, uid, context=context) cmp_ids = list(set([user.company_id.id] + [cmp.id for cmp in user.company_ids])) return cmp_ids return super(res_company, self)._search(cr, uid, args, offset=offset, limit=limit, order=order, @@ -220,17 +248,22 @@ class res_company(osv.osv): self.cache_restart(cr) company_id = super(res_company, self).create(cr, uid, vals, context=context) obj_partner.write(cr, uid, partner_id, {'company_id': company_id}, context=context) + self.compute_footer(cr, uid, [company_id], context=context) return company_id - def write(self, cr, *args, **argv): + def write(self, cr, uid, ids, values, context=None): self.cache_restart(cr) - return super(res_company, self).write(cr, *args, **argv) + if isinstance(ids, (int, long)): + ids = [ids] + super(res_company, self).write(cr, uid, ids, values, context=context) + if 'rml_footer' not in values: + self.compute_footer(cr, uid, ids, context=context) + return True def _get_euro(self, cr, uid, context=None): - try: - return self.pool.get('res.currency').search(cr, uid, [])[0] - except: - return False + rate_obj = self.pool.get('res.currency.rate') + rate_id = rate_obj.search(cr, uid, [('rate', '=', 1)], context=context) + return rate_id and rate_obj.browse(cr, uid, rate_id[0], context=context).currency_id.id or False def _get_logo(self, cr, uid, ids): return open(os.path.join( tools.config['root_path'], 'addons', 'base', 'res', 'res_company_logo.png'), 'rb') .read().encode('base64') @@ -267,20 +300,22 @@ class res_company(osv.osv): return self._header_a4 _header_main = """ - <header> +<header> <pageTemplate> - <frame id="first" x1="1.3cm" y1="2.5cm" height="%s" width="19.0cm"/> + <frame id="first" x1="1.3cm" y1="3.0cm" height="%s" width="19.0cm"/> + <stylesheet> + <paraStyle name="main_footer" fontName="DejaVu Sans" fontSize="8.0" alignment="CENTER"/> + </stylesheet> <pageGraphics> <!-- You Logo - Change X,Y,Width and Height --> <image x="1.3cm" y="%s" height="40.0" >[[ company.logo or removeParentNode('image') ]]</image> <setFont name="DejaVu Sans" size="8"/> <fill color="black"/> <stroke color="black"/> + + <!-- page header --> <lines>1.3cm %s 20cm %s</lines> - <drawRightString x="20cm" y="%s">[[ company.rml_header1 ]]</drawRightString> - - <drawString x="1.3cm" y="%s">[[ company.partner_id.name ]]</drawString> <drawString x="1.3cm" y="%s">[[ company.partner_id.street or '' ]]</drawString> <drawString x="1.3cm" y="%s">[[ company.partner_id.city or '' ]] - [[ company.partner_id.country_id and company.partner_id.country_id.name or '']]</drawString> @@ -290,13 +325,19 @@ class res_company(osv.osv): <drawRightString x="7cm" y="%s">[[ company.partner_id.email or '' ]]</drawRightString> <lines>1.3cm %s 7cm %s</lines> + <!-- left margin --> + <rotate degrees="90"/> + <fill color="grey"/> + <drawString x="2.65cm" y="-0.4cm">produced by OpenERP.com</drawString> + <fill color="black"/> + <rotate degrees="-90"/> + <!--page bottom--> - - <lines>1.2cm 2.15cm 19.9cm 2.15cm</lines> - - <drawCentredString x="10.5cm" y="1.7cm">[[ company.rml_footer1 ]]</drawCentredString> - <drawCentredString x="10.5cm" y="1.25cm">[[ company.rml_footer2 ]]</drawCentredString> - <drawCentredString x="10.5cm" y="0.8cm">Contact : [[ user.name ]] - Page: <pageNumber/></drawCentredString> + <lines>1.2cm 2.65cm 19.9cm 2.65cm</lines> + <place x="1.3cm" y="0cm" height="2.55cm" width="19.0cm"> + <para style="main_footer">[[ company.rml_footer ]]</para> + <para style="main_footer">Contact : [[ user.name ]] - Page: <pageNumber/></para> + </place> </pageGraphics> </pageTemplate> </header>""" diff --git a/openerp/addons/base/res/res_company_view.xml b/openerp/addons/base/res/res_company_view.xml index 1cf32c03753..b92cfba19b6 100644 --- a/openerp/addons/base/res/res_company_view.xml +++ b/openerp/addons/base/res/res_company_view.xml @@ -31,19 +31,15 @@ <h1> <field name="name" class="oe_inline"/> </h1> - <label for="rml_header1" class="oe_edit_only"/> - <div> - <field name="rml_header1" placeholder="e.g. Global Business Solutions"/> - </div> </div> <group col="4"> - <field name="partner_id" readonly="1" required="0" groups="base.group_no_one"/> <field name="parent_id" groups="base.group_multi_company"/> </group> <notebook colspan="4"> <page string="General Information"> <group> <group> + <field name="partner_id" readonly="1" required="0" groups="base.group_no_one"/> <label for="street" string="Address"/> <div> <field name="street" placeholder="Street..."/> @@ -53,32 +49,38 @@ <field name="state_id" class="oe_no_button" placeholder="State" style="width: 24%%" options='{"no_open": true}'/> <field name="zip" placeholder="ZIP" style="width: 34%%"/> </div> - <field name="country_id" placeholder="Country" class="oe_no_button" options='{"no_open": true}'/> + <field name="country_id" placeholder="Country" class="oe_no_button" options='{"no_open": true}' on_change="on_change_country(country_id)"/> + </div> + <label for="rml_header1"/> + <div> + <field name="rml_header1" placeholder="e.g. Global Business Solutions"/> </div> <field name="website" widget="url" placeholder="e.g. www.openerp.com"/> </group> <group> - <field name="phone" on_change="on_change_header(phone, email, fax, website, vat, company_registry)"/> - <field name="fax" on_change="on_change_header(phone, email, fax, website, vat, company_registry)"/> - <field name="email" on_change="on_change_header(phone, email, fax, website, vat, company_registry)"/> - <field name="vat" on_change="on_change_header(phone, email, fax, website, vat, company_registry)"/> - <field name="company_registry" on_change="on_change_header(phone, email, fax, website, vat, company_registry)"/> + <field name="phone"/> + <field name="fax"/> + <field name="email"/> + <field name="vat"/> + <field name="company_registry"/> </group> </group> <group string="Bank Accounts"> - <field name="bank_ids" colspan="4" nolabel="1"/> - <label for="rml_footer2"/> - <div name="bank_acc"> - <field name="rml_footer2"/> - <!--<button name="%(bank_account_update)d" string="Set Bank Accounts" type="action" icon="gtk-go-forward" class="oe_inline"/>--> + <field name="bank_ids" nolabel="1" + context="{'default_company_id': active_id, 'footer_hide': False}"/> + </group> + <group string="Report Footer Configuration"> + <field name="paper_format" on_change="onchange_paper_format(paper_format)"/> + <field name="custom_footer" invisible="1"/> + <label for="rml_footer"/> + <div> + <field name="rml_footer" on_change="onchange_footer()"/> + <button string="Set Automatic Footer" type="object" name="set_auto_footer" + attrs="{'invisible': [('custom_footer','=',False)]}" class="oe_edit_only"/> </div> </group> </page> <page string="Header/Footer" groups="base.group_no_one"> - <group> - <field name="paper_format" on_change="onchange_paper_format(paper_format)"/> - <field name="rml_footer1"/> - </group> <label for="rml_header"/> <field name="rml_header"/> <label for="rml_header2"/> @@ -162,7 +164,7 @@ <field name="sequence"/> </group> </group> - </sheet> + </sheet> </form> </field> </record> @@ -190,4 +192,3 @@ </data> </openerp> - diff --git a/openerp/addons/base/res/res_country.py b/openerp/addons/base/res/res_country.py index 32980428068..29e72cf82e4 100644 --- a/openerp/addons/base/res/res_country.py +++ b/openerp/addons/base/res/res_country.py @@ -55,6 +55,7 @@ addresses belonging to this country.\n\nYou can use the python-style string pate \n%(state_code)s: the code of the state \n%(country_name)s: the name of the country \n%(country_code)s: the code of the country"""), + 'currency_id': fields.many2one('res.currency', 'Currency'), } _sql_constraints = [ ('name_uniq', 'unique (name)', @@ -63,7 +64,7 @@ addresses belonging to this country.\n\nYou can use the python-style string pate 'The code of the country must be unique !') ] _defaults = { - 'address_format': "%(company_name)s\n%(street)s\n%(street2)s\n%(city)s,%(state_code)s %(zip)s\n%(country_name)s", + 'address_format': "%(street)s\n%(street2)s\n%(city)s %(state_code)s %(zip)s\n%(country_name)s", } _order='name' diff --git a/openerp/addons/base/res/res_country_view.xml b/openerp/addons/base/res/res_country_view.xml index 3bead7a506c..c8046d34eb2 100644 --- a/openerp/addons/base/res/res_country_view.xml +++ b/openerp/addons/base/res/res_country_view.xml @@ -22,11 +22,17 @@ <field name="model">res.country</field> <field name="arch" type="xml"> <form string="Country" version="7.0"> - <group col="4"> - <field name="name"/> - <field name="code"/> - <field name="address_format" colspan="4" groups="base.group_no_one"/> + <group> + <group> + <field name="name"/> + <field name="currency_id"/> + </group> + <group> + <field name="code"/> + </group> </group> + <label for="address_format" string="Address Format"/> + <field name="address_format" colspan="4" groups="base.group_no_one"/> </form> </field> </record> diff --git a/openerp/addons/base/res/res_currency.py b/openerp/addons/base/res/res_currency.py index 81dedbc992f..10a0b56b68c 100644 --- a/openerp/addons/base/res/res_currency.py +++ b/openerp/addons/base/res/res_currency.py @@ -56,7 +56,7 @@ class res_currency(osv.osv): _columns = { # Note: 'code' column was removed as of v6.0, the 'name' should now hold the ISO code. 'name': fields.char('Currency', size=32, required=True, help="Currency Code (ISO 4217)"), - 'symbol': fields.char('Symbol', size=3, help="Currency sign, to be used when printing amounts."), + 'symbol': fields.char('Symbol', size=4, help="Currency sign, to be used when printing amounts."), 'rate': fields.function(_current_rate, 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'), diff --git a/openerp/addons/base/res/res_partner.py b/openerp/addons/base/res/res_partner.py index 830804cfae7..793a0ead86c 100644 --- a/openerp/addons/base/res/res_partner.py +++ b/openerp/addons/base/res/res_partner.py @@ -21,7 +21,6 @@ import math import openerp -import os from osv import osv, fields import re import tools @@ -59,20 +58,20 @@ class res_partner_category(osv.osv): return super(res_partner_category, self).name_get(cr, uid, ids, context=context) if isinstance(ids, (int, long)): ids = [ids] - reads = self.read(cr, uid, ids, ['name','parent_id'], context=context) + reads = self.read(cr, uid, ids, ['name', 'parent_id'], context=context) res = [] for record in reads: name = record['name'] if record['parent_id']: - name = record['parent_id'][1]+' / '+name + name = record['parent_id'][1] + ' / ' + name res.append((record['id'], name)) return res def name_search(self, cr, uid, name, args=None, operator='ilike', context=None, limit=100): if not args: - args=[] + args = [] if not context: - context={} + context = {} if name: # Be sure name_search is symetric to name_get name = name.split(' / ')[-1] @@ -86,23 +85,23 @@ class res_partner_category(osv.osv): res = self.name_get(cr, uid, ids, context=context) return dict(res) - _description='Partner Categories' + _description = 'Partner Categories' _name = 'res.partner.category' _columns = { 'name': fields.char('Category Name', required=True, size=64, translate=True), 'parent_id': fields.many2one('res.partner.category', 'Parent Category', select=True, ondelete='cascade'), 'complete_name': fields.function(_name_get_fnc, type="char", string='Full Name'), 'child_ids': fields.one2many('res.partner.category', 'parent_id', 'Child Categories'), - 'active' : fields.boolean('Active', help="The active field allows you to hide the category without removing it."), - 'parent_left' : fields.integer('Left parent', select=True), - 'parent_right' : fields.integer('Right parent', select=True), + 'active': fields.boolean('Active', help="The active field allows you to hide the category without removing it."), + 'parent_left': fields.integer('Left parent', select=True), + 'parent_right': fields.integer('Right parent', select=True), 'partner_ids': fields.many2many('res.partner', id1='category_id', id2='partner_id', string='Partners'), } _constraints = [ (osv.osv._check_recursion, 'Error ! You can not create recursive categories.', ['parent_id']) ] _defaults = { - 'active' : lambda *a: 1, + 'active': lambda *a: 1, } _parent_store = True _parent_order = 'name' @@ -114,7 +113,7 @@ class res_partner_title(osv.osv): _columns = { 'name': fields.char('Title', required=True, size=46, translate=True), 'shortcut': fields.char('Abbreviation', size=16, translate=True), - 'domain': fields.selection([('partner','Partner'),('contact','Contact')], 'Domain', required=True, size=24) + 'domain': fields.selection([('partner', 'Partner'), ('contact', 'Contact')], 'Domain', required=True, size=24) } _defaults = { 'domain': 'contact', @@ -130,13 +129,13 @@ POSTAL_ADDRESS_FIELDS = ('street', 'street2', 'zip', 'city', 'state_id', 'countr ADDRESS_FIELDS = POSTAL_ADDRESS_FIELDS + ('email', 'phone', 'fax', 'mobile', 'website', 'ref', 'lang') class res_partner(osv.osv): - _description='Partner' + _description = 'Partner' _name = "res.partner" def _address_display(self, cr, uid, ids, name, args, context=None): - res={} + res = {} for partner in self.browse(cr, uid, ids, context=context): - res[partner.id] =self._display_address(cr, uid, partner, context=context) + res[partner.id] = self._display_address(cr, uid, partner, context=context) return res def _get_image(self, cr, uid, ids, name, args, context=None): @@ -144,7 +143,7 @@ class res_partner(osv.osv): for obj in self.browse(cr, uid, ids, context=context): result[obj.id] = tools.image_get_resized_images(obj.image) return result - + def _set_image(self, cr, uid, id, name, value, args, context=None): return self.write(cr, uid, [id], {'image': tools.image_resize_image_big(value)}, context=context) @@ -152,7 +151,7 @@ class res_partner(osv.osv): _columns = { 'name': fields.char('Name', size=128, required=True, select=True), 'date': fields.date('Date', select=1), - 'title': fields.many2one('res.partner.title','Title'), + 'title': fields.many2one('res.partner.title', 'Title'), 'parent_id': fields.many2one('res.partner', 'Owned by'), 'child_ids': fields.one2many('res.partner', 'parent_id', 'Contacts'), 'ref': fields.char('Reference', size=64, select=1), @@ -163,9 +162,9 @@ class res_partner(osv.osv): "It is important to set a value for this field. You should use the same timezone " "that is otherwise used to pick and render date and time values: your computer's timezone."), 'user_id': fields.many2one('res.users', 'Salesperson', help='The internal user that is in charge of communicating with this partner if any.'), - 'vat': fields.char('TIN',size=32 ,help="Tax Identification Number. Check the box if the partner is subjected to taxes. Used by the some of the legal statements."), + 'vat': fields.char('TIN', size=32, help="Tax Identification Number. Check the box if the partner is subjected to taxes. Used by the some of the legal statements."), 'bank_ids': fields.one2many('res.partner.bank', 'partner_id', 'Banks'), - 'website': fields.char('Website',size=64, help="Website of Partner or Company"), + 'website': fields.char('Website', size=64, help="Website of Partner or Company"), 'comment': fields.text('Notes'), 'address': fields.one2many('res.partner.address', 'partner_id', 'Contacts'), # should be removed in version 7, but kept until then for backward compatibility 'category_id': fields.many2many('res.partner.category', id1='partner_id', id2='category_id', string='Tags'), @@ -176,8 +175,8 @@ class res_partner(osv.osv): 'supplier': fields.boolean('Supplier', help="Check this box if the partner is a supplier. If it's not checked, purchase people will not see it when encoding a purchase order."), 'employee': fields.boolean('Employee', help="Check this box if the partner is an Employee."), 'function': fields.char('Job Position', size=128), - 'type': fields.selection( [('default','Default'), ('invoice','Invoice'), - ('delivery','Delivery'), ('contact','Contact'), + 'type': fields.selection([('default', 'Default'), ('invoice', 'Invoice'), + ('delivery', 'Delivery'), ('contact', 'Contact'), ('other', 'Other')], 'Address Type', help="Used to select automatically the right address according to the context in sales and purchases documents."), 'street': fields.char('Street', size=128), @@ -194,28 +193,28 @@ class res_partner(osv.osv): 'birthdate': fields.char('Birthdate', size=64), 'is_company': fields.boolean('Company', help="Check if the contact is a company, otherwise it is a person"), 'use_parent_address': fields.boolean('Use Company Address', help="Select this if you want to set company's address information for this contact"), + # image: all image fields are base64 encoded and PIL-supported 'image': fields.binary("Image", - help="This field holds the image used as avatar for the "\ - "partner. The image is base64 encoded, and PIL-supported. "\ - "It is limited to a 1024x1024 px image."), + help="This field holds the image used as avatar for the partner, limited to 1024x1024px"), 'image_medium': fields.function(_get_image, fnct_inv=_set_image, string="Medium-sized image", type="binary", multi="_get_image", - store = { + store={ 'res.partner': (lambda self, cr, uid, ids, c={}: ids, ['image'], 10), }, help="Medium-sized image of the partner. It is automatically "\ - "resized as a 180x180 px image, with aspect ratio preserved. "\ + "resized as a 128x128px image, with aspect ratio preserved. "\ "Use this field in form views or some kanban views."), 'image_small': fields.function(_get_image, fnct_inv=_set_image, string="Small-sized image", type="binary", multi="_get_image", - store = { + store={ 'res.partner': (lambda self, cr, uid, ids, c={}: ids, ['image'], 10), }, help="Small-sized image of the partner. It is automatically "\ - "resized as a 50x50 px image, with aspect ratio preserved. "\ + "resized as a 64x64px image, with aspect ratio preserved. "\ "Use this field anywhere a small image is required."), 'company_id': fields.many2one('res.company', 'Company', select=1), 'color': fields.integer('Color Index'), + 'user_ids': fields.one2many('res.users', 'partner_id', 'Users'), 'contact_address': fields.function(_address_display, type='char', string='Complete Address'), } @@ -226,34 +225,32 @@ class res_partner(osv.osv): return [context['category_id']] return False - def _get_default_image(self, cr, uid, is_company, context=None): + def _get_default_image(self, cr, uid, is_company, context=None, colorize=False): if is_company: - image_path = openerp.modules.get_module_resource('base', 'static/src/img', 'company_image.png') + image = open(openerp.modules.get_module_resource('base', 'static/src/img', 'company_image.png')).read() else: - image_path = openerp.modules.get_module_resource('base', 'static/src/img', 'partner_image.png') - return tools.image_resize_image_big(open(image_path, 'rb').read().encode('base64')) + image = tools.image_colorize(open(openerp.modules.get_module_resource('base', 'static/src/img', 'avatar.png')).read()) + return tools.image_resize_image_big(image.encode('base64')) _defaults = { 'active': True, - 'lang': lambda self, cr, uid, context: context.get('lang', 'en_US'), - 'tz': lambda self, cr, uid, context: context.get('tz', False), + 'lang': lambda self, cr, uid, ctx: ctx.get('lang', 'en_US'), + 'tz': lambda self, cr, uid, ctx: ctx.get('tz', False), 'customer': True, 'category_id': _default_category, - 'company_id': lambda s,cr,uid,c: s.pool.get('res.company')._company_default_get(cr, uid, 'res.partner', context=c), + 'company_id': lambda self, cr, uid, ctx: self.pool.get('res.company')._company_default_get(cr, uid, 'res.partner', context=ctx), 'color': 0, 'is_company': False, 'type': 'default', 'use_parent_address': True, - 'image': lambda self, cr, uid, context: self._get_default_image(cr, uid, False, context), - 'image_small': lambda self, cr, uid, context: self._get_default_image(cr, uid, False, context), - 'image_medium': lambda self, cr, uid, context: self._get_default_image(cr, uid, False, context), + 'image': lambda self, cr, uid, ctx: self._get_default_image(cr, uid, ctx.get('default_is_company', False), ctx), } def copy(self, cr, uid, id, default=None, context=None): if default is None: default = {} name = self.read(cr, uid, [id], ['name'], context)[0]['name'] - default.update({'name': _('%s (copy)')%(name)}) + default.update({'name': _('%s (copy)') % (name)}) return super(res_partner, self).copy(cr, uid, id, default, context) def onchange_type(self, cr, uid, ids, is_company, context=None): @@ -324,9 +321,6 @@ class res_partner(osv.osv): domain_siblings = [('parent_id', '=', vals['parent_id']), ('use_parent_address', '=', True)] update_ids = [vals['parent_id']] + self.search(cr, uid, domain_siblings, context=context) self.update_address(cr, uid, update_ids, vals, context) - if 'image' not in vals : - image_value = self._get_default_image(cr, uid, vals.get('is_company', False) or context.get('default_is_company'), context) - vals.update(tools.image_get_resized_images(image_value, return_big=True)) return super(res_partner,self).create(cr, uid, vals, context=context) def update_address(self, cr, uid, ids, vals, context=None): @@ -351,37 +345,34 @@ class res_partner(osv.osv): res.append((record.id, name)) return res + def _parse_partner_name(self, text, context=None): + """ Supported syntax: + - 'Raoul <raoul@grosbedon.fr>': will find name and email address + - otherwise: default, everything is set as the name """ + match = re.search(r'([^\s,<@]+@[^>\s,]+)', text) + if match: + email = match.group(1) + name = text[:text.index(email)].replace('"','').replace('<','').strip() + else: + name, email = text, '' + return name, email + def name_create(self, cr, uid, name, context=None): """ Override of orm's name_create method for partners. The purpose is to handle some basic formats to create partners using the name_create. - Supported syntax: - - 'raoul@grosbedon.fr': create a partner with name raoul@grosbedon.fr - and sets its email to raoul@grosbedon.fr - - 'Raoul Grosbedon <raoul@grosbedon.fr>': create a partner with name - Raoul Grosbedon, and set its email to raoul@grosbedon.fr - - anything else: fall back on the default name_create - Regex : - - ([a-zA-Z0-9._%-]+@[a-zA-Z0-9_-]+\.[a-zA-Z0-9._]{1,8}): raoul@grosbedon.fr - - ([\w\s.\\-]+)[\<]([a-zA-Z0-9._%-]+@[a-zA-Z0-9_-]+\.[a-zA-Z0-9._]{1,8})[\>]: - Raoul Grosbedon, raoul@grosbedon.fr - """ - contact_regex = re.compile('([\w\s.\\-]+)[\<]([a-zA-Z0-9._%-]+@[a-zA-Z0-9_-]+\.[a-zA-Z0-9._]{1,8})[\>]') - email_regex = re.compile('([a-zA-Z0-9._%-]+@[a-zA-Z0-9_-]+\.[a-zA-Z0-9._]{1,8})') - contact_regex_res = contact_regex.findall(name) - email_regex_res = email_regex.findall(name) - if contact_regex_res: - name = contact_regex_res[0][0].rstrip(' ') # remove extra spaces on the right - email = contact_regex_res[0][1] - rec_id = self.create(cr, uid, {self._rec_name: name, 'email': email}, context); - return self.name_get(cr, uid, [rec_id], context)[0] - elif email_regex_res: - email = '%s' % (email_regex_res[0]) - rec_id = self.create(cr, uid, {self._rec_name: email, 'email': email}, context); - return self.name_get(cr, uid, [rec_id], context)[0] - else: - rec_id = super(res_partner, self).create(cr, uid, {self._rec_name: name}, context) - return self.name_get(cr, uid, [rec_id], context)[0] + If only an email address is received and that the regex cannot find + a name, the name will have the email value. + If 'force_email' key in context: must find the email address. """ + if context is None: + context = {} + name, email = self._parse_partner_name(name, context=context) + if context.get('force_email') and not email: + raise osv.except_osv(_('Warning'), _("Couldn't create contact without email address !")) + if not name and email: + name = email + rec_id = self.create(cr, uid, {self._rec_name: name or email, 'email': email or False}, context=context) + return self.name_get(cr, uid, [rec_id], context)[0] def name_search(self, cr, uid, name, args=None, operator='ilike', context=None, limit=100): if not args: @@ -405,6 +396,21 @@ class res_partner(osv.osv): return self.name_get(cr, uid, ids, context) return super(res_partner,self).name_search(cr, uid, name, args, operator=operator, context=context, limit=limit) + def find_or_create(self, cr, uid, email, context=None): + """ Find a partner with the given ``email`` or use :py:method:`~.name_create` + to create one + + :param str email: email-like string, which should contain at least one email, + e.g. ``"Raoul Grosbedon <r.g@grosbedon.fr>"``""" + assert email, 'an email is required for find_or_create to work' + emails = tools.email_split(email) + if emails: + email = emails[0] + ids = self.search(cr, uid, [('email','ilike',email)], context=context) + if not ids: + return self.name_create(cr, uid, email, context=context)[0] + return ids[0] + def _email_send(self, cr, uid, ids, email_from, subject, body, on_error=None): partners = self.browse(cr, uid, ids) for partner in partners: @@ -493,7 +499,7 @@ class res_partner(osv.osv): # get the information that will be injected into the display format # get the address format address_format = address.country_id and address.country_id.address_format or \ - '%(company_name)s\n%(street)s\n%(street2)s\n%(city)s,%(state_code)s %(zip)s' + "%(street)s\n%(street2)s\n%(city)s %(state_code)s %(zip)s\n%(country_name)s" args = { 'state_code': address.state_id and address.state_id.code or '', 'state_name': address.state_id and address.state_id.name or '', @@ -506,6 +512,8 @@ class res_partner(osv.osv): args[field] = getattr(address, field) or '' if without_company: args['company_name'] = '' + elif address.parent_id: + address_format = '%(company_name)s\n' + address_format return address_format % args def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False): @@ -549,7 +557,6 @@ class res_partner(osv.osv): res['arch'] = etree.tostring(doc) return res - # res.partner.address is deprecated; it is still there for backward compability only and will be removed in next version class res_partner_address(osv.osv): _table = "res_partner" diff --git a/openerp/addons/base/res/res_partner_view.xml b/openerp/addons/base/res/res_partner_view.xml index 7e70e68c35c..a79610b7a18 100644 --- a/openerp/addons/base/res/res_partner_view.xml +++ b/openerp/addons/base/res/res_partner_view.xml @@ -95,7 +95,7 @@ <field name="arch" type="xml"> <form string="Partners" version="7.0"> <sheet> - <field name="image" widget='image' class="oe_left" options='{"preview_image": "image_medium", "size": [90, 90]}'/> + <field name="image" widget='image' class="oe_left oe_avatar" options='{"preview_image": "image_medium", "size": [90, 90]}'/> <div class="oe_title"> <div class="oe_edit_only"> <label for="name"/> ( @@ -130,8 +130,8 @@ <field name="street2"/> <div class="address_format"> <field name="city" placeholder="City" style="width: 40%%"/> - <field name="state_id" class="oe_no_button" placeholder="State" style="width: 24%%" options='{"no_open": true}'/> - <field name="zip" placeholder="ZIP" style="width: 34%%"/> + <field name="state_id" class="oe_no_button" placeholder="State" style="width: 37%%" options='{"no_open": true}'/> + <field name="zip" placeholder="ZIP" style="width: 20%%"/> </div> <field name="country_id" placeholder="Country" class="oe_no_button" options='{"no_open": true}'/> </div> @@ -186,13 +186,10 @@ <td class="oe_kanban_title1" align="left" valign="middle"> <h4><a type="open"><field name="name"/></a></h4> <i><div t-if="record.function.raw_value"> - <field name="function"/><br/></div></i> - </td> - <td valign="top" align="right"> - <a t-if="record.email.raw_value" title="Mail" t-att-href="'mailto:'+record.email.value" style="text-decoration: none;" > - <img src="/web/static/src/img/icons/terp-mail-message-new.png" border="0" width="16" height="16"/> - </a> - + <field name="function"/></div></i> + <div><a t-if="record.email.raw_value" title="Mail" t-att-href="'mailto:'+record.email.value"> + <field name="email"/> + </a></div> </td> </tr> </table> @@ -301,7 +298,7 @@ <field name="category_id"/> <templates> <t t-name="kanban-box"> - <div class="oe_kanban_vignette"> + <div class="oe_kanban_vignette oe_semantic_html_override"> <a type="open"> <img t-att-src="kanban_image('res.partner', 'image_small', record.id.value)" class="oe_kanban_image"/> </a> diff --git a/openerp/addons/base/res/res_users.py b/openerp/addons/base/res/res_users.py index cddc02673b8..5e1ea88f5ac 100644 --- a/openerp/addons/base/res/res_users.py +++ b/openerp/addons/base/res/res_users.py @@ -26,6 +26,7 @@ import logging from lxml import etree from lxml.builder import E import netsvc +from openerp import SUPERUSER_ID import openerp import openerp.exceptions from osv import fields,osv @@ -188,7 +189,7 @@ class res_users(osv.osv): result = super(res_users, self).read(cr, uid, ids, fields, context, load) canwrite = self.pool.get('ir.model.access').check(cr, uid, 'res.users', 'write', False) if not canwrite: - if isinstance(ids, (int, float)): + if isinstance(ids, (int, long)): result = override_password(result) else: result = map(override_password, result) @@ -206,11 +207,6 @@ class res_users(osv.osv): ('login_key', 'UNIQUE (login)', 'You can not have two users with the same login !') ] - def _get_default_image(self, cr, uid, context=None): - """ Override of res.partner: multicolor avatars ! """ - image_path = openerp.modules.get_module_resource('base', 'static/src/img', 'avatar%d.png' % random.randint(0, 6)) - return tools.image_resize_image_big(open(image_path, 'rb').read().encode('base64')) - def _get_company(self,cr, uid, context=None, uid2=False): if not uid2: uid2 = uid @@ -238,9 +234,9 @@ class res_users(osv.osv): dataobj = self.pool.get('ir.model.data') result = [] try: - dummy,group_id = dataobj.get_object_reference(cr, 1, 'base', 'group_user') + dummy,group_id = dataobj.get_object_reference(cr, SUPERUSER_ID, 'base', 'group_user') result.append(group_id) - dummy,group_id = dataobj.get_object_reference(cr, 1, 'base', 'group_partner_manager') + dummy,group_id = dataobj.get_object_reference(cr, SUPERUSER_ID, 'base', 'group_partner_manager') result.append(group_id) except ValueError: # If these groups does not exists anymore @@ -248,14 +244,14 @@ class res_users(osv.osv): return result _defaults = { - 'password' : '', - 'active' : True, + 'password': '', + 'active': True, 'customer': False, 'menu_id': _get_menu, 'company_id': _get_company, 'company_ids': _get_companies, 'groups_id': _get_group, - 'image': lambda self, cr, uid, context: self._get_default_image(cr, uid, context), + 'image': lambda self, cr, uid, ctx={}: self.pool.get('res.partner')._get_default_image(cr, uid, False, ctx, colorize=True), } def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False): @@ -280,7 +276,7 @@ class res_users(osv.osv): break else: if 'company_id' in values: - if not (values['company_id'] in self.read(cr, 1, uid, ['company_ids'], context=context)['company_ids']): + if not (values['company_id'] in self.read(cr, SUPERUSER_ID, uid, ['company_ids'], context=context)['company_ids']): del values['company_id'] uid = 1 # safe fields only, so we write as super-user to bypass access rights @@ -332,7 +328,7 @@ class res_users(osv.osv): return super(res_users, self).copy(cr, uid, id, copydef, context) def context_get(self, cr, uid, context=None): - user = self.browse(cr, 1, uid, context) + user = self.browse(cr, SUPERUSER_ID, uid, context) result = {} for k in self._all_columns.keys(): if k.startswith('context_'): @@ -350,7 +346,7 @@ class res_users(osv.osv): def action_get(self, cr, uid, context=None): dataobj = self.pool.get('ir.model.data') - data_id = dataobj._get_id(cr, 1, 'base', 'action_res_users_my') + data_id = dataobj._get_id(cr, SUPERUSER_ID, 'base', 'action_res_users_my') return dataobj.browse(cr, uid, data_id, context=context).res_id def check_super(self, passwd): @@ -361,7 +357,7 @@ class res_users(osv.osv): def check_credentials(self, cr, uid, password): """ Override this method to plug additional authentication methods""" - res = self.search(cr, 1, [('id','=',uid),('password','=',password)]) + res = self.search(cr, SUPERUSER_ID, [('id','=',uid),('password','=',password)]) if not res: raise openerp.exceptions.AccessDenied() @@ -377,7 +373,7 @@ class res_users(osv.osv): # of them rolled back due to a concurrent access.) cr.autocommit(True) # check if user exists - res = self.search(cr, 1, [('login','=',login)]) + res = self.search(cr, SUPERUSER_ID, [('login','=',login)]) if res: user_id = res[0] # check credentials @@ -542,7 +538,7 @@ class groups_implied(osv.osv): return memo[g] res = {} - for g in self.browse(cr, 1, ids, context): + for g in self.browse(cr, SUPERUSER_ID, ids, context): res[g.id] = map(int, computed_set(g)) return res @@ -687,7 +683,7 @@ class groups_view(osv.osv): def get_user_groups_view(self, cr, uid, context=None): try: - view = self.pool.get('ir.model.data').get_object(cr, 1, 'base', 'user_groups_view', context) + view = self.pool.get('ir.model.data').get_object(cr, SUPERUSER_ID, 'base', 'user_groups_view', context) assert view and view._table_name == 'ir.ui.view' except Exception: view = False diff --git a/openerp/addons/base/res/res_users_view.xml b/openerp/addons/base/res/res_users_view.xml index 9c32d32287c..a1d0b0d5f2e 100644 --- a/openerp/addons/base/res/res_users_view.xml +++ b/openerp/addons/base/res/res_users_view.xml @@ -88,7 +88,7 @@ <form string="Users" version="7.0"> <field name="id" invisible="1"/> <sheet> - <field name="image_medium" widget='image' class="oe_avatar oe_left"/> + <field name="image" widget='image' class="oe_avatar oe_left" options='{"preview_image": "image_medium"}'/> <div class="oe_title"> <label for="name" class="oe_edit_only"/> <h1><field name="name"/></h1> @@ -195,9 +195,7 @@ <field eval="18" name="priority"/> <field name="arch" type="xml"> <form string="Users" version="7.0"> - <div class="oe_right oe_avatar"> - <field name="image_small" widget='image' class="oe_image_small"/> - </div> + <field name="image" widget='image' class="oe_right oe_avatar" options='{"preview_image": "image_small"}'/> <h1> <field name="name" readonly="1" class="oe_inline"/> (<field name="login" readonly="1" class="oe_inline"/>) diff --git a/openerp/addons/base/rng/view.rng b/openerp/addons/base/rng/view.rng index 0d6527e5972..dfeeb03d98b 100644 --- a/openerp/addons/base/rng/view.rng +++ b/openerp/addons/base/rng/view.rng @@ -172,6 +172,9 @@ <rng:define name="form"> <rng:element name="form"> <rng:ref name="overload"/> + <rng:optional><rng:attribute name="create" /></rng:optional> + <rng:optional><rng:attribute name="delete" /></rng:optional> + <rng:optional><rng:attribute name="edit" /></rng:optional> <rng:optional><rng:attribute name="string"/></rng:optional> <rng:optional><rng:attribute name="type"/></rng:optional> <rng:optional><rng:attribute name="link"/></rng:optional> @@ -181,7 +184,8 @@ <rng:define name="diagram"> <rng:element name="diagram"> - <rng:optional><rng:attribute name="string"/></rng:optional> + <rng:optional><rng:attribute name="create" /></rng:optional> + <rng:optional><rng:attribute name="string"/></rng:optional> <rng:ref name="node"/> <rng:ref name="arrow"/> <rng:zeroOrMore> @@ -223,6 +227,8 @@ <rng:attribute name="default_group_by" /> </rng:optional> <rng:optional><rng:attribute name="create" /></rng:optional> + <rng:optional><rng:attribute name="delete" /></rng:optional> + <rng:optional><rng:attribute name="edit" /></rng:optional> <rng:optional><rng:attribute name="quick_create" /></rng:optional> <rng:zeroOrMore> <rng:ref name="field"/> @@ -238,6 +244,9 @@ <rng:define name="tree"> <rng:element name="tree"> <rng:ref name="overload"/> + <rng:optional><rng:attribute name="create" /></rng:optional> + <rng:optional><rng:attribute name="delete" /></rng:optional> + <rng:optional><rng:attribute name="edit" /></rng:optional> <rng:optional><rng:attribute name="string"/></rng:optional> <rng:optional><rng:attribute name="colors"/></rng:optional> <rng:optional><rng:attribute name="fonts"/></rng:optional> @@ -376,6 +385,9 @@ <rng:value>5years</rng:value> </rng:choice></rng:attribute> </rng:optional> + <rng:optional><rng:attribute name="create"/></rng:optional> + <rng:optional><rng:attribute name="delete"/></rng:optional> + <rng:optional><rng:attribute name="edit"/></rng:optional> <rng:optional><rng:attribute name="color"/></rng:optional> <rng:optional><rng:attribute name="date_delay"/></rng:optional> <rng:optional><rng:attribute name="day_length"/></rng:optional> diff --git a/openerp/addons/base/security/ir.model.access.csv b/openerp/addons/base/security/ir.model.access.csv index 2d7b751860a..c340e922396 100644 --- a/openerp/addons/base/security/ir.model.access.csv +++ b/openerp/addons/base/security/ir.model.access.csv @@ -120,6 +120,5 @@ "access_ir_config_parameter","ir_config_parameter","model_ir_config_parameter",,1,0,0,0 "access_ir_mail_server_all","ir_mail_server","model_ir_mail_server",,1,0,0,0 "access_ir_actions_client","ir_actions_client all","model_ir_actions_client",,1,0,0,0 -"access_ir_needaction_users_rel","ir_needaction_users_rel","model_ir_needaction_users_rel",,1,1,1,1 "access_ir_needaction_mixin","ir_needaction_mixin","model_ir_needaction_mixin",,1,1,1,1 diff --git a/openerp/addons/base/static/src/img/avatar.png b/openerp/addons/base/static/src/img/avatar.png new file mode 100644 index 00000000000..0965da9de99 Binary files /dev/null and b/openerp/addons/base/static/src/img/avatar.png differ diff --git a/openerp/addons/base/static/src/img/avatar0.png b/openerp/addons/base/static/src/img/avatar0.png deleted file mode 100644 index 2bcc7c8d2e4..00000000000 Binary files a/openerp/addons/base/static/src/img/avatar0.png and /dev/null differ diff --git a/openerp/addons/base/static/src/img/avatar1.png b/openerp/addons/base/static/src/img/avatar1.png deleted file mode 100644 index 4f6d2f7e818..00000000000 Binary files a/openerp/addons/base/static/src/img/avatar1.png and /dev/null differ diff --git a/openerp/addons/base/static/src/img/avatar2.png b/openerp/addons/base/static/src/img/avatar2.png deleted file mode 100644 index 70d5df7ee60..00000000000 Binary files a/openerp/addons/base/static/src/img/avatar2.png and /dev/null differ diff --git a/openerp/addons/base/static/src/img/avatar3.png b/openerp/addons/base/static/src/img/avatar3.png deleted file mode 100644 index 053768aa035..00000000000 Binary files a/openerp/addons/base/static/src/img/avatar3.png and /dev/null differ diff --git a/openerp/addons/base/static/src/img/avatar4.png b/openerp/addons/base/static/src/img/avatar4.png deleted file mode 100644 index 1b2a99f05c3..00000000000 Binary files a/openerp/addons/base/static/src/img/avatar4.png and /dev/null differ diff --git a/openerp/addons/base/static/src/img/avatar5.png b/openerp/addons/base/static/src/img/avatar5.png deleted file mode 100644 index 0f6c416ecf0..00000000000 Binary files a/openerp/addons/base/static/src/img/avatar5.png and /dev/null differ diff --git a/openerp/addons/base/static/src/img/avatar6.png b/openerp/addons/base/static/src/img/avatar6.png deleted file mode 100644 index d6a18c2779e..00000000000 Binary files a/openerp/addons/base/static/src/img/avatar6.png and /dev/null differ diff --git a/openerp/addons/base/static/src/img/company_image.png b/openerp/addons/base/static/src/img/company_image.png index 2995ba12644..0a52179c779 100644 Binary files a/openerp/addons/base/static/src/img/company_image.png and b/openerp/addons/base/static/src/img/company_image.png differ diff --git a/openerp/addons/base/static/src/img/partner_image.png b/openerp/addons/base/static/src/img/partner_image.png deleted file mode 100644 index 87fdbc5af55..00000000000 Binary files a/openerp/addons/base/static/src/img/partner_image.png and /dev/null differ diff --git a/openerp/addons/base/tests/__init__.py b/openerp/addons/base/tests/__init__.py index 5ea7654c008..42fef2eb39d 100644 --- a/openerp/addons/base/tests/__init__.py +++ b/openerp/addons/base/tests/__init__.py @@ -1,5 +1,5 @@ -import test_ir_values +import test_ir_values, test_base checks = [ - test_ir_values, + test_ir_values, test_base ] diff --git a/openerp/addons/base/tests/test_base.py b/openerp/addons/base/tests/test_base.py new file mode 100644 index 00000000000..285af8fbf6e --- /dev/null +++ b/openerp/addons/base/tests/test_base.py @@ -0,0 +1,43 @@ +import unittest2 + +import openerp.tests.common as common + +class test_base(common.TransactionCase): + + def setUp(self): + super(test_base,self).setUp() + self.res_partner = self.registry('res.partner') + + # samples use effective TLDs from the Mozilla public suffix + # list at http://publicsuffix.org + self.samples = [ + ('"Raoul Grosbedon" <raoul@chirurgiens-dentistes.fr> ', 'Raoul Grosbedon', 'raoul@chirurgiens-dentistes.fr'), + ('ryu+giga-Sushi@aizubange.fukushima.jp', '', 'ryu+giga-Sushi@aizubange.fukushima.jp'), + ('Raoul chirurgiens-dentistes.fr', 'Raoul chirurgiens-dentistes.fr', ''), + (" Raoul O'hara <!@historicalsociety.museum>", "Raoul O'hara", '!@historicalsociety.museum') + ] + + def test_00_res_partner_name_create(self): + cr, uid = self.cr, self.uid + parse = self.res_partner._parse_partner_name + for text, name, mail in self.samples: + self.assertEqual((name,mail), parse(text), 'Partner name parsing failed') + partner_id, dummy = self.res_partner.name_create(cr, uid, text) + partner = self.res_partner.browse(cr, uid, partner_id) + self.assertEqual(name or mail, partner.name, 'Partner name incorrect') + self.assertEqual(mail or False, partner.email, 'Partner email incorrect') + + def test_10_res_partner_find_or_create(self): + cr,uid = self.cr, self.uid + email = self.samples[0][0] + partner_id, dummy = self.res_partner.name_create(cr, uid, email) + found_id = self.res_partner.find_or_create(cr, uid, email) + self.assertEqual(partner_id, found_id, 'find_or_create failed') + new_id = self.res_partner.find_or_create(cr, uid, self.samples[1][0]) + self.assertTrue(new_id > partner_id, 'find_or_create failed - should have created new one') + new_id2 = self.res_partner.find_or_create(cr, uid, self.samples[2][0]) + self.assertTrue(new_id2 > new_id, 'find_or_create failed - should have created new one again') + + +if __name__ == '__main__': + unittest2.main() \ No newline at end of file diff --git a/openerp/modules/loading.py b/openerp/modules/loading.py index 8a2c43e6ed2..86e69fa64ba 100644 --- a/openerp/modules/loading.py +++ b/openerp/modules/loading.py @@ -39,6 +39,7 @@ import openerp.pooler as pooler import openerp.release as release import openerp.tools as tools import openerp.tools.assertion_report as assertion_report +from openerp import SUPERUSER_ID from openerp import SUPERUSER_ID from openerp.tools.translate import _ @@ -296,7 +297,7 @@ def load_modules(db, force_demo=False, status=None, update_module=False): modobj = pool.get('ir.module.module') if ('base' in tools.config['init']) or ('base' in tools.config['update']): _logger.info('updating modules list') - modobj.update_list(cr, 1) + modobj.update_list(cr, SUPERUSER_ID) _check_module_names(cr, itertools.chain(tools.config['init'].keys(), tools.config['update'].keys())) diff --git a/openerp/modules/module.py b/openerp/modules/module.py index b1d4de31bce..540a23c5bcd 100644 --- a/openerp/modules/module.py +++ b/openerp/modules/module.py @@ -162,7 +162,7 @@ def initialize_sys_path(): return ad_paths = map(lambda m: os.path.abspath(tools.ustr(m.strip())), tools.config['addons_path'].split(',')) - ad_paths.append(_ad) # for get_module_path + ad_paths.append(os.path.abspath(_ad)) # for get_module_path sys.meta_path.append(AddonsImportHook()) def get_module_path(module, downloaded=False, display_warning=True): @@ -283,25 +283,28 @@ def get_module_as_zip(modulename, b64enc=True, src=True): def get_module_resource(module, *args): """Return the full path of a resource of the given module. - @param module: the module - @param args: the resource path components + :param module: module name + :param list(str) args: resource path components within module - @return: absolute path to the resource + :rtype: str + :return: absolute path to the resource TODO name it get_resource_path TODO make it available inside on osv object (self.get_resource_path) """ - a = get_module_path(module) - if not a: return False - resource_path = opj(a, *args) - if zipfile.is_zipfile( a +'.zip') : - zip = zipfile.ZipFile( a + ".zip") + mod_path = get_module_path(module) + if not mod_path: return False + resource_path = opj(mod_path, *args) + if os.path.isdir(mod_path): + # the module is a directory - ignore zip behavior + if os.path.exists(resource_path): + return resource_path + elif zipfile.is_zipfile(mod_path + '.zip'): + zip = zipfile.ZipFile( mod_path + ".zip") files = ['/'.join(f.split('/')[1:]) for f in zip.namelist()] resource_path = '/'.join(args) if resource_path in files: - return opj(a, resource_path) - elif os.path.exists(resource_path): - return resource_path + return opj(mod_path, resource_path) return False def get_module_icon(module): diff --git a/openerp/netsvc.py b/openerp/netsvc.py index 170108a13ad..c1a31602262 100644 --- a/openerp/netsvc.py +++ b/openerp/netsvc.py @@ -86,12 +86,12 @@ class Service(object): cls._services.pop(name) def LocalService(name): - # Special case for addons support, will be removed in a few days when addons - # are updated to directly use openerp.osv.osv.service. - if name == 'object_proxy': - return openerp.osv.osv.service + # Special case for addons support, will be removed in a few days when addons + # are updated to directly use openerp.osv.osv.service. + if name == 'object_proxy': + return openerp.osv.osv.service - return Service._services[name] + return Service._services[name] class ExportService(object): """ Proxy for exported services. @@ -238,9 +238,9 @@ def init_logger(): # server intended to test it. def init_alternative_logger(): class H(logging.Handler): - def emit(self, record): - if record.levelno > 20: - print record.levelno, record.pathname, record.msg + def emit(self, record): + if record.levelno > 20: + print record.levelno, record.pathname, record.msg handler = H() # Add the handler to the 'openerp' logger. logger = logging.getLogger('openerp') diff --git a/openerp/osv/fields.py b/openerp/osv/fields.py index 5a47601f8a5..037d2a90986 100644 --- a/openerp/osv/fields.py +++ b/openerp/osv/fields.py @@ -46,6 +46,7 @@ from openerp.tools.translate import _ from openerp.tools import float_round, float_repr import simplejson from openerp.tools.html_sanitize import html_sanitize +from openerp import SUPERUSER_ID _logger = logging.getLogger(__name__) @@ -444,7 +445,7 @@ class many2one(_column): # build a dictionary of the form {'id_of_distant_resource': name_of_distant_resource} # we use uid=1 because the visibility of a many2one field value (just id and name) # must be the access right of the parent form and not the linked object itself. - records = dict(obj.name_get(cr, 1, + records = dict(obj.name_get(cr, SUPERUSER_ID, list(set([x for x in res.values() if isinstance(x, (int,long))])), context=context)) for id in res: @@ -514,7 +515,8 @@ class one2many(_column): for id in ids: res[id] = [] - ids2 = obj.pool.get(self._obj).search(cr, user, self._domain + [(self._fields_id, 'in', ids)], limit=self._limit, context=context) + domain = self._domain(obj) if callable(self._domain) else self._domain + ids2 = obj.pool.get(self._obj).search(cr, user, domain + [(self._fields_id, 'in', ids)], limit=self._limit, context=context) for r in obj.pool.get(self._obj)._read_flat(cr, user, ids2, [self._fields_id], context=context, load='_classic_write'): if r[self._fields_id] in res: res[r[self._fields_id]].append(r['id']) @@ -556,7 +558,8 @@ class one2many(_column): reverse_rel = obj._all_columns.get(self._fields_id) assert reverse_rel, 'Trying to unlink the content of a o2m but the pointed model does not have a m2o' # if the o2m has a static domain we must respect it when unlinking - extra_domain = self._domain if isinstance(getattr(self, '_domain', None), list) else [] + domain = self._domain(obj) if callable(self._domain) else self._domain + extra_domain = domain or [] ids_to_unlink = obj.search(cr, user, [(self._fields_id,'=',id)] + extra_domain, context=context) # If the model has cascade deletion, we delete the rows because it is the intended behavior, # otherwise we only nullify the reverse foreign key column. @@ -574,7 +577,8 @@ class one2many(_column): return result def search(self, cr, obj, args, name, value, offset=0, limit=None, uid=None, operator='like', context=None): - return obj.pool.get(self._obj).name_search(cr, uid, value, self._domain, operator, context=context,limit=limit) + domain = self._domain(obj) if callable(self._domain) else self._domain + return obj.pool.get(self._obj).name_search(cr, uid, value, domain, operator, context=context,limit=limit) @classmethod @@ -1200,7 +1204,7 @@ class related(function): else: res = {}.fromkeys(ids, False) - objlst = obj.browse(cr, 1, ids, context=context) + objlst = obj.browse(cr, SUPERUSER_ID, ids, context=context) for data in objlst: if not data: continue @@ -1230,7 +1234,7 @@ class related(function): # name_get as root, as seeing the name of a related # object depends on access right of source document, # not target, so user may not have access. - ng = dict(obj.pool.get(self._obj).name_get(cr, 1, ids, context=context)) + ng = dict(obj.pool.get(self._obj).name_get(cr, SUPERUSER_ID, ids, context=context)) for r in res: if res[r]: res[r] = (res[r], ng[res[r]]) @@ -1495,7 +1499,7 @@ class property(function): # not target, so user may not have access) in order to avoid # pointing on an unexisting record. if property_destination_obj: - if res[id][prop_name] and obj.pool.get(property_destination_obj).exists(cr, 1, res[id][prop_name].id): + if res[id][prop_name] and obj.pool.get(property_destination_obj).exists(cr, SUPERUSER_ID, res[id][prop_name].id): name_get_ids[id] = res[id][prop_name].id else: res[id][prop_name] = False @@ -1503,7 +1507,7 @@ class property(function): # name_get as root (as seeing the name of a related # object depends on access right of source document, # not target, so user may not have access.) - name_get_values = dict(obj.pool.get(property_destination_obj).name_get(cr, 1, name_get_ids.values(), context=context)) + name_get_values = dict(obj.pool.get(property_destination_obj).name_get(cr, SUPERUSER_ID, name_get_ids.values(), context=context)) # the property field is a m2o, we need to return a tuple with (id, name) for k, v in name_get_ids.iteritems(): if res[k][prop_name]: @@ -1539,9 +1543,7 @@ def field_to_dict(model, cr, user, field, context=None): """ res = {'type': field._type} - # This additional attributes for M2M and function field is added - # because we need to display tooltip with this additional information - # when client is started in debug mode. + # some attributes for m2m/function field are added as debug info only if isinstance(field, function): res['function'] = field._fnct and field._fnct.func_name or False res['store'] = field.store @@ -1576,7 +1578,7 @@ def field_to_dict(model, cr, user, field, context=None): res['selection'] = field.selection(model, cr, user, context) if res['type'] in ('one2many', 'many2many', 'many2one'): res['relation'] = field._obj - res['domain'] = field._domain + res['domain'] = field._domain(model) if callable(field._domain) else field._domain res['context'] = field._context if isinstance(field, one2many): diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index 7c8085ea8ed..d81833b17a6 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -63,6 +63,7 @@ from openerp.tools.safe_eval import safe_eval as eval from openerp.tools.translate import _ from openerp import SUPERUSER_ID from query import Query +from openerp import SUPERUSER_ID _logger = logging.getLogger(__name__) _schema = logging.getLogger(__name__ + '.schema') @@ -653,6 +654,7 @@ class BaseModel(object): may be set to False. """ __metaclass__ = MetaModel + _auto = True # create database backend _register = False # Set to false if the model shouldn't be automatically discovered. _name = None _columns = {} @@ -666,8 +668,9 @@ class BaseModel(object): _order = 'id' _sequence = None _description = None + _needaction = False - # dict of {field:method}, with method returning the name_get of records + # dict of {field:method}, with method returning the (name_get of records, {id: fold}) # to include in the _read_group, if grouped on this field _group_by_full = {} @@ -773,7 +776,7 @@ class BaseModel(object): } if getattr(f, 'serialization_field', None): # resolve link to serialization_field if specified by name - serialization_field_id = ir_model_fields_obj.search(cr, 1, [('model','=',vals['model']), ('name', '=', f.serialization_field)]) + serialization_field_id = ir_model_fields_obj.search(cr, SUPERUSER_ID, [('model','=',vals['model']), ('name', '=', f.serialization_field)]) if not serialization_field_id: raise except_orm(_('Error'), _("Serialization field `%s` not found for sparse field `%s`!") % (f.serialization_field, k)) vals['serialization_field_id'] = serialization_field_id[0] @@ -889,8 +892,8 @@ class BaseModel(object): for c in cls.__dict__.get(s, []): exist = False for c2 in range(len(new)): - #For _constraints, we should check field and methods as well - if new[c2][2]==c[2] and (new[c2][0] == c[0] \ + #For _constraints, we should check field and methods as well + if new[c2][2]==c[2] and (new[c2][0] == c[0] \ or getattr(new[c2][0],'__name__', True) == \ getattr(c[0],'__name__', False)): # If new class defines a constraint with @@ -1305,7 +1308,7 @@ class BaseModel(object): if not line[i]: continue - if field[:len(prefix)] <> prefix: + if field[:len(prefix)] != prefix: if line[i] and skip: return False continue @@ -1822,8 +1825,11 @@ class BaseModel(object): fields = {} if node.tag == 'diagram': if node.getchildren()[0].tag == 'node': - node_fields = self.pool.get(node.getchildren()[0].get('object')).fields_get(cr, user, None, context) + node_model = self.pool.get(node.getchildren()[0].get('object')) + node_fields = node_model.fields_get(cr, user, None, context) fields.update(node_fields) + if not node.get("create") and not node_model.check_access_rights(cr, user, 'create', raise_exception=False): + node.set("create", 'false') if node.getchildren()[1].tag == 'arrow': arrow_fields = self.pool.get(node.getchildren()[1].get('object')).fields_get(cr, user, None, context) fields.update(arrow_fields) @@ -1831,6 +1837,10 @@ class BaseModel(object): fields = self.fields_get(cr, user, None, context) fields_def = self.__view_look_dom(cr, user, node, view_id, False, fields, context=context) node = self._disable_workflow_buttons(cr, user, node) + if node.tag in ('kanban', 'tree', 'form', 'gantt'): + for action, operation in (('create', 'create'), ('delete', 'unlink'), ('edit', 'write')): + if not node.get(action) and not self.check_access_rights(cr, user, operation, raise_exception=False): + node.set(action, 'false') arch = etree.tostring(node, encoding="utf-8").replace('\t', '') for k in fields.keys(): if k not in fields_def: @@ -2345,7 +2355,7 @@ class BaseModel(object): def read_string(self, cr, uid, id, langs, fields=None, context=None): res = {} res2 = {} - self.pool.get('ir.translation').check_read(cr, uid) + self.pool.get('ir.translation').check_access_rights(cr, uid, 'read') if not fields: fields = self._columns.keys() + self._inherit_fields.keys() #FIXME: collect all calls to _get_source into one SQL call. @@ -2369,7 +2379,7 @@ class BaseModel(object): return res def write_string(self, cr, uid, id, langs, vals, context=None): - self.pool.get('ir.translation').check_write(cr, uid) + self.pool.get('ir.translation').check_access_rights(cr, uid, 'write') #FIXME: try to only call the translation in one SQL for lang in langs: for field in vals: @@ -2437,7 +2447,7 @@ class BaseModel(object): # Grab the list of all groups that should be displayed, including all present groups present_group_ids = [x[groupby][0] for x in read_group_result if x[groupby]] - all_groups = self._group_by_full[groupby](self, cr, uid, present_group_ids, domain, + all_groups,folded = self._group_by_full[groupby](self, cr, uid, present_group_ids, domain, read_group_order=read_group_order, access_rights_uid=openerp.SUPERUSER_ID, context=context) @@ -2488,6 +2498,10 @@ class BaseModel(object): append_left(read_group_result.pop(0)) else: append_right(all_groups.pop(0)) + + if folded: + for r in result: + r['__fold'] = folded.get(r[groupby] and r[groupby][0], False) return result def read_group(self, cr, uid, domain, fields, groupby, offset=0, limit=None, context=None, orderby=False): @@ -2517,7 +2531,7 @@ class BaseModel(object): """ context = context or {} - self.check_read(cr, uid) + self.check_access_rights(cr, uid, 'read') if not fields: fields = self._columns.keys() @@ -2695,7 +2709,7 @@ class BaseModel(object): # if val is a many2one, just write the ID if type(val) == tuple: val = val[0] - if (val<>False) or (type(val)<>bool): + if val is not False: cr.execute(update_query, (ss[1](val), key)) def _check_selection_field_value(self, cr, uid, field, value, context=None): @@ -2719,7 +2733,7 @@ class BaseModel(object): elif val in dict(self._columns[field].selection(self, cr, uid, context=context)): return raise except_orm(_('ValidateError'), - _('The value "%s" for the field "%s.%s" is not in the selection') % (value, self._table, field)) + _('The value "%s" for the field "%s.%s" is not in the selection') % (value, self._table, field)) def _check_removed_columns(self, cr, log=False): # iterate on the database columns to drop the NOT NULL constraints @@ -3398,8 +3412,7 @@ class BaseModel(object): if context is None: context = {} - write_access = self.check_write(cr, user, False) or \ - self.check_create(cr, user, False) + write_access = self.check_access_rights(cr, user, 'write') or self.check_access_rights(cr, user, 'create') res = {} @@ -3463,7 +3476,7 @@ class BaseModel(object): if not context: context = {} - self.check_read(cr, user) + self.check_access_rights(cr, user, 'read') if not fields: fields = list(set(self._columns.keys() + self._inherit_fields.keys())) if isinstance(ids, (int, long)): @@ -3737,18 +3750,6 @@ class BaseModel(object): according to the access rights.""" return self.pool.get('ir.model.access').check(cr, uid, self._name, operation, raise_exception) - def check_create(self, cr, uid, raise_exception=True): - return self.check_access_rights(cr, uid, 'create', raise_exception) - - def check_read(self, cr, uid, raise_exception=True): - return self.check_access_rights(cr, uid, 'read', raise_exception) - - def check_unlink(self, cr, uid, raise_exception=True): - return self.check_access_rights(cr, uid, 'unlink', raise_exception) - - def check_write(self, cr, uid, raise_exception=True): - return self.check_access_rights(cr, uid, 'write', raise_exception) - def check_access_rule(self, cr, uid, ids, operation, context=None): """Verifies that the operation given by ``operation`` is allowed for the user according to ir.rules. @@ -3812,7 +3813,7 @@ class BaseModel(object): self._check_concurrency(cr, ids, context) - self.check_unlink(cr, uid) + self.check_access_rights(cr, uid, 'unlink') ir_property = self.pool.get('ir.property') @@ -3948,7 +3949,7 @@ class BaseModel(object): ids = [ids] self._check_concurrency(cr, ids, context) - self.check_write(cr, user) + self.check_access_rights(cr, user, 'write') result = self._store_get_values(cr, user, ids, vals.keys(), context) or [] @@ -4168,7 +4169,7 @@ class BaseModel(object): if self.is_transient(): self._transient_vacuum(cr, user) - self.check_create(cr, user) + self.check_access_rights(cr, user, 'create') if self._log_access: for f in LOG_ACCESS_COLUMNS: @@ -4660,7 +4661,7 @@ class BaseModel(object): """ if context is None: context = {} - self.check_read(cr, access_rights_uid or user) + self.check_access_rights(cr, access_rights_uid or user, 'read') # For transient models, restrict acces to the current user, except for the super-user if self.is_transient() and self._log_access and user != SUPERUSER_ID: @@ -4960,37 +4961,7 @@ class BaseModel(object): # backwards compatibility get_xml_id = get_external_id _get_xml_ids = _get_external_ids - - def _get_needaction_info(self, cr, uid, user_id, limit=None, order=None, domain=False, context=None): - """Base method for needaction mechanism - - see ir.needaction for actual implementation - - if the model uses the need action mechanism - (hasattr(model_obj, 'needaction_get_record_ids')): - - get the record ids on which the user has actions to perform - - evaluate the menu domain - - compose a new domain: menu domain, limited to ids of - records requesting an action - - count the number of records maching that domain, that - is the number of actions the user has to perform - - this method returns default values - :param: model_name: the name of the model (ex: hr.holidays) - :param: user_id: the id of user - :return: [uses_needaction=True/False, needaction_uid_ctr=%d] - """ - if hasattr(self, 'needaction_get_record_ids'): - # Arbitrary limit, but still much lower thant infinity, to avoid - # getting too much data. - ids = self.needaction_get_record_ids(cr, uid, user_id, limit=8192, context=context) - if not ids: - return [True, 0] - if domain: - new_domain = eval(domain, locals_dict={'uid': user_id}) + [('id', 'in', ids)] - else: - new_domain = [('id', 'in', ids)] - return [True, self.search(cr, uid, new_domain, limit=limit, order=order, count=True, context=context)] - else: - return [False, 0] - + # Transience def is_transient(self): """ Return whether the model is transient. @@ -5042,66 +5013,56 @@ class BaseModel(object): return True - def resolve_o2m_commands_to_record_dicts(self, cr, uid, field_name, o2m_commands, fields=None, context=None): - """ Serializes o2m commands into record dictionaries (as if - all the o2m records came from the database via a read()), and - returns an iterable over these dictionaries. + def resolve_2many_commands(self, cr, uid, field_name, commands, fields=None, context=None): + """ Serializes one2many and many2many commands into record dictionaries + (as if all the records came from the database via a read()). This + method is aimed at onchange methods on one2many and many2many fields. - Because o2m commands might be creation commands, not all - record ids will contain an ``id`` field. Commands matching an - existing record (``UPDATE`` and ``LINK_TO``) will have an id. + Because commands might be creation commands, not all record dicts + will contain an ``id`` field. Commands matching an existing record + will have an ``id``. - .. note:: ``CREATE``, ``UPDATE`` and ``LINK_TO`` stand for the - o2m command codes ``0``, ``1`` and ``4`` - respectively - - :param field_name: name of the o2m field matching the commands - :type field_name: str - :param o2m_commands: one2many commands to execute on ``field_name`` - :type o2m_commands: list((int|False, int|False, dict|False)) - :param fields: list of fields to read from the database, when applicable - :type fields: list(str) - :raises AssertionError: if a command is not ``CREATE``, ``UPDATE`` or ``LINK_TO`` - :returns: o2m records in a shape similar to that returned by - ``read()`` (except records may be missing the ``id`` - field if they don't exist in db) - :rtype: ``list(dict)`` + :param field_name: name of the one2many or many2many field matching the commands + :type field_name: str + :param commands: one2many or many2many commands to execute on ``field_name`` + :type commands: list((int|False, int|False, dict|False)) + :param fields: list of fields to read from the database, when applicable + :type fields: list(str) + :returns: records in a shape similar to that returned by ``read()`` + (except records may be missing the ``id`` field if they don't exist in db) + :rtype: list(dict) """ - o2m_model = self._all_columns[field_name].column._obj + result = [] # result (list of dict) + record_ids = [] # ids of records to read + updates = {} # {id: dict} of updates on particular records - # convert single ids and pairs to tripled commands - commands = [] - for o2m_command in o2m_commands: - if not isinstance(o2m_command, (list, tuple)): - command = 4 - commands.append((command, o2m_command, False)) - elif len(o2m_command) == 1: - (command,) = o2m_command - commands.append((command, False, False)) - elif len(o2m_command) == 2: - command, id = o2m_command - commands.append((command, id, False)) - else: - command = o2m_command[0] - commands.append(o2m_command) - assert command in (0, 1, 4), \ - "Only CREATE, UPDATE and LINK_TO commands are supported in resolver" + for command in commands: + if not isinstance(command, (list, tuple)): + record_ids.append(command) + elif command[0] == 0: + result.append(command[2]) + elif command[0] == 1: + record_ids.append(command[1]) + updates.setdefault(command[1], {}).update(command[2]) + elif command[0] in (2, 3): + record_ids = [id for id in record_ids if id != command[1]] + elif command[0] == 4: + record_ids.append(command[1]) + elif command[0] == 5: + result, record_ids = [], [] + elif command[0] == 6: + result, record_ids = [], list(command[2]) - # extract records to read, by id, in a mapping dict - ids_to_read = [id for (command, id, _) in commands if command in (1, 4)] - records_by_id = dict( - (record['id'], record) - for record in self.pool.get(o2m_model).read( - cr, uid, ids_to_read, fields=fields, context=context)) + # read the records and apply the updates + other_model = self.pool.get(self._all_columns[field_name].column._obj) + for record in other_model.read(cr, uid, record_ids, fields=fields, context=context): + record.update(updates.get(record['id'], {})) + result.append(record) - record_dicts = [] - # merge record from db with record provided by command - for command, id, record in commands: - item = {} - if command in (1, 4): item.update(records_by_id[id]) - if command in (0, 1): item.update(record) - record_dicts.append(item) - return record_dicts + return result + + # for backward compatibility + resolve_o2m_commands_to_record_dicts = resolve_2many_commands # keep this import here, at top it will cause dependency cycle errors import expression @@ -5117,6 +5078,7 @@ class Model(BaseModel): The system will later instantiate the class once per database (on which the class' module is installed). """ + _auto = True _register = False # not visible in ORM registry, meant to be python-inherited only _transient = False # True in a TransientModel @@ -5129,6 +5091,7 @@ class TransientModel(BaseModel): records they created. The super-user has unrestricted access to all TransientModel records. """ + _auto = True _register = False # not visible in ORM registry, meant to be python-inherited only _transient = True diff --git a/openerp/report/custom.py b/openerp/report/custom.py index 051d1f29862..596d9a9f1b9 100644 --- a/openerp/report/custom.py +++ b/openerp/report/custom.py @@ -21,7 +21,6 @@ import os import time -import openerp.netsvc as netsvc import openerp.tools as tools from openerp.tools.safe_eval import safe_eval as eval @@ -67,7 +66,6 @@ class report_custom(report_int): # def _row_get(self, cr, uid, objs, fields, conditions, row_canvas=None, group_by=None): result = [] - tmp = [] for obj in objs: tobreak = False for cond in conditions: @@ -108,7 +106,7 @@ class report_custom(report_int): key = levels.keys() for l in key: objs = eval('obj.'+l,{'obj': obj}) - if not isinstance(objs, browse_record_list) and type(objs) <> type([]): + if not isinstance(objs, (browse_record_list, list)): objs = [objs] field_new = [] cond_new = [] @@ -221,11 +219,9 @@ class report_custom(report_int): res_dic[prev].append(line) else: prev = line[groupby] - if res_dic.has_key(line[groupby]): - res_dic[line[groupby]].append(line) - else: - res_dic[line[groupby]] = [] - res_dic[line[groupby]].append(line) + res_dic.setdefault(line[groupby], []) + res_dic[line[groupby]].append(line) + #we use the keys in results since they are ordered, whereas in res_dic.heys() they aren't for key in filter(None, [x[groupby] for x in results]): row = [] @@ -267,7 +263,7 @@ class report_custom(report_int): else: try: row.append(float(r[j])) - except: + except Exception: row.append(r[j]) results2.append(row) if report['type']=='pie': @@ -365,7 +361,6 @@ class report_custom(report_int): order_date['Y'] = lambda x : x abscissa = [] - tmp = {} idx = 0 date_idx = None @@ -389,7 +384,7 @@ class report_custom(report_int): if date_idx != None: for r in results: key = process_date['Y'](r[date_idx]) - if not data_by_year.has_key(key): + if key not in data_by_year: data_by_year[key] = [] for i in range(len(r)): r[i] = fct[i](r[i]) @@ -407,14 +402,14 @@ class report_custom(report_int): for d in data_by_year[line]: for idx in range(len(fields)-1): fields_bar.append({}) - if fields_bar[idx].has_key(d[0]): + if d[0] in fields_bar[idx]: fields_bar[idx][d[0]] += d[idx+1] else: fields_bar[idx][d[0]] = d[idx+1] for idx in range(len(fields)-1): data = {} for k in fields_bar[idx].keys(): - if data.has_key(k): + if k in data: data[k] += fields_bar[idx][k] else: data[k] = fields_bar[idx][k] @@ -488,7 +483,7 @@ class report_custom(report_int): if date_idx != None: for r in results: key = process_date['Y'](r[date_idx]) - if not data_by_year.has_key(key): + if key not in data_by_year: data_by_year[key] = [] for i in range(len(r)): r[i] = fct[i](r[i]) @@ -507,14 +502,14 @@ class report_custom(report_int): for d in data_by_year[line]: for idx in range(len(fields)-1): fields_bar.append({}) - if fields_bar[idx].has_key(d[0]): + if d[0] in fields_bar[idx]: fields_bar[idx][d[0]] += d[idx+1] else: fields_bar[idx][d[0]] = d[idx+1] for idx in range(len(fields)-1): data = {} for k in fields_bar[idx].keys(): - if data.has_key(k): + if k in data: data[k] += fields_bar[idx][k] else: data[k] = fields_bar[idx][k] diff --git a/openerp/report/interface.py b/openerp/report/interface.py index 9a97c445671..17dc0973d7e 100644 --- a/openerp/report/interface.py +++ b/openerp/report/interface.py @@ -44,8 +44,8 @@ class report_int(netsvc.Service): def __init__(self, name): assert not self.exists(name), 'The report "%s" already exists!' % name super(report_int, self).__init__(name) - if name[0:7]<>'report.': - raise Exception, 'ConceptionError, bad report name, should start with "report."' + if not name.startswith('report.'): + raise Exception('ConceptionError, bad report name, should start with "report."') self.name = name self.id = 0 self.name2 = '.'.join(name.split('.')[1:]) @@ -181,7 +181,7 @@ class report_rml(report_int): def create_pdf(self, rml, localcontext = None, logo=None, title=None): if not localcontext: - localcontext={} + localcontext = {} localcontext.update({'internal_header':self.internal_header}) if logo: self.bin_datas['logo'] = logo diff --git a/openerp/report/preprocess.py b/openerp/report/preprocess.py index e681860d7a2..93b6b4d1bc9 100644 --- a/openerp/report/preprocess.py +++ b/openerp/report/preprocess.py @@ -48,7 +48,7 @@ class report(object): try: while n.tag != txt.group(3): n = n.getparent() - except: + except Exception: n = node else: n = node.getparent() diff --git a/openerp/report/print_xml.py b/openerp/report/print_xml.py index ee1b9a316b3..c2af0984c2e 100644 --- a/openerp/report/print_xml.py +++ b/openerp/report/print_xml.py @@ -200,7 +200,7 @@ class document(object): else: args = [] # get the object - if attrs.has_key('model'): + if 'model' in attrs: obj = self.pool.get(attrs['model']) else: if isinstance(browser, list): @@ -209,7 +209,7 @@ class document(object): obj = browser._table # get the ids - if attrs.has_key('ids'): + if 'ids' in attrs: ids = self.eval(browser, attrs['ids']) else: if isinstance(browser, list): @@ -228,7 +228,7 @@ class document(object): if not isinstance(datas[atr['value']], (str, unicode)): txt = str(datas[atr['value']]) else: - txt = datas[atr['value']] + txt = datas[atr['value']] el.text = txt else: for el_cld in node: diff --git a/openerp/report/printscreen/ps_form.py b/openerp/report/printscreen/ps_form.py index 8e3823e6b03..cf6d77cbe26 100644 --- a/openerp/report/printscreen/ps_form.py +++ b/openerp/report/printscreen/ps_form.py @@ -120,7 +120,7 @@ class report_printscreen_list(report_int): line[f]=round(line[f],precision) col = etree.SubElement(node_line, 'col', tree='no') if line[f] != None: - col.text = tools.ustr(line[f] or '') + col.text = tools.ustr(line[f] or '') else: col.text = '/' diff --git a/openerp/report/printscreen/ps_list.py b/openerp/report/printscreen/ps_list.py index dc280a53e3e..8f0629462f8 100644 --- a/openerp/report/printscreen/ps_list.py +++ b/openerp/report/printscreen/ps_list.py @@ -56,7 +56,7 @@ class report_printscreen_list(report_int): def _parse_string(self, view): try: dom = etree.XML(view.encode('utf-8')) - except: + except Exception: dom = etree.XML(view) return self._parse_node(dom) diff --git a/openerp/report/render/html2html/html2html.py b/openerp/report/render/html2html/html2html.py index 181c7f7ba67..09d7ad5e825 100644 --- a/openerp/report/render/html2html/html2html.py +++ b/openerp/report/render/html2html/html2html.py @@ -20,9 +20,7 @@ ############################################################################## from openerp.report.render.rml2pdf import utils -from lxml import etree import copy -import openerp.pooler as pooler import base64 import cStringIO import re diff --git a/openerp/report/render/makohtml2html/makohtml2html.py b/openerp/report/render/makohtml2html/makohtml2html.py index 57e57bd8d63..dbb3327a105 100644 --- a/openerp/report/render/makohtml2html/makohtml2html.py +++ b/openerp/report/render/makohtml2html/makohtml2html.py @@ -23,8 +23,7 @@ import mako from lxml import etree from mako.template import Template from mako.lookup import TemplateLookup -import openerp.netsvc as netsvc -import traceback, sys, os +import os _logger = logging.getLogger(__name__) @@ -126,9 +125,8 @@ class makohtml2html(object): final_html += self.format_header(etree_obj) final_html += self.format_body(etree_obj) return final_html - except Exception,e: - tb_s = reduce(lambda x, y: x+y, traceback.format_exception(sys.exc_type, sys.exc_value, sys.exc_traceback)) - _logger.error('report :\n%s\n%s\n', tb_s, str(e)) + except Exception: + _logger.exception('report :') def parseNode(html, localcontext = {}): r = makohtml2html(html, localcontext) diff --git a/openerp/report/render/odt2odt/odt2odt.py b/openerp/report/render/odt2odt/odt2odt.py index d077207f4d7..b9713943dc8 100644 --- a/openerp/report/render/odt2odt/odt2odt.py +++ b/openerp/report/render/odt2odt/odt2odt.py @@ -20,7 +20,6 @@ ############################################################################## from openerp.report.render.rml2pdf import utils -from lxml import etree import copy class odt2odt(object): diff --git a/openerp/report/render/rml2html/rml2html.py b/openerp/report/render/rml2html/rml2html.py index 504492772df..90bd58af99a 100644 --- a/openerp/report/render/rml2html/rml2html.py +++ b/openerp/report/render/rml2html/rml2html.py @@ -39,7 +39,7 @@ import sys import cStringIO from lxml import etree import copy -import utils + from openerp.report.render.rml2pdf import utils class _flowable(object): @@ -98,7 +98,7 @@ class _flowable(object): try: if new_child.get('style').find('terp_tblheader')!= -1: new_node.tag = 'th' - except: + except Exception: pass process(node,new_node) if new_node.get('colWidths',False): @@ -232,7 +232,7 @@ class _rml_stylesheet(object): attr = {} attrs = ps.attrib for key, val in attrs.items(): - attr[key] = val + attr[key] = val attrs = [] for a in attr: if a in self._tags: @@ -296,13 +296,13 @@ class _rml_template(object): frames[(posy,posx,tmpl.get('id'))] = _rml_tmpl_frame(posx, utils.unit_get(tmpl.get('width'))) for tmpl in pt.findall('pageGraphics'): for n in tmpl: - if n.tag == 'image': - self.data = rc + utils._process_text(self, n.text) - if n.tag in self._tags: - t = self._tags[n.tag](n, self.style,self.localcontext) - frames[(t.posy,t.posx,n.tag)] = t - else: - self.style.update(n) + if n.tag == 'image': + self.data = rc + utils._process_text(self, n.text) + if n.tag in self._tags: + t = self._tags[n.tag](n, self.style,self.localcontext) + frames[(t.posy,t.posx,n.tag)] = t + else: + self.style.update(n) keys = frames.keys() keys.sort() keys.reverse() diff --git a/openerp/report/render/rml2pdf/trml2pdf.py b/openerp/report/render/rml2pdf/trml2pdf.py index 96287166074..a17c03b40cb 100644 --- a/openerp/report/render/rml2pdf/trml2pdf.py +++ b/openerp/report/render/rml2pdf/trml2pdf.py @@ -82,7 +82,7 @@ class NumberedCanvas(canvas.Canvas): def showPage(self): self._currentPage +=1 if not self._flag: - self._pageCount += 1 + self._pageCount += 1 else: self.pages.update({self._currentPage:self._pageCount}) self._codes.append({'code': self._code, 'stack': self._codeStack}) @@ -424,7 +424,7 @@ class _rml_canvas(object): flow.drawOn(self.canvas,infos['x'],infos['y']) infos['height']-=h else: - raise ValueError, "Not enough space" + raise ValueError("Not enough space") def _line_mode(self, node): ljoin = {'round':1, 'mitered':0, 'bevelled':2} diff --git a/openerp/report/render/rml2txt/rml2txt.py b/openerp/report/render/rml2txt/rml2txt.py index 4a30e0d2345..ab1930d81ba 100755 --- a/openerp/report/render/rml2txt/rml2txt.py +++ b/openerp/report/render/rml2txt/rml2txt.py @@ -22,9 +22,7 @@ import sys import StringIO -import copy from lxml import etree -import base64 import utils @@ -336,8 +334,8 @@ class _rml_stylesheet(object): attr = {} attrs = ps.attributes for i in range(attrs.length): - name = attrs.item(i).localName - attr[name] = ps.get(name) + name = attrs.item(i).localName + attr[name] = ps.get(name) attrs = [] for a in attr: if a in self._tags: diff --git a/openerp/report/render/rml2txt/utils.py b/openerp/report/render/rml2txt/utils.py index 174612d847e..a56ee02b66d 100644 --- a/openerp/report/render/rml2txt/utils.py +++ b/openerp/report/render/rml2txt/utils.py @@ -23,7 +23,6 @@ import copy import re import reportlab import reportlab.lib.units -from lxml import etree from openerp.tools.safe_eval import safe_eval as eval _regex = re.compile('\[\[(.+?)\]\]') @@ -38,7 +37,7 @@ def _child_get(node, self=None, tagname=None): if n.get('rml_except', False): try: eval(n.get('rml_except'), {}, self.localcontext) - except: + except Exception: continue if n.get('rml_tag'): try: @@ -47,7 +46,7 @@ def _child_get(node, self=None, tagname=None): n2.tag = tag n2.attrib.update(attr) yield n2 - except: + except Exception: yield n else: yield n @@ -56,7 +55,7 @@ def _child_get(node, self=None, tagname=None): if self and self.localcontext and n.get('rml_except', False): try: eval(n.get('rml_except'), {}, self.localcontext) - except: + except Exception: continue if (tagname is None) or (n.tag==tagname): yield n @@ -74,11 +73,11 @@ def _process_text(self, txt): if sps: try: txt2 = eval(sps.pop(0),self.localcontext) - except: + except Exception: txt2 = '' - if type(txt2) == type(0) or type(txt2) == type(0.0): + if isinstance(txt2, (int, float)): txt2 = str(txt2) - if type(txt2)==type('') or type(txt2)==type(u''): + if isinstance(txt2, basestring): result += txt2 return result diff --git a/openerp/report/render/simple.py b/openerp/report/render/simple.py index 4ce10991924..cb3831c141f 100644 --- a/openerp/report/render/simple.py +++ b/openerp/report/render/simple.py @@ -66,7 +66,6 @@ class simple(render.render): return self.result.getvalue() if __name__=='__main__': - import time s = simple() s.xml = '''<test> <author-list> @@ -82,7 +81,7 @@ if __name__=='__main__': </author-list> </test>''' if s.render(): - print s.get() + print s.get() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/openerp/service/http_server.py b/openerp/service/http_server.py index 07e31ea9c7d..63e0d08fc92 100644 --- a/openerp/service/http_server.py +++ b/openerp/service/http_server.py @@ -44,10 +44,8 @@ import posixpath import urllib import os import logging -from SimpleXMLRPCServer import SimpleXMLRPCDispatcher from websrv_lib import * -import openerp.netsvc as netsvc import openerp.tools as tools try: diff --git a/openerp/service/netrpc_server.py b/openerp/service/netrpc_server.py index 325288791f7..fcbfaf0ba82 100644 --- a/openerp/service/netrpc_server.py +++ b/openerp/service/netrpc_server.py @@ -126,12 +126,12 @@ class TinySocketServerThread(threading.Thread,netsvc.Server): ct.start() lt = len(self.threads) if (lt > 10) and (lt % 10 == 0): - # Not many threads should be serving at the same time, so log - # their abuse. - _logger.debug("Netrpc: %d threads", len(self.threads)) + # Not many threads should be serving at the same time, so log + # their abuse. + _logger.debug("Netrpc: %d threads", len(self.threads)) self.socket.close() except Exception, e: - _logger.warning("Netrpc: closing because of exception %s" % str(e)) + _logger.warning("Netrpc: closing because of exception %s", e) self.socket.close() return False diff --git a/openerp/service/web_services.py b/openerp/service/web_services.py index 7c08003bf7a..5bc4eb7b9aa 100644 --- a/openerp/service/web_services.py +++ b/openerp/service/web_services.py @@ -40,6 +40,7 @@ import openerp.tools as tools import openerp.modules import openerp.exceptions from openerp.service import http_server +from openerp import SUPERUSER_ID #.apidoc title: Exported Service methods #.apidoc module-mods: member-order: bysource @@ -72,8 +73,8 @@ def _initialize_db(serv, id, db_name, demo, lang, user_password): if lang: modobj = pool.get('ir.module.module') - mids = modobj.search(cr, 1, [('state', '=', 'installed')]) - modobj.update_translations(cr, 1, mids, lang) + mids = modobj.search(cr, SUPERUSER_ID, [('state', '=', 'installed')]) + modobj.update_translations(cr, SUPERUSER_ID, mids, lang) cr.execute('UPDATE res_users SET password=%s, lang=%s, active=True WHERE login=%s', ( user_password, lang, 'admin')) @@ -237,9 +238,9 @@ class db(netsvc.ExportService): if not data or res: _logger.error( - 'DUMP DB: %s failed! Please verify the configuration of the database password on the server. '\ - 'It should be provided as a -w <PASSWD> command-line option, or as `db_password` in the '\ - 'server configuration file.\n %s' % (db_name, data)) + 'DUMP DB: %s failed! Please verify the configuration of the database password on the server. ' + 'It should be provided as a -w <PASSWD> command-line option, or as `db_password` in the ' + 'server configuration file.\n %s', db_name, data) raise Exception, "Couldn't dump database" _logger.info('DUMP DB successful: %s', db_name) @@ -252,7 +253,7 @@ class db(netsvc.ExportService): self._set_pg_psw_env_var() if self.exp_db_exist(db_name): - _logger.warning('RESTORE DB: %s already exists' % (db_name,)) + _logger.warning('RESTORE DB: %s already exists', db_name) raise Exception, "Database already exists" self._create_empty_database(db_name) @@ -281,7 +282,7 @@ class db(netsvc.ExportService): res = stdout.close() if res: raise Exception, "Couldn't restore database" - _logger.info('RESTORE DB: %s' % (db_name)) + _logger.info('RESTORE DB: %s', db_name) return True finally: @@ -464,8 +465,7 @@ GNU Public Licence. backup_directory = os.path.join(tools.config['root_path'], 'backup', time.strftime('%Y-%m-%d-%H-%M')) if zips and not os.path.isdir(backup_directory): - _logger.info('create a new backup directory to \ - store the old modules: %s', backup_directory) + _logger.info('create a new backup directory to store the old modules: %s', backup_directory) os.makedirs(backup_directory) for module in zips: @@ -525,11 +525,11 @@ GNU Public Licence. 'OS Name : %s\n' \ %(platform.platform(), platform.os.name) if os.name == 'posix': - if platform.system() == 'Linux': - lsbinfo = os.popen('lsb_release -a').read() - environment += '%s'%(lsbinfo) - else: - environment += 'Your System is not lsb compliant\n' + if platform.system() == 'Linux': + lsbinfo = os.popen('lsb_release -a').read() + environment += '%s'%(lsbinfo) + else: + environment += 'Your System is not lsb compliant\n' environment += 'Operating System Release : %s\n' \ 'Operating System Version : %s\n' \ 'Operating System Architecture : %s\n' \ @@ -694,7 +694,7 @@ class report_spool(netsvc.ExportService): self._reports[id]['state'] = True except Exception, exception: - _logger.exception('Exception: %s\n', str(exception)) + _logger.exception('Exception: %s\n', exception) if hasattr(exception, 'name') and hasattr(exception, 'value'): self._reports[id]['exception'] = openerp.exceptions.DeferredException(tools.ustr(exception.name), tools.ustr(exception.value)) else: @@ -731,7 +731,7 @@ class report_spool(netsvc.ExportService): self._reports[id]['format'] = format self._reports[id]['state'] = True except Exception, exception: - _logger.exception('Exception: %s\n', str(exception)) + _logger.exception('Exception: %s\n', exception) if hasattr(exception, 'name') and hasattr(exception, 'value'): self._reports[id]['exception'] = openerp.exceptions.DeferredException(tools.ustr(exception.name), tools.ustr(exception.value)) else: diff --git a/openerp/tests/__init__.py b/openerp/tests/__init__.py index d3ab62ebc1c..aa3055f471c 100644 --- a/openerp/tests/__init__.py +++ b/openerp/tests/__init__.py @@ -9,7 +9,7 @@ See the :ref:`test-framework` section in the :ref:`features` list. """ from . import test_expression, test_html_sanitize, test_ir_sequence, test_orm,\ - test_view_validation, test_uninstall + test_view_validation, test_uninstall, test_misc fast_suite = [ test_ir_sequence, @@ -20,6 +20,7 @@ checks = [ test_html_sanitize, test_orm, test_view_validation, + test_misc, ] # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/openerp/tests/addons/test_impex/tests/test_import.py b/openerp/tests/addons/test_impex/tests/test_import.py index 4712d53feff..03507ee7012 100644 --- a/openerp/tests/addons/test_impex/tests/test_import.py +++ b/openerp/tests/addons/test_impex/tests/test_import.py @@ -716,6 +716,15 @@ class test_m2m(ImporterCase): class test_o2m(ImporterCase): model_name = 'export.one2many' + def test_name_get(self): + # FIXME: bloody hell why can't this just name_create the record? + self.assertRaises( + IndexError, + self.import_, + ['const', 'value'], + [['5', u'Java is a DSL for taking large XML files' + u' and converting them to stack traces']]) + def test_single(self): self.assertEqual( self.import_(['const', 'value/value'], [ diff --git a/openerp/tests/addons/test_limits/models.py b/openerp/tests/addons/test_limits/models.py index 5240acd23ab..32e2a9a16f4 100644 --- a/openerp/tests/addons/test_limits/models.py +++ b/openerp/tests/addons/test_limits/models.py @@ -27,7 +27,6 @@ class m(openerp.osv.osv.Model): return True def consume_cpu_time(self, cr, uid, seconds, context=None): - import os t0 = time.clock() t1 = time.clock() while t1 - t0 < seconds: diff --git a/openerp/tests/test_html_sanitize.py b/openerp/tests/test_html_sanitize.py index 90ccc88cc1d..cb46b325144 100755 --- a/openerp/tests/test_html_sanitize.py +++ b/openerp/tests/test_html_sanitize.py @@ -26,11 +26,15 @@ class TestSanitizer(unittest.TestCase): def test_simple(self): x = "yop" self.assertEqual(x, html_sanitize(x)) + + def test_trailing_text(self): + x = 'lala<p>yop</p>xxx' + self.assertEqual(x, html_sanitize(x)) - def test_test_case(self): + def test_no_exception(self): html_sanitize(test_case) - def test_crm(self): + def test_unicode(self): html_sanitize("Merci à l'intérêt pour notre produit.nous vous contacterons bientôt. Merci") if __name__ == '__main__': diff --git a/openerp/tests/test_ir_sequence.py b/openerp/tests/test_ir_sequence.py index b1076e830ee..cbb1a347038 100644 --- a/openerp/tests/test_ir_sequence.py +++ b/openerp/tests/test_ir_sequence.py @@ -186,7 +186,7 @@ class test_ir_sequence_generate(unittest2.TestCase): cr = cursor() f = lambda *a: registry('ir.sequence').next_by_code(cr, ADMIN_USER_ID, 'test_sequence_type_5', {}) - assert all(str(x) == f() for x in xrange(1,1000)) + assert all(str(x) == f() for x in xrange(1,10)) cr.commit() cr.close() @@ -204,7 +204,7 @@ class test_ir_sequence_generate(unittest2.TestCase): cr = cursor() f = lambda *a: registry('ir.sequence').next_by_code(cr, ADMIN_USER_ID, 'test_sequence_type_6', {}) - assert all(str(x) == f() for x in xrange(1,1000)) + assert all(str(x) == f() for x in xrange(1,10)) cr.commit() cr.close() diff --git a/openerp/tests/test_misc.py b/openerp/tests/test_misc.py new file mode 100644 index 00000000000..7661f253b17 --- /dev/null +++ b/openerp/tests/test_misc.py @@ -0,0 +1,21 @@ +# This test can be run stand-alone with something like: +# > PYTHONPATH=. python2 openerp/tests/test_misc.py + +import unittest2 + +class test_misc(unittest2.TestCase): + """ Test some of our generic utility functions """ + + def test_append_to_html(self): + from openerp.tools import append_content_to_html + test_samples = [ + ('<!DOCTYPE...><HTML encoding="blah">some <b>content</b></HtMl>', '--\nYours truly', True, + '<!DOCTYPE...><html encoding="blah">some <b>content</b>\n<pre>--\nYours truly</pre>\n</html>'), + ('<html><body>some <b>content</b></body></html>', '<!DOCTYPE...>\n<html><body>\n<p>--</p>\n<p>Yours truly</p>\n</body>\n</html>', False, + '<html><body>some <b>content</b>\n\n\n<p>--</p>\n<p>Yours truly</p>\n\n\n</body></html>'), + ] + for html, content, flag, expected in test_samples: + self.assertEqual(append_content_to_html(html,content,flag), expected, 'append_content_to_html is broken') + +if __name__ == '__main__': + unittest2.main() \ No newline at end of file diff --git a/openerp/tests/test_orm.py b/openerp/tests/test_orm.py index ea9b37e5f3b..bce5bc3903a 100644 --- a/openerp/tests/test_orm.py +++ b/openerp/tests/test_orm.py @@ -1,4 +1,3 @@ -import os import unittest2 import openerp @@ -15,6 +14,10 @@ LINK_TO = lambda id: (4, id, False) DELETE_ALL = lambda: (5, False, False) REPLACE_WITH = lambda ids: (6, False, ids) +def sorted_by_id(list_of_dicts): + "sort dictionaries by their 'id' field; useful for comparisons" + return sorted(list_of_dicts, key=lambda d: d.get('id')) + class TestO2MSerialization(common.TransactionCase): def setUp(self): @@ -23,21 +26,18 @@ class TestO2MSerialization(common.TransactionCase): def test_no_command(self): " empty list of commands yields an empty list of records " - results = self.partner.resolve_o2m_commands_to_record_dicts( + results = self.partner.resolve_2many_commands( self.cr, UID, 'address', []) self.assertEqual(results, []) def test_CREATE_commands(self): " returns the VALUES dict as-is " - results = self.partner.resolve_o2m_commands_to_record_dicts( - self.cr, UID, 'address', - map(CREATE, [{'foo': 'bar'}, {'foo': 'baz'}, {'foo': 'baq'}])) - self.assertEqual(results, [ - {'foo': 'bar'}, - {'foo': 'baz'}, - {'foo': 'baq'} - ]) + values = [{'foo': 'bar'}, {'foo': 'baz'}, {'foo': 'baq'}] + results = self.partner.resolve_2many_commands( + self.cr, UID, 'address', map(CREATE, values)) + + self.assertEqual(results, values) def test_LINK_TO_command(self): " reads the records from the database, records are returned with their ids. " @@ -48,14 +48,14 @@ class TestO2MSerialization(common.TransactionCase): ] commands = map(LINK_TO, ids) - results = self.partner.resolve_o2m_commands_to_record_dicts( + results = self.partner.resolve_2many_commands( self.cr, UID, 'address', commands, ['name']) - self.assertEqual(results, [ + self.assertEqual(sorted_by_id(results), sorted_by_id([ {'id': ids[0], 'name': 'foo'}, {'id': ids[1], 'name': 'bar'}, {'id': ids[2], 'name': 'baz'} - ]) + ])) def test_bare_ids_command(self): " same as the equivalent LINK_TO commands " @@ -65,14 +65,14 @@ class TestO2MSerialization(common.TransactionCase): self.partner.create(self.cr, UID, {'name': 'baz'}) ] - results = self.partner.resolve_o2m_commands_to_record_dicts( + results = self.partner.resolve_2many_commands( self.cr, UID, 'address', ids, ['name']) - self.assertEqual(results, [ + self.assertEqual(sorted_by_id(results), sorted_by_id([ {'id': ids[0], 'name': 'foo'}, {'id': ids[1], 'name': 'bar'}, {'id': ids[2], 'name': 'baz'} - ]) + ])) def test_UPDATE_command(self): " take the in-db records and merge the provided information in " @@ -80,18 +80,32 @@ class TestO2MSerialization(common.TransactionCase): id_bar = self.partner.create(self.cr, UID, {'name': 'bar'}) id_baz = self.partner.create(self.cr, UID, {'name': 'baz', 'city': 'tag'}) - results = self.partner.resolve_o2m_commands_to_record_dicts( + results = self.partner.resolve_2many_commands( self.cr, UID, 'address', [ LINK_TO(id_foo), UPDATE(id_bar, {'name': 'qux', 'city': 'tagtag'}), UPDATE(id_baz, {'name': 'quux'}) ], ['name', 'city']) - self.assertEqual(results, [ + self.assertEqual(sorted_by_id(results), sorted_by_id([ {'id': id_foo, 'name': 'foo', 'city': False}, {'id': id_bar, 'name': 'qux', 'city': 'tagtag'}, {'id': id_baz, 'name': 'quux', 'city': 'tag'} - ]) + ])) + + def test_DELETE_command(self): + " deleted records are not returned at all. " + ids = [ + self.partner.create(self.cr, UID, {'name': 'foo'}), + self.partner.create(self.cr, UID, {'name': 'bar'}), + self.partner.create(self.cr, UID, {'name': 'baz'}) + ] + commands = [DELETE(ids[0]), DELETE(ids[1]), DELETE(ids[2])] + + results = self.partner.resolve_2many_commands( + self.cr, UID, 'address', commands, ['name']) + + self.assertEqual(results, []) def test_mixed_commands(self): ids = [ @@ -99,28 +113,27 @@ class TestO2MSerialization(common.TransactionCase): for name in ['NObar', 'baz', 'qux', 'NOquux', 'NOcorge', 'garply'] ] - results = self.partner.resolve_o2m_commands_to_record_dicts( + results = self.partner.resolve_2many_commands( self.cr, UID, 'address', [ CREATE({'name': 'foo'}), UPDATE(ids[0], {'name': 'bar'}), LINK_TO(ids[1]), - LINK_TO(ids[2]), + DELETE(ids[2]), UPDATE(ids[3], {'name': 'quux',}), UPDATE(ids[4], {'name': 'corge'}), CREATE({'name': 'grault'}), LINK_TO(ids[5]) ], ['name']) - self.assertEqual(results, [ + self.assertEqual(sorted_by_id(results), sorted_by_id([ {'name': 'foo'}, {'id': ids[0], 'name': 'bar'}, {'id': ids[1], 'name': 'baz'}, - {'id': ids[2], 'name': 'qux'}, {'id': ids[3], 'name': 'quux'}, {'id': ids[4], 'name': 'corge'}, {'name': 'grault'}, {'id': ids[5], 'name': 'garply'} - ]) + ])) def test_LINK_TO_pairs(self): "LINK_TO commands can be written as pairs, instead of triplets" @@ -131,43 +144,20 @@ class TestO2MSerialization(common.TransactionCase): ] commands = map(lambda id: (4, id), ids) - results = self.partner.resolve_o2m_commands_to_record_dicts( + results = self.partner.resolve_2many_commands( self.cr, UID, 'address', commands, ['name']) - self.assertEqual(results, [ + self.assertEqual(sorted_by_id(results), sorted_by_id([ {'id': ids[0], 'name': 'foo'}, {'id': ids[1], 'name': 'bar'}, {'id': ids[2], 'name': 'baz'} - ]) + ])) def test_singleton_commands(self): "DELETE_ALL can appear as a singleton" + results = self.partner.resolve_2many_commands( + self.cr, UID, 'address', [DELETE_ALL()], ['name']) - try: - self.partner.resolve_o2m_commands_to_record_dicts( - self.cr, UID, 'address', [(5,)], ['name']) - except AssertionError: - # 5 should fail with an assert error, but not e.g. a ValueError - pass - - def test_invalid_commands(self): - "Commands with uncertain semantics in this context should be forbidden" - - with self.assertRaises(AssertionError): - self.partner.resolve_o2m_commands_to_record_dicts( - self.cr, UID, 'address', [DELETE(42)], ['name']) - - with self.assertRaises(AssertionError): - self.partner.resolve_o2m_commands_to_record_dicts( - self.cr, UID, 'address', [FORGET(42)], ['name']) - - with self.assertRaises(AssertionError): - self.partner.resolve_o2m_commands_to_record_dicts( - self.cr, UID, 'address', [DELETE_ALL()], ['name']) - - with self.assertRaises(AssertionError): - self.partner.resolve_o2m_commands_to_record_dicts( - self.cr, UID, 'address', [REPLACE_WITH([42])], ['name']) - + self.assertEqual(results, []) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/openerp/tiny_socket.py b/openerp/tiny_socket.py index b4bed83a4c0..b5f5bbccee3 100644 --- a/openerp/tiny_socket.py +++ b/openerp/tiny_socket.py @@ -22,12 +22,15 @@ import socket import cPickle import cStringIO -import marshal import netsvc #.apidoc title: Net-RPC classes +# Pickle protocol version 2 is optimized compared to default (version 0) +PICKLE_PROTOCOL = 2 + + class Myexception(Exception): """ custom exception object store @@ -63,20 +66,19 @@ class mysocket: netsvc.close_socket(self.sock) def mysend(self, msg, exception=False, traceback=None): - msg = cPickle.dumps([msg,traceback]) - self.sock.sendall('%8d%s%s' % (len(msg), exception and "1" or "0", msg)) + msg = cPickle.dumps([msg, traceback], PICKLE_PROTOCOL) + self.sock.sendall('%8d%d%s' % (len(msg), bool(exception), msg)) def myreceive(self): buf='' - while len(buf) < 8: - chunk = self.sock.recv(8 - len(buf)) + while len(buf) < 9: + chunk = self.sock.recv(9 - len(buf)) if not chunk: raise socket.timeout buf += chunk - size = int(buf) - buf = self.sock.recv(1) - if buf != "0": - exception = buf + size = int(buf[:8]) + if buf[8] != "0": + exception = buf[8] else: exception = False msg = '' diff --git a/openerp/tools/amount_to_text_en.py b/openerp/tools/amount_to_text_en.py index 9a1ac939e6b..97d690c70e2 100644 --- a/openerp/tools/amount_to_text_en.py +++ b/openerp/tools/amount_to_text_en.py @@ -88,8 +88,8 @@ def amount_to_text(number, currency): end_word = english_number(int(list[1])) cents_number = int(list[1]) cents_name = (cents_number > 1) and 'Cents' or 'Cent' - final_result = start_word +' '+units_name+' and ' + end_word +' '+cents_name - return final_result + + return ' '.join(filter(None, [start_word, units_name, (start_word or units_name) and (end_word or cents_name) and 'and', end_word, cents_name])) #------------------------------------------------------------- diff --git a/openerp/tools/html_sanitize.py b/openerp/tools/html_sanitize.py index 6763b464ab1..6ea7b90e2ba 100644 --- a/openerp/tools/html_sanitize.py +++ b/openerp/tools/html_sanitize.py @@ -1,62 +1,92 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Business Applications +# Copyright (C) 2012 OpenERP S.A. (<http://openerp.com>). +# +# 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 <http://www.gnu.org/licenses/>. +# +############################################################################## +import lxml.html +import operator import re -def html_sanitize(x): - return x # It seems that our test suite doesn't care. - if not x: - return x - root = pq("<div />") - if type(x) == str: - x = unicode(x, "utf8", "replace") - root.html(x) - result = handle_element(root[0]) - new = pq(result) - return new.html() +from openerp.loglevels import ustr +def html_sanitize(src): + if not src: + return src + src = ustr(src, errors='replace') + root = lxml.html.fromstring(u"<div>%s</div>" % src) + result = handle_element(root) + res = [] + for element in children(result[0]): + if isinstance(element, basestring): + res.append(element) + else: + element.tail = "" + res.append(lxml.html.tostring(element)) + return ''.join(res) + +# FIXME: shouldn't this be a whitelist rather than a blacklist?! to_remove = set(["script", "head", "meta", "title", "link", "img"]) to_unwrap = set(["html", "body"]) -javascript_regex = re.compile("""^\s*javascript\s*\:.*$""") +javascript_regex = re.compile(r"^\s*javascript\s*:.*$", re.IGNORECASE) + def handle_a(el, new): href = el.get("href", "#") if javascript_regex.search(href): href = "#" new.set("href", href) + special = { "a": handle_a, } -def handle_element(el): - if type(el) == str or type(el) == unicode: - return [el] - if el.tag in to_remove: +def handle_element(element): + if isinstance(element, basestring): + return [element] + if element.tag in to_remove: return [] - if el.tag in to_unwrap: - return reduce(lambda x,y: x+y, [handle_element(x) for x in children(el)]) - new = pq("<%s />" % el.tag)[0] - for i in children(el): - append_to(handle_element(i), new) - if el.tag in special: - special[el.tag](el, new) - return [new] - -def children(el): + if element.tag in to_unwrap: + return reduce(operator.add, [handle_element(x) for x in children(element)]) + result = lxml.html.fromstring("<%s />" % element.tag) + for c in children(element): + append_to(handle_element(c), result) + if element.tag in special: + special[element.tag](element, result) + return [result] + +def children(node): res = [] - if el.text is not None: - res.append(el.text) - for i in el.getchildren(): - res.append(i) - if i.tail is not None: - res.append(i.tail) + if node.text is not None: + res.append(node.text) + for child_node in node.getchildren(): + res.append(child_node) + if child_node.tail is not None: + res.append(child_node.tail) return res -def append_to(new_ones, el): - for i in new_ones: - if type(i) == str or type(i) == unicode: - children = el.getchildren() +def append_to(elements, dest_node): + for element in elements: + if isinstance(element, basestring): + children = dest_node.getchildren() if len(children) == 0: - el.text = i + dest_node.text = element else: - children[-1].tail = i + children[-1].tail = element else: - el.append(i) + dest_node.append(element) diff --git a/openerp/tools/image.py b/openerp/tools/image.py index 1caafb23a18..f673906f328 100644 --- a/openerp/tools/image.py +++ b/openerp/tools/image.py @@ -20,9 +20,12 @@ ############################################################################## import io -from PIL import Image import StringIO +from PIL import Image +from PIL import ImageFilter +from random import random + # ---------------------------------------- # Image resizing # ---------------------------------------- @@ -47,15 +50,17 @@ def image_resize_image(base64_source, size=(1024, 1024), encoding='base64', file image. - past the thumbnail on the transparent background and center it. - + :param base64_source: base64-encoded version of the source - image + image; if False, returns False :param size: tuple(height, width) :param encoding: the output encoding :param filetype: the output filetype :param avoid_if_small: do not resize if image height and width are smaller than the expected size. """ + if not base64_source: + return False image_stream = io.BytesIO(base64_source.decode(encoding)) image = Image.open(image_stream) # check image size: do not create a thumbnail if avoiding smaller images @@ -63,6 +68,7 @@ def image_resize_image(base64_source, size=(1024, 1024), encoding='base64', file return base64_source # create a thumbnail: will resize and keep ratios image.thumbnail(size, Image.ANTIALIAS) + image = image.filter(ImageFilter.SHARPEN) # create a transparent image for background background = Image.new('RGBA', size, (255, 255, 255, 0)) # past the resized image on the background @@ -72,42 +78,57 @@ def image_resize_image(base64_source, size=(1024, 1024), encoding='base64', file background.save(background_stream, filetype) return background_stream.getvalue().encode(encoding) -def image_resize_image_big(base64_source, size=(1204, 1204), encoding='base64', filetype='PNG'): +def image_resize_image_big(base64_source, size=(1204, 1204), encoding='base64', filetype='PNG', avoid_if_small=True): """ Wrapper on image_resize_image, to resize images larger than the standard 'big' image size: 1024x1024px. - :param base64_source: base64 encoded source image. If False, - the function returns False. + :param size, encoding, filetype, avoid_if_small: refer to image_resize_image """ - if not base64_source: - return False - return image_resize_image(base64_source, size, encoding, filetype, True) + return image_resize_image(base64_source, size, encoding, filetype, avoid_if_small) -def image_resize_image_medium(base64_source, size=(180, 180), encoding='base64', filetype='PNG'): +def image_resize_image_medium(base64_source, size=(128, 128), encoding='base64', filetype='PNG', avoid_if_small=False): """ Wrapper on image_resize_image, to resize to the standard 'medium' image size: 180x180. - :param base64_source: base64 encoded source image. If False, - the function returns False. + :param size, encoding, filetype, avoid_if_small: refer to image_resize_image """ - if not base64_source: - return False - return image_resize_image(base64_source, size, encoding, filetype) - -def image_resize_image_small(base64_source, size=(50, 50), encoding='base64', filetype='PNG'): + return image_resize_image(base64_source, size, encoding, filetype, avoid_if_small) + +def image_resize_image_small(base64_source, size=(64, 64), encoding='base64', filetype='PNG', avoid_if_small=False): """ Wrapper on image_resize_image, to resize to the standard 'small' image size: 50x50. - :param base64_source: base64 encoded source image. If False, - the function returns False. + :param size, encoding, filetype, avoid_if_small: refer to image_resize_image """ - if not base64_source: - return False - return image_resize_image(base64_source, size, encoding, filetype) + return image_resize_image(base64_source, size, encoding, filetype, avoid_if_small) + +# ---------------------------------------- +# Colors +# --------------------------------------- + +def image_colorize(original, randomize=True, color=(255, 255, 255)): + """ Add a color to the transparent background of an image. + :param original: file object on the original image file + :param randomize: randomize the background color + :param color: background-color, if not randomize + """ + # create a new image, based on the original one + original = Image.open(io.BytesIO(original)) + image = Image.new('RGB', original.size) + # generate the background color, past it as background + if randomize: + color = (int(random() * 192 + 32), int(random() * 192 + 32), int(random() * 192 + 32)) + image.paste(color) + image.paste(original, mask=original) + # return the new image + buffer = StringIO.StringIO() + image.save(buffer, 'PNG') + return buffer.getvalue() # ---------------------------------------- # Misc image tools # --------------------------------------- def image_get_resized_images(base64_source, return_big=False, return_medium=True, return_small=True, - big_name='image', medium_name='image_medium', small_name='image_small'): + big_name='image', medium_name='image_medium', small_name='image_small', + avoid_resize_big=True, avoid_resize_medium=False, avoid_resize_small=False): """ Standard tool function that returns a dictionary containing the big, medium and small versions of the source image. This function is meant to be used for the methods of functional fields for @@ -116,24 +137,22 @@ def image_get_resized_images(base64_source, return_big=False, return_medium=True Default parameters are given to be used for the getter of functional image fields, for example with res.users or res.partner. It returns only image_medium and image_small values, to update those fields. - - :param base64_source: if set to False, other values are set to False - also. The purpose is to be linked to the fields that hold images in - OpenERP and that are binary fields. - :param return_big: if set, return_dict contains the 'big_name' entry - :param return_medium: if set, return_dict contains the 'medium_name' entry - :param return_small: if set, return_dict contains the 'small_name' entry - :param big_name: name related to the big version of the image; - 'image' by default. - :param medium_name: name related to the medium version of the - image; 'image_medium' by default. - :param small_name: name related to the small version of the - image; 'image_small' by default. + + :param base64_source: base64-encoded version of the source + image; if False, all returnes values will be False + :param return_{..}: if set, computes and return the related resizing + of the image + :param {..}_name: key of the resized image in the return dictionary; + 'image', 'image_medium' and 'image_small' by default. + :param avoid_resize_[..]: see avoid_if_small parameter :return return_dict: dictionary with resized images, depending on previous parameters. """ return_dict = dict() - if return_big: return_dict[big_name] = image_resize_image_big(base64_source) - if return_medium: return_dict[medium_name] = image_resize_image_medium(base64_source) - if return_small: return_dict[small_name] = image_resize_image_small(base64_source) - return return_dict \ No newline at end of file + if return_big: + return_dict[big_name] = image_resize_image_big(base64_source, avoid_if_small=avoid_resize_big) + if return_medium: + return_dict[medium_name] = image_resize_image_medium(base64_source, avoid_if_small=avoid_resize_medium) + if return_small: + return_dict[small_name] = image_resize_image_small(base64_source, avoid_if_small=avoid_resize_small) + return return_dict diff --git a/openerp/tools/misc.py b/openerp/tools/misc.py index 7763b3af3b2..9a7b3499425 100644 --- a/openerp/tools/misc.py +++ b/openerp/tools/misc.py @@ -134,7 +134,7 @@ def file_open(name, mode="r", subdir='addons', pathinfo=False): @param name name of the file @param mode file open mode @param subdir subdirectory - @param pathinfo if True returns tupple (fileobject, filepath) + @param pathinfo if True returns tuple (fileobject, filepath) @return fileobject if pathinfo is False else (fileobject, filepath) """ @@ -142,44 +142,60 @@ def file_open(name, mode="r", subdir='addons', pathinfo=False): adps = addons.module.ad_paths rtp = os.path.normcase(os.path.abspath(config['root_path'])) - if name.replace(os.path.sep, '/').startswith('addons/'): + if os.path.isabs(name): + # It is an absolute path + # Is it below 'addons_path' or 'root_path'? + name = os.path.normcase(os.path.normpath(name)) + for root in adps + [rtp]: + if name.startswith(root): + base = root.rstrip(os.sep) + name = name[len(base) + 1:] + break + else: + # It is outside the OpenERP root: skip zipfile lookup. + base, name = os.path.split(name) + return _fileopen(name, mode=mode, basedir=base, pathinfo=pathinfo) + + if name.replace(os.sep, '/').startswith('addons/'): subdir = 'addons' - name = name[7:] + name2 = name[7:] + elif subdir: + name = os.path.join(subdir, name) + if name.replace(os.sep, '/').startswith('addons/'): + subdir = 'addons' + name2 = name[7:] + else: + name2 = name - # First try to locate in addons_path + # First, try to locate in addons_path if subdir: - subdir2 = subdir - if subdir2.replace(os.path.sep, '/').startswith('addons/'): - subdir2 = subdir2[7:] - - subdir2 = (subdir2 != 'addons' or None) and subdir2 - for adp in adps: try: - if subdir2: - fn = os.path.join(adp, subdir2, name) - else: - fn = os.path.join(adp, name) - fn = os.path.normpath(fn) - fo = file_open(fn, mode=mode, subdir=None, pathinfo=pathinfo) - if pathinfo: - return fo, fn - return fo + return _fileopen(name2, mode=mode, basedir=adp, + pathinfo=pathinfo) except IOError: pass - if subdir: - name = os.path.join(rtp, subdir, name) - else: - name = os.path.join(rtp, name) + # Second, try to locate in root_path + return _fileopen(name, mode=mode, basedir=rtp, pathinfo=pathinfo) - name = os.path.normpath(name) - # Check for a zipfile in the path - head = name +def _fileopen(path, mode, basedir, pathinfo): + name = os.path.normpath(os.path.join(basedir, path)) + # Give higher priority to module directories, which is + # a more common case than zipped modules. + if os.path.isfile(name): + fo = open(name, mode) + if pathinfo: + return (fo, name) + return fo + + # Support for loading modules in zipped form. + # This will not work for zipped modules that are sitting + # outside of known addons paths. + head = os.path.normpath(path) zipname = False - name2 = False - while True: + while os.sep in head: head, tail = os.path.split(head) if not tail: break @@ -187,9 +203,10 @@ def file_open(name, mode="r", subdir='addons', pathinfo=False): zipname = os.path.join(tail, zipname) else: zipname = tail - if zipfile.is_zipfile(head+'.zip'): + zpath = os.path.join(basedir, head + '.zip') + if zipfile.is_zipfile(zpath): from cStringIO import StringIO - zfile = zipfile.ZipFile(head+'.zip') + zfile = zipfile.ZipFile(zpath) try: fo = StringIO() fo.write(zfile.read(os.path.join( @@ -197,20 +214,14 @@ def file_open(name, mode="r", subdir='addons', pathinfo=False): os.sep, '/'))) fo.seek(0) if pathinfo: - return fo, name + return (fo, name) return fo except Exception: - name2 = os.path.normpath(os.path.join(head + '.zip', zipname)) pass - for i in (name2, name): - if i and os.path.isfile(i): - fo = file(i, mode) - if pathinfo: - return fo, i - return fo - if os.path.splitext(name)[1] == '.rml': - raise IOError, 'Report %s doesn\'t exist or deleted : ' %str(name) - raise IOError, 'File not found : %s' % name + # Not found + if name.endswith('.rml'): + raise IOError('Report %r doesn\'t exist or deleted' % name) + raise IOError('File not found: %s' % name) #---------------------------------------------------------- @@ -395,6 +406,42 @@ def email_send(email_from, email_to, subject, body, email_cc=None, email_bcc=Non cr.close() return res +def email_split(text): + """ Return a list of the email addresses found in ``text`` """ + if not text: return [] + return re.findall(r'([^ ,<@]+@[^> ,]+)', text) + +def append_content_to_html(html, content, plaintext=True): + """Append extra content at the end of an HTML snippet, trying + to locate the end of the HTML document (</body>, </html>, or + EOF), and wrapping the provided content in a <pre/> block + unless ``plaintext`` is False. A side-effect of this + method is to coerce all HTML tags to lowercase in ``html``, + and strip enclosing <html> or <body> tags in content if + ``plaintext`` is False. + + :param str html: html tagsoup (doesn't have to be XHTML) + :param str content: extra content to append + :param bool plaintext: whether content is plaintext and should + be wrapped in a <pre/> tag. + """ + html = ustr(html) + if plaintext: + content = u'\n<pre>%s</pre>\n' % ustr(content) + else: + content = re.sub(r'(?i)(</?html.*>|</?body.*>|<!\W*DOCTYPE.*>)', '', content) + content = u'\n%s\n'% ustr(content) + # Force all tags to lowercase + html = re.sub(r'(</?)\W*(\w+)([ >])', + lambda m: '%s%s%s' % (m.group(1),m.group(2).lower(),m.group(3)), html) + insert_location = html.find('</body>') + if insert_location == -1: + insert_location = html.find('</html>') + if insert_location == -1: + return '%s%s' % (html, content) + return '%s%s%s' % (html[:insert_location], content, html[insert_location:]) + + #---------------------------------------------------------- # SMS #---------------------------------------------------------- diff --git a/openerp/tools/translate.py b/openerp/tools/translate.py index eb5dbe24077..5239b37bd2d 100644 --- a/openerp/tools/translate.py +++ b/openerp/tools/translate.py @@ -43,6 +43,7 @@ import misc from misc import UpdateableStr from misc import SKIPPED_ELEMENT_TYPES import osutil +from openerp import SUPERUSER_ID _logger = logging.getLogger(__name__) @@ -214,7 +215,7 @@ class GettextAlias(object): if cr: # Try to use ir.translation to benefit from global cache if possible pool = pooler.get_pool(cr.dbname) - res = pool.get('ir.translation')._get_source(cr, 1, None, ('code','sql_constraint'), lang, source) + res = pool.get('ir.translation')._get_source(cr, SUPERUSER_ID, None, ('code','sql_constraint'), lang, source) else: _logger.debug('no context cursor detected, skipping translation for "%r"', source) else: @@ -872,7 +873,7 @@ def trans_load_data(cr, fileobj, fileformat, lang, lang_name=None, verbose=True, if not ids: # lets create the language with locale information - lang_obj.load_lang(cr, 1, lang=lang, lang_name=lang_name) + lang_obj.load_lang(cr, SUPERUSER_ID, lang=lang, lang_name=lang_name) # now, the serious things: we read the language file diff --git a/openerp/tools/yaml_import.py b/openerp/tools/yaml_import.py index 57af9e45e89..f487070fea0 100644 --- a/openerp/tools/yaml_import.py +++ b/openerp/tools/yaml_import.py @@ -13,6 +13,7 @@ import yaml_tag import yaml import re from lxml import etree +from openerp import SUPERUSER_ID # YAML import needs both safe and unsafe eval, but let's # default to /safe/. @@ -286,20 +287,20 @@ class YamlInterpreter(object): view_id = record.view if view_id and (view_id is not True): - view_id = self.pool.get('ir.model.data').get_object_reference(self.cr, 1, self.module, record.view)[1] + view_id = self.pool.get('ir.model.data').get_object_reference(self.cr, SUPERUSER_ID, self.module, record.view)[1] if model.is_transient(): record_dict=self.create_osv_memory_record(record, fields) else: self.validate_xml_id(record.id) try: - self.pool.get('ir.model.data')._get_id(self.cr, 1, self.module, record.id) + self.pool.get('ir.model.data')._get_id(self.cr, SUPERUSER_ID, self.module, record.id) default = False except ValueError: default = True if self.isnoupdate(record) and self.mode != 'init': - id = self.pool.get('ir.model.data')._update_dummy(self.cr, 1, record.model, self.module, record.id) + id = self.pool.get('ir.model.data')._update_dummy(self.cr, SUPERUSER_ID, record.model, self.module, record.id) # check if the resource already existed at the last update if id: self.id_map[record] = int(id) @@ -315,12 +316,12 @@ class YamlInterpreter(object): if view_id: varg = view_id if view_id is True: varg = False - view = model.fields_view_get(self.cr, 1, varg, 'form', context) + view = model.fields_view_get(self.cr, SUPERUSER_ID, varg, 'form', context) view_id = etree.fromstring(view['arch'].encode('utf-8')) record_dict = self._create_record(model, fields, view_id, default=default) _logger.debug("RECORD_DICT %s" % record_dict) - id = self.pool.get('ir.model.data')._update(self.cr, 1, record.model, \ + id = self.pool.get('ir.model.data')._update(self.cr, SUPERUSER_ID, record.model, \ self.module, record_dict, record.id, noupdate=self.isnoupdate(record), mode=self.mode, context=context) self.id_map[record.id] = int(id) if config.get('import_partial'): @@ -328,8 +329,8 @@ class YamlInterpreter(object): def _create_record(self, model, fields, view=False, parent={}, default=True): if view is not False: - defaults = default and model._add_missing_default_values(self.cr, 1, {}, context=self.context) or {} - fg = model.fields_get(self.cr, 1, context=self.context) + defaults = default and model._add_missing_default_values(self.cr, SUPERUSER_ID, {}, context=self.context) or {} + fg = model.fields_get(self.cr, SUPERUSER_ID, context=self.context) else: defaults = {} fg = {} @@ -360,7 +361,7 @@ class YamlInterpreter(object): if (view is not False) and (fg[field_name]['type']=='one2many'): view2 = view.find("field[@name='%s']/form"%(field_name,)) if not view2: - view2 = self.pool.get(fg[field_name]['relation']).fields_view_get(self.cr, 1, False, 'form', self.context) + view2 = self.pool.get(fg[field_name]['relation']).fields_view_get(self.cr, SUPERUSER_ID, False, 'form', self.context) view2 = etree.fromstring(view2['arch'].encode('utf-8')) field_value = self._eval_field(model, field_name, fields[field_name], view2, parent=record_dict, default=default) @@ -395,7 +396,7 @@ class YamlInterpreter(object): # Evaluation args args = map(lambda x: eval(x, ctx), match.group(2).split(',')) - result = getattr(model, match.group(1))(self.cr, 1, [], *args) + result = getattr(model, match.group(1))(self.cr, SUPERUSER_ID, [], *args) for key, val in (result or {}).get('value', {}).items(): if key not in fields: assert key in fg, "The returning field '%s' from your on_change call '%s' does not exist on the object '%s'" % (key, match.group(1), model._name) @@ -491,7 +492,7 @@ class YamlInterpreter(object): python, statements = node.items()[0] model = self.get_model(python.model) statements = statements.replace("\r\n", "\n") - code_context = {'model': model, 'cr': self.cr, 'uid': self.uid, 'log': self._log, 'context': self.context} + code_context = { 'model': model, 'cr': self.cr, 'uid': self.uid, 'log': self._log, 'context': self.context } code_context.update({'self': model}) # remove me when no !python block test uses 'self' anymore try: code_obj = compile(statements, self.filename, 'exec') @@ -655,7 +656,7 @@ class YamlInterpreter(object): self._set_group_values(node, values) - pid = self.pool.get('ir.model.data')._update(self.cr, 1, \ + pid = self.pool.get('ir.model.data')._update(self.cr, SUPERUSER_ID, \ 'ir.ui.menu', self.module, values, node.id, mode=self.mode, \ noupdate=self.isnoupdate(node), res_id=res and res[0] or False) @@ -666,7 +667,7 @@ class YamlInterpreter(object): action_type = node.type or 'act_window' action_id = self.get_id(node.action) action = "ir.actions.%s,%d" % (action_type, action_id) - self.pool.get('ir.model.data').ir_set(self.cr, 1, 'action', \ + self.pool.get('ir.model.data').ir_set(self.cr, SUPERUSER_ID, 'action', \ 'tree_but_open', 'Menuitem', [('ir.ui.menu', int(parent_id))], action, True, True, xml_id=node.id) def process_act_window(self, node): @@ -700,7 +701,7 @@ class YamlInterpreter(object): if node.target: values['target'] = node.target - id = self.pool.get('ir.model.data')._update(self.cr, 1, \ + id = self.pool.get('ir.model.data')._update(self.cr, SUPERUSER_ID, \ 'ir.actions.act_window', self.module, values, node.id, mode=self.mode) self.id_map[node.id] = int(id) @@ -708,7 +709,7 @@ class YamlInterpreter(object): keyword = 'client_action_relate' value = 'ir.actions.act_window,%s' % id replace = node.replace or True - self.pool.get('ir.model.data').ir_set(self.cr, 1, 'action', keyword, \ + self.pool.get('ir.model.data').ir_set(self.cr, SUPERUSER_ID, 'action', keyword, \ node.id, [node.src_model], value, replace=replace, noupdate=self.isnoupdate(node), isobject=True, xml_id=node.id) # TODO add remove ir.model.data @@ -729,7 +730,7 @@ class YamlInterpreter(object): res = {'name': node.name, 'url': node.url, 'target': node.target} - id = self.pool.get('ir.model.data')._update(self.cr, 1, \ + id = self.pool.get('ir.model.data')._update(self.cr, SUPERUSER_ID, \ "ir.actions.url", self.module, res, node.id, mode=self.mode) self.id_map[node.id] = int(id) # ir_set @@ -737,7 +738,7 @@ class YamlInterpreter(object): keyword = node.keyword or 'client_action_multi' value = 'ir.actions.url,%s' % id replace = node.replace or True - self.pool.get('ir.model.data').ir_set(self.cr, 1, 'action', \ + self.pool.get('ir.model.data').ir_set(self.cr, SUPERUSER_ID, 'action', \ keyword, node.url, ["ir.actions.url"], value, replace=replace, \ noupdate=self.isnoupdate(node), isobject=True, xml_id=node.id) @@ -752,7 +753,7 @@ class YamlInterpreter(object): else: value = expression res[fieldname] = value - self.pool.get('ir.model.data').ir_set(self.cr, 1, res['key'], res['key2'], \ + self.pool.get('ir.model.data').ir_set(self.cr, SUPERUSER_ID, res['key'], res['key2'], \ res['name'], res['models'], res['value'], replace=res.get('replace',True), \ isobject=res.get('isobject', False), meta=res.get('meta',None)) @@ -781,7 +782,7 @@ class YamlInterpreter(object): self._set_group_values(node, values) - id = self.pool.get('ir.model.data')._update(self.cr, 1, "ir.actions.report.xml", \ + id = self.pool.get('ir.model.data')._update(self.cr, SUPERUSER_ID, "ir.actions.report.xml", \ self.module, values, xml_id, noupdate=self.isnoupdate(node), mode=self.mode) self.id_map[xml_id] = int(id) @@ -789,7 +790,7 @@ class YamlInterpreter(object): keyword = node.keyword or 'client_print_multi' value = 'ir.actions.report.xml,%s' % id replace = node.replace or True - self.pool.get('ir.model.data').ir_set(self.cr, 1, 'action', \ + self.pool.get('ir.model.data').ir_set(self.cr, SUPERUSER_ID, 'action', \ keyword, values['name'], [values['model']], value, replace=replace, isobject=True, xml_id=xml_id) def process_none(self): @@ -810,8 +811,6 @@ class YamlInterpreter(object): is_preceded_by_comment = self._log_node(node, is_preceded_by_comment) try: self._process_node(node) - except YamlImportException, e: - _logger.exception(e) except Exception, e: _logger.exception(e) raise diff --git a/openerp/wizard/__init__.py b/openerp/wizard/__init__.py index 7354a43498d..debf0f1e74f 100644 --- a/openerp/wizard/__init__.py +++ b/openerp/wizard/__init__.py @@ -31,7 +31,6 @@ import openerp.pooler as pooler from openerp.osv.osv import except_osv from openerp.osv.orm import except_orm -import sys _logger = logging.getLogger(__name__) @@ -168,10 +167,7 @@ class interface(netsvc.Service): or isinstance(e, except_orm): netsvc.abort_response(2, e.name, 'warning', e.value) else: - import traceback - tb_s = reduce(lambda x, y: x+y, traceback.format_exception( - sys.exc_type, sys.exc_value, sys.exc_traceback)) - _logger.error('Exception in call: ' + tb_s) + _logger.exception('Exception in call:') raise return res diff --git a/scripts/run_all_with_tests.sh b/scripts/run_all_with_tests.sh new file mode 100755 index 00000000000..877a5908b1a --- /dev/null +++ b/scripts/run_all_with_tests.sh @@ -0,0 +1,17 @@ +DATABASE=trunk +dropdb ${DATABASE} +REPOSITORIES=../../addons/trunk +MODULES=`python -c "import os; print ','.join(list(set(os.listdir('${REPOSITORIES}')) - set(['document_ftp'])))"` +createdb ${DATABASE} +rm openerp-server.log +./openerp-server \ + --log-level=debug \ + --addons=${REPOSITORIES},../../web/trunk/addons \ + -d ${DATABASE} \ + -i ${MODULES} \ + --stop-after-init \ + --no-xmlrpc \ + --no-xmlrpcs \ + --no-netrpc \ + --test-enable \ + --logfile=openerp-server.log