diff --git a/.contrib/docker/Dockerfile.web b/.contrib/docker/Dockerfile.web index 00e057275..dc5db9575 100644 --- a/.contrib/docker/Dockerfile.web +++ b/.contrib/docker/Dockerfile.web @@ -8,13 +8,14 @@ WORKDIR /code ENV PYTHONUNBUFFERED 1 RUN apt-get update \ && apt-get install -y --no-install-recommends \ - default-libmysqlclient-dev \ + python3-dev default-libmysqlclient-dev build-essential \ + default-mysql-client libssl-dev pkg-config \ gcc \ - build-essential \ git \ curl \ - gettext libgettextpo-dev wait-for-it \ -&& rm -rf /var/lib/apt/lists/* + nano \ + htop \ + gettext libgettextpo-dev wait-for-it COPY requirements/*.txt ./requirements/ RUN pip install --upgrade pip RUN pip install --no-cache-dir -r requirements/dev.txt diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 07425f529..c86e2c3d2 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -6,40 +6,40 @@ default_language_version: minimum_pre_commit_version: "1.20.0" repos: - repo: https://github.com/adamchainz/django-upgrade - rev: 1.13.0 + rev: 1.15.0 hooks: - - id: django-upgrade - args: [--target-version, "3.2"] + - id: django-upgrade + args: [--target-version, "3.2"] - repo: https://github.com/asottile/pyupgrade - rev: v3.3.2 + rev: v3.15.0 hooks: - - id: pyupgrade - args: - - --py3-only + - id: pyupgrade + args: + - --py3-only - repo: https://github.com/pycqa/isort rev: 5.12.0 hooks: - id: isort args: ["--profile", "black", "--filter-files"] - repo: https://github.com/sirosen/check-jsonschema - rev: 0.22.0 + rev: 0.27.0 hooks: - id: check-github-workflows - id: check-readthedocs - - repo: https://github.com/adrienverge/yamllint - rev: v1.31.0 + - repo: https://github.com/adrienverge/yamllint + rev: v1.33.0 hooks: - id: yamllint - repo: https://github.com/psf/black - rev: 23.3.0 + rev: 23.11.0 hooks: - - id: black - args: - - --config - - ./pyproject.toml + - id: black + args: + - --config + - ./pyproject.toml - repo: https://github.com/PyCQA/flake8 - rev: 6.0.0 + rev: 6.1.0 hooks: - - id: flake8 - args: - - --config=./setup.cfg + - id: flake8 + args: + - --config=./setup.cfg diff --git a/.readthedocs.yml b/.readthedocs.yml index 93e2f6a1e..0b8e158b4 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -8,7 +8,11 @@ sphinx: configuration: docs/conf.py formats: all +build: + os: ubuntu-22.04 + tools: + python: "3.10" + python: - version: '3.7' install: - requirements: requirements/dev.txt diff --git a/Makefile b/Makefile index 23bd49bce..89da979d7 100644 --- a/Makefile +++ b/Makefile @@ -3,10 +3,10 @@ TEST= db: docker-compose up -d --remove-orphans db -up: +start: wait_mysql docker-compose up -start: +run-background: wait_mysql docker-compose up -d stop: diff --git a/config/settings/common.py b/config/settings/common.py index 9d2e10a7e..4047ea6b9 100644 --- a/config/settings/common.py +++ b/config/settings/common.py @@ -148,10 +148,13 @@ DATABASES = {"default": env.db(default="mysql:///porady")} DATABASES["default"]["TEST"] = { - "CHARSET": "utf8mb4", - "COLLATION": "utf8mb4_unicode_520_ci", + # "CHARSET": "utf8mb4", + # "COLLATION": "utf8mb4_unicode_520_ci", + "CHARSET": "utf8", + "COLLATION": "utf8_polish_ci", } -DATABASES["default"]["CHARSET"] = "utf8mb4" +# DATABASES["default"]["CHARSET"] = "utf8mb4" +DATABASES["default"]["CHARSET"] = "utf" # END DATABASE CONFIGURATION diff --git a/docker-compose.yml b/docker-compose.yml index 958d08aa1..fca6fedeb 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,16 +1,24 @@ +--- +# yamllint disable-line-length version: '2.1' # This is application’s services configuration for development purposes only. services: db: - image: mysql:5.7 + image: mariadb:10.1 + command: >- + --character-set-server=utf8 + --collation-server=utf8_polish_ci + --max_allowed_packet=1024M + --sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION + --innodb_large_prefix=ON ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: "password" volumes: - ./.contrib/docker/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d:ro - - mysql_db:/var/lib/mysql + - mariadb-data-03:/var/lib/mysql gulp: build: @@ -77,5 +85,5 @@ services: # - imap-to-webhook-url.env volumes: - mysql_db: + mariadb-data-03: maildump_data: diff --git a/poradnia/__init__.py b/poradnia/__init__.py index adf7fc890..a658a0c70 100644 --- a/poradnia/__init__.py +++ b/poradnia/__init__.py @@ -1,4 +1,4 @@ -__version__ = "1.1.13" +__version__ = "1.1.15" # Compatibility to eg. django-rest-framework diff --git a/poradnia/judgements/parsers/nsa.py b/poradnia/judgements/parsers/nsa.py index a10fa5e9b..e2250bbe2 100644 --- a/poradnia/judgements/parsers/nsa.py +++ b/poradnia/judgements/parsers/nsa.py @@ -20,10 +20,17 @@ class NSAETRParser(BaseParser): "sygnatura": "", "symbol": "", "wydzial": "", + "typ": "", + } + HEADERS = { + "User-Agent": ( + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" + " (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36" + ) } def get_content(self): - response = requests.post(self.URL, data=self.POST_DATA) + response = requests.post(self.URL, data=self.POST_DATA, headers=self.HEADERS) response.raise_for_status() return response.text diff --git a/poradnia/judgements/tests/test_commands.py b/poradnia/judgements/tests/test_commands.py index 607304b65..7ca7dad3f 100644 --- a/poradnia/judgements/tests/test_commands.py +++ b/poradnia/judgements/tests/test_commands.py @@ -1,13 +1,10 @@ +from io import StringIO + from django.core.management import call_command from django.test import TestCase from poradnia.judgements.factories import CourtFactory -try: - from StringIO import StringIO -except ImportError: - from io import StringIO - class RunCourtSessionParserTestCase(TestCase): def test_run_command_basic(self): diff --git a/poradnia/letters/utils.py b/poradnia/letters/utils.py index 022f7f009..3e0b7093d 100644 --- a/poradnia/letters/utils.py +++ b/poradnia/letters/utils.py @@ -99,7 +99,7 @@ def get_html_from_eml_file(eml_file=None): decoded_part = part.get_payload() # Decode the part based on the content type and add it to the content - if type(decoded_part) == bytes: + if type(decoded_part) is bytes: codec_map = { None: "utf-8", "windows-1252": "cp1252", diff --git a/requirements/base.txt b/requirements/base.txt index 5591f6904..3cb3bb417 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,4 +1,4 @@ -Django==3.2.18 +Django==3.2.23 # Configuration django-environ==0.10.0 @@ -21,7 +21,7 @@ sorl-thumbnail==12.9.0 django-allauth==0.54.0 # For the persistance stores -mysqlclient==2.1.1 +mysqlclient==2.2.0 # Unicode slugification unicode-slugify==0.1.5 @@ -53,7 +53,7 @@ sentry-sdk==1.21.0 python-dateutil==2.8.2 django-github-revision==0.0.3 zipstream-new==1.1.8 -django-teryt-tree==0.17.0 +django-teryt-tree==0.18.4 django-mptt==0.14.0 mistune==2.0.5 django-rosetta==0.9.9 diff --git a/requirements/dev.txt b/requirements/dev.txt index 0a2207128..be988ee83 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,6 +1,6 @@ # Local development dependencies go here -r base.txt -Sphinx==6.2.1 +Sphinx==7.2.6 # django-debug-toolbar that works with Django 1.5+ django-debug-toolbar==4.0.0