def get(self): user, user_details = self.get_current_user(True, True) if not user: return if "dump" in self.request.arguments(): contents, subcontents, ratings, _counts = \ self.get_contents(get_ratings=True, get_ratings_count=False) output = {"content": []} for content in contents: output['content'].append(content.to_dict()) if content.key.urlsafe() in ratings: output['content'][-1]['ratings'] = \ [rating.to_dict() for rating in ratings[content.key.urlsafe()]] if content.key.urlsafe() in subcontents: output['content'][-1]['subcontents'] = [] for subcontent in subcontents[content.key.urlsafe()]: output['content'][-1]['subcontents'].append(subcontent.to_dict()) if subcontent.key.urlsafe() in ratings: output['content'][-1]['subcontents'][-1]['ratings'] = \ [rating.to_dict() for rating in ratings[subcontent.key.urlsafe()]] users = UserDetails.query(ancestor=\ ndb.Key('UserDetails', ANNOTATION_NAME)).fetch() output["users"] = map(lambda user_detail: user_detail.to_dict(), users) self.response.headers.add_header("Content-type", "text/x-yaml") self.response.write(yaml.dump(output)) else: contents, subcontents, _ratings, counts = self.get_contents() template_values = { "contents": contents, "counts": counts, "subcontents": subcontents, } self.template_response('admin.html', template_values)