Skip to content

Commit

Permalink
Remove nested dicts from activity streams data columns
Browse files Browse the repository at this point in the history
Always use table_dictize() instead of package_dictize(),
resource_dictize(), etc. when dictizing objects for the 'data' columns
of the activity and activity_detail tables. The full nested dicts were
more information than was necessary.
  • Loading branch information
Sean Hammond committed Jan 19, 2012
1 parent b862e1a commit 37690b8
Show file tree
Hide file tree
Showing 7 changed files with 30 additions and 21 deletions.
5 changes: 4 additions & 1 deletion ckan/logic/action/create.py
Expand Up @@ -7,6 +7,7 @@
from ckan.logic import NotFound, ValidationError
from ckan.logic import check_access
from ckan.lib.base import _
import ckan.lib.dictization
from ckan.lib.dictization.model_dictize import (package_to_api1,
package_to_api2,
group_to_api1,
Expand Down Expand Up @@ -179,7 +180,9 @@ def group_create(context, data_dict):
'object_id': group.id,
'activity_type': 'new group',
}
activity_dict['data'] = {'group': group_dictize(group, context)}
activity_dict['data'] = {
'group': ckan.lib.dictization.table_dictize(group, context)
}
activity_create(context, activity_dict)

if not context.get('defer_commit'):
Expand Down
4 changes: 3 additions & 1 deletion ckan/logic/action/update.py
Expand Up @@ -8,6 +8,7 @@

from ckan.lib.base import _
from vdm.sqlalchemy.base import SQLAlchemySession
import ckan.lib.dictization
from ckan.lib.dictization.model_dictize import (package_dictize,
package_to_api1,
package_to_api2,
Expand Down Expand Up @@ -337,7 +338,8 @@ def group_update(context, data_dict):
'object_id': group.id,
'activity_type': 'changed group',
}
activity_dict['data'] = {'group': group_dictize(group, context)}
activity_dict['data'] = {'group':
ckan.lib.dictization.table_dictize(group, context)}
from ckan.logic.action.create import activity_create
activity_create(context, activity_dict)
# TODO: Also create an activity detail recording what exactly changed in
Expand Down
25 changes: 14 additions & 11 deletions ckan/model/package.py
Expand Up @@ -541,24 +541,27 @@ def get_fields(core_only=False, fields_to_ignore=None):
return fields

def activity_stream_item(self, activity_type, revision, user_id):
import ckan.model as model
from ckan.lib.dictization.model_dictize import package_dictize
from ckan.logic import NotFound
assert activity_type in ("new", "changed", "deleted"), \
str(activity_type)
import ckan.model
import ckan.lib.dictization
import ckan.logic
assert activity_type in ("new", "changed", "deleted"), (
str(activity_type))
try:
d = {'package': package_dictize(self, context={'model': model})}
d = {'package': ckan.lib.dictization.table_dictize(self,
context={'model': ckan.model})}
return Activity(user_id, self.id, revision.id,
"%s package" % activity_type, d)
except NotFound:
except ckan.logic.NotFound:
# This happens if this package is being purged and therefore has no
# current revision.
# TODO: Purge all related activity stream items when a model object
# is purged.
return None

def activity_stream_detail(self, activity_id, activity_type):
import ckan.model as model
from ckan.lib.dictization.model_dictize import package_dictize
return ActivityDetail(activity_id, self.id, u"Package", activity_type,
{'package': package_dictize(self, context={'model':model})})
import ckan.model
import ckan.lib.dictization
package_dict = ckan.lib.dictization.table_dictize(self,
context={'model':ckan.model})
return ActivityDetail(activity_id, self.id, u"Package", activity_type,
{'package': package_dict })
6 changes: 4 additions & 2 deletions ckan/model/resource.py
Expand Up @@ -142,9 +142,11 @@ def related_packages(self):

def activity_stream_detail(self, activity_id, activity_type):
import ckan.model as model
from ckan.lib.dictization.model_dictize import resource_dictize
import ckan.lib.dictization
res_dict = ckan.lib.dictization.table_dictize(self,
context={'model':model})
return ActivityDetail(activity_id, self.id, u"Resource", activity_type,
{'resource': resource_dictize(self, context={'model':model})})
{'resource': res_dict})

class ResourceGroup(vdm.sqlalchemy.RevisionedObjectMixin,
vdm.sqlalchemy.StatefulObjectMixin,
Expand Down
7 changes: 3 additions & 4 deletions ckan/model/tag.py
Expand Up @@ -115,12 +115,11 @@ def activity_stream_detail(self, activity_id, activity_type):
return None

# Return an 'added tag' or 'removed tag' activity.
from ckan.lib.dictization.model_dictize import package_dictize
from ckan.lib.dictization.model_dictize import tag_dictize
import ckan.lib.dictization
import ckan.model
c = {'model': ckan.model}
d = {'tag': tag_dictize(self.tag, c),
'package': package_dictize(self.package, c)}
d = {'tag': ckan.lib.dictization.table_dictize(self.tag, c),
'package': ckan.lib.dictization.table_dictize(self.package, c)}
return activity.ActivityDetail(
activity_id=activity_id,
object_id=self.id,
Expand Down
2 changes: 1 addition & 1 deletion ckan/templates/activity_streams/changed_group.html
Expand Up @@ -12,7 +12,7 @@
<span style="background:yellow;">updated</span>
the group
<a href="${h.url_for(controller='group', action='read', id=activity.data.group.name)}">
${activity.data.group.display_name}
${activity.data.group.name}
</a>
<div style="color:#999;">
${h.truncate(activity.data.group.description, length=80, whole_word=True)}
Expand Down
2 changes: 1 addition & 1 deletion ckan/templates/activity_streams/new_group.html
Expand Up @@ -12,7 +12,7 @@
<span style="background:yellow;">created</span>
the group
<a href="${h.url_for(controller='group', action='read', id=activity.data.group.name)}">
${activity.data.group.display_name}
${activity.data.group.name}
</a>
${h.render_datetime(activity.timestamp, '%B %d %Y')}
</div>
Expand Down

0 comments on commit 37690b8

Please sign in to comment.