Compare commits

...

8 Commits

Author SHA1 Message Date
Ariel Rin
d3069db046 Merge branch 'srp_allow-missing-trailling-slash' into 'master'
SRP - Allow zkillboard links without a trailling slash to be pasted without errors

See merge request allianceauth/allianceauth!1771
2025-10-26 06:26:48 +00:00
Ariel Rin
24863eaf9e Merge branch 'srp_diplay-errors' into 'master'
SRP - Display form errors

See merge request allianceauth/allianceauth!1770
2025-10-26 06:25:27 +00:00
Joel Falknau
d138bd61c5
py38 not available on debian trixie 2025-10-26 12:45:49 +10:00
Joel Falknau
bff20ddd5d
remove deprecated future 2025-10-26 11:25:06 +10:00
Joel Falknau
493e694410
update precommit 2025-10-26 11:24:57 +10:00
Joel Falknau
9e0358a3ce
bump test images to trixie 2025-10-25 18:39:24 +10:00
T'rahk Rokym
19bb6856a2 Allow zkillboard links without a trailling slash to be pasted without errors 2025-10-18 00:02:29 +02:00
T'rahk Rokym
9751315b97 Cleaner error display applied to any bootstrap_form in allianceauth
Credit to @ppfeufer for the code snipet
2025-10-17 23:15:42 +02:00
6 changed files with 55 additions and 16 deletions

View File

@ -25,7 +25,7 @@ before_script:
pre-commit-check: pre-commit-check:
<<: *only-default <<: *only-default
stage: pre-commit stage: pre-commit
image: python:3.11-bookworm image: python:3.11-trixie
# variables: # variables:
# PRE_COMMIT_HOME: ${CI_PROJECT_DIR}/.cache/pre-commit # PRE_COMMIT_HOME: ${CI_PROJECT_DIR}/.cache/pre-commit
# cache: # cache:
@ -65,7 +65,7 @@ test-3.8-core:
test-3.9-core: test-3.9-core:
<<: *only-default <<: *only-default
image: python:3.9-bookworm image: python:3.9-trixie
script: script:
- tox -e py39-core - tox -e py39-core
artifacts: artifacts:
@ -77,7 +77,7 @@ test-3.9-core:
test-3.10-core: test-3.10-core:
<<: *only-default <<: *only-default
image: python:3.10-bookworm image: python:3.10-trixie
script: script:
- tox -e py310-core - tox -e py310-core
artifacts: artifacts:
@ -89,7 +89,7 @@ test-3.10-core:
test-3.11-core: test-3.11-core:
<<: *only-default <<: *only-default
image: python:3.11-bookworm image: python:3.11-trixie
script: script:
- tox -e py311-core - tox -e py311-core
artifacts: artifacts:
@ -101,7 +101,7 @@ test-3.11-core:
test-3.12-core: test-3.12-core:
<<: *only-default <<: *only-default
image: python:3.12-bookworm image: python:3.12-trixie
script: script:
- tox -e py312-core - tox -e py312-core
artifacts: artifacts:
@ -113,7 +113,7 @@ test-3.12-core:
test-3.8-all: test-3.8-all:
<<: *only-default <<: *only-default
image: python:3.8-bookworm image: python:3.8-trixie
script: script:
- tox -e py38-all - tox -e py38-all
artifacts: artifacts:
@ -125,7 +125,7 @@ test-3.8-all:
test-3.9-all: test-3.9-all:
<<: *only-default <<: *only-default
image: python:3.9-bookworm image: python:3.9-trixie
script: script:
- tox -e py39-all - tox -e py39-all
artifacts: artifacts:
@ -137,7 +137,7 @@ test-3.9-all:
test-3.10-all: test-3.10-all:
<<: *only-default <<: *only-default
image: python:3.10-bookworm image: python:3.10-trixie
script: script:
- tox -e py310-all - tox -e py310-all
artifacts: artifacts:
@ -149,7 +149,7 @@ test-3.10-all:
test-3.11-all: test-3.11-all:
<<: *only-default <<: *only-default
image: python:3.11-bookworm image: python:3.11-trixie
script: script:
- tox -e py311-all - tox -e py311-all
artifacts: artifacts:
@ -162,7 +162,7 @@ test-3.11-all:
test-3.12-all: test-3.12-all:
<<: *only-default <<: *only-default
image: python:3.12-bookworm image: python:3.12-trixie
script: script:
- tox -e py312-all - tox -e py312-all
artifacts: artifacts:
@ -174,7 +174,7 @@ test-3.12-all:
build-test: build-test:
stage: test stage: test
image: python:3.11-bookworm image: python:3.11-trixie
before_script: before_script:
- python -m pip install --upgrade pip - python -m pip install --upgrade pip
@ -193,13 +193,13 @@ build-test:
test-docs: test-docs:
<<: *only-default <<: *only-default
image: python:3.11-bookworm image: python:3.11-trixie
script: script:
- tox -e docs - tox -e docs
deploy_production: deploy_production:
stage: deploy stage: deploy
image: python:3.11-bookworm image: python:3.11-trixie
before_script: before_script:
- python -m pip install --upgrade pip - python -m pip install --upgrade pip

