Beispiel #1
0
def uploadpublication(request, form_class=PublicationUploadForm, template_name="publications/upload.html"):
    """
    upload form for publications
    """
    publication = Publication()
    publication.author = request.user
    publication_form = form_class()

    if request.method == "POST":
        if request.POST.get("action") == "upload":
            publication_form = form_class(request.user, request.POST, request.FILES, instance=publication)
            if publication_form.is_valid():
                if not is_valid_format(request.FILES["file_name"].name, request.FILES["file_name"].content_type):
                    request.user.message_set.create(
                        message=u"Tipo de arquivo inválido (Somente arquivos PDF/CBR/CBZ ou Imagem: JPG/GIF/PNG) ou nome do arquivo muito longo"
                    )
                else:
                    publication = publication_form.save(commit=False)
                    publication.date_added = datetime.datetime.now()
                    publication.status = 0
                    publication.nr_pages = 0
                    publication.save()

                    request.user.message_set.create(message=_(u"Publicação feita com sucesso '%s'") % publication.title)
                    return HttpResponseRedirect(reverse("publications", args=(publication.author,)))

    calc_age(request.user.get_profile())

    return render_to_response(
        template_name,
        {"form": publication_form, "is_me": True, "other_user": request.user},
        context_instance=RequestContext(request),
    )