Beispiel #1
0
def heartbeats(request):
    if not request.user.is_authenticated:
        return HttpResponseRedirect('/login')
    if request.method == 'POST':
        is_search = False
        if request.POST.has_key('search'):
            is_search = True
            words = request.POST['search']
            search_title = BlogPost.objects.filter(title__contains=words)
            search_body = BlogPost.objects.filter(body__contains=words)
            posts = search_body | search_title
            posts = list(posts)
            relation_people = []
            for post in posts:
                b = User.objects.get(username=post.author)
                a = Profile.objects.get(user=b)
                relation_people.extend([a])
            posts = zip(posts, relation_people)
            return render(request, 'heartbeats.html', {
                'posts': posts,
                'is_search': is_search,
                'word': words
            })
        if request.POST.has_key('body'):
            bp = BlogPost()
            bp.title = request.POST['title']
            bp.body = request.POST['body']
            bp.author = request.user.username
            bp.timestamp = datetime.now()
            bp.save()
            posts = BlogPost.objects.all()
            posts = list(posts)
            relation_people = []
            for post in posts:
                b = User.objects.get(username=post.author)
                a = Profile.objects.get(user=b)
                relation_people.extend([a])
            posts = zip(posts, relation_people)
            return render(
                request, 'heartbeats.html', {
                    'posts': posts,
                    'is_search': is_search,
                    'relation_people': relation_people
                })
    else:
        posts = BlogPost.objects.all()
        posts = list(posts)
        relation_people = []
        for post in posts:
            b = User.objects.get(username=post.author)
            a = Profile.objects.get(user=b)
            relation_people.extend([a])
        posts = zip(posts, relation_people)
        return render(request, 'heartbeats.html', {
            'posts': posts,
            'relation_people': relation_people
        })
Beispiel #2
0
def update_blog_post(title, content, is_published, blog_post_id=None):
    if not blog_post_id:
        p = BlogPost()
    else:
        p = get_blog_post(blog_post_id)
    p.title = title
    p.content = content
    p.is_published = bool(is_published)
    p.put()
    return p
Beispiel #3
0
 def test_unique_slug(self):
     """
     two post with identical titles should different slugs
     """
     repeated_title = self.post.title
     post2 = BlogPost()
     post2.title = repeated_title
     post2.writer = self.user2
     post2.text = "another random text"
     post2.save()
     self.assertNotEqual(self.post.slug, post2.slug)
Beispiel #4
0
    def test_save_and_retrieve_blog_posts(self):
        self.assertEqual(BlogPost.objects.all().count(), 0)
        blog_post = BlogPost()
        blog_post.title = "A post"
        blog_post.date = datetime.datetime(1939, 9, 1, 5, 0, 0)
        blog_post.body = "Blah blah blah"
        blog_post.visible = False
        blog_post.save()
        self.assertEqual(BlogPost.objects.all().count(), 1)

        retrieved_post = BlogPost.objects.first()
        self.assertEqual(retrieved_post, blog_post)
Beispiel #5
0
    def test_save_and_retrieve_blog_posts(self):
        self.assertEqual(BlogPost.objects.all().count(), 0)
        blog_post = BlogPost()
        blog_post.title = "A post"
        blog_post.date = datetime.datetime(1939, 9, 1, 5, 0, 0)
        blog_post.body = "Blah blah blah"
        blog_post.visible = False
        blog_post.save()
        self.assertEqual(BlogPost.objects.all().count(), 1)

        retrieved_post = BlogPost.objects.first()
        self.assertEqual(retrieved_post, blog_post)
Beispiel #6
0
def blog_publish(request):
    """
    保存博客
    :param request:
    :return:
    """
    if request.method == "POST":
        data = request.POST
        content = data.get("content")
        # 保存文章数据到数据库
        id = data.get('id', 0)
        if id != 0:
            blog = BlogPost.objects.filter(author_id=request.user.id, id=id)
        else:
            blog = BlogPost.objects.filter(author_id=request.user.id,
                                           statu='正在编辑')
        if blog.exists():
            blog = blog.first()
            blog.tag.clear()

        else:
            blog = BlogPost()
        blog.content = content
        blog.statu = data.get("statu")
        blog.author = User.objects.get(id=request.user.id)
        blog.category_id = data.get("category")
        blog.blog_type = data.get("type")
        blog.title = data.get('title')
        tag_list = []
        blog.modify_time = now()
        blog.save()
        if data.get("tag_add"):
            tag_add = blog_tag(data.get("tag_add"))
            # print(data.get("tag_add"))
            tag_list = tag_add
        if data.get('tag'):
            for tag in data.get('tag').split(','):
                tag_list.append(tag)
        # print(tag_list)
        if len(tag_list) > 0:
            tag_list = list(set(tag_list))
            if '' in tag_list:
                tag_list.remove('')
            blog.tag.add(*tag_list)

        context = {"flag": True, "message": "博文发布成功!", 'id': blog.id}
        return JsonResponse(context)
    else:
        context = {"categorys": blog_category(), 'tags': blog_tag()}
        return JsonResponse(context)
