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"