from bo.models import Promotion 
from bo.models import NewPub
from bo.models import PubShacharit
from bo.models import Token
from bo.models import Type
from bo.models import Pays
from bo.models import MessagePush 
from bo.models import MessagePushShacharit 
from bo.models import Adresse 
from bo.models import Minian
from bo.models import Tchat
from bo.models import TchatActiv
from bo.models import HoraireVille
from django.utils.encoding import smart_unicode
from django.contrib import admin
import utils

class NewPubAdmin(admin.ModelAdmin):
        fieldsets = [
        (None,               {'fields': ['nom','type', 'urlimage','urlWeb','timer','valide']}),
        ]
        list_display =('nom','type','urlWeb','timer','valide','thumbnail',)
        list_filter=('valide',)
        ordering=('nom',)
        search_fields =('nom',)

class PubShacharitAdmin(admin.ModelAdmin):
        fieldsets = [
        (None,               {'fields': ['nom','type', 'urlimage','urlWeb','timer','valide']}),
        ]
        list_display =('nom','type','urlWeb','timer','valide','thumbnail',)
        list_filter=('valide',)
        ordering=('nom',)
        search_fields =('nom',)

class PromotionAdmin(admin.ModelAdmin):
        fieldsets = [
        (None,               {'fields': ['nom', 'urlimage','urlWeb','timer','valide']}),
        ]
        list_display =('nom','urlWeb','timer','valide','thumbnail',)
        list_filter=('valide',)
        ordering=('nom',)
        search_fields =('nom',)

class HoraireVilleAdmin(admin.ModelAdmin):
        fieldsets = [
        (None,               {'fields': ['ville', 'urlimage','commentaire','couleur','valide']}),
        ]
        list_display =('ville','commentaire','couleur','valide','thumbnail',)
        list_filter=('valide',)
        ordering=('ville',)
        search_fields =('ville',)

class PaysAdmin(admin.ModelAdmin):
        fieldsets = [
        (None,               {'fields': ['nom']}),
        ]
        list_display =('nom',)
        list_filter=('nom',)
        ordering=('nom',)
        search_fields =('nom',)

class AdresseAdmin(admin.ModelAdmin):
        fieldsets = [
        (None,               {'fields': ['nom', 'quartier','rue','codePostal','ville','pays','contact','latitude','longitude','valide','informations','heure','dimanche','lundi','mardi','mercredi','jeudi','vendredi','samedi','rochhodech','jeune','jourferie','nouveau']}),
        ]
        list_display =('nom', 'quartier','rue','codePostal','ville','pays','contact','latitude','longitude','valide','informations','heure','dimanche','lundi','mardi','mercredi','jeudi','vendredi','samedi','rochhodech','jeune','jourferie','samedi','nouveau',)
        list_filter=('nouveau','valide','quartier','ville','pays',)
        ordering=('codePostal','quartier','ville','pays',)
        search_fields =('quartier','nom')
        actions = ['geolocalise']

        def geolocalise(self, request, queryset):
                # Geolocaliste avec Google API 
                for adresses in queryset:
                        center = utils.geoloc(adresses.rue, adresses.codePostal,adresses.ville,adresses.pays)
                        lat,lng = center.split(',')
                        adresses.latitude=float(lat)
                        adresses.longitude=float(lng)
                        adresses.save()
                self.message_user(request, "Geolocalisation OK. ")
               # self.message_user(request, "Geolocalisation OK. %s %s %s" % (smart_unicode(adresses.rue, encoding='utf-8', strings_only=False, errors='strict'),adresses.codePostal,adresses.ville))


class TokenAdmin(admin.ModelAdmin):
        fieldsets = [
        (None,               {'fields': ['token', 'udid','valide']}),
        ]
        list_display =('token','udid','valide')
        list_filter=('valide',)

class MessagePushAdmin(admin.ModelAdmin):
        fieldsets = [
        (None,               {'fields': ['message', 'dateEnvoi','envoye']}),
        ]
        list_display =('message','dateEnvoi','envoye')
        list_filter=('dateEnvoi','envoye',)
        search_fields =('dateEnvoi',)

class MessagePushShacharitAdmin(admin.ModelAdmin):
        fieldsets = [
        (None,               {'fields': ['message', 'dateEnvoi','envoye']}),
        ]
        list_display =('message','dateEnvoi','envoye')
        list_filter=('dateEnvoi','envoye',)
        search_fields =('dateEnvoi',)

admin.site.register(Token,TokenAdmin)
admin.site.register(MessagePush,MessagePushAdmin)
admin.site.register(MessagePushShacharit,MessagePushShacharitAdmin)
admin.site.register(Promotion,PromotionAdmin)
admin.site.register(NewPub,NewPubAdmin)
admin.site.register(PubShacharit,PubShacharitAdmin)
admin.site.register(Type)
admin.site.register(Adresse,AdresseAdmin)
admin.site.register(Pays,PaysAdmin)
admin.site.register(Minian)
admin.site.register(TchatActiv)
admin.site.register(Tchat)
admin.site.register(HoraireVille,HoraireVilleAdmin)
