Exemple #1
0
def create():
    date = datetime.datetime.now()
    form = BlogPostForm()
    if form.validate_on_submit():
        filename = secure_filename(form.image.data.filename)
        form.image.data.save('project/static/images/' + filename)
        image_link = 'static/images/' + filename
        new_post = BlogPost(
            form.title_header.data,
            form.title_long.data,
            form.content.data,
            form.tag.data,
            date,
            image_link,
            current_user.id,
            form.author_name_manual.data
        )
        db.session.add(new_post)
        db.session.commit()
        flash('New entry was successfully posted. Thanks.')
        return redirect(url_for('home.create'))
    else:
        filename = None
        posts = db.session.query(BlogPost).all()
        return render_template(
            'create.html', posts=posts, form=form, error=error, filename=filename)
Exemple #2
0
def create_update_post(request, pk=None):
    post = None
    if pk:
        post = get_object_or_404(BlogPost, pk=pk)
        if not request.user.has_perm("blog.change_blogpost", post):
            return HttpResponseForbidden()
    else:
        if not request.user.has_perm("blog.add_blogpost"):
            return HttpResponseForbidden()

    # Do an update.
    if request.method == 'POST':
        form = BlogPostForm(request.POST, instance=post)
        if form.is_valid():  # All validation rules pass
            post = form.save(commit=False)
            post.user = request.user
            post.save()

            assign('blog.view_blogpost', request.user, post)
            assign('blog.change_blogpost', request.user, post)
            assign('blog.delete_blogpost', request.user, post)

            return redirect(reverse('view_post', args=[post.id]))
    else:
        form = BlogPostForm(instance=post)  # An unbound form

    # Return the crud page.
    return render_to_response('blog/create_edit_post.xhtml', {
        'post': post, 'form': form
    }, context_instance=RequestContext(request))
Exemple #3
0
def add_post(request):
    if request.method == 'POST':
        form = BlogPostForm(request.POST)

        if form.is_valid():
            new_post = BlogPost(
                title=form.cleaned_data['title'],
                content=form.cleaned_data['content'],
                published=True,
                author=request.user
            )

            new_post.save()

            return redirect('view_posts', post_id=new_post.id)
    else:
        form = BlogPostForm()

    return render(
        request,
        'add_post.html',
        {
            'form': form,
        }
    )
Exemple #4
0
def add_post(request):
    '''Add new blogpost'''
    form = BlogPostForm(request.POST or None)

    if request.method == 'POST' and form.is_valid():
        new_post = form.save(commit=False)
        new_post.user_id = request.user.id
        new_post.save()

        if form.cleaned_data['tags']:
            list_tags = request.POST['tags'].split(',')
            list_tags = [tag.strip() for tag in list_tags]
            list_tags = set(list_tags)

            if len(list_tags) > 10:
                return HttpResponse('Amount of tags can\'t be more than 10!')

            for tag in list_tags:
                if tag:
                    new_tag, created = Tag.objects.get_or_create(name=tag)
                    new_post.tag.add(new_tag.id)

        return redirect('blog:list_of_posts')
    else:
        context = RequestContext(request)
        return render_to_response('blog/add_post.html',
                                  {'form': form}, context)
def post(request, post_id=None):
    """
    Displays, creates or updates a blog post.
    """
    
    post = None
    if post_id:
        post = get_object_or_404(BlogPost.objects.all(), pk=post_id)
    
    if request.method == 'POST':
        
        form = BlogPostForm(request.POST, instance=post)
        
        if form.is_valid():
            post = form.save()
            return SerializeOrRedirect(reverse('list_posts'), { 'post': post })
            
        else:
            
            return SerializeOrRender('blog/post.html', { 'post': post }, extra = { 'form': form }, status=CR_INVALID_DATA)    
        
    else:
        
        form = BlogPostForm(instance=post)
    
    return SerializeOrRender('blog/post.html', { 'post': post }, extra={ 'form': form })
    def post(self):
        form = BlogPostForm(self.request.POST)

        if form.validate():
            post = BlogPost(**form.data)
            post.save()
            self.redirect_to("admin-blog-post-edit-extra", post_id = post.key().id(), extra="saved")

        return {
            "admin_section": "admin-blog-posts-new",
            "form": form,
        }
