Example #1
0
    def test_article_renders_template_and_slug(self):
        c = Client()
        user1 = User.objects.create_user(username="******",
                                         email="*****@*****.**",
                                         password="******")

        article1 = Article()
        article1.title = "nicetitle"
        article1.content = "nicecontent"
        article1.status = 'P'
        article1.slug = 'nice-title'
        article1.create_user = user1
        article1.create_user.id = user1.id
        article1.save()

        # user1 logs in
        self.client.login(username="******", password="******")

        response = self.client.get(
            reverse('article', kwargs={'slug': 'nice-title'}))

        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed(response, 'articles/article.html')
        # check we've passed the right article into the context
        self.assertEquals(response.context['article'], article1)
        # check the article's title appears on the page
        self.assertIn(article1.title, response.content)
Example #2
0
    def handle(self, *args, **options):
        print feed
        for entry in range(len(feed.entries)):
#             print entry
#             print feed.entries[entry]
            
            #RSSの内容を一件づつ処理する
            title = feed.entries[entry].title
            link = feed.entries[entry].link
#             value = feed.entries[entry].value
            #更新日を文字列として取得
#             published_string = feed.entries[entry].published
            #更新日をdatetimeとして取得
#             tmp = feed.entries[entry].published_parsed
#             published_datetime = datetime.fromtimestamp(mktime(tmp))
         
            #表示
            key = hashlib.md5(title.encode('utf_8')).hexdigest()
            result_article = Article.objects.filter(insert_key=key)
            if not len(result_article):
                article = Article()
                article.create_user = User.objects.get(id=1)
                article.title = title
                article.content = title
                article.status = u'P'
                article.insert_key = key
                
                article.save()
Example #3
0
 def test_article_renders_template_and_slug(self):
     c = Client()
     user1 = User.objects.create_user(username="******",
                                      email="*****@*****.**",
                                      password="******")
                                      
     article1 = Article()
     article1.title = "nicetitle"
     article1.content = "nicecontent"
     article1.status = 'P'
     article1.slug = 'nice-title'
     article1.create_user = user1
     article1.create_user.id = user1.id
     article1.save()
     
     # user1 logs in
     self.client.login(username="******", password="******")
     
     response = self.client.get(reverse('article', kwargs={'slug': 'nice-title'}))
     
     self.assertEqual(response.status_code, 200)
     self.assertTemplateUsed(response, 'articles/article.html')
     # check we've passed the right article into the context
     self.assertEquals(response.context['article'], article1)
     # check the article's title appears on the page
     self.assertIn(article1.title, response.content)
Example #4
0
def edit(request, id):
    tags = ''
    if id:
        article = get_object_or_404(Article, pk=id)
        for tag in article.get_tags():
            tags = u'{0} {1}'.format(tags, tag.tag)
        tags = tags.strip()
    else:
        article = Article(create_user=request.user)

    if article.create_user.id != request.user.id:
        return redirect('home')

    if request.POST:
        old_state = {'title': article.title, 'content': article.content}
        form = ArticleForm(request.POST, instance=article)
        if form.is_valid():
            q_memento = ArticleMemento()
            q_memento.state = json.dumps(old_state)
            q_memento.caretaker = article.caretaker
            q_memento.save()
            form.save()
            return redirect('/articles/')
    else:
        form = ArticleForm(instance=article, initial={'tags': tags})
    return render(request, 'articles/edit.html', {'form': form})
Example #5
0
def edit(request, id):
    # 编辑
    tags = ''
    if id:
        # 如果id存在的话,说明是update
        article = get_object_or_404(Article, pk=id)
        for tag in article.get_tags():
            tags = u'{0} {1}'.format(tags, tag.tag)
        tags = tags.strip()
    else:
        # 否则的话,是一个新文章
        article = Article(create_user=request.user)

    if article.create_user.id != request.user.id:
        # 如果修改者不是创建者的话,那么redirect到home
        return redirect('home')

    if request.POST:
        # 如果是post的话,那么获取表单数据,保存
        form = ArticleForm(request.POST, instance=article)
        if form.is_valid():
            # 这个方法根据表单绑定的数据创建并保存数据库对象
            form.save()
            return redirect('/articles/')
    else:
        # 否则的话,创建一个新的form,内容填充找到的内容,
        form = ArticleForm(instance=article, initial={'tags': tags})
    return render(request, 'articles/edit.html', {'form': form})
