Skip to content

Commit

Permalink
Fix #953
Browse files Browse the repository at this point in the history
  • Loading branch information
mpasternak committed Jan 22, 2021
1 parent 2f958a6 commit 3438bc1
Show file tree
Hide file tree
Showing 6 changed files with 54 additions and 22 deletions.
4 changes: 3 additions & 1 deletion HISTORY.rst
Expand Up @@ -15,7 +15,9 @@ Historia zmian
* wyświetlaj link do PubMedCentral dla prac z PMC ID (#959),
* poprawki pobierania PubMed ID (#958),
* poprawne zawężanie do zakresu punktów PK (#967),
* katalog cache ma nazwę z numerem wersji (#961).
* katalog cache ma nazwę z numerem wersji (#961),
* w multiwyszukiwarce w polu "Wydawnictwo nadrzędne" pokazuj wyłącznie rekordy
będące już wydawnictwami nadrzędnymi dla rekordów (#953).

202101.53
---------
Expand Down
17 changes: 15 additions & 2 deletions src/bpp/tests/test_autocomplete.py
Expand Up @@ -5,7 +5,7 @@
from django.urls import reverse
from model_mommy import mommy

from bpp.models import Autor_Dyscyplina
from bpp.models import Autor_Dyscyplina, Wydawnictwo_Zwarte
from bpp.models.autor import Autor
from bpp.models.konferencja import Konferencja
from bpp.views.autocomplete import (
Expand Down Expand Up @@ -150,9 +150,22 @@ def test_wydawca_autocomplete(admin_client):

def test_wydawnictwo_nadrzedne_autocomplete(admin_client):
admin_client.get(reverse("bpp:wydawnictwo-nadrzedne-autocomplete") + "?q=test")
admin_client.get(


def test_publicwydawnictwo_nadrzedne_autocomplete(admin_client, ksiazka):
ksiazka.tytul_oryginalny = "test 123"
ksiazka.save()

res = admin_client.get(
reverse("bpp:public-wydawnictwo-nadrzedne-autocomplete") + "?q=test"
)
assert not json.loads(res.content)["results"]

mommy.make(Wydawnictwo_Zwarte, wydawnictwo_nadrzedne=ksiazka)
res = admin_client.get(
reverse("bpp:public-wydawnictwo-nadrzedne-autocomplete") + "?q=test"
)
assert len(json.loads(res.content)["results"]) == 1


def test_tsquery_bug1(admin_client):
Expand Down
21 changes: 3 additions & 18 deletions src/bpp/tests/test_views/test_oai.py
@@ -1,9 +1,8 @@
# -*- encoding: utf-8 -*-
import pytest
from django.urls.base import reverse
import xml.etree.ElementTree as ET

from bpp.models import Rekord
import pytest
from django.urls.base import reverse


@pytest.mark.django_db
Expand All @@ -20,20 +19,6 @@ def test_identify(wydawnictwo_ciagle, client):
assert res.status_code == 200


@pytest.fixture
def ksiazka(wydawnictwo_zwarte, ksiazka_polska) -> "Wydawnictwo_Zwarte":
wydawnictwo_zwarte.charakter_formalny = ksiazka_polska
wydawnictwo_zwarte.save()
return wydawnictwo_zwarte


@pytest.fixture
def artykul(wydawnictwo_ciagle, artykul_w_czasopismie):
wydawnictwo_ciagle.charakter_formalny = artykul_w_czasopismie
wydawnictwo_ciagle.save()
return wydawnictwo_ciagle


def toXML(response):
return ET.fromstring(response.content.decode("utf-8"))

Expand All @@ -42,7 +27,7 @@ def test_listRecords(ksiazka, client):
listRecords = reverse("bpp:oai") + "?verb=ListRecords&metadataPrefix=oai_dc"
res = client.get(listRecords)

responseXml = ET.fromstring(res.content.decode("utf-8"))
ET.fromstring(res.content.decode("utf-8"))
assert "Tytul Wydawnictwo" in toXML(res)[2][0][1][0][1].text


Expand Down
2 changes: 1 addition & 1 deletion src/bpp/urls.py
Expand Up @@ -347,7 +347,7 @@
name="wydawnictwo-nadrzedne-autocomplete",
),
url(
r"^wydawnictwo-nadrzedne-autocomplete/$",
r"^public-wydawnictwo-nadrzedne-autocomplete/$",
PublicWydawnictwo_NadrzedneAutocomplete.as_view(),
name="public-wydawnictwo-nadrzedne-autocomplete",
),
Expand Down
18 changes: 18 additions & 0 deletions src/bpp/views/autocomplete.py
Expand Up @@ -53,6 +53,24 @@ def get_queryset(self):
class PublicWydawnictwo_NadrzedneAutocomplete(Wydawnictwo_NadrzedneAutocomplete):
create_field = None

def get_queryset(self):
"""
:test: :py:class:`bpp.tests.test_autocomplete`
"""

# Publiczna wyszukiwarka dla wydawnictw nadrzędnych powinna wyszukiwać wyłącznie rekordy,
# które są już wydawnictwami nadrzędnymi dla jakichś rekordów:

qs = Wydawnictwo_Zwarte.objects.filter(
pk__in=Wydawnictwo_Zwarte.objects.exclude(wydawnictwo_nadrzedne_id=None)
.values_list("wydawnictwo_nadrzedne_id")
.distinct()
)

if self.q:
qs = qs.filter(tytul_oryginalny__icontains=self.q)
return qs


class JednostkaMixin:
def get_result_label(self, result):
Expand Down
14 changes: 14 additions & 0 deletions src/conftest.py
Expand Up @@ -750,3 +750,17 @@ def wydawnictwo_zwarte_w_trakcie_korekty(statusy_korekt):
@pytest.fixture
def wydawnictwo_zwarte_po_korekcie(statusy_korekt):
return mommy.make(Wydawnictwo_Zwarte, status_korekty=statusy_korekt["po korekcie"])


@pytest.fixture
def ksiazka(wydawnictwo_zwarte, ksiazka_polska) -> "Wydawnictwo_Zwarte":
wydawnictwo_zwarte.charakter_formalny = ksiazka_polska
wydawnictwo_zwarte.save()
return wydawnictwo_zwarte


@pytest.fixture
def artykul(wydawnictwo_ciagle, artykul_w_czasopismie):
wydawnictwo_ciagle.charakter_formalny = artykul_w_czasopismie
wydawnictwo_ciagle.save()
return wydawnictwo_ciagle

0 comments on commit 3438bc1

Please sign in to comment.