mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-08 20:10:17 +02:00
one and only one empty line at the end of the file
This commit is contained in:
parent
8c3df89d52
commit
a99a375375
@ -11,4 +11,4 @@ Please include steps to reproduce the issue
|
||||
|
||||
Please include any tracebacks or logs
|
||||
|
||||
Please include the results of the command `pip list`
|
||||
Please include the results of the command `pip list`
|
||||
|
@ -4,4 +4,4 @@
|
||||
|
||||
- Is this a Service (external integration), a Module (Alliance Auth extension) or an enhancement to an existing service/module.
|
||||
|
||||
- Describe why its useful to you or others.
|
||||
- Describe why its useful to you or others.
|
||||
|
@ -14,3 +14,5 @@ repos:
|
||||
- id: fix-byte-order-marker
|
||||
- id: trailing-whitespace
|
||||
exclude: \.(min\.css|min\.js|po|mo)$
|
||||
- id: end-of-file-fixer
|
||||
exclude: \.(min\.css|min\.js|po|mo)$
|
||||
|
@ -20,4 +20,4 @@ formats: all
|
||||
python:
|
||||
version: 3.7
|
||||
install:
|
||||
- requirements: docs/requirements.txt
|
||||
- requirements: docs/requirements.txt
|
||||
|
1
LICENSE
1
LICENSE
@ -337,4 +337,3 @@ proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License.
|
||||
|
||||
|
@ -43,4 +43,3 @@ AUTHENTICATION_ADMIN_USERS_MAX_GROUPS = \
|
||||
|
||||
AUTHENTICATION_ADMIN_USERS_MAX_CHARS = \
|
||||
_clean_setting('AUTHENTICATION_ADMIN_USERS_MAX_CHARS', 5)
|
||||
|
||||
|
@ -11,4 +11,4 @@ urlpatterns = [
|
||||
url(r'^register/complete/$', views.registration_complete, name='registration_complete'),
|
||||
url(r'^register/closed/$', views.registration_closed, name='registration_disallowed'),
|
||||
url(r'', include('django.contrib.auth.urls')),
|
||||
]
|
||||
]
|
||||
|
@ -114,4 +114,4 @@ class OwnershipRecord(models.Model):
|
||||
ordering = ['-created']
|
||||
|
||||
def __str__(self):
|
||||
return "%s: %s on %s" % (self.user, self.character, self.created)
|
||||
return "%s: %s on %s" % (self.user, self.character, self.created)
|
||||
|
@ -156,4 +156,4 @@ def ownership_record_creation(sender, instance, created, *args, **kwargs):
|
||||
logger.debug("Already have ownership record of {0} by user {1}".format(instance.character, instance.user))
|
||||
return
|
||||
logger.info("Character {0} has a new owner {1}. Creating ownership record.".format(instance.character, instance.user))
|
||||
OwnershipRecord.objects.create(user=instance.user, character=instance.character, owner_hash=instance.owner_hash)
|
||||
OwnershipRecord.objects.create(user=instance.user, character=instance.character, owner_hash=instance.owner_hash)
|
||||
|
@ -26,4 +26,4 @@ CSS for allianceauth admin site
|
||||
color: black ;
|
||||
background-color: rgb(255, 255, 204) ;
|
||||
z-index: 1 ;
|
||||
}
|
||||
}
|
||||
|
@ -5,4 +5,4 @@
|
||||
<a href="{% url 'auth_sso_login' %}{% if request.GET.next %}?next={{request.GET.next}}{%endif%}">
|
||||
<img class="img-responsive center-block" src="{% static 'img/sso/EVE_SSO_Login_Buttons_Large_Black.png' %}" border=0>
|
||||
</a>
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
|
@ -21,4 +21,4 @@
|
||||
{% endblock %}
|
||||
{% block extra_include %}
|
||||
{% include 'bundles/bootstrap-js.html' %}
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
|
@ -10,4 +10,4 @@ Link not working? Try copy/pasting this URL into your browser:
|
||||
|
||||
This link will expire in {{ expiration_days }} day(s).
|
||||
|
||||
If this was not you, it is safe to ignore this email.
|
||||
If this was not you, it is safe to ignore this email.
|
||||
|
@ -1 +1 @@
|
||||
Confirm your Alliance Auth account email address
|
||||
Confirm your Alliance Auth account email address
|
||||
|
@ -3,4 +3,4 @@ from django.contrib import admin
|
||||
from .models import CorpStats, CorpMember
|
||||
|
||||
admin.site.register(CorpStats)
|
||||
admin.site.register(CorpMember)
|
||||
admin.site.register(CorpMember)
|
||||
|
File diff suppressed because one or more lines are too long
@ -34,4 +34,4 @@
|
||||
{% block member_data %}{% endblock %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
|
@ -45,4 +45,4 @@
|
||||
$(document).ready(function(){
|
||||
$('#table-search').DataTable();
|
||||
});
|
||||
{% endblock %}
|
||||
{% endblock %}
|
||||
|
@ -39,4 +39,3 @@ class AutogroupsConfigAdmin(admin.ModelAdmin):
|
||||
admin.site.register(AutogroupsConfig, AutogroupsConfigAdmin)
|
||||
admin.site.register(ManagedCorpGroup)
|
||||
admin.site.register(ManagedAllianceGroup)
|
||||
|
||||
|
@ -201,4 +201,4 @@ class TestEveImageServer(TestCase):
|
||||
|
||||
def test_type_render_url(self):
|
||||
expected = 'https://images.evetech.net/types/42/render?size=128'
|
||||
self.assertEqual(eveimageserver.type_render_url(42, 128), expected)
|
||||
self.assertEqual(eveimageserver.type_render_url(42, 128), expected)
|
||||
|
@ -356,4 +356,4 @@ class TestTemplateTags(TestCase):
|
||||
self.assertEqual(evelinks.type_render_url(123, 99), expected)
|
||||
|
||||
expected = ''
|
||||
self.assertEqual(evelinks.type_render_url(None), expected)
|
||||
self.assertEqual(evelinks.type_render_url(None), expected)
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,2 +0,0 @@
|
||||
|
||||
|
@ -7,4 +7,3 @@ class FatlinkForm(forms.Form):
|
||||
fleet = forms.CharField(label=_("Fleet Name"), max_length=50)
|
||||
duration = forms.IntegerField(label=_("Duration of fat-link"), required=True, initial=30, min_value=1,
|
||||
max_value=2147483647, help_text=_('minutes'))
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
@ -30,4 +30,3 @@
|
||||
</div>
|
||||
|
||||
{% endblock content %}
|
||||
|
||||
|
@ -8,4 +8,4 @@ def get_admin_change_view_url(obj: object) -> str:
|
||||
type(obj).__name__.lower()
|
||||
),
|
||||
args=(obj.pk,)
|
||||
)
|
||||
)
|
||||
|
@ -19,4 +19,4 @@ class TestViews(TestCase):
|
||||
request = self.factory.get(reverse('groupmanagement:groups'))
|
||||
request.user = self.user
|
||||
response = views.groups_view(request)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
@ -122,4 +122,3 @@ def get_hooks(name):
|
||||
"""
|
||||
register_all_hooks()
|
||||
return _hooks.get(name, [])
|
||||
|
||||
|
@ -4,4 +4,3 @@ from django.apps import AppConfig
|
||||
class PermissionsToolConfig(AppConfig):
|
||||
name = 'allianceauth.permissions_tool'
|
||||
label = 'permissions_tool'
|
||||
|
||||
|
@ -30,4 +30,3 @@ class NameFormatConfig(models.Model):
|
||||
return '%s: %s' % (
|
||||
self.service_name, ', '.join([str(x) for x in self.states.all()])
|
||||
)
|
||||
|
||||
|
@ -1 +1 @@
|
||||
default_app_config = 'allianceauth.services.modules.discourse.apps.DiscourseServiceConfig'
|
||||
default_app_config = 'allianceauth.services.modules.discourse.apps.DiscourseServiceConfig'
|
||||
|
@ -16,4 +16,3 @@ class DiscourseUser(models.Model):
|
||||
permissions = (
|
||||
("access_discourse", u"Can access the Discourse service"),
|
||||
)
|
||||
|
||||
|
@ -16,4 +16,4 @@ class DiscourseAPIClient():
|
||||
api_key=settings.DISCOURSE_API_KEY)
|
||||
return self._client
|
||||
|
||||
discourse = DiscourseAPIClient()
|
||||
discourse = DiscourseAPIClient()
|
||||
|
@ -64,4 +64,3 @@ class DiscourseTasks:
|
||||
def get_username(user):
|
||||
from .auth_hooks import DiscourseService
|
||||
return NameFormatter(DiscourseService(), user).format_name()
|
||||
|
||||
|
@ -94,4 +94,3 @@ def discourse_sso(request):
|
||||
# Redirect back to Discourse
|
||||
url = '%s/session/sso_login' % settings.DISCOURSE_URL
|
||||
return redirect('%s?%s' % (url, query_string))
|
||||
|
||||
|
@ -102,4 +102,3 @@ def deactivate_ips4(request):
|
||||
logger.error("Unsuccessful attempt to deactivate IPS4 for user %s" % request.user)
|
||||
messages.error(request, _('An error occurred while processing your IPSuite4 account.'))
|
||||
return redirect("services:services")
|
||||
|
||||
|
@ -78,4 +78,3 @@ class MumbleTasks:
|
||||
logger.debug("Updating ALL mumble display names")
|
||||
for mumble_user in MumbleUser.objects.exclude(username__exact=''):
|
||||
MumbleTasks.update_display_name.delay(mumble_user.user.pk)
|
||||
|
||||
|
@ -8,4 +8,3 @@ from ...admin import ServicesUserAdmin
|
||||
class OpenfireUserAdmin(ServicesUserAdmin):
|
||||
list_display = ServicesUserAdmin.list_display + ('username',)
|
||||
search_fields = ServicesUserAdmin.search_fields + ('username', )
|
||||
|
||||
|
@ -6,4 +6,4 @@ from ...admin import ServicesUserAdmin
|
||||
@admin.register(Phpbb3User)
|
||||
class Phpbb3UserAdmin(ServicesUserAdmin):
|
||||
list_display = ServicesUserAdmin.list_display + ('username',)
|
||||
search_fields = ServicesUserAdmin.search_fields + ('username', )
|
||||
search_fields = ServicesUserAdmin.search_fields + ('username', )
|
||||
|
@ -7,4 +7,4 @@ from ...admin import ServicesUserAdmin
|
||||
@admin.register(SmfUser)
|
||||
class SmfUserAdmin(ServicesUserAdmin):
|
||||
list_display = ServicesUserAdmin.list_display + ('username',)
|
||||
search_fields = ServicesUserAdmin.search_fields + ('username', )
|
||||
search_fields = ServicesUserAdmin.search_fields + ('username', )
|
||||
|
@ -7,4 +7,4 @@ from ...admin import ServicesUserAdmin
|
||||
@admin.register(XenforoUser)
|
||||
class XenforoUserAdmin(ServicesUserAdmin):
|
||||
list_display = ServicesUserAdmin.list_display + ('username',)
|
||||
search_fields = ServicesUserAdmin.search_fields + ('username', )
|
||||
search_fields = ServicesUserAdmin.search_fields + ('username', )
|
||||
|
@ -3,4 +3,4 @@ CSS for allianceauth admin site
|
||||
*/
|
||||
|
||||
.img-circle { border-radius: 50%; }
|
||||
.column-user_profile_pic { width: 50px; }
|
||||
.column-user_profile_pic { width: 50px; }
|
||||
|
@ -47,4 +47,3 @@ def disable_user(user):
|
||||
for svc in ServicesHook.get_services():
|
||||
if svc.service_active_for_user(user):
|
||||
svc.delete_user(user)
|
||||
|
||||
|
@ -14,4 +14,4 @@ class TestNameFormatConfig(TestCase):
|
||||
obj.states.add(AuthUtils.get_member_state())
|
||||
obj.states.add(AuthUtils.get_guest_state())
|
||||
expected = 'mumble: Member, Guest'
|
||||
self.assertEqual(str(obj), expected)
|
||||
self.assertEqual(str(obj), expected)
|
||||
|
@ -259,4 +259,4 @@ class ServicesSignalsTestCase(TestCase):
|
||||
# Assert
|
||||
self.assertFalse(services_hook.get_services.called)
|
||||
self.assertFalse(svc.validate_user.called)
|
||||
self.assertFalse(svc.sync_nickname.called)
|
||||
self.assertFalse(svc.sync_nickname.called)
|
||||
|
@ -1,2 +1 @@
|
||||
default_app_config = 'allianceauth.srp.apps.SRPConfig'
|
||||
|
||||
|
@ -950,4 +950,4 @@
|
||||
},
|
||||
"ship_type_id": 19720
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -12,4 +12,4 @@
|
||||
"awox": false
|
||||
}
|
||||
}
|
||||
]
|
||||
]
|
||||
|
@ -55,4 +55,4 @@
|
||||
.checkbox label input[type="checkbox"]:disabled + .cr,
|
||||
.radio label input[type="radio"]:disabled + .cr {
|
||||
opacity: .5;
|
||||
}
|
||||
}
|
||||
|
@ -2,4 +2,4 @@
|
||||
<a href="{% url 'nightmode' %}?next={{ request.path|urlencode }}">
|
||||
{% trans "Night" %}
|
||||
<i class="fas {% if NIGHT_MODE %}fa-toggle-on{% else %}fa-toggle-off{% endif %}" aria-hidden="true"></i>
|
||||
</a>
|
||||
</a>
|
||||
|
@ -10,4 +10,4 @@
|
||||
<i class="far fa-bell"></i>
|
||||
</a>
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
{% endwith %}
|
||||
|
@ -58,4 +58,3 @@
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- Start Bootstrap + jQuery js from cdnjs -->
|
||||
<script type="application/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
|
||||
<script type="application/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js"></script>
|
||||
<!-- End Bootstrap + jQuery js from cdnjs -->
|
||||
<!-- End Bootstrap + jQuery js from cdnjs -->
|
||||
|
@ -1,3 +1,3 @@
|
||||
<!-- Start Clipboard.js js from cdnjs -->
|
||||
<script type="application/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.8/clipboard.min.js" integrity="sha512-sIqUEnRn31BgngPmHt2JenzleDDsXwYO+iyvQ46Mw6RL+udAUZj2n/u/PGY80NxRxynO7R9xIGx5LEzw4INWJQ==" crossorigin="anonymous"></script>
|
||||
<!-- End Clipboard.js js from cdnjs -->
|
||||
<!-- End Clipboard.js js from cdnjs -->
|
||||
|
@ -1,3 +1,3 @@
|
||||
<!-- Start Datatables-css from cdnjs -->
|
||||
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/datatables/1.10.21/css/dataTables.bootstrap.min.css"/>
|
||||
<!-- End Datatables-css from cdnjs -->
|
||||
<!-- End Datatables-css from cdnjs -->
|
||||
|
@ -1,4 +1,4 @@
|
||||
<!-- Start Datatables-js from cdnjs -->
|
||||
<script type="application/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/datatables/1.10.21/js/jquery.dataTables.min.js"></script>
|
||||
<script type="application/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/datatables/1.10.21/js/dataTables.bootstrap.min.js"></script>
|
||||
<!-- End Datatables-js from cdnjs -->
|
||||
<!-- End Datatables-js from cdnjs -->
|
||||
|
@ -1,3 +1,3 @@
|
||||
<!-- Start FontAwesome CSS from cdnjs -->
|
||||
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css"/>
|
||||
<!-- End FontAwesome CSS from cdnjs -->
|
||||
<!-- End FontAwesome CSS from cdnjs -->
|
||||
|
@ -1,3 +1,3 @@
|
||||
<!-- Start jQuery-DateTimePicker CSS from cdnjs -->
|
||||
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.20/jquery.datetimepicker.min.css"/>
|
||||
<!-- End jQuery-DateTimePicker CSS from cdnjs -->
|
||||
<!-- End jQuery-DateTimePicker CSS from cdnjs -->
|
||||
|
@ -1,3 +1,3 @@
|
||||
<!-- Start jQuery-DateTimePicker JS from cdnjs -->
|
||||
<script type="application/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.20/jquery.datetimepicker.full.min.js"></script>
|
||||
<!-- End jQuery-DateTimePicker JS from cdnjs -->
|
||||
<!-- End jQuery-DateTimePicker JS from cdnjs -->
|
||||
|
@ -4,4 +4,4 @@
|
||||
<!-- Moment.JS Not EN-en -->
|
||||
<script type="application/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.27.0/locale/{{ LANGUAGE_CODE }}.js"></script>
|
||||
{% endif %}
|
||||
<!-- End Moment JS from cdnjs -->
|
||||
<!-- End Moment JS from cdnjs -->
|
||||
|
@ -1,3 +1,3 @@
|
||||
<!-- Start X-editable JS from cdnjs -->
|
||||
<script type="application/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/x-editable/1.5.1/bootstrap3-editable/js/bootstrap-editable.min.js"></script>
|
||||
<!-- End X-editable JS from cdnjs -->
|
||||
<!-- End X-editable JS from cdnjs -->
|
||||
|
@ -1,3 +1,3 @@
|
||||
<!-- Start X-editable CSS from cdnjs -->
|
||||
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/x-editable/1.5.1/bootstrap3-editable/css/bootstrap-editable.css"/>
|
||||
<!-- End X-editable CSS from cdnjs -->
|
||||
<!-- End X-editable CSS from cdnjs -->
|
||||
|
@ -57,4 +57,4 @@ class TestGetPermissionByName(TestCase):
|
||||
|
||||
def test_raises_exception_on_invalid_permission_format(self):
|
||||
with self.assertRaises(ValueError):
|
||||
AuthUtils.get_permission_by_name('timer_management')
|
||||
AuthUtils.get_permission_by_name('timer_management')
|
||||
|
2
docs/.gitignore
vendored
2
docs/.gitignore
vendored
@ -1 +1 @@
|
||||
_build/
|
||||
_build/
|
||||
|
@ -17,4 +17,4 @@ help:
|
||||
# Catch-all target: route all unknown targets to Sphinx using the new
|
||||
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
|
||||
%: Makefile
|
||||
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
||||
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
||||
|
@ -51,4 +51,4 @@ Subsequently it would implement the UrlHook in a dedicated `auth_hooks.py` file
|
||||
def register_urls():
|
||||
return UrlHook(plugin.urls, 'plugin', r^'plugin/')
|
||||
|
||||
When this app is included in the project's `settings.INSTALLED_APPS` users would access the index view by navigating to `https://example.com/plugin/index`.
|
||||
When this app is included in the project's `settings.INSTALLED_APPS` users would access the index view by navigating to `https://example.com/plugin/index`.
|
||||
|
@ -34,4 +34,3 @@ zkillboard
|
||||
.. automodule:: allianceauth.eveonline.evelinks.zkillboard
|
||||
:members:
|
||||
:undoc-members:
|
||||
|
||||
|
@ -56,4 +56,4 @@ By default in AA, Both requests and leaves for non-open groups must be approved
|
||||
```python
|
||||
## Allows users to freely leave groups without requiring approval.
|
||||
AUTO_LEAVE = True
|
||||
```
|
||||
```
|
||||
|
@ -13,4 +13,4 @@ celery>=4.3.0,<5.0.0,!=4.4.4
|
||||
celery_once
|
||||
passlib
|
||||
redis>=3.3.1,<4.0.0
|
||||
django-nose
|
||||
django-nose
|
||||
|
@ -27,4 +27,3 @@ app.conf.ONCE = {
|
||||
|
||||
# Load task modules from all registered Django app configs.
|
||||
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user