コード例 #1
0
ファイル: timeline.py プロジェクト: liuhsinyu/APT_Foodbook
 def post(self):
     recipe_authorID = self.request.get('recipe_authorID')
     recipe_id = self.request.get('recipe_id')
     FromAndroid = self.request.get('FromAndroid')
     if int(FromAndroid)==0:
         recipe = Recipe.get_by_id(long(recipe_id))
         if self.request.get('comment')!="":
             user = User.get_by_id(self.session.get('user_id'))
             comment = Comment(author=user.user_id,comment_text=self.request.get('comment'))
             recipe.comments.append(comment)
             recipe.put()
             time.sleep(1)
     else:
         history_query = History.query(History.recipe_id ==recipe_id, History.recipe_authorID==recipe_authorID)
         recipe_query_all= history_query.fetch()
         if self.request.get('comment')!="":
             user = User.get_by_id(self.session.get('user_id'))
             comment = Comment(author=user.user_id,comment_text=self.request.get('comment'))
             recipe_query_all[0].comments.append(comment)
             recipe_query_all[0].put()
             time.sleep(1)
     self.redirect('/timeline')
コード例 #2
0
ファイル: create_page.py プロジェクト: liuhsinyu/APT_Foodbook
    def post(self):
        upload = self.get_uploads('cover_image')
        name = self.request.get('recipe_name')
        author = self.request.get('user_id')
        recipe_query = Recipe.query(Recipe.name == name,Recipe.author == author)
        recipes = recipe_query.fetch(1)
        if len(recipes) >0:
            self.error(409)
            self.redirect('/error?error=1')
        else:
            recipe = Recipe()

            recipe.name = name
            if self.request.get('estimated_time') != "":
                tmp = time.strptime(self.request.get('estimated_time'),"%H:%M")
                recipe.estimate_time = datetime.time(hour=tmp.tm_hour,minute=tmp.tm_min)
            else:
                recipe.estimate_time =datetime.time(hour=0,minute=0)
            recipe.portion = int(self.request.get('portions'))
            recipe.description = self.request.get('description')

            ingredient_number = int(self.request.get('ingredient_number'))
            for i in xrange(ingredient_number):
                if self.request.get('ingredient'+str(i+1))!="":
                    recipe.ingredients.append(self.request.get('ingredient'+str(i+1)))

            direction_number = int(self.request.get('direction_number'))
            for i in xrange(direction_number):
                if self.request.get('direction'+str(i+1))!="":
                    recipe.directions.append(self.request.get('direction'+str(i+1)))
            if self.request.get('tag[]')!="":
                recipe.tags = json.loads(self.request.get('tag[]'))

            recipe.favorite_count = 0
            recipe.view_count = 0
            if len(upload) >0:
                recipe.photos.append(Photo(
                    blob_key = upload[0].key(),
                    filename= upload[0].filename,
                ))
            recipe.author = author

            recipe.put()
            history = History()
            history.recipe_name = name
            history.FromAndroid = False
            history.recipe_id = str(recipe.key.id())
            history.tags = json.loads(self.request.get('tag[]'))
            history.recipe_author=User.get_by_id(author).user_name
            history.recipe_description= self.request.get('description')
            history.recipe_authorID = author
            if len(upload) >0:
                history.photos.append(Photo(
                    blob_key = upload[0].key(),
                    filename= upload[0].filename,
                ))
            history.put()
            print history

            time.sleep(1)
            self.redirect('/viewpage?recipe_id='+str(recipe.key.id()))
コード例 #3
0
    def post(self):
        upload = self.get_uploads()[0]
        recipe_id = self.request.get('recipe_id')
        recipe = Recipe.get_by_id(long(recipe_id))
        # # user_id = self.session.get('user_id')
        author_comments = self.request.get('author_comments')
        user_id = self.request.get('user_id')
        user = User.get_by_id(user_id)

        #img = images.resize(img, 200, 200)
        # if len(upload) >0:
        #     recipe.photos.append(Photo(
        #     blob_key = upload[0].key(),
        #     filename= upload[0].filename,
        # ))
        recipe.put()

        history = History()
        history.recipe_name = recipe.name
        history.author_comments = author_comments
        history.FromAndroid = True
        history.recipe_id = str(recipe.key.id())
        history.tags = recipe.tags
        history.recipe_author= user.user_name
        history.recipe_description= recipe.description
        history.recipe_authorID = user_id

        history.photos.append(Photo(
            blob_key = upload.key(),
            filename= "hi",
        ))
        # if len(upload) >0:
        #     history.photos.append(Photo(
        #         # blob_key = upload[0].key(),
        #         # filename= upload[0].filename,
        #         blob_key = upload.key(),
        #         filename= "hi",
        #     ))
        history.put()
        time.sleep(1)
