コード例 #1
0
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">&times;</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)
コード例 #2
0
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">&times;</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)
コード例 #3
0
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)
コード例 #4
0
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)
コード例 #5
0
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)
コード例 #6
0
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">&times;</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)
コード例 #7
0
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)