From be4b5904a575390787b349f05f3c8dd5ad4bddb2 Mon Sep 17 00:00:00 2001 From: luxagraf Date: Mon, 24 Jul 2023 16:23:42 -0500 Subject: posts/notes: cleaned up view code and restyled table view --- app/notes/views.py | 20 +++----------- app/posts/templates/posts/post_list.html | 23 ++++++---------- app/posts/urls.py | 5 ++++ app/posts/views.py | 47 ++++++-------------------------- templates/base.html | 6 ++-- 5 files changed, 30 insertions(+), 71 deletions(-) diff --git a/app/notes/views.py b/app/notes/views.py index 7c8f6d8..53312ef 100644 --- a/app/notes/views.py +++ b/app/notes/views.py @@ -1,14 +1,13 @@ from django.views.generic import UpdateView, DetailView, ListView from django.views.generic.edit import CreateView, DeleteView, UpdateView -from django.utils.decorators import method_decorator -from django.contrib.auth.decorators import login_required +from django.contrib.auth.mixins import LoginRequiredMixin from django.urls import reverse from .models import Note from .forms import NoteCreateForm -class NoteCreateView(CreateView): +class NoteCreateView(LoginRequiredMixin, CreateView): model = Note form_class = NoteCreateForm @@ -20,11 +19,8 @@ class NoteCreateView(CreateView): def get_success_url(self): return reverse('posts:detail', kwargs={"pk": self.object.post.pk}) - @method_decorator(login_required) - def dispatch(self, *args, **kwargs): - return super(NoteCreateView, self).dispatch(*args, **kwargs) -class NoteUpdateView(UpdateView): +class NoteUpdateView(LoginRequiredMixin, UpdateView): model = Note fields = ['title', 'url', 'body_markdown', 'post', 'status', 'user'] @@ -36,11 +32,8 @@ class NoteUpdateView(UpdateView): def get_success_url(self): return reverse('posts:detail', kwargs={"pk": self.object.post.pk}) - @method_decorator(login_required) - def dispatch(self, *args, **kwargs): - return super(NoteUpdateView, self).dispatch(*args, **kwargs) -class NoteListView(ListView): +class NoteListView(LoginRequiredMixin, ListView): model = Note def get_queryset(self): @@ -53,8 +46,3 @@ class NoteListView(ListView): qs = Note.objects.filter(user=self.request.user).filter(status=status_reverse[status]) qs = Note.objects.filter(user=self.request.user) return qs - - - @method_decorator(login_required) - def dispatch(self, *args, **kwargs): - return super(NoteListView, self).dispatch(*args, **kwargs) diff --git a/app/posts/templates/posts/post_list.html b/app/posts/templates/posts/post_list.html index 7dfc5ef..f2e9e7a 100644 --- a/app/posts/templates/posts/post_list.html +++ b/app/posts/templates/posts/post_list.html @@ -3,16 +3,11 @@ {%endblock%} {% block primary %} +
- - - - +
- -
-
-
Title
@@ -27,14 +22,14 @@ Date last pub
- +
Post type
- +
Update frequency
@@ -52,19 +47,16 @@ Date last pub {% for object in object_list %}
- - {{object.title}} - {{object.url}} + {{object.url|truncatechars:45}} {{object.date_last_pub}}{{object.post_type}}{{object.post_type}}{{object.get_post_type_display}} {{object.update_frequency}} {% if object.needs_update %} 1True{%else%} @@ -78,7 +70,8 @@ Date last pub
+
{% endblock %} - {% block js %} +{% block js %} - {% endblock%} +{% endblock%} diff --git a/app/posts/urls.py b/app/posts/urls.py index 2b5e850..c7da54e 100644 --- a/app/posts/urls.py +++ b/app/posts/urls.py @@ -10,6 +10,11 @@ urlpatterns = [ views.PostListView.as_view(), name="list" ), + path( + r'todo', + views.PostTodoView.as_view(), + name="todo" + ), path( r'/notes', views.PostNotesView.as_view(), diff --git a/app/posts/views.py b/app/posts/views.py index 3d01ad7..ad589c2 100644 --- a/app/posts/views.py +++ b/app/posts/views.py @@ -1,52 +1,23 @@ from django.views.generic import UpdateView, DetailView, ListView from django.views.generic.edit import CreateView, DeleteView, UpdateView -from django.utils.decorators import method_decorator -from django.contrib.auth.decorators import login_required -from django.urls import reverse +from django.contrib.auth.mixins import LoginRequiredMixin from .models import Post -class PostListView(ListView): +class PostListView(LoginRequiredMixin, ListView): model = Post - @method_decorator(login_required) - def dispatch(self, *args, **kwargs): - return super(PostListView, self).dispatch(*args, **kwargs) - def get_queryset(self): return Post.objects.filter(user=self.request.user).order_by("-needs_update") -class PostNotesView(DetailView): - model = Post - - @method_decorator(login_required) - def dispatch(self, *args, **kwargs): - return super(PostNotesView, self).dispatch(*args, **kwargs) -''' - -class UpdateViewWithUser(UpdateView): - - def get_form_kwargs(self, **kwargs): - kwargs = super().get_form_kwargs(**kwargs) - kwargs.update({'user': self.request.user}) - return kwargs - - -class ProfileView(UpdateViewWithUser): - model = UserProfile - form_class = ProfileForm - template_name = "accounts/change-settings.html" - - def get_object(self): - return self.request.user.profile - +class PostTodoView(LoginRequiredMixin, ListView): + template_name = 'notes/notes_detail.html' + + def get_queryset(self): + return Post.objects.filter(user=self.request.user).filter(is_live=0) -class SettingsListView(DetailView): - model = UserProfile - template_name = "accounts/profile.html" - def get_object(self): - return self.request.user.profile -''' +class PostNotesView(LoginRequiredMixin, DetailView): + model = Post diff --git a/templates/base.html b/templates/base.html index e248573..1ee149a 100644 --- a/templates/base.html +++ b/templates/base.html @@ -17,13 +17,13 @@