def content(): tracker = session.get('tracker') userdata = session.get('userdata') user = userdata['user'] name = user['id'].split('.') if tracker == 0: ###For future Olin Directory Integration #sessionid = session.get('sessionid') #unique_list(sessionid) #parsed = session.get('idDB') flash("Welcome to FlyOlinFly" + ", " + name[0].title()) cur = db_session.execute('select fname, lname, phonenum, email, flightdesc, datetime, comment, sorter from entry order by datetime') #Delete all entries that are more than 30 days old culled = db_session.query(Entry).filter(datetime.now() > (Entry.datetime + timedelta(days=30))).all() for entry in culled: db_session.delete(entry) db_session.commit() giver_rows = [] entries_rows = [] for row in cur.fetchall(): if row[7] == "offering": giver_rows.append(row) else: entries_rows.append(row) givers = [dict(fname=row[0], lname=row[1], phonenum=row[2], email=row[3], comment=row[6]) for row in giver_rows] entries = [dict(fname=row[0], lname=row[1], phonenum=row[2], email=row[3], flightdesc=row[4], date=datetime.strftime(row[5], "%m/%d/%Y"), time=datetime.strftime(row[5], "%I:%M %p"), comment=row[6]) for row in entries_rows] username = name[0].title() + name[1].title() user_db = Entry.query.filter_by(unique=user['id']).first() if user_db: exists = True user_db = {'fname': user_db.fname, 'lname': user_db.lname, 'phonenum': user_db.phonenum, 'email': user_db.email, 'flightdesc': user_db.flightdesc, 'datepicker': datetime.strftime(user_db.datetime, "%m/%d/%Y"), 'timepicker': datetime.strftime(user_db.datetime, "%I:%M %p"), 'comment': user_db.comment, 'sorter': user_db.sorter} else: exists = False user_db = False return render_template('main.html', givers=givers, entries=entries, user=username, exists=exists, user_db=user_db)
def add_newentry(): if not session.get('logged_in'): abort(401) else: fname = re.sub(r'\s*', '', request.form['fname']) lname = re.sub(r'\s*', '', request.form['lname']) _phonenum = ''.join(re.split('\D+', request.form['phonenum'])) phonenum = "-".join([_phonenum[:3], _phonenum[3:6], _phonenum[6:]]) email = request.form['email'] flightdesc = request.form['flightdesc'] date = request.form['datepicker'] time = request.form['timepicker'] comment = request.form['comment'] sorter = request.form['sorter'] ###WARNING: USERS MUST NOT ADD ENTRIES FOR ANYONE BUT THEMSELVES #this is not an ideal solution, and when I can get PUT access #things can be fixed. Until then - ###UNIQUE IS SET HERE userdata = session.get('userdata') user = userdata['user'] unique = user['id'] ###This is to grab the OlinDirectory ID ###The following code is for use in a later version #name = user['id'].split('.') #username = name[0].title() + " " + name[1].title() #parsed = session.get('idDB') session['tracker'] += 1 #quick and dirty form validation namecheck = 0 phonecheck = 0 emailcheck = 0 flightcheck = 0 datetimecheck = 0 commentcheck = 0 if len(fname) != 0 and len(lname) != 0: namecheck = 1 if len(phonenum) == 12: phonecheck = 1 if email: emailcheck = 1 if flightdesc: flightcheck = 1 ###parse the date and time data to fit a python datetime object### try: datetime1 = datetime.strptime(date + " " + time, "%m/%d/%Y %I:%M %p") datetimecheck = 1 except: datetimecheck = 0 if len(comment) <= 50: commentcheck = 1 if sorter == "offering": flightcheck = 1 datetimecheck = 1 datetime1 = datetime.now() sum = namecheck + phonecheck + emailcheck + flightcheck + datetimecheck if sum == 5: session['valid'] = True checkexist = Entry.query.filter_by(unique=user['id']).first() #checkexist = None if checkexist == None: try: newentry= Entry(fname, lname, phonenum, email, flightdesc, datetime1, unique, comment, sorter) db_session.add(newentry) db_session.commit() flash('You have added an entry') except IntegrityError, e: key = e.message.split('key')[1].split("'")[1] translate = {'phonenum': 'phone number', 'email': 'e-mail'} flash('Someone has the same ' + translate[key] + ' as you. Please contact an administrator.') else: checkexist.fname = fname checkexist.lname = lname checkexist.phonenum = phonenum checkexist.email = email checkexist.flightdesc = flightdesc checkexist.datetime = datetime1 checkexist.comment = comment checkexist.sorter = sorter db_session.add(checkexist) db_session.commit() flash('You have modified your entry') return redirect(url_for('content')) else: