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

iplweb / bpp / cb44964a-e09d-4599-b043-8f49966ee2f3

13 Apr 2025 09:14PM UTC coverage: 42.254% (-1.0%) from 43.279%
cb44964a-e09d-4599-b043-8f49966ee2f3

push

circleci

mpasternak
Merge branch 'release/v202504.1178'

18 of 104 new or added lines in 11 files covered. (17.31%)

889 existing lines in 29 files now uncovered.

15600 of 36920 relevant lines covered (42.25%)

0.42 hits per line

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

16.13
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():
×
NEW
21
            autor_rok_dyscyplina_na_udzial[ad.autor_id][dyscyplina.pk][ad.rok] = (
×
22
                slot,
23
                ad.rodzaj_autora,
24
            )
25

26
    for autor_id in autor_rok_dyscyplina_na_udzial:
×
27
        for dyscyplina_id in autor_rok_dyscyplina_na_udzial[autor_id]:
×
28
            latami = autor_rok_dyscyplina_na_udzial[autor_id][dyscyplina_id]
×
29

NEW
30
            suma = sum(slot for slot, rodzaj_autora in latami.values())
×
31

32
            # Zawsze na 4 lata:
NEW
33
            ilosc = Decimal(4)  # len(latami.values())
×
34

35
            IloscUdzialowDlaAutora_2022_2025.objects.update_or_create(
×
36
                autor_id=autor_id,
37
                dyscyplina_naukowa_id=dyscyplina_id,
38
                defaults=dict(
39
                    ilosc_udzialow=suma, ilosc_udzialow_monografie=suma / Decimal("2.0")
40
                ),
41
            )
42

NEW
43
            suma_dla_uczelni = sum(
×
44
                slot if rodzaj_autora == Autor_Dyscyplina.RODZAJE_AUTORA.N else 0
45
                for slot, rodzaj_autora in latami.values()
46
            )
47

NEW
48
            uczelnia_dyscyplina_udzial[dyscyplina_id].append(suma_dla_uczelni / ilosc)
×
49

50
    LiczbaNDlaUczelni_2022_2025.objects.filter(uczelnia=uczelnia).delete()
×
51

52
    for dyscyplina_id, wartosci in uczelnia_dyscyplina_udzial.items():
×
53
        suma_srednich = sum(wartosci)
×
54

55
        LiczbaNDlaUczelni_2022_2025.objects.create(
×
56
            uczelnia_id=uczelnia.pk,
57
            dyscyplina_naukowa_id=dyscyplina_id,
58
            liczba_n=suma_srednich,
59
        )
60

61
    nie_raportowane = LiczbaNDlaUczelni_2022_2025.objects.filter(liczba_n__lt=12)
×
62

63
    # Dolicz +1 slot dla każdej nie-raportowanej dyscypliny
64
    for nie_raportowana in nie_raportowane:
×
65
        for elem in IloscUdzialowDlaAutora_2022_2025.objects.filter(
×
66
            dyscyplina_naukowa=nie_raportowana.dyscyplina_naukowa
67
        ):
68
            elem.ilosc_udzialow = min(4, elem.ilosc_udzialow + 1)
×
69
            elem.ilosc_udzialow_monografie = elem.ilosc_udzialow / Decimal("2.0")
×
70
            elem.save(update_fields=["ilosc_udzialow", "ilosc_udzialow_monografie"])
×
71

72
    # Usuń nie-raportowane dyscypliny z bazy
73
    nie_raportowane.delete()
×
74

75
    # Zaznacz, że policzone
76
    Cache_Liczba_N_Last_Updated.objects.update_or_create(
×
77
        pk=1, defaults=dict(wymaga_przeliczenia=False)
78
    )
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