Exemple #7
0
def new_post(request):
    if request.method == "POST":
        form = BlogPostForm(request.POST, request.FILES)
        if form.is_valid():
            post = form.save(commit=False)
            post.author = request.user
            post.published_date = timezone.now()
            post.save()
            return redirect(post_detail, post.pk)

    else:
        form = BlogPostForm

    return render(request, 'blogpostform.html', {'form': form})
Exemple #8
0
def edit_post(request, id):
    post = get_object_or_404(Post, pk=id)
    if request.method == "POST":
        form = BlogPostForm(request.POST, request.FILES, instance=post)
        if form.is_valid():
            post = form.save(commit=False)
            #post.author = request.user
            post.published_date = timezone.now()
            post.save()
            return redirect(post_detail, post.pk)
    else:
        form = BlogPostForm(instance=post)

    return render(request, 'blogpostform.html', {'form': form})
Exemple #9
0
def editposts():
    error = None
    form = BlogPostForm()
    if request.method == 'POST':
        if form.validate_on_submit():
            new_post = Post(
                form.subject.data,
                form.header.data,
                form.digest.data,
                form.body.data,
            )
            db.session.add(new_post)
            db.session.commit()
            flash(u'پست ثبت شد!!')
    return render_template('postedit.html', form=form, error=error)
Exemple #10
0
 def post():
     form = BlogPostForm(request.form)
     if request.method == 'POST':
         if form.validate():
             post = Post(user=form.author.data,
                         title=form.title.data,
                         content=form.content.data)
             current_session.add(post)
             current_session.commit()
             flash('Post created!')
             return redirect(url_for('post'))
         else:
             flash('Form is not valid! Post was not created.')
     posts = current_session.query(Post).all()
     return render_template('post.html', form=form, posts=posts)
Exemple #11
0
def editposts():
    error = None
    form = BlogPostForm()
    if request.method == 'POST':
        if form.validate_on_submit():
            new_post = Post(
            	form.subject.data,
                form.header.data,
                form.digest.data,
                form.body.data,
            )
            db.session.add(new_post)
            db.session.commit()
            flash(u'پست ثبت شد!!')
    return render_template('postedit.html', form=form, error=error)
Exemple #12
0
class BlogPostHandler(BaseHandler):
    """Manage individual blog posts"""
    @admin_required
    def get(self, post_id=None, **kwargs):
        """Return a post to edit or an empty form to create"""
        template = 'admin/blog/new.html'
        context = {
            'form': self.form,
        }
        # render edit
        if post_id is not None:
            post = BlogPost.get_by_id(post_id)
            if post:
                self.form = BlogPostForm(obj=post)
                self.form.tags.data = ', '.join(post.tags)
                context.update({'form': self.form})
                template = 'admin/blog/edit.html'
            else:
                return redirect('admin/blog/')
        # render new
        return self.render_response(template, **context)

    @admin_required
    def post(self, post_id=None, **kwargs):
        """Handle submitted form data"""
        # validate form
        if self.form.validate():
            title = self.form.title.data
            lead = self.form.lead.data
            content = self.form.content.data
            live = self.form.live.data
            tags = self.form.tags.data
            language = self.form.language.data
            if tags is not None:
                tags = [tag.strip() for tag in tags.split(',') if tag != '']
            # saving edited
            if post_id:
                post = BlogPost.get_by_id(post_id)
                post.title = title
                post.lead = lead
                post.content = content
                post.live = live
                post.tags = tags
                post.language = language
            # creating new
            else:
                post = BlogPost(title=title,
                                lead=lead,
                                content=content,
                                live=live,
                                tags=tags,
                                language=language)
            if post.put():
                return redirect('admin/blog')
        return self.get(**kwargs)

    @cached_property
    def form(self):
        """Form instance as cached_property"""
        return BlogPostForm(self.request)
    def post(self, post_id, extra=""):
        form = BlogPostForm(self.request.POST)
        success = False
        post = BlogPost.get_by_id(long(post_id))

        if form.validate():
            form.populate_obj(post)
            post.save()
            success = True

        return {
            "admin_section": "admin-blog-posts",
            "form": form,
            "success": success,
            "post": post,
        }
