mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2026-02-06 07:06:19 +01:00
Compare commits
41 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
08e9676760 | ||
|
|
15ae737522 | ||
|
|
50ec9e563e | ||
|
|
cb40649f8b | ||
|
|
bccead0881 | ||
|
|
35ae710624 | ||
|
|
75de4518f2 | ||
|
|
bfcdfea6c8 | ||
|
|
471553fa88 | ||
|
|
db59f5f69b | ||
|
|
1b5413646e | ||
|
|
0337d2517c | ||
|
|
87e6eb9688 | ||
|
|
7b8c246ef8 | ||
|
|
a268a8980a | ||
|
|
3b516c338e | ||
|
|
9952685805 | ||
|
|
2f59c8df22 | ||
|
|
6cd0a42791 | ||
|
|
4c42153bfd | ||
|
|
603bd9c37c | ||
|
|
87c0c3ac73 | ||
|
|
8a91e7f6ac | ||
|
|
281dbdbb01 | ||
|
|
8980d8d32f | ||
|
|
9d6cf9a62e | ||
|
|
0fabb2b368 | ||
|
|
9801ca0314 | ||
|
|
fd86b26b39 | ||
|
|
b0dbef1587 | ||
|
|
a6e60bc23b | ||
|
|
137e8a876d | ||
|
|
fe9538253f | ||
|
|
edda2c248e | ||
|
|
62275639e3 | ||
|
|
d0c68b82f4 | ||
|
|
78b5953bdf | ||
|
|
25e565b099 | ||
|
|
1fe0f78ad7 | ||
|
|
fc8b68156f | ||
|
|
b47cd197ce |
@@ -18,10 +18,6 @@ formats: all
|
|||||||
|
|
||||||
# Optionally set the version of Python and requirements required to build your docs
|
# Optionally set the version of Python and requirements required to build your docs
|
||||||
python:
|
python:
|
||||||
version: 3.7
|
version: 3.7
|
||||||
install:
|
install:
|
||||||
- method: pip
|
- requirements: docs/requirements.txt
|
||||||
path: .
|
|
||||||
extra_requirements:
|
|
||||||
- testing
|
|
||||||
system_packages: true
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
# This will make sure the app is always imported when
|
# This will make sure the app is always imported when
|
||||||
# Django starts so that shared_task will use this app.
|
# Django starts so that shared_task will use this app.
|
||||||
|
|
||||||
__version__ = '2.8.0a2'
|
__version__ = '2.8.1'
|
||||||
__title__ = 'Alliance Auth'
|
__title__ = 'Alliance Auth'
|
||||||
__url__ = 'https://gitlab.com/allianceauth/allianceauth'
|
__url__ = 'https://gitlab.com/allianceauth/allianceauth'
|
||||||
NAME = '%s v%s' % (__title__, __version__)
|
NAME = '%s v%s' % (__title__, __version__)
|
||||||
|
|||||||
@@ -139,6 +139,11 @@ class RegistrationView(BaseRegistrationView):
|
|||||||
email_subject_template = "registration/activation_email_subject.txt"
|
email_subject_template = "registration/activation_email_subject.txt"
|
||||||
success_url = reverse_lazy('registration_complete')
|
success_url = reverse_lazy('registration_complete')
|
||||||
|
|
||||||
|
def get_success_url(self, user):
|
||||||
|
if not getattr(settings, 'REGISTRATION_VERIFY_EMAIL', True):
|
||||||
|
return reverse_lazy('authentication:dashboard')
|
||||||
|
return super().get_success_url(user)
|
||||||
|
|
||||||
def dispatch(self, request, *args, **kwargs):
|
def dispatch(self, request, *args, **kwargs):
|
||||||
# We're storing a key in the session to pass user information from OAuth response. Make sure it's there.
|
# We're storing a key in the session to pass user information from OAuth response. Make sure it's there.
|
||||||
if not self.request.session.get('registration_uid', None) or not User.objects.filter(
|
if not self.request.session.get('registration_uid', None) or not User.objects.filter(
|
||||||
@@ -208,5 +213,5 @@ def activation_complete(request):
|
|||||||
|
|
||||||
|
|
||||||
def registration_closed(request):
|
def registration_closed(request):
|
||||||
messages.error(request, _('Registraion of new accounts it not allowed at this time.'))
|
messages.error(request, _('Registration of new accounts is not allowed at this time.'))
|
||||||
return redirect('authentication:login')
|
return redirect('authentication:login')
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ from jsonschema.exceptions import RefResolutionError
|
|||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from esi.clients import esi_client_factory
|
from esi.clients import esi_client_factory
|
||||||
|
|
||||||
|
from allianceauth import __version__
|
||||||
|
|
||||||
|
|
||||||
SWAGGER_SPEC_PATH = os.path.join(os.path.dirname(
|
SWAGGER_SPEC_PATH = os.path.join(os.path.dirname(
|
||||||
os.path.abspath(__file__)), 'swagger.json'
|
os.path.abspath(__file__)), 'swagger.json'
|
||||||
@@ -166,7 +168,7 @@ class EveSwaggerProvider(EveProvider):
|
|||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
self._client = esi_client_factory(
|
self._client = esi_client_factory(
|
||||||
token=token, spec_file=SWAGGER_SPEC_PATH
|
token=token, spec_file=SWAGGER_SPEC_PATH, app_info_text=("allianceauth v" + __version__)
|
||||||
)
|
)
|
||||||
except (HTTPError, RefResolutionError):
|
except (HTTPError, RefResolutionError):
|
||||||
logger.exception(
|
logger.exception(
|
||||||
@@ -182,7 +184,7 @@ class EveSwaggerProvider(EveProvider):
|
|||||||
def client(self):
|
def client(self):
|
||||||
if self._client is None:
|
if self._client is None:
|
||||||
self._client = esi_client_factory(
|
self._client = esi_client_factory(
|
||||||
token=self._token, spec_file=SWAGGER_SPEC_PATH
|
token=self._token, spec_file=SWAGGER_SPEC_PATH, app_info_text=("allianceauth v" + __version__)
|
||||||
)
|
)
|
||||||
return self._client
|
return self._client
|
||||||
|
|
||||||
|
|||||||
@@ -592,3 +592,12 @@ class TestEveSwaggerProvider(TestCase):
|
|||||||
self.assertTrue(mock_esi_client_factory.called)
|
self.assertTrue(mock_esi_client_factory.called)
|
||||||
self.assertIsNotNone(my_provider._client)
|
self.assertIsNotNone(my_provider._client)
|
||||||
self.assertEqual(my_client, 'my_client')
|
self.assertEqual(my_client, 'my_client')
|
||||||
|
|
||||||
|
@patch(MODULE_PATH + '.__version__', '1.0.0')
|
||||||
|
def test_user_agent_header(self):
|
||||||
|
my_provider = EveSwaggerProvider()
|
||||||
|
my_client = my_provider.client
|
||||||
|
operation = my_client.Status.get_status()
|
||||||
|
self.assertEqual(
|
||||||
|
operation.future.request.headers['User-Agent'], 'allianceauth v1.0.0'
|
||||||
|
)
|
||||||
|
|||||||
@@ -9,15 +9,20 @@ from .managers import GroupManager
|
|||||||
|
|
||||||
class GroupManagementMenuItem(MenuItemHook):
|
class GroupManagementMenuItem(MenuItemHook):
|
||||||
""" This class ensures only authorized users will see the menu entry """
|
""" This class ensures only authorized users will see the menu entry """
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
# setup menu entry for sidebar
|
# setup menu entry for sidebar
|
||||||
MenuItemHook.__init__(
|
MenuItemHook.__init__(
|
||||||
self,
|
self,
|
||||||
text=_('Group Management'),
|
text=_("Group Management"),
|
||||||
classes='fas fa-users-cog fa-fw',
|
classes="fas fa-users-cog fa-fw",
|
||||||
url_name='groupmanagement:management',
|
url_name="groupmanagement:management",
|
||||||
order=50,
|
order=50,
|
||||||
navactive=['groupmanagement:management']
|
navactive=[
|
||||||
|
"groupmanagement:management", # group requests view
|
||||||
|
"groupmanagement:membership", # group membership view
|
||||||
|
"groupmanagement:audit_log", # group audit log view
|
||||||
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
def render(self, request):
|
def render(self, request):
|
||||||
@@ -25,14 +30,14 @@ class GroupManagementMenuItem(MenuItemHook):
|
|||||||
app_count = GroupManager.pending_requests_count_for_user(request.user)
|
app_count = GroupManager.pending_requests_count_for_user(request.user)
|
||||||
self.count = app_count if app_count and app_count > 0 else None
|
self.count = app_count if app_count and app_count > 0 else None
|
||||||
return MenuItemHook.render(self, request)
|
return MenuItemHook.render(self, request)
|
||||||
return ''
|
return ""
|
||||||
|
|
||||||
|
|
||||||
@hooks.register('menu_item_hook')
|
@hooks.register("menu_item_hook")
|
||||||
def register_menu():
|
def register_menu():
|
||||||
return GroupManagementMenuItem()
|
return GroupManagementMenuItem()
|
||||||
|
|
||||||
|
|
||||||
@hooks.register('url_hook')
|
@hooks.register("url_hook")
|
||||||
def register_urls():
|
def register_urls():
|
||||||
return UrlHook(urls, 'group', r'^group/')
|
return UrlHook(urls, "group", r"^groups/")
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
# Generated by Django 3.1.2 on 2020-10-25 11:09
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
("groupmanagement", "0014_auto_20200918_1412"),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name="authgroup",
|
||||||
|
name="description",
|
||||||
|
field=models.TextField(
|
||||||
|
blank=True,
|
||||||
|
help_text="Short description <i>(max. 512 characters)</i> of the group shown to users.",
|
||||||
|
max_length=512,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -107,7 +107,7 @@ class AuthGroup(models.Model):
|
|||||||
help_text="States listed here will have the ability to join this group provided "
|
help_text="States listed here will have the ability to join this group provided "
|
||||||
"they have the proper permissions.")
|
"they have the proper permissions.")
|
||||||
|
|
||||||
description = models.CharField(max_length=512, blank=True, help_text="Description of the group shown to users.")
|
description = models.TextField(max_length=512, blank=True, help_text="Short description <i>(max. 512 characters)</i> of the group shown to users.")
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.group.name
|
return self.group.name
|
||||||
|
|||||||
@@ -8,48 +8,55 @@
|
|||||||
<div class="col-lg-12">
|
<div class="col-lg-12">
|
||||||
<br>
|
<br>
|
||||||
{% include 'groupmanagement/menu.html' %}
|
{% include 'groupmanagement/menu.html' %}
|
||||||
|
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
{{ group }} - {% trans 'Audit Log' %}
|
{{ group }} - {% trans "Audit Log" %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<p>
|
<p>
|
||||||
<a class="btn btn-default" href="{% url 'groupmanagement:membership' %}" role="button">
|
<a class="btn btn-default" href="{% url 'groupmanagement:membership' %}" role="button">
|
||||||
{% trans "Back" %}
|
{% trans "Back" %}
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
{% if entries %}
|
{% if entries %}
|
||||||
<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 class="text-center" scope="col">{% trans "Date/Time" %}</th>
|
<th scope="col">{% trans "Date/Time" %}</th>
|
||||||
<th class="text-center" scope="col">{% trans "Requestor" %}</th>
|
<th scope="col">{% trans "Requestor" %}</th>
|
||||||
<th class="text-center" scope="col">{% trans "Character" %}</th>
|
<th scope="col">{% trans "Character" %}</th>
|
||||||
<th class="text-center" scope="col">{% trans "Corporation" %}</th>
|
<th scope="col">{% trans "Corporation" %}</th>
|
||||||
<th class="text-center" scope="col">{% trans "Type" %}</th>
|
<th scope="col">{% trans "Type" %}</th>
|
||||||
<th class="text-center" scope="col">{% trans "Action" %}</th>
|
<th scope="col">{% trans "Action" %}</th>
|
||||||
<th class="text-center" scope="col">{% trans "Actor" %}</th>
|
<th scope="col">{% trans "Actor" %}</th>
|
||||||
</thead>
|
</thead>
|
||||||
|
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for entry in entries %}
|
{% for entry in entries %}
|
||||||
<tr>
|
<tr>
|
||||||
<td class="text-center">{{ entry.date|date:"Y-M-d, H:i" }}</td>
|
<td>{{ entry.date|date:"Y-M-d, H:i" }}</td>
|
||||||
<td class="text-center">{{ entry.requestor }}</td>
|
<td>{{ entry.requestor }}</td>
|
||||||
<td class="text-center">{{ entry.req_char }}</td>
|
<td>{{ entry.req_char }}</td>
|
||||||
<td class="text-center">{{ entry.req_char.corporation_name }}</td>
|
<td>{{ entry.req_char.corporation_name }}</td>
|
||||||
<td class="text-center">{{ entry.type_to_str }}</td>
|
<td>{{ entry.type_to_str }}</td>
|
||||||
|
|
||||||
{% if entry.request_type is None %}
|
{% if entry.request_type is None %}
|
||||||
<td class="text-center"> Removed</td>
|
<td>{% trans "Removed" %}</td>
|
||||||
{% else %}
|
{% else %}
|
||||||
<td class="text-center">{{ entry.action_to_str }}</td>
|
<td>{{ entry.action_to_str }}</td>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<td class="text-center">{{ entry.request_actor }}</td>
|
|
||||||
|
<td>{{ entry.request_actor }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<p class="text-muted">
|
<p class="text-muted">
|
||||||
All times displayed are EVE/UTC.
|
{% trans "All times displayed are EVE/UTC." %}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
@@ -75,28 +82,27 @@
|
|||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block extra_script %}
|
{% block extra_script %}
|
||||||
|
$.fn.dataTable.moment = function(format, locale) {
|
||||||
$.fn.dataTable.moment = function ( format, locale ) {
|
|
||||||
var types = $.fn.dataTable.ext.type;
|
var types = $.fn.dataTable.ext.type;
|
||||||
|
|
||||||
// Add type detection
|
// Add type detection
|
||||||
types.detect.unshift( function ( d ) {
|
types.detect.unshift(function(d) {
|
||||||
return moment( d, format, locale, true ).isValid() ?
|
return moment(d, format, locale, true).isValid() ?
|
||||||
'moment-'+format :
|
'moment-'+format :
|
||||||
null;
|
null;
|
||||||
} );
|
});
|
||||||
|
|
||||||
// Add sorting method - use an integer for the sorting
|
// Add sorting method - use an integer for the sorting
|
||||||
types.order[ 'moment-'+format+'-pre' ] = function ( d ) {
|
types.order[ 'moment-'+format+'-pre' ] = function(d) {
|
||||||
return moment( d, format, locale, true ).unix();
|
return moment(d, format, locale, true).unix();
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
$.fn.dataTable.moment( 'YYYY-MMM-D, HH:mm' );
|
$.fn.dataTable.moment('YYYY-MMM-D, HH:mm');
|
||||||
|
|
||||||
$('#log-entries').DataTable({
|
$('#log-entries').DataTable({
|
||||||
order: [[ 0, 'desc' ], [ 1, 'asc' ] ],
|
order: [[0, 'desc'], [1, 'asc']],
|
||||||
filterDropDown:
|
filterDropDown:
|
||||||
{
|
{
|
||||||
columns: [
|
columns: [
|
||||||
@@ -124,4 +130,3 @@
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|||||||
@@ -14,33 +14,30 @@
|
|||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
{{ group.name }} - {% trans 'Members' %}
|
{{ group.name }} - {% trans 'Members' %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<p>
|
<p>
|
||||||
<a class="btn btn-default" href="{% url 'groupmanagement:membership' %}" role="button">
|
<a class="btn btn-default" href="{% url 'groupmanagement:membership' %}" role="button">
|
||||||
{% trans "Back" %}
|
{% trans "Back" %}
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
{% if group.user_set %}
|
{% if group.user_set %}
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<table class="table table-aa" id="tab_group_members">
|
<table class="table table-aa" id="tab_group_members">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="text-right">{% trans "Portrait" %}</th>
|
<th>{% trans "Character" %}</th>
|
||||||
<th class="text-center">{% trans "Character" %}</th>
|
<th>{% trans "Organization" %}</th>
|
||||||
<th class="text-center">{% trans "Organization" %}</th>
|
<th></th>
|
||||||
<th class="text-center"></th>
|
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for member in members %}
|
{% for member in members %}
|
||||||
<tr>
|
<tr>
|
||||||
<td class="text-right">
|
<td>
|
||||||
{% if member.is_leader %}
|
<img src="{{ member.main_char|character_portrait_url:32 }}" class="img-circle" style="margin-right: 1rem;">
|
||||||
<i class="fas fa-star"></i>
|
|
||||||
{% endif %}
|
|
||||||
<img src="{{ member.main_char|character_portrait_url:32 }}" class="img-circle">
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
{% 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 }}
|
||||||
@@ -48,28 +45,36 @@
|
|||||||
{% else %}
|
{% else %}
|
||||||
{{ member.user.username }}
|
{{ member.user.username }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
{% if member.is_leader %}
|
||||||
|
<i class="fas fa-star" title="{% trans "Group leader" %}" style="margin-left: 1rem;"></i>
|
||||||
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
<td class="text-center">
|
|
||||||
|
<td>
|
||||||
{% if member.main_char %}
|
{% if member.main_char %}
|
||||||
<a href="{{ member.main_char|dotlan_corporation_url }}" target="_blank">
|
<a href="{{ member.main_char|dotlan_corporation_url }}" target="_blank">
|
||||||
{{ member.main_char.corporation_name }}
|
{{ member.main_char.corporation_name }}
|
||||||
</a><br>
|
</a><br>
|
||||||
{{ member.main_char.alliance_name|default_if_none:"" }}
|
{{ member.main_char.alliance_name|default_if_none:"" }}
|
||||||
{% else %}
|
{% else %}
|
||||||
(unknown)
|
{% trans "(unknown)" %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
<td class="text-center">
|
|
||||||
<a href="{% url 'groupmanagement:membership_remove' group.id member.user.id %}" class="btn btn-danger"
|
<td class="text-right">
|
||||||
title="{% trans "Remove from group" %}">
|
<a href="{% url 'groupmanagement:membership_remove' group.id member.user.id %}" class="btn btn-danger" title="{% trans "Remove from group" %}">
|
||||||
<i class="glyphicon glyphicon-remove"></i>
|
<i class="glyphicon glyphicon-remove"></i>
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
<p class="text-muted"><i class="fas fa-star"></i>: Group leader</p>
|
|
||||||
|
<p class="text-muted">
|
||||||
|
<i class="fas fa-star"></i>: {% trans "Group leader" %}
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="alert alert-warning text-center">
|
<div class="alert alert-warning text-center">
|
||||||
@@ -93,9 +98,12 @@
|
|||||||
{% block extra_script %}
|
{% block extra_script %}
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
$('#tab_group_members').DataTable({
|
$('#tab_group_members').DataTable({
|
||||||
order: [ [ 1, "asc" ] ],
|
order: [[0, "asc"]],
|
||||||
columnDefs: [
|
columnDefs: [
|
||||||
{ "sortable": false, "targets": [0, 3] },
|
{
|
||||||
|
"sortable": false,
|
||||||
|
"targets": [2]
|
||||||
|
},
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -9,31 +9,36 @@
|
|||||||
<div class="col-lg-12">
|
<div class="col-lg-12">
|
||||||
<br>
|
<br>
|
||||||
{% include 'groupmanagement/menu.html' %}
|
{% include 'groupmanagement/menu.html' %}
|
||||||
|
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
{% trans "Groups" %}
|
{% trans "Groups" %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
{% if groups %}
|
{% if groups %}
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<table class="table table-aa">
|
<table class="table table-aa">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="text-center">{% trans "Name" %}</th>
|
<th>{% trans "Name" %}</th>
|
||||||
<th class="text-center">{% trans "Description" %}</th>
|
<th>{% trans "Description" %}</th>
|
||||||
<th class="text-center">{% trans "Status" %}</th>
|
<th>{% trans "Status" %}</th>
|
||||||
<th class="text-center">{% trans "Member Count" %}</th>
|
<th style="white-space: nowrap;">{% trans "Member Count" %}</th>
|
||||||
<th class="text-center"></th>
|
<th style="min-width: 170px;"></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for group in groups %}
|
{% for group in groups %}
|
||||||
<tr>
|
<tr>
|
||||||
<td class="text-center">
|
<td>
|
||||||
<a href="{% url 'groupmanagement:membership_list' group.id %}">{{ group.name }}</a>
|
<a href="{% url 'groupmanagement:membership' group.id %}">{{ group.name }}</a>
|
||||||
</td>
|
</td>
|
||||||
<td class="text-center">{{ group.authgroup.description }}</td>
|
|
||||||
<td class="text-center">
|
<td>{{ group.authgroup.description|linebreaks|urlize }}</td>
|
||||||
|
|
||||||
|
<td>
|
||||||
{% if group.authgroup.hidden %}
|
{% if group.authgroup.hidden %}
|
||||||
<span class="label label-info">{% trans "Hidden" %}</span>
|
<span class="label label-info">{% trans "Hidden" %}</span>
|
||||||
{% elif group.authgroup.open %}
|
{% elif group.authgroup.open %}
|
||||||
@@ -42,21 +47,23 @@
|
|||||||
<span class="label label-default">{% trans "Requestable" %}</span>
|
<span class="label label-default">{% trans "Requestable" %}</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
<td class="text-center">
|
|
||||||
|
<td class="text-right">
|
||||||
{{ group.num_members }}
|
{{ group.num_members }}
|
||||||
</td>
|
</td>
|
||||||
<td class="text-center">
|
|
||||||
<a href="{% url 'groupmanagement:membership_list' group.id %}" class="btn btn-primary"
|
<td class="text-right">
|
||||||
title="{% trans "View Members" %}">
|
<a href="{% url 'groupmanagement:membership' group.id %}" class="btn btn-primary" title="{% trans "View Members" %}">
|
||||||
<i class="glyphicon glyphicon-eye-open"></i>
|
<i class="glyphicon glyphicon-eye-open"></i>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a href="{% url "groupmanagement:audit_log" group.id %}" class="btn btn-info" title="{% trans "Audit Members" %}">
|
<a href="{% url "groupmanagement:audit_log" group.id %}" class="btn btn-info" title="{% trans "Audit Members" %}">
|
||||||
<i class="glyphicon glyphicon-list-alt"></i>
|
<i class="glyphicon glyphicon-list-alt"></i>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a id="clipboard-copy" data-clipboard-text="{{ request.scheme }}://{{request.get_host}}{% url 'groupmanagement:request_add' group.id %}" class="btn btn-warning" title="{% trans "Copy Direct Join Link" %}">
|
<a id="clipboard-copy" data-clipboard-text="{{ request.scheme }}://{{request.get_host}}{% url 'groupmanagement:request_add' group.id %}" class="btn btn-warning" title="{% trans "Copy Direct Join Link" %}">
|
||||||
<i class="glyphicon glyphicon-copy"></i>
|
<i class="glyphicon glyphicon-copy"></i>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
@@ -72,9 +79,11 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
|
|
||||||
{% block extra_javascript %}
|
{% block extra_javascript %}
|
||||||
{% include 'bundles/clipboard-js.html' %}
|
{% include 'bundles/clipboard-js.html' %}
|
||||||
<script>
|
|
||||||
new ClipboardJS('#clipboard-copy');
|
<script>
|
||||||
</script>
|
new ClipboardJS('#clipboard-copy');
|
||||||
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
{% block page_title %}{% trans "Available Groups" %}{% endblock page_title %}
|
{% block page_title %}{% trans "Available Groups" %}{% endblock page_title %}
|
||||||
{% block extra_css %}{% endblock extra_css %}
|
{% block extra_css %}{% endblock extra_css %}
|
||||||
url
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="col-lg-12">
|
<div class="col-lg-12">
|
||||||
<h1 class="page-header text-center">{% trans "Available Groups" %}</h1>
|
<h1 class="page-header text-center">{% trans "Available Groups" %}</h1>
|
||||||
@@ -12,17 +12,18 @@ url
|
|||||||
<table class="table table-aa">
|
<table class="table table-aa">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th class="text-center">{% trans "Name" %}</th>
|
<th>{% trans "Name" %}</th>
|
||||||
<th class="text-center">{% trans "Description" %}</th>
|
<th>{% trans "Description" %}</th>
|
||||||
<th class="text-center">{% trans "Action" %}</th>
|
<th></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
|
|
||||||
<tbody>
|
<tbody>
|
||||||
{% for g in groups %}
|
{% for g in groups %}
|
||||||
<tr>
|
<tr>
|
||||||
<td class="text-center">{{ g.group.name }}</td>
|
<td>{{ g.group.name }}</td>
|
||||||
<td class="text-center">{{ g.group.authgroup.description|urlize }}</td>
|
<td>{{ g.group.authgroup.description|linebreaks|urlize }}</td>
|
||||||
<td class="text-center">
|
<td class="text-right">
|
||||||
{% if g.group in user.groups.all %}
|
{% if g.group in user.groups.all %}
|
||||||
{% if not g.request %}
|
{% if not g.request %}
|
||||||
<a href="{% url 'groupmanagement:request_leave' g.group.id %}" class="btn btn-danger">
|
<a href="{% url 'groupmanagement:request_leave' g.group.id %}" class="btn btn-danger">
|
||||||
@@ -59,5 +60,4 @@ url
|
|||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
|
|||||||
@@ -4,14 +4,14 @@
|
|||||||
{% load evelinks %}
|
{% load evelinks %}
|
||||||
|
|
||||||
{% block page_title %}{% trans "Groups Management" %}{% endblock page_title %}
|
{% block page_title %}{% trans "Groups Management" %}{% endblock page_title %}
|
||||||
{% block extra_css %}
|
|
||||||
<style>
|
|
||||||
.nav-tabs>li.active>a {
|
|
||||||
background-color: #ECF0F1 !important;
|
|
||||||
color: #2C3E50;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
|
{% block extra_css %}
|
||||||
|
<style>
|
||||||
|
.nav-tabs > li.active > a {
|
||||||
|
background-color: rgb(236, 240, 241) !important;
|
||||||
|
color: rgb(44, 62, 80);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
{% endblock extra_css %}
|
{% endblock extra_css %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
@@ -23,6 +23,7 @@
|
|||||||
<li class="active">
|
<li class="active">
|
||||||
<a data-toggle="tab" href="#add">
|
<a data-toggle="tab" href="#add">
|
||||||
{% trans "Join Requests" %}
|
{% trans "Join Requests" %}
|
||||||
|
|
||||||
{% if acceptrequests %}
|
{% if acceptrequests %}
|
||||||
<span class="badge">{{ acceptrequests|length }}</span>
|
<span class="badge">{{ acceptrequests|length }}</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -31,6 +32,7 @@
|
|||||||
<li>
|
<li>
|
||||||
<a data-toggle="tab" href="#leave">
|
<a data-toggle="tab" href="#leave">
|
||||||
{% trans "Leave Requests" %}
|
{% trans "Leave Requests" %}
|
||||||
|
|
||||||
{% if leaverequests %}
|
{% if leaverequests %}
|
||||||
<span class="badge">{{ leaverequests|length }}</span>
|
<span class="badge">{{ leaverequests|length }}</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -39,125 +41,121 @@
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div class="tab-content">
|
<div class="tab-content">
|
||||||
|
|
||||||
<div id="add" class="tab-pane fade in active panel panel-default">
|
<div id="add" class="tab-pane fade in active panel panel-default">
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
{% if acceptrequests %}
|
{% if acceptrequests %}
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<table class="table table-aa">
|
<table class="table table-aa">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
|
||||||
<th class="text-center"></th>
|
|
||||||
<th class="text-center">{% trans "Character" %}</th>
|
|
||||||
<th class="text-center">{% trans "Organization" %}</th>
|
|
||||||
<th class="text-center">{% trans "Group" %}</th>
|
|
||||||
<th class="text-center"></th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{% for acceptrequest in acceptrequests %}
|
|
||||||
<tr>
|
<tr>
|
||||||
<td class="text-right">
|
<th>{% trans "Character" %}</th>
|
||||||
<img src="{{ acceptrequest.main_char|character_portrait_url:32 }}" class="img-circle">
|
<th>{% trans "Organization" %}</th>
|
||||||
</td>
|
<th>{% trans "Group" %}</th>
|
||||||
<td class="text-center">
|
<th></th>
|
||||||
{% if acceptrequest.main_char %}
|
|
||||||
<a href="{{ acceptrequest.main_char|evewho_character_url }}" target="_blank">
|
|
||||||
{{ acceptrequest.main_char.character_name }}
|
|
||||||
</a>
|
|
||||||
{% else %}
|
|
||||||
{{ acceptrequest.user.username }}
|
|
||||||
{% endif %}
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
{% if acceptrequest.main_char %}
|
|
||||||
<a href="{{ acceptrequest.main_char|dotlan_corporation_url }}" target="_blank">
|
|
||||||
{{ acceptrequest.main_char.corporation_name }}
|
|
||||||
</a><br>
|
|
||||||
{{ acceptrequest.main_char.alliance_name|default_if_none:"" }}
|
|
||||||
{% else %}
|
|
||||||
(unknown)
|
|
||||||
{% endif %}
|
|
||||||
</td>
|
|
||||||
<td class="text-center">{{ acceptrequest.group.name }}</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<a href="{% url 'groupmanagement:accept_request' acceptrequest.id %}" class="btn btn-success">
|
|
||||||
{% trans "Accept" %}
|
|
||||||
</a>
|
|
||||||
<a href="{% url 'groupmanagement:reject_request' acceptrequest.id %}" class="btn btn-danger">
|
|
||||||
{% trans "Reject" %}
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
</thead>
|
||||||
</tbody>
|
|
||||||
</table>
|
<tbody>
|
||||||
</div>
|
{% for acceptrequest in acceptrequests %}
|
||||||
{% else %}
|
<tr>
|
||||||
<div class="alert alert-warning text-center">{% trans "No group add requests." %}</div>
|
<td>
|
||||||
{% endif %}
|
<img src="{{ acceptrequest.main_char|character_portrait_url:32 }}" class="img-circle" style="margin-right: 1rem;">
|
||||||
|
{% if acceptrequest.main_char %}
|
||||||
|
<a href="{{ acceptrequest.main_char|evewho_character_url }}" target="_blank">
|
||||||
|
{{ acceptrequest.main_char.character_name }}
|
||||||
|
</a>
|
||||||
|
{% else %}
|
||||||
|
{{ acceptrequest.user.username }}
|
||||||
|
{% endif %}
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
{% if acceptrequest.main_char %}
|
||||||
|
<a href="{{ acceptrequest.main_char|dotlan_corporation_url }}" target="_blank">
|
||||||
|
{{ acceptrequest.main_char.corporation_name }}
|
||||||
|
</a><br>
|
||||||
|
{{ acceptrequest.main_char.alliance_name|default_if_none:"" }}
|
||||||
|
{% else %}
|
||||||
|
{% trans "(unknown)" %}
|
||||||
|
{% endif %}
|
||||||
|
</td>
|
||||||
|
<td>{{ acceptrequest.group.name }}</td>
|
||||||
|
<td class="text-right">
|
||||||
|
<a href="{% url 'groupmanagement:accept_request' acceptrequest.id %}" class="btn btn-success">
|
||||||
|
{% trans "Accept" %}
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a href="{% url 'groupmanagement:reject_request' acceptrequest.id %}" class="btn btn-danger">
|
||||||
|
{% trans "Reject" %}
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
<div class="alert alert-warning text-center">{% trans "No group add requests." %}</div>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="leave" class="tab-pane fade panel panel-default">
|
<div id="leave" class="tab-pane fade panel panel-default">
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
{% if leaverequests %}
|
{% if leaverequests %}
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<table class="table table-aa">
|
<table class="table table-aa">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
|
||||||
<th class="text-center"></th>
|
|
||||||
<th class="text-center">{% trans "Character" %}</th>
|
|
||||||
<th class="text-center">{% trans "Organization" %}</th>
|
|
||||||
<th class="text-center">{% trans "Group" %}</th>
|
|
||||||
<th class="text-center"></th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{% for leaverequest in leaverequests %}
|
|
||||||
<tr>
|
<tr>
|
||||||
<td class="text-right">
|
<th>{% trans "Character" %}</th>
|
||||||
<img src="{{ leaverequest.main_char|character_portrait_url:32 }}" class="img-circle">
|
<th>{% trans "Organization" %}</th>
|
||||||
</td>
|
<th>{% trans "Group" %}</th>
|
||||||
<td class="text-center">
|
<th></th>
|
||||||
{% if leaverequest.main_char %}
|
|
||||||
<a href="{{ leaverequest.main_char|evewho_character_url }}" target="_blank">
|
|
||||||
{{ leaverequest.main_char.character_name }}
|
|
||||||
</a>
|
|
||||||
{% else %}
|
|
||||||
{{ leaverequest.user.username }}
|
|
||||||
{% endif %}
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
{% if leaverequest.main_char %}
|
|
||||||
<a href="{{ leaverequest.main_char|dotlan_corporation_url }}" target="_blank">
|
|
||||||
{{ leaverequest.main_char.corporation_name }}
|
|
||||||
</a><br>
|
|
||||||
{{ leaverequest.main_char.alliance_name|default_if_none:"" }}
|
|
||||||
{% else %}
|
|
||||||
(unknown)
|
|
||||||
{% endif %}
|
|
||||||
</td>
|
|
||||||
<td class="text-center">{{ leaverequest.group.name }}</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<a href="{% url 'groupmanagement:leave_accept_request' leaverequest.id %}" class="btn btn-success">
|
|
||||||
{% trans "Accept" %}
|
|
||||||
</a>
|
|
||||||
<a href="{% url 'groupmanagement:leave_reject_request' leaverequest.id %}" class="btn btn-danger">
|
|
||||||
{% trans "Reject" %}
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
</thead>
|
||||||
</tbody>
|
|
||||||
</table>
|
<tbody>
|
||||||
</div>
|
{% for leaverequest in leaverequests %}
|
||||||
{% else %}
|
<tr>
|
||||||
<div class="alert alert-warning text-center">{% trans "No group leave requests." %}</div>
|
<td>
|
||||||
{% endif %}
|
<img src="{{ leaverequest.main_char|character_portrait_url:32 }}" class="img-circle" style="margin-right: 1rem;">
|
||||||
|
{% if leaverequest.main_char %}
|
||||||
|
<a href="{{ leaverequest.main_char|evewho_character_url }}" target="_blank">
|
||||||
|
{{ leaverequest.main_char.character_name }}
|
||||||
|
</a>
|
||||||
|
{% else %}
|
||||||
|
{{ leaverequest.user.username }}
|
||||||
|
{% endif %}
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
{% if leaverequest.main_char %}
|
||||||
|
<a href="{{ leaverequest.main_char|dotlan_corporation_url }}" target="_blank">
|
||||||
|
{{ leaverequest.main_char.corporation_name }}
|
||||||
|
</a><br>
|
||||||
|
{{ leaverequest.main_char.alliance_name|default_if_none:"" }}
|
||||||
|
{% else %}
|
||||||
|
{% trans "(unknown)" %}
|
||||||
|
{% endif %}
|
||||||
|
</td>
|
||||||
|
<td>{{ leaverequest.group.name }}</td>
|
||||||
|
<td class="text-right">
|
||||||
|
<a href="{% url 'groupmanagement:leave_accept_request' leaverequest.id %}" class="btn btn-success">
|
||||||
|
{% trans "Accept" %}
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a href="{% url 'groupmanagement:leave_reject_request' leaverequest.id %}" class="btn btn-danger">
|
||||||
|
{% trans "Reject" %}
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
<div class="alert alert-warning text-center">{% trans "No group leave requests." %}</div>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
|
|
||||||
<nav class="navbar navbar-default">
|
<nav class="navbar navbar-default">
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
|
|
||||||
<div class="navbar-header">
|
<div class="navbar-header">
|
||||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
|
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
|
||||||
<span class="sr-only">{% trans "Toggle navigation" %}</span>
|
<span class="sr-only">{% trans "Toggle navigation" %}</span>
|
||||||
@@ -12,7 +11,7 @@
|
|||||||
<span class="icon-bar"></span>
|
<span class="icon-bar"></span>
|
||||||
<span class="icon-bar"></span>
|
<span class="icon-bar"></span>
|
||||||
</button>
|
</button>
|
||||||
<a class="navbar-brand" href="">{% trans "Group Management" %}</a>
|
<a class="navbar-brand" href="{% url 'groupmanagement:management' %}">{% trans "Group Management" %}</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
|
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
|
||||||
@@ -20,11 +19,10 @@
|
|||||||
<li class="{% navactive request 'groupmanagement:management' %}">
|
<li class="{% navactive request 'groupmanagement:management' %}">
|
||||||
<a href="{% url 'groupmanagement:management' %}">{% trans "Group Requests" %}</a>
|
<a href="{% url 'groupmanagement:management' %}">{% trans "Group Requests" %}</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="{% renavactive request '^/group/membership/' %}">
|
<li class="{% navactive request 'groupmanagement:membership groupmanagement:audit_log' %}">
|
||||||
<a href="{% url 'groupmanagement:membership' %}">{% trans "Group Membership" %}</a>
|
<a href="{% url 'groupmanagement:membership' %}">{% trans "Group Membership" %}</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
|||||||
@@ -1,29 +1,52 @@
|
|||||||
from . import views
|
from . import views
|
||||||
|
|
||||||
from django.conf.urls import url
|
from django.conf.urls import url
|
||||||
app_name = 'groupmanagement'
|
|
||||||
|
app_name = "groupmanagement"
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
url(r'^groups/', views.groups_view, name='groups'),
|
# groups
|
||||||
url(r'^management/', views.group_management,
|
url(r"^groups/$", views.groups_view, name="groups"),
|
||||||
name='management'),
|
url(r"^group/request/join/(\w+)/$", views.group_request_add, name="request_add"),
|
||||||
url(r'^membership/$', views.group_membership,
|
url(
|
||||||
name='membership'),
|
r"^group/request/leave/(\w+)/$", views.group_request_leave, name="request_leave"
|
||||||
url(r'^membership/(\w+)/$', views.group_membership_list,
|
),
|
||||||
name='membership_list'),
|
# group management
|
||||||
url(r'^membership/(\w+)/audit/$', views.group_membership_audit, name="audit_log"),
|
url(r"^groupmanagement/requests/$", views.group_management, name="management"),
|
||||||
url(r'^membership/(\w+)/remove/(\w+)/$', views.group_membership_remove,
|
url(r"^groupmanagement/membership/$", views.group_membership, name="membership"),
|
||||||
name='membership_remove'),
|
url(
|
||||||
url(r'^request_add/(\w+)', views.group_request_add,
|
r"^groupmanagement/membership/(\w+)/$",
|
||||||
name='request_add'),
|
views.group_membership_list,
|
||||||
url(r'^request/accept/(\w+)', views.group_accept_request,
|
name="membership",
|
||||||
name='accept_request'),
|
),
|
||||||
url(r'^request/reject/(\w+)', views.group_reject_request,
|
url(
|
||||||
name='reject_request'),
|
r"^groupmanagement/membership/(\w+)/audit-log/$",
|
||||||
url(r'^request_leave/(\w+)', views.group_request_leave,
|
views.group_membership_audit,
|
||||||
name='request_leave'),
|
name="audit_log",
|
||||||
url(r'leave_request/accept/(\w+)', views.group_leave_accept_request,
|
),
|
||||||
name='leave_accept_request'),
|
url(
|
||||||
url(r'^leave_request/reject/(\w+)', views.group_leave_reject_request,
|
r"^groupmanagement/membership/(\w+)/remove/(\w+)/$",
|
||||||
name='leave_reject_request'),
|
views.group_membership_remove,
|
||||||
|
name="membership_remove",
|
||||||
|
),
|
||||||
|
url(
|
||||||
|
r"^groupmanagement/request/join/accept/(\w+)/$",
|
||||||
|
views.group_accept_request,
|
||||||
|
name="accept_request",
|
||||||
|
),
|
||||||
|
url(
|
||||||
|
r"^groupmanagement/request/join/reject/(\w+)/$",
|
||||||
|
views.group_reject_request,
|
||||||
|
name="reject_request",
|
||||||
|
),
|
||||||
|
url(
|
||||||
|
r"^groupmanagement/request/leave/accept/(\w+)/$",
|
||||||
|
views.group_leave_accept_request,
|
||||||
|
name="leave_accept_request",
|
||||||
|
),
|
||||||
|
url(
|
||||||
|
r"^groupmanagement/request/leave/reject/(\w+)/$",
|
||||||
|
views.group_leave_reject_request,
|
||||||
|
name="leave_reject_request",
|
||||||
|
),
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -166,7 +166,7 @@ def group_membership_remove(request, group_id, user_id):
|
|||||||
except ObjectDoesNotExist:
|
except ObjectDoesNotExist:
|
||||||
messages.warning(request, _("Group does not exist"))
|
messages.warning(request, _("Group does not exist"))
|
||||||
|
|
||||||
return redirect('groupmanagement:membership_list', group_id)
|
return redirect('groupmanagement:membership', group_id)
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
|
|||||||
Binary file not shown.
@@ -6,16 +6,16 @@
|
|||||||
# Translators:
|
# Translators:
|
||||||
# Erik Kalkoken <erik.kalkoken@gmail.com>, 2020
|
# Erik Kalkoken <erik.kalkoken@gmail.com>, 2020
|
||||||
# Joel Falknau <ozirascal@gmail.com>, 2020
|
# Joel Falknau <ozirascal@gmail.com>, 2020
|
||||||
# Rounon Dax <rounon.dax@terra-nanotech.de>, 2020
|
# Peter Pfeufer <rounon.dax@terra-nanotech.de>, 2020
|
||||||
#
|
#
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-09-21 01:35+0000\n"
|
"POT-Creation-Date: 2020-10-11 03:43+0000\n"
|
||||||
"PO-Revision-Date: 2020-02-18 03:14+0000\n"
|
"PO-Revision-Date: 2020-02-18 03:14+0000\n"
|
||||||
"Last-Translator: Rounon Dax <rounon.dax@terra-nanotech.de>, 2020\n"
|
"Last-Translator: Peter Pfeufer <rounon.dax@terra-nanotech.de>, 2020\n"
|
||||||
"Language-Team: German (https://www.transifex.com/alliance-auth/teams/107430/de/)\n"
|
"Language-Team: German (https://www.transifex.com/alliance-auth/teams/107430/de/)\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
@@ -28,7 +28,7 @@ msgid "A main character is required to perform that action. Add one below."
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Für diese Aktion wird ein Hauptcharacter benötigt. Bitte füge einen hinzu."
|
"Für diese Aktion wird ein Hauptcharacter benötigt. Bitte füge einen hinzu."
|
||||||
|
|
||||||
#: allianceauth/authentication/forms.py:6
|
#: allianceauth/authentication/forms.py:5
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "E-Mail"
|
msgstr "E-Mail"
|
||||||
|
|
||||||
@@ -168,11 +168,11 @@ msgstr ""
|
|||||||
msgid "Unable to authenticate as the selected character."
|
msgid "Unable to authenticate as the selected character."
|
||||||
msgstr "Authentifizierung mit dem ausgewählten Charakter nicht möglich."
|
msgstr "Authentifizierung mit dem ausgewählten Charakter nicht möglich."
|
||||||
|
|
||||||
#: allianceauth/authentication/views.py:148
|
#: allianceauth/authentication/views.py:146
|
||||||
msgid "Registration token has expired."
|
msgid "Registration token has expired."
|
||||||
msgstr "Token zur Registrierung ist abgelaufen."
|
msgstr "Token zur Registrierung ist abgelaufen."
|
||||||
|
|
||||||
#: allianceauth/authentication/views.py:200
|
#: allianceauth/authentication/views.py:201
|
||||||
msgid ""
|
msgid ""
|
||||||
"Sent confirmation email. Please follow the link to confirm your email "
|
"Sent confirmation email. Please follow the link to confirm your email "
|
||||||
"address."
|
"address."
|
||||||
@@ -180,12 +180,12 @@ msgstr ""
|
|||||||
"Bestätigungsmail gesendet. Bitte folge dem Link in der E-Mail zur "
|
"Bestätigungsmail gesendet. Bitte folge dem Link in der E-Mail zur "
|
||||||
"Bestätigung."
|
"Bestätigung."
|
||||||
|
|
||||||
#: allianceauth/authentication/views.py:205
|
#: allianceauth/authentication/views.py:206
|
||||||
msgid "Confirmed your email address. Please login to continue."
|
msgid "Confirmed your email address. Please login to continue."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Deine E-Mail Adresse wurde bestätigt. Bitte log Dich ein um fortzufahren."
|
"Deine E-Mail Adresse wurde bestätigt. Bitte log Dich ein um fortzufahren."
|
||||||
|
|
||||||
#: allianceauth/authentication/views.py:210
|
#: allianceauth/authentication/views.py:211
|
||||||
msgid "Registraion of new accounts it not allowed at this time."
|
msgid "Registraion of new accounts it not allowed at this time."
|
||||||
msgstr "Registrierung von neuen Konten ist zur Zeit nicht erlaubt."
|
msgstr "Registrierung von neuen Konten ist zur Zeit nicht erlaubt."
|
||||||
|
|
||||||
@@ -825,7 +825,7 @@ msgstr "Du hast Dich bereits für diese Gruppe beworben."
|
|||||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:144
|
#: allianceauth/hrapplications/templates/hrapplications/management.html:144
|
||||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:38
|
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:38
|
||||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:20
|
#: allianceauth/hrapplications/templates/hrapplications/view.html:20
|
||||||
#: allianceauth/srp/templates/srp/data.html:128
|
#: allianceauth/srp/templates/srp/data.html:134
|
||||||
#: allianceauth/srp/templates/srp/management.html:81
|
#: allianceauth/srp/templates/srp/management.html:81
|
||||||
msgid "Pending"
|
msgid "Pending"
|
||||||
msgstr "Beantragt"
|
msgstr "Beantragt"
|
||||||
@@ -919,7 +919,7 @@ msgstr "Aktionen"
|
|||||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:147
|
#: allianceauth/hrapplications/templates/hrapplications/management.html:147
|
||||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:40
|
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:40
|
||||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:16
|
#: allianceauth/hrapplications/templates/hrapplications/view.html:16
|
||||||
#: allianceauth/srp/templates/srp/data.html:120
|
#: allianceauth/srp/templates/srp/data.html:126
|
||||||
msgid "Approved"
|
msgid "Approved"
|
||||||
msgstr "Akzeptiert"
|
msgstr "Akzeptiert"
|
||||||
|
|
||||||
@@ -927,7 +927,7 @@ msgstr "Akzeptiert"
|
|||||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:104
|
#: allianceauth/hrapplications/templates/hrapplications/management.html:104
|
||||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:149
|
#: allianceauth/hrapplications/templates/hrapplications/management.html:149
|
||||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:42
|
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:42
|
||||||
#: allianceauth/srp/templates/srp/data.html:124
|
#: allianceauth/srp/templates/srp/data.html:130
|
||||||
msgid "Rejected"
|
msgid "Rejected"
|
||||||
msgstr "Abgelehnt"
|
msgstr "Abgelehnt"
|
||||||
|
|
||||||
@@ -1310,11 +1310,11 @@ msgstr "Passwort"
|
|||||||
msgid "Password must be at least 8 characters long."
|
msgid "Password must be at least 8 characters long."
|
||||||
msgstr "Passwort muss mindestens 8 Zeichen lang sein"
|
msgstr "Passwort muss mindestens 8 Zeichen lang sein"
|
||||||
|
|
||||||
#: allianceauth/services/modules/discord/models.py:224
|
#: allianceauth/services/modules/discord/models.py:225
|
||||||
msgid "Discord Account Disabled"
|
msgid "Discord Account Disabled"
|
||||||
msgstr "Discord Konto deaktiviert"
|
msgstr "Discord Konto deaktiviert"
|
||||||
|
|
||||||
#: allianceauth/services/modules/discord/models.py:226
|
#: allianceauth/services/modules/discord/models.py:227
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your Discord account was disabeled automatically by Auth. If you think this "
|
"Your Discord account was disabeled automatically by Auth. If you think this "
|
||||||
"was a mistake, please contact an admin."
|
"was a mistake, please contact an admin."
|
||||||
@@ -1684,18 +1684,18 @@ msgid "Mark Completed"
|
|||||||
msgstr "Als vollständig markieren"
|
msgstr "Als vollständig markieren"
|
||||||
|
|
||||||
#: allianceauth/srp/templates/srp/data.html:70
|
#: allianceauth/srp/templates/srp/data.html:70
|
||||||
#: allianceauth/srp/templates/srp/data.html:150
|
#: allianceauth/srp/templates/srp/data.html:156
|
||||||
msgid "Total Losses:"
|
msgid "Total Losses:"
|
||||||
msgstr "Verluste insgesamt:"
|
msgstr "Verluste insgesamt:"
|
||||||
|
|
||||||
#: allianceauth/srp/templates/srp/data.html:71
|
#: allianceauth/srp/templates/srp/data.html:71
|
||||||
#: allianceauth/srp/templates/srp/data.html:151
|
#: allianceauth/srp/templates/srp/data.html:157
|
||||||
#: allianceauth/srp/templates/srp/management.html:30
|
#: allianceauth/srp/templates/srp/management.html:30
|
||||||
msgid "Total ISK Cost:"
|
msgid "Total ISK Cost:"
|
||||||
msgstr "ISK-Kosten insgesamt:"
|
msgstr "ISK-Kosten insgesamt:"
|
||||||
|
|
||||||
#: allianceauth/srp/templates/srp/data.html:79
|
#: allianceauth/srp/templates/srp/data.html:79
|
||||||
#: allianceauth/srp/templates/srp/data.html:159
|
#: allianceauth/srp/templates/srp/data.html:165
|
||||||
msgid "Are you sure you want to delete SRP requests?"
|
msgid "Are you sure you want to delete SRP requests?"
|
||||||
msgstr "Bist Du sicher das Du SRP Anfragen löschen willst?"
|
msgstr "Bist Du sicher das Du SRP Anfragen löschen willst?"
|
||||||
|
|
||||||
@@ -1729,7 +1729,7 @@ msgstr ""
|
|||||||
msgid "Post Time"
|
msgid "Post Time"
|
||||||
msgstr "Veröffentlichungszeit"
|
msgstr "Veröffentlichungszeit"
|
||||||
|
|
||||||
#: allianceauth/srp/templates/srp/data.html:168
|
#: allianceauth/srp/templates/srp/data.html:174
|
||||||
msgid "No SRP requests for this fleet."
|
msgid "No SRP requests for this fleet."
|
||||||
msgstr "Keine SRP Anfragen für diese Flotte."
|
msgstr "Keine SRP Anfragen für diese Flotte."
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-09-21 01:41+0000\n"
|
"POT-Creation-Date: 2020-10-01 02:59+0000\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@@ -22,7 +22,7 @@ msgstr ""
|
|||||||
msgid "A main character is required to perform that action. Add one below."
|
msgid "A main character is required to perform that action. Add one below."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: allianceauth/authentication/forms.py:6
|
#: allianceauth/authentication/forms.py:5
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -154,22 +154,22 @@ msgstr ""
|
|||||||
msgid "Unable to authenticate as the selected character."
|
msgid "Unable to authenticate as the selected character."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: allianceauth/authentication/views.py:148
|
#: allianceauth/authentication/views.py:146
|
||||||
msgid "Registration token has expired."
|
msgid "Registration token has expired."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: allianceauth/authentication/views.py:200
|
#: allianceauth/authentication/views.py:201
|
||||||
msgid ""
|
msgid ""
|
||||||
"Sent confirmation email. Please follow the link to confirm your email "
|
"Sent confirmation email. Please follow the link to confirm your email "
|
||||||
"address."
|
"address."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: allianceauth/authentication/views.py:205
|
#: allianceauth/authentication/views.py:206
|
||||||
msgid "Confirmed your email address. Please login to continue."
|
msgid "Confirmed your email address. Please login to continue."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: allianceauth/authentication/views.py:210
|
#: allianceauth/authentication/views.py:211
|
||||||
msgid "Registraion of new accounts it not allowed at this time."
|
msgid "Registration of new accounts is not allowed at this time."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: allianceauth/corputils/auth_hooks.py:10
|
#: allianceauth/corputils/auth_hooks.py:10
|
||||||
@@ -1289,13 +1289,13 @@ msgstr ""
|
|||||||
msgid "Password must be at least 8 characters long."
|
msgid "Password must be at least 8 characters long."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: allianceauth/services/modules/discord/models.py:224
|
#: allianceauth/services/modules/discord/models.py:225
|
||||||
msgid "Discord Account Disabled"
|
msgid "Discord Account Disabled"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: allianceauth/services/modules/discord/models.py:226
|
#: allianceauth/services/modules/discord/models.py:227
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your Discord account was disabeled automatically by Auth. If you think this "
|
"Your Discord account was disabled automatically by Auth. If you think this "
|
||||||
"was a mistake, please contact an admin."
|
"was a mistake, please contact an admin."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@@ -4,17 +4,17 @@
|
|||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Joel Falknau <ozirascal@gmail.com>, 2020
|
|
||||||
# frank1210 <francolopez_16@hotmail.com>, 2020
|
# frank1210 <francolopez_16@hotmail.com>, 2020
|
||||||
|
# Joel Falknau <ozirascal@gmail.com>, 2020
|
||||||
#
|
#
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-09-21 01:35+0000\n"
|
"POT-Creation-Date: 2020-10-11 03:43+0000\n"
|
||||||
"PO-Revision-Date: 2020-02-18 03:14+0000\n"
|
"PO-Revision-Date: 2020-02-18 03:14+0000\n"
|
||||||
"Last-Translator: frank1210 <francolopez_16@hotmail.com>, 2020\n"
|
"Last-Translator: Joel Falknau <ozirascal@gmail.com>, 2020\n"
|
||||||
"Language-Team: Spanish (https://www.transifex.com/alliance-auth/teams/107430/es/)\n"
|
"Language-Team: Spanish (https://www.transifex.com/alliance-auth/teams/107430/es/)\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
@@ -27,7 +27,7 @@ msgid "A main character is required to perform that action. Add one below."
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Un personaje principal es requerido para completar esta accion. Agregue uno"
|
"Un personaje principal es requerido para completar esta accion. Agregue uno"
|
||||||
|
|
||||||
#: allianceauth/authentication/forms.py:6
|
#: allianceauth/authentication/forms.py:5
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "E-mail"
|
msgstr "E-mail"
|
||||||
|
|
||||||
@@ -161,24 +161,24 @@ msgstr ""
|
|||||||
msgid "Unable to authenticate as the selected character."
|
msgid "Unable to authenticate as the selected character."
|
||||||
msgstr "Imposible validar con el personaje seleccionado."
|
msgstr "Imposible validar con el personaje seleccionado."
|
||||||
|
|
||||||
#: allianceauth/authentication/views.py:148
|
#: allianceauth/authentication/views.py:146
|
||||||
msgid "Registration token has expired."
|
msgid "Registration token has expired."
|
||||||
msgstr "El token de registracion expiro."
|
msgstr "El token de registracion expiro."
|
||||||
|
|
||||||
#: allianceauth/authentication/views.py:200
|
#: allianceauth/authentication/views.py:201
|
||||||
msgid ""
|
msgid ""
|
||||||
"Sent confirmation email. Please follow the link to confirm your email "
|
"Sent confirmation email. Please follow the link to confirm your email "
|
||||||
"address."
|
"address."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Confirmacion de mail enviada. Por favor siga el enlace para confirmar "
|
"Confirmacion de mail enviada. Por favor siga el enlace para confirmar "
|
||||||
|
|
||||||
#: allianceauth/authentication/views.py:205
|
#: allianceauth/authentication/views.py:206
|
||||||
msgid "Confirmed your email address. Please login to continue."
|
msgid "Confirmed your email address. Please login to continue."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Se ha confirmado su direccion de mail. Por favor igrese su token para "
|
"Se ha confirmado su direccion de mail. Por favor igrese su token para "
|
||||||
"continuar."
|
"continuar."
|
||||||
|
|
||||||
#: allianceauth/authentication/views.py:210
|
#: allianceauth/authentication/views.py:211
|
||||||
msgid "Registraion of new accounts it not allowed at this time."
|
msgid "Registraion of new accounts it not allowed at this time."
|
||||||
msgstr "Registracion de nuevas cuentas no es permitido por el momento."
|
msgstr "Registracion de nuevas cuentas no es permitido por el momento."
|
||||||
|
|
||||||
@@ -818,7 +818,7 @@ msgstr ""
|
|||||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:144
|
#: allianceauth/hrapplications/templates/hrapplications/management.html:144
|
||||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:38
|
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:38
|
||||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:20
|
#: allianceauth/hrapplications/templates/hrapplications/view.html:20
|
||||||
#: allianceauth/srp/templates/srp/data.html:128
|
#: allianceauth/srp/templates/srp/data.html:134
|
||||||
#: allianceauth/srp/templates/srp/management.html:81
|
#: allianceauth/srp/templates/srp/management.html:81
|
||||||
msgid "Pending"
|
msgid "Pending"
|
||||||
msgstr "Pendiente"
|
msgstr "Pendiente"
|
||||||
@@ -912,7 +912,7 @@ msgstr "Acciones"
|
|||||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:147
|
#: allianceauth/hrapplications/templates/hrapplications/management.html:147
|
||||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:40
|
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:40
|
||||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:16
|
#: allianceauth/hrapplications/templates/hrapplications/view.html:16
|
||||||
#: allianceauth/srp/templates/srp/data.html:120
|
#: allianceauth/srp/templates/srp/data.html:126
|
||||||
msgid "Approved"
|
msgid "Approved"
|
||||||
msgstr "Aprovado"
|
msgstr "Aprovado"
|
||||||
|
|
||||||
@@ -920,7 +920,7 @@ msgstr "Aprovado"
|
|||||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:104
|
#: allianceauth/hrapplications/templates/hrapplications/management.html:104
|
||||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:149
|
#: allianceauth/hrapplications/templates/hrapplications/management.html:149
|
||||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:42
|
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:42
|
||||||
#: allianceauth/srp/templates/srp/data.html:124
|
#: allianceauth/srp/templates/srp/data.html:130
|
||||||
msgid "Rejected"
|
msgid "Rejected"
|
||||||
msgstr "Rechazado"
|
msgstr "Rechazado"
|
||||||
|
|
||||||
@@ -1303,11 +1303,11 @@ msgstr "Contraseña"
|
|||||||
msgid "Password must be at least 8 characters long."
|
msgid "Password must be at least 8 characters long."
|
||||||
msgstr "La contraseña tiene que tener 8 caracteres de largo minimo"
|
msgstr "La contraseña tiene que tener 8 caracteres de largo minimo"
|
||||||
|
|
||||||
#: allianceauth/services/modules/discord/models.py:224
|
#: allianceauth/services/modules/discord/models.py:225
|
||||||
msgid "Discord Account Disabled"
|
msgid "Discord Account Disabled"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: allianceauth/services/modules/discord/models.py:226
|
#: allianceauth/services/modules/discord/models.py:227
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your Discord account was disabeled automatically by Auth. If you think this "
|
"Your Discord account was disabeled automatically by Auth. If you think this "
|
||||||
"was a mistake, please contact an admin."
|
"was a mistake, please contact an admin."
|
||||||
@@ -1666,18 +1666,18 @@ msgid "Mark Completed"
|
|||||||
msgstr "Marcar como Completo"
|
msgstr "Marcar como Completo"
|
||||||
|
|
||||||
#: allianceauth/srp/templates/srp/data.html:70
|
#: allianceauth/srp/templates/srp/data.html:70
|
||||||
#: allianceauth/srp/templates/srp/data.html:150
|
#: allianceauth/srp/templates/srp/data.html:156
|
||||||
msgid "Total Losses:"
|
msgid "Total Losses:"
|
||||||
msgstr "Perdidas Totales:"
|
msgstr "Perdidas Totales:"
|
||||||
|
|
||||||
#: allianceauth/srp/templates/srp/data.html:71
|
#: allianceauth/srp/templates/srp/data.html:71
|
||||||
#: allianceauth/srp/templates/srp/data.html:151
|
#: allianceauth/srp/templates/srp/data.html:157
|
||||||
#: allianceauth/srp/templates/srp/management.html:30
|
#: allianceauth/srp/templates/srp/management.html:30
|
||||||
msgid "Total ISK Cost:"
|
msgid "Total ISK Cost:"
|
||||||
msgstr "Costo Total:"
|
msgstr "Costo Total:"
|
||||||
|
|
||||||
#: allianceauth/srp/templates/srp/data.html:79
|
#: allianceauth/srp/templates/srp/data.html:79
|
||||||
#: allianceauth/srp/templates/srp/data.html:159
|
#: allianceauth/srp/templates/srp/data.html:165
|
||||||
msgid "Are you sure you want to delete SRP requests?"
|
msgid "Are you sure you want to delete SRP requests?"
|
||||||
msgstr "Estas seguro que quiere borrar las solicitudes de SRP"
|
msgstr "Estas seguro que quiere borrar las solicitudes de SRP"
|
||||||
|
|
||||||
@@ -1709,7 +1709,7 @@ msgstr ""
|
|||||||
msgid "Post Time"
|
msgid "Post Time"
|
||||||
msgstr "Tiempo"
|
msgstr "Tiempo"
|
||||||
|
|
||||||
#: allianceauth/srp/templates/srp/data.html:168
|
#: allianceauth/srp/templates/srp/data.html:174
|
||||||
msgid "No SRP requests for this fleet."
|
msgid "No SRP requests for this fleet."
|
||||||
msgstr "No hay solicitudes de SRP para esta flota."
|
msgstr "No hay solicitudes de SRP para esta flota."
|
||||||
|
|
||||||
|
|||||||
BIN
allianceauth/locale/fr_FR/LC_MESSAGES/django.mo
Normal file
BIN
allianceauth/locale/fr_FR/LC_MESSAGES/django.mo
Normal file
Binary file not shown.
2083
allianceauth/locale/fr_FR/LC_MESSAGES/django.po
Normal file
2083
allianceauth/locale/fr_FR/LC_MESSAGES/django.po
Normal file
File diff suppressed because it is too large
Load Diff
BIN
allianceauth/locale/ja/LC_MESSAGES/django.mo
Normal file
BIN
allianceauth/locale/ja/LC_MESSAGES/django.mo
Normal file
Binary file not shown.
2057
allianceauth/locale/ja/LC_MESSAGES/django.po
Normal file
2057
allianceauth/locale/ja/LC_MESSAGES/django.po
Normal file
File diff suppressed because it is too large
Load Diff
@@ -5,8 +5,8 @@
|
|||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# None None <khd1226543@gmail.com>, 2020
|
# None None <khd1226543@gmail.com>, 2020
|
||||||
# Seowon Jung <seowon@hawaii.edu>, 2020
|
|
||||||
# Olgeda Choi <undead.choi@gmail.com>, 2020
|
# Olgeda Choi <undead.choi@gmail.com>, 2020
|
||||||
|
# Seowon Jung <seowon@hawaii.edu>, 2020
|
||||||
# Lahty <js03js70@gmail.com>, 2020
|
# Lahty <js03js70@gmail.com>, 2020
|
||||||
#
|
#
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
@@ -14,7 +14,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-09-21 01:35+0000\n"
|
"POT-Creation-Date: 2020-10-11 03:43+0000\n"
|
||||||
"PO-Revision-Date: 2020-02-18 03:14+0000\n"
|
"PO-Revision-Date: 2020-02-18 03:14+0000\n"
|
||||||
"Last-Translator: Lahty <js03js70@gmail.com>, 2020\n"
|
"Last-Translator: Lahty <js03js70@gmail.com>, 2020\n"
|
||||||
"Language-Team: Korean (Korea) (https://www.transifex.com/alliance-auth/teams/107430/ko_KR/)\n"
|
"Language-Team: Korean (Korea) (https://www.transifex.com/alliance-auth/teams/107430/ko_KR/)\n"
|
||||||
@@ -28,7 +28,7 @@ msgstr ""
|
|||||||
msgid "A main character is required to perform that action. Add one below."
|
msgid "A main character is required to perform that action. Add one below."
|
||||||
msgstr "해당 기능을 수행하려면 주 캐릭터가 요구됨. 아래에 하나를 추가하시오."
|
msgstr "해당 기능을 수행하려면 주 캐릭터가 요구됨. 아래에 하나를 추가하시오."
|
||||||
|
|
||||||
#: allianceauth/authentication/forms.py:6
|
#: allianceauth/authentication/forms.py:5
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "이메일"
|
msgstr "이메일"
|
||||||
|
|
||||||
@@ -163,21 +163,21 @@ msgstr "계정에 %(name)s를 추가하지 못했습니다. 이미 추가된 계
|
|||||||
msgid "Unable to authenticate as the selected character."
|
msgid "Unable to authenticate as the selected character."
|
||||||
msgstr "선택한 캐릭터로 인증을 수행할 수 없음"
|
msgstr "선택한 캐릭터로 인증을 수행할 수 없음"
|
||||||
|
|
||||||
#: allianceauth/authentication/views.py:148
|
#: allianceauth/authentication/views.py:146
|
||||||
msgid "Registration token has expired."
|
msgid "Registration token has expired."
|
||||||
msgstr "등록토큰 만료"
|
msgstr "등록토큰 만료"
|
||||||
|
|
||||||
#: allianceauth/authentication/views.py:200
|
#: allianceauth/authentication/views.py:201
|
||||||
msgid ""
|
msgid ""
|
||||||
"Sent confirmation email. Please follow the link to confirm your email "
|
"Sent confirmation email. Please follow the link to confirm your email "
|
||||||
"address."
|
"address."
|
||||||
msgstr "확인 메일 전송됨. 다음 링크를 눌러 이메일 주소를 확인하세요."
|
msgstr "확인 메일 전송됨. 다음 링크를 눌러 이메일 주소를 확인하세요."
|
||||||
|
|
||||||
#: allianceauth/authentication/views.py:205
|
#: allianceauth/authentication/views.py:206
|
||||||
msgid "Confirmed your email address. Please login to continue."
|
msgid "Confirmed your email address. Please login to continue."
|
||||||
msgstr "이메일 주소가 확인되었습니다. 로그인 해주세요."
|
msgstr "이메일 주소가 확인되었습니다. 로그인 해주세요."
|
||||||
|
|
||||||
#: allianceauth/authentication/views.py:210
|
#: allianceauth/authentication/views.py:211
|
||||||
msgid "Registraion of new accounts it not allowed at this time."
|
msgid "Registraion of new accounts it not allowed at this time."
|
||||||
msgstr "현재 새로운 계정 등록은 받지않습니다."
|
msgstr "현재 새로운 계정 등록은 받지않습니다."
|
||||||
|
|
||||||
@@ -811,7 +811,7 @@ msgstr "해당 그룹에 대한 참여신청이 보류되었습니다."
|
|||||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:144
|
#: allianceauth/hrapplications/templates/hrapplications/management.html:144
|
||||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:38
|
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:38
|
||||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:20
|
#: allianceauth/hrapplications/templates/hrapplications/view.html:20
|
||||||
#: allianceauth/srp/templates/srp/data.html:128
|
#: allianceauth/srp/templates/srp/data.html:134
|
||||||
#: allianceauth/srp/templates/srp/management.html:81
|
#: allianceauth/srp/templates/srp/management.html:81
|
||||||
msgid "Pending"
|
msgid "Pending"
|
||||||
msgstr "보류 중"
|
msgstr "보류 중"
|
||||||
@@ -905,7 +905,7 @@ msgstr "활동"
|
|||||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:147
|
#: allianceauth/hrapplications/templates/hrapplications/management.html:147
|
||||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:40
|
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:40
|
||||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:16
|
#: allianceauth/hrapplications/templates/hrapplications/view.html:16
|
||||||
#: allianceauth/srp/templates/srp/data.html:120
|
#: allianceauth/srp/templates/srp/data.html:126
|
||||||
msgid "Approved"
|
msgid "Approved"
|
||||||
msgstr "승인"
|
msgstr "승인"
|
||||||
|
|
||||||
@@ -913,7 +913,7 @@ msgstr "승인"
|
|||||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:104
|
#: allianceauth/hrapplications/templates/hrapplications/management.html:104
|
||||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:149
|
#: allianceauth/hrapplications/templates/hrapplications/management.html:149
|
||||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:42
|
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:42
|
||||||
#: allianceauth/srp/templates/srp/data.html:124
|
#: allianceauth/srp/templates/srp/data.html:130
|
||||||
msgid "Rejected"
|
msgid "Rejected"
|
||||||
msgstr "거절"
|
msgstr "거절"
|
||||||
|
|
||||||
@@ -1296,11 +1296,11 @@ msgstr "비밀번호"
|
|||||||
msgid "Password must be at least 8 characters long."
|
msgid "Password must be at least 8 characters long."
|
||||||
msgstr "비밀번호는 8글자 이상이어야 합니다."
|
msgstr "비밀번호는 8글자 이상이어야 합니다."
|
||||||
|
|
||||||
#: allianceauth/services/modules/discord/models.py:224
|
#: allianceauth/services/modules/discord/models.py:225
|
||||||
msgid "Discord Account Disabled"
|
msgid "Discord Account Disabled"
|
||||||
msgstr "디스코드 계정 비활성화"
|
msgstr "디스코드 계정 비활성화"
|
||||||
|
|
||||||
#: allianceauth/services/modules/discord/models.py:226
|
#: allianceauth/services/modules/discord/models.py:227
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your Discord account was disabeled automatically by Auth. If you think this "
|
"Your Discord account was disabeled automatically by Auth. If you think this "
|
||||||
"was a mistake, please contact an admin."
|
"was a mistake, please contact an admin."
|
||||||
@@ -1659,18 +1659,18 @@ msgid "Mark Completed"
|
|||||||
msgstr "표시 완료"
|
msgstr "표시 완료"
|
||||||
|
|
||||||
#: allianceauth/srp/templates/srp/data.html:70
|
#: allianceauth/srp/templates/srp/data.html:70
|
||||||
#: allianceauth/srp/templates/srp/data.html:150
|
#: allianceauth/srp/templates/srp/data.html:156
|
||||||
msgid "Total Losses:"
|
msgid "Total Losses:"
|
||||||
msgstr "전체 손실:"
|
msgstr "전체 손실:"
|
||||||
|
|
||||||
#: allianceauth/srp/templates/srp/data.html:71
|
#: allianceauth/srp/templates/srp/data.html:71
|
||||||
#: allianceauth/srp/templates/srp/data.html:151
|
#: allianceauth/srp/templates/srp/data.html:157
|
||||||
#: allianceauth/srp/templates/srp/management.html:30
|
#: allianceauth/srp/templates/srp/management.html:30
|
||||||
msgid "Total ISK Cost:"
|
msgid "Total ISK Cost:"
|
||||||
msgstr "전체 ISK 비용:"
|
msgstr "전체 ISK 비용:"
|
||||||
|
|
||||||
#: allianceauth/srp/templates/srp/data.html:79
|
#: allianceauth/srp/templates/srp/data.html:79
|
||||||
#: allianceauth/srp/templates/srp/data.html:159
|
#: allianceauth/srp/templates/srp/data.html:165
|
||||||
msgid "Are you sure you want to delete SRP requests?"
|
msgid "Are you sure you want to delete SRP requests?"
|
||||||
msgstr "SRP 보상 요청을 삭제하시겠습니까?"
|
msgstr "SRP 보상 요청을 삭제하시겠습니까?"
|
||||||
|
|
||||||
@@ -1702,7 +1702,7 @@ msgstr "금액을 수정하려면 클릭, 저장을 하고 다음으로 가려
|
|||||||
msgid "Post Time"
|
msgid "Post Time"
|
||||||
msgstr "작성 시간"
|
msgstr "작성 시간"
|
||||||
|
|
||||||
#: allianceauth/srp/templates/srp/data.html:168
|
#: allianceauth/srp/templates/srp/data.html:174
|
||||||
msgid "No SRP requests for this fleet."
|
msgid "No SRP requests for this fleet."
|
||||||
msgstr "이 플릿에는 SRP 보상 요청이 없습니다."
|
msgstr "이 플릿에는 SRP 보상 요청이 없습니다."
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-09-21 01:35+0000\n"
|
"POT-Creation-Date: 2020-10-11 03:43+0000\n"
|
||||||
"PO-Revision-Date: 2020-02-18 03:14+0000\n"
|
"PO-Revision-Date: 2020-02-18 03:14+0000\n"
|
||||||
"Last-Translator: Alexander Gess <de.alex.gess@gmail.com>, 2020\n"
|
"Last-Translator: Alexander Gess <de.alex.gess@gmail.com>, 2020\n"
|
||||||
"Language-Team: Russian (https://www.transifex.com/alliance-auth/teams/107430/ru/)\n"
|
"Language-Team: Russian (https://www.transifex.com/alliance-auth/teams/107430/ru/)\n"
|
||||||
@@ -25,7 +25,7 @@ msgstr ""
|
|||||||
msgid "A main character is required to perform that action. Add one below."
|
msgid "A main character is required to perform that action. Add one below."
|
||||||
msgstr "Необходимо указать основного персонажа. Добавим?"
|
msgstr "Необходимо указать основного персонажа. Добавим?"
|
||||||
|
|
||||||
#: allianceauth/authentication/forms.py:6
|
#: allianceauth/authentication/forms.py:5
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "Email"
|
msgstr "Email"
|
||||||
|
|
||||||
@@ -163,21 +163,21 @@ msgstr "Персонаж %(name)s уже добавлен."
|
|||||||
msgid "Unable to authenticate as the selected character."
|
msgid "Unable to authenticate as the selected character."
|
||||||
msgstr "Невозможно авторизировать этого персонажа. "
|
msgstr "Невозможно авторизировать этого персонажа. "
|
||||||
|
|
||||||
#: allianceauth/authentication/views.py:148
|
#: allianceauth/authentication/views.py:146
|
||||||
msgid "Registration token has expired."
|
msgid "Registration token has expired."
|
||||||
msgstr "Регистрационный токен просрочен."
|
msgstr "Регистрационный токен просрочен."
|
||||||
|
|
||||||
#: allianceauth/authentication/views.py:200
|
#: allianceauth/authentication/views.py:201
|
||||||
msgid ""
|
msgid ""
|
||||||
"Sent confirmation email. Please follow the link to confirm your email "
|
"Sent confirmation email. Please follow the link to confirm your email "
|
||||||
"address."
|
"address."
|
||||||
msgstr "Отправить подтверждающее письмо. Пожалуйста, подтвердите почту. "
|
msgstr "Отправить подтверждающее письмо. Пожалуйста, подтвердите почту. "
|
||||||
|
|
||||||
#: allianceauth/authentication/views.py:205
|
#: allianceauth/authentication/views.py:206
|
||||||
msgid "Confirmed your email address. Please login to continue."
|
msgid "Confirmed your email address. Please login to continue."
|
||||||
msgstr "Подтвердите Ваш email адрес. Зайти для подтверждения. "
|
msgstr "Подтвердите Ваш email адрес. Зайти для подтверждения. "
|
||||||
|
|
||||||
#: allianceauth/authentication/views.py:210
|
#: allianceauth/authentication/views.py:211
|
||||||
msgid "Registraion of new accounts it not allowed at this time."
|
msgid "Registraion of new accounts it not allowed at this time."
|
||||||
msgstr "Регистрация нового аккаунта сейчас невозможна."
|
msgstr "Регистрация нового аккаунта сейчас невозможна."
|
||||||
|
|
||||||
@@ -821,7 +821,7 @@ msgstr "Вы уже подали заявку на вступление этой
|
|||||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:144
|
#: allianceauth/hrapplications/templates/hrapplications/management.html:144
|
||||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:38
|
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:38
|
||||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:20
|
#: allianceauth/hrapplications/templates/hrapplications/view.html:20
|
||||||
#: allianceauth/srp/templates/srp/data.html:128
|
#: allianceauth/srp/templates/srp/data.html:134
|
||||||
#: allianceauth/srp/templates/srp/management.html:81
|
#: allianceauth/srp/templates/srp/management.html:81
|
||||||
msgid "Pending"
|
msgid "Pending"
|
||||||
msgstr "Ожидание"
|
msgstr "Ожидание"
|
||||||
@@ -915,7 +915,7 @@ msgstr "Действия"
|
|||||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:147
|
#: allianceauth/hrapplications/templates/hrapplications/management.html:147
|
||||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:40
|
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:40
|
||||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:16
|
#: allianceauth/hrapplications/templates/hrapplications/view.html:16
|
||||||
#: allianceauth/srp/templates/srp/data.html:120
|
#: allianceauth/srp/templates/srp/data.html:126
|
||||||
msgid "Approved"
|
msgid "Approved"
|
||||||
msgstr "Проверено"
|
msgstr "Проверено"
|
||||||
|
|
||||||
@@ -923,7 +923,7 @@ msgstr "Проверено"
|
|||||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:104
|
#: allianceauth/hrapplications/templates/hrapplications/management.html:104
|
||||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:149
|
#: allianceauth/hrapplications/templates/hrapplications/management.html:149
|
||||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:42
|
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:42
|
||||||
#: allianceauth/srp/templates/srp/data.html:124
|
#: allianceauth/srp/templates/srp/data.html:130
|
||||||
msgid "Rejected"
|
msgid "Rejected"
|
||||||
msgstr "Отменено "
|
msgstr "Отменено "
|
||||||
|
|
||||||
@@ -1306,11 +1306,11 @@ msgstr "Пароль"
|
|||||||
msgid "Password must be at least 8 characters long."
|
msgid "Password must be at least 8 characters long."
|
||||||
msgstr "Пароль должен быть не менее 8 символов."
|
msgstr "Пароль должен быть не менее 8 символов."
|
||||||
|
|
||||||
#: allianceauth/services/modules/discord/models.py:224
|
#: allianceauth/services/modules/discord/models.py:225
|
||||||
msgid "Discord Account Disabled"
|
msgid "Discord Account Disabled"
|
||||||
msgstr "Discord персонаж отключен"
|
msgstr "Discord персонаж отключен"
|
||||||
|
|
||||||
#: allianceauth/services/modules/discord/models.py:226
|
#: allianceauth/services/modules/discord/models.py:227
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your Discord account was disabeled automatically by Auth. If you think this "
|
"Your Discord account was disabeled automatically by Auth. If you think this "
|
||||||
"was a mistake, please contact an admin."
|
"was a mistake, please contact an admin."
|
||||||
@@ -1679,18 +1679,18 @@ msgid "Mark Completed"
|
|||||||
msgstr "Пометить законченным"
|
msgstr "Пометить законченным"
|
||||||
|
|
||||||
#: allianceauth/srp/templates/srp/data.html:70
|
#: allianceauth/srp/templates/srp/data.html:70
|
||||||
#: allianceauth/srp/templates/srp/data.html:150
|
#: allianceauth/srp/templates/srp/data.html:156
|
||||||
msgid "Total Losses:"
|
msgid "Total Losses:"
|
||||||
msgstr "Суммарные потери:"
|
msgstr "Суммарные потери:"
|
||||||
|
|
||||||
#: allianceauth/srp/templates/srp/data.html:71
|
#: allianceauth/srp/templates/srp/data.html:71
|
||||||
#: allianceauth/srp/templates/srp/data.html:151
|
#: allianceauth/srp/templates/srp/data.html:157
|
||||||
#: allianceauth/srp/templates/srp/management.html:30
|
#: allianceauth/srp/templates/srp/management.html:30
|
||||||
msgid "Total ISK Cost:"
|
msgid "Total ISK Cost:"
|
||||||
msgstr "Оценочная стоимость (ISK):"
|
msgstr "Оценочная стоимость (ISK):"
|
||||||
|
|
||||||
#: allianceauth/srp/templates/srp/data.html:79
|
#: allianceauth/srp/templates/srp/data.html:79
|
||||||
#: allianceauth/srp/templates/srp/data.html:159
|
#: allianceauth/srp/templates/srp/data.html:165
|
||||||
msgid "Are you sure you want to delete SRP requests?"
|
msgid "Are you sure you want to delete SRP requests?"
|
||||||
msgstr "Вы уверенны что хотите удалить запрос на SRP?"
|
msgstr "Вы уверенны что хотите удалить запрос на SRP?"
|
||||||
|
|
||||||
@@ -1722,7 +1722,7 @@ msgstr "Нажмите на значение для редактирования
|
|||||||
msgid "Post Time"
|
msgid "Post Time"
|
||||||
msgstr "Опубликованно"
|
msgstr "Опубликованно"
|
||||||
|
|
||||||
#: allianceauth/srp/templates/srp/data.html:168
|
#: allianceauth/srp/templates/srp/data.html:174
|
||||||
msgid "No SRP requests for this fleet."
|
msgid "No SRP requests for this fleet."
|
||||||
msgstr "SRP запросы отсутствуют"
|
msgstr "SRP запросы отсутствуют"
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@@ -4,18 +4,18 @@
|
|||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# Joel Falknau <ozirascal@gmail.com>, 2020
|
|
||||||
# Jesse . <sgeine@hotmail.com>, 2020
|
# Jesse . <sgeine@hotmail.com>, 2020
|
||||||
# Aaron BuBu <351793078@qq.com>, 2020
|
# Aaron BuBu <351793078@qq.com>, 2020
|
||||||
|
# Joel Falknau <ozirascal@gmail.com>, 2020
|
||||||
#
|
#
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-09-21 01:35+0000\n"
|
"POT-Creation-Date: 2020-10-11 03:43+0000\n"
|
||||||
"PO-Revision-Date: 2020-02-18 03:14+0000\n"
|
"PO-Revision-Date: 2020-02-18 03:14+0000\n"
|
||||||
"Last-Translator: Aaron BuBu <351793078@qq.com>, 2020\n"
|
"Last-Translator: Joel Falknau <ozirascal@gmail.com>, 2020\n"
|
||||||
"Language-Team: Chinese Simplified (https://www.transifex.com/alliance-auth/teams/107430/zh-Hans/)\n"
|
"Language-Team: Chinese Simplified (https://www.transifex.com/alliance-auth/teams/107430/zh-Hans/)\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
@@ -27,7 +27,7 @@ msgstr ""
|
|||||||
msgid "A main character is required to perform that action. Add one below."
|
msgid "A main character is required to perform that action. Add one below."
|
||||||
msgstr "只有主要角色才能执行这个操作。在下面添加一个"
|
msgstr "只有主要角色才能执行这个操作。在下面添加一个"
|
||||||
|
|
||||||
#: allianceauth/authentication/forms.py:6
|
#: allianceauth/authentication/forms.py:5
|
||||||
msgid "Email"
|
msgid "Email"
|
||||||
msgstr "电子邮箱"
|
msgstr "电子邮箱"
|
||||||
|
|
||||||
@@ -159,21 +159,21 @@ msgstr "添加%(name)s到您的账户失败:他们已经在一个账户中了"
|
|||||||
msgid "Unable to authenticate as the selected character."
|
msgid "Unable to authenticate as the selected character."
|
||||||
msgstr "无法作为选定的角色进行身份验证"
|
msgstr "无法作为选定的角色进行身份验证"
|
||||||
|
|
||||||
#: allianceauth/authentication/views.py:148
|
#: allianceauth/authentication/views.py:146
|
||||||
msgid "Registration token has expired."
|
msgid "Registration token has expired."
|
||||||
msgstr "注册令牌过期。"
|
msgstr "注册令牌过期。"
|
||||||
|
|
||||||
#: allianceauth/authentication/views.py:200
|
#: allianceauth/authentication/views.py:201
|
||||||
msgid ""
|
msgid ""
|
||||||
"Sent confirmation email. Please follow the link to confirm your email "
|
"Sent confirmation email. Please follow the link to confirm your email "
|
||||||
"address."
|
"address."
|
||||||
msgstr "已经发送了确认邮件。请按照链接确定您的电邮地址"
|
msgstr "已经发送了确认邮件。请按照链接确定您的电邮地址"
|
||||||
|
|
||||||
#: allianceauth/authentication/views.py:205
|
#: allianceauth/authentication/views.py:206
|
||||||
msgid "Confirmed your email address. Please login to continue."
|
msgid "Confirmed your email address. Please login to continue."
|
||||||
msgstr "已确认您的电邮地址。请登录以继续"
|
msgstr "已确认您的电邮地址。请登录以继续"
|
||||||
|
|
||||||
#: allianceauth/authentication/views.py:210
|
#: allianceauth/authentication/views.py:211
|
||||||
msgid "Registraion of new accounts it not allowed at this time."
|
msgid "Registraion of new accounts it not allowed at this time."
|
||||||
msgstr "现在不允许注册新账户。"
|
msgstr "现在不允许注册新账户。"
|
||||||
|
|
||||||
@@ -807,7 +807,7 @@ msgstr "你已经有了该组的未决申请"
|
|||||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:144
|
#: allianceauth/hrapplications/templates/hrapplications/management.html:144
|
||||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:38
|
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:38
|
||||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:20
|
#: allianceauth/hrapplications/templates/hrapplications/view.html:20
|
||||||
#: allianceauth/srp/templates/srp/data.html:128
|
#: allianceauth/srp/templates/srp/data.html:134
|
||||||
#: allianceauth/srp/templates/srp/management.html:81
|
#: allianceauth/srp/templates/srp/management.html:81
|
||||||
msgid "Pending"
|
msgid "Pending"
|
||||||
msgstr "待定"
|
msgstr "待定"
|
||||||
@@ -901,7 +901,7 @@ msgstr "操作"
|
|||||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:147
|
#: allianceauth/hrapplications/templates/hrapplications/management.html:147
|
||||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:40
|
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:40
|
||||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:16
|
#: allianceauth/hrapplications/templates/hrapplications/view.html:16
|
||||||
#: allianceauth/srp/templates/srp/data.html:120
|
#: allianceauth/srp/templates/srp/data.html:126
|
||||||
msgid "Approved"
|
msgid "Approved"
|
||||||
msgstr "通过"
|
msgstr "通过"
|
||||||
|
|
||||||
@@ -909,7 +909,7 @@ msgstr "通过"
|
|||||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:104
|
#: allianceauth/hrapplications/templates/hrapplications/management.html:104
|
||||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:149
|
#: allianceauth/hrapplications/templates/hrapplications/management.html:149
|
||||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:42
|
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:42
|
||||||
#: allianceauth/srp/templates/srp/data.html:124
|
#: allianceauth/srp/templates/srp/data.html:130
|
||||||
msgid "Rejected"
|
msgid "Rejected"
|
||||||
msgstr "拒绝"
|
msgstr "拒绝"
|
||||||
|
|
||||||
@@ -1292,11 +1292,11 @@ msgstr "密码"
|
|||||||
msgid "Password must be at least 8 characters long."
|
msgid "Password must be at least 8 characters long."
|
||||||
msgstr "密码至少要有8个字符啊,你也太不注重安全啦"
|
msgstr "密码至少要有8个字符啊,你也太不注重安全啦"
|
||||||
|
|
||||||
#: allianceauth/services/modules/discord/models.py:224
|
#: allianceauth/services/modules/discord/models.py:225
|
||||||
msgid "Discord Account Disabled"
|
msgid "Discord Account Disabled"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: allianceauth/services/modules/discord/models.py:226
|
#: allianceauth/services/modules/discord/models.py:227
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your Discord account was disabeled automatically by Auth. If you think this "
|
"Your Discord account was disabeled automatically by Auth. If you think this "
|
||||||
"was a mistake, please contact an admin."
|
"was a mistake, please contact an admin."
|
||||||
@@ -1655,18 +1655,18 @@ msgid "Mark Completed"
|
|||||||
msgstr "标记为已完成"
|
msgstr "标记为已完成"
|
||||||
|
|
||||||
#: allianceauth/srp/templates/srp/data.html:70
|
#: allianceauth/srp/templates/srp/data.html:70
|
||||||
#: allianceauth/srp/templates/srp/data.html:150
|
#: allianceauth/srp/templates/srp/data.html:156
|
||||||
msgid "Total Losses:"
|
msgid "Total Losses:"
|
||||||
msgstr "损失总额:"
|
msgstr "损失总额:"
|
||||||
|
|
||||||
#: allianceauth/srp/templates/srp/data.html:71
|
#: allianceauth/srp/templates/srp/data.html:71
|
||||||
#: allianceauth/srp/templates/srp/data.html:151
|
#: allianceauth/srp/templates/srp/data.html:157
|
||||||
#: allianceauth/srp/templates/srp/management.html:30
|
#: allianceauth/srp/templates/srp/management.html:30
|
||||||
msgid "Total ISK Cost:"
|
msgid "Total ISK Cost:"
|
||||||
msgstr "ISK花费总额:"
|
msgstr "ISK花费总额:"
|
||||||
|
|
||||||
#: allianceauth/srp/templates/srp/data.html:79
|
#: allianceauth/srp/templates/srp/data.html:79
|
||||||
#: allianceauth/srp/templates/srp/data.html:159
|
#: allianceauth/srp/templates/srp/data.html:165
|
||||||
msgid "Are you sure you want to delete SRP requests?"
|
msgid "Are you sure you want to delete SRP requests?"
|
||||||
msgstr "老哥,你确定要删了补损请求么?"
|
msgstr "老哥,你确定要删了补损请求么?"
|
||||||
|
|
||||||
@@ -1698,7 +1698,7 @@ msgstr "点击数值就可以编辑啦,按回车确认,按ESC取消"
|
|||||||
msgid "Post Time"
|
msgid "Post Time"
|
||||||
msgstr "发布时间"
|
msgstr "发布时间"
|
||||||
|
|
||||||
#: allianceauth/srp/templates/srp/data.html:168
|
#: allianceauth/srp/templates/srp/data.html:174
|
||||||
msgid "No SRP requests for this fleet."
|
msgid "No SRP requests for this fleet."
|
||||||
msgstr "这次起队没有补损请求!大捷"
|
msgstr "这次起队没有补损请求!大捷"
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import os
|
import os
|
||||||
from celery import Celery
|
from celery import Celery
|
||||||
|
from celery.app import trace
|
||||||
|
|
||||||
# set the default Django settings module for the 'celery' program.
|
# set the default Django settings module for the 'celery' program.
|
||||||
os.environ.setdefault('DJANGO_SETTINGS_MODULE', '{{ project_name }}.settings.local')
|
os.environ.setdefault('DJANGO_SETTINGS_MODULE', '{{ project_name }}.settings.local')
|
||||||
@@ -27,3 +28,6 @@ app.conf.ONCE = {
|
|||||||
|
|
||||||
# Load task modules from all registered Django app configs.
|
# Load task modules from all registered Django app configs.
|
||||||
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
|
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
|
||||||
|
|
||||||
|
# Remove result from default log message on task success
|
||||||
|
trace.LOG_SUCCESS = "Task %(name)s[%(id)s] succeeded in %(runtime)ss"
|
||||||
|
|||||||
@@ -64,12 +64,12 @@ BASE_DIR = os.path.dirname(PROJECT_DIR)
|
|||||||
MIDDLEWARE = [
|
MIDDLEWARE = [
|
||||||
'django.middleware.security.SecurityMiddleware',
|
'django.middleware.security.SecurityMiddleware',
|
||||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||||
|
'django.middleware.locale.LocaleMiddleware',
|
||||||
'django.middleware.common.CommonMiddleware',
|
'django.middleware.common.CommonMiddleware',
|
||||||
'django.middleware.csrf.CsrfViewMiddleware',
|
'django.middleware.csrf.CsrfViewMiddleware',
|
||||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||||
'django.contrib.messages.middleware.MessageMiddleware',
|
'django.contrib.messages.middleware.MessageMiddleware',
|
||||||
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
||||||
'django.middleware.locale.LocaleMiddleware',
|
|
||||||
]
|
]
|
||||||
|
|
||||||
ROOT_URLCONF = 'allianceauth.urls'
|
ROOT_URLCONF = 'allianceauth.urls'
|
||||||
@@ -86,6 +86,8 @@ LANGUAGES = (
|
|||||||
('zh-hans', ugettext('Chinese Simplified')),
|
('zh-hans', ugettext('Chinese Simplified')),
|
||||||
('ru', ugettext('Russian')),
|
('ru', ugettext('Russian')),
|
||||||
('ko', ugettext('Korean')),
|
('ko', ugettext('Korean')),
|
||||||
|
('fr', ugettext('French')),
|
||||||
|
('ja', ugettext('Japanese')),
|
||||||
)
|
)
|
||||||
|
|
||||||
TEMPLATES = [
|
TEMPLATES = [
|
||||||
@@ -138,6 +140,8 @@ AUTHENTICATION_BACKENDS = ['allianceauth.authentication.backends.StateBackend',
|
|||||||
|
|
||||||
LANGUAGE_CODE = 'en-us'
|
LANGUAGE_CODE = 'en-us'
|
||||||
|
|
||||||
|
LANGUAGE_COOKIE_AGE = 1209600
|
||||||
|
|
||||||
TIME_ZONE = 'UTC'
|
TIME_ZONE = 'UTC'
|
||||||
|
|
||||||
USE_I18N = True
|
USE_I18N = True
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ DATABASES['default'] = {
|
|||||||
ESI_SSO_CLIENT_ID = ''
|
ESI_SSO_CLIENT_ID = ''
|
||||||
ESI_SSO_CLIENT_SECRET = ''
|
ESI_SSO_CLIENT_SECRET = ''
|
||||||
ESI_SSO_CALLBACK_URL = ''
|
ESI_SSO_CALLBACK_URL = ''
|
||||||
|
ESI_USER_CONTACT_EMAIL = '' # A server maintainer that CCP can contact in case of issues.
|
||||||
|
|
||||||
# By default emails are validated before new users can log in.
|
# By default emails are validated before new users can log in.
|
||||||
# It's recommended to use a free service like SparkPost or Elastic Email to send email.
|
# It's recommended to use a free service like SparkPost or Elastic Email to send email.
|
||||||
|
|||||||
@@ -224,7 +224,7 @@ class DiscordUser(models.Model):
|
|||||||
user=_user,
|
user=_user,
|
||||||
title=gettext_lazy('Discord Account Disabled'),
|
title=gettext_lazy('Discord Account Disabled'),
|
||||||
message=gettext_lazy(
|
message=gettext_lazy(
|
||||||
'Your Discord account was disabeled automatically '
|
'Your Discord account was disabled automatically '
|
||||||
'by Auth. If you think this was a mistake, '
|
'by Auth. If you think this was a mistake, '
|
||||||
'please contact an admin.'
|
'please contact an admin.'
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
# Generated by Django 3.1.2 on 2020-10-11 10:09
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('mumble', '0010_mumbleuser_certhash'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='mumbleuser',
|
||||||
|
name='pwhash',
|
||||||
|
field=models.CharField(max_length=90),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -63,7 +63,7 @@ class MumbleManager(models.Manager):
|
|||||||
|
|
||||||
class MumbleUser(AbstractServiceModel):
|
class MumbleUser(AbstractServiceModel):
|
||||||
username = models.CharField(max_length=254, unique=True)
|
username = models.CharField(max_length=254, unique=True)
|
||||||
pwhash = models.CharField(max_length=80)
|
pwhash = models.CharField(max_length=90)
|
||||||
hashfn = models.CharField(max_length=20, default='sha1')
|
hashfn = models.CharField(max_length=20, default='sha1')
|
||||||
groups = models.TextField(blank=True, null=True)
|
groups = models.TextField(blank=True, null=True)
|
||||||
certhash = models.CharField(
|
certhash = models.CharField(
|
||||||
|
|||||||
@@ -211,4 +211,4 @@ class MumbleManagerTestCase(TestCase):
|
|||||||
pwhash = self.manager.gen_pwhash('test')
|
pwhash = self.manager.gen_pwhash('test')
|
||||||
|
|
||||||
self.assertEqual(pwhash[:15], '$bcrypt-sha256$')
|
self.assertEqual(pwhash[:15], '$bcrypt-sha256$')
|
||||||
self.assertEqual(len(pwhash), 75)
|
self.assertEqual(len(pwhash), 83)
|
||||||
|
|||||||
@@ -104,7 +104,13 @@ ESC to cancel{% endblocktrans %}"id="blah"></i></th>
|
|||||||
<tbody>
|
<tbody>
|
||||||
{% for srpfleetrequest in srpfleetrequests %}
|
{% for srpfleetrequest in srpfleetrequests %}
|
||||||
<tr>
|
<tr>
|
||||||
<td class="text-center">{{ srpfleetrequest.character.character_name }}</td>
|
<td class="text-center">
|
||||||
|
{% if srpfleetrequest.character.alliance.alliance_ticker %}
|
||||||
|
{{ srpfleetrequest.character.alliance.alliance_ticker }}
|
||||||
|
{% endif %}
|
||||||
|
[{{ srpfleetrequest.character.corporation.corporation_ticker }}]
|
||||||
|
{{ srpfleetrequest.character.character_name }}
|
||||||
|
</td>
|
||||||
<td class="text-center">
|
<td class="text-center">
|
||||||
<a href="{{ srpfleetrequest.killboard_link }}"
|
<a href="{{ srpfleetrequest.killboard_link }}"
|
||||||
target="_blank" class="label label-warning">Link</a>
|
target="_blank" class="label label-warning">Link</a>
|
||||||
|
|||||||
@@ -66,6 +66,18 @@ ul.list-group.list-group-horizontal > li.list-group-item {
|
|||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* highlight active menu items
|
||||||
|
--------------------------------------------------------------------------------------------------------------------- */
|
||||||
|
@media all {
|
||||||
|
.template-light-mode .nav-pills > li > a.active {
|
||||||
|
background-color: rgb(236, 240, 241);
|
||||||
|
}
|
||||||
|
|
||||||
|
.template-dark-mode .nav-pills > li > a.active {
|
||||||
|
background-color: rgb(48, 48, 48);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Small devices (tablets, 768px and up) */
|
/* Small devices (tablets, 768px and up) */
|
||||||
@media (min-width: 768px) {
|
@media (min-width: 768px) {
|
||||||
|
|
||||||
|
|||||||
@@ -3,52 +3,60 @@
|
|||||||
{% load navactive %}
|
{% load navactive %}
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<meta name="description" content="">
|
<meta name="description" content="">
|
||||||
<meta name="author" content="">
|
<meta name="author" content="">
|
||||||
{% include 'allianceauth/icons.html' %}
|
|
||||||
|
|
||||||
<title>{% block title %}{% block page_title %}{% endblock page_title %} - Alliance Auth{% endblock title %}</title>
|
{% include 'allianceauth/icons.html' %}
|
||||||
|
|
||||||
{% include 'bundles/bootstrap-css.html' %}
|
<title>{% block title %}{% block page_title %}{% endblock page_title %} - Alliance Auth{% endblock title %}</title>
|
||||||
{% include 'bundles/fontawesome.html' %}
|
|
||||||
|
|
||||||
<link href="{% static 'css/auth-base.css' %}" type="text/css" rel="stylesheet">
|
{% include 'bundles/bootstrap-css.html' %}
|
||||||
{% block extra_css %}{% endblock extra_css %}
|
{% include 'bundles/fontawesome.html' %}
|
||||||
</head>
|
|
||||||
<body>
|
<link href="{% static 'css/auth-base.css' %}" type="text/css" rel="stylesheet">
|
||||||
{% if user.is_authenticated %}
|
|
||||||
<div id="wrapper" class="container">
|
{% block extra_css %}{% endblock extra_css %}
|
||||||
<!-- Navigation -->
|
</head>
|
||||||
{% include 'allianceauth/top-menu.html' %}
|
|
||||||
<div class="row" id="site-body-wrapper">
|
<body class="{% if NIGHT_MODE %}template-dark-mode{% else %}template-light-mode{% endif %}">
|
||||||
{% include 'allianceauth/side-menu.html' %}
|
{% if user.is_authenticated %}
|
||||||
<div class="col-sm-10">
|
<div id="wrapper" class="container">
|
||||||
{% if messages %}
|
<!-- Navigation -->
|
||||||
<br>
|
{% include 'allianceauth/top-menu.html' %}
|
||||||
{% for message in messages %}
|
|
||||||
<div class="alert alert-{{ message.level_tag }}">{{ message }}</div>
|
<div class="row" id="site-body-wrapper">
|
||||||
{% if not forloop.last %}
|
{% include 'allianceauth/side-menu.html' %}
|
||||||
|
<div class="col-sm-10">
|
||||||
|
{% if messages %}
|
||||||
<br>
|
<br>
|
||||||
|
{% for message in messages %}
|
||||||
|
<div class="alert alert-{{ message.level_tag }}">{{ message }}</div>
|
||||||
|
{% if not forloop.last %}
|
||||||
|
<br>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
|
||||||
{% endif %}
|
{% block content %}
|
||||||
{% block content %}
|
{% endblock content %}
|
||||||
{% endblock content %}
|
</div>
|
||||||
|
<div class="clearfix"></div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="clearfix"></div>
|
{% endif %}
|
||||||
</div>
|
|
||||||
</div>
|
{% include 'bundles/bootstrap-js.html' %}
|
||||||
{% endif %}
|
|
||||||
{% include 'bundles/bootstrap-js.html' %}
|
{% block extra_javascript %}
|
||||||
{% block extra_javascript %}
|
{% endblock extra_javascript %}
|
||||||
{% endblock extra_javascript %}
|
|
||||||
<script>
|
<script>
|
||||||
{% block extra_script %}
|
{% block extra_script %}
|
||||||
{% endblock extra_script %}
|
{% endblock extra_script %}
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
<a href="{% url 'nightmode' %}?next={{ request.path|urlencode }}">
|
<a href="{% url 'nightmode' %}?next={{ request.path|urlencode }}">
|
||||||
{% trans "Night" %}
|
{% trans "Night" %}
|
||||||
<i class="fa {% if NIGHT_MODE %}fa-toggle-on{% else %}fa-toggle-off{% endif %}" aria-hidden="true"></i>
|
<i class="fas {% if NIGHT_MODE %}fa-toggle-on{% else %}fa-toggle-off{% endif %}" aria-hidden="true"></i>
|
||||||
</a>
|
</a>
|
||||||
13
docs/conf.py
13
docs/conf.py
@@ -28,8 +28,6 @@ on_rtd = os.environ.get('READTHEDOCS', None) == 'True'
|
|||||||
|
|
||||||
# Support for recommonmark module
|
# Support for recommonmark module
|
||||||
import recommonmark
|
import recommonmark
|
||||||
|
|
||||||
from recommonmark.parser import CommonMarkParser
|
|
||||||
from recommonmark.transform import AutoStructify
|
from recommonmark.transform import AutoStructify
|
||||||
|
|
||||||
# -- General configuration ------------------------------------------------
|
# -- General configuration ------------------------------------------------
|
||||||
@@ -41,8 +39,11 @@ from recommonmark.transform import AutoStructify
|
|||||||
# Add any Sphinx extension module names here, as strings. They can be
|
# Add any Sphinx extension module names here, as strings. They can be
|
||||||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||||
# ones.
|
# ones.
|
||||||
|
|
||||||
extensions = [
|
extensions = [
|
||||||
|
'sphinx_rtd_theme',
|
||||||
'sphinx.ext.autodoc',
|
'sphinx.ext.autodoc',
|
||||||
|
'recommonmark',
|
||||||
]
|
]
|
||||||
|
|
||||||
# Add any paths that contain templates here, relative to this directory.
|
# Add any paths that contain templates here, relative to this directory.
|
||||||
@@ -76,7 +77,7 @@ version = u'2.0'
|
|||||||
#
|
#
|
||||||
# This is also used if you do content translation via gettext catalogs.
|
# This is also used if you do content translation via gettext catalogs.
|
||||||
# Usually you set "language" from the command line for these cases.
|
# Usually you set "language" from the command line for these cases.
|
||||||
language = None
|
language = 'en'
|
||||||
|
|
||||||
# List of patterns, relative to source directory, that match files and
|
# List of patterns, relative to source directory, that match files and
|
||||||
# directories to ignore when looking for source files.
|
# directories to ignore when looking for source files.
|
||||||
@@ -171,12 +172,6 @@ texinfo_documents = [
|
|||||||
'Miscellaneous'),
|
'Miscellaneous'),
|
||||||
]
|
]
|
||||||
|
|
||||||
# Markdown support
|
|
||||||
source_parsers = {
|
|
||||||
'.md': CommonMarkParser,
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
def setup(app):
|
def setup(app):
|
||||||
app.add_config_value('recommonmark_config', {
|
app.add_config_value('recommonmark_config', {
|
||||||
'auto_toc_tree_section': 'Contents',
|
'auto_toc_tree_section': 'Contents',
|
||||||
|
|||||||
@@ -181,6 +181,8 @@ For **scopes** your SSO app needs to have at least `publicData`. Additional scop
|
|||||||
|
|
||||||
As **callback URL** you want to define the URL of your Alliance Auth site plus the route: `/sso/callback`. Example for a valid callback URL: `https://auth.example.com/sso/callback`
|
As **callback URL** you want to define the URL of your Alliance Auth site plus the route: `/sso/callback`. Example for a valid callback URL: `https://auth.example.com/sso/callback`
|
||||||
|
|
||||||
|
In `local.py` you will need to set `ESI_USER_CONTACT_EMAIL` to an email address to ensure that CCP has reliable contact information for you.
|
||||||
|
|
||||||
### Alliance Auth Project
|
### Alliance Auth Project
|
||||||
|
|
||||||
Ensure wheel is available before continuing:
|
Ensure wheel is available before continuing:
|
||||||
|
|||||||
@@ -1,3 +1,16 @@
|
|||||||
sphinx>=1.4.0,<1.5.0
|
# Docs Specific Packages
|
||||||
sphinx_rtd_theme>=0.1.9
|
sphinx>=3.2.1,<4.0.0
|
||||||
recommonmark==0.4.0
|
sphinx_rtd_theme==0.5.0
|
||||||
|
recommonmark==0.6.0
|
||||||
|
|
||||||
|
# Autodoc dependencies
|
||||||
|
django>=3.1.1,<4.0.0
|
||||||
|
django-celery-beat>=2.0.0
|
||||||
|
django-bootstrap-form
|
||||||
|
django-sortedm2m
|
||||||
|
django-esi>=1.5,<3.0
|
||||||
|
celery>=4.3.0,<5.0.0,!=4.4.4
|
||||||
|
celery_once
|
||||||
|
passlib
|
||||||
|
redis>=3.3.1,<4.0.0
|
||||||
|
django-nose
|
||||||
4
setup.py
4
setup.py
@@ -26,14 +26,14 @@ install_requires = [
|
|||||||
'django-bootstrap-form',
|
'django-bootstrap-form',
|
||||||
'django-registration>=3.1',
|
'django-registration>=3.1',
|
||||||
'django-sortedm2m',
|
'django-sortedm2m',
|
||||||
'django-redis-cache>=2.1.0,<3.0.0',
|
'django-redis-cache>=2.1.0,<3.0.0,!=2.1.3', # 2.1.3 != Django 3 (Issue 1264)
|
||||||
'django-celery-beat>=2.0.0',
|
'django-celery-beat>=2.0.0',
|
||||||
|
|
||||||
'openfire-restapi',
|
'openfire-restapi',
|
||||||
'sleekxmpp',
|
'sleekxmpp',
|
||||||
'pydiscourse',
|
'pydiscourse',
|
||||||
|
|
||||||
'django-esi>=1.5,<3.0'
|
'django-esi>=2.0.4,<3.0'
|
||||||
]
|
]
|
||||||
|
|
||||||
testing_extras = [
|
testing_extras = [
|
||||||
|
|||||||
Reference in New Issue
Block a user