def add_art(): form = ContentForm() if form.validate_on_submit(): db_sess = db_session.create_session() all_art = db_sess.query(Arts).all() le = len(all_art) art = Arts() art.title = form.title.data art.content = form.content.data art.picture = '' art.created_date = datetime.now().date() current_user.arts.append(art) img = Image.open(form.picture.data) img.save(f'static/img/articles/back_art{le}.jpg') art.picture = f'back_art{le}.jpg' db_sess.merge(current_user) db_sess.commit() db_sess.close() return redirect('/') return render_template('content.html', title='Новая статья - Sputnik', form=form)
def add_news(): form = ContentForm() if form.validate_on_submit(): db_sess = db_session.create_session() all_news = db_sess.query(News).all() le = len(all_news) news_item = News() news_item.title = form.title.data news_item.content = form.content.data news_item.created_date = datetime.now().date() news_item.picture = '' current_user.news.append(news_item) img = Image.open(form.picture.data) img.save(f'static/img/news/back_news_item{le}.jpg') news_item.picture = f'back_news_item{le}.jpg' db_sess.merge(current_user) db_sess.commit() db_sess.close() return redirect('/') return render_template('content.html', title='Новая новость - Sputnik', form=form)
def create(): """ Creating new post """ form=ContentForm() if form.validate_on_submit(): new_content = Content(title=form.title.data, detail=form.detail.data,username=current_user.username,time=datetime.datetime.now()) db.session.add(new_content) db.session.commit() return redirect(url_for('index')) return render_template('create.html', form=form)
def submit_content(): content_form = ContentForm() if content_form.validate_on_submit() and content_form.content: NewText = PasteText(0, content_form.content.data, 1) db.session.add(NewText) db.session.flush() NewPostID = NewText.id db.session.commit() flash("Paste posted! Paste code: " + str(NewPostID)) return redirect((url_for("show_paste", pid=NewPostID))) else: flash(content_form.errors) return redirect(url_for("show_index"))
def show_index(): content_form = ContentForm() # code_form = CodeForm() if request.method == "GET": return render_template("index.html", content_form=content_form) else: if content_form.validate_on_submit() and content_form.content: NewText = PasteText(0, content_form.content.data, 1) db.session.add(NewText) db.session.flush() NewPostID = NewText.id db.session.commit() flash("Paste posted! Paste code: " + str(NewPostID)) return redirect((url_for("show_paste", pid=NewPostID))) else: flash(content_form.errors) return redirect(url_for("show_index"))
def edit(slug): """ Editing the clicked post from the index page """ data = Content.query.filter_by(id=slug).first() form=ContentForm() #I found best way to re-populate is to partion request btw GET and POST if request.method == 'GET': form.title.data= data.title form.detail.data= data.detail return render_template('edit.html', form=form,data=data) elif request.method == 'POST': if form.validate_on_submit(): data.title=form.title.data data.detail=form.detail.data db.session.commit() return redirect(url_for('index'))
def edit_art(id): form = ContentForm() if request.method == "GET": db_sess = db_session.create_session() art = db_sess.query(Arts).filter(Arts.id == id, Arts.user == current_user).first() if art: form.title.data = art.title form.content.data = art.content form.picture.data = art.picture else: abort(404) db_sess.close() if form.validate_on_submit(): db_sess = db_session.create_session() art = db_sess.query(Arts).filter(Arts.id == id, Arts.user == current_user).first() if art: art.title = form.title.data art.content = form.content.data art.created_date = datetime.now().date() if form.picture.data == str: db_sess.commit() else: img = Image.open(form.picture.data) os.remove(f'static/img/articles/{art.picture}') img.save(f'static/img/articles/{art.picture}') art.picture = f'{art.picture}' db_sess.commit() return redirect('/') else: abort(404) db_sess.close() return render_template('content.html', title='Редактирование статьи - Sputnik', form=form)
def edit_news(id): form = ContentForm() if request.method == "GET": db_sess = db_session.create_session() news_item = db_sess.query(News).filter( News.id == id, News.user == current_user).first() if news_item: form.title.data = news_item.title form.content.data = news_item.content form.picture.data = news_item.picture else: abort(404) db_sess.close() if form.validate_on_submit(): db_sess = db_session.create_session() news_item = db_sess.query(News).filter( News.id == id, News.user == current_user).first() if news_item: news_item.title = form.title.data news_item.content = form.content.data news_item.created_date = datetime.now().date() if form.picture.data == str: db_sess.commit() else: img = Image.open(form.picture.data) os.remove(f'static/img/news/{news_item.picture}') img.save(f'static/img/news/{news_item.picture}') news_item.picture = f'{news_item.picture}' db_sess.commit() return redirect('/') else: abort(404) db_sess.close() return render_template('content.html', title='Редактирование новости - Sputnik', form=form)
def add_content(): form = ContentForm() if request.method == 'POST': if form.validate_on_submit(): # get form data title = form.title.data content = form.content.data category = form.category.data # add to db info = { 'title': title, 'content': content, 'category': category, 'added': datetime.utcnow(), 'user': session['username'], } db.content.insert_one(info) # return to add content page message = '"' + title + '" added successfully' log_message = "%s added " + title app.logger.info(log_message, session["username"]) flash(message) return redirect("/add_content") return render_template('add_content.html', form=form)
def show(): form_pass = ChangePassWord() user = User.query.filter_by(username=current_user.username).first() if form_pass.validate_on_submit(): if not user.is_correct_password(form_pass.lastpass.data): flash('初始密码错误') return redirect('/accounts/settings') else: if form_pass.confirpass.data != form_pass.newpass.data: flash('两次密码不一致') return redirect('/accounts/settings') else: user.password = form_pass.newpass.data db.session.commit() flash('修改成功') return redirect('/accounts/settings') username = current_user.username user_content = Content.query.filter_by(user_name=username).order_by(Content.pub_date.desc()).first() form = ContentForm() if form.validate_on_submit(): if user_content == None: new_content = Content( body = form.contentbox.data, user = current_user ) db.session.add(new_content) user.nickname = form.nickname.data db.session.commit() return redirect('accounts/settings') else: user.nickname = form.nickname.data db.session.commit() user_content.body = form.contentbox.data db.session.commit() return redirect('/accounts/settings') form_media = MediaForm() user_media = Media.query.filter_by(user_name=username).first() if form_media.validate_on_submit(): if user_media == None: media_setting = Media( user = current_user, weibo = form_media.weibo.data, weixin = form_media.weixin.data, douban = form_media.douban.data, twitter = form_media.twitter.data, github = form_media.github.data, zhihu = form_media.zhihu.data, ) db.session.add(media_setting) db.session.commit() if form_media.weibo.data != '' and user_media != None: user_media.weibo = form_media.weibo.data db.session.commit() if form_media.weixin.data != '' and user_media != None: user_media.weixin = form_media.weixin.data db.session.commit() if form_media.douban.data != '' and user_media != None: user_media.douban = form_media.douban.data db.session.commit() if form_media.twitter.data != '' and user_media != None: user_media.twitter = form_media.twitter.data db.session.commit() if form_media.github.data != '' and user_media != None: user_media.github = form_media.github.data db.session.commit() if form_media.zhihu.data != '' and user_media != None: user_media.zhihu = form_media.zhihu.data db.session.commit() return redirect('/accounts/settings') useravatar = User.query.filter_by(username=username).first() if request.method == 'POST': global file file = request.files['file'] useravatar.avatar = secure_filename(file.filename) db.session.commit() if file and allowed_file(file.filename): global filename filename = secure_filename(file.filename) file.save(os.path.join(UPLOAD_FOLDER, filename)) avatar_url = url_for('uploaded_file', filename=filename) return redirect('accounts/settings') return render_template('/accounts/settings.html', form=form, user_content=user_content, form_media=form_media, user_media=user_media, file=file, useravatar=useravatar, form_pass =form_pass, user = user )
def show(): form_pass = ChangePassWord() user = User.query.filter_by(username=current_user.username).first() if form_pass.validate_on_submit(): if not user.is_correct_password(form_pass.lastpass.data): flash('初始密码错误') return redirect('/accounts/settings') else: if form_pass.confirpass.data != form_pass.newpass.data: flash('两次密码不一致') return redirect('/accounts/settings') else: user.password = form_pass.newpass.data db.session.commit() flash('修改成功') return redirect('/accounts/settings') username = current_user.username user_content = Content.query.filter_by(user_name=username).order_by( Content.pub_date.desc()).first() form = ContentForm() if form.validate_on_submit(): if user_content == None: new_content = Content(body=form.contentbox.data, user=current_user) db.session.add(new_content) user.nickname = form.nickname.data db.session.commit() return redirect('accounts/settings') else: user.nickname = form.nickname.data db.session.commit() user_content.body = form.contentbox.data db.session.commit() return redirect('/accounts/settings') form_media = MediaForm() user_media = Media.query.filter_by(user_name=username).first() if form_media.validate_on_submit(): if user_media == None: media_setting = Media( user=current_user, weibo=form_media.weibo.data, weixin=form_media.weixin.data, douban=form_media.douban.data, twitter=form_media.twitter.data, github=form_media.github.data, zhihu=form_media.zhihu.data, ) db.session.add(media_setting) db.session.commit() if form_media.weibo.data != '' and user_media != None: user_media.weibo = form_media.weibo.data db.session.commit() if form_media.weixin.data != '' and user_media != None: user_media.weixin = form_media.weixin.data db.session.commit() if form_media.douban.data != '' and user_media != None: user_media.douban = form_media.douban.data db.session.commit() if form_media.twitter.data != '' and user_media != None: user_media.twitter = form_media.twitter.data db.session.commit() if form_media.github.data != '' and user_media != None: user_media.github = form_media.github.data db.session.commit() if form_media.zhihu.data != '' and user_media != None: user_media.zhihu = form_media.zhihu.data db.session.commit() return redirect('/accounts/settings') useravatar = User.query.filter_by(username=username).first() if request.method == 'POST': global file file = request.files['file'] useravatar.avatar = secure_filename(file.filename) db.session.commit() if file and allowed_file(file.filename): global filename filename = secure_filename(file.filename) file.save(os.path.join(UPLOAD_FOLDER, filename)) avatar_url = url_for('uploaded_file', filename=filename) return redirect('accounts/settings') return render_template('/accounts/settings.html', form=form, user_content=user_content, form_media=form_media, user_media=user_media, file=file, useravatar=useravatar, form_pass=form_pass, user=user)