def article_add(): form = ArticleForm() if form.is_submitted() and form.validate(): slug = form.slug.data if len(slug) <= 0: slug = slugify(form.title.data) # ensure slug is unique, add - until it is while Article.query.filter_by(slug=slug).count() > 0: slug += '-' article = Article(title=form.title.data, slug=slug, category_id=form.category_id.data, author_id=form.author_id.data, summary=form.summary.data, content=form.content.data, published=form.published.data) article.front_page = form.front_page.data if article.published is True: article.datetime = datetime.datetime.utcnow() article.render_html() db.session.add(article) try: db.session.commit() except: db.session.rollback() raise revision = ArticleRevision(article_id=article.id, author_id=current_user.id, title=form.title.data, summary=form.summary.data, content=form.content.data) revision.render_html() db.session.add(revision) try: db.session.commit() except: db.session.rollback() raise flash("Article Saved") return redirect(url_for('admin.articles')) categories = Category.query.all() authors = User.query.all() return render_template('admin/article_add.html', categories=categories, authors=authors, form=form)
def article_add(): error_fields = [] # article = Article() if request.method == 'POST': # Title title = request.form.get('title', "").strip() if len(title) <= 0: error_fields.append('title') # Slug slug = request.form.get('slug', "") if slug != "": slug = slugify(slug) if len(slug) <= 0 or slug is None: error_fields.append('slug') elif len(slug) <= 0 and len(title) > 0: slug = slugify(title) # author_id author_id = request.form['author_id'].strip() if User.query.filter_by(id=author_id).count() != 1: error_fields.append('author_id') # Category_id category_id = request.form['category_id'].strip() if Category.query.filter_by(id=category_id).count() != 1: error_fields.append('category_id') # datetime (should update to published time) published = request.form.get('published', False) if published is not False: published = True # front page front_page = request.form.get('front_page', False) if front_page is not False: front_page = True # summary summary = request.form.get('summary', "").strip() content = request.form.get('content', "").strip() if len(error_fields) <= 0: # ensure slug is unique, add - until it is while Article.query.filter_by(slug=slug).count() > 0: slug += '-' article = Article(title, slug, category_id, author_id, summary, content, published) # Why can't we just have a parameterless constructor so we don't # have to add constructors for each new field article.front_page = front_page if article.published is True: article.datetime = datetime.datetime.utcnow() db.session.add(article) article.render_html() # markdown to html db.session.commit() flash("Article Saved") return redirect(url_for('admin.articles')) categories = Category.query.all() authors = User.query.all() return render_template('admin/article_add.html', categories=categories, authors=authors, error_fields=error_fields)
def article_add(): error_fields = [] # article = Article() if request.method == 'POST': # Title title = request.form.get('title', "").strip() if len(title) <= 0: error_fields.append('title') # Slug slug = request.form.get('slug', "") if slug != "": slug = slugify(slug) if len(slug) <= 0 or slug is None: error_fields.append('slug') elif len(slug) <= 0 and len(title) > 0: slug = slugify(title) # author_id author_id = request.form['author_id'].strip() if User.query.filter_by(id=author_id).count() != 1: error_fields.append('author_id') # Category_id category_id = request.form['category_id'].strip() if Category.query.filter_by(id=category_id).count() != 1: error_fields.append('category_id') # datetime (should update to published time) published = request.form.get('published', False) if published is not False: published = True # front page front_page = request.form.get('front_page', False) if front_page is not False: front_page = True # summary summary = request.form.get('summary', "").strip() content = request.form.get('content', "").strip() if len(error_fields) <= 0: # ensure slug is unique, add - until it is while Article.query.filter_by(slug=slug).count() > 0: slug += '-' article = Article(title, slug, category_id, author_id, summary, content, published) # Why can't we just have a parameterless constructor so we don't # have to add constructors for each new field article.front_page = front_page if article.published is True: article.datetime = datetime.datetime.now() db.session.add(article) article.render_html() # markdown to html db.session.commit() flash("Article Saved") return redirect(url_for('admin.articles')) categories = Category.query.all() authors = User.query.all() return render_template('admin/article_add.html', categories=categories, authors=authors, error_fields=error_fields)