• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

iplweb / bpp / f77eb09d-4388-431e-b9f3-4fc7a8822640

28 Aug 2025 08:13PM UTC coverage: 39.949% (-3.5%) from 43.402%
f77eb09d-4388-431e-b9f3-4fc7a8822640

push

circleci

mpasternak
Whatever

16244 of 40662 relevant lines covered (39.95%)

0.74 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

87.88
src/bpp/admin/__init__.py
1
from django import forms
2✔
2
from multiseek.models import SearchForm
2✔
3

4
from ..models import (
2✔
5
    BppUser,
6
    Funkcja_Autora,
7
    Grupa_Pracownicza,
8
    Jezyk,
9
    Rodzaj_Zrodla,
10
    Rzeczownik,
11
    Status_Korekty,
12
    Typ_KBN,
13
    Typ_Odpowiedzialnosci,
14
    Tytul,
15
    Wymiar_Etatu,
16
    Zrodlo_Informacji,
17
)
18
from ..models.nagroda import OrganPrzyznajacyNagrody
2✔
19
from ..models.system import Charakter_PBN
2✔
20
from .autor import AutorAdmin  # noqa
2✔
21
from .autor_dyscyplina import Autor_DyscyplinaAdmin  # noqa
2✔
22
from .charakter_formalny import Charakter_FormalnyAdmin  # noqa
2✔
23
from .core import (
2✔
24
    BaseBppAdminMixin,
25
    PreventDeletionAdmin,
26
    RestrictDeletionToAdministracjaGroupAdmin,
27
    RestrictDeletionToAdministracjaGroupMixin,
28
)
29
from .dyscyplina_naukowa import Dyscyplina_NaukowaAdmin  # noqa
2✔
30
from .jednostka import JednostkaAdmin  # NOQA
2✔
31
from .kierunek_studiow import Kierunek_StudiowAdmin  # noqa
2✔
32
from .konferencja import KonferencjaAdmin  # noqa
2✔
33
from .patent import Patent_Admin  # noqa
2✔
34
from .praca_doktorska import Praca_DoktorskaAdmin  # noqa
2✔
35
from .praca_habilitacyjna import Praca_HabilitacyjnaAdmin  # noqa
2✔
36
from .seria_wydawnicza import Seria_WydawniczaAdmin  # noqa
2✔
37
from .szablondlaopisubibliograficznego import SzablonDlaOpisuBibliograficznego  # noqa
2✔
38
from .uczelnia import UczelniaAdmin  # NOQA
2✔
39
from .wydawca import WydawcaAdmin  # noqa
2✔
40
from .wydawnictwo_ciagle import Wydawnictwo_CiagleAdmin  # noqa
2✔
41
from .wydawnictwo_ciagle_autor import Wydawnictwo_Ciagle_Autor_Admin  # noqa
2✔
42
from .wydawnictwo_zwarte import (  # noqa
2✔
43
    Wydawnictwo_ZwarteAdmin,
44
    Wydawnictwo_ZwarteAdmin_Baza,
45
)
46
from .wydawnictwo_zwarte_autor import Wydawnictwo_Zwarte_Autor_Admin  # noqa
2✔
47
from .wydzial import WydzialAdmin  # noqa
2✔
48

49
from django.contrib import admin
2✔
50
from django.contrib.admin.sites import AlreadyRegistered
2✔
51
from django.contrib.auth.forms import UserCreationForm
2✔
52

53
from .bppmultiseekvisibility import BppMulitiseekVisibilityAdmin  # noqa
2✔
54
from bpp.models import Rodzaj_Prawa_Patentowego, Zewnetrzna_Baza_Danych
2✔
55

56
# Proste tabele
57
from bpp.models.openaccess import (
2✔
58
    Czas_Udostepnienia_OpenAccess,
59
    Licencja_OpenAccess,
60
    Tryb_OpenAccess_Wydawnictwo_Ciagle,
61
    Tryb_OpenAccess_Wydawnictwo_Zwarte,
62
    Wersja_Tekstu_OpenAccess,
63
)
64

65

66
class JezykAdmin(RestrictDeletionToAdministracjaGroupAdmin):
2✔
67
    list_display = ["nazwa", "skrot", "pbn_uid", "skrot_crossref", "widoczny"]
2✔
68
    list_filter = ["widoczny"]
2✔
69
    search_fields = ["nazwa", "skrot", "pbn_uid__pk", "skrot_crossref"]
2✔
70

71

72
class Funkcja_AutoraAdmin(RestrictDeletionToAdministracjaGroupAdmin):
2✔
73
    list_display = ["nazwa", "skrot", "pokazuj_za_nazwiskiem"]
2✔
74

75

