from django.contrib import admin
from modeltranslation.admin import TranslationAdmin

from django.utils.translation import ugettext_lazy as _
from django.forms import CheckboxSelectMultiple
from django.db import models

from .models import Property
from .models import ValidCreditCard
from .models import ExtraService

from .models import PropertyWeb
from .models import PropertyWebContact
from .models import PropertyWebPhoto

from .models import PropertyService



@admin.register(ValidCreditCard)
class ValidCreditCardAdmin(admin.ModelAdmin):
    list_display = ('name',)

class ExtraInline(admin.TabularInline):
    model = ExtraService

@admin.register(ExtraService)
class ExtraServiceAdmin(TranslationAdmin):
    pass


@admin.register(Property)
class PropertyAdmin(admin.ModelAdmin):
    list_display = ('short_name', 'name', 'last_connection', 'last_updated','wubookcode')
    search_fields = ('name', 'short_name', 'slug', 'cif')
    list_filter = ('type', )
    inlines = [ExtraInline]

    fieldsets = (
        (None, {
            'fields': ('name', ('short_name', 'slug'), 'type', ('cif','vat_name'),'email_notify', 'active','wubookcode')
        }),
        (_('Location'), {
            'fields': (('address', 'zipcode'), ('city', 'country'),
                       ('timezone', 'beach_distance'),
                       ('geo_lat', 'geo_lng')),
        }),
        (_('Information'), {
            'fields': ('features',
                       ('condition_days', 'condition_percent', 'condition_nights'),
                       ('deposit_days', 'deposit_percent', 'deposit_nights'),
                       ('checking_start', 'checking_end'),
                       ('checkout_start', 'checkout_end'))
        }),
    )

# Property web admins

class PropertyWebContactInline(admin.TabularInline):
    model = PropertyWebContact


class PropertyWebPhotoInline(admin.TabularInline):
    model = PropertyWebPhoto


@admin.register(PropertyWeb)
class PropertyWebAdmin(admin.ModelAdmin):
    list_display = ('prop', 'desc')
    search_fields = ('desc', 'prop__name', 'prop__short_name', 'prop__slug')
    inlines = [PropertyWebPhotoInline, PropertyWebContactInline]

    fieldsets = (
        (None, {
            'fields': ('prop', 'desc', 'generic_desc','web_url')
        }),
        (_('Social networks'), {
            'fields': ('twitter', 'facebook')
        }),
        (_('Information'), {
            'classes': ('collapse',),
            'fields': ('transport_info', 'additional_info', 'taxes', 'ranking'),
        }),
        (_('Services'), {
            'classes': ('collapse',),
            'fields': ('services',)
        }),
    )

    formfield_overrides = {
        models.ManyToManyField: {'widget': CheckboxSelectMultiple},
    }

class PropertyWebAdminTrans(PropertyWebAdmin, TranslationAdmin):
    fieldsets = [
        (u'Trans', {'fields': ('desc', 'generic_desc',)})
    ]

@admin.register(PropertyService)
class PropertyServiceAdmin(admin.ModelAdmin):
    list_display = ('name',)

