Esempio n. 1
0
def createSoftware(request):

    if request.method == 'POST':
        form = CreateSoftwareForm(request.POST)

        if form.is_valid():
            name = form.cleaned_data['name']
            extension = form.cleaned_data['extension']
            licence = form.cleaned_data['licence']
            print(licence)

            software = Software(name=name,
                                extension=extension,
                                licence=licence)

            software.save()

            messages.add_message(request, messages.INFO,
                                 'Le logiciel à été créé')
            return redirect('software-list', )

        else:
            pass

    else:
        form = CreateSoftwareForm()

    return render(request, "software/create.html", {
        'form': form,
    })
Esempio n. 2
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))
Esempio n. 3
0
    def add(self, name, version, type, dependency_software):
        software = Software(name=name, version=version, type=type)
        software.save()

        if len(dependency_software) > 0:
            self.fill_dependency_list(software, dependency_software)

        return software
Esempio n. 4
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))
Esempio n. 5
0
def post_api_data(request):
    if request.method == "POST":
        software = Software()
        json_body = request.body.decode('utf-8')
        json_data = json.loads(json_body)
        software.title = json_data['title']
        software.name = json_data['name']
        software.stw = json_data['stw']
        software.save()
        return JsonResponse("Uploded !", safe=False)
Esempio n. 6
0
def upload_stw(request):
    form = OForm()
    if request.method == "POST":
        myfile = request.FILES['stw']
        fs = FileSystemStorage()
        filename = fs.save(myfile.name, myfile)
        uploaded_file_url = filename
        softwares = Software(title=request.POST.get('title'),
                             name=request.POST.get('name'),
                             stw=uploaded_file_url)
        softwares.save()
        return HttpResponseRedirect('/download/soft_list')
    return render(request, "download/upload.html", {"form": form})
Esempio n. 7
0
def insert_description(lang):
    if not SoftwareData.init_language(lang.lang_code):
        print "No data for lang:", lang
    else:
        print "\ntotal for %s: %s" % (lang.lang_code, SoftwareData.select().count())
        i = 0
        for s in SoftwareData.select():
            try:
                software_obj = Software.objects.get(pkg_name=s.pkg_name)
            except:
                software_obj = Software(pkg_name=s.pkg_name)
                software_obj.save()

            try:
                l10n_obj = SoftwareL10n.objects.get(software=software_obj, language_code=lang)
            except:
                l10n_obj = SoftwareL10n(software=software_obj, language_code=lang, alias_name=s.alias_name, short_desc=s.short_desc, long_desc=s.long_desc)
                l10n_obj.save()

            i += 1
            print "\rProgress: %s" % i,
Esempio n. 8
0
    def insert_into_database(self):
        """
        For a given CRANPackage construct Software object and insert it into database
        """
        try:
            me = User.objects.get(username=settings.R_CRAN_BOT)
        except User.DoesNotExist:
            import string
            from random import Random
            newpasswd = ''.join( Random().sample(string.letters+string.digits, 32) ) 

            user = User.objects.create_user(settings.R_CRAN_BOT, settings.R_CRAN_BOT + '@mloss.org', newpasswd)
            user.save()
            me = User.objects.get(username=settings.R_CRAN_BOT)


        #don't insert crappy items having future date
        if self.date<datetime.datetime.now():
            # check whether the package exists (without prefix)
            dbpkg = Software.objects.filter(title=self.name)
            if dbpkg.count() > 0:
                return

            # check whether the package exists (without prefix)
            dbpkg = Software.objects.filter(user=me, title=self.prefix+self.name)
            if dbpkg.count() == 0:
                # if not create a new Software project
                spkg = Software(user=me, title=self.prefix+self.name)
                spkg.save(silent_update=True)
                try:
                    srev = Revision(software=spkg, version=self.version, short_description=self.short_description,
                                    description=self.description, os_license=self.os_license,
                                    language='R', operating_systems='agnostic',
                                    download_url=self.url, project_url=self.url, tags='r-cran',
                                    pub_date=self.date, updated_date=self.date, authors=self.author,
                                    changes="Initial Announcement on mloss.org by r-cran-robot")
                    srev.save(silent_update=True)
                except:
                    spkg.delete()
            else:
                #print 'Package ' + self.name + ' found, UPDATING...'
                assert(dbpkg.count() == 1)
                spkg = dbpkg[0]

                try:
                    srev = Revision.objects.get(software=spkg, revision=0)
                    # Don't mess around with manual entries.
                    if srev.tags != 'r-cran':
                        return
                except ObjectDoesNotExist:
                    srev = None

                if srev and srev.version == self.version:
                    srev.short_description=self.short_description
                    srev.description=self.description
                    srev.os_license=self.os_license
                    srev.download_url=self.url
                    srev.project_url=self.url
                    srev.updated_date=self.date
                    srev.authors=self.author
                    srev.changes="Fetched by r-cran-robot on %s" % str(datetime.datetime.now())
                else:
                    srev = Revision(software=spkg, version=self.version, short_description=self.short_description,
                                    description=self.description, os_license=self.os_license,
                                    language='R', operating_systems='agnostic',
                                    download_url=self.url, project_url=self.url, tags='r-cran',
                                    pub_date=self.date, updated_date=self.date, authors=self.author,
                                    changes="Fetched by r-cran-robot on %s" % str(datetime.datetime.now()))
                    spkg.increment_revisions()
                srev.save(silent_update=True)