Exemplo n.º 1
0
    def post(self, *args):
        try:
            keywords = self.get_argument('keywords')
        except:
            keywords = None

        if keywords is not None:
            Calculate.search_add_keyword(keywords)
            try:
                categories = Category.get()
                cate_result = Category.find_by_name(keywords)
                tag_result = Tag.find_by_name(keywords)
            except Exception as e:
                self.send_error(404)
                send_error_email('Search Error', str(e))

            try:
                C = cate_result['diaries']
            except:
                C = []

            try:
                T = tag_result['diaries']
            except:
                T = []

            real_result = list(C+T)

            """
                To combine tag_result and category_result
                first make an empty list to save filtered_result
                and to make faster, make another empty list to save diary_id to ensure not append repeat diary
            """

            filtered_result = []
            cache_did = []

            for i in real_result:
                if cache_did == []:
                    cache_did.append(i['did'])
                    filtered_result.append(i)
                else:
                    if i['did'] not in cache_did:
                        cache_did.append(i['did'])
                        filtered_result.append(i)

            profile = Account.get()

            if filtered_result != []:
                self.render('Search/result.html', detail=filtered_result, categories=categories, profile=profile)
            else:
                filtered_result = None
                self.render('Search/result.html', detail=filtered_result, categories=categories, profile=profile)
        else:
            self.redirect('/')
Exemplo n.º 2
0
    def post(self, *args):
        
        try:
            did = self.get_argument('did')
            title = self.get_argument('title')
            content = self.get_argument('content')
            c_name = self.get_argument('category_name')
            c_id = self.get_argument('c_id')
        except Exception as e:
            refer = self.request.headers.get('Referer')
            self.redirect(refer)
        
        try:
            tags = self.get_argument('tags')
        except:
            tags = None

        if tags:
            splited_tags = tags.split(',')
        else:
            splited_tags = None

        """" determin whether there is a exist undefine category
             if there is not, create it
             else use its c_id
        """
        if c_id == 'none':
            detail = Category.find_by_name(c_name)
            try:
                c_id = detail.get('_id')
            except:
                c_id = Category.new(c_name) 
        try:
            Diary.update(did, title, content, c_name, c_id, splited_tags)
        except Exception as e:
            print str(e)

        self.redirect('/admin/all-post/1')