def home(): db.create_all() # Creating database in case there isn't already one current_datetime = datetime.datetime.utcnow() events = Event.query.order_by(Event.event_date.asc()).filter(Event.event_date >= current_datetime).paginate(page=1) news_query = News.query.order_by(News.news_date.desc()).paginate(page=1, per_page=3) # Query first two rows of event table in descending order list_news_id = [] for item in news_query.items: if item.image_file: list_news_id.append(item.id) # Store current date in datetime obj form = EmailForm() # form obj for emails if form.validate_on_submit(): # email = Emails(email=form.email.data) # here we are getting the data from the form and putting it in the email table of the database db.session.add(email) # adding email to database db.session.commit() flash('Your event has been created!', 'success') # flashing not set up yet return redirect(url_for('main.home')) return render_template('home.html', list_news_id=list_news_id, events=events, news=news_query, current_datetime=current_datetime, form=form, current_user=current_user)
def resetDB(): from sqlalchemy_utils import database_exists, create_database, drop_database # print(db_url) if database_exists(current_app.config["SQLALCHEMY_DATABASE_URI"]): print('Deleting old database') drop_database(current_app.config["SQLALCHEMY_DATABASE_URI"]) if not database_exists(current_app.config["SQLALCHEMY_DATABASE_URI"]): print('Rebuilding database') create_database(current_app.config["SQLALCHEMY_DATABASE_URI"]) print('Creating tables') db.create_all() db.session.commit() print('Complete')
# This script creates a sample database for test purpose from flask_server import db from flask_server.models import User, Course, Experiment, Material, Setup, Reservation from flask_bcrypt import Bcrypt from notebook.auth import passwd import datetime bcrypt = Bcrypt() db.drop_all() db.create_all() ''' course1 = Course(name='ME220') course2 = Course(name='ME461') db.session.add(course1) db.session.add(course2) db.session.commit() experiment1 = Experiment(name='lab1',owner_id=Course.query.filter_by(name='ME461').first().id) experiment2 = Experiment(name='training1',owner_id=Course.query.filter_by(name='ME220').first().id) db.session.add(experiment1) db.session.add(experiment2) db.session.commit() #Setup model changed setup1 = Setup(name='setup1',period_of_res=5,max_res_for_week=3,owner_id=1) setup2 = Setup(name='setup3',period_of_res=60,max_res_for_week=3,owner_id=2) db.session.add(setup1) db.session.add(setup2) db.session.commit()
def create_db(): db.drop_all() db.create_all() db.session.commit()
def past_events(): db.create_all() # redundant database creation events = Event.query.order_by(Event.event_date.asc()) # query all events page = request.args.get('page', default=1, type=int) # set page month_list = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'] month_names = {'01': 'January', '02': 'February', '03': 'March', '04': 'April', '05': 'May', '06': 'June', '07': 'July', '08': 'August', '09': 'September', '10': 'October', '11': 'November', '12': 'December'} # list and dictionary for listing out the months and only showing the events for the given month current_year = datetime.datetime.today().strftime('%Y') # storing current year in a variable qry = db.session.query(func.min(Event.event_date).label("min_score")) # Grab oldest event for year selection qry2 = db.session.query(func.max(Event.event_date).label("max_score")) # Grab max res = qry.one() res2 = qry2.one() min = res.min_score max = res2.max_score qry3 = Event.query.order_by(Event.event_date.desc()) yr_include = [] current_datetime = datetime.datetime.now() for item in qry3: datetime_item = pytz.timezone('America/Los_Angeles').localize(item.event_date) datetime_current = pytz.timezone('America/Los_Angeles').localize(current_datetime) if datetime_item <= datetime_current: yr_include.append(int(item.event_date.strftime('%Y'))) if min: earlier_year = int(min.strftime('%Y')) else: earlier_year = int(datetime.datetime.now().strftime('%Y')) if max: max_year = int(max.strftime('%Y')) else: max_year = int(datetime.datetime.now().strftime('%Y')) if max_year != earlier_year: year_list = list(range(earlier_year, max_year)) year_list.append(int(max_year)) else: year_list = [earlier_year] # make the sure the list of years can increase as current year increases # current datetime if request.method == 'POST': year_selected = int(request.form['event_year']) str_year_sel = request.form['event_year'] else: if max_year != earlier_year: if max_year not in yr_include: year_selected = int(max_year) while year_selected > int(yr_include[0]): year_selected = year_selected - 1 str_year_sel = str(year_selected) else: year_selected = int(max_year) while year_selected > int(current_year): year_selected = year_selected - 1 str_year_sel = str(year_selected) else: year_selected = int(earlier_year) str_year_sel = str(earlier_year) # once the inputs work this variable will be what the user selects on the year selection print(year_selected, str_year_sel) yr_include = set(yr_include) yr_include = list(yr_include) yr_include.reverse() # pass all the objs and variables into the html page return render_template('past_events.html', events=events, current_datetime=current_datetime, page=page, month_list=month_list, month_names=month_names, str_year_sel=str_year_sel, year_list=reversed(year_list), current_year=int(current_year), year_selected=year_selected, title='Past Events', yr_include=yr_include)
def news(): db.create_all() news_db = News.query.order_by(News.news_date.desc()).paginate(page=1) current_year = datetime.datetime.now(timezone).strftime('%Y') # storing current year in a variable qry = db.session.query(func.min(News.news_date).label("min_score")) # Grab oldest event for year selection qry2 = db.session.query(func.max(News.news_date).label("max_score")) # Grab max qry3 = News.query.order_by(News.news_date.desc()) yr_include = [] current_datetime = datetime.datetime.now() for item in qry3: datetime_item = pytz.timezone('America/Los_Angeles').localize(item.news_date) datetime_current = pytz.timezone('America/Los_Angeles').localize(current_datetime) if datetime_item <= datetime_current: yr_include.append(int(item.news_date.strftime('%Y'))) res = qry.one() res2 = qry2.one() min = res.min_score max = res2.max_score if min: earlier_year = int(min.strftime('%Y')) else: earlier_year = int(datetime.datetime.now(timezone).strftime('%Y')) if max: max_year = int(max.strftime('%Y')) else: max_year = int(datetime.datetime.now(timezone).strftime('%Y')) if max_year != earlier_year: year_list = list(range(earlier_year, max_year)) year_list.append(int(max_year)) else: year_list = [earlier_year] # make the sure the list of years can increase as current year increases year_list.reverse() if request.method == 'POST': year_selected = int(request.form['news_year']) str_year_sel = request.form['news_year'] else: if max_year != earlier_year: if max_year not in yr_include: year_selected = int(max_year) while year_selected > int(yr_include[0]): year_selected = year_selected - 1 str_year_sel = str(year_selected) else: year_selected = int(max_year) while year_selected > int(current_year): year_selected = year_selected - 1 str_year_sel = str(year_selected) else: year_selected = int(earlier_year) str_year_sel = str(earlier_year) # once the inputs work this variable will be what the user selects on the year selection yr_include = set(yr_include) yr_include = list(yr_include) yr_include.reverse() return render_template('news.html', news=news_db, current_year=current_year, year_list=year_list, current_datetime=current_datetime, year_selected=year_selected, str_year_sel=str_year_sel, title='News', yr_include=yr_include)
def upcoming_events(): db.create_all() current_datetime = datetime.datetime.utcnow() events = Event.query.order_by(Event.event_date.asc()).filter(Event.event_date >= current_datetime).paginate(page=1) return render_template('upcoming_events.html', events=events, title='Upcoming Events')
def setUp(self): flask_server.config["SQLALCHEMY_DATABASE_URI"] = "sqlite://" db.create_all()