Beispiel #1
0
def routeSchools(id=None, page=1):
    if not isMod():
        flash('You must be logged in to do that!', 'error')
        return redirect('/')
    if not id:
        try: r = School.objects().paginate(page=int(page), per_page=20)
        except: 
            flash("You've reached the end of schools listing!", 'warning')
            return redirect('/mod/schools/%s' % int(page)-1)
        return render('schools.html', schools=r)
    else:
        q = School.objects(id=id)
        if not len(q):
            flash("No school request with ID '%s'" % id)
            return redirect('/')
        return render('schools.html', s=q[0])
Beispiel #2
0
def routeMod(id=None, action=None):
    if not isMod(): return redirect(url_for('/find'))
    if action == 'adduser':
        if request.form.get('user') and request.form.get('pw'):
            u = Admin(username=request.form.get('user'),
                    password=hashPw(request.form.get('pw')))
            u.save()
            flash('Added user "%s" successfully!' % request.form.get('user'), 'success')
            return redirect('/mod')
    elif action =='rmvuser':
        q = Admin.objects(id=id)
        if len(q):
            q[0].delete()
            flash('Deleted user successfully!', 'success')
            return redirect('/mod')
        flash('Error deleting user!', 'error')
        return redirect('/mod')
    if not id:
        flash('Error processing your request!', 'error')
        return redirect('/mod')
    act = action.split('_', 1)
    if act[-1] == 'provider':
        q = Provider.objects(id=id)
        text = 'submission'
        url = '/mod/provider'
    elif act[-1] == 'school':
        q = School.objects(id=id)
        text = 'request'
        url ='/mod/school'
    if not len(q):
        flash('Error processing your request! (Could not find %s)' % text, 'error')
        return redirect(url+'s')
    q = q[0]
    if act[0] == 'del':
        q.delete()
        flash('Deleted %s!' % text, 'success')
        return redirect(url+'s')
    elif act[0] == 'mark':
        q.active = False
        q.save()
        flash('Marked %s as done!' % text, 'success')
        return redirect(url+'/%s' % id)
Beispiel #3
0
def internals(route=None):
    if route == 'school':
        for k, v in request.form.items():
            if not v: 
                flash('No fields can be empty!', 'error')
                return redirect('/school')
        obj = School(
            contactname=request.form['name'],
            needs=request.form['request'],
            location=request.form['location'],
            schoolname=request.form['sname'],
            contactphone=request.form['phonenum'],
            contactemail=request.form['email'])
        obj.save()
        flash('Your request has been submitted to the system! Reference ID: "%s"' % obj.id, 'success')
        return redirect('/')

    elif route == "provider": #This would be horrible if we pushed this into heavy production (form injection)
        obj = Provider()
        for k in f_db_key.values():
            setattr(obj, k, [])
        val = form_key.keys()
        for k, v in request.form.items():
            if '_' in k:
                id, name = k.split('_', 1)
                if name == 'other' and request.form.get(k): 
                    name = 'Other: "%s"' % request.form.get(k)
                getattr(obj, f_db_key[int(id)]).append(name)
                if int(id) in val:
                    val.remove(int(id))
            else:
                if not v:
                    flash('All fields are required!', 'error')
                    return redirect('/provider')
        if len(val):
            flash("You must check at least ONE box in each section!")
            return redirect('/provider')

        obj.name = request.form['name']
        obj.title = request.form['title']
        obj.orgname = request.form['orgname']
        obj.email = request.form['email']
        obj.phone = request.form['phone']
        obj.timeframe = request.form['timeframe']
        obj.save()
        flash('Added your submission! Reference ID: "%s" (you may want to write this down)' % obj.id, 'success')
        return redirect('/')