from django.shortcuts import render, redirect, get_object_or_404 from django.contrib.auth import login from django.contrib.auth.decorators import login_required from django.contrib.auth.forms import UserCreationForm from django.contrib.auth.views import LoginView, LogoutView from .models import Project from .forms import ProjectForm def index(request): if request.user.is_authenticated: projects = Project.objects.all().order_by('-start_date') return render(request, 'core/index.html', {'projects': projects}) else: return render(request, 'core/landing.html') @login_required def add_project(request): if request.method == 'POST': form = ProjectForm(request.POST) if form.is_valid(): form.save() return redirect('index') else: form = ProjectForm() return render(request, 'core/add_project.html', {'form': form}) @login_required def edit_project(request, project_id): project = get_object_or_404(Project, pk=project_id) if request.method == 'POST': form = ProjectForm(request.POST, instance=project) if form.is_valid(): form.save() return redirect('index') else: form = ProjectForm(instance=project) return render(request, 'core/edit_project.html', {'form': form, 'project': project}) @login_required def delete_project(request, project_id): project = get_object_or_404(Project, pk=project_id) project.delete() return redirect('index') def register(request): if request.method == 'POST': form = UserCreationForm(request.POST) if form.is_valid(): user = form.save() login(request, user) return redirect('index') else: form = UserCreationForm() return render(request, 'core/register.html', {'form': form})