# Crichton, Admirable Source Configuration Management
# Copyright 2012 British Broadcasting Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.
#
#
from django.contrib import admin as origadmin

import crichtonweb.deployment.models as deployment
from crichtonweb.deployment.forms import ApplicationDeploymentForm, NodeDeploymentForm, ProductDeploymentForm, RecipePackageForm

class ApplicationDeploymentInline(origadmin.TabularInline):
    model = deployment.ApplicationDeployment
    extra = 0
    fields = ('environment', 'pool', 'insert_date', 'recipe', 'product_deployment', 'log')
    raw_id_fields = ('product_deployment',)
    form = ApplicationDeploymentForm

class DeploymentPreferenceInline(origadmin.TabularInline):
    model = deployment.DeploymentPreference
    extra = 0
    fields = ('environment', 'preference_number', 'deployment_system', 'deleted')

class NodeDeploymentInline(origadmin.TabularInline):
    model = deployment.NodeDeployment
    extra = 0
    fields = ('application_deployment', 'node', 'succeeded', 'started', 'finished', 'log')
    form = NodeDeploymentForm

class ProductDeploymentInline(origadmin.TabularInline):
    model = deployment.ProductDeployment
    extra = 0
    fields = ('product', 'environment', 'insert_date', 'log')
    form = ProductDeploymentForm

class RecipeInline(origadmin.TabularInline):
    model = deployment.Recipe
    extra = 0
    fields = ('name', 'deployment_system', 'deleted')

class RecipePackageInline(origadmin.TabularInline):
    model = deployment.RecipePackage
    extra = 0
    fields = ('recipe', 'package', 'deleted')
    form = RecipePackageForm