ServicesManagedAdmin   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 43
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 43
rs 10
c 0
b 0
f 0
wmc 6

3 Methods

Rating   Name   Duplication   Size   Complexity  
A make_status_enable() 0 8 2
A make_status_disable() 0 9 2
A get_form() 0 9 2
1
from django.contrib import admin
2
3
from django_th.forms.services import ServicesAdminForm
4
from django_th.models import ServicesActivated
5
from django_th.models import UserService
6
from django_th.models import TriggerService
7
8
9
class ServicesManagedAdmin(admin.ModelAdmin):
10
11
    """
12
        get the list of the available services (the activated one)
13
    """
14
15
    def make_status_enable(self, request, queryset):
16
        rows_updated = queryset.update(status=True)
17
        if rows_updated == 1:
18
            message_bit = "1 service was"
19
        else:
20
            message_bit = "%s services were" % rows_updated
21
        self.message_user(
22
            request, "%s successfully marked as enabled." % message_bit)
23
24
    def make_status_disable(self, request, queryset):
25
        rows_updated = queryset.update(status=False)
26
27
        if rows_updated == 1:
28
            message_bit = "1 service was"
29
        else:
30
            message_bit = "%s services were" % rows_updated
31
        self.message_user(
32
            request, "%s successfully marked as disabled." % message_bit)
33
34
    make_status_enable.short_description = "Status Enable"
35
    make_status_disable.short_description = "Status Disable"
36
    list_display = ('name', 'description', 'status',
37
                    'auth_required', 'self_hosted')
38
39
    actions = [make_status_enable, make_status_disable]
40
    add_form = ServicesAdminForm
41
    view_form = ServicesAdminForm
42
43
    def get_form(self, request, obj=None, **args):
44
        defaults = {}
45
        if obj is None:
46
            defaults.update({'form': self.add_form, })
47
        else:
48
            defaults.update({'form': self.view_form, })
49
        defaults.update(args)
50
        return super(ServicesManagedAdmin, self).get_form(request, obj,
51
                                                          **defaults)
52
53
54
class UserServiceAdmin(admin.ModelAdmin):
55
56
    """
57
        get the list of the User Service
58
    """
59
    list_display = ('user', 'name', 'token')
60
    list_filter = ['user', 'name']
61
62
63
class ProviderServiceListFilter(admin.SimpleListFilter):
64
    title = 'provider'
65
    parameter_name = 'provider'
66
67
    def lookups(self, request, model_admin):
68
        service_set = set([s for s in ServicesActivated.objects.all()])
69
        return [(i, i) for i in service_set]
70
71
    def queryset(self, request, queryset):
72
        if self.value():
73
            return queryset.filter(provider__name=self.value())
74
        else:
75
            return queryset
76
77
78
class ComsumerServiceListFilter(admin.SimpleListFilter):
79
    title = 'consumer'
80
    parameter_name = 'consumer'
81
82
    def lookups(self, request, model_admin):
83
        service_set = set([s for s in ServicesActivated.objects.all()])
84
        return [(i, i) for i in service_set]
85
86
    def queryset(self, request, queryset):
87
        if self.value():
88
            return queryset.filter(consumer__name=self.value())
89
        else:
90
            return queryset
91
92
93
class TriggerServiceAdmin(admin.ModelAdmin):
94
95
    """
96
        get the list of the User Service
97
    """
98
    list_display = ('user', 'provider', 'consumer', 'description',
99
                    'date_created', 'date_triggered', 'status')
100
    list_filter = [
101
        ('user', admin.RelatedOnlyFieldListFilter),
102
        ProviderServiceListFilter,
103
        ComsumerServiceListFilter,
104
        'status'
105
    ]
106
107
108
admin.site.register(ServicesActivated, ServicesManagedAdmin)
109
admin.site.register(UserService, UserServiceAdmin)
110
admin.site.register(TriggerService, TriggerServiceAdmin)
111