diff options
| author | Martin Trigaux <mat@openerp.com> | 2013-09-11 13:07:55 +0200 |
|---|---|---|
| committer | Martin Trigaux <mat@openerp.com> | 2013-09-11 13:07:55 +0200 |
| commit | c48504fdba1ef68033c5e6c3b7929ea4e153d4b7 (patch) | |
| tree | 471c4c37f5b76a4f034b5de805655d5fc5dcf867 /addons/google_drive | |
| parent | 9349ba848497b9c5b7ded809a4db6b1e3b26b6a6 (diff) | |
| parent | 3fa90321e11d28df4e2b874ddfa450dc73e8e0af (diff) | |
[MERGE] sync with trunk (state -> stage removed some test)
bzr revid: mat@openerp.com-20130911110755-zf3ytf9m27im6x9k
Diffstat (limited to 'addons/google_drive')
25 files changed, 256 insertions, 145 deletions
diff --git a/addons/google_drive/google_drive.py b/addons/google_drive/google_drive.py index 1dc6b25f27c..8bc487ada7c 100644 --- a/addons/google_drive/google_drive.py +++ b/addons/google_drive/google_drive.py @@ -54,58 +54,69 @@ class config(osv.osv): attachment = attach_pool.browse(cr, uid, attach_ids[0], context) url = attachment.url else: - url = self.copy_doc(cr, uid, res_id, template_id, name_gdocs, model.model, context) + url = self.copy_doc(cr, uid, res_id, template_id, name_gdocs, model.model, context).get('url') return url - def copy_doc(self, cr, uid, res_id, template_id, name_gdocs, res_model, context=None): + def get_access_token(self, cr, uid, scope=None, context=None): ir_config = self.pool['ir.config_parameter'] google_drive_refresh_token = ir_config.get_param(cr, SUPERUSER_ID, 'google_drive_refresh_token') + group_config = self.pool['ir.model.data'].get_object_reference(cr, uid, 'base', 'group_erp_manager')[1] + user = self.pool['res.users'].read(cr, uid, uid, "groups_id") if not google_drive_refresh_token: - raise self.pool.get('res.config.settings').get_config_warning(cr, _("You haven't configured 'Authorization Code' generated from google, Please generate and configure it in %(menu:base_setup.menu_general_configuration)s."), context=context) + if group_config in user['groups_id']: + raise self.pool.get('res.config.settings').get_config_warning(cr, _("You haven't configured 'Authorization Code' generated from google, Please generate and configure it in %(menu:base_setup.menu_general_configuration)s."), context=context) + else: + raise osv.except_osv(_('Error!'), _("Google Drive is not yet configured. Please contact your administrator.")) google_drive_client_id = ir_config.get_param(cr, SUPERUSER_ID, 'google_drive_client_id') google_drive_client_secret = ir_config.get_param(cr, SUPERUSER_ID, 'google_drive_client_secret') - google_web_base_url = ir_config.get_param(cr, SUPERUSER_ID, 'web.base.url') - #For Getting New Access Token With help of old Refresh Token - headers = {"Content-type": "application/x-www-form-urlencoded", "Accept-Encoding": "gzip, deflate"} - data = dict(client_id=google_drive_client_id, - refresh_token=google_drive_refresh_token, - client_secret=google_drive_client_secret, - grant_type="refresh_token") - data = urllib.urlencode(data) + data = urllib.urlencode(dict(client_id=google_drive_client_id, + refresh_token=google_drive_refresh_token, + client_secret=google_drive_client_secret, + grant_type="refresh_token", + scope=scope or 'https://www.googleapis.com/auth/drive')) + headers = {"Content-type": "application/x-www-form-urlencoded", "Accept-Encoding": "gzip, deflate"} try: req = urllib2.Request('https://accounts.google.com/o/oauth2/token', data, headers) content = urllib2.urlopen(req).read() except urllib2.HTTPError: - raise self.pool.get('res.config.settings').get_config_warning(cr, _("Something went wrong during the token generation. Please request again an authorization code in %(menu:base_setup.menu_general_configuration)s."), context=context) + if group_config in user['groups_id']: + raise self.pool.get('res.config.settings').get_config_warning(cr, _("Something went wrong during the token generation. Please request again an authorization code in %(menu:base_setup.menu_general_configuration)s."), context=context) + else: + raise osv.except_osv(_('Error!'), _("Google Drive is not yet configured. Please contact your administrator.")) content = json.loads(content) + return content.get('access_token') + def copy_doc(self, cr, uid, res_id, template_id, name_gdocs, res_model, context=None): + ir_config = self.pool['ir.config_parameter'] + google_web_base_url = ir_config.get_param(cr, SUPERUSER_ID, 'web.base.url') + access_token = self.get_access_token(cr, uid, context=context) # Copy template in to drive with help of new access token - if 'access_token' in content: - request_url = "https://www.googleapis.com/drive/v2/files/%s?fields=parents/id&access_token=%s" % (template_id, content['access_token']) - try: - req = urllib2.Request(request_url, None, headers) - parents = urllib2.urlopen(req).read() - except urllib2.HTTPError: - raise self.pool.get('res.config.settings').get_config_warning(cr, _("The Google Template cannot be found. Maybe it has been deleted."), context=context) - parents_dict = json.loads(parents) - - record_url = "Click on link to open Record in OpenERP\n %s/?db=%s#id=%s&model=%s" % (google_web_base_url, cr.dbname, res_id, res_model) - data = {"title": name_gdocs, "description": record_url, "parents": parents_dict['parents']} - request_url = "https://www.googleapis.com/drive/v2/files/%s/copy?access_token=%s" % (template_id, content['access_token']) - headers = {'Content-type': 'application/json', 'Accept': 'text/plain'} - data_json = json.dumps(data) - # resp, content = Http().request(request_url, "POST", data_json, headers) - req = urllib2.Request(request_url, data_json, headers) - content = urllib2.urlopen(req).read() - content = json.loads(content) - res = False - if 'alternateLink' in content.keys(): - attach_pool = self.pool.get("ir.attachment") - attach_vals = {'res_model': res_model, 'name': name_gdocs, 'res_id': res_id, 'type': 'url', 'url': content['alternateLink']} - attach_pool.create(cr, uid, attach_vals) - res = content['alternateLink'] + request_url = "https://www.googleapis.com/drive/v2/files/%s?fields=parents/id&access_token=%s" % (template_id, access_token) + headers = {"Content-type": "application/x-www-form-urlencoded", "Accept-Encoding": "gzip, deflate"} + try: + req = urllib2.Request(request_url, None, headers) + parents = urllib2.urlopen(req).read() + except urllib2.HTTPError: + raise self.pool.get('res.config.settings').get_config_warning(cr, _("The Google Template cannot be found. Maybe it has been deleted."), context=context) + parents_dict = json.loads(parents) + + record_url = "Click on link to open Record in OpenERP\n %s/?db=%s#id=%s&model=%s" % (google_web_base_url, cr.dbname, res_id, res_model) + data = {"title": name_gdocs, "description": record_url, "parents": parents_dict['parents']} + request_url = "https://www.googleapis.com/drive/v2/files/%s/copy?access_token=%s" % (template_id, access_token) + headers = {'Content-type': 'application/json', 'Accept': 'text/plain'} + data_json = json.dumps(data) + # resp, content = Http().request(request_url, "POST", data_json, headers) + req = urllib2.Request(request_url, data_json, headers) + content = urllib2.urlopen(req).read() + content = json.loads(content) + res = {} + if content.get('alternateLink'): + attach_pool = self.pool.get("ir.attachment") + attach_vals = {'res_model': res_model, 'name': name_gdocs, 'res_id': res_id, 'type': 'url', 'url': content['alternateLink']} + res['id'] = attach_pool.create(cr, uid, attach_vals) + res['url'] = content['alternateLink'] return res def get_google_drive_config(self, cr, uid, res_model, res_id, context=None): @@ -166,6 +177,7 @@ class config(osv.osv): 'google_drive_resource_id': fields.function(_resource_get, type="char", string='Resource Id'), 'google_drive_client_id': fields.function(_client_id_get, type="char", string='Google Client '), 'name_template': fields.char('Google Drive Name Pattern', size=64, help='Choose how the new google drive will be named, on google side. Eg. gdoc_%(field_name)s', required=True), + 'active': fields.boolean('Active'), } def onchange_model_id(self, cr, uid, ids, model_id, context=None): @@ -179,6 +191,7 @@ class config(osv.osv): _defaults = { 'name_template': 'Document %(name)s', + 'active': True, } def _check_model_id(self, cr, uid, ids, context=None): @@ -191,6 +204,9 @@ class config(osv.osv): (_check_model_id, 'Model of selected filter is not matching with model of current template.', ['model_id', 'filter_id']), ] + def get_google_scope(self): + return 'https://www.googleapis.com/auth/drive' + config() @@ -202,7 +218,7 @@ class base_config_settings(osv.osv): 'google_drive_uri': fields.char('URI', readonly=True, help="The URL to generate the authorization code from Google"), } _defaults = { - 'google_drive_uri': lambda s, cr, uid, c: s.pool['google.service']._get_google_token_uri(cr, uid, 'drive', context=c), + 'google_drive_uri': lambda s, cr, uid, c: s.pool['google.service']._get_google_token_uri(cr, uid, 'drive', scope=s.pool['google.drive.config'].get_google_scope(), context=c), } def set_google_authorization_code(self, cr, uid, ids, context=None): diff --git a/addons/google_drive/google_drive_data.xml b/addons/google_drive/google_drive_data.xml index c9266547969..b1f9883c149 100644 --- a/addons/google_drive/google_drive_data.xml +++ b/addons/google_drive/google_drive_data.xml @@ -4,12 +4,12 @@ <record id="config_google_drive_client_id" model="ir.config_parameter"> <field name="key">google_drive_client_id</field> - <field name="value">39623646228-eg3ggo3mk6o40m7rguobi3rkl9frh4tb.apps.googleusercontent.com</field> + <field name="value">598905559630.apps.googleusercontent.com</field> </record> <record id="config_google_drive_client_secret" model="ir.config_parameter"> <field name="key">google_drive_client_secret</field> - <field name="value">Ul-PtmnSWs3euWs20fdono0e</field> + <field name="value">vTmou73c-njP-1qCxm7qx7QE</field> </record> </data> diff --git a/addons/google_drive/i18n/ar.po b/addons/google_drive/i18n/ar.po index 119cd48268c..2f50c716897 100644 --- a/addons/google_drive/i18n/ar.po +++ b/addons/google_drive/i18n/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: 2013-06-28 05:42+0000\n" -"X-Generator: Launchpad (build 16681)\n" +"X-Launchpad-Export-Date: 2013-09-03 05:48+0000\n" +"X-Generator: Launchpad (build 16753)\n" #. module: google_drive #: model:ir.ui.menu,name:google_drive.menu_google_drive_config diff --git a/addons/google_drive/i18n/cs.po b/addons/google_drive/i18n/cs.po index 8d076ddc8e4..1d518196b88 100644 --- a/addons/google_drive/i18n/cs.po +++ b/addons/google_drive/i18n/cs.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: 2013-06-28 05:42+0000\n" -"X-Generator: Launchpad (build 16681)\n" +"X-Launchpad-Export-Date: 2013-09-03 05:48+0000\n" +"X-Generator: Launchpad (build 16753)\n" #. module: google_drive #: model:ir.ui.menu,name:google_drive.menu_google_drive_config diff --git a/addons/google_drive/i18n/de.po b/addons/google_drive/i18n/de.po index 95e051fea35..fdcb6fec72f 100644 --- a/addons/google_drive/i18n/de.po +++ b/addons/google_drive/i18n/de.po @@ -15,8 +15,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-06-28 05:42+0000\n" -"X-Generator: Launchpad (build 16681)\n" +"X-Launchpad-Export-Date: 2013-09-03 05:48+0000\n" +"X-Generator: Launchpad (build 16753)\n" #. module: google_drive #: model:ir.ui.menu,name:google_drive.menu_google_drive_config diff --git a/addons/google_drive/i18n/es.po b/addons/google_drive/i18n/es.po index 65d28726ba4..4f118052e25 100644 --- a/addons/google_drive/i18n/es.po +++ b/addons/google_drive/i18n/es.po @@ -8,19 +8,19 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2013-06-27 16:03+0000\n" -"PO-Revision-Date: 2012-12-12 12:51+0000\n" -"Last-Translator: Pedro Manuel Baeza <pedro.baeza@gmail.com>\n" +"PO-Revision-Date: 2013-08-07 02:00+0000\n" +"Last-Translator: Alejandro Santana <alejandrosantana@anubia.es>\n" "Language-Team: Spanish <es@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-06-28 05:42+0000\n" -"X-Generator: Launchpad (build 16681)\n" +"X-Launchpad-Export-Date: 2013-09-03 05:48+0000\n" +"X-Generator: Launchpad (build 16753)\n" #. module: google_drive #: model:ir.ui.menu,name:google_drive.menu_google_drive_config msgid "Google Drive configuration" -msgstr "" +msgstr "Configuración de Google Drive" #. module: google_drive #: code:addons/google_drive/google_drive.py:48 @@ -39,6 +39,11 @@ msgid "" "in your Google Drive and in OpenERP attachment will be named\n" " 'Agrolait_SO0001_Sales'." msgstr "" +"El nombre del documento adjunto puede contener información fija o variable. " +"Para distinguir documentos en Google Drive, use palabras y campos fijos. " +"Así, en el ejemplo anterior, si se escribió 'Agrolait_%(name)s_Sales' en el " +"campo de nombre de GoogleDrive, el documento en su Google Drive y en los " +"adjuntos de OpenERP se llamarán 'Agrolait_SO0001_Sales'." #. module: google_drive #: view:google.drive.config:0 @@ -46,16 +51,18 @@ msgid "" "- If filter is not specified, link of google document will appear in " "\"More\" option for all users for all opportunities." msgstr "" +"- Si no especifica un filtro, el enlace del documento de Google aparecerá en " +"la opción \"Más\" para todos los usuarios para todas las oportunidades." #. module: google_drive #: view:google.drive.config:0 msgid "To create a new filter:" -msgstr "" +msgstr "Para crear un nuevo filtro:" #. module: google_drive #: model:ir.model,name:google_drive.model_base_config_settings msgid "base.config.settings" -msgstr "" +msgstr "base.config.settings" #. module: google_drive #: model:ir.actions.act_window,help:google_drive.action_google_drive_users_config @@ -73,17 +80,29 @@ msgid "" " </p>\n" " " msgstr "" +"<p class=\"oe_view_nocontent_create\">\n" +" Pulse para añadir una plantilla.\n" +" </p>\n" +" <p>\n" +" Enlace sus propias plantillas de Google Drive a " +"cualquier registro de OpenERP. Si tiene documentos realmente específicos que " +"quiere que su colaborador rellene (como usar una hoja de cálculo para " +"controlar la calidad de su producto o revisar los detalles de entrega de " +"cada pedido en un país extranjero,...) es muy sencillo gestionarlo. " +"Enlácelos en OpenERP y úselos para colaborar con sus empleados.\n" +" </p>\n" +" " #. module: google_drive #: code:addons/google_drive/google_drive.py:150 #, python-format msgid "Incorrect URL!" -msgstr "" +msgstr "¡URL incorrecta!" #. module: google_drive #: view:base.config.settings:0 msgid "Configure your templates" -msgstr "" +msgstr "Configure sus plantillas" #. module: google_drive #: help:google.drive.config,name_template:0 @@ -91,6 +110,8 @@ msgid "" "Choose how the new google drive will be named, on google side. Eg. " "gdoc_%(field_name)s" msgstr "" +"Elija el nombre de la nueva unidad de Google Drive, en el lado de Google. " +"P.ej.: gdoc_%(field_name)s" #. module: google_drive #: view:google.drive.config:0 @@ -98,6 +119,8 @@ msgid "" "- Go to the OpenERP document you want to filter. For instance, go to " "Opportunities and search on Sales Department." msgstr "" +"- Vaya al documento de OpenERP que quiera filtrar. Por ejemplo, vaya a " +"Oportunidades y busque en el Departamento de ventas." #. module: google_drive #: view:google.drive.config:0 @@ -105,6 +128,8 @@ msgid "" "- In this \"Search\" view, select the option \"Save Current Filter\", enter " "the name (Ex: Sales Department)" msgstr "" +"- En esta vista de \"Búsqueda\", seleccione la opción \"Guardar filtro " +"actual\" e introduzca el nombre (p.ej.: Departamento de ventas)" #. module: google_drive #: view:google.drive.config:0 @@ -113,6 +138,9 @@ msgid "" "\"More\" options will appear for all users in opportunities of Sales " "Department." msgstr "" +"- Si selecciona \"Compartir con todos los usuarios\", el enlace al documento " +"de Google en la opción \"Más\" aparecerá para todos los usuarios en las " +"oportunidades del Departamento de ventas." #. module: google_drive #: view:google.drive.config:0 @@ -121,23 +149,28 @@ msgid "" "\"More\" options will not appear for other users in opportunities of Sales " "Department." msgstr "" +"- Si no selecciona \"Compartir con todos los usuarios\", el enlace al " +"documento de Google en la opción \"Más\" no aparecerá para otros usuarios en " +"las oportunidades del Departamento de ventas." #. module: google_drive #: code:addons/google_drive/google_drive.py:48 #, python-format msgid "At least one key cannot be found in your Google Drive name pattern" msgstr "" +"No se ha podido encontrar al menos una clave de su patrón de nombres de " +"Google Drive" #. module: google_drive #: code:addons/google_drive/google_drive.py:150 #, python-format msgid "Please enter a valid Google Document URL." -msgstr "" +msgstr "Por favor, introduzca una URL de documento de Google válida." #. module: google_drive #: field:google.drive.config,google_drive_client_id:0 msgid "Google Client " -msgstr "" +msgstr "Cliente de Google " #. module: google_drive #: view:google.drive.config:0 @@ -145,43 +178,45 @@ msgid "" "https://docs.google.com/document/d/1vOtpJK9scIQz6taD9tJRIETWbEw3fSiaQHArsJYcu" "a4/edit" msgstr "" +"https://docs.google.com/document/d/1vOtpJK9scIQz6taD9tJRIETWbEw3fSiaQHArsJYcu" +"a4/edit" #. module: google_drive #: field:google.drive.config,filter_id:0 msgid "Filter" -msgstr "" +msgstr "Filtro" #. module: google_drive #: field:google.drive.config,name_template:0 msgid "Google Drive Name Pattern" -msgstr "" +msgstr "Patrón de nombres de Google Drive" #. module: google_drive #: help:base.config.settings,google_drive_uri:0 msgid "The URL to generate the authorization code from Google" -msgstr "" +msgstr "La URL para generar el código de autorización de Google" #. module: google_drive #: model:ir.filters,name:google_drive.filter_partner msgid "Customer" -msgstr "" +msgstr "Cliente" #. module: google_drive #: field:google.drive.config,google_drive_resource_id:0 msgid "Resource Id" -msgstr "" +msgstr "ID del recurso" #. module: google_drive #: code:addons/google_drive/google_drive.py:91 #, python-format msgid "The Google Template cannot be found. Maybe it has been deleted." -msgstr "" +msgstr "No se encuentra la plantilla de Google. Tal vez se haya eliminado." #. module: google_drive #: model:ir.actions.act_window,name:google_drive.action_google_drive_users_config #: model:ir.ui.menu,name:google_drive.menu_google_drive_model_config msgid "Google Drive Templates" -msgstr "" +msgstr "Plantillas de Google Drive" #. module: google_drive #: code:addons/google_drive/google_drive.py:81 @@ -190,23 +225,27 @@ msgid "" "Something went wrong during the token generation. Please request again an " "authorization code in %(menu:base_setup.menu_general_configuration)s." msgstr "" +"Algo ha ido mal durante la creación del testigo. Por favor, solicite un " +"código de autorización otra vez en " +"%(menu:base_setup.menu_general_configuration)s." #. module: google_drive #: code:addons/google_drive/google_drive.py:124 #, python-format msgid "Google Drive Error!" -msgstr "" +msgstr "¡Error de Google Drive!" #. module: google_drive #: field:base.config.settings,google_drive_uri:0 msgid "URI" -msgstr "" +msgstr "URI" #. module: google_drive #: code:addons/google_drive/google_drive.py:124 #, python-format msgid "Creating google drive may only be done by one at a time." msgstr "" +"Es posible que la creación de Google Drive sólo se pueda hacer de una en una." #. module: google_drive #: field:google.drive.config,model:0 @@ -217,38 +256,40 @@ msgstr "Modelo" #. module: google_drive #: view:google.drive.config:0 msgid "Google Drive Configuration" -msgstr "" +msgstr "Configuración de Google Drive" #. module: google_drive #: field:google.drive.config,name:0 msgid "Template Name" -msgstr "" +msgstr "Nombre de la plantilla" #. module: google_drive #: constraint:google.drive.config:0 msgid "" "Model of selected filter is not matching with model of current template." msgstr "" +"El modelo del filtro seleccionado no coincide con el modelo de la plantilla " +"actual." #. module: google_drive #: field:google.drive.config,google_drive_template_url:0 msgid "Template URL" -msgstr "" +msgstr "URL de la plantilla" #. module: google_drive #: view:base.config.settings:0 msgid "and paste it here" -msgstr "" +msgstr "y péguela aquí" #. module: google_drive #: field:base.config.settings,google_drive_authorization_code:0 msgid "Authorization Code" -msgstr "" +msgstr "Cídigo de autorización" #. module: google_drive #: model:ir.model,name:google_drive.model_google_drive_config msgid "Google Drive templates config" -msgstr "" +msgstr "Configuración de plantillas de Google Drive" #. module: google_drive #: code:addons/google_drive/google_drive.py:64 @@ -257,3 +298,6 @@ msgid "" "You haven't configured 'Authorization Code' generated from google, Please " "generate and configure it in %(menu:base_setup.menu_general_configuration)s." msgstr "" +"No ha configurado el 'código de autorización' generado por Google. Por " +"favor, genérelo y configúrelo en " +"%(menu:base_setup.menu_general_configuration)s." diff --git a/addons/google_drive/i18n/fr.po b/addons/google_drive/i18n/fr.po index c32125d1989..54602e3ab6d 100644 --- a/addons/google_drive/i18n/fr.po +++ b/addons/google_drive/i18n/fr.po @@ -15,8 +15,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-06-28 05:42+0000\n" -"X-Generator: Launchpad (build 16681)\n" +"X-Launchpad-Export-Date: 2013-09-03 05:48+0000\n" +"X-Generator: Launchpad (build 16753)\n" #. module: google_drive #: model:ir.ui.menu,name:google_drive.menu_google_drive_config diff --git a/addons/google_drive/i18n/hr.po b/addons/google_drive/i18n/hr.po index be76be7ef99..017aabff9cd 100644 --- a/addons/google_drive/i18n/hr.po +++ b/addons/google_drive/i18n/hr.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: 2013-06-28 05:42+0000\n" -"X-Generator: Launchpad (build 16681)\n" +"X-Launchpad-Export-Date: 2013-09-03 05:48+0000\n" +"X-Generator: Launchpad (build 16753)\n" #. module: google_drive #: model:ir.ui.menu,name:google_drive.menu_google_drive_config diff --git a/addons/google_drive/i18n/hu.po b/addons/google_drive/i18n/hu.po index 5ff6354f18b..9d41f0d6502 100644 --- a/addons/google_drive/i18n/hu.po +++ b/addons/google_drive/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: 2013-06-28 05:42+0000\n" -"X-Generator: Launchpad (build 16681)\n" +"X-Launchpad-Export-Date: 2013-09-03 05:48+0000\n" +"X-Generator: Launchpad (build 16753)\n" #. module: google_drive #: model:ir.ui.menu,name:google_drive.menu_google_drive_config diff --git a/addons/google_drive/i18n/it.po b/addons/google_drive/i18n/it.po index 0dc867b43ad..ab30e72cf9a 100644 --- a/addons/google_drive/i18n/it.po +++ b/addons/google_drive/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: 2013-06-28 05:42+0000\n" -"X-Generator: Launchpad (build 16681)\n" +"X-Launchpad-Export-Date: 2013-09-03 05:48+0000\n" +"X-Generator: Launchpad (build 16753)\n" #. module: google_drive #: model:ir.ui.menu,name:google_drive.menu_google_drive_config diff --git a/addons/google_drive/i18n/ln.po b/addons/google_drive/i18n/ln.po index 100033037fc..652489b3487 100644 --- a/addons/google_drive/i18n/ln.po +++ b/addons/google_drive/i18n/ln.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: 2013-06-28 05:42+0000\n" -"X-Generator: Launchpad (build 16681)\n" +"X-Launchpad-Export-Date: 2013-09-03 05:48+0000\n" +"X-Generator: Launchpad (build 16753)\n" #. module: google_drive #: model:ir.ui.menu,name:google_drive.menu_google_drive_config diff --git a/addons/google_drive/i18n/mk.po b/addons/google_drive/i18n/mk.po index d2f329517c1..e6367fe2429 100644 --- a/addons/google_drive/i18n/mk.po +++ b/addons/google_drive/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: 2013-06-28 05:42+0000\n" -"X-Generator: Launchpad (build 16681)\n" +"X-Launchpad-Export-Date: 2013-09-03 05:48+0000\n" +"X-Generator: Launchpad (build 16753)\n" #. module: google_drive #: model:ir.ui.menu,name:google_drive.menu_google_drive_config diff --git a/addons/google_drive/i18n/mn.po b/addons/google_drive/i18n/mn.po index 060c1e7b596..f0dc915d7df 100644 --- a/addons/google_drive/i18n/mn.po +++ b/addons/google_drive/i18n/mn.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: 2013-06-28 05:42+0000\n" -"X-Generator: Launchpad (build 16681)\n" +"X-Launchpad-Export-Date: 2013-09-03 05:48+0000\n" +"X-Generator: Launchpad (build 16753)\n" #. module: google_drive #: model:ir.ui.menu,name:google_drive.menu_google_drive_config diff --git a/addons/google_drive/i18n/nl.po b/addons/google_drive/i18n/nl.po index 771e7b754d5..66a2affd33a 100644 --- a/addons/google_drive/i18n/nl.po +++ b/addons/google_drive/i18n/nl.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: 2013-06-28 05:42+0000\n" -"X-Generator: Launchpad (build 16681)\n" +"X-Launchpad-Export-Date: 2013-09-03 05:48+0000\n" +"X-Generator: Launchpad (build 16753)\n" #. module: google_drive #: model:ir.ui.menu,name:google_drive.menu_google_drive_config diff --git a/addons/google_drive/i18n/pl.po b/addons/google_drive/i18n/pl.po index 4c7ec91b703..ac7dc926a84 100644 --- a/addons/google_drive/i18n/pl.po +++ b/addons/google_drive/i18n/pl.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: 2013-06-28 05:42+0000\n" -"X-Generator: Launchpad (build 16681)\n" +"X-Launchpad-Export-Date: 2013-09-03 05:48+0000\n" +"X-Generator: Launchpad (build 16753)\n" #. module: google_drive #: model:ir.ui.menu,name:google_drive.menu_google_drive_config diff --git a/addons/google_drive/i18n/pt.po b/addons/google_drive/i18n/pt.po index 11edb4ffc2a..eb0d5958a10 100644 --- a/addons/google_drive/i18n/pt.po +++ b/addons/google_drive/i18n/pt.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: 2013-06-28 05:42+0000\n" -"X-Generator: Launchpad (build 16681)\n" +"X-Launchpad-Export-Date: 2013-09-03 05:48+0000\n" +"X-Generator: Launchpad (build 16753)\n" #. module: google_drive #: model:ir.ui.menu,name:google_drive.menu_google_drive_config diff --git a/addons/google_drive/i18n/pt_BR.po b/addons/google_drive/i18n/pt_BR.po index 574eb5abc0c..bfdfab8431e 100644 --- a/addons/google_drive/i18n/pt_BR.po +++ b/addons/google_drive/i18n/pt_BR.po @@ -8,20 +8,19 @@ msgstr "" "Project-Id-Version: openobject-addons\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2013-06-27 16:03+0000\n" -"PO-Revision-Date: 2012-12-07 22:47+0000\n" -"Last-Translator: Fábio Martinelli - http://zupy.com.br " -"<webmaster@guaru.net>\n" +"PO-Revision-Date: 2013-07-20 22:32+0000\n" +"Last-Translator: Claudio de Araujo Santos <claudioaraujosantos@gmail.com>\n" "Language-Team: Brazilian Portuguese <pt_BR@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-06-28 05:42+0000\n" -"X-Generator: Launchpad (build 16681)\n" +"X-Launchpad-Export-Date: 2013-09-03 05:48+0000\n" +"X-Generator: Launchpad (build 16753)\n" #. module: google_drive #: model:ir.ui.menu,name:google_drive.menu_google_drive_config msgid "Google Drive configuration" -msgstr "" +msgstr "Configuração do Google Drive" #. module: google_drive #: code:addons/google_drive/google_drive.py:48 @@ -40,6 +39,13 @@ msgid "" "in your Google Drive and in OpenERP attachment will be named\n" " 'Agrolait_SO0001_Sales'." msgstr "" +"O nome do documento em anexo pode usar dados fixos ou variáveis. Para " +"distinguir entre documentos\n" +" Google Drive, usar palavras fixos e campos. " +"Por exemplo, no exemplo acima, se escreveu Agrolait_% (nome) s_Sales\n" +" no campo Nome da unidade do Google, o " +"documento em seu Google Drive e em OpenERP anexo será nomeado\n" +" 'Agrolait_SO0001_Sales \"." #. module: google_drive #: view:google.drive.config:0 @@ -47,16 +53,18 @@ msgid "" "- If filter is not specified, link of google document will appear in " "\"More\" option for all users for all opportunities." msgstr "" +"- Se o filtro não for especificado, ligação de documento google aparecerá na " +"opção \"Mais\" para todos os usuários de todas as oportunidades." #. module: google_drive #: view:google.drive.config:0 msgid "To create a new filter:" -msgstr "" +msgstr "Para criar um novo filtro:" #. module: google_drive #: model:ir.model,name:google_drive.model_base_config_settings msgid "base.config.settings" -msgstr "" +msgstr "base.config.settings" #. module: google_drive #: model:ir.actions.act_window,help:google_drive.action_google_drive_users_config @@ -74,17 +82,30 @@ msgid "" " </p>\n" " " msgstr "" +"<p class=\"oe_view_nocontent_create\">\n" +" Clique para adicionar um novo modelo.\n" +" </ P>\n" +" <p>\n" +" Vincular seus próprios modelos Google Drive para " +"qualquer registro de OpenERP. Se você tem documentos específicos que você " +"realmente deseja que seu colaborador preencher, por exemplo, usar uma " +"planilha para controlar a qualidade do seu produto ou rever a lista de " +"entrega para cada ordem em um país estrangeiro, ... É muito fácil de " +"gerenciá-los, associá-los a OpenERP e usá-los para colaborar com seus " +"empregados.\n" +" </ P>\n" +" " #. module: google_drive #: code:addons/google_drive/google_drive.py:150 #, python-format msgid "Incorrect URL!" -msgstr "" +msgstr "URL incorreto!" #. module: google_drive #: view:base.config.settings:0 msgid "Configure your templates" -msgstr "" +msgstr "Configure seus modelos" #. module: google_drive #: help:google.drive.config,name_template:0 @@ -92,6 +113,8 @@ msgid "" "Choose how the new google drive will be named, on google side. Eg. " "gdoc_%(field_name)s" msgstr "" +"Escolha como a nova unidade google será nomeado, no lado google. Por " +"exemplo. gdoc_% (field_name) s" #. module: google_drive #: view:google.drive.config:0 @@ -99,6 +122,8 @@ msgid "" "- Go to the OpenERP document you want to filter. For instance, go to " "Opportunities and search on Sales Department." msgstr "" +"- Vá para o documento OpenERP você deseja filtrar. Por exemplo, ir para " +"Oportunidades e de pesquisa no Departamento de Vendas." #. module: google_drive #: view:google.drive.config:0 @@ -106,6 +131,8 @@ msgid "" "- In this \"Search\" view, select the option \"Save Current Filter\", enter " "the name (Ex: Sales Department)" msgstr "" +"- Neste ponto de vista \"Pesquisar\", selecione a opção \"Salvar Filtro " +"Atual\", digite o nome (Ex: Departamento de Vendas)" #. module: google_drive #: view:google.drive.config:0 @@ -114,6 +141,9 @@ msgid "" "\"More\" options will appear for all users in opportunities of Sales " "Department." msgstr "" +"- Se você selecionar \"Compartilhar com todos os usuários\", ligação de " +"documento google na opção \"Mais\" será exibido para todos os usuários em " +"oportunidades do Departamento de Vendas." #. module: google_drive #: view:google.drive.config:0 @@ -122,23 +152,28 @@ msgid "" "\"More\" options will not appear for other users in opportunities of Sales " "Department." msgstr "" +"- Se você não selecionar \"Compartilhar com todos os usuários\", link do " +"documento google em \"More\" opções não aparecerá para outros usuários em " +"oportunidades do Departamento de Vendas." #. module: google_drive #: code:addons/google_drive/google_drive.py:48 #, python-format msgid "At least one key cannot be found in your Google Drive name pattern" msgstr "" +"Pelo menos uma chave não pode ser encontrado em seu padrão de nome de Google " +"Drive" #. module: google_drive #: code:addons/google_drive/google_drive.py:150 #, python-format msgid "Please enter a valid Google Document URL." -msgstr "" +msgstr "Por favor insira um URL Documento Google válida." #. module: google_drive #: field:google.drive.config,google_drive_client_id:0 msgid "Google Client " -msgstr "" +msgstr "Google Cliente " #. module: google_drive #: view:google.drive.config:0 @@ -146,43 +181,46 @@ msgid "" "https://docs.google.com/document/d/1vOtpJK9scIQz6taD9tJRIETWbEw3fSiaQHArsJYcu" "a4/edit" msgstr "" +"https://docs.google.com/document/d/1vOtpJK9scIQz6taD9tJRIETWbEw3fSiaQHArsJYcu" +"a4/edit" #. module: google_drive #: field:google.drive.config,filter_id:0 msgid "Filter" -msgstr "" +msgstr "Filtro" #. module: google_drive #: field:google.drive.config,name_template:0 msgid "Google Drive Name Pattern" -msgstr "" +msgstr "Nome Padrão Google Drive" #. module: google_drive #: help:base.config.settings,google_drive_uri:0 msgid "The URL to generate the authorization code from Google" -msgstr "" +msgstr "O URL para gerar o código de autorização do Google" #. module: google_drive #: model:ir.filters,name:google_drive.filter_partner msgid "Customer" -msgstr "" +msgstr "Cliente" #. module: google_drive #: field:google.drive.config,google_drive_resource_id:0 msgid "Resource Id" -msgstr "" +msgstr "ID Recurso" #. module: google_drive #: code:addons/google_drive/google_drive.py:91 #, python-format msgid "The Google Template cannot be found. Maybe it has been deleted." msgstr "" +"O modelo do Google não pode ser encontrado. Talvez tenha sido excluído." #. module: google_drive #: model:ir.actions.act_window,name:google_drive.action_google_drive_users_config #: model:ir.ui.menu,name:google_drive.menu_google_drive_model_config msgid "Google Drive Templates" -msgstr "" +msgstr "Templates do Google Drive" #. module: google_drive #: code:addons/google_drive/google_drive.py:81 @@ -191,23 +229,25 @@ msgid "" "Something went wrong during the token generation. Please request again an " "authorization code in %(menu:base_setup.menu_general_configuration)s." msgstr "" +"Algo deu errado durante a geração de token. Por favor, solicite novamente um " +"código de autorização em%(menu:base_setup.menu_general_configuration)s." #. module: google_drive #: code:addons/google_drive/google_drive.py:124 #, python-format msgid "Google Drive Error!" -msgstr "" +msgstr "Google Drive Error!" #. module: google_drive #: field:base.config.settings,google_drive_uri:0 msgid "URI" -msgstr "" +msgstr "URL" #. module: google_drive #: code:addons/google_drive/google_drive.py:124 #, python-format msgid "Creating google drive may only be done by one at a time." -msgstr "" +msgstr "Criação de unidade google só pode ser feito por um de cada vez." #. module: google_drive #: field:google.drive.config,model:0 @@ -218,38 +258,40 @@ msgstr "Modelo" #. module: google_drive #: view:google.drive.config:0 msgid "Google Drive Configuration" -msgstr "" +msgstr "Configuração do acionamento Google" #. module: google_drive #: field:google.drive.config,name:0 msgid "Template Name" -msgstr "" +msgstr "Nome do modelo" #. module: google_drive #: constraint:google.drive.config:0 msgid "" "Model of selected filter is not matching with model of current template." msgstr "" +"Modelo de filtro selecionado não está combinando com o modelo do modelo " +"atual." #. module: google_drive #: field:google.drive.config,google_drive_template_url:0 msgid "Template URL" -msgstr "" +msgstr "Modelo de URL" #. module: google_drive #: view:base.config.settings:0 msgid "and paste it here" -msgstr "" +msgstr "e cole-o aqui" #. module: google_drive #: field:base.config.settings,google_drive_authorization_code:0 msgid "Authorization Code" -msgstr "" +msgstr "Código de Autorização" #. module: google_drive #: model:ir.model,name:google_drive.model_google_drive_config msgid "Google Drive templates config" -msgstr "" +msgstr "Google Drive templates de configuração" #. module: google_drive #: code:addons/google_drive/google_drive.py:64 @@ -258,3 +300,6 @@ msgid "" "You haven't configured 'Authorization Code' generated from google, Please " "generate and configure it in %(menu:base_setup.menu_general_configuration)s." msgstr "" +"Você não configurou \"Código de Autorização\" gerado a partir do Google, por " +"favor, gerar e configurá-lo em " +"%(menu:base_setup.menu_general_configuration)s." diff --git a/addons/google_drive/i18n/ro.po b/addons/google_drive/i18n/ro.po index 8f4d9a1169f..2be2e41dc2e 100644 --- a/addons/google_drive/i18n/ro.po +++ b/addons/google_drive/i18n/ro.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: 2013-06-28 05:42+0000\n" -"X-Generator: Launchpad (build 16681)\n" +"X-Launchpad-Export-Date: 2013-09-03 05:48+0000\n" +"X-Generator: Launchpad (build 16753)\n" #. module: google_drive #: model:ir.ui.menu,name:google_drive.menu_google_drive_config diff --git a/addons/google_drive/i18n/ru.po b/addons/google_drive/i18n/ru.po index 9579b8a93c5..0631dcd22b8 100644 --- a/addons/google_drive/i18n/ru.po +++ b/addons/google_drive/i18n/ru.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: 2013-06-28 05:42+0000\n" -"X-Generator: Launchpad (build 16681)\n" +"X-Launchpad-Export-Date: 2013-09-03 05:48+0000\n" +"X-Generator: Launchpad (build 16753)\n" #. module: google_drive #: model:ir.ui.menu,name:google_drive.menu_google_drive_config diff --git a/addons/google_drive/i18n/sl.po b/addons/google_drive/i18n/sl.po index eb7ef7ed79c..b0b75a858d6 100644 --- a/addons/google_drive/i18n/sl.po +++ b/addons/google_drive/i18n/sl.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: 2013-06-28 05:42+0000\n" -"X-Generator: Launchpad (build 16681)\n" +"X-Launchpad-Export-Date: 2013-09-03 05:48+0000\n" +"X-Generator: Launchpad (build 16753)\n" #. module: google_drive #: model:ir.ui.menu,name:google_drive.menu_google_drive_config diff --git a/addons/google_drive/i18n/sv.po b/addons/google_drive/i18n/sv.po index c0435c8bd9e..5b06b43bee5 100644 --- a/addons/google_drive/i18n/sv.po +++ b/addons/google_drive/i18n/sv.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: 2013-06-28 05:42+0000\n" -"X-Generator: Launchpad (build 16681)\n" +"X-Launchpad-Export-Date: 2013-09-03 05:48+0000\n" +"X-Generator: Launchpad (build 16753)\n" #. module: google_drive #: model:ir.ui.menu,name:google_drive.menu_google_drive_config diff --git a/addons/google_drive/i18n/tr.po b/addons/google_drive/i18n/tr.po index a3e3b6b791b..dba2b005bc5 100644 --- a/addons/google_drive/i18n/tr.po +++ b/addons/google_drive/i18n/tr.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: 2013-06-28 05:42+0000\n" -"X-Generator: Launchpad (build 16681)\n" +"X-Launchpad-Export-Date: 2013-09-03 05:48+0000\n" +"X-Generator: Launchpad (build 16753)\n" #. module: google_drive #: model:ir.ui.menu,name:google_drive.menu_google_drive_config diff --git a/addons/google_drive/i18n/zh_CN.po b/addons/google_drive/i18n/zh_CN.po index f7171c9225e..e1116e05507 100644 --- a/addons/google_drive/i18n/zh_CN.po +++ b/addons/google_drive/i18n/zh_CN.po @@ -9,13 +9,13 @@ msgstr "" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "POT-Creation-Date: 2013-06-27 16:03+0000\n" "PO-Revision-Date: 2013-06-29 04:39+0000\n" -"Last-Translator: David.Xu <xzxyxu@gmail.com>\n" +"Last-Translator: DWXXX <Unknown>\n" "Language-Team: Chinese (Simplified) <zh_CN@li.org>\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2013-06-30 05:56+0000\n" -"X-Generator: Launchpad (build 16692)\n" +"X-Launchpad-Export-Date: 2013-09-03 05:48+0000\n" +"X-Generator: Launchpad (build 16753)\n" #. module: google_drive #: model:ir.ui.menu,name:google_drive.menu_google_drive_config diff --git a/addons/google_drive/res_config_user_view.xml b/addons/google_drive/res_config_user_view.xml index 728ef03c5dd..dc563a76c2b 100644 --- a/addons/google_drive/res_config_user_view.xml +++ b/addons/google_drive/res_config_user_view.xml @@ -23,6 +23,7 @@ <field name="model" invisible="1" /> <group> <field name="name" /> + <field name="active" /> <field name="model_id" on_change="onchange_model_id(model_id)" /> <label for='filter_id' /> <div> @@ -54,7 +55,7 @@ </record> <record model='ir.actions.act_window' id='action_google_drive_users_config'> - <field name='name'>Google Drive Templates</field> + <field name='name'>Templates</field> <field name='res_model'>google.drive.config</field> <field name='type'>ir.actions.act_window</field> <field name='view_type'>form</field> @@ -87,7 +88,7 @@ </field> </record> - <menuitem name='Google Drive configuration' id='menu_google_drive_config' parent='base.menu_administration' /> + <menuitem name='Google Drive' id='menu_google_drive_config' parent='base.menu_administration' /> <menuitem id='menu_google_drive_model_config' parent='menu_google_drive_config' action='action_google_drive_users_config' /> </data> </openerp> diff --git a/addons/google_drive/static/src/js/gdrive.js b/addons/google_drive/static/src/js/gdrive.js index 3267487b4e3..dbbe50d0794 100644 --- a/addons/google_drive/static/src/js/gdrive.js +++ b/addons/google_drive/static/src/js/gdrive.js @@ -29,19 +29,24 @@ openerp.google_drive = function (instance, m) { ds.call('get_google_drive_config', [view.dataset.model, res_id, context]).done(function (r) { if (!_.isEmpty(r)) { _.each(r, function (res) { - var g_item = _.indexOf(_.pluck(self.items.other, 'label'), res.name); - if (g_item !== -1) { - self.items.other.splice(g_item, 1); + var already_there = false; + for (var i = 0;i < self.items.other.length;i++){ + if (self.items.other[i].classname === "oe_share_gdoc" && self.items.other[i].label.indexOf(res.name) > -1){ + already_there = true; + break; + } + } + if (!already_there){ + self.add_items('other', [{ + label: res.name+ '<img style="position:absolute;right:5px;height:20px;width:20px;" title="Google Drive" src="google_drive/static/src/img/drive_icon.png"/>', + config_id: res.id, + res_id: res_id, + res_model: view.dataset.model, + callback: self.on_google_doc, + classname: 'oe_share_gdoc' + }, + ]); } - self.add_items('other', [{ - label: res.name+ '<img style="position:absolute;right:5px;height:20px;width:20px;" title="Google Drive" src="google_drive/static/src/img/drive_icon.png"/>', - config_id: res.id, - res_id: res_id, - res_model: view.dataset.model, - callback: self.on_google_doc, - classname: 'oe_share_gdoc' - }, - ]); }) } }); |
