39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
from app import db
|
|
from app.models import Annual_Data, Glacier, User
|
|
from flask_sqlalchemy import BaseQuery
|
|
from flask import flash, redirect, url_for
|
|
|
|
|
|
def query_annual_data(form) -> BaseQuery:
|
|
annual_data = db.session.query(Annual_Data).filter_by(year=form.year.data)
|
|
if form.name.data:
|
|
glacier_name = (
|
|
db.session.query(Annual_Data)
|
|
.join(Glacier, Glacier.id == Annual_Data.id)
|
|
.filter_by(name=form.name.data)
|
|
.group_by(Annual_Data.year)
|
|
)
|
|
if glacier_name.first() is None:
|
|
flash("Sorry, no results found")
|
|
return redirect(url_for("table_selection"))
|
|
return glacier_name
|
|
return annual_data
|
|
|
|
|
|
def query_user(form) -> BaseQuery:
|
|
user = User.query.filter_by(username=form.username.data).first()
|
|
return user
|
|
|
|
|
|
def query_plot_data(form) -> BaseQuery:
|
|
query = (
|
|
db.session.query(Annual_Data)
|
|
.join(Glacier, Glacier.id == Annual_Data.id)
|
|
.filter_by(name=form.name.data)
|
|
.group_by(Annual_Data.year)
|
|
)
|
|
if query.first() is None:
|
|
flash("Sorry, no results found")
|
|
return redirect(url_for("plot_selection"))
|
|
return query
|