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

iplweb / bpp / e4182907-b807-4c44-b0e6-e95d00f6f63d

16 Feb 2025 08:40PM UTC coverage: 48.007% (+0.005%) from 48.002%
e4182907-b807-4c44-b0e6-e95d00f6f63d

push

circleci

mpasternak
Fix "connection already closed"

7 of 11 new or added lines in 1 file covered. (63.64%)

2013 existing lines in 116 files now uncovered.

16798 of 34991 relevant lines covered (48.01%)

1.22 hits per line

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

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

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

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

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

63

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

67

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

71

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

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

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

84

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

91

92
class Charakter_PBNAdmin(
3✔
93
    RestrictDeletionToAdministracjaGroupMixin, BaseBppAdminMixin, admin.ModelAdmin
94
):
95
    list_display = [
3✔
96
        "identyfikator",
97
        "wlasciwy_dla",
98
        "opis",
99
        "charaktery_formalne",
100
        "typy_kbn",
101
    ]
102
    readonly_fields = ["identyfikator", "wlasciwy_dla", "opis", "help_text"]
3✔
103

104
    def charaktery_formalne(self, rec):
3✔
105
        return ", ".join(
×
106
            [f"{x.nazwa} ({x.skrot})" for x in rec.charakter_formalny_set.all()]
107
        )
108

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

112

113
admin.site.register(Charakter_PBN, Charakter_PBNAdmin)
3✔
114

115

116
class NazwaISkrotAdmin(
3✔
117
    RestrictDeletionToAdministracjaGroupMixin, BaseBppAdminMixin, admin.ModelAdmin
118
):
119
    list_display = ["skrot", "nazwa"]
3✔
120
    search_fields = ["skrot", "nazwa"]
3✔
121

122

123
admin.site.register(Tytul, NazwaISkrotAdmin)
3✔
124

125

126
class Typ_KBNAdmin(
3✔
127
    RestrictDeletionToAdministracjaGroupAdmin, BaseBppAdminMixin, admin.ModelAdmin
128
):
129
    list_display = ["nazwa", "skrot", "artykul_pbn", "charakter_pbn"]
3✔
130

131

132
admin.site.register(Typ_KBN, Typ_KBNAdmin)
3✔
133

134

135
class Typ_OdpowiedzialnosciAdmin(
3✔
136
    RestrictDeletionToAdministracjaGroupMixin, BaseBppAdminMixin, admin.ModelAdmin
137
):
138
    list_display = ["nazwa", "skrot", "typ_ogolny"]
3✔
139

140

141
class Tryb_OpenAccess_Wydawnictwo_CiagleAdmin(
3✔
142
    RestrictDeletionToAdministracjaGroupMixin, BaseBppAdminMixin, admin.ModelAdmin
143
):
144
    list_display = ["nazwa", "skrot"]
3✔
145

146

147
admin.site.register(
3✔
148
    Tryb_OpenAccess_Wydawnictwo_Ciagle, Tryb_OpenAccess_Wydawnictwo_CiagleAdmin
149
)
150

151

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

157

158
admin.site.register(
3✔
159
    Tryb_OpenAccess_Wydawnictwo_Zwarte, Tryb_OpenAccess_Wydawnictwo_ZwarteAdmin
160
)
161

162

163
class Czas_Udostepnienia_OpenAccessAdmin(
3✔
164
    RestrictDeletionToAdministracjaGroupMixin, BaseBppAdminMixin, admin.ModelAdmin
165
):
166
    list_display = ["nazwa", "skrot"]
3✔
167

168

169
admin.site.register(Czas_Udostepnienia_OpenAccess, Czas_Udostepnienia_OpenAccessAdmin)
3✔
170

171

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

177

178
admin.site.register(Licencja_OpenAccess, Licencja_OpenAccessAdmin)
3✔
179

180

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

186

187
admin.site.register(Wersja_Tekstu_OpenAccess, Wersja_Tekstu_OpenAccessAdmin)
3✔
188

189
admin.site.register(Typ_Odpowiedzialnosci, Typ_OdpowiedzialnosciAdmin)
3✔
190

191
# Bibliografia
192

193

194
from django.contrib.auth.admin import UserAdmin
3✔
195

196

197
class BppUserCreationForm(UserCreationForm):
3✔
198
    class Meta:
3✔
199
        model = BppUser
3✔
200
        fields = "__all__"
3✔
201

202
    def clean_username(self):
3✔
203
        # Since User.username is unique, this check is redundant,
204
        # but it sets a nicer error message than the ORM. See #13147.
205
        username = self.cleaned_data["username"]
×
206
        try:
×
207
            BppUser._default_manager.get(username=username)
×
208
        except BppUser.DoesNotExist:
×
209
            return username
×
210
        raise forms.ValidationError(
×
211
            self.error_messages["duplicate_username"],
212
            code="duplicate_username",
213
        )
214

215

216
class BppUserAdmin(UserAdmin):
3✔
217
    list_display = (
3✔
218
        "username",
219
        "email",
220
        "first_name",
221
        "last_name",
222
        "is_staff",
223
        "is_active",
224
        "is_superuser",
225
        "lista_grup",
226
    )
227

228
    add_form = BppUserCreationForm
3✔
229

230
    # change_form_template = 'loginas/change_form.html'
231

232
    def has_delete_permission(self, request, obj=None):
3✔
UNCOV
233
        if obj is not None:
2✔
234
            # Nie pozwól na usunięcie obecnego konta
235
            if obj == request.user:
×
236
                return False
×
237

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

UNCOV
243
        return super().has_delete_permission(request, obj)
2✔
244

245
    def lista_grup(self, row):
3✔
246
        return ", ".join([x.name for x in row.groups.all()])
×
247

248

249
admin.site.register(BppUser, BppUserAdmin)
3✔
250

251

252
class SearchFormAdmin(admin.ModelAdmin):
3✔
253
    list_display = ["name", "owner", "public"]
3✔
254
    fields = ["name", "owner", "public", "data"]
3✔
255
    readonly_fields = ["data"]
3✔
256

257

258
SearchForm._meta.verbose_name = "formularz wyszukiwania"
3✔
259
SearchForm._meta.verbose_name_plural = "formularze wyszukiwania"
3✔
260

261
admin.site.register(SearchForm, SearchFormAdmin)
3✔
262

263
from .templates import TemplateAdmin  # noqa
3✔
264
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