Exemple #14
0
def new(request, template_name='blog/new_or_edit.html'):
    if request.method == 'POST':
        form = BlogPostForm(request.POST)
        if form.is_valid():
            form.save()
        return HttpResponseRedirect("/")
    else:
        form = BlogPostForm()
    
    template_context = {'form': form}
    
    return render_to_response(
        template_name,
        template_context,
        RequestContext(request)
    )
Exemple #15
0
def save():
    form = BlogPostForm()
    if form.validate_on_submit():
        if request.form['action'] == 'draft':
            print('Saving to redis')
            redis_client.set(form.title.data, form.body.data)
        else:
            print('Saving to postgres')
            model = Post()
            model.title = form.title.data
            model.body = form.body.data
            model.date = form.date.data
            model.author = form.author.data
            db.session.add(model)
            db.session.commit()
    return render_template('new.html', form=form)
Exemple #16
0
def new():
    """
        Create a new blog post.
    """
    error = None 
    form = BlogPostForm(request.form)

    if request.method == 'POST' and form.validate():
        new_blog_post = Post(form.title.data, form.content.data, form.published.data, current_user.get_id())
        g.db_session.add(new_blog_post)
        flash('New Blog Post Created!')
        return redirect(url_for('blog.show_posts'))
    try:
        return render_template('blog_new.html', form=form, error=error)
    except TemplateNotFound:
        abort(404)
Exemple #17
0
def home():
    storage = Storage()

    if request.method == 'POST':
        form = BlogPostForm(request.form)
        if form.validate():
            model = BlogPostModel(form.data)
            storage.appending(model.model_to_dict())
        else:
            logger.error('Someone have submitted an incorrect form!')
    else:
        form = BlogPostForm()
    return render_template(
        'home.html',
        form=form,
        items=storage.posts,
    )
Exemple #18
0
 def get(self, post_id=None, **kwargs):
     """Return a post to edit or an empty form to create"""
     template = 'admin/blog/new.html'
     context = {
         'form': self.form,
     }
     # render edit
     if post_id is not None:
         post = BlogPost.get_by_id(post_id)
         if post:
             self.form = BlogPostForm(obj=post)
             self.form.tags.data = ', '.join(post.tags)
             context.update({'form': self.form})
             template = 'admin/blog/edit.html'
         else:
             return redirect('admin/blog/')
     # render new
     return self.render_response(template, **context)
Exemple #19
0
def new_post():
    initialize_json()
    post_result = None

    if request.method == 'POST':
        form = BlogPostForm(request.form)
        if form.validate():
            new_post = BlogPostModel(form.data)
            save_to_json(new_post)
            post_result = "Posted successful"
    else:
        form = BlogPostForm()

    return render_template(
        'new_post.html',
        form=form,
        post_result=post_result,
    )
Exemple #20
0
def edit(request, slug, template_name='blog/new_or_edit.html'):
    
    post = BlogPost.objects.get(slug=slug)
    if request.method == 'POST':
        form = BlogPostForm(request.POST, instance=post)
        if form.is_valid():
            form.save()
        return HttpResponseRedirect(post.get_absolute_url())
    else:
        form = BlogPostForm(instance=post)
    
    template_context = {'form': form}
    
    return render_to_response(
        template_name,
        template_context,
        RequestContext(request)
    )
    def process_create(self, request, context, *args, **kwargs):

        form = BlogPostForm()

        if request.POST:
            form = BlogPostForm(request.POST)
            if form.is_valid():

                p = create_post(context['user'], form.cleaned_data)
                cache_invalidate('written')

                # Serve up the new row
                return HttpResponseRedirect(urlresolvers.reverse('admin_plugin_action', args=(context['plugin_slug'], 'posts')))

            else:
                return FormErrorResponse(form, id='create_form')

        target_url = urlresolvers.reverse('admin_plugin_action', args=(context['plugin_slug'], 'create'))
        return FormResponse(form, id='create_form', title="Create a new Blog Post", target_url=target_url, target_action='create')
