[#6828] Changes related to activitystream refactor

- Activities are proper objects now, not dicts
- Specify Ming as default storage driver in setup.py
- Configure activitystream for tests

Signed-off-by: Tim Van Steenburgh <tvansteenburgh@gmail.com>
diff --git a/Allura/allura/model/timeline.py b/Allura/allura/model/timeline.py
index 90c918d..38550b8 100644
--- a/Allura/allura/model/timeline.py
+++ b/Allura/allura/model/timeline.py
@@ -63,7 +63,7 @@
         """Return True if c.user has 'read' access to this activity,
         otherwise return False.
         """
-        extras_dict = activity['obj'].get('activity_extras')
+        extras_dict = activity.obj.activity_extras
         if not extras_dict: return True
         allura_id = extras_dict.get('allura_id')
         if not allura_id: return True
diff --git a/Allura/allura/websetup/schema.py b/Allura/allura/websetup/schema.py
index 320c454..0198f8a 100644
--- a/Allura/allura/websetup/schema.py
+++ b/Allura/allura/websetup/schema.py
@@ -20,6 +20,8 @@
 """Setup the allura application"""
 
 import logging
+
+import activitystream
 from tg import config
 import pylons
 from paste.registry import Registry
@@ -37,6 +39,7 @@
     REGISTRY.register(pylons.app_globals, config['pylons.app_globals'])
     REGISTRY.register(allura.credentials, allura.lib.security.Credentials())
     ming.configure(**conf)
+    activitystream.configure(**conf)
     # Nothing to do
     log.info('setup_schema called')
 
diff --git a/Allura/setup.py b/Allura/setup.py
index 32e6eb4..bc829ce 100644
--- a/Allura/setup.py
+++ b/Allura/setup.py
@@ -146,5 +146,7 @@
     [easy_widgets.engines]
     jinja = allura.config.app_cfg:JinjaEngine
 
+    [activitystream.storage]
+    driver = activitystream.storage.mingstorage:MingStorage
     """,
 )
diff --git a/Allura/test.ini b/Allura/test.ini
index 8747433..99ca324 100644
--- a/Allura/test.ini
+++ b/Allura/test.ini
@@ -52,6 +52,7 @@
 activitystream.activity_collection = activities
 activitystream.node_collection = nodes
 activitystream.timeline_collection = timelines
+activitystream.recording.enabled = true
 activitystream.enabled = true
 
 solr.mock = true
diff --git a/ForgeActivity/forgeactivity/templates/index.html b/ForgeActivity/forgeactivity/templates/index.html
index e4ad26a..6189688 100644
--- a/ForgeActivity/forgeactivity/templates/index.html
+++ b/ForgeActivity/forgeactivity/templates/index.html
@@ -37,7 +37,7 @@
 {% endblock %}
 
 {% macro activity_obj(o) %}
-  <a href="{{o['activity_url']}}">{{o['activity_name']}}</a>
+  <a href="{{o.activity_url}}">{{o.activity_name}}</a>
 {% endmacro %}
 
 {% block content %}
@@ -47,8 +47,8 @@
   {% else %}
     <ul>
         {% for a in timeline %}
-        <li>{{activity_obj(a['actor'])}} {{a['verb']}} {{activity_obj(a['obj'])}} {% if a.get('target') %}on {{activity_obj(a['target'])}}{% endif %} {{h.ago(a['published'])}}</li>
-        <!-- Score: {{ a.get('score') }} -->
+        <li>{{activity_obj(a.actor)}} {{a.verb}} {{activity_obj(a.obj)}} {% if a.target.activity_name %}on {{activity_obj(a.target)}}{% endif %} {{h.ago(a.published)}}</li>
+        <!-- Score: {{ a.score }} -->
         {% endfor %}
     </ul>
   {% endif %}