Beispiel #7
0
    def test_create_post(self):
        user = User.objects.get(username='******')
        post = BlogPost(user=user)

        post.title = "My test post"
        post.content = "This is a test post"

        post.save()

        all_posts = BlogPost.objects.all()
        self.assertEquals(len(all_posts), 1)
        only_post = all_posts[0]
        self.assertEquals(only_post, post)

        self.assertEquals(only_post.title, "My test post")
Beispiel #8
0
def publish(request, id):
    context = {}

    user = request.user
    if not user.is_authenticated:
        return redirect("login")
    notes = get_object_or_404(Notes, pk=id)

    if notes.author != user:
        return HttpResponse("You are not the author of that post.")
    blog_post = BlogPost()
    blog_post.title = notes.title
    blog_post.body = notes.body
    blog_post.author = request.user
    blog_post.save()
    return redirect("/")
Beispiel #9
0
def archive(request):
    posts_obj = BlogPost()
    posts_obj.title = "HTML leture"
    posts_obj.content = "format of HTML"
    posts_obj.timestamp = datetime.now()
    posts_obj.save()

    posts = BlogPost.objects.all().order_by("-timestamp")

    # 1st way
    # t2 = loader.get_template('blog/archive.html')
    # t = t2.render({'posts': posts})
    # return HttpResponse(t)

    # 2nd way
    return render_to_response('blog/archive.html', {'posts': posts})
def load_education_blog_posts():
    """
    Transferring blog posts from EdCentral CSV
    for Education Policy Program
    """
    education_blog_mapping = edcentral_blog_mapping()

    for post in education_blog_mapping:
        if post['title'] == 'title':
            pass
        else:
            print(post['title'])
            post_parent = get_program('5')
            parent_blog_homepage = get_content_homepage(
                post_parent,
                ProgramBlogPostsPage,
                'EdCentral',
            )
            ed_blog_post_slug = post['slug']
            print(ed_blog_post_slug)
            new_blog_post = BlogPost.objects.filter(
                slug=ed_blog_post_slug).first()

            if not new_blog_post and ed_blog_post_slug:
                new_blog_post = BlogPost(
                    search_description='',
                    seo_title='',
                    depth=5,
                    show_in_menus=False,
                    slug=ed_blog_post_slug,
                    title=post['title'],
                    date=post['real_date'],
                    body=json.dumps([{
                        'type': 'paragraph',
                        'value': post['content']
                    }]),
                    story_excerpt=get_summary(post['excerpt']),
                )
                parent_blog_homepage.add_child(instance=new_blog_post)
                new_blog_post.save()
                print(
                    "-------------------ADDED NEW EDCENTRAL POST----------------------"
                )
                get_education_authors(new_blog_post, post['author'])
                connect_subprograms_to_post(
                    new_blog_post,
                    clean_subprograms_for_ed(post['categories']))
            elif new_blog_post and ed_blog_post_slug:
                new_blog_post.search_description = ''
                new_blog_post.seo_title = ''
                new_blog_post.depth = 5
                new_blog_post.show_in_menus = False
                new_blog_post.slug = ed_blog_post_slug
                new_blog_post.title = post['title']
                new_blog_post.date = post['real_date']
                new_blog_post.body = json.dumps([{
                    'type': 'paragraph',
                    'value': post['content']
                }])
                new_blog_post.story_excerpt = get_summary(post['excerpt'])
                get_education_authors(new_blog_post, post['author'])
                connect_subprograms_to_post(
                    new_blog_post,
                    clean_subprograms_for_ed(post['categories']))
                print(
                    "-------------------UPDATED EXISTING EDCENTRAL POST----------------------"
                )
                new_blog_post.save()