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

iplweb / bpp / 18634744198

19 Oct 2025 07:00PM UTC coverage: 31.618% (-29.9%) from 61.514%
18634744198

push

github

mpasternak
Merge branch 'release/v202510.1270'

657 of 9430 branches covered (6.97%)

Branch coverage included in aggregate %.

229 of 523 new or added lines in 42 files covered. (43.79%)

11303 existing lines in 316 files now uncovered.

14765 of 39346 relevant lines covered (37.53%)

0.38 hits per line

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

84.78
src/bpp/admin/__init__.py
1
from django import forms
1✔
2
from django.contrib import admin
1✔
3
from django.contrib.admin.sites import AlreadyRegistered
1✔
4
from django.contrib.auth.forms import UserCreationForm
1✔
5
from multiseek.models import SearchForm
1✔
6

7
from bpp.models import Rodzaj_Prawa_Patentowego, Zewnetrzna_Baza_Danych
1✔
8

9
# Proste tabele
10
from bpp.models.openaccess import (
1✔
11
    Czas_Udostepnienia_OpenAccess,
12
    Licencja_OpenAccess,
13
    Tryb_OpenAccess_Wydawnictwo_Ciagle,
14
    Tryb_OpenAccess_Wydawnictwo_Zwarte,
15
    Wersja_Tekstu_OpenAccess,
16
)
17

18
from ..models import (
1✔
19
    BppUser,
20
    Funkcja_Autora,
21
    Grupa_Pracownicza,
22
    Jezyk,
23
    Rodzaj_Zrodla,
24
    Rzeczownik,
25
    Status_Korekty,
26
    Typ_KBN,
27
    Typ_Odpowiedzialnosci,
28
    Tytul,
29
    Wymiar_Etatu,
30
    Zrodlo_Informacji,
31
)
32
from ..models.nagroda import OrganPrzyznajacyNagrody
1✔
33
from ..models.system import Charakter_PBN
1✔
34
from .autor import AutorAdmin  # noqa
1✔
35
from .autor_dyscyplina import Autor_DyscyplinaAdmin  # noqa
1✔
36
from .bppmultiseekvisibility import BppMulitiseekVisibilityAdmin  # noqa
1✔
37
from .charakter_formalny import Charakter_FormalnyAdmin  # noqa
1✔
38
from .core import (
1✔
39
    BaseBppAdminMixin,
40
    PreventDeletionAdmin,
41
    RestrictDeletionToAdministracjaGroupAdmin,
42
    RestrictDeletionToAdministracjaGroupMixin,
43
)
44
from .dyscyplina_naukowa import Dyscyplina_NaukowaAdmin  # noqa
1✔
45
from .jednostka import JednostkaAdmin  # NOQA
1✔
46
from .kierunek_studiow import Kierunek_StudiowAdmin  # noqa
1✔
47
from .konferencja import KonferencjaAdmin  # noqa
1✔
48
from .patent import Patent_Admin  # noqa
1✔
49
from .praca_doktorska import Praca_DoktorskaAdmin  # noqa
1✔
50
from .praca_habilitacyjna import Praca_HabilitacyjnaAdmin  # noqa
1✔
51
from .seria_wydawnicza import Seria_WydawniczaAdmin  # noqa
1✔
52
from .szablondlaopisubibliograficznego import SzablonDlaOpisuBibliograficznego  # noqa
1✔
53
from .uczelnia import UczelniaAdmin  # NOQA
1✔
54
from .wydawca import WydawcaAdmin  # noqa
1✔
55
from .wydawnictwo_ciagle import Wydawnictwo_CiagleAdmin  # noqa
1✔
56
from .wydawnictwo_ciagle_autor import Wydawnictwo_Ciagle_Autor_Admin  # noqa
1✔
57
from .wydawnictwo_zwarte import (  # noqa
1✔
58
    Wydawnictwo_ZwarteAdmin,
59
    Wydawnictwo_ZwarteAdmin_Baza,
60
)
61
from .wydawnictwo_zwarte_autor import Wydawnictwo_Zwarte_Autor_Admin  # noqa
1✔
62
from .wydzial import WydzialAdmin  # noqa
1✔
63

64

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

70

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

74

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

82
admin.site.register(OrganPrzyznajacyNagrody, PreventDeletionAdmin)
1✔
83

84
admin.site.register(Grupa_Pracownicza, PreventDeletionAdmin)
1✔
85
admin.site.register(Wymiar_Etatu, PreventDeletionAdmin)
1✔
86

87

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

94

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

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

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

110

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

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

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

131

132
admin.site.register(Charakter_PBN, Charakter_PBNAdmin)
1✔
133

134

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

141

142
admin.site.register(Tytul, NazwaISkrotAdmin)
1✔
143

144

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

150

151
admin.site.register(Typ_KBN, Typ_KBNAdmin)
1✔
152

153

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

159

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

165

166
admin.site.register(
1✔
167
    Tryb_OpenAccess_Wydawnictwo_Ciagle, Tryb_OpenAccess_Wydawnictwo_CiagleAdmin
168
)
169

170

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

176

177
admin.site.register(
1✔
178
    Tryb_OpenAccess_Wydawnictwo_Zwarte, Tryb_OpenAccess_Wydawnictwo_ZwarteAdmin
179
)
180

181

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

187

188
admin.site.register(Czas_Udostepnienia_OpenAccess, Czas_Udostepnienia_OpenAccessAdmin)
1✔
189

190

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

196

197
admin.site.register(Licencja_OpenAccess, Licencja_OpenAccessAdmin)
1✔
198

199

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

205

206
admin.site.register(Wersja_Tekstu_OpenAccess, Wersja_Tekstu_OpenAccessAdmin)
1✔
207

208
admin.site.register(Typ_Odpowiedzialnosci, Typ_OdpowiedzialnosciAdmin)
1✔
209

210
# Bibliografia
211

212

213
from django.contrib.auth.admin import UserAdmin
1✔
214

215

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

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

234

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

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

251
    add_form = BppUserCreationForm
1✔
252

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

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

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

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

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

271

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

281

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

287

288
SearchForm._meta.verbose_name = "formularz wyszukiwania"
1✔
289
SearchForm._meta.verbose_name_plural = "formularze wyszukiwania"
1✔
290

291
admin.site.register(SearchForm, SearchFormAdmin)
1✔
292

293
from .crossref_mapper import Crossref_Mapper_Admin  # noqa
1✔
294
from .templates import TemplateAdmin  # noqa
1✔
295
from .zrodlo import ZrodloAdmin  # noqa
1✔
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