summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorluxagraf <sng@luxagraf.net>2023-07-24 16:23:42 -0500
committerluxagraf <sng@luxagraf.net>2023-07-24 16:23:42 -0500
commitbe4b5904a575390787b349f05f3c8dd5ad4bddb2 (patch)
tree813b4506a335038c6a3d4a31f9a5a1bee3d005ff /app
parent99140e06dbd98a86f8247cf61cedc1d7c977279e (diff)
posts/notes: cleaned up view code and restyled table view
Diffstat (limited to 'app')
-rw-r--r--app/notes/views.py20
-rw-r--r--app/posts/templates/posts/post_list.html23
-rw-r--r--app/posts/urls.py5
-rw-r--r--app/posts/views.py47
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