Exemple #22
0
def add_post(request):
    context = RequestContext(request)
    if request.method == 'POST':
        form = BlogPostForm(request.POST) 
        if form.is_valid():
            blog = BlogPost()
            blog.author = request.user
            blog.title = request.POST['title']
            blog.bodytext = request.POST['bodytext']
            blog.save()
            messages.add_message(request, SUCCESS, 'Post Added')
            
            return HttpResponseRedirect('/main/blog/')
        else:
            messages.add_message(request, SUCCESS, 'Enter a valid Post')
            return HttpResponseRedirect('/main/add/')
    else:
        form = BlogPostForm() 
    return render_to_response('blog/add.html', {'form': form}, context)
Exemple #23
0
def profile(id):
    form = BlogPostForm()
    if id == current_user.id and request.method == 'GET':
        posts = current_session.query(Post).filter(
            Post.user == current_user).all()
        return render_template('post.html', form=form, posts=posts)

    elif request.method == 'POST' and id == current_user.id and form.validate(
    ):
        post = Post(user=current_user,
                    title=form.title.data,
                    content=form.content.data)
        current_session.add(post)
        current_session.commit()
        flash('post_created')
        route_to = '/profile/' + str(current_user.id)
        return redirect(route_to)
    else:
        return redirect(url_for('login_route.login'))
Exemple #24
0
def add_comment(request, blogpost_id, pid=0):
    ''' add comment to blogpost
    pid=0 means that comment haven't any parents comment
    '''
    form = BlogPostCommentForm(request.POST)

    if form.is_valid():
        post = get_object_or_404(BlogPost, pk=blogpost_id)
        new_comment = form.save(commit=False)
        new_comment.user_id = request.user.id
        new_comment.post_id = blogpost_id
        new_comment.parent_comment = pid
        new_comment.save()
        post.increment_count_comments()

    form = BlogPostForm(request.POST or None)
    form = BlogPostForm(request.POST or None)
    form = BlogPostForm(request.POST or None)
    return redirect(reverse('blog:show_post', args=[blogpost_id]))
Exemple #25
0
class BlogPostHandler(BaseHandler):
    """Manage individual blog posts"""
    @admin_required
    def get(self, post_id=None, **kwargs):
        """Return a post to edit or an empty form to create"""
        template = 'admin/blog/new.html'
        context = {
            'form': self.form,
        }
        # render edit
        if post_id is not None:
            post = BlogPost.get_by_id(post_id)
            if post:
                self.form = BlogPostForm(obj=post)
                self.form.tags.data = ', '.join(post.tags)
                context.update({ 'form': self.form })
                template = 'admin/blog/edit.html'
            else:
                return redirect('admin/blog/')
        # render new
        return self.render_response(template, **context)
    
    @admin_required
    def post(self, post_id=None, **kwargs):
        """Handle submitted form data"""
        # validate form
        if self.form.validate():
            title = self.form.title.data
            lead = self.form.lead.data
            content = self.form.content.data
            live = self.form.live.data
            tags = self.form.tags.data
            language = self.form.language.data
            if tags is not None:
                tags = [tag.strip() for tag in tags.split(',') if tag != '']
            # saving edited
            if post_id:
                post = BlogPost.get_by_id(post_id)
                post.title = title
                post.lead = lead
                post.content = content
                post.live = live
                post.tags = tags
                post.language = language
            # creating new
            else:
                post = BlogPost(title=title, lead=lead, content=content, live=live, tags=tags, language=language)
            if post.put():
                return redirect('admin/blog')
        return self.get(**kwargs)
    
    @cached_property
    def form(self):
        """Form instance as cached_property"""
        return BlogPostForm(self.request)
