Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @admin.route('/upload', methods=('GET', 'POST'))
- def upload():
- form= uploadform()
- almira_db = db.get_db()
- if form.validate_on_submit():
- f = form.file.data
- filename = secure_filename(f.filename)
- almira_db = db.get_db()
- #almira_db.run_query("TRUNCATE TABLE sections CASCADE")
- f.save(os.path.join(current_app.instance_path,'csvs',filename))
- with open(os.path.join(current_app.instance_path,'csvs',filename)) as csv_file:
- csv_reader = csv.DictReader(csv_file, delimiter=',')
- line_count = 0
- for i in csv_reader:
- #postgres tries to intepret as regex
- 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'])
- if sec_exist:
- #print(sec_exist[0].__dict__)
- new_sec = Section(almira_db, time=i['TIME'], seats=i['SEATS'], crse=i['CRSE'], crn=i['CRN'], sub=i['SUB'],
- sec_type=i['TYPE'], sec=i['SEC'], enrolled=i['ENRL'], days=i['DAYS'], title=i['TITLE'], waiting=0, status='open', instructor=i['INSTRUCTOR'])
- oldsec_open = sec_exist[0].seats - sec_exist[0].enrolled
- new_sec_open = int(new_sec.seats) - int(new_sec.enrolled)
- new_sec.db_id = sec_exist[0].db_id
- new_sec.update()
- # this will 100% break http timeouts in the future, taking too long
- if oldsec_open == 0 and new_sec_open > 0:
- message = 'Title:{0}\nCRN:{1}\nHas an opening'.format(sec_exist[0].title, sec_exist[0].crn)
- userids = almira_db.run_query('select userid from students_sections where sectionid=%s and status=\'waiting\'', (sec_exist[0].db_id,), True)
- for user in userids:
- user_info = almira_db.run_query('select userid, email from users where userid=%s', (user[0],), True)[0]
- result = almira_db.run_query('select * from notifications where userid=%s and message=%s', (user[0], message), True)
- if result == []:
- Notification(almira_db, userid=user_info[0], message=message, email=user_info[1]).create()
- email = Email(current_app.config['MAILSERVER'], current_app.config['MAILPORT'], current_app.config['FROMADDR'], current_app.config['MAILUSER'], current_app.config['MAILPASSWORD'])
- email.send_email(user_info[1], 'Class slot open', message)
- else:
- Section(almira_db, time=i['TIME'], seats=i['SEATS'], crse=i['CRSE'], crn=i['CRN'], sub=i['SUB'],
- sec_type=i['TYPE'], sec=i['SEC'], enrolled=i['ENRL'], days=i['DAYS'], title=i['TITLE'], waiting=0, status='open', instructor=i['INSTRUCTOR']).create()
- print(i)
- print(sec_exist,'\n')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement