Пример #1
0
def create(request):
    NoteForm = get_note_form(request)
    form = NoteForm()
    if request.method == 'POST':
        form = NoteForm(request.POST)
        if form.is_valid():
            if request.user.is_authenticated():
                author = request.user
            else:
                if 'email' in form.cleaned_data:
                    users_list = User.objects.filter(
                        email=form.cleaned_data['email'])
                    if len(users_list) > 0:
                        author = users_list[0]
                    else:
                        user = User()
                        user.username = form.cleaned_data['email']
                        user.email = form.cleaned_data['email']
                        user.save()
                        author = user
            note = Note(
                text=form.cleaned_data['text'],
                type=form.cleaned_data['type'],
                pub_date=datetime.datetime.now(),
                author=author,
            )
            if 'public' in form.cleaned_data:
                note.public = True
            note.save()
            save_bookmark_to_note(request, note)
            send_note_email(note, 'http://' + request.get_host())
            if request.is_ajax:
                _note = note.as_json()
                _note['url'] = request.get_host() + reverse(detail,
                                                            args=(note.id, ))
                if request.user.is_authenticated() and (
                        note.author == request.user or user.is_staff):
                    _note['editable'] = True
                return HttpResponse(json.dumps(_note), 'application/json')
            return HttpResponseRedirect(reverse(detail, args=(note.id, )))
    if request.is_ajax():
        return HttpResponse(
            json.dumps({
                "form":
                render_to_string("notes/form.html", {
                    "form": form,
                },
                                 context_instance=RequestContext(request))
            }), 'application/json')
    return render_to_response('notes/form_page.html', {'form': form},
                              context_instance=RequestContext(request))