예제 #1
0
def article_submit(request):
	if request.method == 'POST':
		form = ArticleForm(request.POST)
		if form.is_valid():
			# Preview article
			if request.POST.get('action') == u'Vista previa':
				article = form.create_article(request.user)
				form = ArticlePreviewForm(request.POST)
				return render_to_response('articles/article_preview.html', 
					{ 'form' : form, 'article' : article }, context_instance=RequestContext(request))			
			# Edit article
			if request.POST.get('action') == u'Editar':
				return render_to_response('articles/article_submit.html', 
					{ 'form' : form }, context_instance=RequestContext(request))			
			# Submit article
			if request.POST.get('action') == u'Enviar noticia':
				article = form.save(request.user)
				from django.core.mail import send_mail
				from django.conf import settings
				from_email = '"%s" <%s>' % (request.user.get_full_name(), request.user.email)
				subject = u'Nueva noticia'
				message = render_to_string('articles/new_article_email.txt',
										   { 'article': article, })
				send_mail(subject, message, from_email, [a[1] for a in settings.MANAGERS])
				return HttpResponseRedirect('/noticias/submit/sent/')
		
	else:
		form = ArticleForm()
	return render_to_response('articles/article_submit.html', 
		{ 'form' : form },
		context_instance=RequestContext(request))
예제 #2
0
def new_article(request):
    is_login = True
    user = request.user

    if request.method == 'POST':
        form = ArticleForm(request.POST)
        if form.is_valid():
            article = Article.objects.create(
                author=request.user,
                title=form.cleaned_data['title'],
                short_text=form.cleaned_data['short_text'],
                text=form.cleaned_data['text'],
                internal=form.cleaned_data['internal'])
            article.save()
            request.session['new_article'] = json.dumps(True)
            request.session['last_created_article'] = json.dumps(article.id)
            return redirect(reverse('articles:new_article_success'))

    form = ArticleForm()
    context = {
        "header": {
            "title": "Создать новую статью"
        },
        "form": form,
        "is_login": is_login,
        "user": user
    }
    template = loader.get_template('articles/newarticle.html')
    return HttpResponse(template.render(context, request))
예제 #3
0
def write(request):
    if request.method == 'POST':
        form = ArticleForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('articles')
    else:
        form = ArticleForm()
    return render(request, 'articles/write.html', {'form': form})
예제 #4
0
def edit(request, id):
    article = get_object_or_404(Article, id=id)
    if request.method == '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})
예제 #5
0
def submit_article_page(request):
    form = ArticleForm()
    if request.method == 'POST':
        form = ArticleForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return redirect('articles:list')
    context = {
        'form':form,
    }
    return render(request, 'articles/submit.html', context)
예제 #6
0
def create(request):
    if request.method == 'POST':
        form = ArticleForm(request.POST, request.FILES)
        if form.is_valid():
            article = form.save()
            return redirect('articles:detail', article.pk)
    else:
        form = ArticleForm()
    context = {
        'form': form,
    }
    return render(request, 'articles/form.html', context)
예제 #7
0
def update(request, pk):
    article = get_object_or_404(Article, pk=pk)
    if request.method == 'POST':
        form = ArticleForm(request.POST, request.FILES, instance=article)
        if form.is_valid():
            form.save()
            return redirect('articles:detail', article.pk)
    else:
        form = ArticleForm(instance=article)
    context = {
        'form': form,
    }
    return render(request, 'articles/form.html', context)
예제 #8
0
def articles_update(request, slug):
    article = get_object_or_404(Article, slug=slug)
    if request.method == "POST":
        form = ArticleForm(request.POST, instance=article)
        if form.is_valid():
            article = form.save(commit=False)
            article.slug = slugify(article.title)
            form.save()

            return redirect('articles:list')

    else:
        form = ArticleForm(instance=article)
        return render(request, "articles/articles_new.html", {'form': form})
예제 #9
0
def add_article(request):
    if request.method == 'POST':
        form = ArticleForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(reverse('ArticleList', args=[]))
    else:
        form = ArticleForm()

    template_name = 'articles/new.html'
    context = {
        'form': form,
    }
    return render(request, template_name, context)
