74 lines
2.6 KiB
Python
74 lines
2.6 KiB
Python
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')
|
|
|
|
total_projects = projects.count()
|
|
planned_projects = projects.filter(status='planowany').count()
|
|
in_progress_projects = projects.filter(status='realizowany').count()
|
|
completed_projects = projects.filter(status='zakonczony').count()
|
|
|
|
context = {
|
|
'projects': projects,
|
|
'total_projects': total_projects,
|
|
'planned_projects': planned_projects,
|
|
'in_progress_projects': in_progress_projects,
|
|
'completed_projects': completed_projects,
|
|
}
|
|
return render(request, 'core/index.html', context)
|
|
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})
|
|
|
|
def projects(request):
|
|
if request.user.is_authenticated:
|
|
projects = Project.objects.all().order_by('-start_date')
|
|
return render(request, 'core/projects.html', {'projects': projects})
|
|
else:
|
|
return render(request, 'core/landing.html') |