aboutsummaryrefslogtreecommitdiffstats
path: root/servo/views/note.py
diff options
context:
space:
mode:
Diffstat (limited to 'servo/views/note.py')
-rw-r--r--servo/views/note.py39
1 files changed, 31 insertions, 8 deletions
diff --git a/servo/views/note.py b/servo/views/note.py
index 803f1a2..162b297 100644
--- a/servo/views/note.py
+++ b/servo/views/note.py
@@ -19,8 +19,8 @@ from reportlab.graphics.shapes import Drawing
from reportlab.graphics.barcode import createBarcodeDrawing
from servo.lib.utils import paginate
-from servo.models import (Order, Template, Tag, Customer, Note,
- Attachment, Escalation,)
+from servo.models import (Order, Template, Tag, Customer, Note,
+ Attachment, Escalation, Article,)
from servo.forms import NoteForm, NoteSearchForm, EscalationForm
@@ -58,6 +58,8 @@ def prep_list_view(request, kind):
data = {'title': _("Messages")}
all_notes = Note.objects.all().order_by("-created_at")
+ if kind == "articles":
+ all_notes = Article.objects.all().order_by('-date_created')
if kind == "inbox":
all_notes = all_notes.filter(order=None).order_by("is_read", "-created_at")
if kind == "sent":
@@ -119,7 +121,7 @@ def edit(request, pk=None, order_id=None, parent=None, recipient=None,
if recipient is not None:
to.append(recipient)
command = _('Send')
-
+
if order_id is not None:
order = get_object_or_404(Order, pk=order_id)
@@ -284,7 +286,18 @@ def templates(request, template_id=None):
return render(request, 'notes/templates.html', {'templates': templates})
-def toggle_flag(request, pk, flag):
+def toggle_flag(request, kind, pk, flag):
+ if kind == 'articles':
+ note = get_object_or_404(Article, pk=pk)
+ if flag == 'flagged':
+ note.toggle_flagged(request.user)
+ return HttpResponse(note.get_flagged_title(request.user))
+ if flag == 'read':
+ note.toggle_read(request.user)
+ return HttpResponse(note.get_read_title(request.user))
+
+ return HttpResponse(getattr(note, 'get_%s_title' % flag)())
+
field = 'is_%s' % flag
note = get_object_or_404(Note, pk=pk)
attr = getattr(note, field)
@@ -315,15 +328,25 @@ def list_notes(request, kind="inbox"):
def view_note(request, kind, pk):
- note = get_object_or_404(Note, pk=pk)
data = prep_list_view(request, kind)
- data['title'] = note.subject
+
+ if kind == 'articles':
+ note = get_object_or_404(Article, pk=pk)
+ data['read_title'] = note.get_read_title(request.user)
+ data['flagged_title'] = note.get_flagged_title(request.user)
+ else:
+ note = get_object_or_404(Note, pk=pk)
+
+ data['title'] = note.get_title()
data['note'] = note
if kind == 'escalations':
return render(request, "notes/view_escalation.html", data)
- else:
- return render(request, "notes/view_note.html", data)
+
+ if kind == 'articles':
+ return render(request, "notes/view_article.html", data)
+
+ return render(request, "notes/view_note.html", data)
def find(request):