From 1276b24ee09f39f11a3fc22c064334f1499d1fcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Pasternak?= Date: Wed, 11 Nov 2020 14:45:29 +0100 Subject: [PATCH] Pole "pseudonim" dla autora (#921) --- HISTORY.rst | 1 + src/bpp/admin/autor.py | 3 +++ src/bpp/migrations/0224_auto_20201111_1341.py | 18 +++++++++++++++++ src/bpp/models/autor.py | 8 ++++++++ .../test_models/test_struktura/test_autor.py | 20 ++++++++++++++++++- 5 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 src/bpp/migrations/0224_auto_20201111_1341.py diff --git a/HISTORY.rst b/HISTORY.rst index f79c2fe54..f872c28e3 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -7,6 +7,7 @@ Historia zmian * podczas obliczania slotów dla liczby autorów z dyscypliny nie uwzględniaj autorów z odznaczonym polem "afiliuje" (#927) +* pole "pseudonim" dla autora (#921) 202009.48 diff --git a/src/bpp/admin/autor.py b/src/bpp/admin/autor.py index 339f764f4..311ff9004 100644 --- a/src/bpp/admin/autor.py +++ b/src/bpp/admin/autor.py @@ -102,6 +102,7 @@ class AutorAdmin(ZapiszZAdnotacjaMixin, CommitedModelAdmin): "nazwisko", "imiona", "tytul", + "pseudonim", "poprzednie_nazwiska", "email", "pbn_id", @@ -123,6 +124,7 @@ class AutorAdmin(ZapiszZAdnotacjaMixin, CommitedModelAdmin): search_fields = [ "imiona", "nazwisko", + "pseudonim", "poprzednie_nazwiska", "email", "www", @@ -139,6 +141,7 @@ class AutorAdmin(ZapiszZAdnotacjaMixin, CommitedModelAdmin): "imiona", "nazwisko", "tytul", + "pseudonim", "pokazuj", "email", "www", diff --git a/src/bpp/migrations/0224_auto_20201111_1341.py b/src/bpp/migrations/0224_auto_20201111_1341.py new file mode 100644 index 000000000..64b0afbbf --- /dev/null +++ b/src/bpp/migrations/0224_auto_20201111_1341.py @@ -0,0 +1,18 @@ +# Generated by Django 3.0.9 on 2020-11-11 12:41 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('bpp', '0223_auto_20200812_1930'), + ] + + operations = [ + migrations.AddField( + model_name='autor', + name='pseudonim', + field=models.CharField(blank=True, help_text='\n Jeżeli w bazie danych znajdują się autorzy o zbliżonych imionach, nazwiskach i tytułach naukowych,\n skorzystaj z tego pola aby ułatwić ich rozróżnienie. Pseudonim pokaże się w polach wyszukiwania\n oraz na podstronie autora, po nazwisku, drobnym drukiem. ', max_length=300, null=True), + ), + ] diff --git a/src/bpp/models/autor.py b/src/bpp/models/autor.py index fb97177a8..224f5f142 100644 --- a/src/bpp/models/autor.py +++ b/src/bpp/models/autor.py @@ -67,6 +67,10 @@ class Autor(ModelZAdnotacjami, ModelZPBN_ID): imiona = models.CharField(max_length=512, db_index=True) nazwisko = models.CharField(max_length=256, db_index=True) tytul = models.ForeignKey(Tytul, CASCADE, blank=True, null=True) + pseudonim = models.CharField(max_length=300, blank=True, null=True, help_text=""" + Jeżeli w bazie danych znajdują się autorzy o zbliżonych imionach, nazwiskach i tytułach naukowych, + skorzystaj z tego pola aby ułatwić ich rozróżnienie. Pseudonim pokaże się w polach wyszukiwania + oraz na podstronie autora, po nazwisku i tytule naukowym.""") aktualny = models.BooleanField( "Aktualny?", @@ -174,6 +178,10 @@ def __str__(self): if self.tytul is not None: buf += ", " + self.tytul.skrot + + if self.pseudonim is not None: + buf += " (" + self.pseudonim + ")" + return buf def dodaj_jednostke(self, jednostka, rok=None, funkcja=None): diff --git a/src/bpp/tests/test_models/test_struktura/test_autor.py b/src/bpp/tests/test_models/test_struktura/test_autor.py index e947713ef..4c4df9b2a 100644 --- a/src/bpp/tests/test_models/test_struktura/test_autor.py +++ b/src/bpp/tests/test_models/test_struktura/test_autor.py @@ -2,7 +2,25 @@ import pytest from model_mommy import mommy -from bpp.models import Autor, Jednostka, Typ_Odpowiedzialnosci, Wydawnictwo_Ciagle +from bpp.models import ( + Autor, + Jednostka, + Typ_Odpowiedzialnosci, + Wydawnictwo_Ciagle, + Tytul, +) + + +@pytest.mark.django_db +def test_Autor_str(tytuly): + x = Autor( + nazwisko="Kowalski", + imiona="Jan", + tytul=Tytul.objects.first(), + poprzednie_nazwiska="Budnik", + pseudonim="Fafa", + ) + assert str(x) == "Kowalski Jan (Budnik), dr (Fafa)" def test_autor_eksport_pbn_serialize_bez_orcid(autor_jan_kowalski):