def update(postId, title, slug, content, published_at, excerpt, tags):
	session = getSession()
	post = session.query(Post).get(postId)
	if post:
		old_published_at = post.published_at
		post.title = title
		post.slug = slug
		post.content = content
		post.published_at = published_at
		post.excerpt = excerpt		
		post.slug = shared_helper.to_url(post.slug) if isNotNull(post.slug) else shared_helper.to_url(post.title)
		if tags is not None and len(tags)>0 :
			tags = unique_tags(tags)
			tags_to_remove = filter(lambda t: t.title.lower() not in tags,post.tags)
			tags_to_add = filter(lambda t: not any(filter(lambda pt:pt.title.lower() == t,post.tags)),tags)
			remove_tags(session,post, tags_to_remove)
			add_tags(session,post, tags_to_add)
		else:
			remove_tags(post, post.tags)
		
		if __commit(session,post) and (published_at == old_published_at):
			if old_published_at is not None:
				decrement_archive(session,old_published_at)
			if published_at is not None:
				increment_archive(session,published_at)			
			
		return post
	else:
		return None
Example #2
0
def create(title, slug, content, published_at):
    page = Page(title, slug, content, published_at)
    page.slug = shared_helper.to_url(page.slug) if isNotNull(page.slug) else shared_helper.to_url(page.title)
    session = getSession()
    __commit(session, page)

    return page
Example #3
0
def update(pageId, title, slug, content, published_at):
    session = getSession()
    page = session.query(Page).get(pageId)
    page.title = title
    page.slug = slug
    page.content = content
    page.published_at = published_at
    page.slug = shared_helper.to_url(page.slug) if isNotNull(page.slug) else shared_helper.to_url(page.title)
    __commit(session, page)

    return page
def create(title, slug, content, published_at, excerpt, tags):	 
	session = getSession()
	post = Post(title, slug, content, published_at, excerpt,[])
	post.slug = shared_helper.to_url(post.slug) if isNotNull(post.slug) else shared_helper.to_url(post.title)
	if not isNotNull(post.excerpt):
		m = exper.search(content)
		post.excerpt = m.group(0) if m else "" 
		
	if tags is not None and len(tags)>0 :
		tags = unique_tags(tags)
		add_tags(session,post, tags)
		
	if __commit(session,post) and published_at is not None :
		increment_archive(session,published_at) 
	
	return post
def add_tags(session,post, tags):
	for tag in tags:
		
		_tag = session.query(Tag).filter_by(title=tag).scalar()
		if not _tag:
			_tag = Tag(tag,shared_helper.to_url(tag),1)
		else:
			_tag.posts_count +=1
		post.tags.append(_tag)