You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

220 lines
4.7 KiB
Python

from django.shortcuts import render, redirect, get_object_or_404
from .models import *
from django.contrib.auth import authenticate, login, logout
from django.contrib.auth.decorators import login_required
from django.contrib import messages
from .forms import *
from django.utils import timezone
# Create your views here.
def signin(request):
if request.user.is_authenticated:
return redirect('home')
if request.method == 'POST':
form = CustomLoginForm(request.POST)
if form.is_valid():
username = form.cleaned_data['username']
password = form.cleaned_data['password']
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
return redirect('home')
else:
form.add_error(None, 'Invalid email or password. Please try again.')
else:
form = CustomLoginForm()
return render(request, 'login.html', {'form': form})
def signout(request):
if request.user.is_authenticated:
logout(request)
return redirect('signin')
@login_required
def home(request, *args, **kwargs):
notes = Note.objects.filter(user=request.user).order_by('-date')[:6]
context = {
'notes' : notes,
}
return render(request, 'index.html', context)
@login_required
def my_projects(request, *args, **kwargs):
user = request.user
try:
staff_profile = StaffProfile.objects.get(user=user)
projects = Project.objects.filter(models.Q(manager=staff_profile) | models.Q(members=staff_profile)).distinct().order_by('-project_id')
except StaffProfile.DoesNotExist:
projects = []
context = {
'projects' : projects,
}
return render(request, 'projects.html', context)
@login_required
def my_tasks(request, *args, **kwargs):
context = {
}
return render(request, 'tasks.html', context)
@login_required
def detailed_project(request, project_id):
project = get_object_or_404(Project, project_id=project_id)
context = {
'project' : project,
}
return render(request, 'project-details.html', context)
@login_required
def createtask_project(request, project_id):
project = get_object_or_404(Project, project_id=project_id)
context = {
'project' : project,
}
return render(request, 'createtask-project.html', context)
@login_required
def create_project(request):
context = {
}
return render(request, 'create-project.html', context)
@login_required
def create_epic(request):
context = {
}
return render(request, 'create-epic.html', context)
@login_required
def create_task(request):
context = {
}
return render(request, 'create-task.html', context)
@login_required
def createtask_epic(request):
context = {
}
return render(request, 'createtask-epic.html', context)
def add_note_modal(request, *args, **kwargs):
context = {
}
return render(request, 'addnote-modal.html', context)
def add_status_modal(request, *args, **kwargs):
context = {
}
return render(request, 'addstatus-modal.html', context)
def add_file_modal(request, *args, **kwargs):
context = {
}
return render(request, 'addfile-modal.html', context)
def add_credentials_modal(request, *args, **kwargs):
context = {
}
return render(request, 'addcredentials-modal.html', context)
def add_point_modal(request, *args, **kwargs):
context = {
}
return render(request, 'addpoint-modal.html', context)
def add_time_modal(request, *args, **kwargs):
context = {
}
return render(request, 'addtime-modal.html', context)
def delete_task_modal(request, *args, **kwargs):
context = {
}
return render(request, 'deletetask-modal.html', context)
def show_points_modal(request, *args, **kwargs):
context = {
}
return render(request, 'showpoints-modal.html', context)
def timeline_modal(request, *args, **kwargs):
context = {
}
return render(request, 'timeline-modal.html', context)
def update_status_modal(request, *args, **kwargs):
context = {
}
return render(request, 'update-status-modal.html', context)
@login_required
def save_note(request):
if request.method == 'POST':
text = request.POST.get('note_text')
color= request.POST.get('note_color')
user = request.user
date = timezone.now()
note = Note(
text = text,
color = color,
user = user,
date = date,
)
note.save()
# return redirect('home') # Redirect to a success page or another view
return render(request, 'addnote-modal.html')