Example #1
0
def publish_things():
    form = PublishForm()
    if request.method == 'GET':
        with g.db as cur:
            sql = """select title,class_name,id from publishes
        """
            cur.execute(sql)
            publish_list = [
                dict(title=row[0], class_name=row[1], id=row[2])
                for row in cur.fetchall()
            ]

        return render_template('modify.html',
                               form=form,
                               publish_list=publish_list)
    else:
        if form.validate_on_submit():
            with g.db as cur:
                sql = """insert into publishes(title,class_name) values('{0}','{1}')
            """.format(form.title.data, form.class_name.data)
                cur.execute(sql)
            flash('You have modify a publish')
        else:
            flash(form.errors)
        return redirect(url_for('publish_things'))
def profile():
    form = PublishForm()

    if "email" not in session:
        return redirect(url_for("login"))

    user = User.query.filter_by(email=session["email"]).first()

    if request.method == "POST":
        if form.validate() == False:
            return render_template("profile.html", form=form, user=user)
        else:
            newentry = Entries(
                form.topic.data,
                form.article.data,
                session["email"],
                user.firstname,
                user.lastname,
                datetime.datetime.now(),
            )
            db.session.add(newentry)
            db.session.commit()

            return redirect(url_for("home"))

    elif request.method == "GET":
        if user.role == ROLE_ADMIN:
            return redirect(url_for("admin"))
        if user.role == ROLE_USER:
            return render_template("profile.html", form=form, user=user)
Example #3
0
def publish():
	form = PublishForm()
	if form.validate_on_submit():
		deviceName = str(form.name.data)
		deviceId  = str(form.did.data)
		location = str(form.location.data)
		deviceType  = str(form.dtype.data)
		
		deviceNode = objectify.Element("Device")
		deviceNode.name = deviceName
		deviceNode.id = deviceId
		deviceNode.location = location
		deviceNode.type = deviceType
		deviceNode.value = random.uniform(0,100)
		doc = etree.parse(".\generated\DeviceList-a.xml")
		xmlRoot=doc.getroot()

		xmlRoot.append(deviceNode)
		objectify.deannotate(xmlRoot)
		etree.cleanup_namespaces(xmlRoot)

		xmlfp = open('.\generated\DeviceList-a.xml', 'w')
		xmlstr = etree.tostring(xmlRoot, pretty_print=True, xml_declaration=True)
		xmlstr=xmlstr.decode("utf-8")
		xmlfp.write(xmlstr)
		xmlfp.close()
		return redirect(url_for('index'))	
	return render_template('MAWSPublish.html', form=form)
Example #4
0
def test_form_view(request):
    if request.method == 'POST':
        request_form = PublishForm(request.POST)
        if request_form.is_valid():
            request_dict = request_form.clean()
            print(request_dict)
        return render(request, 'test.html', {'pub_form': request_form})
    else:
        pub_form = PublishForm()
        return render(request, 'test.html', {'pub_form': pub_form})
def edit_entry(pub_id):
    post_edit = Entries.query.filter_by(pub_id=pub_id).first()
    form = PublishForm(request.form, post_edit)
    if request.method == "POST":
        if form.validate() == False:
            return render_template("admin.html", form=form)
        else:
            form.populate_obj(post_edit)
            db.session.add(post_edit)
            db.session.commit()
            return redirect(url_for("admin"))
    return render_template("admin.html", form=form)
Example #6
0
    def create_form(self, edit_form=False):
        """Return form for publish page.

        :param bool edit_form: Set if edit form
        """
        solr_update_url = self.service_urls()['solr_update_url']
        form = PublishForm(meta={'solr_url': (solr_update_url != '')})

        return form
def add_post_admin():
    form = PublishForm()

    user = User.query.filter_by(email=session["email"]).first()

    if request.method == "POST":
        if form.validate() == False:
            return render_template("admin.html", form=form, user=user)
        else:
            new_entry = Entries(
                form.topic.data,
                form.article.data,
                session["email"],
                user.firstname,
                user.lastname,
                datetime.datetime.now(),
            )
            db.session.add(new_entry)
            db.session.commit()

            return redirect(url_for("admin"))

    elif request.method == "GET":
        return render_template("admin.html", form=form, user=user)