76
admin.site.register(Jezyk, JezykAdmin)
2✔
77
admin.site.register(Funkcja_Autora, Funkcja_AutoraAdmin)
2✔
78
admin.site.register(Rodzaj_Zrodla, PreventDeletionAdmin)
2✔
79
admin.site.register(Status_Korekty, PreventDeletionAdmin)
2✔
80
admin.site.register(Zrodlo_Informacji, PreventDeletionAdmin)
2✔
81
admin.site.register(Rodzaj_Prawa_Patentowego, PreventDeletionAdmin)
2✔
82

83
admin.site.register(OrganPrzyznajacyNagrody, PreventDeletionAdmin)
2✔
84

85
admin.site.register(Grupa_Pracownicza, PreventDeletionAdmin)
2✔
86
admin.site.register(Wymiar_Etatu, PreventDeletionAdmin)
2✔
87

88

89
@admin.register(Zewnetrzna_Baza_Danych)
2✔
90
class Zewnetrzna_Baza_DanychAdmin(
2✔
91
    RestrictDeletionToAdministracjaGroupAdmin, BaseBppAdminMixin, admin.ModelAdmin
92
):
93
    list_display = ["nazwa", "skrot"]
2✔
94

95

96
@admin.register(Rzeczownik)
2✔
97
class RzeczownikAdmin(
2✔
98
    RestrictDeletionToAdministracjaGroupAdmin, BaseBppAdminMixin, admin.ModelAdmin
99
):
100
    list_display = ["uid", "m", "d", "c", "b", "n", "ms", "w"]
2✔
101
    search_fields = ["uid", "m", "d", "c", "b", "n", "ms", "w"]
2✔
102
    list_filter = ["uid"]
2✔
103
    readonly_fields = ["uid"]
2✔
104

105
    def has_add_permission(self, request):
2✔
106
        return False
1✔
107

108
    def has_delete_permission(self, request, obj=None):
2✔
109
        return False
1✔
110

111

112
class Charakter_PBNAdmin(
2✔
113
    RestrictDeletionToAdministracjaGroupMixin, BaseBppAdminMixin, admin.ModelAdmin
114
):
115
    list_display = [
2✔
116
        "identyfikator",
117
        "wlasciwy_dla",
118
        "opis",
119
        "charaktery_formalne",
120
        "typy_kbn",
121
    ]
122
    readonly_fields = ["identyfikator", "wlasciwy_dla", "opis", "help_text"]
2✔
123

124
    def charaktery_formalne(self, rec):
2✔
125
        return ", ".join(
×
126
            [f"{x.nazwa} ({x.skrot})" for x in rec.charakter_formalny_set.all()]
127
        )
128

129
    def typy_kbn(self, rec):
2✔
130
        return ", ".join([f"{x.nazwa} ({x.skrot})" for x in rec.typ_kbn_set.all()])
×
131

132

133
admin.site.register(Charakter_PBN, Charakter_PBNAdmin)
2✔
134

135

136
class NazwaISkrotAdmin(
2✔
137
    RestrictDeletionToAdministracjaGroupMixin, BaseBppAdminMixin, admin.ModelAdmin
138
):
139
    list_display = ["skrot", "nazwa"]
2✔
140
    search_fields = ["skrot", "nazwa"]
2✔
141

142

143
admin.site.register(Tytul, NazwaISkrotAdmin)
2✔
144

145

146
class Typ_KBNAdmin(
2✔
147
    RestrictDeletionToAdministracjaGroupAdmin, BaseBppAdminMixin, admin.ModelAdmin
148
):
149
    list_display = ["nazwa", "skrot", "artykul_pbn", "charakter_pbn"]
2✔
150

151

152
admin.site.register(Typ_KBN, Typ_KBNAdmin)
2✔
153

154

155
class Typ_OdpowiedzialnosciAdmin(
2✔
156
    RestrictDeletionToAdministracjaGroupMixin, BaseBppAdminMixin, admin.ModelAdmin
157
):
158
    list_display = ["nazwa", "skrot", "typ_ogolny"]
2✔
159

160

161
class Tryb_OpenAccess_Wydawnictwo_CiagleAdmin(
2✔
162
    RestrictDeletionToAdministracjaGroupMixin, BaseBppAdminMixin, admin.ModelAdmin
163
):
164
    list_display = ["nazwa", "skrot"]
2✔
165

166

167
admin.site.register(
2✔
168
    Tryb_OpenAccess_Wydawnictwo_Ciagle, Tryb_OpenAccess_Wydawnictwo_CiagleAdmin
169
)
170

171

172
class Tryb_OpenAccess_Wydawnictwo_ZwarteAdmin(
2✔
173
    RestrictDeletionToAdministracjaGroupMixin, BaseBppAdminMixin, admin.ModelAdmin
174
):
175
    list_display = ["nazwa", "skrot"]
2✔
176

177

178
admin.site.register(
2✔
179
    Tryb_OpenAccess_Wydawnictwo_Zwarte, Tryb_OpenAccess_Wydawnictwo_ZwarteAdmin
180
)
181

