diff options
Diffstat (limited to 'notes/views.py')
-rw-r--r-- | notes/views.py | 38 |
1 files changed, 32 insertions, 6 deletions
diff --git a/notes/views.py b/notes/views.py index 386b0c0..7542cdb 100644 --- a/notes/views.py +++ b/notes/views.py @@ -1,4 +1,6 @@ +import mimetypes from django import forms +from django.http import HttpResponse from django.shortcuts import render, redirect from notes.models import Note, Attachment, Tag, Version @@ -12,7 +14,7 @@ class NoteForm(forms.Form): def edit(request, note_id=None): note = Note(user_id=1) - + if note_id: note = Note.objects.get(pk=note_id) @@ -20,21 +22,30 @@ def edit(request, note_id=None): form = NoteForm(request.POST, request.FILES) if not form.is_valid(): - return render(request, 'edit.html', {'form': form}) + return render(request, 'edit.html', {'form': form, 'note': note}) note.title = form.cleaned_data.get('title') note.save() - + + if request.FILES.get('attachment'): + a = Attachment(note=note) + a.content = request.FILES['attachment'] + a.save() + version = Version(note=note, user_id=1) version.content = form.cleaned_data.get('content') version.shared = form.cleaned_data.get('shared') version.save() - return render(request, 'view.html', {'note': note, 'version': version}) + return redirect(note) - form = NoteForm(initial={'content': note.content, 'shared': note.shared}) + form = NoteForm(initial={ + 'content': note.content, + 'shared': note.shared, + 'title': note.title + }) - return render(request, 'edit.html', {'form': form}) + return render(request, 'edit.html', {'form': form, 'note': note}) def index(request, tag_id=None): notes = Note.objects.filter(user_id=1) @@ -49,3 +60,18 @@ def view(request, note_id): note = Note.objects.get(pk=note_id) version = note.version_set.latest() return render(request, 'view.html', {'note': note, 'version': version}) + +def view_file(request, note_id, file_id): + note = Note.objects.get(pk=note_id) + f = note.attachment_set.get(pk=file_id) + + mimetypes.init() + t, e = mimetypes.guess_type(f.content.name) + + return HttpResponse(f.content.read(), content_type=t) + +def delete_file(request, note_id, file_id): + note = Note.objects.get(pk=note_id) + f = Attachment.objects.get(pk=file_id) + f.delete() + return HttpResponse('File deleted') |