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

iplweb / bpp / fff5565f-f10d-4646-9e88-4f0c30e045b7

26 Feb 2025 11:46PM UTC coverage: 46.674% (+0.5%) from 46.137%
fff5565f-f10d-4646-9e88-4f0c30e045b7

push

circleci

mpasternak
Merge branch 'release/v202502.1159'

148 of 555 new or added lines in 35 files covered. (26.67%)

2309 existing lines in 130 files now uncovered.

16652 of 35677 relevant lines covered (46.67%)

1.19 hits per line

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

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

4
from ..models import (
3✔
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
3✔
19
from ..models.system import Charakter_PBN
3✔
20
from .autor import AutorAdmin  # noqa
3✔
21
from .autor_dyscyplina import Autor_DyscyplinaAdmin  # noqa
3✔
22
from .charakter_formalny import Charakter_FormalnyAdmin  # noqa
3✔
23
from .core import (
3✔
24
    BaseBppAdminMixin,
25
    PreventDeletionAdmin,
26
    RestrictDeletionToAdministracjaGroupAdmin,
27
    RestrictDeletionToAdministracjaGroupMixin,
28
)
29
from .dyscyplina_naukowa import Dyscyplina_NaukowaAdmin  # noqa
3✔
30
from .jednostka import JednostkaAdmin  # NOQA
3✔
31
from .kierunek_studiow import Kierunek_StudiowAdmin  # noqa
3✔
32
from .konferencja import KonferencjaAdmin  # noqa
3✔
33
from .patent import Patent_Admin  # noqa
3✔
34
from .praca_doktorska import Praca_DoktorskaAdmin  # noqa
3✔
35
from .praca_habilitacyjna import Praca_HabilitacyjnaAdmin  # noqa
3✔
36
from .seria_wydawnicza import Seria_WydawniczaAdmin  # noqa
3✔
37
from .szablondlaopisubibliograficznego import SzablonDlaOpisuBibliograficznego  # noqa
3✔
38
from .uczelnia import UczelniaAdmin  # NOQA
3✔
39
from .wydawca import WydawcaAdmin  # noqa
3✔
40
from .wydawnictwo_ciagle import Wydawnictwo_CiagleAdmin  # noqa
3✔
41
from .wydawnictwo_ciagle_autor import Wydawnictwo_Ciagle_Autor_Admin  # noqa
3✔
42
from .wydawnictwo_zwarte import (  # noqa
3✔
43
    Wydawnictwo_ZwarteAdmin,
44
    Wydawnictwo_ZwarteAdmin_Baza,
45
)
46
from .wydawnictwo_zwarte_autor import Wydawnictwo_Zwarte_Autor_Admin  # noqa
3✔
47
from .wydzial import WydzialAdmin  # noqa
3✔
48

49
from django.contrib import admin
3✔
50
from django.contrib.auth.forms import UserCreationForm
3✔
51

52
from .bppmultiseekvisibility import BppMulitiseekVisibilityAdmin  # noqa
3✔
53
from bpp.models import Rodzaj_Prawa_Patentowego, Zewnetrzna_Baza_Danych
3✔
54

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

64

65
class JezykAdmin(RestrictDeletionToAdministracjaGroupAdmin):
3✔
66
    list_display = ["nazwa", "skrot", "pbn_uid", "skrot_crossref"]
3✔
67

68

69
class Funkcja_AutoraAdmin(RestrictDeletionToAdministracjaGroupAdmin):
3✔
70
    list_display = ["nazwa", "skrot", "pokazuj_za_nazwiskiem"]
3✔
71

72

73
admin.site.register(Jezyk, JezykAdmin)
3✔
74
admin.site.register(Funkcja_Autora, Funkcja_AutoraAdmin)
3✔
75
admin.site.register(Rodzaj_Zrodla, PreventDeletionAdmin)
3✔
76
admin.site.register(Status_Korekty, PreventDeletionAdmin)
3✔
77
admin.site.register(Zrodlo_Informacji, PreventDeletionAdmin)
3✔
78
admin.site.register(Rodzaj_Prawa_Patentowego, PreventDeletionAdmin)
3✔
79

80
admin.site.register(OrganPrzyznajacyNagrody, PreventDeletionAdmin)
3✔
81

82
admin.site.register(Grupa_Pracownicza, PreventDeletionAdmin)
3✔
83
admin.site.register(Wymiar_Etatu, PreventDeletionAdmin)
3✔
84

85

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

92

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

102
    def has_add_permission(self, request):
3✔
UNCOV
103
        return False
2✔
104

105
    def has_delete_permission(self, request, obj=None):
3✔
UNCOV
106
        return False
2✔
107

108

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

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

126
    def typy_kbn(self, rec):
3✔
127
        return ", ".join([f"{x.nazwa} ({x.skrot})" for x in rec.typ_kbn_set.all()])
×
128

129

130
admin.site.register(Charakter_PBN, Charakter_PBNAdmin)
3✔
131

132

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

139

140
admin.site.register(Tytul, NazwaISkrotAdmin)
3✔
141

142

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

148

149
admin.site.register(Typ_KBN, Typ_KBNAdmin)
3✔
150

151

152
class Typ_OdpowiedzialnosciAdmin(
3✔
153
    RestrictDeletionToAdministracjaGroupMixin, BaseBppAdminMixin, admin.ModelAdmin
154
):
155
    list_display = ["nazwa", "skrot", "typ_ogolny"]
3✔
156

157

158
class Tryb_OpenAccess_Wydawnictwo_CiagleAdmin(
3✔
159
    RestrictDeletionToAdministracjaGroupMixin, BaseBppAdminMixin, admin.ModelAdmin
160
):
161
    list_display = ["nazwa", "skrot"]
3✔
162

163

164
admin.site.register(
3✔
165
    Tryb_OpenAccess_Wydawnictwo_Ciagle, Tryb_OpenAccess_Wydawnictwo_CiagleAdmin
166
)
167

168

169
class Tryb_OpenAccess_Wydawnictwo_ZwarteAdmin(
3✔
170
    RestrictDeletionToAdministracjaGroupMixin, BaseBppAdminMixin, admin.ModelAdmin
171
):
172
    list_display = ["nazwa", "skrot"]
3✔
173

174

175
admin.site.register(
3✔
176
    Tryb_OpenAccess_Wydawnictwo_Zwarte, Tryb_OpenAccess_Wydawnictwo_ZwarteAdmin
177
)
178

179

180
class Czas_Udostepnienia_OpenAccessAdmin(
3✔
181
    RestrictDeletionToAdministracjaGroupMixin, BaseBppAdminMixin, admin.ModelAdmin
182
):
183
    list_display = ["nazwa", "skrot"]
3✔
184

185

186
admin.site.register(Czas_Udostepnienia_OpenAccess, Czas_Udostepnienia_OpenAccessAdmin)
3✔
187

188

189
class Licencja_OpenAccessAdmin(
3✔
190
    RestrictDeletionToAdministracjaGroupMixin, BaseBppAdminMixin, admin.ModelAdmin
191
):
192
    list_display = ["nazwa", "skrot"]
3✔
193

194

195
admin.site.register(Licencja_OpenAccess, Licencja_OpenAccessAdmin)
3✔
196

197

198
class Wersja_Tekstu_OpenAccessAdmin(
3✔
199
    RestrictDeletionToAdministracjaGroupMixin, BaseBppAdminMixin, admin.ModelAdmin
200
):
201
    list_display = ["nazwa", "skrot"]
3✔
202

203

204
admin.site.register(Wersja_Tekstu_OpenAccess, Wersja_Tekstu_OpenAccessAdmin)
3✔
205

206
admin.site.register(Typ_Odpowiedzialnosci, Typ_OdpowiedzialnosciAdmin)
3✔
207

208
# Bibliografia
209

210

211
from django.contrib.auth.admin import UserAdmin
3✔
212

213

214
class BppUserCreationForm(UserCreationForm):
3✔
215
    class Meta:
3✔
216
        model = BppUser
3✔
217
        fields = "__all__"
3✔
218

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

232

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

245
    fieldsets = UserAdmin.fieldsets + (
3✔
246
        ("PBN API", {"fields": ("przedstawiaj_w_pbn_jako",)}),
247
    )
248

249
    add_form = BppUserCreationForm
3✔
250

251
    # change_form_template = 'loginas/change_form.html'
252

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

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

UNCOV
264
        return super().has_delete_permission(request, obj)
2✔
265

266
    def lista_grup(self, row):
3✔
267
        return ", ".join([x.name for x in row.groups.all()])
×
268

269

270
admin.site.register(BppUser, BppUserAdmin)
3✔
271

272

273
class SearchFormAdmin(admin.ModelAdmin):
3✔
274
    list_display = ["name", "owner", "public"]
3✔
275
    fields = ["name", "owner", "public", "data"]
3✔
276
    readonly_fields = ["data"]
3✔
277

278

279
SearchForm._meta.verbose_name = "formularz wyszukiwania"
3✔
280
SearchForm._meta.verbose_name_plural = "formularze wyszukiwania"
3✔
281

282
admin.site.register(SearchForm, SearchFormAdmin)
3✔
283

284
from .templates import TemplateAdmin  # noqa
3✔
285
from .zrodlo import ZrodloAdmin  # noqa
3✔
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