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

iplweb / bpp / 45740dd7-cc71-4281-8725-5e2feaa4cfe9

31 Mar 2025 07:40PM UTC coverage: 41.43% (-1.5%) from 42.953%
45740dd7-cc71-4281-8725-5e2feaa4cfe9

push

circleci

mpasternak
Merge branch 'release/v202503.1172'

1 of 3 new or added lines in 3 files covered. (33.33%)

1248 existing lines in 81 files now uncovered.

15182 of 36645 relevant lines covered (41.43%)

0.41 hits per line

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

16.67
src/bpp/models/cache/utils.py
1
from collections import defaultdict
1✔
2
from decimal import Decimal
1✔
3

4
from ewaluacja2021.models import (
1✔
5
    IloscUdzialowDlaAutora_2022_2025,
6
    LiczbaNDlaUczelni_2022_2025,
7
)
8
from .liczba_n import Cache_Liczba_N_Last_Updated
1✔
9

10

11
# @transaction.atomic
12
def oblicz_liczby_n_dla_ewaluacji_2022_2025(uczelnia, rok_min=2022, rok_max=2025):
1✔
13

14
    from bpp.models.dyscyplina_naukowa import Autor_Dyscyplina
×
15

16
    autor_rok_dyscyplina_na_udzial = defaultdict(lambda: defaultdict(dict))
×
17
    uczelnia_dyscyplina_udzial = defaultdict(list)
×
18

19
    for ad in Autor_Dyscyplina.objects.filter(rok__gte=rok_min, rok__lte=rok_max):
×
20
        for dyscyplina, slot in ad.policz_udzialy():
×
21
            autor_rok_dyscyplina_na_udzial[ad.autor_id][dyscyplina.pk][ad.rok] = slot
×
22

23
    for autor_id in autor_rok_dyscyplina_na_udzial:
×
24
        for dyscyplina_id in autor_rok_dyscyplina_na_udzial[autor_id]:
×
25
            latami = autor_rok_dyscyplina_na_udzial[autor_id][dyscyplina_id]
×
26

27
            suma = sum(latami.values())
×
28
            # Zawsze na 4 lata:
NEW
29
            ilosc = 4  # len(latami.values())
×
30

31
            IloscUdzialowDlaAutora_2022_2025.objects.update_or_create(
×
32
                autor_id=autor_id,
33
                dyscyplina_naukowa_id=dyscyplina_id,
34
                defaults=dict(
35
                    ilosc_udzialow=suma, ilosc_udzialow_monografie=suma / Decimal("2.0")
36
                ),
37
            )
38

39
            uczelnia_dyscyplina_udzial[dyscyplina_id].append(suma / ilosc)
×
40

41
    LiczbaNDlaUczelni_2022_2025.objects.filter(uczelnia=uczelnia).delete()
×
42

43
    for dyscyplina_id, wartosci in uczelnia_dyscyplina_udzial.items():
×
44
        suma_srednich = sum(wartosci)
×
45

46
        LiczbaNDlaUczelni_2022_2025.objects.create(
×
47
            uczelnia_id=uczelnia.pk,
48
            dyscyplina_naukowa_id=dyscyplina_id,
49
            liczba_n=suma_srednich,
50
        )
51

52
    nie_raportowane = LiczbaNDlaUczelni_2022_2025.objects.filter(liczba_n__lt=12)
×
53

54
    # Dolicz +1 slot dla każdej nie-raportowanej dyscypliny
55
    for nie_raportowana in nie_raportowane:
×
56
        for elem in IloscUdzialowDlaAutora_2022_2025.objects.filter(
×
57
            dyscyplina_naukowa=nie_raportowana.dyscyplina_naukowa
58
        ):
59
            elem.ilosc_udzialow = min(4, elem.ilosc_udzialow + 1)
×
60
            elem.ilosc_udzialow_monografie = elem.ilosc_udzialow / Decimal("2.0")
×
61
            elem.save(update_fields=["ilosc_udzialow", "ilosc_udzialow_monografie"])
×
62

63
    # Usuń nie-raportowane dyscypliny z bazy
64
    nie_raportowane.delete()
×
65

66
    # Zaznacz, że policzone
67
    Cache_Liczba_N_Last_Updated.objects.update_or_create(
×
68
        pk=1, defaults=dict(wymaga_przeliczenia=False)
69
    )
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