コード例 #4
0
ファイル: view_page.py プロジェクト: liuhsinyu/APT_Foodbook
    def get(self):
        recipe_id = self.request.get('recipe_id')
        print "-------------------"
        recipe = Recipe.get_by_id(long(recipe_id))

        recipe_query = History.query(History.recipe_authorID==self.session.get('user_id'))
        recipe_query_test = recipe_query.fetch()
        print recipe_query_test
        print 'yoyoyoyoyo'

        save_cache = Save_cache.get_by_id(DEFAULT_Save_Cache_NAME)
        if not save_cache:
            save_cache = Save_cache(id=DEFAULT_Save_Cache_NAME)
        photo_urls = []
        for i in xrange(len(recipe.photos)):
            photo_urls.append(images.get_serving_url(recipe.photos[i].blob_key))
        author = User.get_by_id(recipe.author)
        ingredients_list = []
        user = User.get_by_id(self.session.get('user_id'))
        shopping_list = user.shopping_list
        isAllInList = True
        for ingredient in recipe.ingredients:
            if ingredient in shopping_list:
                ingredients_list.append((ingredient,True))
            else:
                ingredients_list.append((ingredient,False))
                isAllInList = False
        isAuthor = False
        if user.user_id == author.user_id:
            isAuthor = True
        isFavorite = False
        if recipe_id in user.favorite_recipes:
            isFavorite = True
        isWish = False
        if recipe_id in user.wish_recipes:
            isWish = True
        comments_list = []
        for comment in recipe.comments:
            author2 = User.get_by_id(comment.author)
            time_str = comment.time.strftime("%B %d, %Y at %H:%M:%S")
            comment_dict = {
                'author':author2.user_name,
                'author_profile':author2.photo,
                'comment_text':comment.comment_text,
                'time': time_str,
            }
            comments_list.append(comment_dict)

        same_list = []
        recipe_name = Recipe.query(Recipe.name==recipe.name)
        for recipe2 in recipe_name:
            if User.get_by_id(recipe2.author).user_name is not author.user_name:
                same_dict = {
                    'author': User.get_by_id(recipe2.author).user_name,
                    'recipe_id': recipe2.key.id(),
                }
                same_list.append(same_dict)
        print author.user_name
        template = JINJA_ENVIRONMENT.get_template('template/view_page.html')
        template_values = {
            'recipe_id':recipe_id,
            'recipe_name':recipe.name,
            'keywords':json.dumps(save_cache.save_cache),
            'photo_urls':photo_urls,
            'author':author.user_name,
            'ingredients':ingredients_list,
            'directions':recipe.directions,
            'estimate_time':recipe.estimate_time,
            'portion':recipe.portion,
            'tags':recipe.tags,
            'isAllInList':isAllInList,
            'isFavorite':isFavorite,
            'isWish':isWish,
            'isAuthor':isAuthor,
            'comments_list':comments_list,
            'same_list':same_list,
            'same_list_len':len(same_list),
        }
        self.response.write(template.render(template_values))
コード例 #5
0
ファイル: timeline.py プロジェクト: liuhsinyu/APT_Foodbook
    def get(self):

        # recipe_query = History.query(History.recipe_authorID==self.session.get('user_id'))
        recipe_query = History.query()
        recipe_query_all_tmp = recipe_query.fetch()
        recipe_query_all= sorted(recipe_query_all_tmp, key=lambda contract: (contract.create_time.strftime("%Y-%m-%d %H:%M:%S")), reverse=True)
        print recipe_query_all

        print 'yoyoyoyoyo'

        save_cache = Save_cache.get_by_id(DEFAULT_Save_Cache_NAME)
        if not save_cache:
            save_cache = Save_cache(id=DEFAULT_Save_Cache_NAME)



        history_list = []
        for tmp in recipe_query_all:
            if tmp.FromAndroid == False:
                FromAndroid =0
            else:
                FromAndroid =1

            if len(tmp.tags)==0:
                tmp.tags.append('Delicious')
                tmp.tags.append('YUMMY')
            print tmp.recipe_id
            # avatar = images.resize(tmp.photos[0], 32, 32)
            print type(tmp.create_time.strftime)

            if not tmp.recipe_id:
                # tmp.recipe_id = '5302669702856704'
                tmp.recipe_id = '5629499534213120'
            if not tmp.author_comments:
                tmp.author_comments = 'its good'

            recipe = Recipe.get_by_id(long(tmp.recipe_id))

            comments_list = []
            if tmp.FromAndroid == False:
                for comment in recipe.comments:
                    author2 = User.get_by_id(comment.author)
                    time_str = comment.time.strftime("%B %d, %Y at %H:%M:%S")
                    comment_dict = {
                        'author':author2.user_name,
                        'author_profile':author2.photo,
                        'comment_text':comment.comment_text,
                        'time': time_str,
                    }
                    comments_list.append(comment_dict)
            else:
                for comment in tmp.comments:
                    author2 = User.get_by_id(comment.author)
                    time_str = comment.time.strftime("%B %d, %Y at %H:%M:%S")
                    comment_dict = {
                        'author':author2.user_name,
                        'author_profile':author2.photo,
                        'comment_text':comment.comment_text,
                        'time': time_str,
                    }
                    comments_list.append(comment_dict)

            recipe_dict = {'recipe_author': tmp.recipe_author,
                           'recipe_name':  tmp.recipe_name,
                           'comments': tmp.comments,
                           'comments_author': tmp.comments_author,
                           'author_comments': tmp.author_comments,
                           'comments_list': comments_list,
                           'recipe_authorID':tmp.recipe_authorID,
                           'tags': tmp.tags,
                           'id': tmp.recipe_id,
                           'FromAndroid': FromAndroid,
                           'create_time':  tmp.create_time.strftime("%Y-%m-%d %H:%M:%S"),
                           'user_photo': User.get_by_id(tmp.recipe_authorID).photo,
                           'photo': images.get_serving_url(tmp.photos[0].blob_key),
                           'recipe_description':  tmp.recipe_description,
                           }
            history_list.append(recipe_dict)


        template = JINJA_ENVIRONMENT.get_template('template/timeline.html')
        template_values = {
            'history_list':history_list,
            'keywords':json.dumps(save_cache.save_cache),
        }
        self.response.write(template.render(template_values))