コード例 #1
0
ファイル: app.py プロジェクト: jdmy/school_classtable
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'))
コード例 #2
0
ファイル: main.py プロジェクト: BradleyNing/MSc
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)
コード例 #3
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)