42 lines
2.0 KiB
Python
42 lines
2.0 KiB
Python
import logging
|
|
|
|
from openerp.osv import fields, osv
|
|
from openerp.tools.translate import _
|
|
|
|
_logger = logging.getLogger(__name__)
|
|
|
|
class twitter_config_settings(osv.osv_memory):
|
|
_inherit = 'website.config.settings'
|
|
|
|
_columns = {
|
|
'twitter_api_key': fields.related(
|
|
'website_id', 'twitter_api_key', type="char",
|
|
string='Twitter API Key',
|
|
help="Twitter API key you can get it from https://apps.twitter.com/app/new"),
|
|
'twitter_api_secret': fields.related(
|
|
'website_id', 'twitter_api_secret', type="char",
|
|
string='Twitter API secret',
|
|
help="Twitter API secret you can get it from https://apps.twitter.com/app/new"),
|
|
'twitter_tutorial': fields.dummy(
|
|
type="boolean", string="Show me how to obtain the Twitter API Key and Secret"),
|
|
'twitter_screen_name': fields.related(
|
|
'website_id', 'twitter_screen_name',
|
|
type="char", string='Get favorites from this screen name',
|
|
help="Screen Name of the Twitter Account from which you want to load favorites."
|
|
"It does not have to match the API Key/Secret."),
|
|
}
|
|
|
|
def _check_twitter_authorization(self, cr, uid, config_id, context=None):
|
|
website_obj = self.pool['website']
|
|
website_config = self.browse(cr, uid, config_id, context=context)
|
|
try:
|
|
website_obj.fetch_favorite_tweets(cr, uid, [website_config.website_id.id], context=context)
|
|
except Exception:
|
|
_logger.warning('Failed to verify twitter API authorization', exc_info=True)
|
|
raise osv.except_osv(_('Twitter authorization error!'), _('Please double-check your Twitter API Key and Secret'))
|
|
|
|
def create(self, cr, uid, vals, context=None):
|
|
res_id = super(twitter_config_settings, self).create(cr, uid, vals, context=context)
|
|
if vals.get('twitter_api_key') and vals.get('twitter_api_secret'):
|
|
self._check_twitter_authorization(cr, uid, res_id, context=context)
|
|
return res_id |