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

124 lines
3.2 KiB

# coding=utf-8
from django.contrib.auth.decorators import login_required
from django.shortcuts import render, redirect, get_object_or_404
from accounts_app.models import UserProfile
from models import Task
from mydefs import pag_mn, only_admins, safe_int
from forms import TaskFrm
@login_required
@only_admins
def home(request):
tasks = Task.objects.filter(recipient=request.user, state='S') # Новые задачи
# filter
#dir, field = order_helper(request)
#if field:
# tasks = tasks.order_by(field)
tasks = pag_mn(request, tasks)
return render(request, 'taskapp/tasklist.html', {
'tasks': tasks
})
@login_required
@only_admins
def active_tasks(request):
tasks = Task.objects.filter(recipient=request.user, state='C') # На выполнении
tasks = pag_mn(request, tasks)
return render(request, 'taskapp/tasklist_active.html', {
'tasks': tasks
})
@login_required
@only_admins
def finished_tasks(request):
tasks = Task.objects.filter(recipient=request.user, state='F') # Выполненные
tasks = pag_mn(request, tasks)
return render(request, 'taskapp/tasklist_finish.html', {
'tasks': tasks
})
@login_required
@only_admins
def all_tasks(request):
tasks = Task.objects.filter(recipient=request.user) # Все задачи
tasks = pag_mn(request, tasks)
return render(request, 'taskapp/tasklist.html', {
'tasks': tasks
})
@login_required
@only_admins
def task_delete(request, task_id):
get_object_or_404(Task, id=task_id).delete()
return redirect('task_home')
@login_required
@only_admins
def task_add_edit(request, task_id=0):
task_id = int(task_id)
warntext = ''
# чтоб при добавлении сразу был выбран исполнитель
frm_recipient_id = safe_int(request.GET.get('rp'))
if request.method == 'POST':
frm = TaskFrm(request.POST)
if frm.is_valid():
if task_id == 0:
tsk = Task()
else:
tsk = get_object_or_404(Task, id=task_id)
tsk.save_form(frm, request.user)
tsk.save()
return redirect('task_home')
else:
warntext = u'Исправте ошибки'
if task_id == 0:
task = Task()
frm = TaskFrm(initial={
'recipient': frm_recipient_id
})
else:
task = get_object_or_404(Task, id=task_id)
frm = TaskFrm({
'descr': task.descr,
'recipient': task.recipient.id,
'device': task.device.id,
'priority': task.priority,
'out_date': task.out_date,
'state': task.state
})
return render(request, 'taskapp/add_edit_task.html', {
'warntext': warntext,
'form': frm,
'task': task
})
@login_required
@only_admins
def task_finish(request, task_id):
task = get_object_or_404(Task, id=task_id)
task.finish(request.user)
task.save()
return redirect('task_home')
@login_required
@only_admins
def task_begin(request, task_id):
task = get_object_or_404(Task, id=task_id)
task.begin(request.user)
task.save()
return redirect('task_home')