from django.contrib.auth import views as auth_views
from django.urls import path
from django.views.generic import RedirectView

from . import views
from .models import Article, DateArticle

date_based_info_dict = {
    "queryset": Article.objects.all(),
    "date_field": "date_created",
    "month_format": "%m",
}

object_list_dict = {
    "queryset": Article.objects.all(),
    "paginate_by": 2,
}

object_list_no_paginate_by = {
    "queryset": Article.objects.all(),
}

numeric_days_info_dict = dict(date_based_info_dict, day_format="%d")

date_based_datefield_info_dict = dict(
    date_based_info_dict, queryset=DateArticle.objects.all()
)

urlpatterns = [
    path("accounts/login/", auth_views.LoginView.as_view(template_name="login.html")),
    path("accounts/logout/", auth_views.LogoutView.as_view()),
    # Special URLs for particular regression cases.
    path("中文/target/", views.index_page),
]

# redirects, both temporary and permanent, with non-ASCII targets
urlpatterns += [
    path(
        "nonascii_redirect/", RedirectView.as_view(url="/中文/target/", permanent=False)
    ),
    path(
        "permanent_nonascii_redirect/",
        RedirectView.as_view(url="/中文/target/", permanent=True),
    ),
]

# json response
urlpatterns += [
    path("json/response/", views.json_response_view),
]