def merge_notes(request, note_ids): # Validate notes note_id_array = note_ids.split(',') notes = validate_ownership_notes(request.user, note_id_array) # Merge data merged_contents = '' merged_tags = '' for note in notes: merged_contents += note.content + '\r\n' merged_tags += ',' + note.tags if merged_tags else note.tags # Create form if request.method != 'POST': form = NoteForm(data={ 'title': notes[0].title, 'content': merged_contents, 'notebook': notes[0].notebook, 'tags': merged_tags, }) form.restrict_to_user(request.user) else: form = NoteForm(data=request.POST) if form.create(): Note.delete_all(notes) return redirect('home') # Render context = regular_context(request.user) context['notes'] = notes context['form'] = form context['current_note_ids'] = note_ids return render(request, 'merge_notes.html', context)
def view_notebook(request, notebook_id): # Validate notebook current_notebook = validate_ownership_notebook(request.user, notebook_id) # Create form notes = Note.objects.filter(notebook_id=notebook_id, trash=False).order_by('id') if request.method != 'POST': form = SelectNotesForm() form.set_choices(notes) else: form = SelectNotesForm(data=request.POST) form.set_choices(notes) if form.is_valid(): # Collect valid nodes valid_notes = validate_ownership_notes(request.user, form.cleaned_data['picked']) note_ids = ','.join([str(note.id) for note in valid_notes]) if len(valid_notes) > 0: # Download if 'downloadtxts' in request.POST: return notes2txtzip_response( valid_notes, 'notes-%s-partial' % current_notebook.title) # Download if 'downloadpdfs' in request.POST: return notes2pdfzip_response( valid_notes, 'notes-%s-partial' % current_notebook.title) # Move if 'merge' in request.POST: return HttpResponseRedirect( reverse('merge-notes', kwargs={'note_ids': note_ids})) # Move if 'move' in request.POST: return HttpResponseRedirect( reverse('move-notes', kwargs={'note_ids': note_ids})) # Delete if 'delete' in request.POST: return HttpResponseRedirect( reverse('delete-notes', kwargs={'note_ids': note_ids})) # Render context = regular_context(request.user) context['form'] = form context['notes'] = notes context['current_notebook'] = current_notebook return render(request, 'view_notebook.html', context)
def delete_notes(request, note_ids): # Validate notes note_id_array = note_ids.split(',') notes = validate_ownership_notes(request.user, note_id_array) if request.method == 'POST': Note.delete_all(notes) return redirect('trash:trash') # Render context = trash_context(request.user) context['notes'] = notes context['current_note_ids'] = note_ids return render(request, 'permanent_delete_notes.html', context)
def delete_notes(request, note_ids): # Validate notes note_id_array = note_ids.split(',') notes = validate_ownership_notes(request.user, note_id_array) if request.method == 'POST': Note.delete_all(notes) return redirect('trash:trash') # Render context = trash_context(request.user) context['notes'] = notes context['current_note_ids'] = note_ids return render(request, 'permanent_delete_notes.html', context)
def delete_notes(request, note_ids): # Validate notes note_id_array = note_ids.split(',') notes = validate_ownership_notes(request.user, note_id_array) if request.method == 'POST': for note in notes: note.trash = True note.save() return redirect('home') # Render context = regular_context(request.user) context['notes'] = notes context['current_note_ids'] = note_ids return render(request, 'delete_notes.html', context)
def restore_notes(request, note_ids): # Validate notes note_id_array = note_ids.split(',') notes = validate_ownership_notes(request.user, note_id_array) if request.method == 'POST': for note in notes: note.trash = False note.save() return redirect('trash:trash') # Render context = trash_context(request.user) context['notes'] = notes context['current_note_ids'] = note_ids return render(request, 'restore_notes.html', context)
def trash(request): # Create form notes = Note.objects.filter(notebook__owner=request.user, trash=True).order_by('id') if request.method != 'POST': form = SelectNotesForm() form.set_choices(notes) else: form = SelectNotesForm(data=request.POST) form.set_choices(notes) if form.is_valid(): # Collect valid nodes valid_notes = validate_ownership_notes(request.user, form.cleaned_data['picked']) if len(valid_notes) > 0: # Download if 'downloadtxts' in request.POST: return notes2txtzip_response(valid_notes, 'notes-trash-all') # Download if 'downloadpdfs' in request.POST: return notes2pdfzip_response(valid_notes, 'notes-trash-all') # Move if 'restore' in request.POST: note_ids = ','.join([str(note.id) for note in valid_notes]) return HttpResponseRedirect( reverse('trash:restore-notes', kwargs={'note_ids': note_ids})) # Delete if 'delete' in request.POST: note_ids = ','.join([str(note.id) for note in valid_notes]) return HttpResponseRedirect( reverse('trash:permanent-delete-notes', kwargs={'note_ids': note_ids})) # Render context = trash_context(request.user) context['form'] = form context['notes'] = notes return render(request, 'view_trash.html', context)
def view_notebook(request, notebook_id): # Validate notebook current_notebook = validate_ownership_notebook(request.user, notebook_id) # Create form notes = Note.objects.filter(notebook_id=notebook_id, trash=False).order_by('id') if request.method != 'POST': form = SelectNotesForm() form.set_choices(notes) else: form = SelectNotesForm(data=request.POST) form.set_choices(notes) if form.is_valid(): # Collect valid nodes valid_notes = validate_ownership_notes(request.user, form.cleaned_data['picked']) note_ids = ','.join([str(note.id) for note in valid_notes]) if len(valid_notes) > 0: # Download if 'downloadtxts' in request.POST: return notes2txtzip_response(valid_notes, 'notes-%s-partial' % current_notebook.title) # Download if 'downloadpdfs' in request.POST: return notes2pdfzip_response(valid_notes, 'notes-%s-partial' % current_notebook.title) # Move if 'merge' in request.POST: return HttpResponseRedirect(reverse('merge-notes', kwargs={'note_ids': note_ids})) # Move if 'move' in request.POST: return HttpResponseRedirect(reverse('move-notes', kwargs={'note_ids': note_ids})) # Delete if 'delete' in request.POST: return HttpResponseRedirect(reverse('delete-notes', kwargs={'note_ids': note_ids})) # Render context = regular_context(request.user) context['form'] = form context['notes'] = notes context['current_notebook'] = current_notebook return render(request, 'view_notebook.html', context)
def move_notes(request, note_ids): # Validate notes note_id_array = note_ids.split(',') notes = validate_ownership_notes(request.user, note_id_array) # Create form if request.method != 'POST': form = SelectNotebookForm() form.restrict_to_user(request.user) else: form = SelectNotebookForm(data=request.POST) if form.move(notes): return redirect('home') # Render context = regular_context(request.user) context['notes'] = notes context['form'] = form context['current_note_ids'] = note_ids return render(request, 'move_notes.html', context)
def move_notes(request, note_ids): # Validate notes note_id_array = note_ids.split(',') notes = validate_ownership_notes(request.user, note_id_array) # Create form if request.method != 'POST': form = SelectNotebookForm() form.restrict_to_user(request.user) else: form = SelectNotebookForm(data=request.POST) if form.move(notes): return redirect('home') # Render context = regular_context(request.user) context['notes'] = notes context['form'] = form context['current_note_ids'] = note_ids return render(request, 'move_notes.html', context)
def merge_notes(request, note_ids): # Validate notes note_id_array = note_ids.split(',') notes = validate_ownership_notes(request.user, note_id_array) # Merge data merged_contents = '' merged_tags = '' for note in notes: merged_contents += note.content + '\r\n' merged_tags += ',' + note.tags if merged_tags else note.tags # Create form if request.method != 'POST': form = NoteForm(data={ 'title': notes[0].title, 'content': merged_contents, 'notebook': notes[0].notebook, 'tags': merged_tags, }) form.restrict_to_user(request.user) else: form = NoteForm(data=request.POST) if form.is_valid(): # Delete old notes for note in notes: note.delete() # Create new note form.save() return redirect('home') # Render context = regular_context(request.user) context['notes'] = notes context['form'] = form context['current_note_ids'] = note_ids return render(request, 'merge_notes.html', context)
def trash(request): # Create form notes = TrashNote.objects.for_user(request.user) if request.method != 'POST': form = SelectNotesForm() form.set_choices(notes) else: form = SelectNotesForm(data=request.POST) form.set_choices(notes) if form.is_valid(): # Collect valid nodes valid_notes = validate_ownership_notes(request.user, form.cleaned_data['picked']) note_ids = ','.join([str(note.id) for note in valid_notes]) if len(valid_notes) > 0: # Download if 'downloadtxts' in request.POST: return notes2txtzip_response(valid_notes, 'notes-trash-all') # Download if 'downloadpdfs' in request.POST: return notes2pdfzip_response(valid_notes, 'notes-trash-all') # Move if 'restore' in request.POST: return HttpResponseRedirect(reverse('trash:restore-notes', kwargs={'note_ids': note_ids})) # Delete if 'delete' in request.POST: return HttpResponseRedirect(reverse('trash:permanent-delete-notes', kwargs={'note_ids': note_ids})) # Render context = trash_context(request.user) context['form'] = form context['notes'] = notes return render(request, 'view_trash.html', context)