Example #6
0
    def test_validate_article_edition(self):
        c = Client()

        user1 = User.objects.create_user(username="******",
                                         email="*****@*****.**",
                                         password="******")

        user2 = User.objects.create_user(username="******",
                                         email="*****@*****.**",
                                         password="******")

        article = Article()
        article.title = "nicetitle"
        article.content = "nicecontent"
        article.create_user = user2
        article.create_user.id = user2.id
        article.save()

        self.client.login(username="******", password="******")
        response = self.client.get(reverse('edit_article', kwargs={'id': '1'}))
        self.assertEqual(response.status_code, 302)

        response = self.client.post(reverse('edit_article', kwargs={'id':
                                                                    '1'}))
        self.assertEqual(response.status_code, 302)

        self.client.login(username="******", password="******")
        response = self.client.get(reverse('edit_article', kwargs={'id': '1'}),
                                   user=user2)
        self.assertEqual(response.status_code, 200)

        response = self.client.post(reverse('edit_article', kwargs={'id':
                                                                    '1'}))
        self.assertEqual(response.status_code, 200)
Example #7
0
def write(request):
    if request.method == 'POST':
        form = ArticleForm(request.POST)
        if form.is_valid():
            article = Article()
            article.create_user = request.user
            article.title = form.cleaned_data.get('title')
            article.content = form.cleaned_data.get('content')
            status = form.cleaned_data.get('status')
            if status in [Article.PUBLISHED, Article.DRAFT]:
                article.status = form.cleaned_data.get('status')
            article.save()
            tags = form.cleaned_data.get('tags')
            article.create_tags(tags)
            return redirect('/articles/')
    else:
        form = ArticleForm()
    return render(request, 'articles/write.html', {'form': form})
Example #8
0
class ArticlesList(ListView):
    model = Article
    queryset = Article.get_published()
    paginate_by = 10
    context_object_name = 'articles'

    def get_context_data(self, *args, **kwargs):
        context = super(ArticlesList, self).get_context_data(*args, **kwargs)
        context.update({'popular_tags': Tag.get_popular_tags()})
        return context
Example #9
0
 def post(self, request):
     form = ArticleForm(request.POST, request.FILES)
     a = request.POST.get('action').lower()
     if form.is_valid():
         if a == 'publish':
             status = Article.PUBLISHED
         elif a == 'draft':
             status = Article.DRAFT
         article = Article(
             title = form.cleaned_data.get('title'),
             content = form.cleaned_data.get('content'),
             create_user = request.user,
             status = status
         )
         article.save()
         tags = form.cleaned_data.get('tags')
         article.create_tags(tags)
         return redirect(self.success_url)
     else:
         return super(ArticleCreateView, self).form_invalid(form) 
Example #10
0
    def test_validate_article_edition(self):
        c = Client()
        user1 = User.objects.create_user(username="******",
                                         email="*****@*****.**",
                                         password="******")
        user2 = User.objects.create_user(username="******",
                                         email="*****@*****.**",
                                         password="******")

        article = Article()
        article.title = "nicetitle"
        article.content = "nicecontent"
        article.create_user = user2
        article.create_user.id = user2.id
        article.save()
        self.client.login(username="******", password="******")
        response = self.client.get(reverse('edit_article', kwargs={'id': '1'}))
        self.assertEqual(response.status_code, 302)
        response = self.client.post(reverse('edit_article',
                                            kwargs={'id': '1'}))
        self.assertEqual(response.status_code, 302)
        self.client.login(username="******", password="******")
        response = self.client.get(reverse('edit_article', kwargs={'id': '1'}),
                                   user=user2)
        self.assertEqual(response.status_code, 200)
        response = self.client.post(reverse('edit_article',
                                            kwargs={'id': '1'}))
        self.assertEqual(response.status_code, 200)
