def start_session(username, password, url, system_name, data_view): try: credentials = login_with_password(url, data_view, username, password) session = Session(credentials, system_name) return session except aa.ApiException: return None
def logout_api(request): """ Logs out of FastStats session. """ session = request.session.get("ApiSession", None) if session is not None: session = Session.deserialize(request.session["ApiSession"]) aa.SessionsApi(session.api_client).sessions_logout_session( session.data_view, session.session_id) del request.session["ApiSession"] context = { "alert_type": "alert-success", "alert_message": "Logged out of FastStats session.", } return index(request, context)
def logout(request): """" Log user out, delete session info. """ session = request.session.get("ApiSession", None) if session is not None: session = Session.deserialize(request.session["ApiSession"]) aa.SessionsApi(session.api_client).sessions_logout_session( session.data_view, session.session_id) username = request.user.username dj_logout(request) context = { "alert_type": "alert-success", "alert_message": username + " has been logged out.", } return index(request, context)
def home(request, context=None): """ Return home screen. """ if context is None: context = {} session = request.session.get("ApiSession", None) if session is not None: session = Session.deserialize(session) context.update({ "system_name": session.system, "data_view": session.data_view, "access_token": session.access_token, "session_id": session.session_id, }) context.update({"title": "Home"}) return render(request, "home.html", context)
def example_three_map(request): """ Return graph from user input in example three. """ # Get selected airport, update context that that one is selected, and encode it if request.method == "POST": session = request.session.get("ApiSession", None) if session is None: return no_session_set(request) session = Session.deserialize(session) reporting_airport = request.POST["reporting_airport"] df = get_export_as_dataframe(session, reporting_airport.upper()) graph_html = make_example_three_map(df) context = {"graph": graph_html, "selected_airport": reporting_airport} return example_three(request, context) return redirect("example_three")
def example_three(request, context=None): """ Return web page for example three. """ if context is None: context = {} session = request.session.get("ApiSession", None) if session is None: return no_session_set(request) session = Session.deserialize(session) airport_names = get_codes_with_filter(session, REPORTING_AIRPORT_CODE, 0) context.update({ "title": "Example 3", "active": "example_three", "airport_names": airport_names, }) return render(request, "example_three.html", context)
def example_one(request, context=None): """ Return web page for example one. """ if context is None: context = {} session = request.session.get("ApiSession", None) if session is None: return no_session_set(request) session = Session.deserialize(session) origin_codes = get_codes_with_filter(session, REPORTING_AIRPORT_CODE, 0) context.update({ "title": "Example 1", "active": "example_one", "origin_codes": origin_codes, "dest_codes": EXAMPLE_ONE_DESTS, }) return render(request, "example_one.html", context)
def example_one_count(request): """ Return count from user input in example one. """ if request.method == "POST": session = request.session.get("ApiSession", None) if session is None: return no_session_set(request) session = Session.deserialize(session) origin = request.POST["origin_code"] dest = request.POST["dest_code"] counts_per_year = route_counts(session, origin.upper(), dest.upper()) context = { "count": counts_per_year, "selected_origin": origin, "selected_dest": dest, "selected_origin_title": origin.title(), "selected_dest_title": dest.title(), } return example_one(request, context) return redirect("example_one")
def example_two(request, context=None): """ Return web page for example two. """ if context is None: context = {} session = request.session.get("ApiSession", None) if session is None: return no_session_set(request) session = Session.deserialize(session) reporting_years = get_selector_variable_codes(session, REPORTING_PERIOD_YEARS_CODE) reporting_years[ 0] = "Show All Years" # Remove '0000' year and include show all option context.update({ "title": "Example 2", "active": "example_two", "selector_cols": EXAMPLE_TWO_SELECTORS, "date_options": ["Years", "Months"], "years": reporting_years, }) return render(request, "example_two.html", context)
def example_two_graph(request): """ Return graph from user input in example two. """ if request.method == "POST": session = request.session.get("ApiSession", None) if session is None: return no_session_set(request) session = Session.deserialize(session) first_selector = request.POST["first_selector"] date_option = request.POST["date_option"] top_pick = request.POST["top_choice"] measure_selector_code = encode_variable(first_selector) if date_option == "Show All Years": selected_year = None date_selector_code = REPORTING_PERIOD_YEARS_CODE else: selected_year = date_option date_selector_code = REPORTING_PERIOD_MONTHS_CODE limit = int(top_pick) # if limit = 0, same as None df = get_example_two_dataframe( session, [measure_selector_code, date_selector_code], selected_year=selected_year, limit=limit, ) graph_html = make_example_two_graph(df, selected_year) context = { "first_selected_col": first_selector, "selected_year": date_option, "selected_top_choice": top_pick, "graph": graph_html, } return example_two(request, context) return redirect("example_two")
def example_four(request, context=None): """ Return web page for example three. """ if context is None: context = {} session = request.session.get("ApiSession", None) if session is None: return no_session_set(request) session = Session.deserialize(session) airline_names = get_codes_with_filter(session, AIRLINE_NAME_CODE, 10001) airport_names = get_codes_with_filter(session, REPORTING_AIRPORT_CODE, 0) airport_names.insert(0, " ") # First option is blank years = get_selector_variable_codes(session, REPORTING_PERIOD_YEARS_CODE) years[ 0] = "Show All Years" # Remove '0000' year and include show all option context.update({ "title": "Example 4", "active": "example_four", "airline_names": airline_names, "years": years, "reporting_airports": airport_names, }) return render(request, "example_four.html", context)
def example_four_map(request): """ Return graph from user input in example three. """ if request.method == "POST": session = request.session.get("ApiSession", None) if session is None: return no_session_set(request) session = Session.deserialize(session) airline = request.POST["airline_name"] date_option = request.POST["year"] reporting_airport = request.POST["reporting_airport"] if date_option == "Show All Years": selected_year = None else: selected_year = date_option if reporting_airport == "": reporting_airport = None df = get_example_four_dataframe(session, airline, selected_year, reporting_airport) if (df["routes"] == 0).all(): graph_html = """<div class="alert alert-danger" role="alert" style="margin-left:14px;"> No flight routes were found in this selection </div>""" else: graph_html = make_example_four_map(df) context = { "graph": graph_html, "selected_airline": airline, "selected_year": selected_year, "selected_airport": reporting_airport, } return example_four(request, context) return redirect("example_four")