Esempio n. 1
0
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)
Esempio n. 2
0
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)
Esempio n. 3
0
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)
Esempio n. 4
0
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)
Esempio n. 5
0
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)
Esempio n. 6
0
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)
Esempio n. 7
0
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)
Esempio n. 8
0
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)
Esempio n. 9
0
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)
Esempio n. 10
0
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)
Esempio n. 11
0
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)
Esempio n. 12
0
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)