def user_edit(username): user = User.query.filter_by(username=username).first() latest_downloads = user.comics.order_by(Comic.timestamp.desc()).limit(8) form = UpdateForm() if request.method == "GET": if user is not None: form.email.data = user.email form.website.data = user.website form.first_name.data = user.first_name form.last_name.data = user.last_name form.website.data = user.website form.bio.data = user.bio form.show_display_name.data = user.show_display_name form.role.data = user.role if form.validate_on_submit(): if user is None: user = User() user.website = form.website.data user.bio = form.bio.data if form.email.data != user.email: user.email = form.email.data user.first_name = form.first_name.data user.last_name = form.last_name.data if form.role.data.id != user.role_id: user.role_id = form.role.data.id the_file = upload_file('avatar') if the_file: user.avatar = the_file db.session.add(user) db.session.commit() msg = Markup( '<div class="alert alert-light alert-dismissible mb-4 py-3 border-left-success">Profile updated!<button role="button" class="close" data-dismiss="alert" type="button">×</button></div>' ) flash(msg) return redirect(url_for('account.user_edit', username=user.username)) return render_template('admin/user.edit.html', form=form, user=user, latest_downloads=latest_downloads)
def post_edit(title): form = PostForm() post = Post.query.filter_by(title=title).first_or_404() categories = PostCategory.query.all() tags = Tag.query.all() if request.method == 'GET': form.title.data = post.title form.permalink.data = post.permalink form.visibility.data = post.visibility form.summary.data = post.summary form.content.data = post.content form.allow_comments.data = post.allow_comments form.allow_pingbacks.data = post.allow_pingbacks form.is_sticky.data = post.is_sticky if form.validate_on_submit(): post.title = form.title.data post.permalink = form.title.data.translate(translate).replace( ' ', '-').replace('.', '').lower() post.visibility = form.visibility.data post.user_id = current_user.id post.summary = form.summary.data post.content = form.content.data featured_image = upload_file('featured_image', filetype='post') if featured_image: post.featured_image = featured_image db.session.add(post) db.session.commit() msg = Markup( '<div class="alert alert-light alert-dismissible mb-4 py-3 border-left-success">Post {} edited<button role="button" class="close" data-dismiss="alert" type="button">×</button></div>' ) flash(msg.format(post.title)) return redirect( url_for('account.post_edit', title=post.title, form=form, categories=categories, tags=tags)) return render_template('admin/post.edit.html', form=form, post=post, categories=categories, tags=tags)
def register(code): invitation = Invitation.query.filter_by(invitation_code=code).first() if invitation is None: return redirect(url_for('main.invalid')) invite = InviteForm() if invite.validate_on_submit(): referer = User.query.filter_by( username=invitation.invited_by.username).first() user = User() user.username = invite.username.data user.email = invite.email.data if not (check_invite_code(invite.email.data, code)): return redirect(url_for('main.invalid')) user.first_name = invite.first_name.data user.last_name = invite.last_name.data user.password = invite.password.data the_file = upload_file('avatar') if the_file: post.featured_image = the_file send_mail("Thank you for registering with Save All Comics", current_app.config['ADMIN_EMAIL'], invitation.email, text_body=render_template('email/thankyou_req.txt', invitation=invitation), html_body=render_template('email/thankyou_req.html', invitation=invitation)) msg = "Email Confirmation Sent! Please login." db.session.add(user) db.session.delete(invitation) db.session.commit() user = User.query.filter_by(username=invite.username.data).first() # user.referer = referer db.session.add(user) db.session.commit() flash(msg, category='public') return redirect(url_for('main.savecomic')) return render_template('admin/register.html', invite=invite, invitation=invitation)
def project_create(): form = ProjectForm() if form.validate_on_submit(): project = Project() project.name = form.name.data project.slug = form.name.data.translate(translate).replace( ' ', '-').replace('.', '').lower() project.content = form.content.data featured_image = upload_file('featured_image', filetype='project') if featured_image: project.featured_image = featured_image session['name'] = project.name db.session.add(project) db.session.commit() return redirect(url_for('account.project_edit', name=project.name)) return render_template('admin/project.edit.html', form=form)
def media_upload(): form = MediaForm() if form.validate_on_submit(): media = Media() the_file = upload_file('filename') if not the_file: return redirect(request.url) filename, extension = splitext(the_file) media.title = form.title.data or the_file.split('.') media.caption = form.caption.data media.filename = the_file media.filetype = check_extension(extension) media.description = form.description.data media.user_id = current_user.id db.session.add(media) db.session.commit() return redirect(url_for('account.media_upload', title=media.title)) return render_template('admin/media.edit.html', form=form)
def project_edit(name): form = ProjectForm() project = Project.query.filter_by(name=name).first_or_404() categories = PostCategory.query.all() tags = Tag.query.all() if request.method == 'GET': form.name.data = project.name form.content.data = project.content if form.validate_on_submit(): project.name = form.name.data project.slug = form.name.data.translate(translate).replace( ' ', '-').replace('.', '').lower() project.content = form.content.data project.summary = summarize(form.content.data) featured_image = upload_file('featured_image', filetype='project') if featured_image: project.featured_image = featured_image db.session.add(project) db.session.commit() msg = Markup( '<div class="alert alert-light alert-dismissible mb-4 py-3 border-left-success">Project {} edited<button role="button" class="close" data-dismiss="alert" type="button">×</button></div>' ) flash(msg.format(project.name)) return redirect( url_for('account.project_edit', name=project.name, form=form, categories=categories, tags=tags)) return render_template('admin/project.edit.html', form=form, project=project, categories=categories, tags=tags)
def post_create(): form = PostForm() if form.validate_on_submit(): post = Post() post.title = form.title.data post.permalink = form.title.data.translate(translate).replace( ' ', '-').replace('.', '').lower() post.visibility = form.visibility.data post.user_id = current_user.id post.summary = form.summary.data post.content = form.content.data featured_image = upload_file('featured_image', filetype='post') if featured_image: post.featured_image = featured_image session['title'] = post.title db.session.add(post) db.session.commit() return redirect(url_for('account.post_edit', title=post.title)) return render_template('admin/post.edit.html', form=form)