Example #11
0
def write(request):
    if request.method == 'POST':
        form = ArticleForm(request.POST)
        if form.is_valid():
            article = Article()
            article.create_user = request.user
            article.title = form.cleaned_data.get('title')
            article.content = form.cleaned_data.get('content')
            status = form.cleaned_data.get('status')
            if status in [Article.PUBLISHED, Article.DRAFT]:
                article.status = form.cleaned_data.get('status')
            article.save()
            tags = form.cleaned_data.get('tags')
            article.create_tags(tags)
            return redirect('/articles/')
    else:
        form = ArticleForm()
    return render(request, 'articles/write.html', {'form': form})
Example #12
0
def write(request):
    if request.method == "POST":
        form = ArticleForm(request.POST)
        if form.is_valid():
            article = Article()
            article.create_user = request.user
            article.title = form.cleaned_data.get("title")
            article.content = form.cleaned_data.get("content")
            status = form.cleaned_data.get("status")
            if status in [Article.PUBLISHED, Article.DRAFT]:
                article.status = form.cleaned_data.get("status")
            article.save()
            tags = form.cleaned_data.get("tags")
            article.create_tags(tags)
            return redirect("/articles/")
    else:
        form = ArticleForm()
    return render(request, "articles/write.html", {"form": form})
Example #13
0
def _articles(request, articles):
    paginator = Paginator(articles, 10)
    page = request.GET.get('page')
    try:
        articles = paginator.page(page)

    except PageNotAnInteger:
        articles = paginator.page(1)

    except EmptyPage:  # pragma: no cover
        articles = paginator.page(paginator.num_pages)

    popular_tags = Article.get_counted_tags()

    return render(request, 'articles/articles.html', {
        'articles': articles,
        'popular_tags': popular_tags
    })
Example #14
0
def edit(request, id):
    tags = ''
    if id:
        article = get_object_or_404(Article, pk=id)
        for tag in article.get_tags():
            tags = u'{0} {1}'.format(tags, tag.tag)
        tags = tags.strip()
    else:
        article = Article(create_user=request.user)

    if request.POST:
        form = ArticleForm(request.POST, instance=article)
        if form.is_valid():
            form.save()
            return redirect('/articles/')
    else:
        form = ArticleForm(instance=article, initial={'tags': tags})
    return render(request, 'articles/edit.html', {'form': form})
Example #15
0
def edit(request, id):
    if id:
        article = get_object_or_404(Article, pk=id)

    else:
        article = Article(create_user=request.user)

    if article.create_user.id != request.user.id:
        return redirect('home')

    if request.POST:
        form = ArticleForm(request.POST, instance=article)
        if form.is_valid():
            form.save()
            return redirect('/articles/')

    else:
        form = ArticleForm(instance=article)

    return render(request, 'articles/edit.html', {'form': form})
Example #16
0
 def post(self, request):
     form = ArticleForm(request.POST, request.FILES)
     a = request.POST.get('action').lower()
     if form.is_valid():
         if a == 'publish':
             status = Article.PUBLISHED
         elif a == 'draft':
             status = Article.DRAFT
         article = Article(title=form.cleaned_data.get('title'),
                           content=form.cleaned_data.get('content'),
                           create_user=request.user,
                           status=status)
         article.save()
         tags = form.cleaned_data.get('tags')
         article.create_tags(tags)
         return redirect(self.success_url)
     else:
         return super(ArticleCreateView, self).form_invalid(form)
Example #17
0
def articles(request):
    all_articles = Article.get_published()
    return _articles(request, all_articles)
Example #18
0
def articles(request):
    all_articles = Article.get_published()
    return _articles(request, all_articles)
Example #19
0
 def test_only_published_articles_are_shown(self):
     c = Client()
     user1 = User.objects.create_user(username="******",
                                      email="*****@*****.**",
                                      password="******")
                                      
     article1 = Article()
     article1.title = "nicetitle"
     article1.content = "nicecontent"
     article1.status = "P" # Published
     article1.create_user = user1
     article1.create_user.id = user1.id
     article1.save()
     
     article2 = Article()
     article2.title = "secondnicetitle"
     article2.content = "secondnicecontent"
     article2.status = "D" # Draft
     article2.create_user = user1
     article2.create_user.id = user1.id
     article2.save()
                                      
     # user1 logs in
     self.client.login(username="******", password="******")
     
     response = self.client.get(reverse('articles'))
     
     self.assertEqual(response.status_code, 200)
     self.assertTrue('articles' in response.context)
     # make sure that the only (published) Article we have in our database is in that list 
     self.assertEqual([article.pk for article in response.context['articles']], [1])
     article_1 = response.context['articles'][0]
     self.assertEqual(article_1.title, 'nicetitle')
