Projet

Général

Profil

Télécharger (1,5 ko) Statistiques
| Branche: | Tag: | Révision:

root / wcsinst / wcsinst / admin.py @ 50d024d9

1
from django.contrib import admin
2
from django.utils.translation import ugettext_lazy as _
3

    
4
from models import WcsInstance, ApiSecret, Variable
5

    
6
class ApiSecretsInline(admin.TabularInline):
7
    model = ApiSecret
8
    verbose_name = _('API secret')
9
    verbose_name_plural = _('API secrets')
10

    
11
class VariablesInline(admin.TabularInline):
12
    model = Variable
13
    verbose_name = _('variable')
14
    verbose_name_plural = _('variables')
15

    
16
class WcsInstanceAdmin(admin.ModelAdmin):
17
    prepopulated_fields = {'domain': ('title',)}
18
    fieldsets = (
19
        (None, {'fields': ('title', 'domain'),}),
20
        ('site-options.cfg',
21
            {'fields': ('postgresql', 'backoffice_feed_url' )}
22
        ),
23
        ('site-options.cfg au-quotidien',
24
            {'fields': ('drupal', 'ezldap', 'strongbox', 'clicrdv', 'domino' )}
25
        ),
26
    )
27
    readonly_fields = ('domain',)
28
    inlines = [VariablesInline, ApiSecretsInline]
29
    save_as = True
30

    
31
    def save_related(self, request, form, formsets, change):
32
        super(WcsInstanceAdmin, self).save_related(request, form, formsets, change)
33
        form.instance.notify(not change)
34

    
35
    def get_prepopulated_fields(self, request, obj=None):
36
        if obj:
37
            return {}
38
        return self.prepopulated_fields
39

    
40
    def get_readonly_fields(self, request, obj=None):
41
        readonly_fields = self.readonly_fields
42
        if not obj:
43
            return filter(lambda x: x != 'domain', readonly_fields)
44
        return readonly_fields
45

    
46

    
47
admin.site.register(WcsInstance, WcsInstanceAdmin)
(2-2/5)