admin.py 2.2 KB
Newer Older
Dudás Ádám committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
from django.contrib import messages
from django.core.exceptions import ValidationError
from django import contrib
from django.utils.translation import ugettext_lazy as _
from one import models
import string

class PersonInline(contrib.admin.StackedInline):
    model = models.Person
    max_num = 1
    can_delete = False
class SshKeyInline(contrib.admin.TabularInline):
    model = models.SshKey
    extra = 2
class DetailsInline(contrib.admin.StackedInline):
    model = models.UserCloudDetails
    max_num = 1
    can_delete = False

class MyUserAdmin(contrib.auth.admin.UserAdmin):
cloud committed
21
    list_display = ('username', 'full_name', 'email', 'date_joined', 'instance_count')
Dudás Ádám committed
22 23 24 25
    try:
        inlines = inlines + (PersonInline, SshKeyInline, DetailsInline)
    except NameError:
        inlines = (PersonInline, SshKeyInline, DetailsInline)
cloud committed
26 27 28 29 30
    def instance_count(self, obj):
        return obj.instance_set.count()
    def full_name(self, obj):
        return u"%s %s" % (obj.last_name, obj.first_name)
    full_name.admin_order_field = 'last_name'
Dudás Ádám committed
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56



contrib.admin.site.unregister(contrib.auth.models.User)
contrib.admin.site.register(contrib.auth.models.User, MyUserAdmin)

def update_state(modeladmin, request, queryset):
    for i in queryset.all():
        i.update_state()
update_state.short_description = _('Update status')

def submit_vm(modeladmin, request, queryset):
    for i in queryset.all():
        i.submit(request.user)
submit_vm.short_description = _('Submit VM')


class TemplateAdmin(contrib.admin.ModelAdmin):
    model=models.Template

class InstanceAdmin(contrib.admin.ModelAdmin):
    model=models.Instance
    actions = [update_state,submit_vm]
    list_display = ['id', 'name', 'owner', 'state']
    readonly_fields = ['ip', 'active_since', 'pw', 'template']
    list_filter = ['owner', 'template', 'state']
cloud committed
57 58 59 60 61 62

class DiskAdmin(contrib.admin.ModelAdmin):
    model=models.Disk
class NetworkAdmin(contrib.admin.ModelAdmin):
    model=models.Network

Dudás Ádám committed
63 64
contrib.admin.site.register(models.Template, TemplateAdmin)
contrib.admin.site.register(models.Instance, InstanceAdmin)
cloud committed
65 66
contrib.admin.site.register(models.Network, NetworkAdmin)
contrib.admin.site.register(models.Disk, DiskAdmin)
67
contrib.admin.site.register(models.InstanceType)
Dudás Ádám committed
68