Example #1
0
File: views.py Project: kratenko/gy
def post_edit(request):
    """
    View: Form for editing of blog post.
    """
    post = request.context
    blog = post.blog
    if request.POST:
        # got post data, let's try to save:
        post.date = request.POST.getone('date')
        post.title = request.POST.getone('title')
        post.slug = slugify(request.POST.getone('slug'))
        post.content = request.POST.getone('content')
        if post.slug == u'':
            post.slug = slugify(post.title)
        post.published = (request.POST.get('published', 'not') == u'published')
        post.set_item_tags_by_string(request.POST.getone('tags'))
        post.set_item_categories_by_string(request.POST.getone('cats'))
        DBSession.flush()
        raise HTTPFound(request.resource_url(post))
    
    return {
        'Title':u'Edit post: %s' % post.title,
        'blog':blog,
        'post':post,
        'published_checked':u'checked' if post.published else u'',
    }
Example #2
0
File: views.py Project: kratenko/gy
def view_post(request):
    post = request.context
    blog = post.blog
    if request.POST:
        if request.POST.get('.post_comment'):
            title = request.POST.getone('title')
            content = request.POST.getone('content')
            comment = Comment(main_item=post, direct_item=post)
            comment.title = title
            comment.content = content
            comment.poster_ip = request.remote_addr
            comment.depth = 1
            if request.user is None:
                comment.poster_name = request.POST.getone('name')
                comment.poster_email = request.POST.getone('email')
            else:
                comment.creator = request.user
                comment.owner = request.user

            DBSession.add(comment)
            DBSession.flush()
            raise HTTPFound(request.resource_path(post))
    return {
        'blog':blog,
        'post':post,
    }
Example #3
0
File: views.py Project: kratenko/gy
def view_month(request):
    context = request.context
    blog = None
    year = None
    month = None
    day = None
    Title = None
    if isinstance(context, Year):
        year = context
        blog = year.blog
        Title = u'%s, %04d' % (blog.title, year.number)
    elif isinstance(context, Month):
        month = context
        year = month.year
        blog = year.blog
        Title = u'%s, %04d-%02d' % (blog.title, year.number, month.number)
    elif isinstance(context, Day):
        day = context
        month = context
        year = month.year
        blog = year.blog
        Title = u'%s, %04d-%02d-%02d' % (blog.title, year.number, month.number, day.number)
    elif isinstance(context, Blog):
        blog = context
        Title = blog.title
    else:
        Title = blog.title

        
    # build the query
    query = DBSession.query(
        Post
    ).filter_by(
        blog=blog
    )
    if not request.has_permission('edit'):
        query = query.filter(Post.published==True)
    if year:
        query = query.filter(sa.func.year(Post.date)==year.number)
    if month:
        query = query.filter(sa.func.month(Post.date)==month.number)
    if day:
        query = query.filter(sa.func.day(Post.date)==day.number)
    if request.view_name == u'category':
        category_name = request.subpath[0]
        category = DBSession.query(Category).filter_by(name=category_name).first()
        query = query.filter(Post.categories.contains(category))
    if request.view_name == u'tag':
        tag_name = request.subpath[0]
        tag = DBSession.query(Tag).filter_by(name=tag_name).first()
        query = query.filter(Post.tags.contains(tag))
    query = query.order_by('date desc, created desc')
    paginator = Paginator(request, query=query, items_per_page=5)
    return {
        'Title':Title,
        'blog':blog,
        'paginator':paginator,
    }
Example #4
0
File: views.py Project: kratenko/gy
def post_delete(request):
    """
    View: Delete a post from blog.
    """
    post = request.context
    blog = post.blog
    if request.POST and request.POST.has_key('.delete'):
        DBSession.delete(post)
        DBSession.flush()
        raise HTTPFound(request.resource_url(blog))

    return {
        'Title':u'Delete post: %s' % post.title,
        'post':post,
        'blog':blog,
    }
Example #5
0
File: views.py Project: kratenko/gy
def post_form(request):
    """View: Form for posting a new post in blog.
    """
    blog = request.context
    title = u''
    slug = u''
    content = u''
    date = datetime.date.today()
    published = False
    tags = u''
    cats = u''
    if request.POST:
        # got post data, let's try to save:
        post = Post(blog=blog)
        post.date = request.POST.get('date', datetime.date.today())
        post.title = request.POST.getone('title')
        post.slug = slugify(request.POST.getone('slug'))
        post.content = request.POST.getone('content')
        post.creator = request.user
        post.set_item_tags_by_string(request.POST.getone('tags'))
        post.set_item_categories_by_string(request.POST.getone('cats'))
        if post.slug == u'':
            post.slug = slugify(post.title)
        post.published = (request.POST.get('published', 'not') == u'published')
        DBSession.flush()
#        return Response('a')
        raise HTTPFound(request.resource_url(blog))

    return {
        'Title':u'Create new post',
        'blog':blog,
        'title':title,
        'slug':slug,
        'content':content,
        'date':date,
        'tags':tags,
        'cats':cats,
        'published_checked':u'checked' if published else u'',
    }