mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2026-02-05 14:46:20 +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
|
||||
python:
|
||||
version: 3.7
|
||||
install:
|
||||
- method: pip
|
||||
path: .
|
||||
extra_requirements:
|
||||
- testing
|
||||
system_packages: true
|
||||
version: 3.7
|
||||
install:
|
||||
- requirements: docs/requirements.txt
|
||||
@@ -1,7 +1,7 @@
|
||||
# This will make sure the app is always imported when
|
||||
# Django starts so that shared_task will use this app.
|
||||
|
||||
__version__ = '2.8.0a2'
|
||||
__version__ = '2.8.1'
|
||||
__title__ = 'Alliance Auth'
|
||||
__url__ = 'https://gitlab.com/allianceauth/allianceauth'
|
||||
NAME = '%s v%s' % (__title__, __version__)
|
||||
|
||||
@@ -137,7 +137,12 @@ class RegistrationView(BaseRegistrationView):
|
||||
template_name = "public/register.html"
|
||||
email_body_template = "registration/activation_email.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):
|
||||
# We're storing a key in the session to pass user information from OAuth response. Make sure it's there.
|
||||
@@ -208,5 +213,5 @@ def activation_complete(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')
|
||||
|
||||
@@ -7,6 +7,8 @@ from jsonschema.exceptions import RefResolutionError
|
||||
from django.conf import settings
|
||||
from esi.clients import esi_client_factory
|
||||
|
||||
from allianceauth import __version__
|
||||
|
||||
|
||||
SWAGGER_SPEC_PATH = os.path.join(os.path.dirname(
|
||||
os.path.abspath(__file__)), 'swagger.json'
|
||||
@@ -166,7 +168,7 @@ class EveSwaggerProvider(EveProvider):
|
||||
else:
|
||||
try:
|
||||
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):
|
||||
logger.exception(
|
||||
@@ -182,7 +184,7 @@ class EveSwaggerProvider(EveProvider):
|
||||
def client(self):
|
||||
if self._client is None:
|
||||
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
|
||||
|
||||
|
||||
@@ -592,3 +592,12 @@ class TestEveSwaggerProvider(TestCase):
|
||||
self.assertTrue(mock_esi_client_factory.called)
|
||||
self.assertIsNotNone(my_provider._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):
|
||||
""" This class ensures only authorized users will see the menu entry """
|
||||
|
||||
def __init__(self):
|
||||
# setup menu entry for sidebar
|
||||
MenuItemHook.__init__(
|
||||
self,
|
||||
text=_('Group Management'),
|
||||
classes='fas fa-users-cog fa-fw',
|
||||
url_name='groupmanagement:management',
|
||||
text=_("Group Management"),
|
||||
classes="fas fa-users-cog fa-fw",
|
||||
url_name="groupmanagement:management",
|
||||
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):
|
||||
@@ -25,14 +30,14 @@ class GroupManagementMenuItem(MenuItemHook):
|
||||
app_count = GroupManager.pending_requests_count_for_user(request.user)
|
||||
self.count = app_count if app_count and app_count > 0 else None
|
||||
return MenuItemHook.render(self, request)
|
||||
return ''
|
||||
return ""
|
||||
|
||||
|
||||
@hooks.register('menu_item_hook')
|
||||
@hooks.register("menu_item_hook")
|
||||
def register_menu():
|
||||
return GroupManagementMenuItem()
|
||||
|
||||
|
||||
@hooks.register('url_hook')
|
||||
@hooks.register("url_hook")
|
||||
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 "
|
||||
"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):
|
||||
return self.group.name
|
||||
|
||||
@@ -8,58 +8,65 @@
|
||||
<div class="col-lg-12">
|
||||
<br>
|
||||
{% include 'groupmanagement/menu.html' %}
|
||||
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
{{ group }} - {% trans 'Audit Log' %}
|
||||
{{ group }} - {% trans "Audit Log" %}
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
<a class="btn btn-default" href="{% url 'groupmanagement:membership' %}" role="button">
|
||||
{% trans "Back" %}
|
||||
</a>
|
||||
</p>
|
||||
</p>
|
||||
|
||||
{% if entries %}
|
||||
<div class="table-responsive">
|
||||
<table class="table table-striped" id="log-entries">
|
||||
<thead>
|
||||
<th class="text-center" scope="col">{% trans "Date/Time" %}</th>
|
||||
<th class="text-center" scope="col">{% trans "Requestor" %}</th>
|
||||
<th class="text-center" scope="col">{% trans "Character" %}</th>
|
||||
<th class="text-center" scope="col">{% trans "Corporation" %}</th>
|
||||
<th class="text-center" scope="col">{% trans "Type" %}</th>
|
||||
<th class="text-center" scope="col">{% trans "Action" %}</th>
|
||||
<th class="text-center" scope="col">{% trans "Actor" %}</th>
|
||||
<th scope="col">{% trans "Date/Time" %}</th>
|
||||
<th scope="col">{% trans "Requestor" %}</th>
|
||||
<th scope="col">{% trans "Character" %}</th>
|
||||
<th scope="col">{% trans "Corporation" %}</th>
|
||||
<th scope="col">{% trans "Type" %}</th>
|
||||
<th scope="col">{% trans "Action" %}</th>
|
||||
<th scope="col">{% trans "Actor" %}</th>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{% for entry in entries %}
|
||||
<tr>
|
||||
<td class="text-center">{{ entry.date|date:"Y-M-d, H:i" }}</td>
|
||||
<td class="text-center">{{ entry.requestor }}</td>
|
||||
<td class="text-center">{{ entry.req_char }}</td>
|
||||
<td class="text-center">{{ entry.req_char.corporation_name }}</td>
|
||||
<td class="text-center">{{ entry.type_to_str }}</td>
|
||||
<td>{{ entry.date|date:"Y-M-d, H:i" }}</td>
|
||||
<td>{{ entry.requestor }}</td>
|
||||
<td>{{ entry.req_char }}</td>
|
||||
<td>{{ entry.req_char.corporation_name }}</td>
|
||||
<td>{{ entry.type_to_str }}</td>
|
||||
|
||||
{% if entry.request_type is None %}
|
||||
<td class="text-center"> Removed</td>
|
||||
<td>{% trans "Removed" %}</td>
|
||||
{% else %}
|
||||
<td class="text-center">{{ entry.action_to_str }}</td>
|
||||
<td>{{ entry.action_to_str }}</td>
|
||||
{% endif %}
|
||||
<td class="text-center">{{ entry.request_actor }}</td>
|
||||
|
||||
<td>{{ entry.request_actor }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p class="text-muted">
|
||||
All times displayed are EVE/UTC.
|
||||
{% trans "All times displayed are EVE/UTC." %}
|
||||
</p>
|
||||
</div>
|
||||
{% else %}
|
||||
{% else %}
|
||||
<div class="clearfix"></div>
|
||||
<br>
|
||||
<div class="alert alert-warning text-center">
|
||||
<div class="alert alert-warning text-center">
|
||||
{% trans "No entries found for this group." %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -75,31 +82,30 @@
|
||||
{% endblock %}
|
||||
|
||||
{% block extra_script %}
|
||||
|
||||
$.fn.dataTable.moment = function ( format, locale ) {
|
||||
$.fn.dataTable.moment = function(format, locale) {
|
||||
var types = $.fn.dataTable.ext.type;
|
||||
|
||||
|
||||
// Add type detection
|
||||
types.detect.unshift( function ( d ) {
|
||||
return moment( d, format, locale, true ).isValid() ?
|
||||
types.detect.unshift(function(d) {
|
||||
return moment(d, format, locale, true).isValid() ?
|
||||
'moment-'+format :
|
||||
null;
|
||||
} );
|
||||
|
||||
});
|
||||
|
||||
// Add sorting method - use an integer for the sorting
|
||||
types.order[ 'moment-'+format+'-pre' ] = function ( d ) {
|
||||
return moment( d, format, locale, true ).unix();
|
||||
types.order[ 'moment-'+format+'-pre' ] = function(d) {
|
||||
return moment(d, format, locale, true).unix();
|
||||
};
|
||||
};
|
||||
|
||||
$(document).ready(function(){
|
||||
$.fn.dataTable.moment( 'YYYY-MMM-D, HH:mm' );
|
||||
$.fn.dataTable.moment('YYYY-MMM-D, HH:mm');
|
||||
|
||||
$('#log-entries').DataTable({
|
||||
order: [[ 0, 'desc' ], [ 1, 'asc' ] ],
|
||||
order: [[0, 'desc'], [1, 'asc']],
|
||||
filterDropDown:
|
||||
{
|
||||
columns: [
|
||||
columns: [
|
||||
{
|
||||
idx: 1
|
||||
},
|
||||
@@ -124,4 +130,3 @@
|
||||
});
|
||||
});
|
||||
{% endblock %}
|
||||
|
||||
|
||||
@@ -9,38 +9,35 @@
|
||||
<div class="col-lg-12">
|
||||
<br>
|
||||
{% include 'groupmanagement/menu.html' %}
|
||||
|
||||
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
{{ group.name }} - {% trans 'Members' %}
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
|
||||
<div class="panel-body">
|
||||
<p>
|
||||
<a class="btn btn-default" href="{% url 'groupmanagement:membership' %}" role="button">
|
||||
{% trans "Back" %}
|
||||
</a>
|
||||
</p>
|
||||
{% if group.user_set %}
|
||||
</p>
|
||||
|
||||
{% if group.user_set %}
|
||||
<div class="table-responsive">
|
||||
<table class="table table-aa" id="tab_group_members">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="text-right">{% trans "Portrait" %}</th>
|
||||
<th class="text-center">{% trans "Character" %}</th>
|
||||
<th class="text-center">{% trans "Organization" %}</th>
|
||||
<th class="text-center"></th>
|
||||
<tr>
|
||||
<th>{% trans "Character" %}</th>
|
||||
<th>{% trans "Organization" %}</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{% for member in members %}
|
||||
<tr>
|
||||
<td class="text-right">
|
||||
{% if member.is_leader %}
|
||||
<i class="fas fa-star"></i>
|
||||
{% endif %}
|
||||
<img src="{{ member.main_char|character_portrait_url:32 }}" class="img-circle">
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<tr>
|
||||
<td>
|
||||
<img src="{{ member.main_char|character_portrait_url:32 }}" class="img-circle" style="margin-right: 1rem;">
|
||||
{% if member.main_char %}
|
||||
<a href="{{ member.main_char|evewho_character_url }}" target="_blank">
|
||||
{{ member.main_char.character_name }}
|
||||
@@ -48,28 +45,36 @@
|
||||
{% else %}
|
||||
{{ member.user.username }}
|
||||
{% endif %}
|
||||
|
||||
{% if member.is_leader %}
|
||||
<i class="fas fa-star" title="{% trans "Group leader" %}" style="margin-left: 1rem;"></i>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="text-center">
|
||||
|
||||
<td>
|
||||
{% if member.main_char %}
|
||||
<a href="{{ member.main_char|dotlan_corporation_url }}" target="_blank">
|
||||
{{ member.main_char.corporation_name }}
|
||||
</a><br>
|
||||
{{ member.main_char.alliance_name|default_if_none:"" }}
|
||||
{% else %}
|
||||
(unknown)
|
||||
{% trans "(unknown)" %}
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<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>
|
||||
</td>
|
||||
|
||||
<td class="text-right">
|
||||
<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>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</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>
|
||||
{% else %}
|
||||
<div class="alert alert-warning text-center">
|
||||
@@ -77,7 +82,7 @@
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{% endblock content %}
|
||||
@@ -93,10 +98,13 @@
|
||||
{% block extra_script %}
|
||||
$(document).ready(function(){
|
||||
$('#tab_group_members').DataTable({
|
||||
order: [ [ 1, "asc" ] ],
|
||||
order: [[0, "asc"]],
|
||||
columnDefs: [
|
||||
{ "sortable": false, "targets": [0, 3] },
|
||||
{
|
||||
"sortable": false,
|
||||
"targets": [2]
|
||||
},
|
||||
]
|
||||
});
|
||||
});
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
|
||||
@@ -9,31 +9,36 @@
|
||||
<div class="col-lg-12">
|
||||
<br>
|
||||
{% include 'groupmanagement/menu.html' %}
|
||||
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
{% trans "Groups" %}
|
||||
</div>
|
||||
|
||||
<div class="panel-body">
|
||||
{% if groups %}
|
||||
{% if groups %}
|
||||
<div class="table-responsive">
|
||||
<table class="table table-aa">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="text-center">{% trans "Name" %}</th>
|
||||
<th class="text-center">{% trans "Description" %}</th>
|
||||
<th class="text-center">{% trans "Status" %}</th>
|
||||
<th class="text-center">{% trans "Member Count" %}</th>
|
||||
<th class="text-center"></th>
|
||||
<th>{% trans "Name" %}</th>
|
||||
<th>{% trans "Description" %}</th>
|
||||
<th>{% trans "Status" %}</th>
|
||||
<th style="white-space: nowrap;">{% trans "Member Count" %}</th>
|
||||
<th style="min-width: 170px;"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{% for group in groups %}
|
||||
<tr>
|
||||
<td class="text-center">
|
||||
<a href="{% url 'groupmanagement:membership_list' group.id %}">{{ group.name }}</a>
|
||||
<td>
|
||||
<a href="{% url 'groupmanagement:membership' group.id %}">{{ group.name }}</a>
|
||||
</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 %}
|
||||
<span class="label label-info">{% trans "Hidden" %}</span>
|
||||
{% elif group.authgroup.open %}
|
||||
@@ -42,21 +47,23 @@
|
||||
<span class="label label-default">{% trans "Requestable" %}</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td class="text-center">
|
||||
|
||||
<td class="text-right">
|
||||
{{ group.num_members }}
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<a href="{% url 'groupmanagement:membership_list' group.id %}" class="btn btn-primary"
|
||||
title="{% trans "View Members" %}">
|
||||
<i class="glyphicon glyphicon-eye-open"></i>
|
||||
|
||||
<td class="text-right">
|
||||
<a href="{% url 'groupmanagement:membership' group.id %}" class="btn btn-primary" title="{% trans "View Members" %}">
|
||||
<i class="glyphicon glyphicon-eye-open"></i>
|
||||
</a>
|
||||
|
||||
<a href="{% url "groupmanagement:audit_log" group.id %}" class="btn btn-info" title="{% trans "Audit Members" %}">
|
||||
<i class="glyphicon glyphicon-list-alt"></i>
|
||||
</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" %}">
|
||||
<i class="glyphicon glyphicon-copy"></i>
|
||||
</a>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
@@ -72,9 +79,11 @@
|
||||
</div>
|
||||
</div>
|
||||
{% endblock content %}
|
||||
{% block extra_javascript %}
|
||||
|
||||
{% block extra_javascript %}
|
||||
{% include 'bundles/clipboard-js.html' %}
|
||||
<script>
|
||||
new ClipboardJS('#clipboard-copy');
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
<script>
|
||||
new ClipboardJS('#clipboard-copy');
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
{% block page_title %}{% trans "Available Groups" %}{% endblock page_title %}
|
||||
{% block extra_css %}{% endblock extra_css %}
|
||||
url
|
||||
|
||||
{% block content %}
|
||||
<div class="col-lg-12">
|
||||
<h1 class="page-header text-center">{% trans "Available Groups" %}</h1>
|
||||
@@ -12,17 +12,18 @@ url
|
||||
<table class="table table-aa">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="text-center">{% trans "Name" %}</th>
|
||||
<th class="text-center">{% trans "Description" %}</th>
|
||||
<th class="text-center">{% trans "Action" %}</th>
|
||||
<th>{% trans "Name" %}</th>
|
||||
<th>{% trans "Description" %}</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{% for g in groups %}
|
||||
<tr>
|
||||
<td class="text-center">{{ g.group.name }}</td>
|
||||
<td class="text-center">{{ g.group.authgroup.description|urlize }}</td>
|
||||
<td class="text-center">
|
||||
<td>{{ g.group.name }}</td>
|
||||
<td>{{ g.group.authgroup.description|linebreaks|urlize }}</td>
|
||||
<td class="text-right">
|
||||
{% if g.group in user.groups.all %}
|
||||
{% if not g.request %}
|
||||
<a href="{% url 'groupmanagement:request_leave' g.group.id %}" class="btn btn-danger">
|
||||
@@ -59,5 +60,4 @@ url
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
{% endblock content %}
|
||||
|
||||
@@ -4,25 +4,26 @@
|
||||
{% load evelinks %}
|
||||
|
||||
{% 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 %}
|
||||
|
||||
{% block content %}
|
||||
<div class="col-lg-12">
|
||||
<br>
|
||||
{% include 'groupmanagement/menu.html' %}
|
||||
|
||||
|
||||
<ul class="nav nav-tabs">
|
||||
<li class="active">
|
||||
<a data-toggle="tab" href="#add">
|
||||
{% trans "Join Requests" %}
|
||||
{% trans "Join Requests" %}
|
||||
|
||||
{% if acceptrequests %}
|
||||
<span class="badge">{{ acceptrequests|length }}</span>
|
||||
{% endif %}
|
||||
@@ -31,133 +32,130 @@
|
||||
<li>
|
||||
<a data-toggle="tab" href="#leave">
|
||||
{% trans "Leave Requests" %}
|
||||
|
||||
{% if leaverequests %}
|
||||
<span class="badge">{{ leaverequests|length }}</span>
|
||||
{% endif %}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="tab-content">
|
||||
|
||||
<div class="tab-content">
|
||||
<div id="add" class="tab-pane fade in active panel panel-default">
|
||||
<div class="panel-body">
|
||||
{% if acceptrequests %}
|
||||
<div class="table-responsive">
|
||||
<table class="table table-aa">
|
||||
<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>
|
||||
<td class="text-right">
|
||||
<img src="{{ acceptrequest.main_char|character_portrait_url:32 }}" class="img-circle">
|
||||
</td>
|
||||
<td class="text-center">
|
||||
{% 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>
|
||||
{% if acceptrequests %}
|
||||
<div class="table-responsive">
|
||||
<table class="table table-aa">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{% trans "Character" %}</th>
|
||||
<th>{% trans "Organization" %}</th>
|
||||
<th>{% trans "Group" %}</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="alert alert-warning text-center">{% trans "No group add requests." %}</div>
|
||||
{% endif %}
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{% for acceptrequest in acceptrequests %}
|
||||
<tr>
|
||||
<td>
|
||||
<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 id="leave" class="tab-pane fade panel panel-default">
|
||||
<div class="panel-body">
|
||||
{% if leaverequests %}
|
||||
<div class="table-responsive">
|
||||
<table class="table table-aa">
|
||||
<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>
|
||||
<td class="text-right">
|
||||
<img src="{{ leaverequest.main_char|character_portrait_url:32 }}" class="img-circle">
|
||||
</td>
|
||||
<td class="text-center">
|
||||
{% 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>
|
||||
{% if leaverequests %}
|
||||
<div class="table-responsive">
|
||||
<table class="table table-aa">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{% trans "Character" %}</th>
|
||||
<th>{% trans "Organization" %}</th>
|
||||
<th>{% trans "Group" %}</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="alert alert-warning text-center">{% trans "No group leave requests." %}</div>
|
||||
{% endif %}
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{% for leaverequest in leaverequests %}
|
||||
<tr>
|
||||
<td>
|
||||
<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>
|
||||
{% endblock content %}
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
|
||||
<nav class="navbar navbar-default">
|
||||
<div class="container-fluid">
|
||||
|
||||
<div class="navbar-header">
|
||||
<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>
|
||||
@@ -12,7 +11,7 @@
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="">{% trans "Group Management" %}</a>
|
||||
<a class="navbar-brand" href="{% url 'groupmanagement:management' %}">{% trans "Group Management" %}</a>
|
||||
</div>
|
||||
|
||||
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
|
||||
@@ -20,11 +19,10 @@
|
||||
<li class="{% navactive request 'groupmanagement:management' %}">
|
||||
<a href="{% url 'groupmanagement:management' %}">{% trans "Group Requests" %}</a>
|
||||
</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>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
@@ -1,29 +1,52 @@
|
||||
from . import views
|
||||
|
||||
from django.conf.urls import url
|
||||
app_name = 'groupmanagement'
|
||||
|
||||
app_name = "groupmanagement"
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^groups/', views.groups_view, name='groups'),
|
||||
url(r'^management/', views.group_management,
|
||||
name='management'),
|
||||
url(r'^membership/$', views.group_membership,
|
||||
name='membership'),
|
||||
url(r'^membership/(\w+)/$', views.group_membership_list,
|
||||
name='membership_list'),
|
||||
url(r'^membership/(\w+)/audit/$', views.group_membership_audit, name="audit_log"),
|
||||
url(r'^membership/(\w+)/remove/(\w+)/$', views.group_membership_remove,
|
||||
name='membership_remove'),
|
||||
url(r'^request_add/(\w+)', views.group_request_add,
|
||||
name='request_add'),
|
||||
url(r'^request/accept/(\w+)', views.group_accept_request,
|
||||
name='accept_request'),
|
||||
url(r'^request/reject/(\w+)', views.group_reject_request,
|
||||
name='reject_request'),
|
||||
url(r'^request_leave/(\w+)', views.group_request_leave,
|
||||
name='request_leave'),
|
||||
url(r'leave_request/accept/(\w+)', views.group_leave_accept_request,
|
||||
name='leave_accept_request'),
|
||||
url(r'^leave_request/reject/(\w+)', views.group_leave_reject_request,
|
||||
name='leave_reject_request'),
|
||||
# groups
|
||||
url(r"^groups/$", views.groups_view, name="groups"),
|
||||
url(r"^group/request/join/(\w+)/$", views.group_request_add, name="request_add"),
|
||||
url(
|
||||
r"^group/request/leave/(\w+)/$", views.group_request_leave, name="request_leave"
|
||||
),
|
||||
# group management
|
||||
url(r"^groupmanagement/requests/$", views.group_management, name="management"),
|
||||
url(r"^groupmanagement/membership/$", views.group_membership, name="membership"),
|
||||
url(
|
||||
r"^groupmanagement/membership/(\w+)/$",
|
||||
views.group_membership_list,
|
||||
name="membership",
|
||||
),
|
||||
url(
|
||||
r"^groupmanagement/membership/(\w+)/audit-log/$",
|
||||
views.group_membership_audit,
|
||||
name="audit_log",
|
||||
),
|
||||
url(
|
||||
r"^groupmanagement/membership/(\w+)/remove/(\w+)/$",
|
||||
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",
|
||||
),
|
||||
]
|
||||
|
||||
@@ -103,7 +103,7 @@ def group_membership_list(request, group_id):
|
||||
|
||||
# Check its a joinable group i.e. not corp or internal
|
||||
# And the user has permission to manage it
|
||||
if (not GroupManager.check_internal_group(group)
|
||||
if (not GroupManager.check_internal_group(group)
|
||||
or not GroupManager.can_manage_group(request.user, group)
|
||||
):
|
||||
logger.warning(
|
||||
@@ -132,7 +132,7 @@ def group_membership_list(request, group_id):
|
||||
render_items = {'group': group, 'members': members}
|
||||
|
||||
return render(
|
||||
request, 'groupmanagement/groupmembers.html',
|
||||
request, 'groupmanagement/groupmembers.html',
|
||||
context=render_items
|
||||
)
|
||||
|
||||
@@ -166,7 +166,7 @@ def group_membership_remove(request, group_id, user_id):
|
||||
except ObjectDoesNotExist:
|
||||
messages.warning(request, _("Group does not exist"))
|
||||
|
||||
return redirect('groupmanagement:membership_list', group_id)
|
||||
return redirect('groupmanagement:membership', group_id)
|
||||
|
||||
|
||||
@login_required
|
||||
@@ -312,18 +312,18 @@ def group_leave_reject_request(request, group_request_id):
|
||||
@login_required
|
||||
def groups_view(request):
|
||||
logger.debug("groups_view called by user %s" % request.user)
|
||||
|
||||
|
||||
groups_qs = GroupManager.get_joinable_groups_for_user(
|
||||
request.user, include_hidden=False
|
||||
)
|
||||
groups_qs = groups_qs.order_by('name')
|
||||
groups = []
|
||||
for group in groups_qs:
|
||||
for group in groups_qs:
|
||||
group_request = GroupRequest.objects\
|
||||
.filter(user=request.user)\
|
||||
.filter(group=group)
|
||||
groups.append({
|
||||
'group': group,
|
||||
'group': group,
|
||||
'request': group_request[0] if group_request else None
|
||||
})
|
||||
|
||||
|
||||
Binary file not shown.
@@ -6,16 +6,16 @@
|
||||
# Translators:
|
||||
# Erik Kalkoken <erik.kalkoken@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
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\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"
|
||||
"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"
|
||||
"MIME-Version: 1.0\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 ""
|
||||
"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"
|
||||
msgstr "E-Mail"
|
||||
|
||||
@@ -168,11 +168,11 @@ msgstr ""
|
||||
msgid "Unable to authenticate as the selected character."
|
||||
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."
|
||||
msgstr "Token zur Registrierung ist abgelaufen."
|
||||
|
||||
#: allianceauth/authentication/views.py:200
|
||||
#: allianceauth/authentication/views.py:201
|
||||
msgid ""
|
||||
"Sent confirmation email. Please follow the link to confirm your email "
|
||||
"address."
|
||||
@@ -180,12 +180,12 @@ msgstr ""
|
||||
"Bestätigungsmail gesendet. Bitte folge dem Link in der E-Mail zur "
|
||||
"Bestätigung."
|
||||
|
||||
#: allianceauth/authentication/views.py:205
|
||||
#: allianceauth/authentication/views.py:206
|
||||
msgid "Confirmed your email address. Please login to continue."
|
||||
msgstr ""
|
||||
"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."
|
||||
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/searchview.html:38
|
||||
#: 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
|
||||
msgid "Pending"
|
||||
msgstr "Beantragt"
|
||||
@@ -919,7 +919,7 @@ msgstr "Aktionen"
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:147
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:40
|
||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:16
|
||||
#: allianceauth/srp/templates/srp/data.html:120
|
||||
#: allianceauth/srp/templates/srp/data.html:126
|
||||
msgid "Approved"
|
||||
msgstr "Akzeptiert"
|
||||
|
||||
@@ -927,7 +927,7 @@ msgstr "Akzeptiert"
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:104
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:149
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:42
|
||||
#: allianceauth/srp/templates/srp/data.html:124
|
||||
#: allianceauth/srp/templates/srp/data.html:130
|
||||
msgid "Rejected"
|
||||
msgstr "Abgelehnt"
|
||||
|
||||
@@ -1310,11 +1310,11 @@ msgstr "Passwort"
|
||||
msgid "Password must be at least 8 characters long."
|
||||
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"
|
||||
msgstr "Discord Konto deaktiviert"
|
||||
|
||||
#: allianceauth/services/modules/discord/models.py:226
|
||||
#: allianceauth/services/modules/discord/models.py:227
|
||||
msgid ""
|
||||
"Your Discord account was disabeled automatically by Auth. If you think this "
|
||||
"was a mistake, please contact an admin."
|
||||
@@ -1684,18 +1684,18 @@ msgid "Mark Completed"
|
||||
msgstr "Als vollständig markieren"
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:70
|
||||
#: allianceauth/srp/templates/srp/data.html:150
|
||||
#: allianceauth/srp/templates/srp/data.html:156
|
||||
msgid "Total Losses:"
|
||||
msgstr "Verluste insgesamt:"
|
||||
|
||||
#: 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
|
||||
msgid "Total ISK Cost:"
|
||||
msgstr "ISK-Kosten insgesamt:"
|
||||
|
||||
#: 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?"
|
||||
msgstr "Bist Du sicher das Du SRP Anfragen löschen willst?"
|
||||
|
||||
@@ -1729,7 +1729,7 @@ msgstr ""
|
||||
msgid "Post Time"
|
||||
msgstr "Veröffentlichungszeit"
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:168
|
||||
#: allianceauth/srp/templates/srp/data.html:174
|
||||
msgid "No SRP requests for this fleet."
|
||||
msgstr "Keine SRP Anfragen für diese Flotte."
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\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"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/forms.py:6
|
||||
#: allianceauth/authentication/forms.py:5
|
||||
msgid "Email"
|
||||
msgstr ""
|
||||
|
||||
@@ -154,22 +154,22 @@ msgstr ""
|
||||
msgid "Unable to authenticate as the selected character."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/views.py:148
|
||||
#: allianceauth/authentication/views.py:146
|
||||
msgid "Registration token has expired."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/views.py:200
|
||||
#: allianceauth/authentication/views.py:201
|
||||
msgid ""
|
||||
"Sent confirmation email. Please follow the link to confirm your email "
|
||||
"address."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/views.py:205
|
||||
#: allianceauth/authentication/views.py:206
|
||||
msgid "Confirmed your email address. Please login to continue."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/authentication/views.py:210
|
||||
msgid "Registraion of new accounts it not allowed at this time."
|
||||
#: allianceauth/authentication/views.py:211
|
||||
msgid "Registration of new accounts is not allowed at this time."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/corputils/auth_hooks.py:10
|
||||
@@ -1289,13 +1289,13 @@ msgstr ""
|
||||
msgid "Password must be at least 8 characters long."
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/services/modules/discord/models.py:224
|
||||
#: allianceauth/services/modules/discord/models.py:225
|
||||
msgid "Discord Account Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/services/modules/discord/models.py:226
|
||||
#: allianceauth/services/modules/discord/models.py:227
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
|
||||
Binary file not shown.
@@ -4,17 +4,17 @@
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Joel Falknau <ozirascal@gmail.com>, 2020
|
||||
# frank1210 <francolopez_16@hotmail.com>, 2020
|
||||
# Joel Falknau <ozirascal@gmail.com>, 2020
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\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"
|
||||
"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"
|
||||
"MIME-Version: 1.0\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 ""
|
||||
"Un personaje principal es requerido para completar esta accion. Agregue uno"
|
||||
|
||||
#: allianceauth/authentication/forms.py:6
|
||||
#: allianceauth/authentication/forms.py:5
|
||||
msgid "Email"
|
||||
msgstr "E-mail"
|
||||
|
||||
@@ -161,24 +161,24 @@ msgstr ""
|
||||
msgid "Unable to authenticate as the selected character."
|
||||
msgstr "Imposible validar con el personaje seleccionado."
|
||||
|
||||
#: allianceauth/authentication/views.py:148
|
||||
#: allianceauth/authentication/views.py:146
|
||||
msgid "Registration token has expired."
|
||||
msgstr "El token de registracion expiro."
|
||||
|
||||
#: allianceauth/authentication/views.py:200
|
||||
#: allianceauth/authentication/views.py:201
|
||||
msgid ""
|
||||
"Sent confirmation email. Please follow the link to confirm your email "
|
||||
"address."
|
||||
msgstr ""
|
||||
"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."
|
||||
msgstr ""
|
||||
"Se ha confirmado su direccion de mail. Por favor igrese su token para "
|
||||
"continuar."
|
||||
|
||||
#: allianceauth/authentication/views.py:210
|
||||
#: allianceauth/authentication/views.py:211
|
||||
msgid "Registraion of new accounts it not allowed at this time."
|
||||
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/searchview.html:38
|
||||
#: 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
|
||||
msgid "Pending"
|
||||
msgstr "Pendiente"
|
||||
@@ -912,7 +912,7 @@ msgstr "Acciones"
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:147
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:40
|
||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:16
|
||||
#: allianceauth/srp/templates/srp/data.html:120
|
||||
#: allianceauth/srp/templates/srp/data.html:126
|
||||
msgid "Approved"
|
||||
msgstr "Aprovado"
|
||||
|
||||
@@ -920,7 +920,7 @@ msgstr "Aprovado"
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:104
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:149
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:42
|
||||
#: allianceauth/srp/templates/srp/data.html:124
|
||||
#: allianceauth/srp/templates/srp/data.html:130
|
||||
msgid "Rejected"
|
||||
msgstr "Rechazado"
|
||||
|
||||
@@ -1303,11 +1303,11 @@ msgstr "Contraseña"
|
||||
msgid "Password must be at least 8 characters long."
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/services/modules/discord/models.py:226
|
||||
#: allianceauth/services/modules/discord/models.py:227
|
||||
msgid ""
|
||||
"Your Discord account was disabeled automatically by Auth. If you think this "
|
||||
"was a mistake, please contact an admin."
|
||||
@@ -1666,18 +1666,18 @@ msgid "Mark Completed"
|
||||
msgstr "Marcar como Completo"
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:70
|
||||
#: allianceauth/srp/templates/srp/data.html:150
|
||||
#: allianceauth/srp/templates/srp/data.html:156
|
||||
msgid "Total Losses:"
|
||||
msgstr "Perdidas Totales:"
|
||||
|
||||
#: 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
|
||||
msgid "Total ISK Cost:"
|
||||
msgstr "Costo Total:"
|
||||
|
||||
#: 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?"
|
||||
msgstr "Estas seguro que quiere borrar las solicitudes de SRP"
|
||||
|
||||
@@ -1709,7 +1709,7 @@ msgstr ""
|
||||
msgid "Post Time"
|
||||
msgstr "Tiempo"
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:168
|
||||
#: allianceauth/srp/templates/srp/data.html:174
|
||||
msgid "No SRP requests for this fleet."
|
||||
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:
|
||||
# None None <khd1226543@gmail.com>, 2020
|
||||
# Seowon Jung <seowon@hawaii.edu>, 2020
|
||||
# Olgeda Choi <undead.choi@gmail.com>, 2020
|
||||
# Seowon Jung <seowon@hawaii.edu>, 2020
|
||||
# Lahty <js03js70@gmail.com>, 2020
|
||||
#
|
||||
#, fuzzy
|
||||
@@ -14,7 +14,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\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"
|
||||
"Last-Translator: Lahty <js03js70@gmail.com>, 2020\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."
|
||||
msgstr "해당 기능을 수행하려면 주 캐릭터가 요구됨. 아래에 하나를 추가하시오."
|
||||
|
||||
#: allianceauth/authentication/forms.py:6
|
||||
#: allianceauth/authentication/forms.py:5
|
||||
msgid "Email"
|
||||
msgstr "이메일"
|
||||
|
||||
@@ -163,21 +163,21 @@ msgstr "계정에 %(name)s를 추가하지 못했습니다. 이미 추가된 계
|
||||
msgid "Unable to authenticate as the selected character."
|
||||
msgstr "선택한 캐릭터로 인증을 수행할 수 없음"
|
||||
|
||||
#: allianceauth/authentication/views.py:148
|
||||
#: allianceauth/authentication/views.py:146
|
||||
msgid "Registration token has expired."
|
||||
msgstr "등록토큰 만료"
|
||||
|
||||
#: allianceauth/authentication/views.py:200
|
||||
#: allianceauth/authentication/views.py:201
|
||||
msgid ""
|
||||
"Sent confirmation email. Please follow the link to confirm your email "
|
||||
"address."
|
||||
msgstr "확인 메일 전송됨. 다음 링크를 눌러 이메일 주소를 확인하세요."
|
||||
|
||||
#: allianceauth/authentication/views.py:205
|
||||
#: allianceauth/authentication/views.py:206
|
||||
msgid "Confirmed your email address. Please login to continue."
|
||||
msgstr "이메일 주소가 확인되었습니다. 로그인 해주세요."
|
||||
|
||||
#: allianceauth/authentication/views.py:210
|
||||
#: allianceauth/authentication/views.py:211
|
||||
msgid "Registraion of new accounts it not allowed at this time."
|
||||
msgstr "현재 새로운 계정 등록은 받지않습니다."
|
||||
|
||||
@@ -811,7 +811,7 @@ msgstr "해당 그룹에 대한 참여신청이 보류되었습니다."
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:144
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:38
|
||||
#: 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
|
||||
msgid "Pending"
|
||||
msgstr "보류 중"
|
||||
@@ -905,7 +905,7 @@ msgstr "활동"
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:147
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:40
|
||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:16
|
||||
#: allianceauth/srp/templates/srp/data.html:120
|
||||
#: allianceauth/srp/templates/srp/data.html:126
|
||||
msgid "Approved"
|
||||
msgstr "승인"
|
||||
|
||||
@@ -913,7 +913,7 @@ msgstr "승인"
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:104
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:149
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:42
|
||||
#: allianceauth/srp/templates/srp/data.html:124
|
||||
#: allianceauth/srp/templates/srp/data.html:130
|
||||
msgid "Rejected"
|
||||
msgstr "거절"
|
||||
|
||||
@@ -1296,11 +1296,11 @@ msgstr "비밀번호"
|
||||
msgid "Password must be at least 8 characters long."
|
||||
msgstr "비밀번호는 8글자 이상이어야 합니다."
|
||||
|
||||
#: allianceauth/services/modules/discord/models.py:224
|
||||
#: allianceauth/services/modules/discord/models.py:225
|
||||
msgid "Discord Account Disabled"
|
||||
msgstr "디스코드 계정 비활성화"
|
||||
|
||||
#: allianceauth/services/modules/discord/models.py:226
|
||||
#: allianceauth/services/modules/discord/models.py:227
|
||||
msgid ""
|
||||
"Your Discord account was disabeled automatically by Auth. If you think this "
|
||||
"was a mistake, please contact an admin."
|
||||
@@ -1659,18 +1659,18 @@ msgid "Mark Completed"
|
||||
msgstr "표시 완료"
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:70
|
||||
#: allianceauth/srp/templates/srp/data.html:150
|
||||
#: allianceauth/srp/templates/srp/data.html:156
|
||||
msgid "Total Losses:"
|
||||
msgstr "전체 손실:"
|
||||
|
||||
#: 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
|
||||
msgid "Total ISK Cost:"
|
||||
msgstr "전체 ISK 비용:"
|
||||
|
||||
#: 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?"
|
||||
msgstr "SRP 보상 요청을 삭제하시겠습니까?"
|
||||
|
||||
@@ -1702,7 +1702,7 @@ msgstr "금액을 수정하려면 클릭, 저장을 하고 다음으로 가려
|
||||
msgid "Post Time"
|
||||
msgstr "작성 시간"
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:168
|
||||
#: allianceauth/srp/templates/srp/data.html:174
|
||||
msgid "No SRP requests for this fleet."
|
||||
msgstr "이 플릿에는 SRP 보상 요청이 없습니다."
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\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"
|
||||
"Last-Translator: Alexander Gess <de.alex.gess@gmail.com>, 2020\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."
|
||||
msgstr "Необходимо указать основного персонажа. Добавим?"
|
||||
|
||||
#: allianceauth/authentication/forms.py:6
|
||||
#: allianceauth/authentication/forms.py:5
|
||||
msgid "Email"
|
||||
msgstr "Email"
|
||||
|
||||
@@ -163,21 +163,21 @@ msgstr "Персонаж %(name)s уже добавлен."
|
||||
msgid "Unable to authenticate as the selected character."
|
||||
msgstr "Невозможно авторизировать этого персонажа. "
|
||||
|
||||
#: allianceauth/authentication/views.py:148
|
||||
#: allianceauth/authentication/views.py:146
|
||||
msgid "Registration token has expired."
|
||||
msgstr "Регистрационный токен просрочен."
|
||||
|
||||
#: allianceauth/authentication/views.py:200
|
||||
#: allianceauth/authentication/views.py:201
|
||||
msgid ""
|
||||
"Sent confirmation email. Please follow the link to confirm your email "
|
||||
"address."
|
||||
msgstr "Отправить подтверждающее письмо. Пожалуйста, подтвердите почту. "
|
||||
|
||||
#: allianceauth/authentication/views.py:205
|
||||
#: allianceauth/authentication/views.py:206
|
||||
msgid "Confirmed your email address. Please login to continue."
|
||||
msgstr "Подтвердите Ваш email адрес. Зайти для подтверждения. "
|
||||
|
||||
#: allianceauth/authentication/views.py:210
|
||||
#: allianceauth/authentication/views.py:211
|
||||
msgid "Registraion of new accounts it not allowed at this time."
|
||||
msgstr "Регистрация нового аккаунта сейчас невозможна."
|
||||
|
||||
@@ -821,7 +821,7 @@ msgstr "Вы уже подали заявку на вступление этой
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:144
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:38
|
||||
#: 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
|
||||
msgid "Pending"
|
||||
msgstr "Ожидание"
|
||||
@@ -915,7 +915,7 @@ msgstr "Действия"
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:147
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:40
|
||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:16
|
||||
#: allianceauth/srp/templates/srp/data.html:120
|
||||
#: allianceauth/srp/templates/srp/data.html:126
|
||||
msgid "Approved"
|
||||
msgstr "Проверено"
|
||||
|
||||
@@ -923,7 +923,7 @@ msgstr "Проверено"
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:104
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:149
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:42
|
||||
#: allianceauth/srp/templates/srp/data.html:124
|
||||
#: allianceauth/srp/templates/srp/data.html:130
|
||||
msgid "Rejected"
|
||||
msgstr "Отменено "
|
||||
|
||||
@@ -1306,11 +1306,11 @@ msgstr "Пароль"
|
||||
msgid "Password must be at least 8 characters long."
|
||||
msgstr "Пароль должен быть не менее 8 символов."
|
||||
|
||||
#: allianceauth/services/modules/discord/models.py:224
|
||||
#: allianceauth/services/modules/discord/models.py:225
|
||||
msgid "Discord Account Disabled"
|
||||
msgstr "Discord персонаж отключен"
|
||||
|
||||
#: allianceauth/services/modules/discord/models.py:226
|
||||
#: allianceauth/services/modules/discord/models.py:227
|
||||
msgid ""
|
||||
"Your Discord account was disabeled automatically by Auth. If you think this "
|
||||
"was a mistake, please contact an admin."
|
||||
@@ -1679,18 +1679,18 @@ msgid "Mark Completed"
|
||||
msgstr "Пометить законченным"
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:70
|
||||
#: allianceauth/srp/templates/srp/data.html:150
|
||||
#: allianceauth/srp/templates/srp/data.html:156
|
||||
msgid "Total Losses:"
|
||||
msgstr "Суммарные потери:"
|
||||
|
||||
#: 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
|
||||
msgid "Total ISK Cost:"
|
||||
msgstr "Оценочная стоимость (ISK):"
|
||||
|
||||
#: 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?"
|
||||
msgstr "Вы уверенны что хотите удалить запрос на SRP?"
|
||||
|
||||
@@ -1722,7 +1722,7 @@ msgstr "Нажмите на значение для редактирования
|
||||
msgid "Post Time"
|
||||
msgstr "Опубликованно"
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:168
|
||||
#: allianceauth/srp/templates/srp/data.html:174
|
||||
msgid "No SRP requests for this fleet."
|
||||
msgstr "SRP запросы отсутствуют"
|
||||
|
||||
|
||||
Binary file not shown.
@@ -4,18 +4,18 @@
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
# Translators:
|
||||
# Joel Falknau <ozirascal@gmail.com>, 2020
|
||||
# Jesse . <sgeine@hotmail.com>, 2020
|
||||
# Aaron BuBu <351793078@qq.com>, 2020
|
||||
# Joel Falknau <ozirascal@gmail.com>, 2020
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\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"
|
||||
"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"
|
||||
"MIME-Version: 1.0\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."
|
||||
msgstr "只有主要角色才能执行这个操作。在下面添加一个"
|
||||
|
||||
#: allianceauth/authentication/forms.py:6
|
||||
#: allianceauth/authentication/forms.py:5
|
||||
msgid "Email"
|
||||
msgstr "电子邮箱"
|
||||
|
||||
@@ -159,21 +159,21 @@ msgstr "添加%(name)s到您的账户失败:他们已经在一个账户中了"
|
||||
msgid "Unable to authenticate as the selected character."
|
||||
msgstr "无法作为选定的角色进行身份验证"
|
||||
|
||||
#: allianceauth/authentication/views.py:148
|
||||
#: allianceauth/authentication/views.py:146
|
||||
msgid "Registration token has expired."
|
||||
msgstr "注册令牌过期。"
|
||||
|
||||
#: allianceauth/authentication/views.py:200
|
||||
#: allianceauth/authentication/views.py:201
|
||||
msgid ""
|
||||
"Sent confirmation email. Please follow the link to confirm your email "
|
||||
"address."
|
||||
msgstr "已经发送了确认邮件。请按照链接确定您的电邮地址"
|
||||
|
||||
#: allianceauth/authentication/views.py:205
|
||||
#: allianceauth/authentication/views.py:206
|
||||
msgid "Confirmed your email address. Please login to continue."
|
||||
msgstr "已确认您的电邮地址。请登录以继续"
|
||||
|
||||
#: allianceauth/authentication/views.py:210
|
||||
#: allianceauth/authentication/views.py:211
|
||||
msgid "Registraion of new accounts it not allowed at this time."
|
||||
msgstr "现在不允许注册新账户。"
|
||||
|
||||
@@ -807,7 +807,7 @@ msgstr "你已经有了该组的未决申请"
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:144
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:38
|
||||
#: 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
|
||||
msgid "Pending"
|
||||
msgstr "待定"
|
||||
@@ -901,7 +901,7 @@ msgstr "操作"
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:147
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:40
|
||||
#: allianceauth/hrapplications/templates/hrapplications/view.html:16
|
||||
#: allianceauth/srp/templates/srp/data.html:120
|
||||
#: allianceauth/srp/templates/srp/data.html:126
|
||||
msgid "Approved"
|
||||
msgstr "通过"
|
||||
|
||||
@@ -909,7 +909,7 @@ msgstr "通过"
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:104
|
||||
#: allianceauth/hrapplications/templates/hrapplications/management.html:149
|
||||
#: allianceauth/hrapplications/templates/hrapplications/searchview.html:42
|
||||
#: allianceauth/srp/templates/srp/data.html:124
|
||||
#: allianceauth/srp/templates/srp/data.html:130
|
||||
msgid "Rejected"
|
||||
msgstr "拒绝"
|
||||
|
||||
@@ -1292,11 +1292,11 @@ msgstr "密码"
|
||||
msgid "Password must be at least 8 characters long."
|
||||
msgstr "密码至少要有8个字符啊,你也太不注重安全啦"
|
||||
|
||||
#: allianceauth/services/modules/discord/models.py:224
|
||||
#: allianceauth/services/modules/discord/models.py:225
|
||||
msgid "Discord Account Disabled"
|
||||
msgstr ""
|
||||
|
||||
#: allianceauth/services/modules/discord/models.py:226
|
||||
#: allianceauth/services/modules/discord/models.py:227
|
||||
msgid ""
|
||||
"Your Discord account was disabeled automatically by Auth. If you think this "
|
||||
"was a mistake, please contact an admin."
|
||||
@@ -1655,18 +1655,18 @@ msgid "Mark Completed"
|
||||
msgstr "标记为已完成"
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:70
|
||||
#: allianceauth/srp/templates/srp/data.html:150
|
||||
#: allianceauth/srp/templates/srp/data.html:156
|
||||
msgid "Total Losses:"
|
||||
msgstr "损失总额:"
|
||||
|
||||
#: 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
|
||||
msgid "Total ISK Cost:"
|
||||
msgstr "ISK花费总额:"
|
||||
|
||||
#: 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?"
|
||||
msgstr "老哥,你确定要删了补损请求么?"
|
||||
|
||||
@@ -1698,7 +1698,7 @@ msgstr "点击数值就可以编辑啦,按回车确认,按ESC取消"
|
||||
msgid "Post Time"
|
||||
msgstr "发布时间"
|
||||
|
||||
#: allianceauth/srp/templates/srp/data.html:168
|
||||
#: allianceauth/srp/templates/srp/data.html:174
|
||||
msgid "No SRP requests for this fleet."
|
||||
msgstr "这次起队没有补损请求!大捷"
|
||||
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import os
|
||||
from celery import Celery
|
||||
from celery.app import trace
|
||||
|
||||
# set the default Django settings module for the 'celery' program.
|
||||
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.
|
||||
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 = [
|
||||
'django.middleware.security.SecurityMiddleware',
|
||||
'django.contrib.sessions.middleware.SessionMiddleware',
|
||||
'django.middleware.locale.LocaleMiddleware',
|
||||
'django.middleware.common.CommonMiddleware',
|
||||
'django.middleware.csrf.CsrfViewMiddleware',
|
||||
'django.contrib.auth.middleware.AuthenticationMiddleware',
|
||||
'django.contrib.messages.middleware.MessageMiddleware',
|
||||
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
||||
'django.middleware.locale.LocaleMiddleware',
|
||||
]
|
||||
|
||||
ROOT_URLCONF = 'allianceauth.urls'
|
||||
@@ -86,6 +86,8 @@ LANGUAGES = (
|
||||
('zh-hans', ugettext('Chinese Simplified')),
|
||||
('ru', ugettext('Russian')),
|
||||
('ko', ugettext('Korean')),
|
||||
('fr', ugettext('French')),
|
||||
('ja', ugettext('Japanese')),
|
||||
)
|
||||
|
||||
TEMPLATES = [
|
||||
@@ -138,6 +140,8 @@ AUTHENTICATION_BACKENDS = ['allianceauth.authentication.backends.StateBackend',
|
||||
|
||||
LANGUAGE_CODE = 'en-us'
|
||||
|
||||
LANGUAGE_COOKIE_AGE = 1209600
|
||||
|
||||
TIME_ZONE = 'UTC'
|
||||
|
||||
USE_I18N = True
|
||||
|
||||
@@ -45,6 +45,7 @@ DATABASES['default'] = {
|
||||
ESI_SSO_CLIENT_ID = ''
|
||||
ESI_SSO_CLIENT_SECRET = ''
|
||||
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.
|
||||
# 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,
|
||||
title=gettext_lazy('Discord Account Disabled'),
|
||||
message=gettext_lazy(
|
||||
'Your Discord account was disabeled automatically '
|
||||
'Your Discord account was disabled automatically '
|
||||
'by Auth. If you think this was a mistake, '
|
||||
'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):
|
||||
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')
|
||||
groups = models.TextField(blank=True, null=True)
|
||||
certhash = models.CharField(
|
||||
|
||||
@@ -211,4 +211,4 @@ class MumbleManagerTestCase(TestCase):
|
||||
pwhash = self.manager.gen_pwhash('test')
|
||||
|
||||
self.assertEqual(pwhash[:15], '$bcrypt-sha256$')
|
||||
self.assertEqual(len(pwhash), 75)
|
||||
self.assertEqual(len(pwhash), 83)
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
{% endif %}
|
||||
</div>
|
||||
</h1>
|
||||
|
||||
|
||||
{% if srpfleetrequests %}
|
||||
<form method="POST">
|
||||
{% csrf_token %}
|
||||
@@ -104,7 +104,13 @@ ESC to cancel{% endblocktrans %}"id="blah"></i></th>
|
||||
<tbody>
|
||||
{% for srpfleetrequest in srpfleetrequests %}
|
||||
<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">
|
||||
<a href="{{ srpfleetrequest.killboard_link }}"
|
||||
target="_blank" class="label label-warning">Link</a>
|
||||
@@ -136,7 +142,7 @@ ESC to cancel{% endblocktrans %}"id="blah"></i></th>
|
||||
<input type="checkbox" name="{{srpfleetrequest.id}}">
|
||||
<span class="cr"><i class="cr-icon fas fa-check"></i></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
@@ -205,7 +211,7 @@ ESC to cancel{% endblocktrans %}"id="blah"></i></th>
|
||||
var $next = $(this).closest('tr').next().find('.editable');
|
||||
setTimeout(function() {
|
||||
$next.editable('show');
|
||||
}, 400);
|
||||
}, 400);
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -248,4 +254,4 @@ ESC to cancel{% endblocktrans %}"id="blah"></i></th>
|
||||
});
|
||||
});
|
||||
|
||||
{% endblock extra_script %}
|
||||
{% endblock extra_script %}
|
||||
|
||||
@@ -53,22 +53,34 @@ ul.list-group.list-group-horizontal > li.list-group-item {
|
||||
.table-aa > thead > tr > th{
|
||||
border-bottom: 1px solid #f2f2f2;
|
||||
}
|
||||
.table-aa > thead > tr > th{
|
||||
.table-aa > thead > tr > th{
|
||||
vertical-align: middle;
|
||||
}
|
||||
.table-aa > tbody > tr > td{
|
||||
border-bottom: 1px solid #f2f2f2;
|
||||
}
|
||||
.table-aa > tbody > tr > td {
|
||||
.table-aa > tbody > tr > td {
|
||||
vertical-align: middle;
|
||||
}
|
||||
.table-aa > tbody > tr:last-child {
|
||||
.table-aa > tbody > tr:last-child {
|
||||
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) */
|
||||
@media (min-width: 768px) {
|
||||
|
||||
|
||||
/* class for vertically aligning columns in a bootstrap row */
|
||||
.row.vertical-flexbox-row2 {
|
||||
display: -webkit-box;
|
||||
@@ -77,7 +89,7 @@ ul.list-group.list-group-horizontal > li.list-group-item {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
|
||||
.row.vertical-flexbox-row2 > [class*='col-'] {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@@ -89,4 +101,4 @@ ul.list-group.list-group-horizontal > li.list-group-item {
|
||||
.button-wrapper .btn {
|
||||
margin-bottom:5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,52 +3,60 @@
|
||||
{% load navactive %}
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
{% include 'allianceauth/icons.html' %}
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
|
||||
<title>{% block title %}{% block page_title %}{% endblock page_title %} - Alliance Auth{% endblock title %}</title>
|
||||
{% include 'allianceauth/icons.html' %}
|
||||
|
||||
{% include 'bundles/bootstrap-css.html' %}
|
||||
{% include 'bundles/fontawesome.html' %}
|
||||
<title>{% block title %}{% block page_title %}{% endblock page_title %} - Alliance Auth{% endblock title %}</title>
|
||||
|
||||
<link href="{% static 'css/auth-base.css' %}" type="text/css" rel="stylesheet">
|
||||
{% block extra_css %}{% endblock extra_css %}
|
||||
</head>
|
||||
<body>
|
||||
{% if user.is_authenticated %}
|
||||
<div id="wrapper" class="container">
|
||||
<!-- Navigation -->
|
||||
{% include 'allianceauth/top-menu.html' %}
|
||||
<div class="row" id="site-body-wrapper">
|
||||
{% include 'allianceauth/side-menu.html' %}
|
||||
<div class="col-sm-10">
|
||||
{% if messages %}
|
||||
<br>
|
||||
{% for message in messages %}
|
||||
<div class="alert alert-{{ message.level_tag }}">{{ message }}</div>
|
||||
{% if not forloop.last %}
|
||||
{% include 'bundles/bootstrap-css.html' %}
|
||||
{% include 'bundles/fontawesome.html' %}
|
||||
|
||||
<link href="{% static 'css/auth-base.css' %}" type="text/css" rel="stylesheet">
|
||||
|
||||
{% block extra_css %}{% endblock extra_css %}
|
||||
</head>
|
||||
|
||||
<body class="{% if NIGHT_MODE %}template-dark-mode{% else %}template-light-mode{% endif %}">
|
||||
{% if user.is_authenticated %}
|
||||
<div id="wrapper" class="container">
|
||||
<!-- Navigation -->
|
||||
{% include 'allianceauth/top-menu.html' %}
|
||||
|
||||
<div class="row" id="site-body-wrapper">
|
||||
{% include 'allianceauth/side-menu.html' %}
|
||||
<div class="col-sm-10">
|
||||
{% if messages %}
|
||||
<br>
|
||||
{% for message in messages %}
|
||||
<div class="alert alert-{{ message.level_tag }}">{{ message }}</div>
|
||||
{% if not forloop.last %}
|
||||
<br>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% block content %}
|
||||
{% endblock content %}
|
||||
|
||||
{% block content %}
|
||||
{% endblock content %}
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% include 'bundles/bootstrap-js.html' %}
|
||||
{% block extra_javascript %}
|
||||
{% endblock extra_javascript %}
|
||||
<script>
|
||||
{% block extra_script %}
|
||||
{% endblock extra_script %}
|
||||
</script>
|
||||
</body>
|
||||
{% endif %}
|
||||
|
||||
{% include 'bundles/bootstrap-js.html' %}
|
||||
|
||||
{% block extra_javascript %}
|
||||
{% endblock extra_javascript %}
|
||||
|
||||
<script>
|
||||
{% block extra_script %}
|
||||
{% endblock extra_script %}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{% load i18n %}
|
||||
<a href="{% url 'nightmode' %}?next={{ request.path|urlencode }}">
|
||||
{% 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>
|
||||
13
docs/conf.py
13
docs/conf.py
@@ -28,8 +28,6 @@ on_rtd = os.environ.get('READTHEDOCS', None) == 'True'
|
||||
|
||||
# Support for recommonmark module
|
||||
import recommonmark
|
||||
|
||||
from recommonmark.parser import CommonMarkParser
|
||||
from recommonmark.transform import AutoStructify
|
||||
|
||||
# -- General configuration ------------------------------------------------
|
||||
@@ -41,8 +39,11 @@ from recommonmark.transform import AutoStructify
|
||||
# Add any Sphinx extension module names here, as strings. They can be
|
||||
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
||||
# ones.
|
||||
|
||||
extensions = [
|
||||
'sphinx_rtd_theme',
|
||||
'sphinx.ext.autodoc',
|
||||
'recommonmark',
|
||||
]
|
||||
|
||||
# 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.
|
||||
# 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
|
||||
# directories to ignore when looking for source files.
|
||||
@@ -171,12 +172,6 @@ texinfo_documents = [
|
||||
'Miscellaneous'),
|
||||
]
|
||||
|
||||
# Markdown support
|
||||
source_parsers = {
|
||||
'.md': CommonMarkParser,
|
||||
}
|
||||
|
||||
|
||||
def setup(app):
|
||||
app.add_config_value('recommonmark_config', {
|
||||
'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`
|
||||
|
||||
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
|
||||
|
||||
Ensure wheel is available before continuing:
|
||||
|
||||
@@ -1,3 +1,16 @@
|
||||
sphinx>=1.4.0,<1.5.0
|
||||
sphinx_rtd_theme>=0.1.9
|
||||
recommonmark==0.4.0
|
||||
# Docs Specific Packages
|
||||
sphinx>=3.2.1,<4.0.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-registration>=3.1',
|
||||
'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',
|
||||
|
||||
'openfire-restapi',
|
||||
'sleekxmpp',
|
||||
'pydiscourse',
|
||||
|
||||
'django-esi>=1.5,<3.0'
|
||||
'django-esi>=2.0.4,<3.0'
|
||||
]
|
||||
|
||||
testing_extras = [
|
||||
|
||||
Reference in New Issue
Block a user