# coding: utf-8
import datetime
from django.contrib import auth
from django.contrib.auth.decorators import login_required
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render_to_response, redirect
from django.core.context_processors import csrf
from django.template.context import RequestContext
from django.views.generic.simple import direct_to_template
from phone_book.models import Tasks, TasksDone, Notebook, Master, Plans
from phone_book.forms import Auth, f_notebook
from django import forms
form = f_notebook()
@login_required
def main(request):
""" главная страница проекта """
return render_to_response('index.html', RequestContext(request))
@login_required
def auth(request):
if request.method == 'POST': # если была попытка авторизации
error = ''
global login
login = request.POST['login']
password = request.POST['pass']
logins =[]
l = Master.objects.all().values('login')
for item in l: # список всех логинов
logins.append(item['login'])
if login in logins:
p = Master.objects.get(login = login)
if p.password == password:
message = 'Wellcome %s' % login
else:
message = 'Wrong password'
else:
message = 'login %s do not exist' % login
else:
login = False
return redirect(request.META['HTTP_REFERER'])
@login_required
def exit(request):
''' Выход пользователя '''
message = False
login = False
tp = request.META['HTTP_REFERER']
tp = tp.replace('http://localhost:8000', '')
tp = tp.replace('/', '')
tp = str(tp)
tp = tp + '.html'
if tp == 'exit.html':
tp = 'index.html'
return render_to_response(tp, {'login': login, 'message': message})
@login_required
def plans(request):
""" задачи на новый лад """
#plans = request.user.plans.all()
return render_to_response('plans.html', {'plans': plans}, RequestContext(request))
@login_required
def tasks(request):
""" отображение списка задач по данному проекту. Задачи беруться из БД , а добавляются с этой же страницы """
result = {}
result.update(csrf(request))
try:
if request.POST['new_task'] and request.POST['new_task'] != '':
new_task = request.POST['new_task']
tasks = Tasks.objects.all()
tasks = Tasks(task = new_task)
tasks.save()
return redirect('/tasks/')
except:
pass
tasks = Tasks.objects.all()
tasksDone = TasksDone.objects.order_by('-id')
result.update({'tasks': tasks, 'tasksDone': tasksDone})
return render_to_response('tasks.html', result, RequestContext(request))
@login_required
def tasks_selected(request, task_id):
""" отправляем задачу в список выполненных """
# получаем выполненную задачу и дату добавления
this = Tasks.objects.get(id = task_id)
dateAdded = str(this.dateAdded)
delta = datetime.timedelta(hours=2)
dateNow = str(datetime.datetime.now() -delta)
# dateDelta = dateNow.replace(tzinfo=None) - dateAdded.replace(tzinfo=None)
# dateDelta = dateDelta.seconds
# открываем таблицу выполненных задач для заполнения
tasks_done = TasksDone.objects.all()
# добавляем новую запись (т.е. выполненную задачу)
tasks_done = TasksDone(task = this.task)
tasks_done.save()
# удаляем выполненную задачу из поставленных
this.delete()
return redirect('/tasks/')
@login_required
def tasks_done(request, task_id):
""" возвращаем задачу в доработку """
# получаем якобы выполненную задачу
this = TasksDone.objects.get(id = task_id)
# открываем таблицу поставленных задач для заполнения
tasks = Tasks.objects.all()
# добавляем новую запись (т.е. выполненную задачу)
tasks = Tasks(task = this.task)
tasks.save()
# удаляем выполненную задачу из поставленных
this.delete()
return redirect('/tasks/')
@login_required
def notebook(request):
""" записная книжка """
try:
if request.method == "POST" and request.POST['add_note'] == '1':
if ' ' in request.POST['cat']:
new_cat = request.POST['cat'].replace(' ', '_')
else:
new_cat = request.POST['cat']
nn = Notebook(
owner = request.user,
cat = new_cat,
surname = request.POST['surname'],
name = request.POST['name'],
fathername = request.POST['fathername'],
number = request.POST['number'],
city = request.POST['city'],
street = request.POST['street'],
house = request.POST['house'],
room = request.POST['room'],
)
nn.save()
return redirect('/notebook/')
except:
pass
if request.method == "POST" and request.POST['edit_note'] == '1':
nn = Notebook.objects.get(id = request.POST['num_note'])
nn.cat = request.POST['cat'],
nn.surname = request.POST['surname'],
nn.name = request.POST['name'],
nn.fathername = request.POST['fathername'],
nn.number = request.POST['number'],
nn.city = request.POST['city'],
nn.street = request.POST['street'],
nn.house = request.POST['house'],
nn.room = request.POST['room'],
nn.save()
return redirect('/notebook/')
notebook = request.user.notebooks.all()
cats_list = []
for item in notebook:
if item.cat not in cats_list:
cats_list.append(item.cat)
return render_to_response(
'notebook.html',
{'notebook': notebook, 'form': form, 'cats_list': cats_list},
RequestContext(request)
)
@login_required
def note_sort(request, sort):
""" фильтр категорий """
if sort == 'all_cats':
notebook = request.user.notebooks.all()
else:
notebook = request.user.notebooks.filter(cat = sort)
cats_list = []
n = request.user.notebooks.values('cat')
for item in n:
if item['cat'] not in cats_list:
cats_list.append(item['cat'])
return render_to_response('notebook.html', {'notebook': notebook, 'cats_list': cats_list, 'form': form}, RequestContext(request))
def note_order(request, order):
""" сортировка по фамилии """
if order == 'id':
notebook = Notebook.objects.all().order_by('id')
if order == 'name':
notebook = Notebook.objects.all().order_by('name')
if order == 'surname':
notebook = Notebook.objects.all().order_by('surname')
if order == 'fathername':
notebook = Notebook.objects.all().order_by('fathername')
if order == 'number':
notebook = Notebook.objects.all().order_by('number')
if order == 'cat':
notebook = Notebook.objects.all().order_by('cat')
return render_to_response('notebook.html', {'notebook': notebook, 'form': form,})
def purse_del(request, cat_del):
notebook = Notebook.objects.filter(cat = cat_del)
notebook.delete()
return redirect('/notebook/')
def del_note(request, note):
n = Notebook.objects.get(id = note)
n.delete()
return redirect('/notebook/')
def edit_note(request, note):
notebook = Notebook.objects.all()
edit_note = Notebook.objects.get(id = note)
cats_list = []
n = request.user.notebooks.values('cat')
for item in n:
if item['cat'] not in cats_list:
cats_list.append(item['cat'])
return render_to_response('notebook.html', {'notebook': notebook,
'edit_note': edit_note,
'form': form,
'cats_list': cats_list,
}, RequestContext(request))