Exemple #26
0
def home():
    storage = Storage()
    all_items = storage.items

    if request.method == 'POST':
        form = BlogPostForm(request.form)
        if form.validate():
            model = BlogPostModel(form.data, len(all_items) + 1)
            all_items.append(model)
            storage.save()
        else:
            logger.error('Someone have submitted an incorrect form!')
    else:
        form = BlogPostForm()

    return render_template(
        'home.html',
        form=form,
        items=all_items,
    )
Exemple #27
0
def post(request, post_id=None):
    """
    Displays, creates or updates a blog post.
    """

    post = None
    if post_id:
        post = get_object_or_404(BlogPost.objects.all(), pk=post_id)

    if request.method == 'POST':

        form = BlogPostForm(request.POST, instance=post)

        if form.is_valid():
            post = form.save()
            return SerializeOrRedirect(reverse('list_posts'), {'post': post})

        else:

            return SerializeOrRender('blog/post.html', {'post': post},
                                     extra={'form': form},
                                     status=CR_INVALID_DATA)

    else:

        form = BlogPostForm(instance=post)

    return SerializeOrRender('blog/post.html', {'post': post},
                             extra={'form': form})
Exemple #28
0
def edit(post_id):
    """
        Edit a post.
    """
    post = g.db_session.query(Post).filter_by(id=post_id).first()
    form = BlogPostForm(request.form) 

    if request.method == 'POST' and form.validate():
        post = g.db_session.query(Post).filter_by(id=post_id).first()
        post.title = form.title.data
        post.content = form.content.data
        post.published = form.published.data
        return redirect(url_for('blog.show_posts'))

    form.title.data = post.title
    form.content.data = post.content
    form.published.data = post.published

    try:
        return render_template('blog_edit.html', form=form, post=post)
    except TemplateNotFound:
        abort(404)
Exemple #29
0
def create():
    date = datetime.datetime.now()
    form = BlogPostForm()
    if form.validate_on_submit():
        filename = secure_filename(form.image.data.filename)
        form.image.data.save('project/static/images/' + filename)
        image_link = 'static/images/' + filename
        new_post = BlogPost(form.title_header.data, form.title_long.data,
                            form.content.data, form.tag.data, date, image_link,
                            current_user.id, form.author_name_manual.data)
        db.session.add(new_post)
        db.session.commit()
        flash('New entry was successfully posted. Thanks.')
        return redirect(url_for('home.create'))
    else:
        filename = None
        posts = db.session.query(BlogPost).all()
        return render_template('create.html',
                               posts=posts,
                               form=form,
                               error=error,
                               filename=filename)
Exemple #30
0
def new(request, template_name='blog/new_or_edit.html'):
    if request.method == 'POST':
        form = BlogPostForm(request.POST)
        if form.is_valid():
            form.save()
        return HttpResponseRedirect("/")
    else:
        form = BlogPostForm()

    template_context = {'form': form}

    return render_to_response(template_name, template_context,
                              RequestContext(request))