예제 #10
0
파일: views.py 프로젝트: uRuiz/Welldone
    def post(self, request):
        """

        :param request:
        :return:
        """
        error_message = None
        response_article = Article.objects.filter(
            pk=request.POST.get("id_article_answered"))
        if len(response_article) > 0:
            article_with_data = Article(user=request.user,
                                        article_answered=response_article[0])
        else:
            article_with_data = Article(user=request.user)
        article_form = ArticleForm(request.POST,
                                   request.FILES,
                                   instance=article_with_data)

        if article_form.is_valid():
            new_article = article_form.save()
            return HttpResponseRedirect(
                reverse('article_details',
                        args=[new_article.user.username, new_article.pk]))

        context = {'form': article_form, 'message': error_message}

        return render(request, 'articles/create.html', context)
예제 #11
0
def create(request):
    if request.POST:
        form = ArticleForm(request.POST)
        if form.is_valid():
            form.save()

            return HttpResponseRedirect('/data/all')
    else:
        form = ArticleForm()

    args = {}
    args.update(csrf(request))

    args['form'] = form

    return render_to_response('create_article.html', args)
예제 #12
0
파일: views.py 프로젝트: platec/cola
def add_article(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').replace(
                '\n', '<br>')
            node_name = form.cleaned_data.get('node')
            article.add_node(node_name)
            article.save()
            return index(request)
    else:
        form = ArticleForm()
        return render(request, 'add_article.html', {'form': form})
예제 #13
0
    def get(self, request):

        form = ArticleForm()

        context = {'form': form}

        return render(request, 'new_article.html', context)
예제 #14
0
def list_articles(request):
    if request.method == "POST":
        form = ArticleForm(request.POST)
        if form.is_valid():
            article = Articles(
                title=form.cleaned_data['title'],
                markdown_text=form.cleaned_data['markdown_text'])
            article.save()
            messages.success(request, "Your article add.")
            return HttpResponseRedirect("/articles/all/")
    else:
        form = ArticleForm()
    articles = Articles.objects.all()
    return render(request, "articles/list_articles.html", {
        'form': form,
        "articles": articles,
    })
예제 #15
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})
예제 #16
0
def update_article(request, slug=None):
    article = get_object_or_404(Article, slug=slug)
    if request.method == 'POST':
        form = ArticleForm(request.POST, request.FILES, instance=article)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect(
                reverse('ArticleDetail', kwargs={
                    'slug': slug,
                }))
    else:
        form = ArticleForm(instance=article)

    template_name = 'articles/update.html'
    context = {
        'form': form,
    }
    return render(request, template_name, context)
예제 #17
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})
예제 #18
0
def article_form():
    article_form = ArticleForm()
    article_form.title = 'title'
    article_form.description = 'description'
    article_form.updated_at = 'updated_at'
    article_form.category = category()
    article_form.published = 'published'

    return article_form
예제 #19
0
파일: views.py 프로젝트: skurt23/WordPlease
    def post(self, request):
        """
        Presenta el formulario para crear un artículo, valida el formulario y crea el artículo si todo ha ido bien
        :param request: objeto HttpRequest con los datos de la petición
        :return: objeto HttpResponse con los datos de la respuesta
        """
        message = None
        article_user = Article(author=request.user)
        article_form = ArticleForm(request.POST, instance=article_user)
        if article_form.is_valid():
            article = article_form.save()
            article_form = ArticleForm()
            message = 'Artículo creado correctamente.Puedes ver tu artículo haciendo click <a href="{0}">aquí</a>'.format(
                reverse('article_detail',
                        args=[article.author.username, article.pk]))

        context = {'form': article_form, 'message': message}
        return render(request, 'articles/article_creation.html', context)
예제 #20
0
파일: views.py 프로젝트: skurt23/WordPlease
 def get(self, request):
     """
     Presenta el formulario para crear un artículo
     :param request: objeto HttpRequest con los datos de la petición
     :return: objeto HttpResponse con los datos de la respuesta
     """
     message = None
     article_form = ArticleForm()
     context = {'form': article_form, 'message': message}
     return render(request, 'articles/article_creation.html', context)
예제 #21
0
    def post(self, request):

        article = Article()
        article.author = request.user
        form = ArticleForm(request.POST, request.FILES, instance=article)

        if form.is_valid():
            article = form.save()

        return redirect('user_articles_detail.html', self.id)