182

183
class Czas_Udostepnienia_OpenAccessAdmin(
2✔
184
    RestrictDeletionToAdministracjaGroupMixin, BaseBppAdminMixin, admin.ModelAdmin
185
):
186
    list_display = ["nazwa", "skrot"]
2✔
187

188

189
admin.site.register(Czas_Udostepnienia_OpenAccess, Czas_Udostepnienia_OpenAccessAdmin)
2✔
190

191

192
class Licencja_OpenAccessAdmin(
2✔
193
    RestrictDeletionToAdministracjaGroupMixin, BaseBppAdminMixin, admin.ModelAdmin
194
):
195
    list_display = ["nazwa", "skrot"]
2✔
196

197

198
admin.site.register(Licencja_OpenAccess, Licencja_OpenAccessAdmin)
2✔
199

200

201
class Wersja_Tekstu_OpenAccessAdmin(
2✔
202
    RestrictDeletionToAdministracjaGroupMixin, BaseBppAdminMixin, admin.ModelAdmin
203
):
204
    list_display = ["nazwa", "skrot"]
2✔
205

206

207
admin.site.register(Wersja_Tekstu_OpenAccess, Wersja_Tekstu_OpenAccessAdmin)
2✔
208

209
admin.site.register(Typ_Odpowiedzialnosci, Typ_OdpowiedzialnosciAdmin)
2✔
210

211
# Bibliografia
212

213

214
from django.contrib.auth.admin import UserAdmin
2✔
215

216

217
class BppUserCreationForm(UserCreationForm):
2✔
218
    class Meta:
2✔
219
        model = BppUser
2✔
220
        fields = "__all__"
2✔
221

222
    def clean_username(self):
2✔
223
        # Since User.username is unique, this check is redundant,
224
        # but it sets a nicer error message than the ORM. See #13147.
225
        username = self.cleaned_data["username"]
×
226
        try:
×
227
            BppUser._default_manager.get(username=username)
×
228
        except BppUser.DoesNotExist:
×
229
            return username
×
230
        raise forms.ValidationError(
×
231
            self.error_messages["duplicate_username"],
232
            code="duplicate_username",
233
        )
234

235

236
class BppUserAdmin(UserAdmin):
2✔
237
    list_display = (
2✔
238
        "username",
239
        "email",
240
        "first_name",
241
        "last_name",
242
        "is_staff",
243
        "is_active",
244
        "is_superuser",
245
        "lista_grup",
246
    )
247

248
    fieldsets = UserAdmin.fieldsets + (
2✔
249
        ("PBN API", {"fields": ("przedstawiaj_w_pbn_jako",)}),
250
    )
251

252
    add_form = BppUserCreationForm
2✔
253

254
    # change_form_template = 'loginas/change_form.html'
255

256
    def has_delete_permission(self, request, obj=None):
2✔
257
        if obj is not None:
1✔
258
            # Nie pozwól na usunięcie obecnego konta
259
            if obj == request.user:
×
260
                return False
×
261

262
            # Sprawdź przy kasowaniu konta 'admin' czy są jeszcze jakieś konta z
263
            # uprawnieniem admina, jeżeli nie, to nie pozwól na to:
264
            if not BppUser.objects.exclude(pk=obj.pk).exists():
×
265
                return False
×
266

267
        return super().has_delete_permission(request, obj)
1✔
268

269
    def lista_grup(self, row):
2✔
270
        return ", ".join([x.name for x in row.groups.all()])
×
271

272

273
try:
2✔
274
    admin.site.register(BppUser, BppUserAdmin)
2✔
275
except AlreadyRegistered:
×
276
    # W przypadku użycia django_microsoft_auth, formularz będzie już zarejestrowany (przez microsoft_auth),
277
    # stąd trzeba go od-rejestrować i nadpisać. Problem polega na tym, że gdy zostawimy formularz
278
    # microsoft_auth to zginie nam pole "Przedstawiaj w PBN jako"
279
    admin.site.unregister(BppUser)
×
280
    admin.site.register(BppUser, BppUserAdmin)
×
281

282

283
class SearchFormAdmin(admin.ModelAdmin):
2✔
284
    list_display = ["name", "owner", "public"]
2✔
285
    fields = ["name", "owner", "public", "data"]
2✔
286
    readonly_fields = ["data"]
2✔
287

288

289
SearchForm._meta.verbose_name = "formularz wyszukiwania"
2✔
290
SearchForm._meta.verbose_name_plural = "formularze wyszukiwania"
2✔
291

292
admin.site.register(SearchForm, SearchFormAdmin)
2✔
293

294
from .crossref_mapper import Crossref_Mapper_Admin  # noqa
2✔
295
from .templates import TemplateAdmin  # noqa
2✔
296
from .zrodlo import ZrodloAdmin  # noqa
2✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc