Skip to content
This repository has been archived by the owner on Apr 9, 2024. It is now read-only.

Commit

Permalink
Merge pull request #42 from rosskarchner/master
Browse files Browse the repository at this point in the history
Changes that were supposed to be in the previous pull request
  • Loading branch information
Ross M Karchner committed Nov 2, 2012
2 parents 74d9dfb + a1e3d4f commit 4df0e62
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 7 deletions.
2 changes: 1 addition & 1 deletion setup.py
Expand Up @@ -13,7 +13,7 @@


setup(name="django-nudge",
version="0.5.3",
version="0.8",
description="Use Nudge to (gently) push content between Django servers",
author="Joshua Ruihley, Ross Karchner",
author_email="joshua.ruihley@cfpb.gov",
Expand Down
12 changes: 8 additions & 4 deletions src/nudge/client.py
@@ -1,6 +1,6 @@
import datetime, hashlib, json, os, pickle, urllib, urllib2
from urlparse import urljoin

from itertools import chain
from Crypto.Cipher import AES

from django.core import serializers
Expand Down Expand Up @@ -45,8 +45,8 @@ def serialize_objects(key, batch_push_items):
revisions.append(version.revision)
if version.object:
foreign_key_fields= [f for f in version.object._meta.fields if type(f) == models.fields.related.ForeignKey]
many_to_many_fields= version.object._meta.many_to_many

many_to_many_field_names= [field.name for field in version.object._meta.many_to_many]
through_field_names=[rel.get_accessor_name() for rel in version.object._meta.get_all_related_objects()]
for related_object in [getattr(version.object, f.name) for f in foreign_key_fields]:
if related_object:
versions=get_for_object(related_object)
Expand All @@ -55,7 +55,11 @@ def serialize_objects(key, batch_push_items):

else:
related_objects.append(related_object)

for manager_name in chain(many_to_many_field_names, through_field_names):
manager=getattr(version.object, manager_name)
for obj in manager.all():
if obj not in related_objects:
related_objects.append(obj)
batch_items_serialized = serializers.serialize("json", revisions+related_objects+batch_versions)
b_plaintext = pickle.dumps({ 'items':batch_items_serialized })

Expand Down
3 changes: 1 addition & 2 deletions src/nudge/utils.py
Expand Up @@ -18,7 +18,6 @@ def __init__(self, version, batch=None):
self.version=version
if batch:
self.selected=self.key() in batch.selected_items


def __eq__(self, other):
return (self.content_type==other.content_type and self.pk==other.pk)
Expand Down Expand Up @@ -104,7 +103,7 @@ def seen(key):
else:
screened_pbis.append(pbi)

return screened_pbis
return sorted(screened_pbis, key=lambda pbi: pbi.content_type)

def add_versions_to_batch(batch, versions):
"""takes a list of Version obects, and adds them to the given Batch"""
Expand Down

0 comments on commit 4df0e62

Please sign in to comment.