mirror of
https://gitlab.com/crafty-controller/crafty-4.git
synced 2024-08-30 18:23:09 +00:00
Staff, patreon, and translations all proceedurally generate now
This commit is contained in:
parent
b957d73acb
commit
c65b4a267e
@ -43,6 +43,7 @@ class Helpers:
|
|||||||
self.ensure_dir_exists(os.path.join(self.root_dir, 'app', 'config', 'db'))
|
self.ensure_dir_exists(os.path.join(self.root_dir, 'app', 'config', 'db'))
|
||||||
self.db_path = os.path.join(self.root_dir, 'app', 'config', 'db', 'crafty.sqlite')
|
self.db_path = os.path.join(self.root_dir, 'app', 'config', 'db', 'crafty.sqlite')
|
||||||
self.serverjar_cache = os.path.join(self.config_dir, 'serverjars.json')
|
self.serverjar_cache = os.path.join(self.config_dir, 'serverjars.json')
|
||||||
|
self.credits_cache = os.path.join(self.config_dir, 'credits.json')
|
||||||
self.passhasher = PasswordHasher()
|
self.passhasher = PasswordHasher()
|
||||||
self.exiting = False
|
self.exiting = False
|
||||||
|
|
||||||
|
@ -61,6 +61,11 @@ class PanelHandler(BaseHandler):
|
|||||||
template = "public/error.html"
|
template = "public/error.html"
|
||||||
|
|
||||||
elif page == 'credits':
|
elif page == 'credits':
|
||||||
|
with open(helper.credits_cache) as republic_credits_will_do:
|
||||||
|
credits = json.load(republic_credits_will_do)
|
||||||
|
page_data["patreons"] = credits["patreons"]
|
||||||
|
page_data["staff"] = credits["staff"]
|
||||||
|
page_data["translations"] = credits["translations"]
|
||||||
template = "panel/credits.html"
|
template = "panel/credits.html"
|
||||||
|
|
||||||
elif page == 'contribute':
|
elif page == 'contribute':
|
||||||
@ -324,7 +329,7 @@ class PanelHandler(BaseHandler):
|
|||||||
user_data = json.loads(self.get_secure_cookie("user_data"))
|
user_data = json.loads(self.get_secure_cookie("user_data"))
|
||||||
exec_user = db_helper.get_user(user_data['user_id'])
|
exec_user = db_helper.get_user(user_data['user_id'])
|
||||||
|
|
||||||
if not exec_user.superuser:
|
if not exec_user['superuser']:
|
||||||
self.redirect("/panel/error?error=Unauthorized access: not superuser")
|
self.redirect("/panel/error?error=Unauthorized access: not superuser")
|
||||||
return False
|
return False
|
||||||
elif server_id is None:
|
elif server_id is None:
|
||||||
|
BIN
app/frontend/static/assets/images/credits/isilverfyre.png
Normal file
BIN
app/frontend/static/assets/images/credits/isilverfyre.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 25 KiB |
BIN
app/frontend/static/assets/images/credits/qub3d.png
Normal file
BIN
app/frontend/static/assets/images/credits/qub3d.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 31 KiB |
BIN
app/frontend/static/assets/images/credits/silversthorn.png
Normal file
BIN
app/frontend/static/assets/images/credits/silversthorn.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 34 KiB |
@ -27,9 +27,11 @@
|
|||||||
<div class="col-md-12 grid-margin">
|
<div class="col-md-12 grid-margin">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
|
<div class="card-header header-sm d-flex justify-content-between align-items-center">
|
||||||
|
<h4 class="card-title"><i class="far fa-code"></i> Development Team</h4>
|
||||||
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
{% for person in data['staff']['development'] %}
|
||||||
<div class="col-md-6 mb-5">
|
<div class="col-md-6 mb-5">
|
||||||
<div class="card rounded shadow-none">
|
<div class="card rounded shadow-none">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
@ -38,33 +40,44 @@
|
|||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
|
|
||||||
<div class="user-avatar mb-auto">
|
<div class="user-avatar mb-auto">
|
||||||
<img src="/static/assets/images/credits/ptarrant_cropped.png"
|
<img src="{{ person['pic'] }}"
|
||||||
alt="profile image" class="profile-img img-lg rounded-circle">
|
alt="profile image" class="profile-img img-lg rounded-circle">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="wrapper">
|
<div class="wrapper">
|
||||||
<div class="wrapper d-flex align-items-center">
|
<div class="wrapper d-flex align-items-center">
|
||||||
<h4 class="mb-0 font-weight-medium">Phillip Tarrant</h4>
|
<h4 class="mb-0 font-weight-medium">{{ person['name'] }}</h4>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="wrapper d-flex align-items-center font-weight-medium text-muted">
|
<div class="wrapper d-flex align-items-center font-weight-medium text-muted">
|
||||||
<i class="mdi mdi-map-marker-outline mr-2"></i>
|
<i class="mdi mdi-map-marker-outline mr-2"></i>
|
||||||
<p class="mb-0 text-muted">Atlanta, GA</p>
|
<p class="mb-0 text-muted">{{ person['loc'] }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-8">
|
<div class="col-md-8">
|
||||||
<div class="wrapper d-flex align-items-start">
|
<div class="wrapper d-flex align-items-start">
|
||||||
<span class="btn btn-sm btn-info mr-2">Staff</span>
|
{% if person['tags'][0] %}
|
||||||
<span class="btn btn-sm btn-primary mr-2">Developer</span>
|
<span class="btn btn-sm btn-info mr-2">{{ person['tags'][0] }}</span>
|
||||||
<a href="https://en.wikipedia.org/wiki/Benevolent_dictator_for_life" class="btn btn-sm btn-inverse-success mr-2">BDFL</a>
|
{% end %}
|
||||||
|
{% if person['tags'][1] %}
|
||||||
|
<span class="btn btn-sm btn-primary mr-2">{{ person['tags'][1] }}</span>
|
||||||
|
{% end %}
|
||||||
|
{% if person['tags'][2] %}
|
||||||
|
{% if type(person['tags'][2]) is list %}
|
||||||
|
<a href="{{ person['tags'][2][1] }}" class="btn btn-sm btn-inverse-success mr-2">{{ person['tags'][2][0] }}</a>
|
||||||
|
{% else %}
|
||||||
|
<span class="btn btn-sm btn-inverse-success mr-2">{{ person['tags'][2] }}</span>
|
||||||
|
{% end %}
|
||||||
|
{% end %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="wrapper d-flex align-items-start pt-3">
|
<div class="wrapper d-flex align-items-start pt-3">
|
||||||
Crafty's Benevolent Dictator for Life.<br /><br />
|
{% if person['title'] %}
|
||||||
His interests include Linux, cybersecurity, hacking, and gaming.
|
Crafty's {{ person['title'] }}<br /><br />
|
||||||
He enjoys downtime with the family, and playing with his chickens.
|
{% end %}
|
||||||
|
{{ person['blurb'] }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -72,7 +85,16 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{% end %}
|
||||||
|
|
||||||
|
</div> <!-- end of user row -->
|
||||||
|
|
||||||
|
<div class="card-header header-sm d-flex justify-content-between align-items-center">
|
||||||
|
<h4 class="card-title"><i class="fa fa-book"></i> Support and Documentation Team</h4>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
{% for person in data['staff']['support'] %}
|
||||||
<div class="col-md-6 mb-5">
|
<div class="col-md-6 mb-5">
|
||||||
<div class="card rounded shadow-none">
|
<div class="card rounded shadow-none">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
@ -81,31 +103,44 @@
|
|||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
|
|
||||||
<div class="user-avatar mb-auto">
|
<div class="user-avatar mb-auto">
|
||||||
<img src="/static/assets/images/credits/pita_cropped.png"
|
<img src="{{ person['pic'] }}"
|
||||||
alt="profile image" class="profile-img img-lg rounded-circle">
|
alt="profile image" class="profile-img img-lg rounded-circle">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="wrapper">
|
<div class="wrapper">
|
||||||
<div class="wrapper d-flex align-items-center">
|
<div class="wrapper d-flex align-items-center">
|
||||||
<h4 class="mb-0 font-weight-medium">Pita Bread</h4>
|
<h4 class="mb-0 font-weight-medium">{{ person['name'] }}</h4>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="wrapper d-flex align-items-center font-weight-medium text-muted">
|
<div class="wrapper d-flex align-items-center font-weight-medium text-muted">
|
||||||
<i class="mdi mdi-map-marker-outline mr-2"></i>
|
<i class="mdi mdi-map-marker-outline mr-2"></i>
|
||||||
<p class="mb-0 text-muted">Midwest, USA</p>
|
<p class="mb-0 text-muted">{{ person['loc'] }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-8">
|
<div class="col-md-8">
|
||||||
<div class="wrapper d-flex align-items-start">
|
<div class="wrapper d-flex align-items-start">
|
||||||
<span class="btn btn-sm btn-info mr-2">Staff</span>
|
{% if person['tags'][0] %}
|
||||||
<span class="btn btn-sm btn-inverse-success mr-2">Community Leader</span>
|
<span class="btn btn-sm btn-info mr-2">{{ person['tags'][0] }}</span>
|
||||||
|
{% end %}
|
||||||
|
{% if person['tags'][1] %}
|
||||||
|
<span class="btn btn-sm btn-primary mr-2">{{ person['tags'][1] }}</span>
|
||||||
|
{% end %}
|
||||||
|
{% if person['tags'][2] %}
|
||||||
|
{% if type(person['tags'][2]) is list %}
|
||||||
|
<a href="{{ person['tags'][2][1] }}" class="btn btn-sm btn-inverse-success mr-2">{{ person['tags'][2][0] }}</a>
|
||||||
|
{% else %}
|
||||||
|
<span class="btn btn-sm btn-inverse-success mr-2">{{ person['tags'][2] }}</span>
|
||||||
|
{% end %}
|
||||||
|
{% end %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="wrapper d-flex align-items-start pt-3">
|
<div class="wrapper d-flex align-items-start pt-3">
|
||||||
His interests include bread, Linux, and networking.
|
{% if person['title'] %}
|
||||||
He enjoys pumpkins, organizing, and long-winded emails, but hates wifi.
|
Crafty's {{ person['title'] }}<br /><br />
|
||||||
|
{% end %}
|
||||||
|
{{ person['blurb'] }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -113,11 +148,17 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{% end %}
|
||||||
|
|
||||||
</div> <!-- end user row-->
|
</div> <!-- end user row-->
|
||||||
|
|
||||||
|
<div class="card-header header-sm d-flex justify-content-between align-items-center">
|
||||||
|
<h4 class="card-title"><i class="far fa-server"></i> Retired Staff</h4>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|
||||||
|
{% for person in data['staff']['retired'] %}
|
||||||
<div class="col-md-6 mb-5">
|
<div class="col-md-6 mb-5">
|
||||||
<div class="card rounded shadow-none">
|
<div class="card rounded shadow-none">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
@ -126,288 +167,44 @@
|
|||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
|
|
||||||
<div class="user-avatar mb-auto">
|
<div class="user-avatar mb-auto">
|
||||||
<img src="/static/assets/images/credits/kevdagoat.jpeg"
|
<img src="{{ person['pic'] }}"
|
||||||
alt="profile image" class="profile-img img-lg rounded-circle">
|
alt="profile image" class="profile-img img-lg rounded-circle">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="wrapper">
|
<div class="wrapper">
|
||||||
<div class="wrapper d-flex align-items-center">
|
<div class="wrapper d-flex align-items-center">
|
||||||
<h4 class="mb-0 font-weight-medium">Kev Dagoat</h4>
|
<h4 class="mb-0 font-weight-medium">{{ person['name'] }}</h4>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="wrapper d-flex align-items-center font-weight-medium text-muted">
|
<div class="wrapper d-flex align-items-center font-weight-medium text-muted">
|
||||||
<i class="mdi mdi-map-marker-outline mr-2"></i>
|
<i class="mdi mdi-map-marker-outline mr-2"></i>
|
||||||
<p class="mb-0 text-muted">East Coast, AU</p>
|
<p class="mb-0 text-muted">{{ person['loc'] }}</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-8">
|
<div class="col-md-8">
|
||||||
<div class="wrapper d-flex align-items-start">
|
<div class="wrapper d-flex align-items-start">
|
||||||
<span class="btn btn-sm btn-info mr-2">Staff</span>
|
{% if person['tags'][0] %}
|
||||||
<span class="btn btn-sm btn-primary mr-2">Developer</span>
|
<span class="btn btn-sm btn-info mr-2">{{ person['tags'][0] }}</span>
|
||||||
<span class="btn btn-sm btn-inverse-success mr-2">HOD</span>
|
{% end %}
|
||||||
|
{% if person['tags'][1] %}
|
||||||
|
<span class="btn btn-sm btn-primary mr-2">{{ person['tags'][1] }}</span>
|
||||||
|
{% end %}
|
||||||
|
{% if person['tags'][2] %}
|
||||||
|
{% if type(person['tags'][2]) is list %}
|
||||||
|
<a href="{{ person['tags'][2][1] }}" class="btn btn-sm btn-inverse-success mr-2">{{ person['tags'][2][0] }}</a>
|
||||||
|
{% else %}
|
||||||
|
<span class="btn btn-sm btn-inverse-success mr-2">{{ person['tags'][2] }}</span>
|
||||||
|
{% end %}
|
||||||
|
{% end %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="wrapper d-flex align-items-start pt-3">
|
<div class="wrapper d-flex align-items-start pt-3">
|
||||||
Crafty's Head Of Development<br /><br />
|
{% if person['title'] %}
|
||||||
His interests include Linux, programming, and goats of course.
|
Crafty's {{ person['title'] }}<br /><br />
|
||||||
He enjoys building APIs, K8s, and Geeking over video cards.
|
{% end %}
|
||||||
</div>
|
{{ person['blurb'] }}
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="col-md-6 mb-5">
|
|
||||||
<div class="card rounded shadow-none">
|
|
||||||
<div class="card-body">
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-4">
|
|
||||||
|
|
||||||
<div class="user-avatar mb-auto">
|
|
||||||
<img src="/static/assets/images/credits/mcgaming.png"
|
|
||||||
alt="profile image" class="profile-img img-lg rounded-circle">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="wrapper">
|
|
||||||
<div class="wrapper d-flex align-items-center">
|
|
||||||
<h4 class="mb-0 font-weight-medium">MC Gaming</h4>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="wrapper d-flex align-items-center font-weight-medium text-muted">
|
|
||||||
<i class="mdi mdi-map-marker-outline mr-2"></i>
|
|
||||||
<p class="mb-0 text-muted">Central, UK</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-8">
|
|
||||||
<div class="wrapper d-flex align-items-start">
|
|
||||||
<span class="btn btn-sm btn-info mr-2">Staff</span>
|
|
||||||
<span class="btn btn-sm btn-primary mr-2">Developer</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="wrapper d-flex align-items-start pt-3">
|
|
||||||
His interests include learning, Linux, programming.
|
|
||||||
He loves pentesting apps and gaming.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div> <!-- end user row-->
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
|
|
||||||
<div class="col-md-6 mb-5">
|
|
||||||
<div class="card rounded shadow-none">
|
|
||||||
<div class="card-body">
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-4">
|
|
||||||
|
|
||||||
<div class="user-avatar mb-auto">
|
|
||||||
<img src="/static/assets/images/credits/andrew_cropped.png"
|
|
||||||
alt="profile image" class="profile-img img-lg rounded-circle">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="wrapper">
|
|
||||||
<div class="wrapper d-flex align-items-center">
|
|
||||||
<h4 class="mb-0 font-weight-medium">Andrew Redacted</h4>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="wrapper d-flex align-items-center font-weight-medium text-muted">
|
|
||||||
<i class="mdi mdi-map-marker-outline mr-2"></i>
|
|
||||||
<p class="mb-0 text-muted">East Coast, USA</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-8">
|
|
||||||
<div class="wrapper d-flex align-items-start">
|
|
||||||
<span class="btn btn-sm btn-info mr-2">Staff</span>
|
|
||||||
<span class="btn btn-sm btn-inverse-success mr-2">Support Manager</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="wrapper d-flex align-items-start pt-3">
|
|
||||||
His interests include Linux, gaming, and helping others. When he's able to
|
|
||||||
unplug he enjoys biking, hiking, and playing soccer.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-6 mb-5">
|
|
||||||
<div class="card rounded shadow-none">
|
|
||||||
<div class="card-body">
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-4">
|
|
||||||
|
|
||||||
<div class="user-avatar mb-auto">
|
|
||||||
<img src="/static/assets/images/credits/manu_cropped.png"
|
|
||||||
alt="profile image" class="profile-img img-lg rounded-circle">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="wrapper">
|
|
||||||
<div class="wrapper d-flex align-items-center">
|
|
||||||
<h4 class="mb-0 font-weight-medium">Manu Redacted</h4>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="wrapper d-flex align-items-center font-weight-medium text-muted">
|
|
||||||
<i class="mdi mdi-map-marker-outline mr-2"></i>
|
|
||||||
<p class="mb-0 text-muted">Eastern, CA</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-8">
|
|
||||||
<div class="wrapper d-flex align-items-start">
|
|
||||||
<span class="btn btn-sm btn-info mr-2">Staff</span>
|
|
||||||
<span class="btn btn-sm btn-primary mr-2">Developer</span>
|
|
||||||
<span class="btn btn-sm btn-inverse-success mr-2">Project Manager</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="wrapper d-flex align-items-start pt-3">
|
|
||||||
His interests include learning, Linux, and programming.
|
|
||||||
He enjoys speaking French, doing 6 things at once, and testing software.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div> <!-- end user row-->
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
|
|
||||||
<div class="col-md-6 mb-5">
|
|
||||||
<div class="card rounded shadow-none">
|
|
||||||
<div class="card-body">
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-4">
|
|
||||||
|
|
||||||
<div class="user-avatar mb-auto">
|
|
||||||
<img src="/static/assets/images/credits/ultrablack_cropped.png"
|
|
||||||
alt="profile image" class="profile-img img-lg rounded-circle">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="wrapper">
|
|
||||||
<div class="wrapper d-flex align-items-center">
|
|
||||||
<h4 class="mb-0 font-weight-medium">UltraBlack</h4>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="wrapper d-flex align-items-center font-weight-medium text-muted">
|
|
||||||
<i class="mdi mdi-map-marker-outline mr-2"></i>
|
|
||||||
<p class="mb-0 text-muted">Bavaria, DE</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-8">
|
|
||||||
<div class="wrapper d-flex align-items-start">
|
|
||||||
<span class="btn btn-sm btn-info mr-2">Staff</span>
|
|
||||||
<span class="btn btn-sm btn-inverse-success mr-2">Idea Manager</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="wrapper d-flex align-items-start pt-3">
|
|
||||||
Hi, my name is Tim, and I'm a huge fan of linux.
|
|
||||||
I'm often gaming and occasionally coding.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-6 mb-5">
|
|
||||||
<div class="card rounded shadow-none">
|
|
||||||
<div class="card-body">
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-4">
|
|
||||||
|
|
||||||
<div class="user-avatar mb-auto">
|
|
||||||
<img src="/static/assets/images/credits/macgeek_cropped.png"
|
|
||||||
alt="profile image" class="profile-img img-lg rounded-circle">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="wrapper">
|
|
||||||
<div class="wrapper d-flex align-items-center">
|
|
||||||
<h4 class="mb-0 font-weight-medium">Mac Geek</h4>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="wrapper d-flex align-items-center font-weight-medium text-muted">
|
|
||||||
<i class="mdi mdi-map-marker-outline mr-2"></i>
|
|
||||||
<p class="mb-0 text-muted">Eastern, USA</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-8">
|
|
||||||
<div class="wrapper d-flex align-items-start">
|
|
||||||
<span class="btn btn-sm btn-info mr-2">Staff</span>
|
|
||||||
<span class="btn btn-sm btn-primary mr-2">Developer</span>
|
|
||||||
<span class="btn btn-sm btn-inverse-success mr-2">Support Manager</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="wrapper d-flex align-items-start pt-3">
|
|
||||||
His interests include all things programming, and Pokemon.
|
|
||||||
He enjoys a good tech tangent, gaming, and playing on his phone.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-6 mb-5">
|
|
||||||
<div class="card rounded shadow-none">
|
|
||||||
<div class="card-body">
|
|
||||||
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-4">
|
|
||||||
|
|
||||||
<div class="user-avatar mb-auto">
|
|
||||||
<img src="/static/assets/images/credits/lukas_cropped.png"
|
|
||||||
alt="profile image" class="profile-img img-lg rounded-circle">
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="wrapper">
|
|
||||||
<div class="wrapper d-flex align-items-center">
|
|
||||||
<h4 class="mb-0 font-weight-medium">ThatOneLukas</h4>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="wrapper d-flex align-items-center font-weight-medium text-muted">
|
|
||||||
<i class="mdi mdi-map-marker-outline mr-2"></i>
|
|
||||||
<p class="mb-0 text-muted">Helsinki, FI</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-8">
|
|
||||||
<div class="wrapper d-flex align-items-start">
|
|
||||||
<span class="btn btn-sm btn-info mr-2">Staff</span>
|
|
||||||
<span class="btn btn-sm btn-primary mr-2">Developer</span>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="wrapper d-flex align-items-start pt-3">
|
|
||||||
His interests include programming, gaming, and electronics.
|
|
||||||
He likes gaming, programming, messing around with electronics, and time with his family.
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -415,9 +212,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{% end %}
|
||||||
|
|
||||||
</div> <!-- end user row-->
|
</div> <!-- end user row-->
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -438,31 +235,22 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
{% for pat in data["patreons"] %}
|
||||||
<tr>
|
<tr>
|
||||||
<td>Richard B</td>
|
<td>{{ pat["name"] }}</td>
|
||||||
<td>
|
<td>
|
||||||
|
{% if pat["level"] == "substainer" %}
|
||||||
<span class="btn btn-sm btn-info mr-2">Substainer</span>
|
<span class="btn btn-sm btn-info mr-2">Substainer</span>
|
||||||
</td>
|
{% elif pat["level"] == "advocate" %}
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>John C</td>
|
|
||||||
<td>
|
|
||||||
<span class="btn btn-sm btn-primary mr-2">Advocate</span>
|
<span class="btn btn-sm btn-primary mr-2">Advocate</span>
|
||||||
|
{% elif pat["level"] == "supporter" %}
|
||||||
|
<span class="btn btn-sm btn-inverse-success mr-2">Supporter</span>
|
||||||
|
{% else %}
|
||||||
|
<span class="btn btn-sm btn-secondary mr-2">Other</span>
|
||||||
|
{% end %}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
{% end %}
|
||||||
<td>Nicolas T</td>
|
|
||||||
<td>
|
|
||||||
<span class="btn btn-sm btn-info mr-2">Substainer</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>Lightkeeper</td>
|
|
||||||
<td>
|
|
||||||
<span class="btn btn-sm btn-info mr-2">Substainer</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
@ -483,27 +271,16 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
{% for person in data['translations'] %}
|
||||||
<tr>
|
<tr>
|
||||||
<td>Ultrablack</td>
|
<td>{{ person }}</td>
|
||||||
<td>
|
<td>
|
||||||
<span class="btn btn-sm btn-inverse-success mr-2">German</span>
|
{% for language in data['translations'][person] %}
|
||||||
|
<span class="btn btn-sm btn-inverse-success mr-2">{{ language }}</span>
|
||||||
|
{% end %}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
{% end %}
|
||||||
<td>Manu</td>
|
|
||||||
<td>
|
|
||||||
<span class="btn btn-sm btn-inverse-success mr-2">French</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td>ptarrant</td>
|
|
||||||
<td>
|
|
||||||
<span class="btn btn-sm btn-inverse-success mr-2">Sarcasm</span>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
|
|
||||||
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user