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]
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;