예제 #1
0
 def get(self, slug, widget_id):
     page = get_object_or_404(Page, Page.slug == slug)
     widget = get_object_or_404(Widget, Widget.id == int(widget_id))
     page.widgets.remove(widget)
     db.session.commit()
     flash("Successfully removed widget - {} from page - {}".
           format(widget.name, page.slug))
     return redirect(url_for("admin.edit_page", slug=page.slug))
예제 #2
0
    def get(self, member_id):
        if current_user.id == int(member_id):
            form = MemberForm(current_user)
            return render_template('member.html', form=form)

        user = get_object_or_404(User, User.id == member_id)
        return render_template("other_member.html", user=user)
예제 #3
0
    def post(self, slug, widget_id):
        print request.form
        page = get_object_or_404(Page, Page.slug == slug)
        if page.login_required:
            if not current_user.is_authenticated:
                abort(404)

        choice = request.form.get('choice', None)
        if not choice:
            flash("Choice is not valid", "error")
            return redirect(url_for('page.show', slug=page.slug))
        poll_choice = get_object_or_404(Choice, Choice.id == int(choice))
        poll_choice.vote += 1
        db.session.commit()
        flash("Thank you for voting")
        return redirect(url_for('page.show', slug=page.slug))
예제 #4
0
    def post(self):
        form = EditPage()
        if request.form.get('templates', None) is not None:
            form.templates.data = int(form.templates.data)

        if form.validate_on_submit():
            page = Page(
                slug=form.slug.data,
                title=form.title.data,
                description=form.description.data,
                content=form.content.data,
                login_required=form.login_required.data,
                show_in_nav=form.show_in_nav.data,
                template_id=form.templates.data,
            )

            # Fetch level from parent
            page.level = 0
            if request.form.get('parent_slug', None):
                parent = get_object_or_404(
                    Page, Page.slug ==
                    request.form.get('parent_slug'))
                page.parent_id = parent.id
                page.level = parent.level + 1
            db.session.add(page)
            db.session.commit()
            return redirect(url_for('admin.edit_page', slug=page.slug))

        return render_template('page/admin_page.html', form=form)
예제 #5
0
 def get(self, slug):
     page = get_object_or_404(Page, Page.slug == slug)
     form = EditPage(page)
     add_widget_form = AddWidgetToPageForm()
     return render_template('page/admin_page.html',
                            form=form,
                            add_widget_form=add_widget_form)
예제 #6
0
 def post(self, _id):
     template = get_object_or_404(Template, Template.id == _id)
     form = TemplateForm(template)
     if form.validate_on_submit():
         template.name = request.form.get('name')
         template.description = request.form.get('description')
         db.session.commit()
         return redirect(url_for('admin.edit_template', _id=template.id))
     return render_template("template/template.html", form=form)
예제 #7
0
    def post(self, member_id):
        member = get_object_or_404(User, User.id == int(member_id))
        form = AdminMemberForm()
        if form.validate_on_submit():
            member.first_name = form.first_name.data
            member.last_name = form.last_name.data
            member.email = form.email.data
            member.roles = []

            for role_id in form.roles.data:
                role = get_object_or_404(Role, Role.id == int(role_id))
                member.roles.append(role)
            db.session.commit()
            flash("Successfully updated member")
        else:
            flash_errors(form)

        return render_template("member/admin_member_form.html", form=form)
예제 #8
0
    def get(self, widget_id):
        widget = get_object_or_404(Widget, Widget.id == widget_id)
        widget_name = widget.widget_type.name
        component = widget.get_component()
        if component is None:
            flash("Widget is empty", "error")
            return redirect(url_for('admin.list_widget'))

        return render_template("widget/{}/show_{}_widget.html".
                               format(widget_name, widget_name),
                               widget=widget,
                               component=component)
예제 #9
0
    def get(self, slug):
        page = get_object_or_404(Page, Page.slug == slug)

        if page.login_required:
            if not current_user.is_authenticated:
                flash("Please login to view this page", "error")
                return redirect(url_for('core.index'))

        if not page.publish:
            abort(404)

        return render_template('base_page.html', page=page)
예제 #10
0
    def post(self, slug):
        page = get_object_or_404(Page, Page.slug == slug)

        if not request.form.get('widgets', None):
            flash("Widget required to add it to a page", "error")
            return redirect(url_for("admin.edit_page",
                                    slug=page.slug))

        form = AddWidgetToPageForm()
        form.widgets.data = int(request.form.get('widgets'))
        if form.validate_on_submit():
            widget_id = form.widgets.data
            widget = get_object_or_404(Widget, Widget.id == widget_id)
            if widget in page.widgets.all():
                flash("This widget is already added to page", "error")
                return redirect(url_for("admin.edit_page",
                                        slug=page.slug))

            page.widgets.append(widget)
            db.session.commit()
            flash("Successfully added widget - #{}".format(widget.name))
            return redirect(url_for("admin.edit_page", slug=page.slug))
        return render_template("page/_add_widget_to_page_form.html",
                               form=form, page=page)
