Bump django from 2.1.10 to 2.1.11#1
Closed
dependabot[bot] wants to merge 1 commit into
Closed
Conversation
Bumps [django](https://github.com/django/django) from 2.1.10 to 2.1.11. - [Release notes](https://github.com/django/django/releases) - [Commits](django/django@2.1.10...2.1.11) Signed-off-by: dependabot[bot] <support@github.com>
Contributor
Author
|
Superseded by #3. |
mpasternak
added a commit
that referenced
this pull request
Dec 29, 2025
============================ Usprawnienie ------------ - Ulepszono obsługę błędów w funkcji wyslij_informacje_o_platnosciach: dodano sprawdzanie wartości zwracanej przez upload_publication_fee (success=True), re-raise dla nieobsłużonych HttpException oraz NeedsPBNAuthorisationException. Komunikaty błędów wyświetlają się teraz czytelnie nad paskiem postępu (tqdm.write). (pbn_integrator_sync) - Dodano dwa nowe raporty XLSX w module optymalizacji ewaluacji: "Raport SEDN #1" (szczegółowy per-autor) oraz "Raport SEDN #2" (zagregowany per-publikacja). Raporty zawierają dane o publikacjach z lat 2022-2025 wraz z informacją o wskazaniu przez algorytm optymalizacji. Przycisk "Pobierz wszystkie XLS (ZIP)" przeniesiono do nowej, trzeciej linii przycisków. (sedn-reports)
This was referenced Apr 27, 2026
mpasternak
added a commit
that referenced
this pull request
Apr 27, 2026
Praktyka #1 z lirantal/pypi-security-best-practices, rev 2 po review. Workspace install (bpp-iplweb editable) nie byl do niczego potrzebny: - bpp-manage.py script: dead code (Makefile uzywa `python src/manage.py`) - pytest11 entry point: jedyne load-bearing uzycie - przeniesione do pytest.ini addopts jako `-p testcontainers_bpp.plugin` - import bpp_iplweb: 0 wystapien w src/ Zmiany: - pyproject.toml: usunieto [project.scripts] + [project.entry-points] - pytest.ini: dodano `-p testcontainers_bpp.plugin` na poczatku addopts (laduje plugin PRZED conftest.py - krytyczne, plugin musi wstrzyknac DJANGO_BPP_DB_PORT itp do os.environ przed Django settings load) - Makefile: --no-install-project w prepare-developer-machine-{macos,linux} i uv-sync target - .github/workflows/tests.yml + refresh-baseline.yml: --no-install-project - Dockerfile: juz mial --no-install-project (no change) Globalne `no-build = true` w [tool.uv] zostalo SPRAWDZONE i okazalo sie nieosiagalne - 11 pre-existing third-party deps jest sdist-only: crispy-forms-foundation, cssmin, django-autocomplete-light, django-columns, django-static-sitemaps, django-tabular-permissions, langdetect, pylatexenc, pyoai, python-ldap, wsgiutils. uv nie ma czystego "wheel-only with exceptions" trybu (tylko all-or-none + per-package no-build, ktore jest blacklist nie whitelist). Usunieto dlatego pre-commit hook `uv-lock-no-build` ktory failowal na cssmin przy KAZDEJ zmianie pyproject.toml (false positive). Polityka wheel-only egzekwowana teraz przez: 1. PR review (PULL_REQUEST_TEMPLATE.md ma checkbox dla nowych dep) 2. Trivy CVE scan w docker-bake 3. uv-secure CVE scan w dependency-audit.yml workflow Smoke test: - `uv sync --frozen --no-install-project --all-extras` -> ok - `pytest --help` zawiera `--no-testcontainers` -> plugin ladowany - `pytest src/pbn_integrator/tests/test_helpers.py` -> 2 passed
mpasternak
added a commit
that referenced
this pull request
May 3, 2026
Odpowiedź na ANALYSIS.md (2026-05-02). Łącznie #1, #3, #4, #5, #7, #9, #10 — bugfixy bezpieczeństwa, wydajności i niezawodności + testy. Bezpieczeństwo (#1): LoginRequiredMixin na 5 endpointach API (RokHabilitacji, PunktacjaZrodla, UploadPunktacjaZrodla, OstatniaJednostkaIDyscyplina, GetPubmedID). Anonimowy POST do upload-punktacja-zrodla nie tworzy już Punktacja_Zrodla. Regression test parametryzowany 5x. Healthcheck (#3): /health/ pinguje DB (SELECT 1) + Redis (PING, timeout 2s) -> 503 z listą failed components zamiast 200 hardcoded. Browse N+1 (#4): get_available_letters: jedno SELECT DISTINCT na pierwszym znaku z mapowaniem polskich diakrytyków zamiast 26+ EXISTS. Logging (#7): Timestamp ISO + nazwa loggera. Dodane django.security, django.request, celery loggers. pbn_import zachowuje stary format. Celery (#9): - import_dyscyplin: select_for_update().get() w transakcji zamiast leniwego .filter() (lock realnie działa) + regression test sprawdzający SELECT...FOR UPDATE w SQL - bpp.tasks.zaktualizuj_liczbe_cytowan: Singleton z 2h lockiem + time_limit/soft_time_limit przeciw zawieszonym WoS requests - pbn_export_queue.queue_pbn_export_batch: logger.exception + rollbar.report_exc_info zamiast except Exception: pass - pbn_downloader_app: usunięty redundant non-atomic check poza create_task_with_lock (race-window eliminated) - skasowane martwe my_limit() + task_limits dict z bpp/tasks.py Testy (#5): + 4 edge case'y wyczysc_przypisania (full wrap, branch 3 standalone, multi-row, parent_od=None contract) + 9 testów scoring deduplikator_zrodel.ocen_podobienstwo + 6 testów ewaluacja_dwudyscyplinowcy.core + 3 regression testy locka w import_dyscyplin (parametryzowane) + 4 testy /health/ + auth API regression Cleanup (#10): - usunięte: sentry_support.py, test_sentry_support.py, /sentry_test/, sekcja SENTRYSDK_* w .env.example - font-awesome 4.1.0 z package.json + yarn.lock (orphaned, EOL) - test_exception_view zachowane do testów Rollbara Towncrier: 9 fragmentów w src/bpp/newsfragments/. Pre-existing test_przeanalizuj_import_dyscyplin failuje też przed zmianą (test zakłada eager Celery, settings.local ma False) — nie ruszane. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
mpasternak
added a commit
that referenced
this pull request
May 3, 2026
…equest Dwa fixy zatrutych testów wprowadzonych w 7b7b923 (audit-driven cleanup), które padały TYLKO w pełnym suicie pod -n auto, deterministycznie. #1 — multiseek 50 errors: test_health_check_returns_503_when_db_down robił monkeypatch.setattr(health.connection, "ensure_connection", boom). health.connection to ConnectionProxy z django.db; jego __setattr__ forwarduje zapis na realny DatabaseWrapper w connections[default]. Pytest monkeypatch w teardownie wykonuje setattr(target, name, oldval), gdzie oldval to wartość pobrana przez getattr przed testem — w teście bez @pytest.mark.django_db jest to bound pytest_django._blocking_wrapper (sesyjny block() jest aktywny). Po teście bound _blocking_wrapper trafia do connections[default].__dict__["ensure_connection"], co — z racji priorytetu instance-attr nad class-attr — czyni django_db_blocker. unblock() bezskutecznym dla całego workera. Pierwszy następny test używający DB pada w setup_databases → migrate → cursor() → ensure_connection() → _blocking_wrapper z RuntimeError "Database access not allowed". Na pełnym suicie xdist wsadzał ten test wraz z testami multiseek na ten sam worker, więc multiseek deterministycznie padał z 50 errors. W izolacji / na multiseek-only — zielono. Fix: patch przeniesiony na health._check_db (paraleluje już test_health_check_returns_503_when_redis_down). Zero side-effectu na DatabaseWrapper. #2 — middleware caplog 5 fails: Ten sam audit-cleanup commit dodał propagate=False na logger django.request. Pytest caplog wpina handler na root → bez propagacji nie widzi tych WARNING-ów. Próba flipowania propagate=True per-test fixture-em okazała się zawodna w pełnym suicie (jakaś inna ścieżka resetuje propagate między fixturem a asercją; niezbadane). Fix: autouse fixture wpina caplog.handler bezpośrednio na django.request, niezależnie od propagate. Plus jawne caplog.set_level(level, logger="django.request") w 5 testach. Wynik pełnego pytest -n auto: 3913 passed (z 3786) w 2:38 (z 7:16). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
mpasternak
added a commit
that referenced
this pull request
May 4, 2026
W kroku 2 wizarda pole `pliki` (`MultipleFileField` + `<input multiple>`)
przyjmowało N plików, ale do `Zgloszenie_Publikacji_Zalacznik` trafiał
zero, jeden lub żaden — zależnie od ścieżki kodu.
Dwa nakładające się błędy:
1. `_process_files` czytało `self.request.FILES.getlist("2-pliki")`,
ale w `done()` `request.FILES` to zawartość ostatniego kroku
wizarda (autorzy/opłaty), nie kroku 2. Efekt: 0 załączników.
2. `formtools.wizard.storage.base.set_step_files` iteruje
`files.items()` po `MultiValueDict`, co dla pól z `<input multiple>`
gubi wszystkie wartości poza ostatnią. Efekt po fixie #1: tylko 1
załącznik niezależnie od liczby uploadowanych plików.
Rozwiązanie:
- `process_step_files` zapisuje wszystkie pliki bezpośrednio do
`file_storage` i listę metadanych do `storage.extra_data["pliki_list"]`.
Standardowy storage formtools nadal dostaje swoje (re-walidacja
w `render_done` zobaczy 1 plik = przejdzie clean()).
- `_process_files` w `done()` czyta z `extra_data` i tworzy
`Zgloszenie_Publikacji_Zalacznik` dla każdego pliku, sprzątając
tmp-y po skopiowaniu do permanent storage.
- `_wyczysc_tmp_pliki` usuwa stare tmp-y przy ponownym submitie
kroku 2 (powrót w wizardzie).
Admin:
- `Zgloszenie_PublikacjiAdmin.pliki_do_pobrania` (readonly_field)
wyświetla listę wszystkich załączników + legacy pole `plik`.
- Nowy `pobierz_zalacznik_view` z X-Accel-Redirect dla pojedynczych
Zgloszenie_Publikacji_Zalacznik.
Testy regresji:
- `test_pelny_formularz_ograniczony_jeden_plik` — wizard OGRANICZONY
z 1 plikiem, asercja `zalaczniki.count() == 1`.
- `test_pelny_formularz_ograniczony_wiele_plikow` — z 3 plikami,
asercja `zalaczniki.count() == 3`. Bez fixa testy fail-ują;
z fixem przechodzą. Webtest zamiast playwright bo
`webtest_app.post(..., upload_files=[...])` obsługuje multipart
z duplikatami klucza, a playwright na step 3→4 jest flaky przez
auto-uzupełnianie jednostki w `autorform_dependant.js`.
Dodatkowo w tym samym commicie:
- Wyniesienie inline `<style>` z `step_base.html`/`step_rodzaj.html`/
`step_forma_dostepu.html` do `_wizard_forms.scss` (nowy plik
importowany w `app-{blue,green,orange}.scss`).
- `Zgloszenie_Publikacji_DaneForm.clean` defensywnie dla `self.files`
w postaci dict (re-walidacja z storage formtools nie zwraca
`MultiValueDict`).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
mpasternak
added a commit
that referenced
this pull request
May 4, 2026
Trzy współbieżne zmiany w wizardzie zgłaszania publikacji:
1) **Bug**: gdy user wybrał wydawnictwo nadrzędne (lub wydawcę)
z autocomplete, do `Zgloszenie_Publikacji` trafiał tylko tekst
etykiety, FK (`wydawnictwo_nadrzedne_bpp`/`_pbn`,
`wydawca_bpp`/`_pbn`) zostawał `None`.
Powód: `PublicWydawcaAutocomplete` i
`PublicWydawnictwoNadrzedneAutocomplete` miały nadpisany
`get_result_value`, który zwracał etykietę HTML zamiast
`<ct_pk>-<obj_pk>` (formatu, którego oczekuje QSS widget przy
POST). W rezultacie `<option value="...">` miał w sobie HTML
etykiety, a `_resolve_qss_value()` w `done()` nie potrafił
rozparsować referencji do obiektu.
Fix: usunąć obie nadpisówki — domyślne `get_result_value`
z `dal_queryset_sequence.views` zwraca poprawny format.
2) **Re-walidacja widget z malformed value** (z poprzedniego commita
zostawione w forms.py): `TolerantQuerySetSequenceSelect2` filtruje
bogusowe wartości przed `split('-', 1)` w `filter_choices_to_render`,
żeby re-render formularza po validation error nie wybuchał z 500.
3) **UX**: help_text pola `strona_www` (link do publikacji lub DOI)
wzbogacony o `_FULL_URL_TEKST` ze wskazówką:
- prefiks `https://`/`http://`
- jeżeli sam DOI — dodaj `https://dx.doi.org/[numer DOI]`
Suffix dochodzi do wszystkich 8 kombinacji `(rodzaj, forma_dostepu)`
w `STRONA_WWW_HELP_TEXT`, w tym do `POZOSTALE/OTWARTY` która
wcześniej miała pusty help_text.
4) **CSS**: `.select2-container { display: block !important;
margin-bottom: 1rem !important }` + spacing między select2 a
następującym `.help-text`. Bez tego help_text crispy renderowany
pod widgetem QSS wpadał w pole selecta (Foundation daje natywnemu
`<select>` margin: 0 0 1rem, ale select2 wstawia `<span>` które
tego nie dziedziczy).
5) **Migracja merge** `0415_merge_20260504_0907.py` — łączy `0414_*`
z dev (code review fixy) z `0414_merge_20260427_1123` (z dev'owego
merge w naszej gałęzi).
Testy regresji (webtest, pełne ścieżki przez wizard):
- `test_rozdzial_z_picknietym_wydawnictwem_nadrzednym_zapisuje_FK`
— RAW format `<ct>-<pk>` (jak picnięty z autocomplete) → asercja
`wn_bpp_id == ksiazka.pk` (regression dla bugu #1).
- `test_pelny_formularz_monografia_otwarty` — pełna ścieżka MONOGRAFII
z asercjami: zgłoszenie utworzone, brak `wydawnictwo_nadrzedne_*`
(forma usuwa pola), brak `wydawca_*` (świadomie usunięte z formularza
w 5b68c5b — bibliotekarz uzupełnia w adminie). Test pilnuje tej
decyzji projektowej; gdy ktoś przywróci pole `wydawca`, ten test
trzeba świadomie zaktualizować.
- (z poprzedniego commita pozostają)
`test_pelny_formularz_rozdzial_z_freetextem_wn`,
`test_rozdzial_z_bogus_wn_picker_nie_wybucha_na_re_renderze`,
`test_rozdzial_z_typed_text_w_picker_lzdaje_jako_freetext`.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps django from 2.1.10 to 2.1.11.
Commits
ff9dcc0[2.1.x] Bumped version for 2.1.11 release.5d50a2e[2.1.x] Fixed CVE-2019-14235 -- Fixed potential memory exhaustion in django.u...f74b3ae[2.1.x] Fixed CVE-2019-14234 -- Protected JSONField/HStoreField key and index...5ff8e79[2.1.X] Fixed CVE-2019-14233 -- Prevented excessive HTMLParser recursion in s...c23723a[2.1.X] Fixed CVE-2019-14232 -- Adjusted regex to avoid backtracking issues w...24eba90[2.1.x] Added stub release notes for security releases.765dac3[2.1.x] Added CVE-2019-12781 to the security release archive.fafde97[2.1.x] Post-release version bump.Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot mergewill merge this PR after your CI passes on it@dependabot squash and mergewill squash and merge this PR after your CI passes on it@dependabot cancel mergewill cancel a previously requested merge and block automerging@dependabot reopenwill reopen this PR if it is closed@dependabot ignore this [patch|minor|major] versionwill close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)@dependabot use these labelswill set the current labels as the default for future PRs for this repo and language@dependabot use these reviewerswill set the current reviewers as the default for future PRs for this repo and language@dependabot use these assigneeswill set the current assignees as the default for future PRs for this repo and language@dependabot use this milestonewill set the current milestone as the default for future PRs for this repo and languageYou can disable automated security fix PRs for this repo from the Security Alerts page.