View File

@ -84,7 +84,7 @@ repos:
args: args:
- --indent=4 - --indent=4
additional_dependencies: additional_dependencies:
- tox==4.31.0 # https://github.com/tox-dev/tox/releases/latest - tox==4.32.0 # https://github.com/tox-dev/tox/releases/latest
- repo: https://github.com/abravalheri/validate-pyproject - repo: https://github.com/abravalheri/validate-pyproject
rev: v0.24.1 rev: v0.24.1
hooks: hooks:

View File

@ -1,5 +1,3 @@
from __future__ import annotations
import logging import logging
from typing import TYPE_CHECKING from typing import TYPE_CHECKING

View File

@ -34,6 +34,9 @@ class SrpFleetUserRequestForm(forms.Form):
_("Invalid Link. Please use zkillboard.com or kb.evetools.org") _("Invalid Link. Please use zkillboard.com or kb.evetools.org")
) )
if re.match(r"^http[s]?:\/\/zkillboard\.com\/", data) and not data.endswith("/"):
data += "/"
# Check if it's an actual kill mail # Check if it's an actual kill mail
if not any( if not any(
re.match(regex, data) re.match(regex, data)

View File

@ -0,0 +1,27 @@
from django.test import TestCase
from allianceauth.srp.form import SrpFleetUserRequestForm
class TestForms(TestCase):
def test_allow_missing_trailing_slash_zkillboard(self):
form = SrpFleetUserRequestForm(
data = {
"killboard_link": "https://zkillboard.com/kill/130429493",
"additional_info": "Details",
}
)
form.cleaned_data = {"killboard_link": "https://zkillboard.com/kill/130429493"}
self.assertEqual("https://zkillboard.com/kill/130429493/", form.clean_killboard_link())
def test_not_add_trailling_slash_kb_evetools(self):
form = SrpFleetUserRequestForm(
data = {
"killboard_link": "https://kb.evetools.org/kill/130429493",
}
)
form.cleaned_data = {"killboard_link": "https://kb.evetools.org/kill/130429493"}
self.assertEqual("https://kb.evetools.org/kill/130429493", form.clean_killboard_link())

View File

@ -0,0 +1,11 @@
{# Template override to display the errors of django Forms when using `boostrap_form` form the `django-bootstrap5` #}
{# library. #}
{# See: https://github.com/zostera/django-bootstrap5/pull/767 #}
{% if field_errors %}
<div id="{{ field.auto_id }}_error" class="invalid-feedback">
{% for text in field_errors %}
<div>{{ text }}</div>
{% endfor %}
</div>
{% endif %}