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
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
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)