[FIX] website_twitter: display setup/debug info only for website editors, not visitors
authorOlivier Dony <odo@openerp.com>
Mon, 22 Sep 2014 12:35:13 +0000 (14:35 +0200)
committerOlivier Dony <odo@openerp.com>
Mon, 22 Sep 2014 12:54:10 +0000 (14:54 +0200)
addons/website_twitter/controllers/main.py
addons/website_twitter/static/src/js/website.twitter.animation.js

index afd636a..dc95828 100644 (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]
index 9bd336b..62d62cc 100644 (file)
                 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;