'admin' if self.has_privilege(u'admin') else 'user',
self.username)
+ def get_public_id(self, host):
+ return "acct:{0}@{1}".format(self.username, host)
+
def serialize(self, request):
user = {
- "id": "acct:{0}@{1}".format(self.username, request.host),
+ "id": self.get_public_id(request.host),
"preferredUsername": self.username,
- "displayName": "{0}@{1}".format(self.username, request.host),
+ "displayName": self.get_public_id(request.host).split(":", 1)[1],
"links": {
"self": {
"href": request.urlgen(
if ascending:
query = query.order_by(Comment.added.asc())
else:
- qury = query.order_by(Comment.added.desc())
+ query = query.order_by(Comment.added.desc())
return FakeCursor(query, lambda c:c.comment())
cascade="all, delete-orphan"))
deletion_mode = Base.SOFT_DELETE
+ def soft_delete(self, *args, **kwargs):
+ # Find the GMR for this model.
+ gmr = GenericModelReference.query.filter_by(
+ obj_pk=self.id,
+ model_type=self.__tablename__
+ ).first()
+
+ # Delete the Comment object for this comment
+ Comment.query.filter_by(comment_id=gmr.id).delete()
+ return super(TextComment, self).soft_delete(*args, **kwargs)
+
def serialize(self, request):
""" Unserialize to python dictionary for API """
target = self.get_reply_to()
# Get all serialized output in a list
items = [i.serialize(request) for i in self.get_collection_items()]
return {
- "totalItems": self.items,
+ "totalItems": self.num_items,
"url": self.url_for_self(request.urlgen, qualified=True),
"items": items,
}
resolved = Column(DateTime)
result = Column(UnicodeText)
- object_id = Column(Integer, ForeignKey(GenericModelReference.id), nullable=False)
+ object_id = Column(Integer, ForeignKey(GenericModelReference.id), nullable=True)
object_helper = relationship(GenericModelReference)
obj = association_proxy("object_helper", "get_object",
creator=GenericModelReference.find_or_new)
)
def serialize(self, request):
- return {
+ deleted = UTC.localize(self.deleted).isoformat()
+ context = {
"id": self.public_id,
"objectType": self.object_type,
- "actor": self.actor(),
- "published": self.deleted,
- "updated": self.deleted,
- "deleted": self.deleted
+ "published": deleted,
+ "updated": deleted,
+ "deleted": deleted,
}
+ if self.actor_id is not None:
+ context["actor"] = self.actor().serialize(request)
+
+ return context
MODELS = [
LocalUser, RemoteUser, User, MediaEntry, Tag, MediaTag, Comment, TextComment,
Collection, CollectionItem, MediaFile, FileKeynames, MediaAttachmentFile,