Example #20
0
    def test_only_published_articles_are_shown(self):
        c = Client()
        user1 = User.objects.create_user(username="******",
                                         email="*****@*****.**",
                                         password="******")

        article1 = Article()
        article1.title = "nicetitle"
        article1.content = "nicecontent"
        article1.status = "P"  # Published
        article1.create_user = user1
        article1.create_user.id = user1.id
        article1.save()

        article2 = Article()
        article2.title = "secondnicetitle"
        article2.content = "secondnicecontent"
        article2.status = "D"  # Draft
        article2.create_user = user1
        article2.create_user.id = user1.id
        article2.save()

        # user1 logs in
        self.client.login(username="******", password="******")

        response = self.client.get(reverse('articles'))

        self.assertEqual(response.status_code, 200)
        self.assertTrue('articles' in response.context)
        # make sure that the only (published) Article we have in our database is in that list
        self.assertEqual(
            [article.pk for article in response.context['articles']], [1])
        article_1 = response.context['articles'][0]
        self.assertEqual(article_1.title, 'nicetitle')
Example #21
0
def articles(request):
    # 显示所有的发布文章
    all_articles = Article.get_published()
    return _articles(request, all_articles)
    def handle(self, *args, **options):
        
#         result_account_list = InstagramAccount.objects.all()
#         for a in result_account_list: 

        for n in user_name_list:
#             print username_to_id(n)
            user_id = username_to_id(n)
            if user_id:
                recent_media, next_ = api.user_recent_media(user_id=user_id, count=3)
                
                for media in recent_media:
                    temp_title = "title"
                    tags = "tags"
                    key = hashlib.md5(media.images['standard_resolution'].url).hexdigest()
                    result_article = Article.objects.filter(insert_key=key)
        
#                     if not len(result_article):
                    if True:
                        if hasattr(media.caption, 'text'):temp_title = media.caption.text
                        if hasattr(media, 'tags'):
                            for t in media.tags:
                                tags = t.name
                            
                        article = Article()
                        article.create_user = User.objects.get(id=1)
                        article.title = temp_title
                        article.content = "![](" + media.images['standard_resolution'].url + ")"
#                         article.content = article.content + """                 
#         .
#                         """
#                         article.content = article.content+temp_title


                        print media.user.id
                        print media.user.profile_picture
                        print media.user.username
                        
                        article.instagram_user_id = media.user.id
                        article.instagram_user_name = media.user.username
                        article.instagram_profile_url = media.user.profile_picture
                        
                        article.status = u'P'
                        article.insert_key = key
                        article.save()
                        article.create_tags(tags)
Example #23
0
 def handle(self, *args, **options):
     
     result_account_list = InstagramAccount.objects.all()
     for a in result_account_list:
         try:
             recent_media, next_ = api.user_recent_media(user_id=a.user_id, count=1)
             for media in recent_media:
                 temp_title = "title"
                 tags = ""
                 key = hashlib.md5(media.images['standard_resolution'].url).hexdigest()
                 result_article = Article.objects.filter(insert_key=key)
     
                 if not len(result_article):
                     if hasattr(media.caption, 'text'):temp_title = media.caption.text
                     if hasattr(media, 'tags'):
                         for t in media.tags:
                             tags = t.name
                                             
                     article = Article()
                     article.create_user = User.objects.get(id=1)
                     article.title = temp_title
                     article.content = "![](" + media.images['standard_resolution'].url + ")"
                     article.instagram_user_id = media.user.id
                     article.instagram_user_name = media.user.username
                     article.instagram_profile_url = media.user.profile_picture
                     article.update_date = media.caption.created_at
                     article.status = u'P'
                     article.insert_key = key
                     article.save()
                     article.create_tags(tags)
         except:
             print "error"
Example #24
0
def articles(request):
    tag = request.session.get("TRIBE_TAG")
    all_articles = Article.get_published(tag)
    return _articles(request, all_articles)