Ejemplo n.º 1
0
def promote_package(request, repo_id=None, package=None):
    repo = repo_utils.get_repo(repo_id)
    pkgid = package
    package = repo_utils.get_package(repo, id=pkgid)
    if len(repo['children']) > 1:
        children = [(r['id'], r['name']) for r in repo['children']]
        form = PromoteRepoSelectionForm(request.POST or None, repos=children)
        if request.method == 'POST':
            pset = PackageSet.objects.create(stype="promote")
            pset.save()
            for prid in form.cleaned_data['repos']:
                prepo = repo_utils.get_repo(prid)
                psrepo = PackageSetRepo.objects.create(packageset=pset,
                                                       repoid=prepo['id'],
                                                       name=prepo['name'])
                psrepo.save()
            pkg = \
                PackageSetPackage.objects.create(packageset=pset,
                                                 packageid=package['id'],
                                                 pkgobj=cPickle.dumps(package))
        pkg.save()
        return dict(repo=repo, package=package, form=form)
    else:
        pset = PackageSet.objects.create(stype="promote")
        pset.save()
        prepo = PackageSetRepo.objects.create(packageset=pset,
                                              repoid=repo['children'][0]['id'],
                                              name=repo['name'])
        prepo.save()
        pkg = PackageSetPackage.objects.create(packageset=pset,
                                               packageid=package['id'],
                                               pkgobj=cPickle.dumps(package))
        pkg.save()
        return HttpResponseRedirect(reverse("sponge.views.repos.promote_ok",
                                            kwargs=dict(pid=pset.pk)))
Ejemplo n.º 2
0
def demote_package(request, repo_id=None, package=None):
    repo = repo_utils.get_repo(repo_id)
    pkgid = package
    package = repo_utils.get_package(repo, id=pkgid)
    pset = PackageSet.objects.create(stype="demote")
    pset.save()
    prepo = PackageSetRepo.objects.create(packageset=pset,
                                          repoid=repo['id'],
                                          name=repo['name'])
    prepo.save()
    pkg = PackageSetPackage.objects.create(packageset=pset,
                                           packageid=package['id'],
                                           pkgobj=cPickle.dumps(package))
    pkg.save()
    return HttpResponseRedirect(reverse("sponge.views.repos.demote_ok",
                                        kwargs=dict(pid=pset.pk)))