[IMP] web_linkedin: changed the way the api key is configured

bzr revid: nicolas.vanhoren@openerp.com-20120823095314-ie3p04zufnyxs8db
This commit is contained in:
niv-openerp 2012-08-23 11:53:14 +02:00
parent ad18782b9c
commit 79224ea672
4 changed files with 71 additions and 58 deletions

View File

@ -78,16 +78,12 @@ openerp.web_linkedin = function(instance) {
}, _.bind(this.linkedin_disabled, this));
},
linkedin_disabled: function() {
if (instance.session.uid !== 1) {
instance.web.dialog($(QWeb.render("LinkedIn.DisabledWarning")), {
title: _t("LinkedIn is not enabled"),
buttons: [
{text: _t("Ok"), click: function() { $(this).dialog("close"); }}
]
});
} else {
new instance.web_linkedin.KeyWizard(this).open();
}
instance.web.dialog($(QWeb.render("LinkedIn.DisabledWarning")), {
title: _t("LinkedIn is not enabled"),
buttons: [
{text: _t("Ok"), click: function() { $(this).dialog("close"); }}
]
});
},
selected_entity: function(entity) {
var self = this;
@ -272,24 +268,5 @@ openerp.web_linkedin = function(instance) {
}
},
});
instance.web_linkedin.KeyWizard = instance.web.Dialog.extend({
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();
var self = this;
this.$("button").click(function() {
var value = self.$("input").val();
return new instance.web.Model("ir.config_parameter").call("set_param", ["web.linkedin.apikey", value]).pipe(function() {
self.destroy();
});
});
},
});
};
// vim:et fdc=0 fdl=0:

View File

@ -30,30 +30,7 @@
<t t-name="LinkedIn.DisabledWarning">
<div>
LinkedIn access was not enabled on this server.
Please ask your administrator to activate it.
</div>
</t>
<t t-name="LinkedIn.KeyWizard">
<div>
<p>
To use the LinkedIn module with this database, an API Key is required. Please follow this procedure:
</p>
<ul>
<li>Go to this URL:
<a href="https://www.linkedin.com/secure/developer" target="_blank">https://www.linkedin.com/secure/developer</a>.
</li>
<li>Log into LinkedIn.</li>
<li>Add a new application and fill the form:
<ul>
<li>JavaScript API Domain: <t t-esc="widget.api_domain"/></li>
<li>The programming tool is Javascript</li>
</ul>
</li>
<li>Copy the API key here:
<input type="text"/>
<button>Apply</button>
</li>
</ul>
Please ask your administrator to configure it in Settings > Configuration > Linkedin.
</div>
</t>
</templates>

View File

@ -28,6 +28,7 @@ except ImportError:
import base64
import urllib2
from osv import osv, fields
class Binary(openerpweb.Controller):
_cp_path = "/web_linkedin/binary"
@ -36,4 +37,19 @@ class Binary(openerpweb.Controller):
def url2binary(self, req,url):
bfile = urllib2.urlopen(url)
return base64.b64encode(bfile.read())
class web_linkedin_settings(osv.osv_memory):
_name = 'web_linkedin.settings'
_inherit = 'res.config.settings'
_columns = {
'api_key': fields.char(string="API Key", size=50),
}
def get_default_linkedin(self, cr, uid, fields, context=None):
key = self.pool.get("ir.config_parameter").get_param(cr, uid, "web.linkedin.apikey") or ""
return {'api_key': key}
def set_linkedin(self, cr, uid, ids, context=None):
key = self.browse(cr, uid, ids[0], context)["api_key"] or ""
self.pool.get("ir.config_parameter").set_param(cr, uid, "web.linkedin.apikey", key)

View File

@ -10,12 +10,55 @@
<field name="name" position="replace">
<field name="name" default_focus="1" nolabel="1" widget="linkedin" />
</field>
<!--<field name="title" position="before">
<field name="linkedin_id" invisible="1"/>
<field name="profile_id" invisible="1"/>
<field name="twitter_id" invisible="1"/>
</field>-->
</field>
</record>
<record id="view_linkedin_config_settings" model="ir.ui.view">
<field name="name">linkedin_settings</field>
<field name="model">web_linkedin.settings</field>
<field name="arch" type="xml">
<form string="Configure Linkedin" version="7.0" class="oe_form_configuration">
<header>
<button string="Apply" type="object" name="execute" class="oe_highlight"/>
or
<button string="Cancel" type="object" name="cancel" class="oe_link"/>
</header>
<div>
<p>
To use the LinkedIn module with this database, an API Key is required. Please follow this procedure:
</p>
<ul>
<li>Go to this URL:
<a href="https://www.linkedin.com/secure/developer" target="_blank">https://www.linkedin.com/secure/developer</a>.
</li>
<li>Log into LinkedIn.</li>
<li>Add a new application and fill the form:
<ul>
<li>JavaScript API Domain: the domain of the url used to log into this database (example: http://localhost:8069)</li>
<li>The programming tool is Javascript</li>
</ul>
</li>
<li>Copy the API key down here:</li>
</ul>
</div>
<group>
<field name="api_key"/>
</group>
</form>
</field>
</record>
<record id="action_linkedin_config_settings" model="ir.actions.act_window">
<field name="name">Configure Linkedin</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">web_linkedin.settings</field>
<field name="view_mode">form</field>
<field name="target">inline</field>
</record>
<menuitem id="menu_linkedin_config_settings" name="Linkedin" parent="base.menu_config"
sequence="10" action="action_linkedin_config_settings"/>
</data>
</openerp>