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

EsupPortail / Esup-Pod / 8702385459

16 Apr 2024 08:26AM UTC coverage: 70.485%. First build
8702385459

Pull #1085

github

web-flow
bad link videojs lang file in claim_record page (#1105)

Co-authored-by: Charneau Franck <franck.charneau@univ-lr.fr>
Pull Request #1085: [DONE - FREEZE] Develop #3.6.0

739 of 989 new or added lines in 37 files covered. (74.72%)

10570 of 14996 relevant lines covered (70.49%)

0.7 hits per line

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

66.25
/pod/main/admin.py
1
"""Esup-Pod main admin page."""
2

3
from ckeditor.widgets import CKEditorWidget
1✔
4
from django.contrib import admin
1✔
5
from django import forms
1✔
6
from django.contrib.flatpages.admin import FlatpageForm
1✔
7
from django.contrib.flatpages.models import FlatPage
1✔
8
from django.contrib.sites.models import Site
1✔
9
from django.utils.translation import ugettext_lazy as _
1✔
10
from django.conf import settings
1✔
11
from django.contrib.sites.shortcuts import get_current_site
1✔
12
from modeltranslation.admin import TranslationAdmin
1✔
13
from pod.main.models import LinkFooter, Configuration
1✔
14
from pod.main.models import AdditionalChannelTab
1✔
15
from pod.main.models import Block
1✔
16

17

18
SITE_ID = getattr(settings, "SITE_ID", 1)
1✔
19
content_widget = {}
1✔
20
for key, value in settings.LANGUAGES:
1✔
21
    content_widget["content_%s" % key.replace("-", "_")] = CKEditorWidget(
1✔
22
        config_name="complete"
23
    )
24

25

26
class PageForm(FlatpageForm):
1✔
27
    class Meta:
1✔
28
        model = FlatPage
1✔
29
        fields = "__all__"
1✔
30
        widgets = content_widget
1✔
31

32

33
class AdditionalChannelTabAdmin(TranslationAdmin):
1✔
34
    """Create translation for additional Channel Tab Field."""
35

36
    list_display = ("name",)
1✔
37

38

39
class ConfigurationAdmin(admin.ModelAdmin):
1✔
40
    list_display = ("key", "value", "description")
1✔
41

42
    def has_delete_permission(self, request, obj=None):
1✔
43
        return False
×
44

45
    def has_add_permission(self, request, obj=None):
1✔
46
        return False
×
47

48

49
class CustomFlatPageAdmin(TranslationAdmin):
1✔
50
    list_display = ("title", "url")
1✔
51
    form = PageForm
1✔
52
    fieldsets = (
1✔
53
        (None, {"fields": ("url", "title", "content")}),
54
        (
55
            _("Advanced options"),
56
            {
57
                "classes": ("collapse",),
58
                "fields": (
59
                    "enable_comments",
60
                    "registration_required",
61
                    "template_name",
62
                    "sites",
63
                ),
64
            },
65
        ),
66
    )
67

68
    def get_readonly_fields(self, request, obj=None):
1✔
69
        if not request.user.is_superuser:
×
70
            return ("sites",)
×
71
        else:
72
            return ()
×
73

74
    def get_queryset(self, request):
1✔
75
        qs = super().get_queryset(request)
×
76
        if not request.user.is_superuser:
×
77
            qs = qs.filter(sites=get_current_site(request))
×
78
        return qs
×
79

80
    def save_model(self, request, obj, form, change):
1✔
81
        super().save_model(request, obj, form, change)
×
82
        obj.sites.add(Site.objects.get(id=SITE_ID))
×
83
        obj.save()
×
84

85

86
class LinkFooterAdmin(TranslationAdmin):
1✔
87
    list_display = (
1✔
88
        "title",
89
        "url",
90
    )
91

92
    def get_form(self, request, obj=None, **kwargs):
1✔
93
        if not request.user.is_superuser:
×
94
            exclude = ()
×
95
            exclude += ("sites",)
×
96
            self.exclude = exclude
×
97
        form = super(LinkFooterAdmin, self).get_form(request, obj, **kwargs)
×
98
        return form
×
99

100
    def get_queryset(self, request):
1✔
101
        qs = super().get_queryset(request)
×
102
        if not request.user.is_superuser:
×
103
            qs = qs.filter(sites=get_current_site(request))
×
104
        return qs
×
105

106
    def formfield_for_foreignkey(self, db_field, request, **kwargs):
1✔
107
        """Exclude sites fields in admin for non-superuser."""
108
        if (db_field.name) == "page":
×
109
            kwargs["queryset"] = FlatPage.objects.filter(sites=Site.objects.get_current())
×
110
        return super().formfield_for_foreignkey(db_field, request, **kwargs)
×
111

112

113
class BlockAdminForm(forms.ModelForm):
1✔
114
    """The form for Block administration in the Django admin panel."""
115

116
    class Meta:
1✔
117
        """Metadata class defining the associated model and fields."""
118

119
        model = Block
1✔
120
        fields = "__all__"
1✔
121

122

123
class BlockAdmin(TranslationAdmin):
1✔
124
    """The admin configuration for the Block model in the Django admin panel."""
125

126
    list_display = (
1✔
127
        "title",
128
        "page",
129
        "type",
130
        "data_type",
131
    )
132

133
    def get_form(self, request, obj=None, **kwargs):
1✔
134
        """
135
        Get the form to be used in the Django admin.
136

137
        Args:
138
            request: The Django request object.
139
            obj: The Block object being edited, or None if creating a new one.
140
            **kwargs: Additional keyword arguments.
141

142
        Returns:
143
            Type[forms.ModelForm]: The form class to be used in the admin.
144
        """
NEW
145
        form = super().get_form(request, obj, **kwargs)
×
146

NEW
147
        return form
×
148

149

150
# Unregister the default FlatPage admin and register CustomFlatPageAdmin.
151
admin.site.unregister(FlatPage)
1✔
152
admin.site.register(FlatPage, CustomFlatPageAdmin)
1✔
153
admin.site.register(LinkFooter, LinkFooterAdmin)
1✔
154
admin.site.register(Configuration, ConfigurationAdmin)
1✔
155
admin.site.register(AdditionalChannelTab, AdditionalChannelTabAdmin)
1✔
156
admin.site.register(Block, BlockAdmin)
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

© 2025 Coveralls, Inc