Exemple #31
0
def ajax():
    form = BlogPostForm()
    if request.method == 'POST':  # and form.validate():
        post = Post(user=current_user,
                    title=form.title.data,
                    content=form.content.data)
        print(post)
        current_session.add(post)
        current_session.commit()
        return jsonify(
            post.title, post.content, current_user.name
        )  #{'success':True}), 200, {'ContentType':'application/json'} #, 'Post created!'
    if request.method == 'GET':
        return jsonify(current_user.name)
    return 'Invalid form'
    def process_edit(self, request, context, *args, **kwargs):
        post_keystr = request.REQUEST['post_key']

        if not post_keystr:
            raise RuntimeError('No argument post_key provided.')

        post_key = ndb.Key(urlsafe=post_keystr)
        post = post_key.get()

        initial_data = {
            'slug': post.slug,
            'summary': post.summary,
            'title': post.title,
            'content': post.content,
            'publish': bool(post.published_date),
            'categories': [c_key.urlsafe() for c_key in post.categories],
            'primary_media_image' : post.primary_media_image.urlsafe() if post.primary_media_image else ''
        }

        form = BlogPostForm(initial=initial_data)

        if request.POST:
            form = BlogPostForm(request.POST, initial=initial_data)
            if form.is_valid():

                p = edit_post(context['user'], post, form.cleaned_data)
                cache_invalidate('written')

                # Serve up the new row
                return HttpResponseRedirect(urlresolvers.reverse('admin_plugin_action', args=(context['plugin_slug'], 'posts')))
            else:
                return FormErrorResponse(form, id='create_form')

        target_url = "%s?post_key=%s" % (urlresolvers.reverse('admin_plugin_action', args=(context['plugin_slug'], 'edit')), post_key.urlsafe())

        return FormResponse(form, id='edit_form', title="Edit Blog Post", target_url=target_url, target_action='edit')
Exemple #33
0
def edit(request, slug, template_name='blog/new_or_edit.html'):

    post = BlogPost.objects.get(slug=slug)
    if request.method == 'POST':
        form = BlogPostForm(request.POST, instance=post)
        if form.is_valid():
            form.save()
        return HttpResponseRedirect(post.get_absolute_url())
    else:
        form = BlogPostForm(instance=post)

    template_context = {'form': form}

    return render_to_response(template_name, template_context,
                              RequestContext(request))
Exemple #34
0
def new_post(request):
    if request.method == "POST":
        form = BlogPostForm(request.POST, request.FILES)
        if form.is_valid():
            post = form.save(commit=False)
            post.author = request.user
            post.published_date = timezone.now()
            post.save()
            return redirect(post_detail, post.pk)
    else:
        form = BlogPostForm()
        return render(request, 'blogpostform.html', {'form': form})
Exemple #35
0
 def get(self, post_id=None, **kwargs):
     """Return a post to edit or an empty form to create"""
     template = 'admin/blog/new.html'
     context = {
         'form': self.form,
     }
     # render edit
     if post_id is not None:
         post = BlogPost.get_by_id(post_id)
         if post:
             self.form = BlogPostForm(obj=post)
             self.form.tags.data = ', '.join(post.tags)
             context.update({ 'form': self.form })
             template = 'admin/blog/edit.html'
         else:
             return redirect('admin/blog/')
     # render new
     return self.render_response(template, **context)
Exemple #36
0
def edit_post(request, id):
   post = get_object_or_404(Post, pk=id)
   if request.method == "POST":
       form = BlogPostForm(request.POST, request.FILES, instance=post)
       if form.is_valid():
           post = form.save(commit=False)
           post.author = request.user
           post.published_date = timezone.now()
           post.save()
           return redirect(post_detail, post.pk)
   else:
       form = BlogPostForm(instance=post)
       return render(request, 'blogpostform.html', {'form': form})
Exemple #37
0
def edit_post(request, pk):
    post = get_object_or_404(BlogPost, pk=pk)
    context = RequestContext(request)

    if not request.user.id == post.user.id:
        title = 'Error!'
        message = 'You\'re not the author of this post!'
        return render_to_response('basesite/notification.html',
                                  {'title': title, 'message': message},
                                  context)

    if request.method == "POST":
        add_post(request)
    else:
        form = BlogPostForm()
        return render_to_response('blog/add_post.html',
                                  {'form': form,
                                   'post':post.body,
                                   'post_title':post.title,
                                   'post_tags':post.tag
                                   },
                                  context)
Exemple #38
0
 def form(self):
     """Form instance as cached_property"""
     return BlogPostForm(self.request)
Exemple #39
0
def new():
    form = BlogPostForm()
    return render_template('new.html', form=form)