diff --git a/addons/website_twitter/controllers/main.py b/addons/website_twitter/controllers/main.py index afd636a26c4..dc958280ef4 100644 --- a/addons/website_twitter/controllers/main.py +++ b/addons/website_twitter/controllers/main.py @@ -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] diff --git a/addons/website_twitter/static/src/js/website.twitter.animation.js b/addons/website_twitter/static/src/js/website.twitter.animation.js index 9bd336b98d0..62d62cc5e74 100644 --- a/addons/website_twitter/static/src/js/website.twitter.animation.js +++ b/addons/website_twitter/static/src/js/website.twitter.animation.js @@ -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 = $('
'); - var scrollableArea = $('
'); - 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 = $('
'); + var scrollableArea = $('
'); + 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;