Fix serialization after model changes

After the recent model changes there were some bugs which were
introduced into the serialization methods of the models. This commit
fixes those issues.
This commit is contained in:
Jessica Tallon 2015-08-20 11:31:50 +02:00
parent 35fbad47d7
commit de366f735a
2 changed files with 11 additions and 10 deletions

View File

@ -451,8 +451,8 @@ class ActivityMixin(object):
"audio": _("audio"), "audio": _("audio"),
"person": _("a person"), "person": _("a person"),
} }
obj = self.object_helper.get_object() obj = self.object
target = None if self.target_helper is None else self.target_helper.get_object() target = None if self.target is None else self.target
actor = self.get_actor actor = self.get_actor
content = verb_to_content.get(self.verb, None) content = verb_to_content.get(self.verb, None)
@ -506,7 +506,7 @@ class ActivityMixin(object):
"updated": updated.isoformat(), "updated": updated.isoformat(),
"content": self.content, "content": self.content,
"url": self.get_url(request), "url": self.get_url(request),
"object": self.get_object.serialize(request), "object": self.object().serialize(request),
"objectType": self.object_type, "objectType": self.object_type,
"links": { "links": {
"self": { "self": {
@ -521,9 +521,8 @@ class ActivityMixin(object):
if self.title: if self.title:
obj["title"] = self.title obj["title"] = self.title
target = self.get_target if self.target_id is not None:
if target is not None: obj["target"] = self.target().serialize(request)
obj["target"] = target.serialize(request)
return obj return obj

View File

@ -304,6 +304,8 @@ class User(Base, UserMixin):
if self.location: if self.location:
user.update({"location": self.get_location.serialize(request)}) user.update({"location": self.get_location.serialize(request)})
return user
def unserialize(self, data): def unserialize(self, data):
if "summary" in data: if "summary" in data:
self.bio = data["summary"] self.bio = data["summary"]
@ -689,8 +691,9 @@ class MediaEntry(Base, MediaEntryMixin):
author = self.get_uploader author = self.get_uploader
published = UTC.localize(self.created) published = UTC.localize(self.created)
updated = UTC.localize(self.updated) updated = UTC.localize(self.updated)
public_id = self.get_public_id(request)
context = { context = {
"id": self.get_public_id(request), "id": public_id,
"author": author.serialize(request), "author": author.serialize(request),
"objectType": self.object_type, "objectType": self.object_type,
"url": self.url_for_self(request.urlgen, qualified=True), "url": self.url_for_self(request.urlgen, qualified=True),
@ -707,7 +710,7 @@ class MediaEntry(Base, MediaEntryMixin):
}, },
"links": { "links": {
"self": { "self": {
"href": href, "href": public_id,
}, },
} }
@ -1276,7 +1279,6 @@ class CommentReport(ReportBase):
MediaComment, backref=backref("reports_filed_on", MediaComment, backref=backref("reports_filed_on",
lazy="dynamic")) lazy="dynamic"))
class MediaReport(ReportBase): class MediaReport(ReportBase):
""" """
Reports that have been filed on media entries Reports that have been filed on media entries
@ -1435,7 +1437,7 @@ class Activity(Base, ActivityMixin):
# Create the generic foreign Key for the target # Create the generic foreign Key for the target
target_id = Column(Integer, ForeignKey(GenericModelReference.id), nullable=True) target_id = Column(Integer, ForeignKey(GenericModelReference.id), nullable=True)
target_helper = relationship(GenericModelReference, foreign_keys=[target_id]) target_helper = relationship(GenericModelReference, foreign_keys=[target_id])
taget = association_proxy("target_helper", "get_target", target = association_proxy("target_helper", "get_object",
creator=GenericModelReference.find_or_new) creator=GenericModelReference.find_or_new)
get_actor = relationship(User, get_actor = relationship(User,