diff --git a/audiophiler/__init__.py b/audiophiler/__init__.py index 83feecb..0d4b717 100644 --- a/audiophiler/__init__.py +++ b/audiophiler/__init__.py @@ -63,62 +63,126 @@ @app.route("/") @auth.oidc_auth('default') @audiophiler_auth -def home(auth_dict=None): +def home_def(auth_dict=None): + return redirect("/1") + +@app.route("/") +@auth.oidc_auth('default') +@audiophiler_auth +def home(page, auth_dict=None): # Retrieve list of files for templating - db_files = File.query.all() + query = File.query + rows = query.count() + rows = int(rows // 10 + bool(rows % 10)) + + if page > rows or page < 1: + return "Page Out of Bounds", 404 + + db_files = File.query.offset((page-1) * 10).limit(10).all() harolds = get_harold_list(auth_dict["uid"]) tour_harolds = get_harold_list("root") + is_rtp = ldap_is_rtp(auth_dict["uid"]) is_eboard = ldap_is_eboard(auth_dict["uid"]) + return render_template("main.html", db_files=db_files, get_date_modified=get_date_modified, s3_bucket=s3_bucket, auth_dict=auth_dict, harolds=harolds, tour_harolds=tour_harolds, - is_rtp=is_rtp, is_eboard=is_eboard, is_tour_page=False) + is_rtp=is_rtp, is_eboard=is_eboard, is_tour_page=False, + current="", page=page, rows=rows, begin=max(1, page-6), + end=min(page+6, rows) + 1) @app.route("/mine") @auth.oidc_auth('default') @audiophiler_auth -def mine(auth_dict=None): +def mine_def(auth_dict=None): + return redirect("/mine/1") + +@app.route("/mine/") +@auth.oidc_auth('default') +@audiophiler_auth +def mine(page, auth_dict=None): + query = File.query.filter_by(author=auth_dict["uid"]) + rows = query.count() + rows = int(rows // 10 + bool(rows % 10)) + + if page > rows or page < 1: + return "Page Out of Bounds", 404 + is_rtp = ldap_is_rtp(auth_dict["uid"]) is_eboard = ldap_is_eboard(auth_dict["uid"]) + # Retrieve list of files for templating - db_files = File.query.filter_by(author=auth_dict["uid"]).all() + db_files = query.offset((page-1) * 10).limit(10).all() harolds = get_harold_list(auth_dict["uid"]) tour_harolds = get_harold_list("root") return render_template("main.html", db_files=db_files, get_file_s3=get_file_s3, get_date_modified=get_date_modified, s3_bucket=s3_bucket, auth_dict=auth_dict, harolds=harolds, - tour_harolds=tour_harolds, is_rtp=is_rtp, is_eboard=is_eboard, is_tour_page=False) + tour_harolds=tour_harolds, is_rtp=is_rtp, is_eboard=is_eboard, is_tour_page=False, + current="/mine", page=page, rows=rows, begin=max(1, page-6), + end=min(page+6, rows) + 1) @app.route("/selected") @auth.oidc_auth('default') @audiophiler_auth -def selected(auth_dict=None): - is_rtp = ldap_is_rtp(auth_dict["uid"]) - is_eboard = ldap_is_eboard(auth_dict["uid"]) +def selected_def(auth_dict=None): + return redirect("/selected/1") + +@app.route("/selected/") +@auth.oidc_auth('default') +@audiophiler_auth +def selected(page, auth_dict=None): #Retrieve list of files for templating harolds = get_harold_list(auth_dict["uid"]) + query = File.query.filter(File.file_hash.in_(harolds)) + rows = query.count() + rows = int(rows // 10 + bool(rows % 10)) + + if page > rows or page < 1: + return "Page Out of Bounds", 404 + + is_rtp = ldap_is_rtp(auth_dict["uid"]) + is_eboard = ldap_is_eboard(auth_dict["uid"]) + tour_harolds = get_harold_list("root") - db_files = File.query.filter(File.file_hash.in_(harolds)).all() + db_files = query.offset((page-1) * 10).limit(10).all() return render_template("main.html", db_files=db_files, get_date_modified=get_date_modified, s3_bucket=s3_bucket, auth_dict=auth_dict, harolds=harolds, tour_harolds=tour_harolds, - is_rtp=is_rtp, is_eboard=is_eboard, is_tour_page=False) + is_rtp=is_rtp, is_eboard=is_eboard, is_tour_page=False, + current="/selected", page=page, rows=rows, begin=max(1, page-6), + end=min(page+6, rows) + 1) @app.route("/tour_page") @auth.oidc_auth('default') @audiophiler_auth -def admin(auth_dict=None): +def admin_def(auth_dict=None): + return redirect("/tour_page/1") + +@app.route("/tour_page/") +@auth.oidc_auth('default') +@audiophiler_auth +def admin(page, auth_dict=None): + tour_harolds = get_harold_list("root") + query = File.query.filter(File.file_hash.in_(tour_harolds)) + rows = query.count() + rows = int(rows // 10 + bool(rows % 10)) + + if page > rows or page < 1: + return "Page Out of Bounds", 404 + is_rtp = ldap_is_rtp(auth_dict["uid"]) is_eboard = ldap_is_eboard(auth_dict["uid"]) + if is_eboard or is_rtp: harolds = get_harold_list(auth_dict["uid"]) - tour_harolds = get_harold_list("root") - db_files = File.query.filter(File.file_hash.in_(tour_harolds)).all() + db_files = query.offset((page-1) * 10).limit(10).all() return render_template("main.html", db_files=db_files, get_date_modified=get_date_modified, s3_bucket=s3_bucket, auth_dict=auth_dict, harolds=harolds, tour_harolds=tour_harolds, - is_rtp=is_rtp, is_eboard=is_eboard, is_tour_page=True, is_tour_mode=get_tour_lock_status()) + is_rtp=is_rtp, is_eboard=is_eboard, is_tour_page=True, is_tour_mode=get_tour_lock_status(), + current="/tour_page", page=page, rows=rows, begin=max(1, page-6), end=min(page+6, rows) + 1) return "Permission Denied", 403 diff --git a/audiophiler/templates/main.html b/audiophiler/templates/main.html index fc785ae..51c4591 100644 --- a/audiophiler/templates/main.html +++ b/audiophiler/templates/main.html @@ -80,6 +80,36 @@
Owner: {{ file.author }} uploaded {{ get_date_modified(s3_bucket, file.file_ {% if not loop.index0 is divisibleby 2 %} {% endif %} + {% if loop.index0 is divisibleby 2 and loop.last %} + + {% endif %} {% endfor %} +
+ +
{% endblock %}