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

iplweb / bpp / #819

18 Oct 2025 12:03PM UTC coverage: 59.791% (+25.6%) from 34.185%
#819

push

local-test

Michał Pasternak
autostash

3781 of 9280 branches covered (40.74%)

Branch coverage included in aggregate %.

24978 of 38819 relevant lines covered (64.34%)

0.64 hits per line

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

50.0
src/pbn_api/admin/sentdata.py
1
from pbn_api.admin.base import BasePBNAPIAdminNoReadonly
1✔
2
from pbn_api.admin.widgets import JSONWithActionsWidget
1✔
3
from pbn_api.models import SentData
1✔
4

5
from django.contrib import admin
1✔
6

7
from bpp.admin.helpers.pbn_api.gui import sprobuj_wyslac_do_pbn_gui
1✔
8

9

10
@admin.register(SentData)
1✔
11
class SentDataAdmin(BasePBNAPIAdminNoReadonly):
1✔
12

13
    list_display = [
1✔
14
        "object",
15
        "last_updated_on",
16
        "typ_rekordu",
17
        "pbn_uid_id",
18
        "uploaded_okay",
19
        "exception_details",
20
    ]
21
    ordering = ("-last_updated_on",)
1✔
22
    search_fields = ["data_sent", "exception"]
1✔
23
    readonly_fields = [
1✔
24
        "content_type",
25
        "object_id",
26
        "last_updated_on",
27
        "uploaded_okay",
28
        "exception",
29
        "pbn_uid_id",
30
        "typ_rekordu",
31
    ]
32
    fields = readonly_fields + ["data_sent"]
1✔
33
    list_filter = ["uploaded_okay", "typ_rekordu"]
1✔
34

35
    list_per_page = 25
1✔
36

37
    # Override the base class formfield_overrides to use our custom widget
38
    formfield_overrides = {}
1✔
39

40
    def wyslij_ponownie(self, request, qset):
1✔
41
        pass
×
42

43
        for elem in qset:
×
44
            obj = elem.object
×
45
            sprobuj_wyslac_do_pbn_gui(request, obj)
×
46

47
    wyslij_ponownie.short_description = "Wyślij ponownie (tylko błędne)"
1✔
48

49
    def wyslij_ponownie_force(self, request, qset):
1✔
50
        for elem in qset:
×
51
            obj = elem.object
×
52
            sprobuj_wyslac_do_pbn_gui(request, obj, force_upload=True)
×
53

54
    wyslij_ponownie_force.short_description = (
1✔
55
        "Wyślij ponownie (wszystko; wymuś ponowny transfer)"
56
    )
57

58
    actions = [wyslij_ponownie, wyslij_ponownie_force]
1✔
59

60
    def has_delete_permission(self, request, *args, **kw):
1✔
61
        return True
1✔
62

63
    def has_add_permission(self, request):
1✔
64
        return False
1✔
65

66
    def has_change_permission(self, request, obj=None):
1✔
67
        return True
1✔
68

69
    def formfield_for_dbfield(self, db_field, request, **kwargs):
1✔
70
        # Override widget for data_sent field
71
        if db_field.name == "data_sent":
×
72
            # Try to get the object ID from the URL
73
            object_id = None
×
74
            if request and "object_id" in request.resolver_match.kwargs:
×
75
                object_id = request.resolver_match.kwargs["object_id"]
×
76

77
            widget = JSONWithActionsWidget(
×
78
                attrs={"data-object-id": object_id or "unknown"}
79
            )
80
            kwargs["widget"] = widget
×
81
            kwargs["label"] = "Wysłane dane"
×
82

83
        return super().formfield_for_dbfield(db_field, request, **kwargs)
×
84

85
    def exception_details(self, obj):
1✔
86
        if obj.exception:
×
87
            try:
×
88
                return obj.exception.split('"details":')[1][:-3]
×
89
            except BaseException:
×
90
                return obj.exception
×
91

92
    exception_details.short_description = "Opis problemu"
1✔
93
    exception_details.admin_order_field = "exception"
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