コード例 #1
0
ファイル: display.py プロジェクト: just1602/archweb
def details(request, name='', repo='', arch=''):
    if all([name, repo, arch]):
        arch_obj = get_object_or_404(Arch, name=arch)
        repo_obj = get_object_or_404(Repo, name__iexact=repo)
        try:
            pkg = Package.objects.select_related('arch', 'repo',
                                                 'packager').get(pkgname=name,
                                                                 repo=repo_obj,
                                                                 arch=arch_obj)
            rbstatus = None
            try:
                rbstatus = RebuilderdStatus.objects.get(pkg=pkg)
            except RebuilderdStatus.DoesNotExist:
                pass
            if request.method == 'HEAD':
                return empty_response()
            return render(
                request, 'packages/details.html', {
                    'pkg':
                    pkg,
                    'rbstatus':
                    rbstatus,
                    'notreproducible':
                    rbstatus.status == RebuilderdStatus.BAD
                    if rbstatus else False
                })
        except Package.DoesNotExist:
            # attempt a variety of fallback options before 404ing
            options = (redirect_agnostic, split_package_details,
                       recently_removed_package, replaced_package)
            for method in options:
                ret = method(request, name, repo_obj, arch_obj)
                if ret:
                    return ret
            # we've tried everything at this point, nothing to see
            raise Http404
    else:
        return redirect_to_search(request, name, repo, arch)
コード例 #2
0
ファイル: display.py プロジェクト: archlinux/archweb
def details(request, name='', repo='', arch=''):
    if all([name, repo, arch]):
        arch_obj = get_object_or_404(Arch, name=arch)
        repo_obj = get_object_or_404(Repo, name__iexact=repo)
        try:
            pkg = Package.objects.select_related(
                    'arch', 'repo', 'packager').get(pkgname=name,
                    repo=repo_obj, arch=arch_obj)
            if request.method == 'HEAD':
                return empty_response()
            return render(request, 'packages/details.html', {'pkg': pkg})
        except Package.DoesNotExist:
            # attempt a variety of fallback options before 404ing
            options = (redirect_agnostic, split_package_details,
                    recently_removed_package, replaced_package)
            for method in options:
                ret = method(request, name, repo_obj, arch_obj)
                if ret:
                    return ret
            # we've tried everything at this point, nothing to see
            raise Http404
    else:
        return redirect_to_search(request, name, repo, arch)
コード例 #3
0
ファイル: search.py プロジェクト: Archassault/archassaultweb
 def get(self, request, *args, **kwargs):
     if request.method == 'HEAD':
         return empty_response()
     self.form = PackageSearchForm(data=request.GET,
             show_staging=self.request.user.is_authenticated())
     return super(SearchListView, self).get(request, *args, **kwargs)