diff options
Diffstat (limited to 'app/notes/views.py')
-rw-r--r-- | app/notes/views.py | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/app/notes/views.py b/app/notes/views.py new file mode 100644 index 0000000..53811d0 --- /dev/null +++ b/app/notes/views.py @@ -0,0 +1,72 @@ +from django.views.generic import UpdateView, DetailView, ListView, CreateView, DeleteView, RedirectView +from django.views.generic.base import TemplateView +from django.urls import reverse, reverse_lazy +from django.db.models import Q +from django.db.models import Count + +#from taxonomy.models import Category + +from .models import ( + LuxNote, +) + +from .forms import ( + LuxNoteCreateForm, + LuxNoteEditForm, +) + + +class LuxNoteCreateView(CreateView): + model = LuxNote + form_class = LuxNoteCreateForm + template_name = "note_form.html" + + def get_success_url(self): + if 'add_new' in self.request.POST: + return reverse('notes:note-create') + else: + return reverse('notes:note-create') + + +class LuxNoteUpdateView(UpdateView): + model = LuxNote + form_class = LuxNoteEditForm + template_name = "note_form.html" + + def get_context_data(self, **kwargs): + context = super(LuxNoteUpdateView, self).get_context_data(**kwargs) + context['is_update'] = True + return context + + def get_success_url(self): + return reverse('notes:note-list') + + +class LuxNoteListView(ListView): + model = LuxNote + template_name = "note_list.html" + + def get_queryset(self): + tag = self.request.GET.get("tag", False) + if tag: + return LuxNote.objects.filter(tags__name__in=[tag]) + return LuxNote.objects.all() + + def get_context_data(self, **kwargs): + context = super(LuxNoteListView, self).get_context_data(**kwargs) + context['tags'] = LuxNote.tags.all().order_by('name') + context['current'] = self.request.GET.get("tag", False) + return context + + +class LuxNoteDeleteView(DeleteView): + # specify the model you want to use + model = LuxNote + success_url = "/notes/" + template_name = "confirm_delete.html" + + +class LuxNoteDetailView(DetailView): + model = LuxNote + template_name = "note_detail.html" + |