diff options
author | luxagraf <sng@luxagraf.net> | 2023-07-24 16:23:42 -0500 |
---|---|---|
committer | luxagraf <sng@luxagraf.net> | 2023-07-24 16:23:42 -0500 |
commit | be4b5904a575390787b349f05f3c8dd5ad4bddb2 (patch) | |
tree | 813b4506a335038c6a3d4a31f9a5a1bee3d005ff /app | |
parent | 99140e06dbd98a86f8247cf61cedc1d7c977279e (diff) |
posts/notes: cleaned up view code and restyled table view
Diffstat (limited to 'app')
-rw-r--r-- | app/notes/views.py | 20 | ||||
-rw-r--r-- | app/posts/templates/posts/post_list.html | 23 | ||||
-rw-r--r-- | app/posts/urls.py | 5 | ||||
-rw-r--r-- | app/posts/views.py | 47 |
4 files changed, 26 insertions, 69 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 @@ <link href="/media/sortable.min.css" rel="stylesheet" /> {%endblock%} {% block primary %} +<main class="content"> <div class="results"> <table class="sortable" id="result_list"> <thead> <tr> - -<th scope="col" class="action-checkbox-column"> - - <div class="text"><span><input type="checkbox" id="action-toggle"></span></div> - <div class="clear"></div> -</th> <th scope="col" class="sortable column-title"> <div class="text"><span>Title</span></div> @@ -27,14 +22,14 @@ Date last pub </th> <th scope="col" class="sortable column-post_type"> - <div class="text"><a href="">Post type</a></div> + <div class="text">Post type</div> <div class="clear"></div> </th> <th scope="col" class="sortable column-update_frequency"> - <div class="text"><a href="?o=6.4">Update frequency</a></div> + <div class="text">Update frequency</div> <div class="clear"></div> </th> <th scope="col" class="sortable column-needs_update"> @@ -52,19 +47,16 @@ Date last pub {% for object in object_list %} <tr> - <td class="action-checkbox"> - <input type="checkbox" name="_selected_action" value="349" class="action-select"> - </td> <td class="field-title"> <a href="/post/{{object.id}}/notes">{{object.title}}</a> </td> <td class="field-admin_url"> <a target="_blank" href="{{object.url}}"> - {{object.url}} + {{object.url|truncatechars:45}} </a> </td> <td class="field-date_last_pub nowrap">{{object.date_last_pub}}</td> - <td class="field-post_type">{{object.post_type}}</td> + <td class="field-post_type"><span class="hide">{{object.post_type}}</span>{{object.get_post_type_display}}</td> <td class="field-update_frequency">{{object.update_frequency}}</td> <td class="field-needs_update">{% if object.needs_update %} <span class="hide">1</span><img src="/static/admin/img/icon-yes.svg" alt="True">{%else%} @@ -78,7 +70,8 @@ Date last pub </tbody> </table> </div> +</main> {% endblock %} - {% block js %} +{% block js %} <script src="/media/sortable.min.js"></script> - {% 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 @@ -11,6 +11,11 @@ urlpatterns = [ name="list" ), path( + r'todo', + views.PostTodoView.as_view(), + name="todo" + ), + path( r'<pk>/notes', views.PostNotesView.as_view(), name="detail" 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 |