v4 Template fixes

This commit is contained in:
Peter Pfeufer 2023-10-24 02:04:49 +00:00 committed by Ariel Rin
parent 07e85727ea
commit ee24706e43
55 changed files with 791 additions and 665 deletions

View File

@ -1,5 +1,5 @@
{% load i18n %} {% load i18n %}
<div class="col-12 col-xl-8 align-self-stretch p-2"> <div class="col-12 col-xl-8 align-self-stretch p-2 ps-0">
<div class="card"> <div class="card">
<div class="card-body"> <div class="card-body">
<div class="d-flex align-items-center"> <div class="d-flex align-items-center">
@ -8,32 +8,37 @@
</h4> </h4>
</div> </div>
<div class="card-body"> <div class="card-body">
<div style="height: 300px;overflow:-moz-scrollbars-vertical;overflow-y:auto;"> <div style="height: 300px; overflow-y:auto;">
<div class="d-flex"> <div class="d-flex">
<a href="{% url 'authentication:add_character' %}" class="btn btn-primary flex-fill m-1" title="{% translate 'Add Character' %}"><span class="d-md-inline m-2">{% translate 'Add Character' %}</span></a> <a href="{% url 'authentication:add_character' %}" class="btn btn-primary flex-fill m-1" title="{% translate 'Add Character' %}">
<a href="{% url 'authentication:change_main_character' %}" class="btn btn-primary flex-fill m-1" title="{% translate 'Change Main' %}"></span><span class="d-md-inline m-2">{% translate 'Change Main' %}</span></a> <span class="d-md-inline m-2">{% translate 'Add Character' %}</span>
</div> </a>
<table class="table" style="--bs-table-bg: transparent;"> <a href="{% url 'authentication:change_main_character' %}" class="btn btn-primary flex-fill m-1" title="{% translate 'Change Main' %}">
<thead> <span class="d-md-inline m-2">{% translate 'Change Main' %}</span>
<tr> </a>
<th class="text-center"></th> </div>
<th class="text-center">{% translate "Name" %}</th> <table class="table" style="--bs-table-bg: transparent;">
<th class="text-center">{% translate "Corp" %}</th> <thead>
<th class="text-center">{% translate "Alliance" %}</th>
</tr>
</thead>
<tbody>
{% for char in characters %}
<tr> <tr>
<td class="text-center"><img class="ra-avatar rounded-circle" src="{{ char.portrait_url_32 }}"> <th class="text-center"></th>
</td> <th class="text-center">{% translate "Name" %}</th>
<td class="text-center">{{ char.character_name }}</td> <th class="text-center">{% translate "Corp" %}</th>
<td class="text-center">{{ char.corporation_name }}</td> <th class="text-center">{% translate "Alliance" %}</th>
<td class="text-center">{{ char.alliance_name|default_if_none:"" }}</td>
</tr> </tr>
{% endfor %} </thead>
</tbody> <tbody>
</table> {% for char in characters %}
<tr>
<td class="text-center">
<img class="ra-avatar rounded-circle" src="{{ char.portrait_url_32 }}" alt="{{ char.character_name }}">
</td>
<td class="text-center">{{ char.character_name }}</td>
<td class="text-center">{{ char.corporation_name }}</td>
<td class="text-center">{{ char.alliance_name|default_if_none:"" }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div> </div>
</div> </div>
</div> </div>

View File

@ -1,10 +1,10 @@
{% load i18n %} {% load i18n %}
<div class="col-12 col-xl-4 align-self-stretch p-2"> <div class="col-12 col-xl-4 align-self-stretch py-2 ps-2">
<div class="card h-100"> <div class="card h-100">
<div class="card-body"> <div class="card-body">
<h4 class="card-title text-center">{% translate "Membership" %}</h4> <h4 class="card-title text-center">{% translate "Membership" %}</h4>
<div class="card-body"> <div class="card-body">
<div style="height: 300px;overflow:-moz-scrollbars-vertical;overflow-y:auto;"> <div style="height: 300px; overflow-y:auto;">
<h6 class="text-center">{% translate "State:" %} {{ request.user.profile.state }}</h6> <h6 class="text-center">{% translate "State:" %} {{ request.user.profile.state }}</h6>
<table class="table" style="--bs-table-bg: transparent;"> <table class="table" style="--bs-table-bg: transparent;">
{% for group in groups %} {% for group in groups %}

View File

@ -5,8 +5,8 @@
{% block content %} {% block content %}
<h1 class="page-header text-center">{% translate "Token Management" %}</h1> <h1 class="page-header text-center">{% translate "Token Management" %}</h1>
<div class="col-sm-12"> <div>
<table class="table table-aa" id="table_tokens" style="width:100%"> <table class="table table-aa" id="table_tokens" style="width: 100%;">
<thead> <thead>
<tr> <tr>
<th>{% translate "Scopes" %}</th> <th>{% translate "Scopes" %}</th>
@ -18,8 +18,11 @@
<tbody> <tbody>
{% for t in tokens %} {% for t in tokens %}
<tr> <tr>
<td styl="white-space:initial;">{% for s in t.scopes.all %}<span class="badge badge-secondar">{{ s.name }}</span> {% endfor %}</td> <td style="white-space:initial;">{% for s in t.scopes.all %}<span class="badge bg-secondary">{{ s.name }}</span>{% endfor %}</td>
<td nowrap class="text-end"><a href="{% url 'authentication:token_delete' t.id %}" class="btn btn-danger"><i class="fas fa-trash"></i></a> <a href="{% url 'authentication:token_refresh' t.id %}" class="btn btn-success"><i class="fas fa-sync-alt"></i></a></td> <td nowrap class="text-end">
<a href="{% url 'authentication:token_delete' t.id %}" class="btn btn-danger"><i class="fas fa-trash"></i></a>
<a href="{% url 'authentication:token_refresh' t.id %}" class="btn btn-success"><i class="fas fa-sync-alt"></i></a>
</td>
<td>{{ t.character_name }}</td> <td>{{ t.character_name }}</td>
</tr> </tr>
{% endfor %} {% endfor %}

View File

@ -31,7 +31,7 @@
} }
.panel-transparent { .panel-transparent {
background: rgba(48, 48, 48, 0.7); background: rgba(48 48 48 / 0.7);
color: #ffffff; color: #ffffff;
padding-bottom: 21px; padding-bottom: 21px;
} }

View File

@ -4,37 +4,37 @@
{% translate "Corporation Member Data" %} {% translate "Corporation Member Data" %}
{% endblock page_title %} {% endblock page_title %}
{% block content %} {% block content %}
<div class="col-lg-12"> <div>
<h1 class="page-header text-center">{% translate "Corporation Member Data" %}</h1> <h1 class="page-header text-center">{% translate "Corporation Member Data" %}</h1>
<div class="col-lg-10 col-lg-offset-1 container"> <nav class="navbar navbar-default">
<nav class="navbar navbar-default"> <div class="container-fluid">
<div class="container-fluid"> <ul class="nav navbar-nav">
<ul class="nav navbar-nav"> <li class="dropdown">
<li class="dropdown"> <a href="#" id="dLabel" class="dropdown-toggle" role="button" data-toggle="dropdown" aria-haspopup="false" aria-expanded="false">{% translate "Corporations" %}<span class="caret"></span></a>
<a href="#" id="dLabel" class="dropdown-toggle" role="button" data-toggle="dropdown" aria-haspopup="false" aria-expanded="false">{% translate "Corporations" %}<span class="caret"></span></a> <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel"> {% for corpstat in available %}
{% for corpstat in available %} <li>
<li> <a href="{% url 'corputils:view_corp' corpstat.corp.corporation_id %}">{{ corpstat.corp.corporation_name }}</a>
<a href="{% url 'corputils:view_corp' corpstat.corp.corporation_id %}">{{ corpstat.corp.corporation_name }}</a> </li>
</li> {% endfor %}
{% endfor %} </ul>
</ul> </li>
{% if perms.corputils.add_corpstats %}
<li>
<a href="{% url 'corputils:add' %}">{% translate "Add" %}</a>
</li> </li>
{% if perms.corputils.add_corpstats %} {% endif %}
<li> </ul>
<a href="{% url 'corputils:add' %}">{% translate "Add" %}</a>
</li> <form class="navbar-form navbar-right" role="search" action="{% url 'corputils:search' %}" method="GET">
{% endif %} <div class="form-group">
</ul> <input type="text" class="form-control" name="search_string" placeholder="{% if search_string %}{{ search_string }}{% else %}{% translate 'Search all corporations...' %}{% endif %}">
<form class="navbar-form navbar-right" role="search" action="{% url 'corputils:search' %}" method="GET"> </div>
<div class="form-group"> </form>
<input type="text" class="form-control" name="search_string" placeholder="{% if search_string %}{{ search_string }}{% else %}{% translate 'Search all corporations...' %}{% endif %}"> </div>
</div> </nav>
</form>
</div> {% block member_data %}
</nav> {% endblock member_data %}
{% block member_data %}
{% endblock member_data %}
</div>
</div> </div>
{% endblock content %} {% endblock content %}

View File

