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

EQAR / eqar_backend / 5b970840-f92d-4ae6-9c8d-5838e1ba4171

29 Jul 2025 09:08PM UTC coverage: 86.434% (-0.8%) from 87.262%
5b970840-f92d-4ae6-9c8d-5838e1ba4171

push

circleci

web-flow
Merge pull request #551 from EQAR/development

Development

231 of 341 new or added lines in 24 files covered. (67.74%)

56 existing lines in 3 files now uncovered.

10385 of 12015 relevant lines covered (86.43%)

0.86 hits per line

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

84.21
/reports/admin.py
1
from eqar_backend.admin import DEQARModelAdmin, admin_site, DEQARStackedInline
1✔
2
from programmes.models import Programme
1✔
3
from reports.models import Report, ReportFile, ReportLink, ReportUpdateLog, ReportFlag
1✔
4
from submissionapi.models import SubmissionReportLog
1✔
5

6

7
class ReportProgrammeInline(DEQARStackedInline):
1✔
8
    model = Programme
1✔
9
    fk_name = 'report'
1✔
10
    verbose_name = 'Programme'
1✔
11
    verbose_name_plural = 'Programmes'
1✔
12

13

14
class ReportFileInline(DEQARStackedInline):
1✔
15
    model = ReportFile
1✔
16
    verbose_name = 'File'
1✔
17
    verbose_name_plural = 'Files'
1✔
18

19

20
class ReportLinkInline(DEQARStackedInline):
1✔
21
    model = ReportLink
1✔
22
    verbose_name = 'Link'
1✔
23
    verbose_name_plural = 'Links'
1✔
24

25

26
class SubmissionReportLogInline(DEQARStackedInline):
1✔
27
    model = SubmissionReportLog
1✔
28
    verbose_name = 'Submission log'
1✔
29
    verbose_name_plural = 'Submission logs'
1✔
30
    fields = ('submission_package_log',)
1✔
31

32

33
class ReportUpdateLogInline(DEQARStackedInline):
1✔
34
    model = ReportUpdateLog
1✔
35
    verbose_name = 'Update log'
1✔
36
    verbose_name_plural = 'Update logs'
1✔
37
    readonly_fields = ('updated_at',)
1✔
38

39

40
class ReportFlagInline(DEQARStackedInline):
1✔
41
    model = ReportFlag
1✔
42
    verbose_name = 'Flag'
1✔
43
    verbose_name_plural = 'Flags'
1✔
44
    readonly_fields = ('created_at', 'updated_at',)
1✔
45

46

47
class ReportAdmin(DEQARModelAdmin):
1✔
48
    list_display = ('id', 'get_agencies', 'local_identifier', 'get_agency_esg_activities', 'get_institutions', 'get_programme', 'flag')
1✔
49
    ordering = ('-id',)
1✔
50
    list_filter = ('agency_esg_activities__activity_group__activity_type', 'flag', 'agency', 'agency_esg_activities__activity_group__activity')
1✔
51

52
    inlines = [ReportFileInline, ReportProgrammeInline, ReportLinkInline, ReportFlagInline, SubmissionReportLogInline, ReportUpdateLogInline ]
1✔
53

54
    def get_agencies(self, obj):
1✔
NEW
55
        agency = obj.agency.acronym_primary
×
NEW
56
        if obj.contributing_agencies.count():
×
NEW
57
            agency += " (+ " + ", ".join(a.acronym_primary for a in obj.contributing_agencies.all()) + ")"
×
NEW
58
        return agency
×
59
    get_agencies.short_description = 'Agency(-ies)'
1✔
60

61
    def get_agency_esg_activities(self, obj):
1✔
NEW
62
        return ", ".join(activity.activity_group.activity for activity in obj.agency_esg_activities.all())
×
63
    get_agency_esg_activities.short_description = 'Activity(-ies)'
1✔
64

65
    def get_institutions(self, obj):
1✔
66
        return ", ".join(str(inst) for inst in obj.institutions.all())
×
67
    get_institutions.short_description = 'Institution(s)'
1✔
68

69
    def get_programme(self, obj):
1✔
70
        return ", ".join(prg.name_primary for prg in obj.programme_set.all())
×
71
    get_programme.short_description = 'Programme(s)'
1✔
72

73
    def has_change_permission(self, request, obj=None):
1✔
NEW
74
        return False
×
75

76
    def has_add_permission(self, request):
1✔
NEW
77
        return False
×
78

79
admin_site.register(Report, ReportAdmin)
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