def get(self): pagename = None args = None if self.current_user: # load initial set of data query = MidautumnObject.all() query.order('-pubtime') objects = [] results = query.fetch(10) for obj in results: objects.append(obj.to_dict(current_user=self.current_user)) pagename = 'home.html' args = {'objects': objects, 'cursor': query.cursor(), 'more': len(objects) >= 10, 'profile': self.current_user.profile, } else: pagename = 'register.html' args = None dirname = os.path.dirname(__file__) path = os.path.join(dirname, 'view', pagename) self.response.out.write(template.render(path, args))
def get(self): args = {} pagename = 'objects.html' query = MidautumnObject.all() query.order('pubtime') objects = [] for obj in query: objects.append(obj.to_dict(details=True)) args['objects'] = objects # current user related info if self.current_user: args['profile'] = self.current_user.profile dirname = os.path.dirname(__file__) path = os.path.join(dirname, 'view', pagename) self.response.out.write(template.render(path, args))
def post(self): title = self.request.get('title') timestamp = self.request.get('timestamp') user = self.current_user query = db.GqlQuery("SELECT * FROM MidautumnObject WHERE title = :1", title) mo = query.get() args = None if not user: args = {'result': 'not_authorized'} elif mo: args = {'result': 'duplicated', 'objects': [mo.to_dict(details=True, current_user=user),]} else: mo = MidautumnObject(title=title, owner=user) mo.put() # fetch all objects after the timestamp # should include the one just posted query = MidautumnObject.all() query.filter('pubtime >', datetime.utcfromtimestamp(float(timestamp))) query.order('-pubtime') objects = [] for obj in query: objects.append(obj.to_dict(current_user=user)) # check achievements achievements = [] achievements.extend(achievement.check_post(mo)) args = {'result': 'success', 'objects': objects, 'achievements': achievements} self.response.headers['Content-Type'] = 'application/json' self.response.out.write(json.dumps(args))
def get(self): cursor = self.request.get('cursor', None) args = None # load initial set of data query = MidautumnObject.all() query.order('-pubtime') if cursor: query.with_cursor(cursor) objects = [] results = query.fetch(10) for obj in results: objects.append(obj.to_dict(current_user=self.current_user)) args = {'result': 'success', 'objects': objects, 'cursor': query.cursor(), 'more': len(objects) >= 10, } self.response.headers['Content-Type'] = 'application/json' self.response.out.write(json.dumps(args))