@ -3,177 +3,175 @@
{% load humanize %} {% load humanize %}
{% block member_data %} {% block member_data %}
{% if corpstats %} {% if corpstats %}
<div class="row"> <div>
<div class="col-lg-12 text-center"> <table class="table">
<table class="table"> <tr>
<tr> <td class="text-center col-lg-6{% if corpstats.corp.alliance %}{% else %}col-lg-offset-3{% endif %}">
<td class="text-center col-lg-6{% if corpstats.corp.alliance %}{% else %}col-lg-offset-3{% endif %}"> <img class="ra-avatar" src="{{ corpstats.corp.logo_url_64 }}" alt="{{ corpstats.corp.corporation_name }}">
<img class="ra-avatar" src="{{ corpstats.corp.logo_url_64 }}" alt="{{ corpstats.corp.corporation_name }}"> </td>
</td> {% if corpstats.corp.alliance %}
{% if corpstats.corp.alliance %} <td class="text-center col-lg-6">
<td class="text-center col-lg-6"> <img class="ra-avatar" src="{{ corpstats.corp.alliance.logo_url_64 }}" alt="{{ corpstats.corp.alliance.alliance_name }}">
<img class="ra-avatar" src="{{ corpstats.corp.alliance.logo_url_64 }}" alt="{{ corpstats.corp.alliance.alliance_name }}"> </td>
</td> {% endif %}
{% endif %} </tr>
</tr> <tr>
<tr> <td class="text-center"><h4>{{ corpstats.corp.corporation_name }}</h4></td>
<td class="text-center"><h4>{{ corpstats.corp.corporation_name }}</h4></td> {% if corpstats.corp.alliance %}
{% if corpstats.corp.alliance %} <td class="text-center"><h4>{{ corpstats.corp.alliance.alliance_name }}</h4></td>
<td class="text-center"><h4>{{ corpstats.corp.alliance.alliance_name }}</h4></td> {% endif %}
{% endif %} </tr>
</tr> </table>
</table>
</div>
</div> </div>
<div class="row">
<div class="col-lg-12"> <div>
<div class="panel panel-default"> <div class="panel panel-default">
<div class="panel-heading"> <div class="panel-heading">
<ul class="nav nav-pills pull-left"> <ul class="nav nav-pills pull-left">
<li class="active"><a href="#mains" data-toggle="pill">{% translate 'Mains' %} ({{ total_mains }})</a></li> <li class="active"><a href="#mains" data-toggle="pill">{% translate 'Mains' %} ({{ total_mains }})</a></li>
<li><a href="#members" data-toggle="pill">{% translate 'Members' %} ({{ corpstats.member_count }})</a></li> <li><a href="#members" data-toggle="pill">{% translate 'Members' %} ({{ corpstats.member_count }})</a></li>
<li><a href="#unregistered" data-toggle="pill">{% translate 'Unregistered' %} ({{ unregistered.count }})</a></li> <li><a href="#unregistered" data-toggle="pill">{% translate 'Unregistered' %} ({{ unregistered.count }})</a></li>
</ul> </ul>
<div class="pull-right hidden-xs"> <div class="pull-right hidden-xs">
{% translate "Last update:" %} {{ corpstats.last_update|naturaltime }}&nbsp; {% translate "Last update:" %} {{ corpstats.last_update|naturaltime }}&nbsp;
<a class="btn btn-success" type="button" href="{% url 'corputils:update' corpstats.corp.corporation_id %}" title="Update Now"> <a class="btn btn-success" type="button" href="{% url 'corputils:update' corpstats.corp.corporation_id %}" title="Update Now">
<span class="glyphicon glyphicon-refresh"></span> <span class="glyphicon glyphicon-refresh"></span>
</a> </a>
</div>
<div class="clearfix"></div>
</div> </div>
<div class="panel-body"> <div class="clearfix"></div>
<div class="tab-content"> </div>
<div class="tab-pane fade in active" id="mains">
{% if mains %} <div class="panel-body">
<div class="table-responsive"> <div class="tab-content">
<table class="table table-hover" id="table-mains"> <div class="tab-pane fade in active" id="mains">
<thead> {% if mains %}
<div class="table-responsive">
<table class="table table-hover" id="table-mains">
<thead>
<tr>
<th style="height:1em;"><!-- Must have text or height to prevent clipping --></th>
<th></th>
</tr>
</thead>
<tbody>
{% for id, main in mains.items %}
<tr> <tr>
<th style="height:1em;"><!-- Must have text or height to prevent clipping --></th> <td class="text-center" style="vertical-align:middle">
<th></th> <div class="thumbnail" style="border: 0 none; box-shadow: none; background: transparent;">
</tr> <img src="{{ main.main.portrait_url_64 }}" class="img-circle" alt="{{ main.main }}">
</thead> <div class="caption text-center">
<tbody> {{ main.main }}
{% for id, main in mains.items %}
<tr>
<td class="text-center" style="vertical-align:middle">
<div class="thumbnail" style="border: 0 none; box-shadow: none; background: transparent;">
<img src="{{ main.main.portrait_url_64 }}" class="img-circle" alt="{{ main.main }}">
<div class="caption text-center">
{{ main.main }}
</div>
</div> </div>
</td> </div>
<td> </td>
<table class="table table-hover"> <td>
{% for alt in main.alts %} <table class="table table-hover">
{% if forloop.first %} {% for alt in main.alts %}
<tr> {% if forloop.first %}
<th></th>
<th class="text-center">{% translate "Character" %}</th>
<th class="text-center">{% translate "Corporation" %}</th>
<th class="text-center">{% translate "Alliance" %}</th>
<th class="text-center"></th>
</tr>
{% endif %}
<tr> <tr>
<td class="text-center" style="width:5%"> <th></th>
<div class="thumbnail" style="border: 0 none; box-shadow: none; background: transparent;"> <th class="text-center">{% translate "Character" %}</th>
<img src="{{ alt.portrait_url_32 }}" class="img-circle" alt="{{ alt.character_name }}"> <th class="text-center">{% translate "Corporation" %}</th>
</div> <th class="text-center">{% translate "Alliance" %}</th>
</td> <th class="text-center"></th>
<td class="text-center" style="width:30%">{{ alt.character_name }}</td>
<td class="text-center" style="width:30%">{{ alt.corporation_name }}</td>
<td class="text-center" style="width:30%">{{ alt.alliance_name }}</td>
<td class="text-center" style="width:5%">
<a href="https://zkillboard.com/character/{{ alt.character_id }}/" class="badge badge-danger" target="_blank">
{% translate "Killboard" %}
</a>
</td>
</tr> </tr>
{% endfor %} {% endif %}
</table> <tr>
</td> <td class="text-center" style="width:5%">
</tr> <div class="thumbnail" style="border: 0 none; box-shadow: none; background: transparent;">
{% endfor %} <img src="{{ alt.portrait_url_32 }}" class="img-circle" alt="{{ alt.character_name }}">
</tbody> </div>
</table> </td>
</div> <td class="text-center" style="width:30%">{{ alt.character_name }}</td>
{% endif %} <td class="text-center" style="width:30%">{{ alt.corporation_name }}</td>
</div> <td class="text-center" style="width:30%">{{ alt.alliance_name }}</td>
<div class="tab-pane fade" id="members"> <td class="text-center" style="width:5%">
{% if members %} <a href="https://zkillboard.com/character/{{ alt.character_id }}/" class="badge bg-danger" target="_blank">
<div class="table-responsive"> {% translate "Killboard" %}
<table class="table table-hover" id="table-members"> </a>
<thead> </td>
<tr> </tr>
<th></th> {% endfor %}
<th class="text-center">{% translate "Character" %}</th> </table>
<th class="text-center"></th> </td>
<th class="text-center">{% translate "Main Character" %}</th>
<th class="text-center">{% translate "Main Corporation" %}</th>
<th class="text-center">{% translate "Main Alliance" %}</th>
</tr> </tr>
</thead> {% endfor %}
<tbody> </tbody>
{% for member in members %} </table>
<tr> </div>
<td><img src="{{ member.portrait_url }}" class="img-circle" alt="{{ member }}"></td> {% endif %}
<td class="text-center">{{ member }}</td> </div>
<td class="text-center"> <div class="tab-pane fade" id="members">
<a href="https://zkillboard.com/character/{{ member.character_id }}/" class="badge badge-danger" target="_blank">{% translate "Killboard" %}</a> {% if members %}
</td> <div class="table-responsive">
<td class="text-center">{{ member.character_ownership.user.profile.main_character.character_name }}</td> <table class="table table-hover" id="table-members">
<td class="text-center">{{ member.character_ownership.user.profile.main_character.corporation_name }}</td> <thead>
<td class="text-center">{{ member.character_ownership.user.profile.main_character.alliance_name }}</td> <tr>
</tr> <th></th>
{% endfor %} <th class="text-center">{% translate "Character" %}</th>
{% for member in unregistered %} <th class="text-center"></th>
<tr class="danger"> <th class="text-center">{% translate "Main Character" %}</th>
<td><img src="{{ member.portrait_url }}" class="img-circle" alt="{{ member.character_name }}"></td> <th class="text-center">{% translate "Main Corporation" %}</th>
<td class="text-center">{{ member.character_name }}</td> <th class="text-center">{% translate "Main Alliance" %}</th>
<td class="text-center"> </tr>
<a href="https://zkillboard.com/character/{{ member.character_id }}/" class="badge badge-danger" target="_blank">{% translate "Killboard" %}</a> </thead>
</td> <tbody>
<td class="text-center"></td> {% for member in members %}
<td class="text-center"></td>
<td class="text-center"></td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% endif %}
</div>
<div class="tab-pane fade" id="unregistered">
{% if unregistered %}
<div class="table-responsive">
<table class="table table-hover" id="table-unregistered">
<thead>
<tr> <tr>
<th></th> <td><img src="{{ member.portrait_url }}" class="img-circle" alt="{{ member }}"></td>
<th class="text-center">{% translate "Character" %}</th> <td class="text-center">{{ member }}</td>
<th class="text-center"></th> <td class="text-center">
<a href="https://zkillboard.com/character/{{ member.character_id }}/" class="badge bg-danger" target="_blank">{% translate "Killboard" %}</a>
</td>
<td class="text-center">{{ member.character_ownership.user.profile.main_character.character_name }}</td>
<td class="text-center">{{ member.character_ownership.user.profile.main_character.corporation_name }}</td>
<td class="text-center">{{ member.character_ownership.user.profile.main_character.alliance_name }}</td>
</tr> </tr>
</thead> {% endfor %}
<tbody> {% for member in unregistered %}
{% for member in unregistered %} <tr class="danger">
<tr class="danger"> <td><img src="{{ member.portrait_url }}" class="img-circle" alt="{{ member.character_name }}"></td>
<td><img src="{{ member.portrait_url }}" class="img-circle" alt="{{ member.character_name }}"></td> <td class="text-center">{{ member.character_name }}</td>
<td class="text-center">{{ member.character_name }}</td> <td class="text-center">
<td class="text-center"> <a href="https://zkillboard.com/character/{{ member.character_id }}/" class="badge bg-danger" target="_blank">{% translate "Killboard" %}</a>
<a href="https://zkillboard.com/character/{{ member.character_id }}/" class="badge badge-danger" target="_blank"> </td>
{% translate "Killboard" %} <td class="text-center"></td>
</a> <td class="text-center"></td>
</td> <td class="text-center"></td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
</div> </div>
{% endif %} {% endif %}
</div> </div>
<div class="tab-pane fade" id="unregistered">
{% if unregistered %}
<div class="table-responsive">
<table class="table table-hover" id="table-unregistered">
<thead>
<tr>
<th></th>
<th class="text-center">{% translate "Character" %}</th>
<th class="text-center"></th>
</tr>
</thead>
<tbody>
{% for member in unregistered %}
<tr class="danger">
<td><img src="{{ member.portrait_url }}" class="img-circle" alt="{{ member.character_name }}"></td>
<td class="text-center">{{ member.character_name }}</td>
<td class="text-center">
<a href="https://zkillboard.com/character/{{ member.character_id }}/" class="badge bg-danger" target="_blank">
{% translate "Killboard" %}
</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% endif %}
</div> </div>
</div> </div>
</div> </div>
@ -181,12 +179,15 @@
</div> </div>
{% endif %} {% endif %}
{% endblock %} {% endblock %}
{% block extra_javascript %} {% block extra_javascript %}
{% include 'bundles/datatables-js.html' %} {% include 'bundles/datatables-js.html' %}
{% endblock %} {% endblock %}
{% block extra_css %} {% block extra_css %}
{% include 'bundles/datatables-css.html' %} {% include 'bundles/datatables-css.html' %}
{% endblock %} {% endblock %}
{% block extra_script %} {% block extra_script %}
$(document).ready(function(){ $(document).ready(function(){
$('#table-mains').DataTable({ $('#table-mains').DataTable({

View File

@ -24,7 +24,7 @@
<td class="text-center"><img src="{{ result.1.portrait_url }}" class="img-circle" alt="{{ result.1.character_name }}"></td> <td class="text-center"><img src="{{ result.1.portrait_url }}" class="img-circle" alt="{{ result.1.character_name }}"></td>
<td class="text-center">{{ result.1.character_name }}</td> <td class="text-center">{{ result.1.character_name }}</td>
<td class="text-center">{{ result.0.corp.corporation_name }}</td> <td class="text-center">{{ result.0.corp.corporation_name }}</td>
<td class="text-center"><a href="https://zkillboard.com/character/{{ result.1.character_id }}/" class="badge badge-danger" target="_blank">{% translate "Killboard" %}</a></td> <td class="text-center"><a href="https://zkillboard.com/character/{{ result.1.character_id }}/" class="badge bg-danger" target="_blank">{% translate "Killboard" %}</a></td>
<td class="text-center">{{ result.1.main_character.character_name }}</td> <td class="text-center">{{ result.1.main_character.character_name }}</td>
<td class="text-center">{{ result.1.main_character.corporation_name }}</td> <td class="text-center">{{ result.1.main_character.corporation_name }}</td>
<td class="text-center">{{ result.1.main_character.alliance_name }}</td> <td class="text-center">{{ result.1.main_character.alliance_name }}</td>

View File

@ -17,7 +17,7 @@
<form class="form-signin" role="form" action="" method="POST"> <form class="form-signin" role="form" action="" method="POST">
{% csrf_token %} {% csrf_token %}
{{ form|bootstrap }} {{ form|bootstrap }}
<br/> <br>
<button class="btn btn-lg btn-primary btn-block" <button class="btn btn-lg btn-primary btn-block"
type="submit" type="submit"
name="submit_fat"> name="submit_fat">

View File

@ -33,39 +33,39 @@
{% endfor %} {% endfor %}
</table> </table>
{% if created_fats %} {% if created_fats %}
<h2> <h2>
{% blocktranslate count links=n_created_fats trimmed %} {% blocktranslate count links=n_created_fats trimmed %}
{{ user }} has created one link this month. {{ user }} has created one link this month.
{% plural %} {% plural %}
{{ user }} has created {{ links }} links this month. {{ user }} has created {{ links }} links this month.
{% endblocktranslate %} {% endblocktranslate %}
</h2> </h2>
{% if created_fats %} {% if created_fats %}
<table class="table"> <table class="table">
<tr> <tr>
<th class="text-center">{% translate "Fleet" %}</th> <th class="text-center">{% translate "Fleet" %}</th>
<th class="text-center">{% translate "Creator" %}</th> <th class="text-center">{% translate "Creator" %}</th>
<th class="text-center">{% translate "Eve Time" %}</th> <th class="text-center">{% translate "Eve Time" %}</th>
<th class="text-center">{% translate "Duration" %}</th> <th class="text-center">{% translate "Duration" %}</th>
<th class="text-center">{% translate "Edit" %}</th> <th class="text-center">{% translate "Edit" %}</th>
</tr> </tr>
{% for link in created_fats %} {% for link in created_fats %}
<tr> <tr>
<td class="text-center"><a href="{% url 'fatlink:click' link.hash %}" class="badge badge-primary">{{ link.fleet }}</a></td> <td class="text-center"><a href="{% url 'fatlink:click' link.hash %}" class="badge bg-primary">{{ link.fleet }}</a></td>
<td class="text-center">{{ link.creator.username }}</td> <td class="text-center">{{ link.creator.username }}</td>
<td class="text-center">{{ link.fatdatetime }}</td> <td class="text-center">{{ link.fatdatetime }}</td>
<td class="text-center">{{ link.duration }}</td> <td class="text-center">{{ link.duration }}</td>
<td class="text-center"> <td class="text-center">
<a href="{% url 'fatlink:modify' link.hash %}"> <a href="{% url 'fatlink:modify' link.hash %}">
<button type="button" class="btn btn-info"><span <button type="button" class="btn btn-info"><span
class="glyphicon glyphicon-edit"></span></button> class="glyphicon glyphicon-edit"></span></button>
</a> </a>
</td> </td>
</tr> </tr>
{% endfor %} {% endfor %}
</table> </table>
{% endif %} {% endif %}
{% endif %} {% endif %}
</div> </div>
{% endblock content %} {% endblock content %}

View File

@ -10,7 +10,7 @@
<div class="text-end"> <div class="text-end">
<a href="{% url "fatlink:statistics_month" previous_month|date:"Y" previous_month|date:"m" %}" class="btn btn-info">{% translate "Previous month" %}</a> <a href="{% url "fatlink:statistics_month" previous_month|date:"Y" previous_month|date:"m" %}" class="btn btn-info">{% translate "Previous month" %}</a>
{% if next_month %} {% if next_month %}
<a href="{% url 'fatlink:statistics_month' next_month|date:"Y" next_month|date:"m" %}" wclass="btn btn-info">{% translate "Next month" %}</a> <a href="{% url 'fatlink:statistics_month' next_month|date:"Y" next_month|date:"m" %}" class="btn btn-info">{% translate "Next month" %}</a>
{% endif %} {% endif %}
</div> </div>
</h1> </h1>
@ -31,7 +31,7 @@
{% for corpStat in fatStats %} {% for corpStat in fatStats %}
<tr> <tr>
<td> <td>
<img src="{{ corpStat.corp.logo_url_32 }}" class="ra-avatar img-responsive" alt="{{ corpStat.corp.corporation_name }}"/> <img src="{{ corpStat.corp.logo_url_32 }}" class="ra-avatar img-responsive" alt="{{ corpStat.corp.corporation_name }}">
</td> </td>
<td class="text-center"> <td class="text-center">
<a href="{% url 'fatlink:statistics_corp' corpStat.corp.corporation_id %}">[{{ corpStat.corp.corporation_ticker }}]</a> <a href="{% url 'fatlink:statistics_corp' corpStat.corp.corporation_id %}">[{{ corpStat.corp.corporation_ticker }}]</a>

View File

@ -80,7 +80,7 @@
{% for link in fatlinks %} {% for link in fatlinks %}
<tr> <tr>
<td class="text-center"> <td class="text-center">
<a href="{% url 'fatlink:click' link.hash %}" class="badge badge-primary">{{ link.fleet }}</a> <a href="{% url 'fatlink:click' link.hash %}" class="badge bg-primary">{{ link.fleet }}</a>
</td> </td>
<td class="text-center">{{ link.creator.username }}</td> <td class="text-center">{{ link.creator.username }}</td>
<td class="text-center">{{ link.fleet }}</td> <td class="text-center">{{ link.fleet }}</td>

View File

@ -17,13 +17,15 @@
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-striped" id="log-entries"> <table class="table table-striped" id="log-entries">
<thead> <thead>
<th scope="col">{% translate "Date/Time" %}</th> <tr>
<th scope="col">{% translate "Requestor" %}</th> <th scope="col">{% translate "Date/Time" %}</th>
<th scope="col">{% translate "Character" %}</th> <th scope="col">{% translate "Requestor" %}</th>
<th scope="col">{% translate "Corporation" %}</th> <th scope="col">{% translate "Character" %}</th>
<th scope="col">{% translate "Type" %}</th> <th scope="col">{% translate "Corporation" %}</th>
<th scope="col">{% translate "Action" %}</th> <th scope="col">{% translate "Type" %}</th>
<th scope="col">{% translate "Actor" %}</th> <th scope="col">{% translate "Action" %}</th>
<th scope="col">{% translate "Actor" %}</th>
</tr>
</thead> </thead>
<tbody> <tbody>

View File

@ -29,7 +29,7 @@
{% for member in members %} {% for member in members %}
<tr> <tr>
<td> <td>
<img src="{{ member.main_char|character_portrait_url:32 }}" class="rounded-circle" style="margin-right: 1rem;"> <img src="{{ member.main_char|character_portrait_url:32 }}" class="rounded-circle" style="margin-right: 1rem;" alt="{{ member.main_char.character_name }}">
{% if member.main_char %} {% if member.main_char %}
<a href="{{ member.main_char|evewho_character_url }}" target="_blank"> <a href="{{ member.main_char|evewho_character_url }}" target="_blank">
{{ member.main_char.character_name }} {{ member.main_char.character_name }}

View File

@ -23,7 +23,7 @@
<tr> <tr>
<th>{% translate "Name" %}</th> <th>{% translate "Name" %}</th>
<th>{% translate "Description" %}</th> <th>{% translate "Description" %}</th>
<th>{% translate "Leaders" %}<span class="m-1 fw-lighter badge bg-primary">User</span><span class="m-1 fw-lighter badge bg-secondary ">Group</span></th> <th>{% translate "Leaders" %}<span class="m-1 fw-lighter badge bg-primary">{% translate "User" %}</span><span class="m-1 fw-lighter badge bg-secondary ">{% translate "Group" %}</span></th>
<th></th> <th></th>
</tr> </tr>
</thead> </thead>
@ -72,7 +72,6 @@
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
{% else %} {% else %}
<div class="alert alert-warning text-center"> <div class="alert alert-warning text-center">
{% translate "No groups available." %} {% translate "No groups available." %}
@ -88,9 +87,7 @@
{% endblock %} {% endblock %}
{% block extra_script %} {% block extra_script %}
$(document).ready(function () { $(document).ready(function () {
$('#groupsTable').DataTable(); $('#groupsTable').DataTable();
}); });
{% endblock extra_script %} {% endblock extra_script %}

View File

@ -58,7 +58,7 @@
{% for acceptrequest in acceptrequests %} {% for acceptrequest in acceptrequests %}
<tr> <tr>
<td> <td>
<img src="{{ acceptrequest.main_char|character_portrait_url:32 }}" class="rounded-circle" style="margin-right: 1rem;"> <img src="{{ acceptrequest.main_char|character_portrait_url:32 }}" class="rounded-circle" style="margin-right: 1rem;" alt="{{ acceptrequest.main_char.character_name }}">
{% if acceptrequest.main_char %} {% if acceptrequest.main_char %}
<a href="{{ acceptrequest.main_char|evewho_character_url }}" target="_blank"> <a href="{{ acceptrequest.main_char|evewho_character_url }}" target="_blank">
{{ acceptrequest.main_char.character_name }} {{ acceptrequest.main_char.character_name }}
@ -115,7 +115,7 @@
{% for leaverequest in leaverequests %} {% for leaverequest in leaverequests %}
<tr> <tr>
<td> <td>
<img src="{{ leaverequest.main_char|character_portrait_url:32 }}" class="rounded-circle" style="margin-right: 1rem;"> <img src="{{ leaverequest.main_char|character_portrait_url:32 }}" class="rounded-circle" style="margin-right: 1rem;" alt="{{ leaverequest.main_char.character_name }}">
{% if leaverequest.main_char %} {% if leaverequest.main_char %}
<a href="{{ leaverequest.main_char|evewho_character_url }}" target="_blank"> <a href="{{ leaverequest.main_char|evewho_character_url }}" target="_blank">
{{ leaverequest.main_char.character_name }} {{ leaverequest.main_char.character_name }}

View File

@ -134,5 +134,5 @@ class DashboardItemHook:
logger.debug(f"Rendering {self.view_function} to dashboard") logger.debug(f"Rendering {self.view_function} to dashboard")
return self.view_function(request) return self.view_function(request)
except Exception as e: except Exception as e:
logger.exception("Rendering {self.view_function} Failed!") logger.exception(f"Rendering {self.view_function} failed!")
return "" return ""

View File

@ -33,11 +33,11 @@
<td class="text-center">{{ personal_app.form.corp.corporation_name }}</td> <td class="text-center">{{ personal_app.form.corp.corporation_name }}</td>
<td class="text-center"> <td class="text-center">
{% if personal_app.approved == None %} {% if personal_app.approved == None %}
<div class="badge badge-warning">{% translate "Pending" %}</div> <div class="badge bg-warning">{% translate "Pending" %}</div>
{% elif personal_app.approved == True %} {% elif personal_app.approved == True %}
<div class="badge badge-success">{% translate "Approved" %}</div> <div class="badge bg-success">{% translate "Approved" %}</div>
{% else %} {% else %}
<div class="badge badge-danger">{% translate "Rejected" %}</div> <div class="badge bg-danger">{% translate "Rejected" %}</div>
{% endif %} {% endif %}
</td> </td>
<td class="text-center"> <td class="text-center">
@ -91,14 +91,14 @@
<td class="text-center"> <td class="text-center">
{% if app.approved == None %} {% if app.approved == None %}
{% if app.reviewer_str %} {% if app.reviewer_str %}
<div class="badge badge-info">{% translate "Reviewer:" %} {{ app.reviewer_str }}</div> <div class="badge bg-info">{% translate "Reviewer:" %} {{ app.reviewer_str }}</div>
{% else %} {% else %}
<div class="badge badge-warning">{% translate "Pending" %}</div> <div class="badge bg-warning">{% translate "Pending" %}</div>
{% endif %} {% endif %}
{% elif app.approved == True %} {% elif app.approved == True %}
<div class="badge badge-success">{% translate "Approved" %}</div> <div class="badge bg-success">{% translate "Approved" %}</div>
{% else %} {% else %}
<div class="badge badge-danger">{% translate "Rejected" %}</div> <div class="badge bg-danger">{% translate "Rejected" %}</div>
{% endif %} {% endif %}
</td> </td>
<td class="text-center"> <td class="text-center">
@ -135,14 +135,14 @@
<td class="text-center"> <td class="text-center">
{% if app.approved == None %} {% if app.approved == None %}
{% if app.reviewer_str %} {% if app.reviewer_str %}
<div class="badge badge-info">{% translate "Reviewer:" %} {{ app.reviewer_str }}</div> <div class="badge bg-info">{% translate "Reviewer:" %} {{ app.reviewer_str }}</div>
{% else %} {% else %}
<div class="badge badge-warning">{% translate "Pending" %}</div> <div class="badge bg-warning">{% translate "Pending" %}</div>
{% endif %} {% endif %}
{% elif app.approved == True %} {% elif app.approved == True %}
<div class="badge badge-success">{% translate "Approved" %}</div> <div class="badge bg-success">{% translate "Approved" %}</div>
{% else %} {% else %}
<div class="badge badge-danger">{% translate "Rejected" %}</div> <div class="badge bg-danger">{% translate "Rejected" %}</div>
{% endif %} {% endif %}
</td> </td>
<td class="text-center"> <td class="text-center">

View File

@ -34,11 +34,11 @@
<td class="text-center">{{ app.form.corp }}</td> <td class="text-center">{{ app.form.corp }}</td>
<td class="text-center"> <td class="text-center">
{% if app.approved == None %} {% if app.approved == None %}
<div class="badge badge-warning">{% translate "Pending" %}</div> <div class="badge bg-warning">{% translate "Pending" %}</div>
{% elif app.approved == True %} {% elif app.approved == True %}
<div class="badge badge-success">{% translate "Approved" %}</div> <div class="badge bg-success">{% translate "Approved" %}</div>
{% else %} {% else %}
<div class="badge badge-danger">{% translate "Rejected" %}</div> <div class="badge bg-danger">{% translate "Rejected" %}</div>
{% endif %} {% endif %}
</td> </td>
<td class="text-center"> <td class="text-center">

View File

@ -8,7 +8,7 @@ class MenuItemHook:
""" """
Auth Hook for generating Side Menu Items Auth Hook for generating Side Menu Items
""" """
def __init__(self, text: str, classes: List[str], url_name: str, order: Optional[int] = None, navactive: List = list([])): def __init__(self, text: str, classes: str, url_name: str, order: Optional[int] = None, navactive: List = []):
""" """
:param text: The text shown as menu item, e.g. usually the name of the app. :param text: The text shown as menu item, e.g. usually the name of the app.
:type text: str :type text: str

View File

@ -8,7 +8,7 @@
{% translate item.text %} {% translate item.text %}
</a> </a>
{% if item.count >= 1 %} {% if item.count >= 1 %}
<span class="badge bg-primary rounded-pill m-2 align-self-center {% if item.items|length == 0 %}me-4{% endif %}"> <span class="badge bg-primary m-2 align-self-center {% if item.items|length == 0 %}me-4{% endif %}">
{{ item.count }} {{ item.count }}
</span> </span>
{% elif item.url %} {% elif item.url %}

View File

@ -7,9 +7,7 @@
href="{% url 'notifications:list' %}"> href="{% url 'notifications:list' %}">
<span class="fa"> <span class="fa">
{% with unread_count=request.user|user_unread_notification_count %} {% with unread_count=request.user|user_unread_notification_count %}
<i <i class="fas fa-bell{% if unread_count %} text-danger{% endif %}"></i>
class="fas fa-bell{% if unread_count %} text-danger{% endif %}"
></i>
{% endwith %} {% endwith %}
</span> </span>
<span class="d-lg-none d-md-inline m-2"> <span class="d-lg-none d-md-inline m-2">

View File

@ -1,51 +1,57 @@
{% load i18n %} {% load i18n %}
{% load evelinks %} {% load evelinks %}
{% load theme_tags %} {% load theme_tags %}
<div style="z-index:5;" class="w100 d-flex flex-column justify-content-center align-items-center text-center pb-2">
{% if request.user.profile.main_character %} <div style="z-index:5;" class="w100 d-flex flex-column justify-content-center align-items-center text-center pb-2">
{% with request.user.profile.main_character as main %}
<div class="p-2 position-relative m-2">
<img class="rounded-circle" src="{{ main.character_id|character_portrait_url:64 }}" alt="{{ main.character_name }}"/>
<img class="rounded-circle position-absolute bottom-0 start-0" src="{{ main.corporation_logo_url_32 }}" alt="{{ main.corporation_name }}"/>
{% if main.alliance_id %}
<img class="rounded-circle position-absolute bottom-0 end-0" src="{{ main.alliance_logo_url_32 }}" alt="{{ main.alliance_name }}"/>
{% elif main.faction_id %}
<img class="rounded-circle position-absolute bottom-0 end-0" src="{{ main.faction_logo_url_32 }}" alt="{{ main.faction_name }}"/>
{% endif %}
</div>
<h5>{{ main.character_name }}</h5>
{% endwith %}
{% else %}
<img class="rounded-circle m-2" src="{{ 1|character_portrait_url:32 }}" alt="{% translate 'No Main Character!' %}"/>
<h5>{% translate "No Main Character!" %}</h5>
{% endif %}
{% if user.is_authenticated %} {% if user.is_authenticated %}
{% if request.user.profile.main_character %}
{% with request.user.profile.main_character as main %}
<div class="p-2 position-relative m-2">
<img class="rounded-circle" src="{{ main.character_id|character_portrait_url:64 }}" alt="{{ main.character_name }}">
<img class="rounded-circle position-absolute bottom-0 start-0" src="{{ main.corporation_logo_url_32 }}" alt="{{ main.corporation_name }}">
{% if main.alliance_id %}
<img class="rounded-circle position-absolute bottom-0 end-0" src="{{ main.alliance_logo_url_32 }}" alt="{{ main.alliance_name }}">
{% elif main.faction_id %}
<img class="rounded-circle position-absolute bottom-0 end-0" src="{{ main.faction_logo_url_32 }}" alt="{{ main.faction_name }}">
{% endif %}
</div>
<h5>{{ main.character_name }}</h5>
{% endwith %}
{% else %}
<img class="rounded-circle m-2" src="{{ 1|character_portrait_url:32 }}" alt="{% translate 'No Main Character!' %}">
<h5>{% translate "No Main Character!" %}</h5>
{% endif %}
{% theme_select %} {% theme_select %}
{% endif %} {% endif %}
<div class="btn-group m-2"> <div class="btn-group m-2">
<button type="button" class="btn btn-secondary p-1"> <button type="button" class="btn btn-secondary p-1">
{% include "public/lang_select.html" %} {% include "public/lang_select.html" %}
</button> </button>
{% if user.is_superuser %} {% if user.is_superuser %}
<a role="button" class="btn btn btn-secondary d-flex" <a role="button" class="btn btn btn-secondary d-flex" href="{% url 'admin:index' %}">
href="{% url 'admin:index' %}" <span class="align-self-center">{% translate "Admin" %}</span>
bs-data-toggle="button"> </a>
<span class="align-self-center">{% translate "Admin" %}</span>
</a>
{% endif %} {% endif %}
</div> </div>
<div class="btn-group m-2"> <div class="btn-group m-2">
<a role="button" class="btn btn-info" href="{% url 'authentication:token_management' %}" alt="Token Management"><i class="fa-solid fa-user-lock fa-fw"></i></a> {% if user.is_authenticated %}
{% if user.is_superuser %} <a role="button" class="btn btn-info" href="{% url 'authentication:token_management' %}" title="Token Management"><i class="fa-solid fa-user-lock fa-fw"></i></a>
<a role="button" class="btn btn-info" href="https://allianceauth.readthedocs.io/" alt="Alliance Auth Documentation"><i class="fa-solid fa-book fa-fw"></i></a> {% endif %}
<a role="button" class="btn btn-info" href="https://discord.gg/fjnHAmk" alt="Alliance Auth Discord"><i class="fa-brands fa-discord fa-fw"></i></a>
<a role="button" class="btn btn-info" href="https://gitlab.com/allianceauth/allianceauth" alt="Alliance Auth Git"><i class="fa-brands fa-gitlab fa-fw"></i></a> {% if user.is_superuser %}
{% endif %} <a role="button" class="btn btn-info" href="https://allianceauth.readthedocs.io/" title="Alliance Auth Documentation"><i class="fa-solid fa-book fa-fw"></i></a>
{% if user.is_authenticated %} <a role="button" class="btn btn-info" href="https://discord.gg/fjnHAmk" title="Alliance Auth Discord"><i class="fa-brands fa-discord fa-fw"></i></a>
<a role="button" class="btn btn-danger" href="{% url 'logout' %}" alt="{% translate 'Sign Out' %}"><i class="fa-solid fa-right-from-bracket fa-fw"></i></a> <a role="button" class="btn btn-info" href="https://gitlab.com/allianceauth/allianceauth" title="Alliance Auth Git"><i class="fa-brands fa-gitlab fa-fw"></i></a>
{% else %} {% endif %}
<a role="button" class="btn btn-success" href="{% url 'authentication:login' %}" alt="{% translate 'Sign In' %}"> <i class="fa-solid fa-right-to-bracket fa-fw"></i></a>
{% endif %} {% if user.is_authenticated %}
<a role="button" class="btn btn-danger" href="{% url 'logout' %}" title="{% translate 'Sign Out' %}"><i class="fa-solid fa-right-from-bracket fa-fw"></i></a>
{% else %}
<a role="button" class="btn btn-success" href="{% url 'authentication:login' %}" title="{% translate 'Sign In' %}"> <i class="fa-solid fa-right-to-bracket fa-fw"></i></a>
{% endif %}
</div> </div>
</div> </div>

View File

@ -5,15 +5,18 @@
<div class="collapse collapse-horizontal" tabindex="-1" id="sidebar" > <div class="collapse collapse-horizontal" tabindex="-1" id="sidebar" >
<div style="width: 350px;"> <div style="width: 350px;">
<div class="nav-padding navbar-dark bg-dark text-light px-0 d-flex flex-column overflow-hidden vh-100 auth-logo" > <div class="nav-padding navbar-dark bg-dark text-light px-0 d-flex flex-column overflow-hidden vh-100 auth-logo" >
<ul style="z-index:5;" id="sidebar-menu" class="navbar-nav flex-column mb-auto overflow-auto pt-2"> {% if user.is_authenticated %}
<li class="d-flex flex-wrap m-2 p-2 pt-0 pb-0 mt-0 mb-0 me-0 pe-0"> <ul style="z-index:5;" id="sidebar-menu" class="navbar-nav flex-column mb-auto overflow-auto pt-2">
<i class="nav-link fas fa-tachometer-alt fa-fw align-self-center me-3 {% navactive request 'authentication:dashboard' %}"></i> <li class="d-flex flex-wrap m-2 p-2 pt-0 pb-0 mt-0 mb-0 me-0 pe-0">
<a class="nav-link flex-fill align-self-center" href="{% url 'authentication:dashboard' %}"> <i class="nav-link fas fa-tachometer-alt fa-fw align-self-center me-3 {% navactive request 'authentication:dashboard' %}"></i>
{% translate "Dashboard" %} <a class="nav-link flex-fill align-self-center" href="{% url 'authentication:dashboard' %}">
</a> {% translate "Dashboard" %}
</li> </a>
{% sorted_menu_items %} </li>
</ul> {% sorted_menu_items %}
</ul>
{% endif %}
{% include 'menu/menu-user.html' %} {% include 'menu/menu-user.html' %}
</div> </div>
</div> </div>

View File

@ -5,38 +5,42 @@
{% block page_title %} {% block page_title %}
{% translate "Notifications" %} {% translate "Notifications" %}
{% endblock page_title %} {% endblock page_title %}
{% block header_nav_brand %} {% block header_nav_brand %}
{% translate "Notifications" %} {% translate "Notifications" %}
{% endblock header_nav_brand %} {% endblock header_nav_brand %}
{% block header_nav_collapse_left %} {% block header_nav_collapse_left %}
<li class="nav-item"> <li class="nav-item">
<a class="nav-link active" id="unread-tab" data-bs-toggle="tab" data-bs-target="#unread" type="button" role="tab" aria-controls="unread" aria-selected="true"> <a class="nav-link active" id="unread-tab" data-bs-toggle="tab" data-bs-target="#unread" type="button" role="tab" aria-controls="unread" aria-selected="true">
{% translate "Unread" %} {% translate "Unread" %}
<span class="badge bg-secondary">{{ unread|length }}</span> <span class="badge bg-secondary">{{ unread|length }}</span>
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" id="read-tab" data-bs-toggle="tab" data-bs-target="#read" type="button" role="tab" aria-controls="read" aria-selected="false"> <a class="nav-link" id="read-tab" data-bs-toggle="tab" data-bs-target="#read" type="button" role="tab" aria-controls="read" aria-selected="false">
{% translate "Read" %} {% translate "Read" %}
<span class="badge bg-secondary">{{ read|length }}</span> <span class="badge bg-secondary">{{ read|length }}</span>
</a> </a>
</li> </li>
{% endblock %} {% endblock %}
{% block header_nav_collapse_right %} {% block header_nav_collapse_right %}
<li class="nav-item"> <li class="nav-item">
<a href="{% url 'notifications:mark_all_read' %}" class="nav-link"> <a href="{% url 'notifications:mark_all_read' %}" class="nav-link" title="{% translate 'Mark all notifications as read' %}">
<i class="fas fa-check-double"></i> <i class="fas fa-check-double"></i>
</a> </a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a href="{% url 'notifications:delete_all_read' %}" class="nav-link"> <a href="{% url 'notifications:delete_all_read' %}" class="nav-link" title="{% translate 'Delete all read notifications' %}">
<i class="fas fa-trash"></i> <i class="fas fa-trash"></i>
</a> </a>
</li> </li>
{% endblock %} {% endblock %}
{% block content %} {% block content %}
<div class="tab-content"> <div class="tab-content">
<div class="tab-pane active" id="unread"> <div class="tab-pane fade active show" id="unread">
{% include "notifications/list_partial.html" with notifications=unread %} {% include "notifications/list_partial.html" with notifications=unread %}
</div> </div>

View File

@ -3,19 +3,19 @@
{% if notifications %} {% if notifications %}
<table class="table table-striped"> <table class="table table-striped">
<tr> <tr>
<th class="text-center">{% translate "Timestamp" %}</th> <th>{% translate "Timestamp" %}</th>
<th class="text-center">{% translate "Title" %}</th> <th>{% translate "Title" %}</th>
<th class="text-center">{% translate "Action" %}</th> <th class="text-end">{% translate "Action" %}</th>
</tr> </tr>
{% for notif in notifications %} {% for notif in notifications %}
<tr class="{{ notif.level }}"> <tr class="{{ notif.level }}">
<td class="text-center">{{ notif.timestamp }}</td> <td>{{ notif.timestamp }}</td>
<td class="text-center">{{ notif.title }}</td> <td>{{ notif.title }}</td>
<td class="text-center"> <td class="text-end">
<a href="{% url 'notifications:view' notif.id %}" class="btn btn-primary" title="View"> <a href="{% url 'notifications:view' notif.id %}" class="btn btn-primary btn-sm" title="View">
<span class="fas fa-eye"></span> <span class="fas fa-eye"></span>
</a> </a>
<a href="{% url 'notifications:remove' notif.id %}" class="btn btn-danger" title="Remove"> <a href="{% url 'notifications:remove' notif.id %}" class="btn btn-danger btn-sm" title="Remove">
<span class="fas fa-trash"></span> <span class="fas fa-trash"></span>
</a> </a>
</td> </td>
@ -23,5 +23,5 @@
{% endfor %} {% endfor %}
</table> </table>
{% else %} {% else %}
<div class="alert alert-default text-center">{% translate "No notifications." %}</div> <div class="alert alert-info">{% translate "No notifications." %}</div>
{% endif %} {% endif %}

View File

@ -1,25 +1,29 @@
{% extends "allianceauth/base.html" %} {% extends "allianceauth/base-bs5.html" %}
{% load i18n %} {% load i18n %}
{% block page_title %}{% translate "View Notification" %}{% endblock page_title %} {% block page_title %}
{% translate "View Notification" %}
{% endblock page_title %}
{% block header_nav_brand %}
{% translate "View Notification" %}
{% endblock %}
{% block content %} {% block content %}
<h1 class="page-header text-center"> <div class="text-end mb-4">
{% translate "View Notification" %} <a href="{% url 'notifications:list' %}" class="btn btn-primary">
<div class="text-end"> <i class="fa-solid fa-arrow-left"></i>
<a href="{% url 'notifications:list' %}" class="btn btn-primary btn-lg"> </a>
<span class="glyphicon glyphicon-arrow-left"></span>
</a>
</div>
</h1>
<div class="row">
<div class="col-lg-12">
<div class="panel panel-{{ notif.level }}">
<div class="panel-heading">{{ notif.timestamp }} {{ notif.title }}</div>
<div class="panel-body"><pre>{{ notif.message }}</pre></div>
</div>
</div>
</div> </div>
<div class="card border-{{ notif.level }}">
<div class="card-header bg-{{ notif.level }}">
{{ notif.timestamp }}
{{ notif.title }}
</div>
<div class="card-body">
<pre>{{ notif.message }}</pre>
</div>
</div>
{% endblock %} {% endblock %}

View File

@ -6,14 +6,16 @@
<div class="card-body"> <div class="card-body">
<h4 class="card-title text-center">{% translate "Upcoming Fleets" %}</h4> <h4 class="card-title text-center">{% translate "Upcoming Fleets" %}</h4>
<div class="card-body"> <div class="card-body">
<div style="height: 300px;overflow:-moz-scrollbars-vertical;overflow-y:auto;"> <div style="height: 300px; overflow-y:auto;">
<table class="table" style="--bs-table-bg: transparent;"> <table class="table" style="--bs-table-bg: transparent;">
<thead> <thead>
<th class="text-center">{% translate "Operation" %}</th> <tr>
<th class="text-center">{% translate "Type" %}</th> <th class="text-center">{% translate "Operation" %}</th>
<th class="text-center">{% translate "Form Up System" %}</th> <th class="text-center">{% translate "Type" %}</th>
<th class="text-center">{% translate "Start Time" %}</th> <th class="text-center">{% translate "Form Up System" %}</th>
</thead> <th class="text-center">{% translate "Start Time" %}</th>
</tr>
</thead>
<tbody> <tbody>
{% for ops in timers %} {% for ops in timers %}
<tr> <tr>

View File

@ -16,10 +16,10 @@
</h1> </h1>
<div class="col-lg-12 text-center row"> <div class="col-lg-12 text-center row">
<div class="badge badge-info text-start"> <div class="badge bg-info text-start">
<b>{% translate "Current Eve Time:" %} </b> <b>{% translate "Current Eve Time:" %} </b>
</div> </div>
<strong class="badge badge-info text-start" id="current-time"></strong> <strong class="badge bg-info text-start" id="current-time"></strong>
<br> <br>
</div> </div>

View File

@ -3,12 +3,12 @@
<tr> <tr>
<td>{{ type }}: {{ name }}</td> <td>{{ type }}: {{ name }}</td>
<td class="text-end"> <td class="text-end">
<img src="{{ user.profile.main_character|character_portrait_url:32 }}" class="img-circle" alt="{{ user.profile.main_character.character_name }}"/></td> <img src="{{ user.profile.main_character|character_portrait_url:32 }}" class="img-circle" alt="{{ user.profile.main_character.character_name }}"></td>
<td><strong>{{ user }}<br/></strong>{{ user.profile.main_character.character_name }}</td> <td><strong>{{ user }}<br></strong>{{ user.profile.main_character.character_name }}</td>
<td class="text-start"> <td class="text-start">
{% if user.profile.main_character %} {% if user.profile.main_character %}
<a href="{{ user.profile.main_character|dotlan_corporation_url }}" target="_blank">{{ user.profile.main_character.corporation_name }}</a> <a href="{{ user.profile.main_character|dotlan_corporation_url }}" target="_blank">{{ user.profile.main_character.corporation_name }}</a>
<br/> <br>
{{ user.profile.main_character.alliance_name|default_if_none:"" }} {{ user.profile.main_character.alliance_name|default_if_none:"" }}
{% else %} {% else %}
{% translate "(unknown)" %} {% translate "(unknown)" %}

View File

@ -22,6 +22,7 @@ INSTALLED_APPS = [
'django.contrib.humanize', 'django.contrib.humanize',
'django_celery_beat', 'django_celery_beat',
'bootstrapform', 'bootstrapform',
'django_bootstrap5', # https://github.com/zostera/django-bootstrap5
'sortedm2m', 'sortedm2m',
'esi', 'esi',
'allianceauth.authentication', 'allianceauth.authentication',

View File

@ -14,7 +14,7 @@
{% endblock %} {% endblock %}
{% block controls %} {% block controls %}
<a title="Go To Forums" href="{{ DISCOURSE_URL }}" class="btn btn-success" title="Connect"> <a title="Go To Forums" href="{{ DISCOURSE_URL }}" class="btn btn-success">
<span class="fas fa-arrow-right fa-fw"></span> <span class="fas fa-arrow-right fa-fw"></span>
</a> </a>
{% endblock %} {% endblock %}

View File

@ -5,17 +5,17 @@
<p class="card-text"><a href="mumble://{{ service_url }}">{{ service_url }}</a></p> <p class="card-text"><a href="mumble://{{ service_url }}">{{ service_url }}</a></p>
<p class="card-text"><span class="badge {% if username != '' %}bg-success{% else %}bg-warning{% endif %}">{% if username != '' %}Active{% else %}Disabled{% endif %}</span></p> <p class="card-text"><span class="badge {% if username != '' %}bg-success{% else %}bg-warning{% endif %}">{% if username != '' %}Active{% else %}Disabled{% endif %}</span></p>
<p class="card-text">Username: <span class="badge bg-secondary text-end">{{ username }}</span></p> <p class="card-text">Username: <span class="badge bg-secondary text-end">{{ username }}</span></p>
</div> </div>
<div class="card-footer"> <div class="card-footer">
{% if username == "" %} {% if username == "" %}
<td class="text-center">{{ service_url }}</td> <div class="text-center">
<td class="text-center">
<a href="{% url 'mumble:activate' %}" title="Activate" class="btn btn-warning"> <a href="{% url 'mumble:activate' %}" title="Activate" class="btn btn-warning">
<span class="fas fa-check fa-fw"></span> <span class="fas fa-check fa-fw"></span>
</a> </a>
</td> </div>
{% else %} {% else %}
<td class="text-center"> <div class="text-center">
<a href="{% url 'mumble:set_password' %}" title="Set Password" class="btn btn-warning"> <a href="{% url 'mumble:set_password' %}" title="Set Password" class="btn btn-warning">
<span class="fas fa-edit fa-fw"></span> <span class="fas fa-edit fa-fw"></span>
</a> </a>
@ -28,7 +28,7 @@
<a href="mumble://{{ connect_url }}" class="btn btn-success" title="Connect"> <a href="mumble://{{ connect_url }}" class="btn btn-success" title="Connect">
<span class="fas fa-arrow-right fa-fw"></span> <span class="fas fa-arrow-right fa-fw"></span>
</a> </a>
</td> </div>
{% endif %} {% endif %}
</div> </div>
</div> </div>

View File

@ -8,11 +8,12 @@
{% block content %} {% block content %}
<div class="d-flex p-2 bd-highlight justify-content-center flex-wrap"> <div class="d-flex py-2 pt-0 bd-highlight justify-content-center flex-wrap">
{% for svc in service_ctrls %} {% for svc in service_ctrls %}
{{ svc }} {{ svc }}
{% endfor %} {% endfor %}
</div> </div>
<div class="w-100 text-center"> <div class="w-100 text-center">
<h4>Legend</h4> <h4>Legend</h4>
<div class="d-inline-flex bd-highlight justify-content-center flex-wrap"> <div class="d-inline-flex bd-highlight justify-content-center flex-wrap">
@ -20,29 +21,41 @@
<a title="Activate" class="btn btn-warning"> <a title="Activate" class="btn btn-warning">
<span class="fas fa-check fa-fw"></span> <span class="fas fa-check fa-fw"></span>
</a> </a>
<p class="m-2 p-0 align-self-center">{% translate "Click to activate the service for your user." %}</p> <p class="m-2 p-0 align-self-center">
{% translate "Click to activate the service for your user." %}
</p>
</div> </div>
<div class="d-inline-flex m-3"> <div class="d-inline-flex m-3">
<a title="Set Password" class="btn btn-warning"> <a title="Set Password" class="btn btn-warning">
<span class="fas fa-edit fa-fw"></span> <span class="fas fa-edit fa-fw"></span>
</a> </a>
<p class="m-2 p-0 align-self-center">{% translate "Click to manually set your password." %}</p> <p class="m-2 p-0 align-self-center">
{% translate "Click to manually set your password." %}
</p>
</div> </div>
<div class="d-inline-flex m-3"> <div class="d-inline-flex m-3">
<a title="Reset Password" class="btn btn-primary"> <a title="Reset Password" class="btn btn-primary">
<span class="fas fa-sync fa-fw"></span> <span class="fas fa-sync fa-fw"></span>
</a> </a>
<p class="m-2 p-0 align-self-center">{% translate "Click to randomly generate your password." %}</p> <p class="m-2 p-0 align-self-center">
{% translate "Click to randomly generate your password." %}
</p>
</div> </div>
<div class="d-inline-flex m-3"> <div class="d-inline-flex m-3">
<a title="Deactivate" class="btn btn-danger"> <a title="Deactivate" class="btn btn-danger">
<span class="fas fa-times fa-fw"></span> <span class="fas fa-times fa-fw"></span>
</a> </a>
<p class="m-2 p-0 align-self-center">{% translate "Click to deactivate the service for your user" %}</p> <p class="m-2 p-0 align-self-center">
{% translate "Click to deactivate the service for your user" %}
</p>
</div> </div>
</div> </div>
<p class="m-2 p-0 align-self-center">{% translate "Some services provide different options. Hover over the buttons to see more." %}</p>
</div>
<p class="m-2 p-0 align-self-center">
{% translate "Some services provide different options. Hover over the buttons to see more." %}
</p>
</div>
{% endblock content %} {% endblock content %}

View File

@ -73,7 +73,7 @@ ESC to cancel{% endblocktranslate %}" id="blah"></i></th>
</td> </td>
<td class="text-center"> <td class="text-center">
<a href="{{ srpfleetrequest.killboard_link }}" <a href="{{ srpfleetrequest.killboard_link }}"
target="_blank" class="badge badge-warning">{% translate "Link" %}</a> target="_blank" class="badge bg-warning">{% translate "Link" %}</a>
</td> </td>
<td class="text-center">{{ srpfleetrequest.additional_info }}</td> <td class="text-center">{{ srpfleetrequest.additional_info }}</td>
<td class="text-center">{{ srpfleetrequest.srp_ship_name }}</td> <td class="text-center">{{ srpfleetrequest.srp_ship_name }}</td>
@ -82,15 +82,15 @@ ESC to cancel{% endblocktranslate %}" id="blah"></i></th>
<td class="text-center" data-sort="{{ srpfleetrequest.post_time | date:"Y-m-d H:i" }}">{{ srpfleetrequest.post_time | date:"Y-M-d H:i" }}</td> <td class="text-center" data-sort="{{ srpfleetrequest.post_time | date:"Y-m-d H:i" }}">{{ srpfleetrequest.post_time | date:"Y-M-d H:i" }}</td>
<td class="text-center"> <td class="text-center">
{% if srpfleetrequest.srp_status == "Approved" %} {% if srpfleetrequest.srp_status == "Approved" %}
<div class="badge badge-success"> <div class="badge bg-success">
{% translate "Approved" %} {% translate "Approved" %}
</div> </div>
{% elif srpfleetrequest.srp_status == "Rejected" %} {% elif srpfleetrequest.srp_status == "Rejected" %}
<div class="badge badge-danger"> <div class="badge bg-danger">
{% translate "Rejected" %} {% translate "Rejected" %}
</div> </div>
{% else %} {% else %}
<div class="badge badge-warning"> <div class="badge bg-warning">
{% translate "Pending" %} {% translate "Pending" %}
</div> </div>
{% endif %} {% endif %}

View File

@ -46,27 +46,27 @@
{% for srpfleet in srpfleets %} {% for srpfleet in srpfleets %}
<tr> <tr>
<td class="text-center"> <td class="text-center">
<div class="badge badge-info"> <div class="badge bg-info">
{{ srpfleet.fleet_name }} {{ srpfleet.fleet_name }}
</div> </div>
</td> </td>
<td class="text-center">{{ srpfleet.fleet_time | date:"Y-m-d H:i" }}</td> <td class="text-center">{{ srpfleet.fleet_time | date:"Y-m-d H:i" }}</td>
<td class="text-center">{{ srpfleet.fleet_doctrine }}</td> <td class="text-center">{{ srpfleet.fleet_doctrine }}</td>
<td class="text-center"> <td class="text-center">
<div class="badge badge-success"> <div class="badge bg-success">
{{ srpfleet.fleet_commander.character_name }} {{ srpfleet.fleet_commander.character_name }}
</div> </div>
</td> </td>
<td class="text-center"> <td class="text-center">
{% if srpfleet.fleet_srp_aar_link %} {% if srpfleet.fleet_srp_aar_link %}
<a href="{{ srpfleet.fleet_srp_aar_link }}" target="_blank" class="badge badge-primary">{% translate "Link" %}</a> <a href="{{ srpfleet.fleet_srp_aar_link }}" target="_blank" class="badge bg-primary">{% translate "Link" %}</a>
{% endif %} {% endif %}
</td> </td>
<td class="text-center"> <td class="text-center">
{% if srpfleet.fleet_srp_code %} {% if srpfleet.fleet_srp_code %}
<a class="badge badge-warning" href="{% url 'srp:request' srpfleet.fleet_srp_code %}">{{ srpfleet.fleet_srp_code }}</a> <a class="badge bg-warning" href="{% url 'srp:request' srpfleet.fleet_srp_code %}">{{ srpfleet.fleet_srp_code }}</a>
{% else %} {% else %}
<div class="badge badge-danger"> <div class="badge bg-danger">
{% translate "Disabled" %} {% translate "Disabled" %}
</div> </div>
{% endif %} {% endif %}
@ -75,17 +75,17 @@
<td class="text-center"> <td class="text-center">
{% if srpfleet.fleet_srp_status == "" %} {% if srpfleet.fleet_srp_status == "" %}
<div class="badge badge-warning"> <div class="badge bg-warning">
{% translate "Pending" %} {% translate "Pending" %}
</div> </div>
{% else %} {% else %}
<div class="badge badge-success"> <div class="badge bg-success">
{% translate "Completed" %} {% translate "Completed" %}
</div> </div>
{% endif %} {% endif %}
</td> </td>
<td class="text-center"> <td class="text-center">
<div class="badge badge-warning">{{ srpfleet.pending_requests }}</div> <div class="badge bg-warning">{{ srpfleet.pending_requests }}</div>
</td> </td>
<td class="text-center"> <td class="text-center">

View File

@ -0,0 +1,49 @@
/* BS 5 Additions
Helpful CSS classes that are missing in BS5
------------------------------------------------------------------------------------- */
@media all {
.cursor-auto {
cursor: auto;
}
.cursor-default {
cursor: default;
}
.cursor-pointer {
cursor: pointer;
}
.cursor-wait {
cursor: wait;
}
.cursor-text {
cursor: text;
}
.cursor-move {
cursor: move;
}
.cursor-help {
cursor: help;
}
.cursor-not-allowed {
cursor: not-allowed;
}
.cursor-inherit {
cursor: inherit;
}
.cursor-zoom-in {
cursor: zoom-in;
}
.cursor-zoom-out {
cursor: zoom-out;
}
}

View File

@ -1,101 +1,114 @@
{% load i18n %} {% load i18n %}
{% load humanize %} {% load humanize %}
{% if notifications %} {% if notifications %}
<div class="col-12 align-self-stretch p-2"> <div class="col-12 align-self-stretch pb-2">
<div class="card"> <div class="card">
<div class="card-body"> <div class="card-body">
<div class="d-flex align-items-center"> <div class="d-flex align-items-center">
<div class="w-100 align-self-stretch"> <div class="w-100 align-self-stretch">
<h4 class="ms-auto me-auto"> <h4 class="ms-auto me-auto text-center">
{% translate "Alliance Auth Notifications" %} {% translate "Alliance Auth Notifications" %}
</h4> </h4>
<div class="card-body">
<ul class="list-group"> <div class="card-body">
{% for notif in notifications %} <ul class="list-group">
<li class="list-group-item"> {% for notif in notifications %}
{% if notif.state == 'opened' %} <li class="list-group-item">
<span class="badge badge-success">{% translate "Open" %}</span> {% if notif.state == 'opened' %}
{% else %} <span class="badge bg-success">{% translate "Open" %}</span>
<span class="badge badge-danger">{% translate "Closed" %}</span> {% else %}
{% endif %} <span class="badge bg-danger">{% translate "Closed" %}</span>
<a href="{{ notif.web_url }}" target="_blank">#{{ notif.iid }} {{ notif.title }}</a> {% endif %}
</li> <a href="{{ notif.web_url }}" target="_blank">#{{ notif.iid }} {{ notif.title }}</a>
{% empty %} </li>
<div class="alert alert-primary" role="alert"> {% empty %}
{% translate "No notifications at this time" %} <div class="alert alert-primary" role="alert">
{% translate "No notifications at this time" %}
</div>
{% endfor %}
</ul>
<div class="text-end">
<a href="https://gitlab.com/allianceauth/allianceauth/issues" target="_blank" class="me-1">
<span class="badge" style="background-color: rgb(230 83 40);">
<i class="fab fa-gitlab" aria-hidden="true"></i>
{% translate 'Powered by GitLab' %}
</span>
</a>
<a href="https://discord.com/invite/fjnHAmk" target="_blank">
<span class="badge" style="background-color: rgb(110 133 211);">
<i class="fab fa-discord" aria-hidden="true"></i>
{% translate 'Support Discord' %}
</span>
</a>
</div> </div>
{% endfor %} </div>
</ul>
</div>
<div class="text-end" style="position: absolute; bottom: 5px; right: 5px;">
<a href="https://gitlab.com/allianceauth/allianceauth/issues" target="_blank" style="margin-right: 0.5rem;">
<span class="badge" style="background-color: #e65328;">
<i class="fab fa-gitlab" aria-hidden="true"></i>
{% translate 'Powered by GitLab' %}
</span>
</a>
<a href="https://discord.com/invite/fjnHAmk" target="_blank">
<span class="badge" style="background-color: rgb(110,133,211);">
<i class="fab fa-discord" aria-hidden="true"></i>
{% translate 'Support Discord' %}
</span>
</a>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div>
{% endif %} {% endif %}
<div class="col-12 align-self-stretch p-2">
<div class="col-12 align-self-stretch py-2">
<div class="card"> <div class="card">
<div class="card-body d-flex flex-row flex-wrap"> <div class="card-body d-flex flex-row flex-wrap">
<div class="col-xl-6 col-lg-12 col-md-12 col-sm-12"> <div class="col-xl-6 col-lg-12 col-md-12 col-sm-12">
<h4 class="ms-auto me-auto text-center"> <h4 class="ms-auto me-auto text-center">
{% translate "Software Version" %} {% translate "Software Version" %}
</h4> </h4>
<div class="card-body pb-0">
<ul class="list-group list-group-horizontal w-100" role="group" aria-label="Basic example"> <div class="card-body">
<li type="button" class="list-group-item w-100"> <ul class="list-group list-group-horizontal w-100" role="group" aria-label="{% translate 'Software Version' %}">
<h5 class="list-group-item-heading">{% translate "Current" %}</h5> <li class="list-group-item w-100">
<p class="list-group-item-text"> <div class="btn w-100 cursor-default">
{{ current_version }} <h5 class="list-group-item-heading">{% translate "Current" %}</h5>
</p> <p class="list-group-item-text">{{ current_version }}</p>
</div>
</li> </li>
<li class="list-group-item list-group-item-{% if latest_patch %}success{% elif latest_minor %}warning{% else %}danger{% endif %} w-100" href="https://gitlab.com/allianceauth/allianceauth/-/tags/v{{ latest_patch_version }}">
<li class="list-group-item list-group-item-{% if latest_patch %}success{% elif latest_minor %}warning{% else %}danger{% endif %} w-100">
<a class="btn w-100" href="https://gitlab.com/allianceauth/allianceauth/-/releases/v{{ latest_patch_version }}">
<h5 class="list-group-item-heading">{% translate "Latest Stable" %}</h5> <h5 class="list-group-item-heading">{% translate "Latest Stable" %}</h5>
<p class="list-group-item-text">
<i class="fab fa-gitlab hidden-xs" aria-hidden="true"></i>
{{ latest_patch_version }}
{% if not latest_patch %}<br>{% translate "Update available" %}{% endif %}
</p>
</li>
{% if latest_beta %}
<li>
<a type="button" class="btn btn-info w-100" href="https://gitlab.com/allianceauth/allianceauth/-/tags/v{{ latest_beta_version }}">
<h5 class="list-group-item-heading">{% translate "Latest Pre-Release" %}</h5>
<p class="list-group-item-text"> <p class="list-group-item-text">
<i class="fab fa-gitlab hidden-xs" aria-hidden="true"></i> <i class="fab fa-gitlab hidden-xs" aria-hidden="true"></i>
{{ latest_beta_version }} {{ latest_patch_version }}
<br>{% translate "Pre-Release available" %} {% if not latest_patch %}<br>{% translate "Update available" %}{% endif %}
</p> </p>
</a> </a>
</li> </li>
{% if latest_beta %}
<li class="list-group-item list-group-item-info w-100">
<a class="btn w-100" href="https://gitlab.com/allianceauth/allianceauth/-/releases/v{{ latest_beta_version }}">
<h5 class="list-group-item-heading">{% translate "Latest Pre-Release" %}</h5>
<p class="list-group-item-text">
<i class="fab fa-gitlab hidden-xs" aria-hidden="true"></i>
{{ latest_beta_version }}
<br>{% translate "Pre-Release available" %}
</p>
</a>
</li>
{% endif %} {% endif %}
</ul> </ul>
</div> </div>
</div> </div>
<div class="d-xl-none d-lg-show d-md-show d-sm-show m-2"></div>
<div class="col-xl-6 col-lg-12 col-md-12 col-sm-12"> <div class="col-xl-6 col-lg-12 col-md-12 col-sm-12">
<h4 class="ms-auto me-auto text-center"> <h4 class="ms-auto me-auto text-center">
{% translate "Task Queue" %} {% translate "Task Queue" %}
</h4> </h4>
<div class="card-body pb-0">
<div class="card-body">
<p> <p>
{% blocktranslate with total=tasks_total|intcomma latest=earliest_task|timesince|default:"?" %} {% blocktranslate with total=tasks_total|intcomma latest=earliest_task|timesince|default:"?" %}
Status of {{ total }} processed tasks • last {{ latest }} Status of {{ total }} processed tasks • last {{ latest }}
{% endblocktranslate %} {% endblocktranslate %}
</p> </p>
<div <div
class="progress" class="progress"
style="height: 21px;" style="height: 21px;"
@ -105,6 +118,7 @@
{% include "allianceauth/admin-status/celery_bar_partial.html" with label="retried" level="info" tasks_count=tasks_retried %} {% include "allianceauth/admin-status/celery_bar_partial.html" with label="retried" level="info" tasks_count=tasks_retried %}
{% include "allianceauth/admin-status/celery_bar_partial.html" with label="failed" level="danger" tasks_count=tasks_failed %} {% include "allianceauth/admin-status/celery_bar_partial.html" with label="failed" level="danger" tasks_count=tasks_failed %}
</div> </div>
<p> <p>
<span id="task-counts">?</span> {% translate 'running' %} | <span id="task-counts">?</span> {% translate 'running' %} |
<span id="queued-tasks-count">?</span> {% translate 'queued' %} <span id="queued-tasks-count">?</span> {% translate 'queued' %}

View File

@ -12,7 +12,7 @@
<!-- End Required meta tags --> <!-- End Required meta tags -->
<!-- Meta tags --> <!-- Meta tags -->
<!-- TODO Bundle all the site specific stuff up into its own template for easy overide --> <!-- TODO Bundle all the site specific stuff up into its own template for easy override -->
<meta name="description" content=""> <meta name="description" content="">
<meta name="author" content=""> <meta name="author" content="">
{% include 'allianceauth/icons.html' %} {% include 'allianceauth/icons.html' %}
@ -22,14 +22,18 @@
{% theme_css %} {% theme_css %}
{% include 'bundles/fontawesome.html' %} {% include 'bundles/fontawesome.html' %}
{% include 'bundles/auth-base-bs5-css.html' %}
<style> <style>
.navbar-toggler.collapsed{ .navbar-toggler.collapsed{
transform: rotate(180deg); transform: rotate(180deg);
} }
.nav-padding { {% if user.is_authenticated %}
padding-top: {% header_padding_size %} !important; .nav-padding {
} padding-top: {% header_padding_size %} !important;
}
{% endif %}
.auth-logo { .auth-logo {
background-position: bottom; background-position: bottom;
@ -40,79 +44,93 @@
{% block extra_css %}{% endblock extra_css %} {% block extra_css %}{% endblock extra_css %}
</head> </head>
<body class="overflow-none"> <body>
{% if user.is_authenticated %} {% if user.is_authenticated %}
<!-- Top Menu, Blocks don't work in "include" tagged views --> <!-- Top Menu, Blocks don't work in "include" tagged views -->
<nav class="navbar navbar-expand-lg navbar-dark fixed-top bg-primary"> <nav class="navbar navbar-expand-lg navbar-dark fixed-top bg-primary">
<div class="container-fluid justify-content-start"> <div class="container-fluid justify-content-start">
<a class="navbar-brand" data-bs-toggle="collapse" data-bs-target="#sidebar" role="button"> {% if user.is_authenticated %}
<i class="fas fa-solid fa-bars ms-2 me-2"></i> <a class="navbar-brand" data-bs-toggle="collapse" data-bs-target="#sidebar" role="button">
</a> <i class="fas fa-solid fa-bars ms-2 me-2"></i>
<a class="navbar-brand">{% block header_nav_brand %}{{ SITE_NAME }}{% endblock %}</a> </a>
<div class="collapse navbar-collapse" id="navbarexpand"> {% endif %}
<div class="m-2"></div>
<ul id="nav-left" class="navbar-nav nav me-auto">
{% block header_nav_collapse_left %}
{% endblock %}
</ul>
<ul id="nav-right" class="navbar-nav">
{% block header_nav_collapse_right %} <!-- Default to add char and swap main -->
{% include 'allianceauth/top-menu-rh-default.html' %}
{% endblock %}
{% include 'menu/menu-notification-block.html' %}
</ul>
</div>
<a class="navbar-toggler navbar-brand border-0 collapsed" data-bs-toggle="collapse" data-bs-target="#navbarexpand" aria-controls="navbarColor01" aria-expanded="false" aria-label="Toggle navigation" style="margin-left: auto;"> <div class="navbar-brand">{% block header_nav_brand %}{{ SITE_NAME }}{% endblock %}</div>
<i class="fas fa-solid fa-chevron-up"></i>
</a> <div class="collapse navbar-collapse" id="navbarexpand">
<div class="m-2"></div>
<ul id="nav-left" class="navbar-nav nav me-auto">
{% block header_nav_collapse_left %}
{% endblock %}
</ul>
<ul id="nav-right" class="navbar-nav">
{% block header_nav_collapse_right %} <!-- Default to add char and swap main -->
{% include 'allianceauth/top-menu-rh-default.html' %}
{% endblock %}
{% include 'menu/menu-notification-block.html' %}
</ul>
</div>
<a class="navbar-toggler navbar-brand border-0 collapsed" data-bs-toggle="collapse" data-bs-target="#navbarexpand" aria-controls="navbarColor01" aria-expanded="false" aria-label="Toggle navigation" style="margin-left: auto;">
<i class="fas fa-solid fa-chevron-up"></i>
</a>
</div> </div>
</nav> </nav>
<!-- End Top Menu -->
<!-- Body -->
<main class="row flex-nowrap m-0">
{% include 'menu/sortable-side-menu.html' %}
<div class="nav-padding col flex-nowrap px-0 m-0 vh-100 overflow-auto">
<div class="p-2">
{% include 'allianceauth/messages-bs5.html' %}
{% block content %}
{% endblock content %}
</div>
</div>
</main>
<!-- End Body -->
{% endif %} {% endif %}
<!-- End Top Menu -->
<!-- Body -->
<main class="row flex-nowrap m-0">
{% include 'menu/sortable-side-menu.html' %}
<div class="nav-padding col flex-nowrap vh-100 overflow-auto">
<div class="my-4">
{% include 'allianceauth/messages-bs5.html' %}
{% block content %}
{% endblock content %}
</div>
</div>
</main>
<!-- End Body -->
<script> <script>
(function () { (() => {
// TODO Extend this to the groups in the sidebar too. // TODO Extend this to the groups in the sidebar too.
// TODO Move to own JS file // TODO Move to own JS file
var sidebar = document.getElementById('sidebar') const sidebar = document.getElementById('sidebar');
sidebar.addEventListener("shown.bs.collapse", function () { sidebar.addEventListener("shown.bs.collapse", () => {
localStorage.removeItem("sidebar_" + sidebar.id); localStorage.removeItem("sidebar_" + sidebar.id);
}); });
sidebar.addEventListener("hidden.bs.collapse", function () { sidebar.addEventListener("hidden.bs.collapse", () => {
localStorage.setItem("sidebar_" + sidebar.id, true); localStorage.setItem("sidebar_" + sidebar.id, true);
}); });
if (localStorage.getItem("sidebar_" + sidebar.id) === "true") { if (localStorage.getItem("sidebar_" + sidebar.id) === "true") {
sidebar.classList.remove("show") sidebar.classList.remove("show")
} } else {
else {
sidebar.classList.add("show") sidebar.classList.add("show")
} }
})(); })();
</script> </script>
{% include 'bundles/jquery-js.html' %} {% include 'bundles/jquery-js.html' %}
{% theme_js %} {% theme_js %}
<script type="application/javascript">
let notificationUPdateSettings = { {% if user.is_authenticated %}
notificationsListViewUrl: "{% url 'notifications:list' %}", <script type="application/javascript">
notificationsRefreshTime: "{% notifications_refresh_time %}", let notificationUPdateSettings = {
userNotificationsCountViewUrl: "{% url 'notifications:user_notifications_count' request.user.pk %}" notificationsListViewUrl: "{% url 'notifications:list' %}",
}; notificationsRefreshTime: "{% notifications_refresh_time %}",
</script> userNotificationsCountViewUrl: "{% url 'notifications:user_notifications_count' request.user.pk %}"
};
</script>
{% endif %}
{% block extra_javascript %} {% block extra_javascript %}
{% endblock extra_javascript %} {% endblock extra_javascript %}
<script> <script>

View File

@ -22,6 +22,6 @@
/> />
</svg> </svg>
</div> </div>
<p class="text-center"></p>>{{ error_message }}</p> <p class="text-center">{{ error_message }}</p>
</div> </div>
{% endblock content %} {% endblock content %}

View File

@ -12,7 +12,7 @@
</button> </button>
<a class="navbar-brand"> <a class="navbar-brand">
<img src="{% static 'allianceauth/icons/favicon-32x32.png' %}" style="display: inline-block;" height="32" width="32" alt="{{ SITE_NAME }}"/> <img src="{% static 'allianceauth/icons/favicon-32x32.png' %}" style="display: inline-block;" height="32" width="32" alt="{{ SITE_NAME }}">
{{ SITE_NAME }} {{ SITE_NAME }}
</a> </a>
</div> </div>

View File

@ -0,0 +1,3 @@
{% load static %}
<link href="{% static 'allianceauth/css/auth-base-bs5.css' %}" rel="stylesheet">

View File

@ -1,3 +1,3 @@
{% load static %} {% load static %}
<link href="{% static 'allianceauth/css/auth-base.css' %}" rel="stylesheet"/> <link href="{% static 'allianceauth/css/auth-base.css' %}" rel="stylesheet">

View File

@ -3,18 +3,18 @@
{% if NIGHT_MODE %} {% if NIGHT_MODE %}
{% if debug %} {% if debug %}
<!-- In template debug, loading less file instead of CSS --> <!-- In template debug, loading less file instead of CSS -->
<link rel="stylesheet/less" href="{% static 'allianceauth/css/themes/darkly/darkly.less' %}"/> <link rel="stylesheet/less" href="{% static 'allianceauth/css/themes/darkly/darkly.less' %}">
<script src='https://cdnjs.cloudflare.com/ajax/libs/less.js/4.1.3/less.min.js' integrity='sha512-6gUGqd/zBCrEKbJqPI7iINc61jlOfH5A+SluY15IkNO1o4qP1DEYjQBewTB4l0U4ihXZdupg8Mb77VxqE+37dg==' crossorigin='anonymous' referrerpolicy="no-referrer"></script> <script src='https://cdnjs.cloudflare.com/ajax/libs/less.js/4.1.3/less.min.js' integrity='sha512-6gUGqd/zBCrEKbJqPI7iINc61jlOfH5A+SluY15IkNO1o4qP1DEYjQBewTB4l0U4ihXZdupg8Mb77VxqE+37dg==' crossorigin='anonymous' referrerpolicy="no-referrer"></script>
{% else %} {% else %}
<link rel="stylesheet" href="{% static 'allianceauth/css/themes/darkly/darkly.min.css' %}"/> <link rel="stylesheet" href="{% static 'allianceauth/css/themes/darkly/darkly.min.css' %}">
{% endif %} {% endif %}
{% else %} {% else %}
{% if debug %} {% if debug %}
<!-- In template debug, loading less file instead of CSS --> <!-- In template debug, loading less file instead of CSS -->
<link rel="stylesheet/less" href="{% static 'allianceauth/css/themes/flatly/flatly.less' %}"/> <link rel="stylesheet/less" href="{% static 'allianceauth/css/themes/flatly/flatly.less' %}">
<script src='https://cdnjs.cloudflare.com/ajax/libs/less.js/4.1.3/less.min.js' integrity='sha512-6gUGqd/zBCrEKbJqPI7iINc61jlOfH5A+SluY15IkNO1o4qP1DEYjQBewTB4l0U4ihXZdupg8Mb77VxqE+37dg==' crossorigin='anonymous' referrerpolicy="no-referrer"></script> <script src='https://cdnjs.cloudflare.com/ajax/libs/less.js/4.1.3/less.min.js' integrity='sha512-6gUGqd/zBCrEKbJqPI7iINc61jlOfH5A+SluY15IkNO1o4qP1DEYjQBewTB4l0U4ihXZdupg8Mb77VxqE+37dg==' crossorigin='anonymous' referrerpolicy="no-referrer"></script>
{% else %} {% else %}
<link rel="stylesheet" href="{% static 'allianceauth/css/themes/flatly/flatly.min.css' %}"/> <link rel="stylesheet" href="{% static 'allianceauth/css/themes/flatly/flatly.min.css' %}">
{% endif %} {% endif %}
{% endif %} {% endif %}
<!-- End Bootstrap CSS --> <!-- End Bootstrap CSS -->

View File

@ -1,3 +1,3 @@
{% load static %} {% load static %}
<link href="{% static 'allianceauth/css/checkbox.css' %}" rel="stylesheet"/> <link href="{% static 'allianceauth/css/checkbox.css' %}" rel="stylesheet">

View File

@ -1,3 +1,3 @@
<!-- Start Datatables-css from cdnjs --> <!-- Start Datatables-css from cdnjs -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/datatables.net-bs5/1.13.4/dataTables.bootstrap5.min.css" integrity="sha512-zY8EbjNubt5sVVeNIxLQuU6lrDn0zYpaxCtS6mBBaqQREH1ZNQLdUxhHZjPaZhrw1CbEZkNdShEbIInJxzs9dQ==" crossorigin="anonymous" referrerpolicy="no-referrer" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/datatables.net-bs5/1.13.4/dataTables.bootstrap5.min.css" integrity="sha512-zY8EbjNubt5sVVeNIxLQuU6lrDn0zYpaxCtS6mBBaqQREH1ZNQLdUxhHZjPaZhrw1CbEZkNdShEbIInJxzs9dQ==" crossorigin="anonymous" referrerpolicy="no-referrer">
<!-- End Datatables-css from cdnjs --> <!-- End Datatables-css from cdnjs -->

View File

@ -1,3 +1,3 @@
<!-- Start Datatables-css from cdnjs --> <!-- Start Datatables-css from cdnjs -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/datatables.net-bs/1.13.4/dataTables.bootstrap.min.css" integrity="sha512-LNQbjsbyJFucRxb1nbmwGxOlsO3ttrO7sE9mHMsbVCXakH/sUYbvfGveW800lXcbR2GMgpL1dDaY1xBv1jFDZw==" crossorigin="anonymous" referrerpolicy="no-referrer" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/datatables.net-bs/1.13.4/dataTables.bootstrap.min.css" integrity="sha512-LNQbjsbyJFucRxb1nbmwGxOlsO3ttrO7sE9mHMsbVCXakH/sUYbvfGveW800lXcbR2GMgpL1dDaY1xBv1jFDZw==" crossorigin="anonymous" referrerpolicy="no-referrer">
<!-- End Datatables-css from cdnjs --> <!-- End Datatables-css from cdnjs -->

View File

@ -1,3 +1,3 @@
<!-- Start FontAwesome CSS from cdnjs --> <!-- Start FontAwesome CSS from cdnjs -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" integrity="sha512-iecdLmaskl7CVkqkXNQ/ZH/XLlvWZOJyj7Yy7tcenmpD1ypASozpmT/E0iPtmFIB46ZmdtAc9eNBvH0H/ZpiBw==" crossorigin="anonymous" referrerpolicy="no-referrer" /> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" integrity="sha512-iecdLmaskl7CVkqkXNQ/ZH/XLlvWZOJyj7Yy7tcenmpD1ypASozpmT/E0iPtmFIB46ZmdtAc9eNBvH0H/ZpiBw==" crossorigin="anonymous" referrerpolicy="no-referrer">
<!-- End FontAwesome CSS from cdnjs --> <!-- End FontAwesome CSS from cdnjs -->

View File

@ -1,3 +1,3 @@
<!-- Start jQuery-DateTimePicker CSS from cdnjs --> <!-- Start jQuery-DateTimePicker CSS from cdnjs -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.20/jquery.datetimepicker.min.css" integrity="sha512-f0tzWhCwVFS3WeYaofoLWkTP62ObhewQ1EZn65oSYDZUg1+CyywGKkWzm8BxaJj5HGKI72PnMH9jYyIFz+GH7g==" crossorigin="anonymous" referrerpolicy="no-referrer"/> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.20/jquery.datetimepicker.min.css" integrity="sha512-f0tzWhCwVFS3WeYaofoLWkTP62ObhewQ1EZn65oSYDZUg1+CyywGKkWzm8BxaJj5HGKI72PnMH9jYyIFz+GH7g==" crossorigin="anonymous" referrerpolicy="no-referrer">
<!-- End jQuery-DateTimePicker CSS from cdnjs --> <!-- End jQuery-DateTimePicker CSS from cdnjs -->

View File

@ -1,5 +1,5 @@
{% load static %} {% load static %}
<!-- Start jQuery UI CSS from Alliance Auth --> <!-- Start jQuery UI CSS from Alliance Auth -->
<!-- CDNs all contain theme.css, which is not supposed to be in the base CSS, Which is why this is uniquely bundled in not using a CDN --> <!-- CDNs all contain theme.css, which is not supposed to be in the base CSS, Which is why this is uniquely bundled in not using a CDN -->
<link rel="stylesheet" href="{% static 'allianceauth/js/jquery-ui/1.13.2/css/jquery-ui.min.css' %}" integrity="VEqAhOZvZrx/WaxlpMoLvZDSLeLNYhkL5LU2R4/ihPJb/+qkGoMrA15SqEGtI+PCLgKwCDiby7tgdvdiAZkJGg==" crossorigin="anonymous" referrerpolicy="no-referrer"/> <link rel="stylesheet" href="{% static 'allianceauth/js/jquery-ui/1.13.2/css/jquery-ui.min.css' %}" integrity="VEqAhOZvZrx/WaxlpMoLvZDSLeLNYhkL5LU2R4/ihPJb/+qkGoMrA15SqEGtI+PCLgKwCDiby7tgdvdiAZkJGg==" crossorigin="anonymous" referrerpolicy="no-referrer">
<!-- End jQuery UI CSS from aa-gdpr --> <!-- End jQuery UI CSS from aa-gdpr -->

View File

@ -1,5 +1,5 @@
<!-- Start Moment.js from cdnjs --> <!-- Start Moment.js from cdnjs -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.4/moment.min.js" integrity="sha512-CryKbMe7sjSCDPl18jtJI5DR5jtkUWxPXWaLCst6QjH8wxDexfRJic2WRmRXmstr2Y8SxDDWuBO6CQC6IE4KTA==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.4/moment.min.js" integrity="sha512-+H4iLjY3JsKiF2V6N366in5IQHj2uEsGV7Pp/GRcm0fn76aPAk5V8xB6n8fQhhSonTqTXs/klFz4D0GIn6Br9g==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
{% if locale and LANGUAGE_CODE != 'en' %} {% if locale and LANGUAGE_CODE != 'en' %}
<!-- Moment.JS Not EN-en --> <!-- Moment.JS Not EN-en -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.4/locale/{{ LANGUAGE_CODE }}.js" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.4/locale/{{ LANGUAGE_CODE }}.js" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

View File

@ -1,3 +1,3 @@
<!-- Start X-editable CSS from cdnjs --> <!-- Start X-editable CSS from cdnjs -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/x-editable/1.5.1/bootstrap3-editable/css/bootstrap-editable.css" integrity="sha512-e0rbO6UJET0zDdXOHjwc6D44UpeKumn7cU7XR/fa4S0/Jso0bZqcCqlIF6mtvcimMbf846mkv8aSWFnTwABr/g==" crossorigin="anonymous" referrerpolicy="no-referrer"/> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/x-editable/1.5.1/bootstrap3-editable/css/bootstrap-editable.css" integrity="sha512-e0rbO6UJET0zDdXOHjwc6D44UpeKumn7cU7XR/fa4S0/Jso0bZqcCqlIF6mtvcimMbf846mkv8aSWFnTwABr/g==" crossorigin="anonymous" referrerpolicy="no-referrer">
<!-- End X-editable CSS from cdnjs --> <!-- End X-editable CSS from cdnjs -->

View File

@ -4,7 +4,7 @@
{% include theme.css_template %} {% include theme.css_template %}
{% else %} {% else %}
{% for x in theme.css %} {% for x in theme.css %}
<link rel="stylesheet" href="{{ x.url }}" integrity="{{ x.integrity }}" crossorigin="anonymous" referrerpolicy="no-referrer"/> <link rel="stylesheet" href="{{ x.url }}" integrity="{{ x.integrity }}" crossorigin="anonymous" referrerpolicy="no-referrer">
{% endfor %} {% endfor %}
{% endif %} {% endif %}
<!-- allianceauth.theme.{{ theme.name }} CSS Ends --> <!-- allianceauth.theme.{{ theme.name }} CSS Ends -->

View File

@ -6,50 +6,52 @@
<div class="card-body"> <div class="card-body">
<h4 class="card-title text-center">{% translate "Upcoming Timers" %}</h4> <h4 class="card-title text-center">{% translate "Upcoming Timers" %}</h4>
<div class="card-body"> <div class="card-body">
<div style="height: 300px;overflow:-moz-scrollbars-vertical;overflow-y:auto;"> <div style="height: 300px; overflow-y:auto;">
<table class="table" style="--bs-table-bg: transparent;"> <table class="table" style="--bs-table-bg: transparent;">
<thead> <thead>
<th class="text-center">{% translate "Details" %}</th> <tr>
<th class="text-center">{% translate "Timer" %}</th> <th class="text-center">{% translate "Details" %}</th>
<th class="text-center">{% translate "Type" %}</th> <th class="text-center">{% translate "Timer" %}</th>
<th class="text-center">{% translate "System" %}</th> <th class="text-center">{% translate "Type" %}</th>
<th class="text-center">{% translate "Eve Time" %}</th> <th class="text-center">{% translate "System" %}</th>
<th class="text-center">{% translate "Eve Time" %}</th>
</tr>
</thead> </thead>
<tbody> <tbody>
{% for timer in timers %} {% for timer in timers %}
<tr> <tr>
<td style="" class="text-center"> <td style="" class="text-center">
{{ timer.details }} {{ timer.details }}
</td> </td>
<td style="" class="text-center"> <td style="" class="text-center">
{{ timer.get_timer_type_display }} {{ timer.get_timer_type_display }}
</td> </td>
<td class="text-center" nowrap> <td class="text-center" nowrap>
{% if timer.objective == "Hostile" %} {% if timer.objective == "Hostile" %}
<div class="badge badge-danger"> <div class="badge bg-danger">
{% translate "Hostile" %} {% translate "Hostile" %}
</div> </div>
{% endif %} {% endif %}
{% if timer.objective == "Friendly" %} {% if timer.objective == "Friendly" %}
<div class="badge badge-primary"> <div class="badge bg-primary">
{% translate "Friendly" %} {% translate "Friendly" %}
</div> </div>
{% endif %} {% endif %}
{% if timer.objective == "Neutral" %} {% if timer.objective == "Neutral" %}
<div class="badge badge-default"> <div class="badge bg-default">
{% translate "Neutral" %} {% translate "Neutral" %}
</div> </div>
{% endif %} {% endif %}
</td> </td>
<td class="text-center"><a href="{{ timer.system|dotlan_solar_system_url }}"> <td class="text-center"><a href="{{ timer.system|dotlan_solar_system_url }}">
{{ timer.system }} {{ timer.planet_moon }} {{ timer.system }} {{ timer.planet_moon }}
</a> </a>
</td> </td>
<td class="text-center" nowrap>{{ timer.eve_time | date:"Y-m-d H:i" }}</td> <td class="text-center" nowrap>{{ timer.eve_time | date:"Y-m-d H:i" }}</td>
</tr> </tr>
{% endfor %} {% endfor %}
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>

View File

@ -18,10 +18,10 @@
</div> </div>
</h1> </h1>
<div class="col-lg-12 text-center"> <div class="col-lg-12 text-center">
<div class="badge badge-info text-start"> <div class="badge bg-info text-start">
<b>{% translate "Current Eve Time:" %} </b> <b>{% translate "Current Eve Time:" %} </b>
</div> </div>
<strong class="badge badge-info text-start" id="current-time"></strong> <strong class="badge bg-info text-start" id="current-time"></strong>
</div> </div>
{% if corp_timers %} {% if corp_timers %}
<h4><b>{% translate "Corp Timers" %}</b></h4> <h4><b>{% translate "Corp Timers" %}</b></h4>
@ -53,17 +53,17 @@
</td> </td>
<td class="text-center"> <td class="text-center">
{% if timer.objective == "Hostile" %} {% if timer.objective == "Hostile" %}
<div class="badge badge-danger"> <div class="badge bg-danger">
{% translate "Hostile" %} {% translate "Hostile" %}
</div> </div>
{% endif %} {% endif %}
{% if timer.objective == "Friendly" %} {% if timer.objective == "Friendly" %}
<div class="badge badge-primary"> <div class="badge bg-primary">
{% translate "Friendly" %} {% translate "Friendly" %}
</div> </div>
{% endif %} {% endif %}
{% if timer.objective == "Neutral" %} {% if timer.objective == "Neutral" %}
<div class="badge badge-default"> <div class="badge bg-default">
{% translate "Neutral" %} {% translate "Neutral" %}
</div> </div>
{% endif %} {% endif %}
@ -74,97 +74,97 @@
</td> </td>
<td class="text-center"> <td class="text-center">
{% if timer.structure == "POCO" %} {% if timer.structure == "POCO" %}
<div class="badge badge-info"> <div class="badge bg-info">
POCO POCO
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "I-HUB" %} {% if timer.structure == "I-HUB" %}
<div class="badge badge-warning"> <div class="badge bg-warning">
I-HUB I-HUB
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "TCU" %} {% if timer.structure == "TCU" %}
<div class="badge badge-danger"> <div class="badge bg-danger">
TCU TCU
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "POS[S]" %} {% if timer.structure == "POS[S]" %}
<div class="badge badge-info"> <div class="badge bg-info">
POS [S] POS [S]
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "POS[M]" %} {% if timer.structure == "POS[M]" %}
<div class="badge badge-info"> <div class="badge bg-info">
POS [M] POS [M]
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "POS[L]" %} {% if timer.structure == "POS[L]" %}
<div class="badge badge-info"> <div class="badge bg-info">
POS [L] POS [L]
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Citadel[M]" or timer.structure == "Astrahus" %} {% if timer.structure == "Citadel[M]" or timer.structure == "Astrahus" %}
<div class="badge badge-danger"> <div class="badge bg-danger">
Astrahus Astrahus
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Citadel[L]" or timer.structure == "Fortizar" %} {% if timer.structure == "Citadel[L]" or timer.structure == "Fortizar" %}
<div class="badge badge-danger"> <div class="badge bg-danger">
Fortizar Fortizar
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Citadel[XL]" or timer.structure == "Keepstar" %} {% if timer.structure == "Citadel[XL]" or timer.structure == "Keepstar" %}
<div class="badge badge-danger"> <div class="badge bg-danger">
Keepstar Keepstar
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Engineering Complex[M]" or timer.structure == "Raitaru" %} {% if timer.structure == "Engineering Complex[M]" or timer.structure == "Raitaru" %}
<div class="badge badge-warning"> <div class="badge bg-warning">
Raitaru Raitaru
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Engineering Complex[L]" or timer.structure == "Azbel" %} {% if timer.structure == "Engineering Complex[L]" or timer.structure == "Azbel" %}
<div class="badge badge-warning"> <div class="badge bg-warning">
Azbel Azbel
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Engineering Complex[XL]" or timer.structure == "Sotiyo" %} {% if timer.structure == "Engineering Complex[XL]" or timer.structure == "Sotiyo" %}
<div class="badge badge-warning"> <div class="badge bg-warning">
Sotiyo Sotiyo
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Refinery[M]" or timer.structure == "Athanor" %} {% if timer.structure == "Refinery[M]" or timer.structure == "Athanor" %}
<div class="badge badge-warning"> <div class="badge bg-warning">
Athanor Athanor
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Refinery[L]" or timer.structure == "Tatara"%} {% if timer.structure == "Refinery[L]" or timer.structure == "Tatara"%}
<div class="badge badge-warning"> <div class="badge bg-warning">
Tatara Tatara
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Cyno Beacon" or timer.structure == "Pharolux Cyno Beacon" %} {% if timer.structure == "Cyno Beacon" or timer.structure == "Pharolux Cyno Beacon" %}
<div class="badge badge-warning"> <div class="badge bg-warning">
Cyno Beacon Cyno Beacon
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Cyno Jammer" or timer.structure == "Tenebrex Cyno Jammer" %} {% if timer.structure == "Cyno Jammer" or timer.structure == "Tenebrex Cyno Jammer" %}
<div class="badge badge-warning"> <div class="badge bg-warning">
Tenebrex Cyno Jammer Tenebrex Cyno Jammer
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Jump Gate" or timer.structure == "Ansiblex Jump Gate" %} {% if timer.structure == "Jump Gate" or timer.structure == "Ansiblex Jump Gate" %}
<div class="badge badge-warning"> <div class="badge bg-warning">
Ansiblex Jump Gate Ansiblex Jump Gate
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Moon Mining Cycle" %} {% if timer.structure == "Moon Mining Cycle" %}
<div class="badge badge-success"> <div class="badge bg-success">
Moon Mining Cycle Moon Mining Cycle
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Other" %} {% if timer.structure == "Other" %}
<div class="badge badge-default"> <div class="badge bg-default">
Other Other
</div> </div>
{% endif %} {% endif %}
@ -220,17 +220,17 @@
</td> </td>
<td class="text-center"> <td class="text-center">
{% if timer.objective == "Hostile" %} {% if timer.objective == "Hostile" %}
<div class="badge badge-danger"> <div class="badge bg-danger">
{% translate "Hostile" %} {% translate "Hostile" %}
</div> </div>
{% endif %} {% endif %}
{% if timer.objective == "Friendly" %} {% if timer.objective == "Friendly" %}
<div class="badge badge-primary"> <div class="badge bg-primary">
{% translate "Friendly" %} {% translate "Friendly" %}
</div> </div>
{% endif %} {% endif %}
{% if timer.objective == "Neutral" %} {% if timer.objective == "Neutral" %}
<div class="badge badge-default"> <div class="badge bg-default">
{% translate "Neutral" %} {% translate "Neutral" %}
</div> </div>
{% endif %} {% endif %}
@ -242,97 +242,97 @@
</td> </td>
<td class="text-center"> <td class="text-center">
{% if timer.structure == "POCO" %} {% if timer.structure == "POCO" %}
<div class="badge badge-info"> <div class="badge bg-info">
POCO POCO
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "I-HUB" %} {% if timer.structure == "I-HUB" %}
<div class="badge badge-warning"> <div class="badge bg-warning">
I-HUB I-HUB
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "TCU" %} {% if timer.structure == "TCU" %}
<div class="badge badge-danger"> <div class="badge bg-danger">
TCU TCU
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "POS[S]" %} {% if timer.structure == "POS[S]" %}
<div class="badge badge-info"> <div class="badge bg-info">
POS [S] POS [S]
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "POS[M]" %} {% if timer.structure == "POS[M]" %}
<div class="badge badge-info"> <div class="badge bg-info">
POS [M] POS [M]
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "POS[L]" %} {% if timer.structure == "POS[L]" %}
<div class="badge badge-info"> <div class="badge bg-info">
POS [L] POS [L]
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Citadel[M]" or timer.structure == "Astrahus" %} {% if timer.structure == "Citadel[M]" or timer.structure == "Astrahus" %}
<div class="badge badge-danger"> <div class="badge bg-danger">
Astrahus Astrahus
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Citadel[L]" or timer.structure == "Fortizar" %} {% if timer.structure == "Citadel[L]" or timer.structure == "Fortizar" %}
<div class="badge badge-danger"> <div class="badge bg-danger">
Fortizar Fortizar
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Citadel[XL]" or timer.structure == "Keepstar" %} {% if timer.structure == "Citadel[XL]" or timer.structure == "Keepstar" %}
<div class="badge badge-danger"> <div class="badge bg-danger">
Keepstar Keepstar
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Engineering Complex[M]" or timer.structure == "Raitaru" %} {% if timer.structure == "Engineering Complex[M]" or timer.structure == "Raitaru" %}
<div class="badge badge-warning"> <div class="badge bg-warning">
Raitaru Raitaru
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Engineering Complex[L]" or timer.structure == "Azbel" %} {% if timer.structure == "Engineering Complex[L]" or timer.structure == "Azbel" %}
<div class="badge badge-warning"> <div class="badge bg-warning">
Azbel Azbel
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Engineering Complex[XL]" or timer.structure == "Sotiyo" %} {% if timer.structure == "Engineering Complex[XL]" or timer.structure == "Sotiyo" %}
<div class="badge badge-warning"> <div class="badge bg-warning">
Sotiyo Sotiyo
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Refinery[M]" or timer.structure == "Athanor" %} {% if timer.structure == "Refinery[M]" or timer.structure == "Athanor" %}
<div class="badge badge-warning"> <div class="badge bg-warning">
Athanor Athanor
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Refinery[L]" or timer.structure == "Tatara" %} {% if timer.structure == "Refinery[L]" or timer.structure == "Tatara" %}
<div class="badge badge-warning"> <div class="badge bg-warning">
Tatara Tatara
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Cyno Beacon" or timer.structure == "Pharolux Cyno Beacon" %} {% if timer.structure == "Cyno Beacon" or timer.structure == "Pharolux Cyno Beacon" %}
<div class="badge badge-warning"> <div class="badge bg-warning">
Pharolux Cyno Beacon Pharolux Cyno Beacon
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Cyno Jammer" or timer.structure == "Tenebrex Cyno Jammer" %} {% if timer.structure == "Cyno Jammer" or timer.structure == "Tenebrex Cyno Jammer" %}
<div class="badge badge-warning"> <div class="badge bg-warning">
Tenebrex Cyno Jammer Tenebrex Cyno Jammer
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Jump Gate" or timer.structure == "Ansiblex Jump Gate" %} {% if timer.structure == "Jump Gate" or timer.structure == "Ansiblex Jump Gate" %}
<div class="badge badge-warning"> <div class="badge bg-warning">
Ansiblex Jump Gate Ansiblex Jump Gate
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Moon Mining Cycle" %} {% if timer.structure == "Moon Mining Cycle" %}
<div class="badge badge-success"> <div class="badge bg-success">
Moon Mining Cycle Moon Mining Cycle
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Other" %} {% if timer.structure == "Other" %}
<div class="badge badge-default"> <div class="badge bg-default">
Other Other
</div> </div>
{% endif %} {% endif %}
@ -393,17 +393,17 @@
</td> </td>
<td class="text-center"> <td class="text-center">
{% if timer.objective == "Hostile" %} {% if timer.objective == "Hostile" %}
<div class="badge badge-danger"> <div class="badge bg-danger">
{% translate "Hostile" %} {% translate "Hostile" %}
</div> </div>
{% endif %} {% endif %}
{% if timer.objective == "Friendly" %} {% if timer.objective == "Friendly" %}
<div class="badge badge-primary"> <div class="badge bg-primary">
{% translate "Friendly" %} {% translate "Friendly" %}
</div> </div>
{% endif %} {% endif %}
{% if timer.objective == "Neutral" %} {% if timer.objective == "Neutral" %}
<div class="badge badge-default"> <div class="badge bg-default">
{% translate "Neutral" %} {% translate "Neutral" %}
</div> </div>
{% endif %} {% endif %}
@ -415,97 +415,97 @@
</td> </td>
<td class="text-center"> <td class="text-center">
{% if timer.structure == "POCO" %} {% if timer.structure == "POCO" %}
<div class="badge badge-info"> <div class="badge bg-info">
POCO POCO
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "I-HUB" %} {% if timer.structure == "I-HUB" %}
<div class="badge badge-warning"> <div class="badge bg-warning">
I-HUB I-HUB
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "TCU" %} {% if timer.structure == "TCU" %}
<div class="badge badge-danger"> <div class="badge bg-danger">
TCU TCU
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "POS[S]" %} {% if timer.structure == "POS[S]" %}
<div class="badge badge-info"> <div class="badge bg-info">
POS [S] POS [S]
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "POS[M]" %} {% if timer.structure == "POS[M]" %}
<div class="badge badge-info"> <div class="badge bg-info">
POS [M] POS [M]
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "POS[L]" %} {% if timer.structure == "POS[L]" %}
<div class="badge badge-info"> <div class="badge bg-info">
POS [L] POS [L]
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Citadel[M]" or timer.structure == "Astrahus" %} {% if timer.structure == "Citadel[M]" or timer.structure == "Astrahus" %}
<div class="badge badge-danger"> <div class="badge bg-danger">
Astrahus Astrahus
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Citadel[L]" or timer.structure == "Fortizar" %} {% if timer.structure == "Citadel[L]" or timer.structure == "Fortizar" %}
<div class="badge badge-danger"> <div class="badge bg-danger">
Fortizar Fortizar
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Citadel[XL]" or timer.structure == "Keepstar" %} {% if timer.structure == "Citadel[XL]" or timer.structure == "Keepstar" %}
<div class="badge badge-danger"> <div class="badge bg-danger">
Keepstar Keepstar
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Engineering Complex[M]" or timer.structure == "Raitaru" %} {% if timer.structure == "Engineering Complex[M]" or timer.structure == "Raitaru" %}
<div class="badge badge-warning"> <div class="badge bg-warning">
Raitaru Raitaru
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Engineering Complex[L]" or timer.structure == "Azbel" %} {% if timer.structure == "Engineering Complex[L]" or timer.structure == "Azbel" %}
<div class="badge badge-warning"> <div class="badge bg-warning">
Azbel Azbel
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Engineering Complex[XL]" or timer.structure == "Sotiyo" %} {% if timer.structure == "Engineering Complex[XL]" or timer.structure == "Sotiyo" %}
<div class="badge badge-warning"> <div class="badge bg-warning">
Sotiyo Sotiyo
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Refinery[M]" or timer.structure == "Athanor" %} {% if timer.structure == "Refinery[M]" or timer.structure == "Athanor" %}
<div class="badge badge-warning"> <div class="badge bg-warning">
Athanor Athanor
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Refinery[L]" or timer.structure == "Tatara" %} {% if timer.structure == "Refinery[L]" or timer.structure == "Tatara" %}
<div class="badge badge-warning"> <div class="badge bg-warning">
Tatara Tatara
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Cyno Beacon" or timer.structure == "Pharolux Cyno Beacon" %} {% if timer.structure == "Cyno Beacon" or timer.structure == "Pharolux Cyno Beacon" %}
<div class="badge badge-warning"> <div class="badge bg-warning">
Pharolux Cyno Beacon Pharolux Cyno Beacon
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Cyno Jammer" or timer.structure == "Tenebrex Cyno Jammer" %} {% if timer.structure == "Cyno Jammer" or timer.structure == "Tenebrex Cyno Jammer" %}
<div class="badge badge-warning"> <div class="badge bg-warning">
Tenebrex Cyno Jammer Tenebrex Cyno Jammer
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Jump Gate" or timer.structure == "Ansiblex Jump Gate" %} {% if timer.structure == "Jump Gate" or timer.structure == "Ansiblex Jump Gate" %}
<div class="badge badge-warning"> <div class="badge bg-warning">
Ansiblex Jump Gate Ansiblex Jump Gate
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Moon Mining Cycle" %} {% if timer.structure == "Moon Mining Cycle" %}
<div class="badge badge-success"> <div class="badge bg-success">
Moon Mining Cycle Moon Mining Cycle
</div> </div>
{% endif %} {% endif %}
{% if timer.structure == "Other" %} {% if timer.structure == "Other" %}
<div class="badge badge-default"> <div class="badge bg-default">
Other Other
</div> </div>
{% endif %} {% endif %}

View File

@ -35,6 +35,7 @@ dependencies = [
"beautifulsoup4", "beautifulsoup4",
"celery-once>=3.0.1", "celery-once>=3.0.1",
"celery>=5.2.0,<6", "celery>=5.2.0,<6",
'django-bootstrap5>=23.3',
"django-bootstrap-form", "django-bootstrap-form",
"django-celery-beat>=2.3.0", "django-celery-beat>=2.3.0",
"django-esi>=4.0.1", "django-esi>=4.0.1",