from geolocpartenaire.admingeoloc.models import Partenaire
from geolocpartenaire.admingeoloc.models import Action 
from geolocpartenaire.admingeoloc.models import Pub
from geolocpartenaire.admingeoloc.models import Client 
from django.contrib import admin
import utils

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

class ClientAdmin(admin.ModelAdmin):
        fieldsets = [
        (None,               {'fields': ['raisonSocial','numeroClient','password','rue','codePostal','ville','cartographieChoisie','surface','batValide','dateParutionEstimee']}),
        ]
        list_display =('raisonSocial','numeroClient','password','rue','codePostal','ville','cartographieChoisie','surface','batValide','dateParutionEstimee',)
        list_filter=('raisonSocial','codePostal','ville',)
        ordering=('raisonSocial','ville',)
        search_fields =('raisonSocial','numeroClient',)


class PartenaireAdmin(admin.ModelAdmin):
	fieldsets = [
	(None,               {'fields': ['nom', 'rue','codePostal','ville','horaire','description','telephone','urlWeb','action','image','categorie','latitude','longitude']}),
	]
    	list_display =('nom','rue','codePostal','ville','categorie','latitude','longitude','image')
        list_filter=('ville',)
	ordering=('ville',)
	search_fields =('nom','ville',)
	actions = ['geolocalise']

	def geolocalise(self, request, queryset):
		# Geolocaliste avec Google API 
		for partenaire in queryset:
			center = utils.geoloc(partenaire.rue,partenaire.codePostal,partenaire.ville)
			lat,lng = center.split(',')
			partenaire.latitude=float(lat)
			partenaire.longitude=float(lng)
			partenaire.save()
		self.message_user(request, "Geolocalisation OK. ")


admin.site.register(Partenaire,PartenaireAdmin)
admin.site.register(Pub,PubAdmin)
admin.site.register(Client,ClientAdmin)
admin.site.register(Action)
