[FIX] website_twitter: display setup/debug info only for website editors, not visitors

This commit is contained in:
Olivier Dony 2014-09-22 14:35:13 +02:00
parent 1d6c0b2148
commit e133e5fc36
2 changed files with 35 additions and 24 deletions

View File

@ -14,19 +14,28 @@ class Twitter(http.Controller):
key = request.website.twitter_api_key
secret = request.website.twitter_api_secret
screen_name = request.website.twitter_screen_name
cr, uid = request.cr, request.uid
debug = request.registry['res.users'].has_group(cr, uid, 'base.group_website_publisher')
if not key or not secret:
return {"error": _("Please set the Twitter API Key and Secret in the Website Settings.")}
if debug:
return {"error": _("Please set the Twitter API Key and Secret in the Website Settings.")}
return []
if not screen_name:
return {"error": _("Please set a Twitter screen name to load favorites from, "
"in the Website Settings (it does not have to be yours)")}
if debug:
return {"error": _("Please set a Twitter screen name to load favorites from, "
"in the Website Settings (it does not have to be yours)")}
return []
twitter_tweets = request.registry['website.twitter.tweet']
tweets = twitter_tweets.search_read(
request.cr, request.uid,
cr, uid,
[('website_id','=', request.website.id),
('screen_name','=', screen_name)],
['tweet'], limit=int(limit), order="tweet_id desc", context=request.context)
if len(tweets) < 12:
return {"error": _("Twitter user @%(username)s has less than 12 favorite tweets. "
"Please add more or choose a different screen name.") % \
{'username': screen_name}}
if debug:
return {"error": _("Twitter user @%(username)s has less than 12 favorite tweets. "
"Please add more or choose a different screen name.") % \
{'username': screen_name}}
else:
return []
return [json.loads(tweet['tweet']) for tweet in tweets]

View File

@ -93,23 +93,25 @@
tweet.text = self.parse_tweet(tweet);
tweets.push(qweb.render("website.Twitter.Tweet", {'tweet': tweet}));
});
var f = Math.floor(tweets.length / 3);
var tweet_slice = [tweets.slice(0, f).join(" "), tweets.slice(f, f * 2).join(" "), tweets.slice(f * 2, tweets.length).join(" ")];
this.$scroller = $(qweb.render("website.Twitter.Scroller"));
this.$scroller.appendTo(this.$target.find(".twitter_timeline"));
this.$scroller.find("div[id^='scroller']").each(function(index, element){
var scrollWrapper = $('<div class="scrollWrapper"></div>');
var scrollableArea = $('<div class="scrollableArea"></div>');
scrollWrapper.append(scrollableArea)
.data('scrollableArea', scrollableArea);
scrollableArea.append(tweet_slice[index]);
$(element).append(scrollWrapper);
scrollableArea.width(self.get_wrapper_width(scrollableArea));
scrollWrapper.scrollLeft(index*180);
self.start_scrolling(scrollWrapper);
});
if (!_.isEmpty(tweets)) {
var f = Math.floor(tweets.length / 3);
var tweet_slice = [tweets.slice(0, f).join(" "), tweets.slice(f, f * 2).join(" "), tweets.slice(f * 2, tweets.length).join(" ")];
this.$scroller = $(qweb.render("website.Twitter.Scroller"));
this.$scroller.appendTo(this.$target.find(".twitter_timeline"));
this.$scroller.find("div[id^='scroller']").each(function(index, element){
var scrollWrapper = $('<div class="scrollWrapper"></div>');
var scrollableArea = $('<div class="scrollableArea"></div>');
scrollWrapper.append(scrollableArea)
.data('scrollableArea', scrollableArea);
scrollableArea.append(tweet_slice[index]);
$(element).append(scrollWrapper);
scrollableArea.width(self.get_wrapper_width(scrollableArea));
scrollWrapper.scrollLeft(index*180);
self.start_scrolling(scrollWrapper);
});
}
},
get_wrapper_width: function(wrapper){
var total_width = 0;