diff --git a/addons/account/i18n/ru.po b/addons/account/i18n/ru.po index 3554acbbb25..7c0e12834fe 100644 --- a/addons/account/i18n/ru.po +++ b/addons/account/i18n/ru.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2012-05-10 17:32+0000\n" -"Last-Translator: Michael Otcheskih \n" +"PO-Revision-Date: 2012-08-17 11:07+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-07 05:06+0000\n" -"X-Generator: Launchpad (build 15745)\n" +"X-Launchpad-Export-Date: 2012-08-18 04:58+0000\n" +"X-Generator: Launchpad (build 15810)\n" #. module: account #: view:account.invoice.report:0 @@ -9872,7 +9872,7 @@ msgstr "Не определен счет доходов для ТМЦ: \"%s\" (i #. module: account #: constraint:account.move.line:0 msgid "You can not create journal items on closed account." -msgstr "" +msgstr "Нельзя создать элемент журнала по закрытому счету ." #. module: account #: field:account.account,unrealized_gain_loss:0 diff --git a/addons/account_analytic_analysis/i18n/it.po b/addons/account_analytic_analysis/i18n/it.po index 8ccf91b1fd3..c71ad83d9c7 100644 --- a/addons/account_analytic_analysis/i18n/it.po +++ b/addons/account_analytic_analysis/i18n/it.po @@ -7,19 +7,19 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev_rc3\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2011-01-13 18:03+0000\n" -"Last-Translator: Nicola Riolini - Micronaet \n" +"PO-Revision-Date: 2012-08-16 09:05+0000\n" +"Last-Translator: gagarin \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-07 05:14+0000\n" -"X-Generator: Launchpad (build 15745)\n" +"X-Launchpad-Export-Date: 2012-08-17 04:38+0000\n" +"X-Generator: Launchpad (build 15810)\n" #. module: account_analytic_analysis #: field:account.analytic.account,revenue_per_hour:0 msgid "Revenue per Time (real)" -msgstr "" +msgstr "Ricavo orario (reale)" #. module: account_analytic_analysis #: help:account.analytic.account,remaining_ca:0 @@ -38,11 +38,13 @@ msgid "" "The contracts to be renewed because the deadline is passed or the working " "hours are higher than the allocated hours" msgstr "" +"I contratti da rinnovare perchè la scadenza è passata o le ore lavorate sono " +"maggiori delle ore allocate" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Pending contracts to renew with your customer" -msgstr "" +msgstr "Contratti in sospeso da rinnovare con il cliente" #. module: account_analytic_analysis #: help:account.analytic.account,hours_qtt_non_invoiced:0 @@ -50,6 +52,8 @@ msgid "" "Number of time (hours/days) (from journal of type 'general') that can be " "invoiced if you invoice based on analytic account." msgstr "" +"Tempo fatturabile (in ore/giorni, dal giornale di tipo 'generale') se si " +"fattura tramite conto analitico" #. module: account_analytic_analysis #: view:account.analytic.account:0 @@ -59,17 +63,17 @@ msgstr "" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Group By..." -msgstr "" +msgstr "Raggruppa per..." #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "End Date" -msgstr "" +msgstr "Data fine" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Create Invoice" -msgstr "" +msgstr "Crea Fattura" #. module: account_analytic_analysis #: field:account.analytic.account,last_invoice_date:0 @@ -87,16 +91,18 @@ msgid "" "Number of time you spent on the analytic account (from timesheet). It " "computes quantities on all journal of type 'general'." msgstr "" +"Costi orari da attribuire al conto analitico (da timesheet). Calcola " +"quantità su tutti i sezionali di tipo 'generale'." #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Contracts in progress" -msgstr "" +msgstr "Contratti attivi" #. module: account_analytic_analysis #: field:account.analytic.account,is_overdue_quantity:0 msgid "Overdue Quantity" -msgstr "" +msgstr "Quantità Scadute" #. module: account_analytic_analysis #: model:ir.actions.act_window,help:account_analytic_analysis.action_account_analytic_overdue @@ -108,16 +114,22 @@ msgid "" "pending accounts and reopen or close the according to the negotiation with " "the customer." msgstr "" +"Qui troverai i contratti da rinnovare in quanto scaduti o le ore lavorate " +"sono maggiori di quelle allocate. OpenERP imposta automaticamente questi " +"conti analitici in stato sospeso, in modo da notificare un avviso durante la " +"fase di inserimento dei timesheet. I commerciali dovrebbero ricontrollare " +"tutti i contratti sospesi e riaprirli/chiuderli coerentemente con quanto il " +"cliente vuole rinegoziare." #. module: account_analytic_analysis #: field:account.analytic.account,ca_theorical:0 msgid "Theoretical Revenue" -msgstr "Ricavo teorico" +msgstr "Ricavo Teorico" #. module: account_analytic_analysis #: field:account.analytic.account,hours_qtt_non_invoiced:0 msgid "Uninvoiced Time" -msgstr "" +msgstr "Tempo non fatturato" #. module: account_analytic_analysis #: help:account.analytic.account,last_worked_invoiced_date:0 @@ -131,7 +143,7 @@ msgstr "" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "To Renew" -msgstr "" +msgstr "Da Rinnovare" #. module: account_analytic_analysis #: field:account.analytic.account,last_worked_date:0 @@ -141,24 +153,25 @@ msgstr "Data dell'ultimo costo/lavoro" #. module: account_analytic_analysis #: field:account.analytic.account,hours_qtt_invoiced:0 msgid "Invoiced Time" -msgstr "" +msgstr "Tempo Fatturato" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "" "A contract in OpenERP is an analytic account having a partner set on it." msgstr "" +"Un contratto in OpenERP è un conto analitico associato ad un partner." #. module: account_analytic_analysis #: field:account.analytic.account,remaining_hours:0 msgid "Remaining Time" -msgstr "" +msgstr "Tempo rimanente" #. module: account_analytic_analysis #: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_overdue #: model:ir.ui.menu,name:account_analytic_analysis.menu_action_account_analytic_overdue msgid "Contracts to Renew" -msgstr "" +msgstr "Contratti da Rinnovare" #. module: account_analytic_analysis #: field:account.analytic.account,theorical_margin:0 @@ -168,7 +181,7 @@ msgstr "Margine teorico" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid " +1 Month" -msgstr "" +msgstr " +1 Mese" #. module: account_analytic_analysis #: help:account.analytic.account,ca_theorical:0 @@ -184,7 +197,7 @@ msgstr "" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Pending" -msgstr "" +msgstr "In sospeso" #. module: account_analytic_analysis #: field:account.analytic.account,ca_to_invoice:0 @@ -199,7 +212,7 @@ msgstr "Calcolato utilizzando la formula: importo fatturato - totale costi" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Parent" -msgstr "" +msgstr "Mastro" #. module: account_analytic_analysis #: field:account.analytic.account,user_ids:0 @@ -231,7 +244,7 @@ msgstr "Data dell'ultimo costo fatturato" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Contract" -msgstr "" +msgstr "Contratto" #. module: account_analytic_analysis #: field:account.analytic.account,real_margin_rate:0 @@ -266,14 +279,14 @@ msgstr "Reddito rimanente" #. module: account_analytic_analysis #: help:account.analytic.account,remaining_hours:0 msgid "Computed using the formula: Maximum Time - Total Time" -msgstr "" +msgstr "Calcolato usando la formula: Tempo Massimo - Tempo Totale" #. module: account_analytic_analysis #: help:account.analytic.account,hours_qtt_invoiced:0 msgid "" "Number of time (hours/days) that can be invoiced plus those that already " "have been invoiced." -msgstr "" +msgstr "Tempo (ore/giorni) fatturabile più tempo già fatturato." #. module: account_analytic_analysis #: help:account.analytic.account,ca_to_invoice:0 @@ -287,7 +300,7 @@ msgstr "" #. module: account_analytic_analysis #: help:account.analytic.account,revenue_per_hour:0 msgid "Computed using the formula: Invoiced Amount / Total Time" -msgstr "" +msgstr "Calcolato usando la formula: Fatturato / Tempo Totale" #. module: account_analytic_analysis #: field:account.analytic.account,total_cost:0 @@ -312,12 +325,12 @@ msgstr "Contabilità Analitica" #: model:ir.actions.act_window,name:account_analytic_analysis.action_account_analytic_overdue_all #: model:ir.ui.menu,name:account_analytic_analysis.menu_action_account_analytic_overdue_all msgid "Contracts" -msgstr "" +msgstr "Contratti" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Manager" -msgstr "" +msgstr "Manager" #. module: account_analytic_analysis #: model:ir.actions.act_window,name:account_analytic_analysis.action_hr_tree_invoiced_all @@ -328,12 +341,12 @@ msgstr "Voci da Fatturare" #. module: account_analytic_analysis #: help:account.analytic.account,last_invoice_date:0 msgid "If invoice from the costs, this is the date of the latest invoiced." -msgstr "" +msgstr "Se si fattura dai costi, questa è la data dell'ultima fattura." #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Associated Partner" -msgstr "" +msgstr "Partner Associato" #. module: account_analytic_analysis #: view:account.analytic.account:0 @@ -343,7 +356,7 @@ msgstr "" #. module: account_analytic_analysis #: view:account.analytic.account:0 msgid "Contracts that are not assigned to an account manager." -msgstr "" +msgstr "Contratti non assegnati ad un responsabile del cliente" #. module: account_analytic_analysis #: field:account.analytic.account,hours_quantity:0 diff --git a/addons/account_analytic_default/i18n/ru.po b/addons/account_analytic_default/i18n/ru.po index 98ee2f439c2..4a6add5804a 100644 --- a/addons/account_analytic_default/i18n/ru.po +++ b/addons/account_analytic_default/i18n/ru.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2012-02-08 00:35+0000\n" -"PO-Revision-Date: 2010-12-23 13:10+0000\n" +"PO-Revision-Date: 2012-08-17 10:54+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-07 05:17+0000\n" -"X-Generator: Launchpad (build 15745)\n" +"X-Launchpad-Export-Date: 2012-08-18 04:58+0000\n" +"X-Generator: Launchpad (build 15810)\n" #. module: account_analytic_default #: help:account.analytic.default,partner_id:0 @@ -133,7 +133,7 @@ msgstr "Аналитика по умолчанию" #. module: account_analytic_default #: sql_constraint:stock.picking:0 msgid "Reference must be unique per Company!" -msgstr "" +msgstr "Ссылка должна быть уникальна для каждой компании!" #. module: account_analytic_default #: view:account.analytic.default:0 diff --git a/addons/account_voucher/account_voucher.py b/addons/account_voucher/account_voucher.py index fcbe917dc72..f75cda8cdde 100644 --- a/addons/account_voucher/account_voucher.py +++ b/addons/account_voucher/account_voucher.py @@ -1106,7 +1106,8 @@ class account_voucher(osv.osv): # otherwise we use the rates of the system (giving the voucher date in the context) amount_currency = currency_obj.compute(cr, uid, company_currency, line.move_line_id.currency_id.id, move_line['debit']-move_line['credit'], context=ctx) if line.amount == line.amount_unreconciled and line.move_line_id.currency_id.id == voucher_currency: - foreign_currency_diff = line.move_line_id.amount_residual_currency + amount_currency + sign = voucher_brw.type in ('payment', 'purchase') and -1 or 1 + foreign_currency_diff = sign * line.move_line_id.amount_residual_currency + amount_currency move_line['amount_currency'] = amount_currency voucher_line = move_line_obj.create(cr, uid, move_line) diff --git a/addons/auth_oauth/__init__.py b/addons/auth_oauth/__init__.py index c9acce48a16..a56db75633b 100644 --- a/addons/auth_oauth/__init__.py +++ b/addons/auth_oauth/__init__.py @@ -1,3 +1,4 @@ import controllers import auth_oauth import res_users +import res_config diff --git a/addons/auth_oauth/__openerp__.py b/addons/auth_oauth/__openerp__.py index 6c79bba2151..585dc48e11e 100644 --- a/addons/auth_oauth/__openerp__.py +++ b/addons/auth_oauth/__openerp__.py @@ -28,12 +28,13 @@ 'author': 'Victor Tabuenca', 'maintainer': 'OpenERP s.a.', 'website': 'http://www.openerp.com', - 'depends': ['base', 'web'], + 'depends': ['base', 'web', 'base_setup'], 'data': [ - 'auth_oauth_data.xml' + 'auth_oauth_data.xml', ], 'update_xml': [ - 'auth_oauth_view.xml' + 'auth_oauth_view.xml', + 'res_config.xml', ], 'js': [ 'static/src/js/auth_oauth.js', diff --git a/addons/auth_oauth/auth_oauth.py b/addons/auth_oauth/auth_oauth.py index e258505868d..34b6aa44936 100644 --- a/addons/auth_oauth/auth_oauth.py +++ b/addons/auth_oauth/auth_oauth.py @@ -1,6 +1,6 @@ from openerp.osv import osv, fields -class auth_oauth_providers(osv.osv): +class auth_oauth_provider(osv.osv): """Class defining the configuration values of an OAuth2 provider""" _name = 'auth.oauth.provider' @@ -8,15 +8,17 @@ class auth_oauth_providers(osv.osv): _order = 'name' _columns = { - 'name' : fields.char('Provider name', required=True), # Name of the OAuth2 entity, Google, LinkedIn, etc - 'client_id' : fields.char('Client ID', required=True), # Our identifier - 'auth_endpoint' : fields.char('Authentication URL', required=True), # OAuth provider URL to authenticate users + 'name' : fields.char('Provider name'), # Name of the OAuth2 entity, Google, LinkedIn, etc + 'client_id' : fields.char('Client ID'), # Our identifier + 'auth_endpoint' : fields.char('Authentication URL'), # OAuth provider URL to authenticate users 'scope' : fields.char('Scope'), # OAUth user data desired to access 'validation_endpoint' : fields.char('Validation URL'), # OAuth provider URL to validate tokens 'data_endpoint' : fields.char('Data URL'), + 'enabled' : fields.boolean('Allowed'), 'css_class' : fields.char('CSS class'), 'body' : fields.char('Body'), - 'active' : fields.boolean('Active'), 'sequence' : fields.integer(), } - + _defaults = { + 'enabled' : False, + } diff --git a/addons/auth_oauth/auth_oauth_data.xml b/addons/auth_oauth/auth_oauth_data.xml index 021a03b2742..7bb95192e5d 100644 --- a/addons/auth_oauth/auth_oauth_data.xml +++ b/addons/auth_oauth/auth_oauth_data.xml @@ -1,38 +1,34 @@ - + + Facebook Graph - facebook_client_id https://www.facebook.com/dialog/oauth https://graph.facebook.com/me/permissions zocial facebook Sign in with facebook - True Google OAuth2 - 108010644258-duuhmp6pu7li4tsmnqg7j9rvdeklg0ki.apps.googleusercontent.com https://accounts.google.com/o/oauth2/auth https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/oauth2/v1/tokeninfo https://www.googleapis.com/oauth2/v1/userinfo zocial google Sign in with google - True - - Twitter OAuth2 - 108010644258-duuhmp6pu7li4tsmnqg7j9rvdeklg0ki.apps.twitterusercontent.com + + diff --git a/addons/auth_oauth/auth_oauth_view.xml b/addons/auth_oauth/auth_oauth_view.xml index 678c347c84d..475720af9fd 100644 --- a/addons/auth_oauth/auth_oauth_view.xml +++ b/addons/auth_oauth/auth_oauth_view.xml @@ -11,7 +11,7 @@ - + @@ -22,7 +22,7 @@ - + auth.oauth.provider.list auth.oauth.provider @@ -31,7 +31,7 @@ - + diff --git a/addons/auth_oauth/controllers/main.py b/addons/auth_oauth/controllers/main.py index 28f550b4bda..2959fa45db1 100644 --- a/addons/auth_oauth/controllers/main.py +++ b/addons/auth_oauth/controllers/main.py @@ -18,7 +18,7 @@ class OAuthController(openerpweb.Controller): registry = openerp.modules.registry.RegistryManager.get(dbname) with registry.cursor() as cr: providers = registry.get('auth.oauth.provider') - l = providers.read(cr, 1, providers.search(cr, 1, [])) + l = providers.read(cr, 1, providers.search(cr, 1, [('enabled','=',True)])) return l @openerpweb.httprequest diff --git a/addons/auth_oauth/res_config.py b/addons/auth_oauth/res_config.py new file mode 100644 index 00000000000..82d79c767f5 --- /dev/null +++ b/addons/auth_oauth/res_config.py @@ -0,0 +1,63 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2012-Today OpenERP SA () +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU 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 General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see +# +############################################################################## + +from openerp.osv import osv, fields + +import logging +_logger = logging.getLogger(__name__) + +class base_config_settings(osv.TransientModel): + _inherit = 'base.config.settings' + + _columns = { + 'auth_oauth_google_enabled' : fields.boolean('Allow users to sign in with Google'), + 'auth_oauth_google_client_id' : fields.char('Client ID'), + 'auth_oauth_facebook_enabled' : fields.boolean('Allow users to sign in with Facebook'), + 'auth_oauth_facebook_client_id' : fields.char('Client ID'), + } + + def get_oauth_providers(self, cr, uid, fields, context=None): + google_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'auth_oauth', 'provider_google')[1] + facebook_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'auth_oauth', 'provider_facebook')[1] + rg = self.pool.get('auth.oauth.provider').read(cr, uid, [google_id], ['enabled','client_id'], context=context) + rf = self.pool.get('auth.oauth.provider').read(cr, uid, [facebook_id], ['enabled','client_id'], context=context) + return { + 'auth_oauth_google_enabled': rg[0]['enabled'], + 'auth_oauth_google_client_id': rg[0]['client_id'], + 'auth_oauth_facebook_enabled': rf[0]['enabled'], + 'auth_oauth_facebook_client_id': rf[0]['client_id'], + } + + def set_oauth_providers(self, cr, uid, ids, context=None): + google_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'auth_oauth', 'provider_google')[1] + facebook_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'auth_oauth', 'provider_facebook')[1] + config = self.browse(cr, uid, ids[0], context=context) + rg = { + 'enabled':config.auth_oauth_google_enabled, + 'client_id':config.auth_oauth_google_client_id, + } + rf = { + 'enabled':config.auth_oauth_facebook_enabled, + 'client_id':config.auth_oauth_facebook_client_id, + } + self.pool.get('auth.oauth.provider').write(cr, uid, [google_id], rg) + self.pool.get('auth.oauth.provider').write(cr, uid, [facebook_id], rf) + diff --git a/addons/auth_oauth/res_config.xml b/addons/auth_oauth/res_config.xml new file mode 100644 index 00000000000..2b06e05327a --- /dev/null +++ b/addons/auth_oauth/res_config.xml @@ -0,0 +1,50 @@ + + + + + base.config.settings.oauth + base.config.settings + + + +
+
+
+ +
+
+
+ To setup the signin process with Google, first you have to perform the following steps:
+
+ - Go to the Google APIs console
+ - Ceate a new project
+ - Go to Api Access
+ - Create an oauth client_id
+ - Edit settings and set both Authorized Redirect URIs and Authorized JavaScript Origins to your hostname.
+
+ Now copy paste the client_id here: +
+
+
+
+
+ +
+
+
+ To setup the signin process with Google, first you have to perform the following steps:
+
+ Now copy paste the client_id here: +
+ +
+
+
+
+
+
+ +
+
diff --git a/addons/auth_oauth/static/src/js/auth_oauth.js b/addons/auth_oauth/static/src/js/auth_oauth.js index eae423fae1f..d63631c262d 100644 --- a/addons/auth_oauth/static/src/js/auth_oauth.js +++ b/addons/auth_oauth/static/src/js/auth_oauth.js @@ -21,9 +21,7 @@ openerp.auth_oauth = function(instance) { }, on_oauth_loaded: function(result) { this.oauth_providers = result; - console.log(result); var buttons = QWeb.render("auth_oauth.Login.button",{"widget":this}); - console.log(buttons); this.$(".oe_login_pane form ul").after(buttons); }, on_oauth_sign_in: function(ev) { diff --git a/addons/auth_signup/res_config.py b/addons/auth_signup/res_config.py index a9a490de8c5..6afd1c5b581 100644 --- a/addons/auth_signup/res_config.py +++ b/addons/auth_signup/res_config.py @@ -25,7 +25,8 @@ class base_config_settings(osv.TransientModel): _inherit = 'base.config.settings' _columns = { - 'auth_signup_template_user_id': fields.many2one('res.users', 'Template user for new users created through signup') + 'auth_signup_uninvited': fields.boolean('allow public users to sign up', help="If unchecked only invited users may sign up"), + 'auth_signup_template_user_id': fields.many2one('res.users', 'Template user for new users created through signup'), } def get_default_signup(self, cr, uid, fields, context=None): diff --git a/addons/auth_signup/res_config.xml b/addons/auth_signup/res_config.xml index 3bea8dc2aed..49669d36618 100644 --- a/addons/auth_signup/res_config.xml +++ b/addons/auth_signup/res_config.xml @@ -7,16 +7,15 @@ base.config.settings - - - + +
+ +
+
+
diff --git a/addons/base_setup/res_config.py b/addons/base_setup/res_config.py index 059a674e5f1..4826a50400d 100644 --- a/addons/base_setup/res_config.py +++ b/addons/base_setup/res_config.py @@ -28,10 +28,13 @@ class base_config_settings(osv.osv_memory): 'module_multi_company': fields.boolean('manage multiple companies', help="""Work in multi-company environments, with appropriate security access between companies. This installs the module multi_company."""), - 'module_portal': fields.boolean('activate customer portal', - help="""The portal will give access to a series of documents for your customers; his quotations, his invoices, his projects, etc."""), 'module_share': fields.boolean('allow documents sharing', - help="""As an example, you will be able to share a project or some tasks to your customers, or quotes/sales to several persons at your customer company, or your agenda availabilities to your contacts."""), + help="""Share or embbed any screen of openerp."""), + 'module_portal': fields.boolean('activate the customer/supplier portal', + help="""Give access your customers and suppliers to their documents."""), + 'module_auth_anonymous': fields.boolean('activate the public portal', + help="""Enable the public part of openerp, openerp becomes a public website."""), + 'module_auth_oauth': fields.boolean('use external authentication providers, sign in with google, facebook, ...'), } def open_company(self, cr, uid, ids, context=None): diff --git a/addons/base_setup/res_config_view.xml b/addons/base_setup/res_config_view.xml index fe0fc7d1254..512c0a3f52e 100644 --- a/addons/base_setup/res_config_view.xml +++ b/addons/base_setup/res_config_view.xml @@ -28,20 +28,34 @@
- + + + @@ -254,6 +257,7 @@ hr.applicant + @@ -264,6 +268,7 @@ +
    @@ -308,6 +313,13 @@ +
    diff --git a/addons/hr_recruitment/security/ir.model.access.csv b/addons/hr_recruitment/security/ir.model.access.csv index 8b029c9324a..086e63e542b 100644 --- a/addons/hr_recruitment/security/ir.model.access.csv +++ b/addons/hr_recruitment/security/ir.model.access.csv @@ -8,3 +8,5 @@ access_survey_hr_user,survey.hr.user,survey.model_survey,base.group_hr_user,1,1, access_crm_meeting_hruser,crm.meeting.hruser,base_calendar.model_crm_meeting,base.group_hr_user,1,1,1,1 access_hr_recruitment_source_hr_officer,hr.recruitment.source,model_hr_recruitment_source,base.group_hr_user,1,1,1,1 access_hr_recruitment_source_all,hr.recruitment.source,model_hr_recruitment_source,,1,0,0,0 +access_hr_applicant_category,hr.applicant_category,model_hr_applicant_category,,1,0,0,0 +access_hr_applicant_category_manager,hr.applicant_category,model_hr_applicant_category,base.group_hr_manager,1,1,1,1 diff --git a/addons/hr_recruitment/static/src/js/hr_recruitment.js b/addons/hr_recruitment/static/src/js/hr_recruitment.js new file mode 100644 index 00000000000..5a2d6bd92b4 --- /dev/null +++ b/addons/hr_recruitment/static/src/js/hr_recruitment.js @@ -0,0 +1,35 @@ +openerp.hr_recruitment = function(openerp) { + openerp.web_kanban.KanbanView.include({ + applicant_display_categ_names: function() { + /* + * Set proper names to applicant categories. + * In kanban views, many2many fields only return a list of ids. + * Therefore, we have to fetch the matching data by ourselves. + */ + var self = this; + var categ_ids = []; + + // Collect categories ids + self.$element.find('span[data-categ_id]').each(function() { + categ_ids.push($(this).data('categ_id')); + }); + + // Find their matching names + var dataset = new openerp.web.DataSetSearch(self, 'hr.applicant_category', self.session.context, [['id', 'in', _.uniq(categ_ids)]]); + dataset.read_slice(['id', 'name']).then(function(result) { + _.each(result, function(v, k) { + // Set the proper value in the DOM and display the element + self.$element.find('span[data-categ_id=' + v.id + ']').text(v.name); + }); + }); + }, + on_groups_started: function() { + var self = this; + self._super.apply(self, arguments); + + if (self.dataset.model === 'hr.applicant') { + self.applicant_display_categ_names(); + } + } + }); +}; diff --git a/addons/mail/res_config_view.xml b/addons/mail/res_config_view.xml index c4bc23c9357..d3797ba2dcc 100644 --- a/addons/mail/res_config_view.xml +++ b/addons/mail/res_config_view.xml @@ -6,9 +6,10 @@ base.config.settings - +
    -
    diff --git a/addons/mail/static/src/css/mail.css b/addons/mail/static/src/css/mail.css index b19e9abbe0a..d094aa9fbcb 100644 --- a/addons/mail/static/src/css/mail.css +++ b/addons/mail/static/src/css/mail.css @@ -46,7 +46,7 @@ width: 486px; } -.openerp div.oe_mail_msg_content li { +.openerp div.oe_mail_msg_content > li { float: left; margin-right: 3px; } @@ -320,6 +320,11 @@ color: #888; } +.openerp .oe_mail_msg_footer li { + float: left; + margin-right: 3px; +} + .openerp .oe_mail_msg_body { margin-bottom: .5em; text-align: justify; diff --git a/addons/mail/static/src/js/mail.js b/addons/mail/static/src/js/mail.js index 864900bb729..569ecde7200 100644 --- a/addons/mail/static/src/js/mail.js +++ b/addons/mail/static/src/js/mail.js @@ -617,7 +617,7 @@ openerp.mail = function(session) { this.options.thread_level = this.options.thread_level || 0; this.thread_list = []; }, - + start: function() { // this._super.apply(this, arguments); // NB: all the widget should be modified to check the actual_mode property on view, not use diff --git a/addons/mail/static/src/xml/mail.xml b/addons/mail/static/src/xml/mail.xml index 3f547ae2e5d..9a6d8b92a3c 100644 --- a/addons/mail/static/src/xml/mail.xml +++ b/addons/mail/static/src/xml/mail.xml @@ -97,7 +97,7 @@
  • - +
    diff --git a/addons/multi_company/i18n/ru.po b/addons/multi_company/i18n/ru.po index eabfbdeb9a1..0d8003cbfae 100644 --- a/addons/multi_company/i18n/ru.po +++ b/addons/multi_company/i18n/ru.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME \n" "POT-Creation-Date: 2012-02-08 00:36+0000\n" -"PO-Revision-Date: 2010-10-26 08:32+0000\n" +"PO-Revision-Date: 2012-08-17 11:09+0000\n" "Last-Translator: Chertykov Denis \n" "Language-Team: Russian \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-07 05:25+0000\n" -"X-Generator: Launchpad (build 15745)\n" +"X-Launchpad-Export-Date: 2012-08-18 04:58+0000\n" +"X-Generator: Launchpad (build 15810)\n" #. module: multi_company #: model:res.company,overdue_msg:multi_company.res_company_odoo @@ -68,7 +68,7 @@ msgstr "Возвращаемое" #. module: multi_company #: model:ir.ui.menu,name:multi_company.menu_custom_multicompany msgid "Multi-Companies" -msgstr "" +msgstr "Холдинги" #. module: multi_company #: view:multi_company.default:0 diff --git a/addons/portal/__openerp__.py b/addons/portal/__openerp__.py index 6669efbcf77..84091a54347 100644 --- a/addons/portal/__openerp__.py +++ b/addons/portal/__openerp__.py @@ -20,10 +20,15 @@ ############################################################################## { - 'name' : "Portal", - 'version' : "1.0", - 'depends' : ["base", "share", "auth_anonymous"], - 'author' : "OpenERP SA", + 'name' : 'Portal', + 'version' : '1.0', + 'depends' : [ + 'base', + 'share', + 'auth_anonymous', + 'auth_signup', + ], + 'author' : 'OpenERP SA', 'category': 'Portal', 'description': """ Customize access to your OpenERP database to external users by creating portals. @@ -41,8 +46,8 @@ very handy when used in combination with the module 'share'. 'data': [ 'security/portal_security.xml', 'security/ir.model.access.csv', - 'portal_view.xml', 'portal_data.xml', + 'portal_view.xml', 'wizard/portal_wizard_view.xml', 'wizard/share_wizard_view.xml', ], diff --git a/addons/portal/portal_data.xml b/addons/portal/portal_data.xml index 58f2fc3e9d4..ddfb4cc6729 100644 --- a/addons/portal/portal_data.xml +++ b/addons/portal/portal_data.xml @@ -1,6 +1,6 @@ - + Portal @@ -10,7 +10,7 @@ - Company's news feed + Company's news @@ -32,24 +32,5 @@ form - - - - - - - - - - - - - diff --git a/addons/portal/portal_view.xml b/addons/portal/portal_view.xml index 831db25e26a..dd720d448ef 100644 --- a/addons/portal/portal_view.xml +++ b/addons/portal/portal_view.xml @@ -2,6 +2,25 @@ + + + + + + + + + + + + + Portal List diff --git a/addons/portal_event/portal_event_view.xml b/addons/portal_event/portal_event_view.xml old mode 100644 new mode 100755 index 8b1f21bbef0..1e046bc9e7f --- a/addons/portal_event/portal_event_view.xml +++ b/addons/portal_event/portal_event_view.xml @@ -2,8 +2,22 @@ + + + Events + ir.actions.act_window + event.event + kanban,calendar,tree,form,graph + {"search_default_upcoming":1} + + No public events. + + + action="action_event_view" sequence="40"/> diff --git a/addons/portal_sale/portal_sale_view.xml b/addons/portal_sale/portal_sale_view.xml index 2db0a7a4d96..5786fbc52ad 100644 --- a/addons/portal_sale/portal_sale_view.xml +++ b/addons/portal_sale/portal_sale_view.xml @@ -2,16 +2,39 @@ + + + Quotations + ir.actions.act_window + sale.order + tree,form,calendar,graph + {"search_default_draft":1} + + You dont have any quotation. + + + + Sales Orders + ir.actions.act_window + sale.order + tree,form,calendar,graph + + {"search_default_sales":1} + You dont have any sale order. + + Delivery Orders stock.picking.out ir.actions.act_window - form tree,form [('type','=','out')] {'default_type': 'out', 'contact_display': 'partner_address'} - This is the list of all delivery orders that have to be prepared, according to your different orders. + You dont have any delivery order. @@ -22,21 +45,42 @@ kanban,tree,form + No public products. + + + + Customer Invoices + account.invoice + tree,form,calendar,graph + [('type','=','out_invoice')] + {'default_type':'out_invoice', 'type':'out_invoice', 'journal_type': 'sale'} + + You dont have any invoice. + + + + Customer Payment + account.voucher + [('journal_id.type', 'in', ['bank', 'cash']), ('type','=','receipt')] + {'type':'receipt'} + + current + You dont have any payment. + action="action_order_tree5" sequence="10"/> + action="action_order_form" sequence="20"/> + action="action_invoice_tree1" sequence="10"/> + action="action_vendor_receipt" sequence="20"/> diff --git a/addons/project/__openerp__.py b/addons/project/__openerp__.py index aa523b438c7..a65497c311e 100644 --- a/addons/project/__openerp__.py +++ b/addons/project/__openerp__.py @@ -19,18 +19,33 @@ # ############################################################################## - { - "name": "Project Management", - "version": "1.1", - "author": "OpenERP SA", - "website": "http://www.openerp.com", - "category": "Project Management", - "sequence": 8, - "summary": "Projects, Tasks", - "images": ["images/gantt.png", "images/project_dashboard.jpeg","images/project_task_tree.jpeg","images/project_task.jpeg","images/project.jpeg","images/task_analysis.jpeg"], - "depends": ["base_setup", "base_status", "product", "analytic", "board", "mail", "resource","web_kanban"], - "description": """ + 'name': 'Project Management', + 'version': '1.1', + 'author': 'OpenERP SA', + 'website': 'http://www.openerp.com', + 'category': 'Project Management', + 'sequence': 8, + 'summary': 'Projects, Tasks', + 'images': [ + 'images/gantt.png', + 'images/project_dashboard.jpeg', + 'images/project_task_tree.jpeg', + 'images/project_task.jpeg', + 'images/project.jpeg', + 'images/task_analysis.jpeg' + ], + 'depends': [ + 'base_setup', + 'base_status', + 'product', + 'analytic', + 'board', + 'mail', + 'resource', + 'web_kanban' + ], + 'description': """ Project Management module tracks multi-level projects, tasks, work done on tasks. ================================================================================= @@ -41,22 +56,21 @@ Dashboard for project management that includes: * List of My Open Tasks * Graph of My Remaining Hours by Project """, - "init_xml": [], - "update_xml": [ - "security/project_security.xml", - "wizard/project_task_delegate_view.xml", - "wizard/project_task_reevaluate_view.xml", - "security/ir.model.access.csv", - "project_data.xml", - "project_view.xml", - "process/task_process.xml", - "res_partner_view.xml", - "report/project_report_view.xml", + 'data': [ + 'security/project_security.xml', + 'wizard/project_task_delegate_view.xml', + 'wizard/project_task_reevaluate_view.xml', + 'security/ir.model.access.csv', + 'project_data.xml', + 'project_view.xml', + 'process/task_process.xml', + 'res_partner_view.xml', + 'report/project_report_view.xml', 'report/project_cumulative.xml', - "board_project_view.xml", + 'board_project_view.xml', 'res_config_view.xml', ], - 'demo_xml': [ + 'demo': [ 'project_demo.xml', ], 'test':[ diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 3a1d21324f3..44f287c4972 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -229,7 +229,7 @@ -
    +
    í
      diff --git a/addons/project/security/ir.model.access.csv b/addons/project/security/ir.model.access.csv index 3f79cfee3de..d9f6cb9d2f6 100644 --- a/addons/project/security/ir.model.access.csv +++ b/addons/project/security/ir.model.access.csv @@ -18,3 +18,5 @@ access_account_analytic_line_project,account.analytic.line project,analytic.mode access_project_task_history,project.task.history project,project.model_project_task_history,project.group_project_user,1,1,1,0 access_project_task_history_cumulative,project.task.history project,project.model_project_task_history_cumulative,project.group_project_manager,1,0,0,0 access_resource_calendar,project.resource_calendar manager,resource.model_resource_calendar,project.group_project_manager,1,0,0,0 +access_project_category,project.project_category,model_project_category,,1,0,0,0 +access_project_category_manager,project.project_category,model_project_category,project.group_project_manager,1,1,1,1 diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml index be732c8c9a6..a566c89cbbe 100644 --- a/addons/project_issue/project_issue_view.xml +++ b/addons/project_issue/project_issue_view.xml @@ -239,6 +239,7 @@ project.issue + diff --git a/addons/purchase/report/order.rml b/addons/purchase/report/order.rml index dedee77e8a1..eadbb1ea4c4 100644 --- a/addons/purchase/report/order.rml +++ b/addons/purchase/report/order.rml @@ -186,9 +186,9 @@ - Tél. : [[ (o.partner_id.phone) or removeParentNode('para') ]] + Tel : [[ (o.partner_id.phone) or removeParentNode('para') ]] Fax : [[ (o.partner_id.fax) or removeParentNode('para') ]] - TVA : [[ (o.partner_id.vat) or removeParentNode('para') ]] + TIN : [[ (o.partner_id.vat) or removeParentNode('para') ]] diff --git a/addons/web_linkedin/static/src/js/linkedin.js b/addons/web_linkedin/static/src/js/linkedin.js index c15b995bff9..5bcb03aab33 100644 --- a/addons/web_linkedin/static/src/js/linkedin.js +++ b/addons/web_linkedin/static/src/js/linkedin.js @@ -270,6 +270,7 @@ openerp.web_linkedin = function(instance) { template: "LinkedIn.KeyWizard", init: function(parent, text) { this._super(parent, {title:_t("LinkedIn API Key")}); + this.api_domain = window.location.origin; }, start: function() { this._super(); diff --git a/addons/web_linkedin/static/src/xml/linkedin.xml b/addons/web_linkedin/static/src/xml/linkedin.xml index 0d062e6fd8c..f114fa53803 100644 --- a/addons/web_linkedin/static/src/xml/linkedin.xml +++ b/addons/web_linkedin/static/src/xml/linkedin.xml @@ -41,8 +41,7 @@
    • Log into LinkedIn.
    • Add a new application and fill the form:
        -
      • JavaScript API Domain is Your domain name (e.g. https://yourcompany.my.openerp.com)
      • -
      • You can give multiple domain (e.g. yourcompany.my.openerp.com)
      • +
      • JavaScript API Domain:
      • The programming tool is Javascript