from django.shortcuts import render, redirect, get_object_or_404
from django.contrib.auth.decorators import login_required
from dataset.models import Dataset
from histology.models import Histology
from .forms import LoginForm, SearchForm #,SignupForm
import umap
import json


def atlas(request) :
    datasets = Dataset.objects.all()
    dataset_data_names = [dataset.data.name for dataset in datasets]

    return render(request, 'atlas.html', {
        'datasets': datasets,
        'dataset_data_names': dataset_data_names,
        })

def compare(request) :
    datasets = Dataset.objects.all()
        
    return render(request, 'compare.html', {
        'datasets': datasets,
        })

def looselipssinkships2(request) :
    datasets = Dataset.objects.all()
        
    return render(request, 'looselipssinkships2.html', {
        'datasets': datasets,
        })

def Thompson_et_al_2024(request) : 
    datasets = Dataset.objects.all()

    return render(request, 'Thompson-et-al-2024.html',{
        'datasets' : datasets,
    })

#selection page on whether you want to cross compare or browse
def data(request):
    return render(request, 'data.html')    

def landing(request):
    return render(request, 'landing.html')

def umapTest(request):
    return render(request, 'umapTest.html')

def Makkar_et_al_2024(request):
    return render(request, 'papers/Makkar-et-al-2024.html', {
        })
def aging(request):
    return render(request, 'papers/jassonpaper/aging.html')
def ko_wt(request):
    return render(request, 'papers/jassonpaper/ko_wt.html')
def gdx_ovx(request):
    return render(request, 'papers/jassonpaper/gdx_ovx.html')
def jassonexample(request):
    return render(request, 'papers/jassonpaper/jassonexample.html')

def Thompson_et_al_2025(request):
    return render(request, 'papers/Thompson-et-al-2025.html', {
        })
def Thompson_scRNA_seq(request):
    return render(request, 'papers/Thompson-et-al-2025/scRNA-seq.html')
def Thompson_Stereo_seq(request):
    return render(request, 'papers/Thompson-et-al-2025/Stereo-seq.html')

def histology(request):
    histologyGallery = Histology.objects.all()
    css_classes = ["hist-card", "hist-card-tall"]

    return render(request, 'histology.html', {
         'histologyGallery': histologyGallery,
         'css_classes': css_classes,

    })

# def signup(request):
#     if request.method =='POST':
#         form = SignupForm(request.POST)

#         if form.is_valid():
#             form.save()
#             return redirect('/login/')

#     else:
#         form=SignupForm()

#     return render(request, 'signup.html',{
#         'form': form
#     })

def login(request):
    if request.method == 'POST':
        form = LoginForm(request.POST)

        if form.is_valid():
            return redirect('/dashboard/')  # Redirect to the dashboard page

    else:
        form = LoginForm()

    return render(request, 'login.html', {'form': form})


@login_required(login_url='/login/')
def dashboard(request):
    datasets = Dataset.objects.all()
    return render(request, 'dashboard.html',{
        'datasets': datasets,
        })



#papers....

def kindletal(request) :
        
    return render(request, 'papers/Kindl2025/menu.html', {
        })

def kindlscRNAseq(request) :
        
    return render(request, 'papers/Kindl2025/scRNAseq.html', {
        })

def kindlscATACseq(request) :
        
    return render(request, 'papers/Kindl2025/scATACseq.html', {
        })

def kindlChIPseq(request) :
        
    return render(request, 'papers/Kindl2025/ChIPseq.html', {
        })

def kindlMultiomics(request) :
        
    return render(request, 'papers/Kindl2025/Multiomics.html', {
        })

def parallelWounding(request) :
        
    return render(request, 'papers/woundAtlas/parallelWounding.html', {
        })



def elife(request) :
        
    return render(request, 'papers/elife.html', {
        })
def elifefb(request) :
        
    return render(request, 'papers/elifefb.html', {
        })
def JID(request) :
        
    return render(request, 'papers/JID.html', {
        })
def JIDfb(request):

    return render(request, 'papers/JIDfb.html', {
        })
def expderm(request):

    return render(request, 'papers/expderm.html', {
        })
def expdermfb(request):

    return render(request, 'papers/expdermfb.html', {
        })

def kdm6b(request):

    return render(request, 'papers/kdm6b.html', {
        })

def kdm6b_all(request):

    return render(request, 'papers/kdm6b/kdm6b_all.html', {
        })

def kdm6b_total(request):

    return render(request, 'papers/kdm6b/kdm6b_total.html', {
        })
def kdm6b_vs(request):

    return render(request, 'papers/kdm6b/kdm6b_vs.html', {
        })
def kdm6b_time(request):

    return render(request, 'papers/kdm6b/kdm6b_time.html', {
        })

def sean_paper(request):
    return render(request, 'scatacseq-and-scrnaseq-data-from-thompson-et-al-2021-2.html')    