diff --git a/rhodecode/controllers/feed.py b/rhodecode/controllers/feed.py --- a/rhodecode/controllers/feed.py +++ b/rhodecode/controllers/feed.py @@ -52,23 +52,23 @@ class FeedController(BaseRepoController) self.feed_nr = 10 def __changes(self, cs): - changes = '' + changes = [] a = [safe_unicode(n.path) for n in cs.added] if a: - changes += '\nA ' + '\nA '.join(a) + changes.append('\nA ' + '\nA '.join(a)) m = [safe_unicode(n.path) for n in cs.changed] if m: - changes += '\nM ' + '\nM '.join(m) + changes.append('\nM ' + '\nM '.join(m)) d = [safe_unicode(n.path) for n in cs.removed] if d: - changes += '\nD ' + '\nD '.join(d) + changes.append('\nD ' + '\nD '.join(d)) - changes += '' + changes.append('') - return changes + return ''.join(changes) def atom(self, repo_name): """Produce an atom-1.0 feed via feedgenerator module""" @@ -78,16 +78,16 @@ class FeedController(BaseRepoController) description=self.description % repo_name, language=self.language, ttl=self.ttl) - + desc_msg = [] for cs in reversed(list(c.rhodecode_repo[-self.feed_nr:])): - desc = '%s - %s
' % (cs.author, cs.date)
-            desc += self.__changes(cs)
+            desc_msg.append('%s - %s
' % (cs.author, cs.date))
+            desc_msg.append(self.__changes(cs))
 
             feed.add_item(title=cs.message,
                           link=url('changeset_home', repo_name=repo_name,
                                    revision=cs.raw_id, qualified=True),
                           author_name=cs.author,
-                          description=desc)
+                          description=''.join(desc_msg))
 
         response.content_type = feed.mime_type
         return feed.writeString('utf-8')
@@ -100,16 +100,16 @@ class FeedController(BaseRepoController)
                          description=self.description % repo_name,
                          language=self.language,
                          ttl=self.ttl)
-
+        desc_msg = []
         for cs in reversed(list(c.rhodecode_repo[-self.feed_nr:])):
-            desc = '%s - %s
' % (cs.author, cs.date)
-            desc += self.__changes(cs)
+            desc_msg.append('%s - %s
' % (cs.author, cs.date))
+            desc_msg.append(self.__changes(cs))
 
             feed.add_item(title=cs.message,
                           link=url('changeset_home', repo_name=repo_name,
                                    revision=cs.raw_id, qualified=True),
                           author_name=cs.author,
-                          description=desc,
+                          description=''.join(desc_msg),
                          )
 
         response.content_type = feed.mime_type
diff --git a/rhodecode/lib/helpers.py b/rhodecode/lib/helpers.py
--- a/rhodecode/lib/helpers.py
+++ b/rhodecode/lib/helpers.py
@@ -376,12 +376,12 @@ def action_parser(user_log, feed=False):
                                       invalidation_list=[])
 
         message = lambda rev: get_changeset_safe(repo, rev).message
-
-        cs_links = " " + ', '.join ([link_to(rev,
+        cs_links = []
+        cs_links.append(" " + ', '.join ([link_to(rev,
                 url('changeset_home',
                 repo_name=repo_name,
                 revision=rev), title=tooltip(message(rev)),
-                class_='tooltip') for rev in revs[:revs_limit] ])
+                class_='tooltip') for rev in revs[:revs_limit] ]))
 
         compare_view = (' 
' '%s ' @@ -399,23 +399,23 @@ def action_parser(user_log, feed=False): '%s ' '%s') if not feed: - cs_links += html_tmpl % (_('and'), uniq_id, _('%s more') \ + cs_links.append(html_tmpl % (_('and'), uniq_id, _('%s more') \ % (len(revs) - revs_limit), - _('revisions')) + _('revisions'))) if not feed: html_tmpl = '' else: html_tmpl = ' %s ' - cs_links += html_tmpl % (uniq_id, ', '.join([link_to(rev, + cs_links.append(html_tmpl % (uniq_id, ', '.join([link_to(rev, url('changeset_home', repo_name=repo_name, revision=rev), title=message(rev), class_='tooltip') - for rev in revs[revs_limit:revs_top_limit]])) + for rev in revs[revs_limit:revs_top_limit]]))) if len(revs) > 1: - cs_links += compare_view - return cs_links + cs_links.append(compare_view) + return ''.join(cs_links) def get_fork_name(): repo_name = action_params