diff options
Diffstat (limited to 'servo/views/note.py')
-rw-r--r-- | servo/views/note.py | 39 |
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): |