예제 #11
0
    def post(self):
        form = AdminMemberForm()
        if form.validate_on_submit():
            member = User(
                first_name=form.first_name.data,
                last_name=form.last_name.data,
                email=form.email.data,
            )

            for role_id in form.roles.data:
                role = get_object_or_404(Role, Role.id == int(role_id))
                member.roles.append(role)
            db.session.add(member)
            db.session.commit()
            flash("Successfully created member")
            return redirect(url_for('admin.list_member'))

        flash_errors(form)
        return render_template("member/admin_member_form.html", form=form)
예제 #12
0
    def post(self, slug):
        page = get_object_or_404(Page, Page.slug == slug)
        form = EditPage(page)
        add_widget_form = AddWidgetToPageForm()

        if form.validate_on_submit():
            page.slug = request.form.get('slug')
            page.title = request.form.get('title')
            page.description = request.form.get('description')
            page.content = request.form.get('content')
            page.login_required = 'login_required' in request.form
            page.show_in_nav = 'show_in_nav' in request.form
            page.template_id = request.form.get('templates')
            page.header_image = request.form.get('header_image')

            db.session.commit()
            return redirect(url_for('admin.edit_page', slug=page.slug))
        return render_template('page/admin_page.html',
                               form=form,
                               add_widget_form=add_widget_form)
예제 #13
0
    def post(self):
        widget_type_id = int(request.form.get('types'))
        widget_type = get_object_or_404(
            WidgetType, WidgetType.id == widget_type_id)
        form = WidgetFormFactory(
            type=widget_type.name).get_widget_form()

        if form.validate_on_submit():
            widget = Widget(
                name=form.name.data,
                widget_type_id=int(form.types.data)
            )
            db.session.add(widget)
            db.session.commit()
            component = widget.get_component_class()
            component = component.create_by_form(form)
            component.widget = widget
            db.session.add(component)
            db.session.commit()
            flash("Successfully created widget - {}".format(widget.name))
            return redirect(url_for('admin.list_widget'))
        return render_template('widget/widget.html', form=form)
예제 #14
0
 def get(self, widget_type_id):
     widget_type = get_object_or_404(WidgetType, WidgetType.id == widget_type_id)
     db.session.delete(widget_type)
     db.session.commit()
     flash("Successfully deleted widget_type - {}".format(widget_type.name))
     return redirect(url_for('admin.list_widget'))
예제 #15
0
 def post(self, slug):
     page = get_object_or_404(Page, Page.slug == slug)
     page.publish = False
     db.session.commit()
     flash("{} is successfully unpublished".format(page.slug))
     return redirect(url_for('admin.edit_page', slug=page.slug))
예제 #16
0
 def get(self, slug):
     page = get_object_or_404(Page, Page.slug == slug)
     return render_template('base_page.html', page=page)
예제 #17
0
 def get(self, _id):
     template = get_object_or_404(Template, Template.id == _id)
     form = TemplateForm(template)
     return render_template("template/template.html", form=form)
예제 #18
0
 def get(self, _id):
     template = get_object_or_404(Template, Template.id == _id)
     db.session.delete(template)
     db.session.commit()
     flash("Succesfully deleted template - {}".format(template.name))
     return redirect(url_for('admin.index'))
예제 #19
0
 def get(self, slug):
     page = get_object_or_404(Page, Page.slug == slug)
     db.session.delete(page)
     db.session.commit()
     flash("Successfully deleted page - {}".format(page.slug))
     return redirect(url_for('admin.index'))
예제 #20
0
 def get(self, role_id):
     role = get_object_or_404(Role, Role.id == int(role_id))
     db.session.delete(role)
     db.session.commit()
     flash("Successfully deleted member")
     return redirect(url_for('admin.list_member'))
예제 #21
0
 def get(self, member_id):
     member = get_object_or_404(User, User.id == int(member_id))
     db.session.delete(member)
     db.session.commit()
     flash("Successfully deleted member")
     return redirect(url_for('admin.list_member'))
예제 #22
0
 def get(self, member_id):
     member = get_object_or_404(User, User.id == int(member_id))
     form = AdminMemberForm(member)
     return render_template("member/admin_member_form.html", form=form)