コード例 #1
0
def add_software(request):
    """
    Show the software form, and capture the information
    """

    if not request.user.is_authenticated():
        return HttpResponseRedirect('/accounts/login?next=%s' % request.path)

    original_id = request.GET.get('oid', None)

    if request.method == 'POST':
        new_data = request.POST.copy()
        new_data.update(request.FILES)
        form = SoftwareForm(new_data)

        if form.is_valid():
            new_software = Software(user=request.user,
                                    title=form.cleaned_data['title'])
            if original_id:
                new_software.original_id = original_id
            new_software.save()

            try:
                new_revision = Revision(
                    software=new_software,
                    version=form.cleaned_data['version'],
                    authors=form.cleaned_data['authors'],
                    contact=form.cleaned_data['contact'],
                    short_description=form.cleaned_data['short_description'],
                    description=form.cleaned_data['description'],
                    changes='Initial Announcement on mloss.org.',
                    project_url=form.cleaned_data['project_url'],
                    tags=form.cleaned_data['tags'],
                    language=form.cleaned_data['language'],
                    operating_systems=form.cleaned_data['operating_systems'],
                    dataformats=form.cleaned_data['dataformats'],
                    os_license=form.cleaned_data['os_license'],
                    paper_bib=form.cleaned_data['paper_bib'],
                    download_url=form.cleaned_data['download_url'],
                    tarball=form.cleaned_data['tarball'],
                    thumbnail=form.cleaned_data['thumbnail'],
                    screenshot=form.cleaned_data['screenshot'],
                )
                if original_id:
                    new_revision.original_id = original_id

                save_tarball(request, new_revision)
                save_images(request, new_revision, old_revision=None)
                new_revision.save()
                return HttpResponseRedirect(new_revision.get_absolute_url())
            except:
                new_software.delete()
    else:
        form = SoftwareForm(initial={
            'user': request.user,
            'changes': 'Initial Announcement on mloss.org.'
        })

    return render_to_response('software/software_add.html', {'form': form},
                              context_instance=RequestContext(request))
コード例 #2
0
ファイル: forms.py プロジェクト: Afelio/mloss
def add_software(request):
    """
    Show the software form, and capture the information
    """

    if not request.user.is_authenticated():
       return HttpResponseRedirect('/accounts/login?next=%s' % request.path)

    original_id = request.GET.get('oid', None)

    if request.method == 'POST':
        new_data = request.POST.copy()
        new_data.update(request.FILES)
        form = SoftwareForm(new_data)

        if form.is_valid():
            new_software = Software(user=request.user,
                                    title=form.cleaned_data['title'])
            if original_id:
                new_software.original_id = original_id
            new_software.save()

            try:
                new_revision = Revision(software=new_software,
                                        version=form.cleaned_data['version'],
                                        authors=form.cleaned_data['authors'],
                                        contact=form.cleaned_data['contact'],
                                        short_description=form.cleaned_data['short_description'],
                                        description=form.cleaned_data['description'],
                                        changes='Initial Announcement on mloss.org.',
                                        project_url=form.cleaned_data['project_url'],
                                        tags=form.cleaned_data['tags'],
                                        language=form.cleaned_data['language'],
                                        operating_systems = form.cleaned_data['operating_systems'],
                                        dataformats = form.cleaned_data['dataformats'],
                                        os_license=form.cleaned_data['os_license'],
                                        paper_bib = form.cleaned_data['paper_bib'],
                                        download_url=form.cleaned_data['download_url'],
                                        tarball=form.cleaned_data['tarball'],
                                        thumbnail=form.cleaned_data['thumbnail'],
                                        screenshot=form.cleaned_data['screenshot'],
                                        )
                if original_id:
                    new_revision.original_id = original_id

                save_tarball(request, new_revision)
                save_images(request, new_revision, old_revision = None)
                new_revision.save()
                return HttpResponseRedirect(new_revision.get_absolute_url())
            except:
                new_software.delete()
    else:
        form = SoftwareForm(initial={'user':request.user,
            'changes':'Initial Announcement on mloss.org.'})

    return render_to_response('software/software_add.html',
                              { 'form': form },
                              context_instance=RequestContext(request))