Explore page created, links added. Minor formatting.
This commit is contained in:
parent
229d577a60
commit
db403644b3
11 changed files with 179 additions and 33 deletions
0
uwume/assets/explore/content.txt
Normal file
0
uwume/assets/explore/content.txt
Normal file
|
@ -81,6 +81,17 @@ def get_users():
|
||||||
return user_list_formatted
|
return user_list_formatted
|
||||||
|
|
||||||
|
|
||||||
|
def get_users_list(partition):
|
||||||
|
users = Table('users', md, autoload=True, autoload_with=engine)
|
||||||
|
query = select([users.columns.name, users.columns.count]).order_by(users.columns.name.asc()).offset(partition*10).limit(10)
|
||||||
|
output = conn.execute(query)
|
||||||
|
user_list = output.fetchall()
|
||||||
|
user_list_formatted = []
|
||||||
|
for u in user_list:
|
||||||
|
user_list_formatted += [(str(u[0]), str(u[1]))]
|
||||||
|
return user_list_formatted
|
||||||
|
|
||||||
|
|
||||||
def get_all():
|
def get_all():
|
||||||
users = Table('users', md, autoload=True, autoload_with=engine)
|
users = Table('users', md, autoload=True, autoload_with=engine)
|
||||||
query = select([users])
|
query = select([users])
|
||||||
|
|
0
uwume/static/css/explore/index.css
Normal file
0
uwume/static/css/explore/index.css
Normal file
6
uwume/static/js/explore/index.js
Normal file
6
uwume/static/js/explore/index.js
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
|
||||||
|
|
||||||
|
window.addEventListener("load", function() {
|
||||||
|
console.log("View specific JS initialized.");
|
||||||
|
// If JS is enabled, set view to update pages without refreshing
|
||||||
|
});
|
33
uwume/templates/explore/index.html
Normal file
33
uwume/templates/explore/index.html
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
{% extends 'index.html' %} {% block header %}
|
||||||
|
<h1 class="blue-grey-text text-lighten-5 center">
|
||||||
|
UwU Me!
|
||||||
|
</h1>
|
||||||
|
<h5 class="blue-grey-text text-lighten-4 center">
|
||||||
|
Explore Users
|
||||||
|
</h5>
|
||||||
|
{% endblock %} {% block content %}
|
||||||
|
<div class="card-panel grey darken-3">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col s12 m6">
|
||||||
|
<a class="col s12 m10 offset-s0 offset-m1 btn btn-block waves-effect waves-light blue darken-2 z-depth-2" href="/login">
|
||||||
|
Login
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="col s12 m6">
|
||||||
|
<a class="col s12 m10 offset-s0 offset-m1 btn btn-block waves-effect waves-light blue darken-2 z-depth-2" href="/signup">
|
||||||
|
Sign Up
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="card-panel grey darken-3">
|
||||||
|
{% for item in content_text %}
|
||||||
|
<p class="blue-grey-text text-lighten-5">
|
||||||
|
{{ item }}
|
||||||
|
</p>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
<div class="card-panel grey darken-3">
|
||||||
|
{% include 'explore/userlist.html'%}
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
72
uwume/templates/explore/userlist.html
Normal file
72
uwume/templates/explore/userlist.html
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
{% block userlist %}
|
||||||
|
<div class="row center">
|
||||||
|
<div class="col s12">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col s6 flow-text">
|
||||||
|
Username
|
||||||
|
</div>
|
||||||
|
<div class="col s6 flow-text">
|
||||||
|
Amount of UwU
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% for user in user_page_list %}
|
||||||
|
<div class="row">
|
||||||
|
<div class="divider"></div>
|
||||||
|
<a href="/user/{{ user[0] }}" target="_blank">
|
||||||
|
<div class="col s6 flow-text">
|
||||||
|
{{ user[0] }}
|
||||||
|
</div>
|
||||||
|
<div class="col s6 flow-text">
|
||||||
|
{{ user[1] }}
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row center">
|
||||||
|
<ul class="pagination">
|
||||||
|
{% if user_page_current == 0 %}
|
||||||
|
<li class="disabled">
|
||||||
|
<a class="blue-grey-text text-lighten-3" href="#!">
|
||||||
|
<
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% else %}
|
||||||
|
<li class="waves-effect">
|
||||||
|
<a
|
||||||
|
class="blue-grey-text text-lighten-3"
|
||||||
|
href="/explore/{{ user_page_current-1 }}"
|
||||||
|
>
|
||||||
|
<
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% endif %} {% for page in range(user_pages_length) %} {% if page ==
|
||||||
|
user_page_current %}
|
||||||
|
<li class="active"><a href="#!">{{ page+1 }}</a></li>
|
||||||
|
{% else %}
|
||||||
|
<li class="waves-effect">
|
||||||
|
<a class="blue-grey-text text-lighten-5" href="/explore/{{ page }}"
|
||||||
|
>{{ page+1 }}</a
|
||||||
|
>
|
||||||
|
</li>
|
||||||
|
{% endif %} {% endfor %} {% if user_pages_length-1 == user_page_current %}
|
||||||
|
<li class="disabled">
|
||||||
|
<a class="blue-grey-text text-lighten-3" href="#!">
|
||||||
|
>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% else %}
|
||||||
|
<li class="waves-effect">
|
||||||
|
<a
|
||||||
|
class="blue-grey-text text-lighten-3"
|
||||||
|
href="/explore/{{ user_page_current+1 }}"
|
||||||
|
>
|
||||||
|
>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% endblock %}
|
|
@ -21,10 +21,23 @@
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
<div class="card-panel grey darken-3">
|
<div class="card-panel grey darken-3">
|
||||||
<div class="center">
|
<div class="row">
|
||||||
<a class="waves-effect waves-light btn blue darken-2" href="/logout">
|
<div class="col s12 m6">
|
||||||
Logout
|
<a
|
||||||
</a>
|
class="col s12 m10 offset-s0 offset-m1 btn btn-block waves-effect waves-light blue darken-2 z-depth-2"
|
||||||
|
href="/explore"
|
||||||
|
>
|
||||||
|
Explore
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="col s12 m6">
|
||||||
|
<a
|
||||||
|
class="col s12 m10 offset-s0 offset-m1 btn btn-block waves-effect waves-light blue darken-2 z-depth-2"
|
||||||
|
href="/logout"
|
||||||
|
>
|
||||||
|
Logout
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -5,21 +5,24 @@
|
||||||
{% endblock %} {% block content %}
|
{% endblock %} {% block content %}
|
||||||
<div class="card-panel grey darken-3">
|
<div class="card-panel grey darken-3">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col s12">
|
<div class="col s12 m4">
|
||||||
<div class="row">
|
<a class="col s12 m10 offset-s0 offset-m1 btn btn-block waves-effect waves-light blue darken-2 z-depth-2" href="/login">
|
||||||
<div class="center col s6">
|
Login
|
||||||
<a class="waves-effect waves-light btn blue darken-2" href="/login">
|
</a>
|
||||||
Login
|
</div>
|
||||||
</a>
|
<div class="col s12 m4">
|
||||||
</div>
|
<a class="col s12 m10 offset-s0 offset-m1 btn btn-block waves-effect waves-light blue darken-2 z-depth-2" href="/explore">
|
||||||
<div class="center col s6">
|
Explore
|
||||||
<a class="waves-effect waves-light btn blue darken-2" href="/signup">
|
</a>
|
||||||
Sign Up
|
</div>
|
||||||
</a>
|
<div class="col s12 m4">
|
||||||
</div>
|
<a class="col s12 m10 offset-s0 offset-m1 btn btn-block waves-effect waves-light blue darken-2 z-depth-2" href="/signup">
|
||||||
</div>
|
Sign Up
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="card-panel grey darken-3">
|
||||||
{% for item in content_text %}
|
{% for item in content_text %}
|
||||||
<p class="blue-grey-text text-lighten-5">
|
<p class="blue-grey-text text-lighten-5">
|
||||||
{{ item }}
|
{{ item }}
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<form class="col s12" action="" method="post">
|
<form class="col s12" action="" method="post">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="input-field col s6">
|
<div class="input-field col s12 m6">
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
placeholder="Username"
|
placeholder="Username"
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
id="username"
|
id="username"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="input-field col s6">
|
<div class="input-field col s12 m6">
|
||||||
<input
|
<input
|
||||||
type="password"
|
type="password"
|
||||||
placeholder="Password"
|
placeholder="Password"
|
||||||
|
@ -31,14 +31,12 @@
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="center">
|
|
||||||
<button
|
<button
|
||||||
class="waves-effect waves-light btn blue darken-2"
|
class="col s10 offset-s1 waves-effect waves-light btn btn-block blue darken-2 z-depth-2"
|
||||||
type="submit"
|
type="submit"
|
||||||
>
|
>
|
||||||
Login
|
Login
|
||||||
</button>
|
</button>
|
||||||
</div>
|
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<form class="col s12" action="" method="post">
|
<form class="col s12" action="" method="post">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="input-field col s6">
|
<div class="input-field col s12 m6">
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
placeholder="Username"
|
placeholder="Username"
|
||||||
|
@ -26,7 +26,7 @@
|
||||||
id="username"
|
id="username"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div class="input-field col s6">
|
<div class="input-field col s12 m6">
|
||||||
<input
|
<input
|
||||||
type="password"
|
type="password"
|
||||||
placeholder="Password"
|
placeholder="Password"
|
||||||
|
@ -37,14 +37,12 @@
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="center">
|
<button
|
||||||
<button
|
class="col s10 offset-s1 waves-light btn btn-block blue darken-2 z-depth-2"
|
||||||
class="waves-effect waves-light btn blue darken-2"
|
type="submit"
|
||||||
type="submit"
|
>
|
||||||
>
|
Create Account
|
||||||
Create Account
|
</button>
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -2,7 +2,7 @@ try:
|
||||||
from .lib.helpers import get_static_paths, get_content_text
|
from .lib.helpers import get_static_paths, get_content_text
|
||||||
from .lib.classUser import User
|
from .lib.classUser import User
|
||||||
from .lib.classUwuCounter import UwuCounter
|
from .lib.classUwuCounter import UwuCounter
|
||||||
from .lib.databaseMethods import get_table, get_count, update_count, get_users, get_all, check_password
|
from .lib.databaseMethods import get_table, get_count, update_count, get_users, get_users_list, get_all, check_password
|
||||||
except:
|
except:
|
||||||
from lib.classUser import User
|
from lib.classUser import User
|
||||||
from lib.helpers import get_static_paths, get_content_text
|
from lib.helpers import get_static_paths, get_content_text
|
||||||
|
@ -11,6 +11,7 @@ except:
|
||||||
from . import app
|
from . import app
|
||||||
from flask import Flask, render_template, redirect, url_for, request, flash
|
from flask import Flask, render_template, redirect, url_for, request, flash
|
||||||
from flask_login import LoginManager, UserMixin, login_required, login_user, current_user, logout_user
|
from flask_login import LoginManager, UserMixin, login_required, login_user, current_user, logout_user
|
||||||
|
from math import ceil
|
||||||
|
|
||||||
login_manager = LoginManager()
|
login_manager = LoginManager()
|
||||||
login_manager.init_app(app)
|
login_manager.init_app(app)
|
||||||
|
@ -41,6 +42,16 @@ def load_user(request):
|
||||||
return User.get(request)
|
return User.get(request)
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/explore/<page>', methods=['GET'])
|
||||||
|
def explore_users_list(page):
|
||||||
|
return render_template('explore/index.html', user_page_current=int(page), user_page_list=get_users_list(int(page)), user_pages_length=ceil(len(get_users())/10), static_paths=get_static_paths(), content_text=get_content_text())
|
||||||
|
|
||||||
|
|
||||||
|
@app.route('/explore', methods=['GET'])
|
||||||
|
def explore_users():
|
||||||
|
return redirect('/explore/0')
|
||||||
|
|
||||||
|
|
||||||
@app.route('/user/<username>/getCurval', methods=['GET'])
|
@app.route('/user/<username>/getCurval', methods=['GET'])
|
||||||
def get_curval(username):
|
def get_curval(username):
|
||||||
error = ''
|
error = ''
|
||||||
|
@ -70,6 +81,7 @@ def user_page(username):
|
||||||
error = f'{e}'
|
error = f'{e}'
|
||||||
return f'ERROR: {error}'
|
return f'ERROR: {error}'
|
||||||
|
|
||||||
|
|
||||||
@app.route('/home/getCurval', methods=['GET'])
|
@app.route('/home/getCurval', methods=['GET'])
|
||||||
@login_required
|
@login_required
|
||||||
def home_get_curval():
|
def home_get_curval():
|
||||||
|
|
Reference in a new issue