diff --git a/ckan/lib/dictization/model_save.py b/ckan/lib/dictization/model_save.py
index a591dbb2a9d..6c646fc35d7 100644
--- a/ckan/lib/dictization/model_save.py
+++ b/ckan/lib/dictization/model_save.py
@@ -453,8 +453,12 @@ def activity_dict_save(activity_dict, context):
object_id = activity_dict['object_id']
revision_id = activity_dict['revision_id']
activity_type = activity_dict['activity_type']
+ if activity_dict.has_key('data'):
+ data = activity_dict['data']
+ else:
+ data = None
activity_obj = model.Activity(user_id, object_id, revision_id,
- activity_type)
+ activity_type, data)
session.add(activity_obj)
# TODO: Handle activity details.
diff --git a/ckan/logic/action/create.py b/ckan/logic/action/create.py
index cb619a3a2d3..c82b2c63937 100644
--- a/ckan/logic/action/create.py
+++ b/ckan/logic/action/create.py
@@ -173,6 +173,15 @@ def group_create(context, data_dict):
model.Session.flush()
for item in PluginImplementations(IGroupController):
item.create(group)
+
+ activity_dict = {
+ 'user_id': model.User.by_name(user.decode('utf8')).id,
+ 'object_id': group.id,
+ 'activity_type': 'new group',
+ }
+ activity_dict['data'] = {'group': group_dictize(group, context)}
+ activity_create(context, activity_dict)
+
if not context.get('defer_commit'):
model.repo.commit()
context["group"] = group
diff --git a/ckan/logic/action/get.py b/ckan/logic/action/get.py
index d9192ff5eee..b861ca1e7f5 100644
--- a/ckan/logic/action/get.py
+++ b/ckan/logic/action/get.py
@@ -915,6 +915,10 @@ def render_changed_user_activity(context, activity):
return render('activity_streams/changed_user.html',
extra_vars = {'activity': activity})
+def render_new_group_activity(context, activity):
+ return render('activity_streams/new_group.html',
+ extra_vars = {'activity': activity})
+
# Global dictionary mapping activity types to functions that render activity
# dicts to HTML snippets for including in HTML pages.
activity_renderers = {
@@ -922,6 +926,7 @@ def render_changed_user_activity(context, activity):
'changed package' : render_changed_package_activity,
'new user' : render_new_user_activity,
'changed user' : render_changed_user_activity,
+ 'new group' : render_new_group_activity,
}
def user_activity_list_html(context, data_dict):
diff --git a/ckan/templates/activity_streams/new_group.html b/ckan/templates/activity_streams/new_group.html
new file mode 100644
index 00000000000..834bd9a0a36
--- /dev/null
+++ b/ckan/templates/activity_streams/new_group.html
@@ -0,0 +1,20 @@
+
+