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)))
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)))