from django.http import HttpResponse
from django.middleware.csrf import get_token
from django.shortcuts import render
from django.template import loader
from django.utils.html import format_html
from django.views import View

from .models import Post, Upload


# Create your views here.


def index(request):
    template = loader.get_template('home/index.html')
    context = {
        '': "",
    }
    return HttpResponse(template.render(context, request))

def posts(request):
    posts = Post.objects.all()
    for post in posts:
        post.description= format_html(post.description)
    template = loader.get_template('home/posts.html')
    context = {
        "posts": posts,
    }
    return HttpResponse(template.render(context, request))

def privacy_policy(request):
    template = loader.get_template('home/privacy_policy.html')
    context = {
        '': "",
    }
    return HttpResponse(template.render(context, request))


def get_post(request, id):
    post = Post.objects.get(id=id)
    post.description = format_html(post.description)
    template = loader.get_template('home/post.html')
    context = {
        "post": post,
    }
    return HttpResponse(template.render(context, request))
    #do something with this user


def get_profile(request):
    template = loader.get_template('home/profile.html')
    context = {
        '': "",
    }
    return HttpResponse(template.render(context, request))


def get_about(request):
    template = loader.get_template('home/privacy_policy.html')
    context = {
        '': "",
    }
    return HttpResponse(template.render(context, request))


def get_projects(request):
    template = loader.get_template('home/projects.html')
    context = {
        '': "",
    }
    return HttpResponse(template.render(context, request))

class UploadView(View):
    def get(self, request):
            html = """
                <form method="post" enctype="multipart/form-data">
                  <input type='text' style='display:none;' value='%s' name='csrfmiddlewaretoken'/>
                  <input type="file" name="image" accept="image/*">
                  <button type="submit">Upload Image</button>
                </form>
            """ % (get_token(request))
            return HttpResponse(html)
    def post(self, request):
            image = request.FILES['image']
            public_uri = Upload.upload_image(image, image.name)
            return HttpResponse("<img src='%s'/>" % (public_uri))