Advertisement
Guest User

Untitled

a guest
Dec 10th, 2019
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.01 KB | None | 0 0
  1. @admin.route('/upload', methods=('GET', 'POST'))
  2. def upload():
  3.     form= uploadform()
  4.     almira_db = db.get_db()
  5.     if form.validate_on_submit():
  6.         f = form.file.data
  7.         filename = secure_filename(f.filename)
  8.         almira_db = db.get_db()
  9.         #almira_db.run_query("TRUNCATE TABLE sections CASCADE")
  10.         f.save(os.path.join(current_app.instance_path,'csvs',filename))
  11.         with open(os.path.join(current_app.instance_path,'csvs',filename)) as csv_file:
  12.             csv_reader = csv.DictReader(csv_file, delimiter=',')
  13.             line_count = 0
  14.             for i in csv_reader:
  15.                 #postgres tries to intepret as regex
  16.                 sec_exist = Section.get_many(almira_db, crn=i['CRN'], time=i['TIME'], title=i['TITLE'], days=i['DAYS'], sec=i['SEC'], instructor=i['INSTRUCTOR'])
  17.                 if sec_exist:
  18.                     #print(sec_exist[0].__dict__)
  19.                     new_sec = Section(almira_db, time=i['TIME'], seats=i['SEATS'], crse=i['CRSE'], crn=i['CRN'], sub=i['SUB'],
  20.                         sec_type=i['TYPE'], sec=i['SEC'], enrolled=i['ENRL'], days=i['DAYS'], title=i['TITLE'], waiting=0, status='open', instructor=i['INSTRUCTOR'])
  21.                     oldsec_open = sec_exist[0].seats - sec_exist[0].enrolled
  22.                     new_sec_open = int(new_sec.seats) - int(new_sec.enrolled)
  23.                     new_sec.db_id = sec_exist[0].db_id
  24.                     new_sec.update()
  25.                     # this will 100%  break http timeouts in the future, taking too long
  26.                     if oldsec_open == 0 and new_sec_open > 0:
  27.                         message = 'Title:{0}\nCRN:{1}\nHas an opening'.format(sec_exist[0].title, sec_exist[0].crn)
  28.                         userids = almira_db.run_query('select userid from students_sections where sectionid=%s and status=\'waiting\'', (sec_exist[0].db_id,), True)
  29.                         for user in userids:
  30.                             user_info = almira_db.run_query('select userid, email from users where userid=%s', (user[0],), True)[0]
  31.                             result = almira_db.run_query('select * from notifications where userid=%s and message=%s', (user[0], message), True)
  32.                             if result == []:
  33.                                 Notification(almira_db, userid=user_info[0], message=message, email=user_info[1]).create()
  34.                                 email = Email(current_app.config['MAILSERVER'], current_app.config['MAILPORT'], current_app.config['FROMADDR'], current_app.config['MAILUSER'], current_app.config['MAILPASSWORD'])
  35.                                 email.send_email(user_info[1], 'Class slot open', message)
  36.                 else:
  37.                     Section(almira_db, time=i['TIME'], seats=i['SEATS'], crse=i['CRSE'], crn=i['CRN'], sub=i['SUB'],
  38.                         sec_type=i['TYPE'], sec=i['SEC'], enrolled=i['ENRL'], days=i['DAYS'], title=i['TITLE'], waiting=0, status='open', instructor=i['INSTRUCTOR']).create()
  39.                     print(i)
  40.                     print(sec_exist,'\n')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement