You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by br...@apache.org on 2012/12/07 23:26:35 UTC
[3/49] git commit: [#5363] ticket:228 added short url to tracker rss
feed
[#5363] ticket:228 added short url to tracker rss feed
Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/56332021
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/56332021
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/56332021
Branch: refs/heads/db/4803
Commit: 56332021a84dc4f92beb9b4b5858ec91aa189744
Parents: 16d2c6c
Author: Yuriy Arhipov <yu...@yandex.ru>
Authored: Thu Dec 6 14:54:32 2012 +0400
Committer: Yuriy Arhipov <yu...@yandex.ru>
Committed: Fri Dec 7 03:34:26 2012 +0400
----------------------------------------------------------------------
Allura/allura/model/artifact.py | 8 ++++-
Allura/allura/model/discuss.py | 6 ++++-
.../forgetracker/tests/functional/test_root.py | 19 +++++++++++++++
3 files changed, 30 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/56332021/Allura/allura/model/artifact.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/artifact.py b/Allura/allura/model/artifact.py
index f155bb8..219b52b 100644
--- a/Allura/allura/model/artifact.py
+++ b/Allura/allura/model/artifact.py
@@ -621,7 +621,7 @@ class Feed(MappedClass):
@classmethod
- def post(cls, artifact, title=None, description=None, author=None, author_link=None, author_name=None, pubdate=None):
+ def post(cls, artifact, title=None, description=None, author=None, author_link=None, author_name=None, pubdate=None, link=None):
"""
Create a Feed item. Returns the item.
But if anon doesn't have read access, create does not happen and None is returned
@@ -643,6 +643,10 @@ class Feed(MappedClass):
if description is None: description = title
if pubdate is None:
pubdate = datetime.utcnow()
+
+ if link is None:
+ link=artifact.url()
+
item = cls(
ref_id=artifact.index_id(),
neighborhood_id=artifact.app_config.project.neighborhood_id,
@@ -651,7 +655,7 @@ class Feed(MappedClass):
tool_name=artifact.app_config.tool_name,
title=title,
description=description,
- link=artifact.url(),
+ link=link,
pubdate=pubdate,
author_name=author_name,
author_link=author_link or author.url())
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/56332021/Allura/allura/model/discuss.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/discuss.py b/Allura/allura/model/discuss.py
index 136d2c8..a6a00a9 100644
--- a/Allura/allura/model/discuss.py
+++ b/Allura/allura/model/discuss.py
@@ -207,7 +207,11 @@ class Thread(Artifact, ActivityObject):
self.num_replies += 1
if not self.first_post:
self.first_post_id = p._id
- Feed.post(self, title=p.subject, description=p.text)
+ link = None
+ if self.app.tool_label == 'Tickets':
+ link = self.artifact.url() + p.url_paginated()[len(self.url()):]
+
+ Feed.post(self, title=p.subject, description=p.text, link=link)
return p
def post(self, text, message_id=None, parent_id=None,
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/56332021/ForgeTracker/forgetracker/tests/functional/test_root.py
----------------------------------------------------------------------
diff --git a/ForgeTracker/forgetracker/tests/functional/test_root.py b/ForgeTracker/forgetracker/tests/functional/test_root.py
index afa0366..7ba0598 100644
--- a/ForgeTracker/forgetracker/tests/functional/test_root.py
+++ b/ForgeTracker/forgetracker/tests/functional/test_root.py
@@ -823,6 +823,25 @@ class TestFunctionalController(TrackerTestController):
r = self.app.get('/bugs/1/', dict(page=1, limit=2))
assert_true('Page 2 of 2' in r)
+ def test_discussion_feed(self):
+ summary = 'test discussion paging'
+ ticket_view = self.new_ticket(summary=summary).follow()
+ for f in ticket_view.html.findAll('form'):
+ if f.get('action', '').endswith('/post'):
+ break
+ post_content = 'ticket discussion post content'
+ params = dict()
+ inputs = f.findAll('input')
+ for field in inputs:
+ if field.has_key('name'):
+ params[field['name']] = field.has_key('value') and field['value'] or ''
+ params[f.find('textarea')['name']] = post_content
+ self.app.post(f['action'].encode('utf-8'), params=params,
+ headers={'Referer': '/bugs/1/'.encode("utf-8")})
+ r = self.app.get('/bugs/feed.rss')
+ post = M.Post.query.find().first()
+ assert '/p/test/bugs/1/?limit=50#' + post.slug in r
+
def test_bulk_edit_index(self):
self.new_ticket(summary='test first ticket', status='open')
self.new_ticket(summary='test second ticket', status='accepted')