예제 #22
0
 def test_article_form_with_valid_data(self):
     form = ArticleForm(
         data={
             'titre': "Un titre",
             'description': 'Une description',
             'date_pub': timezone.now(),
             'auteur': "Nom de l'auteur"
         })
     self.assertTrue(form.is_valid())
     self.assertEquals(len(form.cleaned_data), 4)
예제 #23
0
 def get(self, request, pk):
     article = get_articles(pk=pk)[0]
     if article:
         if request.user != article.author and not request.user.is_staff:
             context = {'message': 'You don\'t have permission for that'}
             return render(request, self.template_name, context)
         form = ArticleForm(instance=article)
         context = {'form': form, 'message': 'Edit you article'}
     else:
         context = get_context_from_articles(article)
     return render(request, self.template_name, context)
예제 #24
0
    def get(self, request, *args, **kwargs):
        """
        Render the creation view for Article
        """
        if not request.user.is_authenticated:
            return redirect("login")

        form = ArticleForm()
        context = {"form": form}

        return render(request, self.template_name, context)
예제 #25
0
파일: views.py 프로젝트: uRuiz/Welldone
    def get(self, request, pk):
        """

        :param request:
        :return:
        """
        post = Article.objects.all().filter(pk=pk)
        article_form = ArticleForm(instance=post[0])

        context = {'form': article_form, 'message': ""}

        return render(request, 'articles/create.html', context)
예제 #26
0
def articles_new(request):

    if request.method == 'POST':
        form = ArticleForm(request.POST)
        if form.is_valid():
            article = form.save(commit=False)
            topic = form.cleaned_data['topic']
            title = form.cleaned_data['title']
            content = form.cleaned_data['content']

            article.topic = topic
            article.title = title
            article.slug = slugify(title)
            article.content = content
            article.save()

        return redirect('articles:list')

    else:
        form = ArticleForm()

    return render(request, 'articles/articles_new.html', {'form': form})
예제 #27
0
    def post(self, request, block_id):
        self.init_data(block_id)
        form = ArticleForm(request.POST)
        if form.is_valid():
            # article = Article(block=block, title=form.cleaned_data['title'],
            #                   content=form.cleaned_data['content'],status=0)

            article = form.save(commit=False)
            article.block = self.block
            article.status = 0
            article.save()
            return redirect('/article/list/%s' % self.block_id)
        else:
            return render(request, self.template_name, {'b': self.block, 'form': form})
예제 #28
0
    def post(self, request, *args, **kwargs):
        """save the form to the Article model database"""
        if not request.user.is_authenticated:
            return redirect("login")

        form = ArticleForm(request.POST, request.FILES)
        if form.is_valid():
            article = form.save(commit=False)
            article.author = get_object_or_404(User, pk=request.user.id)
            article.save()
            return redirect(article.get_absolute_url())

        context = {"form": form}

        return render(request, self.template_name, context)
예제 #29
0
def change_article(request, id):
    changed = False
    is_login = True
    user = request.user

    if request.method == 'POST':
        form = ArticleForm(request.POST)
        if form.is_valid():
            id = request.POST["id_article"]
            article = get_object_or_404(Article, id=id)
            article.title = form.cleaned_data["title"]
            article.short_text = form.cleaned_data["short_text"]
            article.text = form.cleaned_data["text"]
            article.internal = form.cleaned_data["internal"]
            article.save()
            changed = True

    if changed:
        article = article
    else:
        article = get_object_or_404(Article, id=id)

    title = u"Изменение статьи {title}".format(title=article.title)
    form = ArticleForm(instance=article)
    context = {
        "header": {
            "title": title,
        },
        "article": article,
        "form": form,
        "changed": changed,
        "is_login": is_login,
        "user": user
    }
    template = loader.get_template('articles/changearticle.html')
    return HttpResponse(template.render(context, request))
예제 #30
0
    def get(self, request, *args, **kwargs):
        """
        Render the edit view for an object, form filled in with
        existing data
        """
        article = get_object_or_404(Article, slug=kwargs.get("slug"))

        if not request.user.is_authenticated:
            return redirect("login")

        if not request.user == article.author:
            return redirect("articles:article-list", "nieuw")

        form = ArticleForm(instance=article)
        context = {
            "form": form,
        }

        return render(request, self.template_name, context)