from django.shortcuts import render, redirect
from django.http import HttpResponse, HttpResponseNotFound, Http404, HttpResponseRedirect
from django.urls import reverse
from django.template.loader import render_to_string
from django.template.defaultfilters import slugify


# Create your views here.

menu = ["О сайте", "Добавить сатью", "Обратная связь", "Войти"]


data_db = [
    {'id': 1, 'title': 'Анджелина Джоли', 'content': 'Биография Анджелины Джоли', 'is_published': True },
    {'id': 2, 'title': 'Марго Робби', 'content': 'Биография Марго Робби', 'is_published': False },
    {'id': 3, 'title': 'Джулия Робертс', 'content': 'Биография Джулия Робертс', 'is_published': True },
]



def index(request): # HttRequest
    # t = render_to_string('women/index.html')
    # return HttpResponse(t)

    # data = {'title': 'главная страница?',
    #         'menu': menu,
    #         'float': 234.465,
    #         'lst': [1, 2, 'abc', True],
    #         'set': {1, 2, 3, 4, 5},
    #         'dict': {'key_1': 'value_1', 'key_2': 'value_2'},
    #         'obj': MyClass(10, 20),
    #         'url': slugify("The main page"),
    # }

    data = {'title': 'Главная страница',
            'menu': menu,
            'posts': data_db,
    }
    

    return render(request, 'women/index.html', context=data)


def about(request):
    return render(request, 'women/about.html',  {'title': 'О сайте'})


def categories(request, cat_id):
    return HttpResponse(f"<h1>Статьи по категориям</h1><p>id: {cat_id}</p>")


def categories_by_slug(request, cat_slug):
    if request.GET:
        print(request.GET)
    return HttpResponse(f"<h1>Статьи по категориям</h1><p>slug: {cat_slug}</p>")


def archive(request, year):
    if year > 2023:
        # return redirect('/') # код 302
        # return redirect(index) # код 302 Можно указать функцию-представление
        # return redirect(index) # код 302 Можно указать функцию-представление
        # return redirect('home') # указываем имя маршрута
        # return redirect('/', permanent=True) # код 301
        uri = reverse('cats', args=('sport', ))
        print(uri)
        # return redirect(uri)
        return HttpResponseRedirect('/') 
    return HttpResponse(f"<h1>Архив по годам</h1><p>{year}</p>")


def post_detail(request):
    if request.GET:
        ans = ""
        for key, value in request.GET.items():
            ans += f'{key}={value}|'
        return HttpResponse(ans[:-1])
    else:
        return HttpResponse("GET is empty")


def posts_list(request, year):
    if 1990 <= year <= 2023:
        return HttpResponse(f'posts: {year}')
    else:
        raise Http404()


def page_not_found(request, exception):
    return HttpResponseNotFound("<h1>Страница не найдена</h1>")