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

EsupPortail / Esup-Pod / 5241308435

pending completion
5241308435

Pull #880

github

web-flow
Merge d5b6aa588 into 77b7abf46
Pull Request #880: [DONE] Add the remaining encodage code in the video to video_encode

224 of 224 new or added lines in 19 files covered. (100.0%)

8900 of 12377 relevant lines covered (71.91%)

0.72 hits per line

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

51.22
/pod/video_encode_transcript/admin.py
1
from django.contrib import admin
1✔
2

3
from django.contrib.sites.shortcuts import get_current_site
1✔
4
from django.contrib.sites.models import Site
1✔
5
from .models import EncodingAudio, EncodingVideo, VideoRendition
1✔
6
from .models import EncodingLog
1✔
7
from .models import EncodingStep
1✔
8
from pod.video.models import Video
1✔
9

10

11
class EncodingVideoAdmin(admin.ModelAdmin):
1✔
12
    """Admin model for EncodingVideo."""
13

14
    list_display = ("video", "get_resolution", "encoding_format")
1✔
15
    list_filter = ["encoding_format", "rendition"]
1✔
16
    search_fields = ["id", "video__id", "video__title"]
1✔
17

18
    def get_resolution(self, obj):
1✔
19
        """Get the resolution of the video rendition."""
20
        return obj.rendition.resolution
×
21

22
    get_resolution.short_description = "resolution"
1✔
23

24
    def get_queryset(self, request):
1✔
25
        """Get the queryset based on the request."""
26
        qs = super().get_queryset(request)
×
27
        if not request.user.is_superuser:
×
28
            qs = qs.filter(video__sites=get_current_site(request))
×
29
        return qs
×
30

31
    def formfield_for_foreignkey(self, db_field, request, **kwargs):
1✔
32
        """Customize the form field for foreign keys."""
33
        if (db_field.name) == "video":
×
34
            kwargs["queryset"] = Video.objects.filter(sites=Site.objects.get_current())
×
35
        if (db_field.name) == "rendition":
×
36
            kwargs["queryset"] = VideoRendition.objects.filter(
×
37
                sites=Site.objects.get_current()
38
            )
39
        return super().formfield_for_foreignkey(db_field, request, **kwargs)
×
40

41

42
class EncodingAudioAdmin(admin.ModelAdmin):
1✔
43
    """Admin model for EncodingAudio."""
44

45
    list_display = ("video", "encoding_format")
1✔
46
    list_filter = ["encoding_format"]
1✔
47
    search_fields = ["id", "video__id", "video__title"]
1✔
48

49
    def get_queryset(self, request):
1✔
50
        """Get the queryset based on the request."""
51
        qs = super().get_queryset(request)
×
52
        if not request.user.is_superuser:
×
53
            qs = qs.filter(video__sites=get_current_site(request))
×
54
        return qs
×
55

56
    def formfield_for_foreignkey(self, db_field, request, **kwargs):
1✔
57
        """Customize the form field for foreign keys."""
58
        if (db_field.name) == "video":
×
59
            kwargs["queryset"] = Video.objects.filter(sites=Site.objects.get_current())
×
60
        return super().formfield_for_foreignkey(db_field, request, **kwargs)
×
61

62

63
class EncodingLogAdmin(admin.ModelAdmin):
1✔
64
    """Admin model for EncodingLog."""
65

66
    def video_id(self, obj):
1✔
67
        """Get the video ID."""
68
        return obj.video.id
×
69

70
    list_display = (
1✔
71
        "id",
72
        "video_id",
73
        "video",
74
    )
75
    readonly_fields = ("video", "log")
1✔
76
    search_fields = ["id", "video__id", "video__title"]
1✔
77

78
    def get_queryset(self, request):
1✔
79
        """Get the queryset based on the request."""
80
        qs = super().get_queryset(request)
×
81
        if not request.user.is_superuser:
×
82
            qs = qs.filter(video__sites=get_current_site(request))
×
83
        return qs
×
84

85

86
class EncodingStepAdmin(admin.ModelAdmin):
1✔
87
    """Admin model for EncodingStep."""
88

89
    list_display = ("video", "num_step", "desc_step")
1✔
90
    readonly_fields = ("video", "num_step", "desc_step")
1✔
91
    search_fields = ["id", "video__id", "video__title"]
1✔
92

93
    def get_queryset(self, request):
1✔
94
        """Get the queryset based on the request."""
95
        qs = super().get_queryset(request)
×
96
        if not request.user.is_superuser:
×
97
            qs = qs.filter(video__sites=get_current_site(request))
×
98
        return qs
×
99

100

101
class VideoRenditionAdmin(admin.ModelAdmin):
1✔
102
    """Admin model for VideoRendition."""
103
    list_display = (
1✔
104
        "resolution",
105
        "video_bitrate",
106
        "audio_bitrate",
107
        "encode_mp4",
108
    )
109

110
    def get_form(self, request, obj=None, **kwargs):
1✔
111
        """Get the form to be used in the admin."""
112
        if not request.user.is_superuser:
×
113
            exclude = ()
×
114
            exclude += ("sites",)
×
115
            self.exclude = exclude
×
116
        form = super(VideoRenditionAdmin, self).get_form(request, obj, **kwargs)
×
117
        return form
×
118

119
    def save_model(self, request, obj, form, change):
1✔
120
        """Save the VideoRendition model."""
121
        super().save_model(request, obj, form, change)
×
122
        if not change:
×
123
            obj.sites.add(get_current_site(request))
×
124
            obj.save()
×
125

126
    def get_queryset(self, request):
1✔
127
        """Get the queryset based on the request."""
128
        qs = super().get_queryset(request)
×
129
        if not request.user.is_superuser:
×
130
            qs = qs.filter(sites=get_current_site(request))
×
131
        return qs
×
132

133

134
admin.site.register(EncodingVideo, EncodingVideoAdmin)
1✔
135
admin.site.register(EncodingAudio, EncodingAudioAdmin)
1✔
136
admin.site.register(EncodingLog, EncodingLogAdmin)
1✔
137
admin.site.register(EncodingStep, EncodingStepAdmin)
1✔
138
admin.site.register(VideoRendition, VideoRenditionAdmin)
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