50 lines
1.2 KiB
Python
50 lines
1.2 KiB
Python
# -*- coding: utf-8 -*-
|
|
from __future__ import unicode_literals
|
|
|
|
from django.http import HttpResponse, HttpResponseRedirect
|
|
from django.shortcuts import render
|
|
from django.views.generic import (
|
|
View, TemplateView, ListView, CreateView, UpdateView, DeleteView
|
|
)
|
|
from django.views.generic.detail import SingleObjectMixin
|
|
from django.core.urlresolvers import reverse_lazy
|
|
from .models import Task
|
|
|
|
|
|
class TaskView(ListView):
|
|
model = Task
|
|
context_object_name = 'tasks'
|
|
template_name = "todolist/todo.html"
|
|
|
|
def post(self, request):
|
|
if request.is_ajax():
|
|
obj = Task.objects.get(id=request.POST["id"])
|
|
if "done" in request.POST:
|
|
obj.if_done = True
|
|
else:
|
|
obj.if_done = False
|
|
obj.save()
|
|
return HttpResponse('OK')
|
|
|
|
|
|
class TaskCreateView(CreateView):
|
|
model = Task
|
|
fields = ('title',)
|
|
success_url = reverse_lazy('tasks')
|
|
|
|
|
|
class TaskUpdateView(UpdateView):
|
|
model = Task
|
|
fields = ('title',)
|
|
|
|
|
|
class TaskDeleteView(View, SingleObjectMixin):
|
|
model = Task
|
|
pk_url_kwarg = 'id'
|
|
|
|
def post(self, request):
|
|
self.kwargs = request.POST
|
|
self.object = self.get_object()
|
|
self.object.delete()
|
|
return HttpResponse('')
|