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

iplweb / bpp / 0950478e-207f-4389-967f-fb3a6c1090d4

01 Apr 2025 12:57PM UTC coverage: 43.279% (-3.3%) from 46.628%
0950478e-207f-4389-967f-fb3a6c1090d4

push

circleci

mpasternak
Merge branch 'release/v202504.1175'

1 of 19 new or added lines in 5 files covered. (5.26%)

1780 existing lines in 123 files now uncovered.

15876 of 36683 relevant lines covered (43.28%)

0.79 hits per line

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

65.38
src/bpp/admin/helpers/__init__.py
1
from urllib.parse import parse_qs
2✔
2
from urllib.parse import quote as urlquote
2✔
3

4
from django.db.models import Q
2✔
5
from django.forms import BaseInlineFormSet
2✔
6
from django.urls import reverse
2✔
7

8
from django.contrib import messages
2✔
9
from django.contrib.admin.utils import quote
2✔
10
from django.contrib.contenttypes.models import ContentType
2✔
11

12
from django.utils.html import format_html
2✔
13
from django.utils.safestring import mark_safe
2✔
14

15
from bpp import const
2✔
16

17

18
def js_openwin(url, handle, options):
2✔
19
    options = ",".join([f"{a}={b}" for a, b in list(options.items())])
×
20
    d = dict(url=url, handle=handle, options=options)
×
21
    return "window.open('%(url)s','\\%(handle)s','%(options)s')" % d
×
22

23

24
class LimitingFormset(BaseInlineFormSet):
2✔
25
    def get_queryset(self):
2✔
26
        if not hasattr(self, "_queryset_limited"):
×
27
            qs = super().get_queryset()
×
28
            self._queryset_limited = qs[:100]
×
29
        return self._queryset_limited
×
30

31

32
def link_do_obiektu(obj, friendly_name=None):
2✔
UNCOV
33
    opts = obj._meta
1✔
UNCOV
34
    obj_url = reverse(
1✔
35
        f"admin:{opts.app_label}_{opts.model_name}_change",
36
        args=(quote(obj.pk),),
37
        # current_app=self.admin_site.name,
38
    )
39
    # Add a link to the object's change form if the user can edit the obj.
UNCOV
40
    if friendly_name is None:
1✔
UNCOV
41
        friendly_name = mark_safe(obj)
1✔
UNCOV
42
    return format_html('<a href="{}">{}</a>', urlquote(obj_url), friendly_name)
1✔
43

44

45
def get_rekord_id_from_GET_qs(request):
2✔
UNCOV
46
    flt = request.GET.get("_changelist_filters", "?")
1✔
UNCOV
47
    data = parse_qs(flt)  # noqa
1✔
UNCOV
48
    if "rekord__id__exact" in data:
1✔
UNCOV
49
        try:
1✔
UNCOV
50
            return int(data.get("rekord__id__exact")[0])
1✔
51
        except (ValueError, TypeError):
×
52
            pass
×
53

54

55
def sprawdz_duplikaty_www_doi(request, obj):
2✔
UNCOV
56
    from bpp.models.cache import Rekord
1✔
57

UNCOV
58
    IEXACT = "__iexact"
1✔
UNCOV
59
    for field, operator, label in [
1✔
60
        ("www", IEXACT, const.WWW_FIELD_LABEL),
61
        ("public_www", IEXACT, const.PUBLIC_WWW_FIELD_LABEL),
62
        ("doi", IEXACT, const.DOI_FIELD_LABEL),
63
        ("pbn_uid_id", "", const.PBN_UID_FIELD_LABEL),
64
    ]:
UNCOV
65
        if not hasattr(obj, field):
1✔
66
            continue
×
67

UNCOV
68
        v = getattr(obj, field)
1✔
UNCOV
69
        if v in [None, ""]:
1✔
UNCOV
70
            continue
1✔
71

72
        rekord_pk = (ContentType.objects.get_for_model(obj).pk, obj.pk)
×
73

74
        query = Q(**{field + operator: v})
×
75

76
        if field == "www":
×
77
            query |= Q(public_www__iexact=v)
×
78
        elif field == "public_www":
×
79
            query |= Q(www__iexact=v)
×
80

81
        if Rekord.objects.filter(query).exclude(pk=rekord_pk).exists():
×
82
            messages.warning(
×
83
                request, const.ZDUBLOWANE_POLE_KOMUNIKAT.format(label=label)
84
            )
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