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])
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)
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('/')