Example #8
0
def submitted_docs():
    form = PublishForm(request.form)
    removeForm = RemoveForm(request.form)
    publish_errors = False
    #If user clicked publish
    if form.validate_on_submit(
    ) and request.form['submit'] == 'Publish' and current_user.role == 'Admin':
        for input in request.form:
            #split name to get document id
            input = input.split('_')
            if input[0] == 'publish':
                doc_id = input[1]
                #get document form database
                document = db.session.query(Document).join(Submit).join(
                    User).filter(
                        or_(
                            Submit.uid == session['uid'],
                            current_user.role == 'Admin',
                            and_(current_user.role == 'Agency_Admin',
                                 Document.agency == current_user.agency))
                    ).filter(Document.status == "publishing").filter(
                        Document.id == doc_id).first()
                if not document.category:
                    publish_errors = True
                    break
                if document:
                    #check if document had multiple parts
                    results = db.session.query(Document).join(Submit).join(
                        User).filter(
                            or_(
                                Submit.uid == session['uid'],
                                current_user.role == 'Admin',
                                and_(current_user.role == 'Agency_Admin',
                                     Document.agency == current_user.agency))
                        ).filter(Document.status == "publishing").filter(
                            Document.common_id != None).filter(
                                document.common_id ==
                                document.common_id).all()
                    #change the status od documents to published
                    if not results:
                        document.status = 'published'
                        document.approved = 'yes'
                    else:
                        for result in results:
                            result.status = 'published'
                            result.approved = 'yes'
                    db.session.commit()
        if not publish_errors:
            return redirect(url_for('submitted_docs'))
    #if user clicked removed
    if form.validate_on_submit() and request.form['submit'] == 'Remove':
        for input in request.form:
            input = input.split('_')
            if input[0] == 'remove':
                doc_id = input[1]
                #get document
                document = db.session.query(Document).join(Submit).join(
                    User).filter(
                        or_(
                            Submit.uid == session['uid'],
                            current_user.role == 'Admin',
                            and_(current_user.role == 'Agency_Admin',
                                 Document.agency == current_user.agency))
                    ).filter(Document.status == "publishing").filter(
                        Document.id == doc_id).first()
                if document:
                    #check if doucment has multiple parts
                    results = db.session.query(Document).join(Submit).join(
                        User).filter(
                            or_(
                                Submit.uid == session['uid'],
                                current_user.role == 'Admin',
                                and_(current_user.role == 'Agency_Admin',
                                     Document.agency == current_user.agency))
                        ).filter(Document.status == "publishing").filter(
                            Document.common_id != None).filter(
                                document.common_id ==
                                Document.common_id).all()
                    #change status to removed
                    if not results:
                        document.status = 'removed'
                    else:
                        for result in results:
                            result.status = 'removed'
                    db.session.commit()
    #query all documents that have status submitted
    docs_sec = db.session.query(
        Document, func.count(Document.common_id),
        User).outerjoin(Section).join(Submit).join(User).filter(
            Document.common_id != None).filter(
                or_(
                    Submit.uid == session['uid'], current_user.role == 'Admin',
                    and_(Document.agency == current_user.agency,
                         current_user.role == 'Agency_Admin'))).filter(
                             Document.status == "publishing").group_by(
                                 Document.common_id).all()
    docs_null = db.session.query(Document, func.count(
        Document.id), User).outerjoin(Section).join(Submit).join(User).filter(
            Document.common_id == None).filter(
                or_(
                    Submit.uid == session['uid'], current_user.role == 'Admin',
                    and_(Document.agency == current_user.agency,
                         current_user.role == 'Agency_Admin'))).filter(
                             Document.status == "publishing").group_by(
                                 Document.id).all()
    docs = docs_sec + docs_null
    return render_template('submitted.html',
                           results=docs,
                           form=form,
                           removeForm=removeForm,
                           publish_errors=publish_errors,
                           current_user=current_user)