"""TravelGuide URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/1.10/topics/http/urls/
"""
from django.utils.translation import activate
from django.conf.urls import url,include
from django.contrib import admin
from django.conf import settings
from django.conf.urls.static import static
from django.contrib.sitemaps.views import sitemap
from resetpassword.utils.views import sendPasswordLink,pwdenvoye, PasswordResetConfirmView
from django.contrib.sitemaps import Sitemap
from backoffice.models import Event,Place,Town,Post,Article
from django.conf.urls.i18n import i18n_patterns
from .views import home_files
from rest_framework.routers import DefaultRouter
from fcm_django.api.rest_framework import FCMDeviceAuthorizedViewSet
from datetime import datetime
router = DefaultRouter()
router.register(r'devices', FCMDeviceAuthorizedViewSet)


class FREventSitemap(Sitemap):
    changefreq = "daily"
    priority = 0.8
    protocol = "https"

    def items(self):
        return Event.objects.filter(valid=True)

    def location(self, obj):
        return '/evenement-gay/'+str(obj.slug)+'/'


    def lastmod(self, obj):
        return obj.createdAt

class FRPlaceSitemap(Sitemap):
    changefreq = "daily"
    priority = 0.8
    protocol = "https"

    def items(self):
        return Place.objects.filter(valid=True)

    def location(self, obj):
        return '/lieu-gay/'+str(obj.slug)+'/'

    def lastmod(self, obj):
        return obj.createdAt

class FRTownEventSitemap(Sitemap):
    changefreq = "daily"
    priority = 0.8
    protocol = "https"

    def items(self):
        return Town.objects.filter(valid=True)

    def location(self, obj):
        return '/sorties-gays/'+str(obj.city)+'/'

    def lastmod(self, obj):
        today = datetime.now().date()
        return today

class ESTownEventSitemap(Sitemap):
    changefreq = "daily"
    priority = 0.8
    protocol = "https"

    def items(self):
        return Town.objects.filter(valid=True)

    def location(self, obj):
        return '/fiestas-gays/'+str(obj.city)+'/'

    def lastmod(self, obj):
        today = datetime.now().date()
        return today


class FRTownEventWeekSitemap(Sitemap):
    changefreq = "daily"
    priority = 0.8
    protocol = "https"

    def items(self):
        return Town.objects.filter(valid=True)

    def location(self, obj):
        return '/sorties-gays-semaine/'+str(obj.city)+'/'

    def lastmod(self, obj):
        today = datetime.now().date()
        return today

class FRTownPlaceSitemap(Sitemap):
    changefreq = "daily"
    priority = 0.8
    protocol = "https"

    def items(self):
        return Town.objects.filter(valid=True)

    def location(self, obj):
        return '/lieux-gays/'+str(obj.city)+'/'

    def lastmod(self, obj):
        return obj.createdAt


class FRGuideGaySitemap(Sitemap):
    changefreq = "daily"
    priority = 0.8
    protocol = "https"

    def items(self):
        return Town.objects.filter(valid=True)

    def location(self, obj):
        return '/guide-gay/'+str(obj.city)

    def lastmod(self, obj):
        today = datetime.now().date()
        return today


class ActuGaySitemap(Sitemap):
    changefreq = "daily"
    priority = 0.8
    protocol = "https"

    def items(self):
        return Town.objects.filter(valid=True)

    def location(self, obj):
        return '/actus-gay/'+str(obj.city)

    def lastmod(self, obj):
        today = datetime.now().date()
        return today


class FRCultureGaySitemap(Sitemap):
    changefreq = "weekly"
    priority = 0.8
    protocol = "https"

    def items(self):
        return Article.objects.filter(valid=True)

    def location(self, obj):
        return '/culture-gay/'+str(obj.slug)

    def lastmod(self, obj):
        today = datetime.now().date()
        return today


sitemaps = {
    'villeEventFR': FRTownEventSitemap(),
    'villeEventES': ESTownEventSitemap(),
    'villePlaceFR': FRTownPlaceSitemap(),
    'eventFR': FREventSitemap(),
    'eventweekFR': FRTownEventWeekSitemap(),
    'placeFR': FRPlaceSitemap(),
    'guidegayFR': FRGuideGaySitemap(),
    'actuGay':ActuGaySitemap(),
    'cultureGay':FRCultureGaySitemap(),
}
handler404 = 'backoffice.views.content.pageNotFound'
urlpatterns = [
    url(r'^(?P<filename>(robots.txt)|(humans.txt)|(ads.txt))$',home_files, name='home-files'),
    url(r'^admin/', admin.site.urls,name='admin'),
    url(r'^account/reset_password_confirm/(?P<uidb64>[0-9A-Za-z]+)/(?P<token>.+)/$',
                      PasswordResetConfirmView.as_view(), name='reset_password_confirm'),
                  # PS: url above is going to used for next section of
                  # implementation.
    url(r'^account/reset_password/$', sendPasswordLink, name="reset_password"),
    url(r'^account/pwdenvoye/$', pwdenvoye, name="pwdenvoye"),
    url(r'^o/', include('oauth2_provider.urls', namespace='oauth2_provider'),name='oauth2'),
    url(r'^api/', include('api.urls', namespace='api'),name='api'),
    url(r'^docs/', include('rest_framework_docs.urls'),name='docs'),
    url(r'^sitemap\.xml$', sitemap, {'sitemaps': sitemaps}, name='django.contrib.sitemaps.views.sitemap'),
    url(r'^', include('backoffice.urls', namespace="backoffice", app_name='backoffice')),
    url(r'^', include(router.urls)),
    url(r'^tinymce/', include('tinymce.urls')),
]+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
"""
urlpatterns += i18n_patterns(
    url(r'^', include('backoffice.urls', namespace="backoffice",app_name='backoffice')),
)+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
handler404 = 'backoffice.views.content.index'

"""
