summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorluxagraf <sng@luxagraf.net>2023-07-26 16:53:24 -0500
committerluxagraf <sng@luxagraf.net>2023-07-26 16:53:24 -0500
commit8e429c6b453e1061ee997934f241f76f2f103710 (patch)
treec90921be881d315baeb709f38382fa71f1438546
parentcf0f93063a8a6c712c22b83eb5297cc9a0bb85e8 (diff)
posts: added todo view of guides and reviews that need to be done
-rw-r--r--app/notes/models.py7
-rw-r--r--app/notes/views.py2
-rw-r--r--app/posts/models.py4
-rw-r--r--app/posts/templates/posts/post_list.html19
-rw-r--r--app/posts/urls.py7
-rw-r--r--app/posts/views.py19
6 files changed, 52 insertions, 6 deletions
diff --git a/app/notes/models.py b/app/notes/models.py
index ffd0a25..7f8dab0 100644
--- a/app/notes/models.py
+++ b/app/notes/models.py
@@ -22,6 +22,13 @@ class Note(models.Model):
(4, 'Live'),
)
status = models.IntegerField(choices=STATUS, default=0)
+ PLAN = (
+ (0, 'For Guide'),
+ (1, 'Review'),
+ (2, 'Rave'),
+ (3, 'Rant'),
+ )
+ plan = models.IntegerField(choices=PLAN, default=0)
class Meta:
ordering = ('date_created', 'status')
diff --git a/app/notes/views.py b/app/notes/views.py
index 7dd9c04..209d896 100644
--- a/app/notes/views.py
+++ b/app/notes/views.py
@@ -29,7 +29,7 @@ class NoteCreateView(LoginRequiredMixin, CreateView):
class NoteUpdateView(LoginRequiredMixin, UpdateView):
model = Note
- fields = ['title', 'url', 'body_markdown', 'post', 'status', 'user']
+ fields = ['title', 'url', 'body_markdown', 'post', 'status', 'plan']
def get_context_data(self, **kwargs):
context = super(NoteUpdateView, self).get_context_data(**kwargs)
diff --git a/app/posts/models.py b/app/posts/models.py
index e2adb0a..674dd5f 100644
--- a/app/posts/models.py
+++ b/app/posts/models.py
@@ -65,7 +65,7 @@ class Post(models.Model):
def time_since_update(self):
td = timezone.localdate() - self.date_last_pub
- return td.days
+ return int(td.days)
#def get_needs_update(self):
# if self.time_since_update() > self.update_frequency:
@@ -77,7 +77,7 @@ class Post(models.Model):
if self.needs_update == True:
return self.time_since_update() - self.update_frequency
else:
- return ''
+ return 0
def admin_url(self):
return format_html('<a target="_blank" href="%s">%s</a>' % (self.url, self.url))
diff --git a/app/posts/templates/posts/post_list.html b/app/posts/templates/posts/post_list.html
index 1abd65c..2fa18a0 100644
--- a/app/posts/templates/posts/post_list.html
+++ b/app/posts/templates/posts/post_list.html
@@ -51,6 +51,25 @@ Date last pub
<td class="field-days_overdue">{{object.days_overdue}}</td></tr>
</tr>
{% endfor %}
+{% if reviews %}{% for object in reviews %}
+<tr>
+ <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|truncatechars:55}}
+ </a>
+ </td>
+ <td class="field-date_last_pub nowrap">{{object.date_last_pub}}</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%}
+ <span class="hide">0</span><img src="/static/admin/img/icon-no.svg" alt="False">{%endif%}
+ </td>
+ <td class="field-days_overdue">{{object.days_overdue}}</td></tr>
+</tr>{% endfor %}{% endif %}
</tbody>
</table>
</div>
diff --git a/app/posts/urls.py b/app/posts/urls.py
index c7da54e..8c91a4c 100644
--- a/app/posts/urls.py
+++ b/app/posts/urls.py
@@ -11,9 +11,14 @@ urlpatterns = [
name="list"
),
path(
+ r'new',
+ views.PostNewView.as_view(),
+ name="new"
+ ),
+ path(
r'todo',
views.PostTodoView.as_view(),
- name="todo"
+ name="new"
),
path(
r'<pk>/notes',
diff --git a/app/posts/views.py b/app/posts/views.py
index ad589c2..f406d29 100644
--- a/app/posts/views.py
+++ b/app/posts/views.py
@@ -1,9 +1,10 @@
from django.views.generic import UpdateView, DetailView, ListView
from django.views.generic.edit import CreateView, DeleteView, UpdateView
from django.contrib.auth.mixins import LoginRequiredMixin
+from django.db.models import Q
from .models import Post
-
+from notes.models import Note
class PostListView(LoginRequiredMixin, ListView):
model = Post
@@ -12,12 +13,26 @@ class PostListView(LoginRequiredMixin, ListView):
return Post.objects.filter(user=self.request.user).order_by("-needs_update")
-class PostTodoView(LoginRequiredMixin, ListView):
+class PostNewView(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 PostTodoView(LoginRequiredMixin, ListView):
+ template_name = 'posts/post_list.html'
+
+ def get_queryset(self):
+ qs = Post.objects.filter(user=self.request.user)
+ qs = qs.filter(Q(needs_update=True) | Q(is_live=0))
+ unsorted_results = qs.all()
+ return sorted(unsorted_results, key=lambda a: a.days_overdue(), reverse=True)
+
+ def get_context_data(self, **kwargs):
+ context = super(PostTodoView, self).get_context_data(**kwargs)
+ context['reviews'] = Note.objects.filter(plan=1)
+ return context
+
class PostNotesView(LoginRequiredMixin, DetailView):
model = Post