summaryrefslogtreecommitdiff
path: root/packages/views
diff options
context:
space:
mode:
authorLuke Shumaker <LukeShu@sbcglobal.net>2012-12-12 19:39:46 -0500
committerLuke Shumaker <LukeShu@sbcglobal.net>2012-12-12 19:39:46 -0500
commit482ada7da21540dc62a1daeed4963bd591a77e00 (patch)
treeefb3fc5b14bdb2f8838dfc37b09c56f3c6a2ae8c /packages/views
parentcdfa6c1195bb6feb812bffc981183f0758ca5e2f (diff)
parentcbdcb08557112f53ddcf074b950ee0950e12a045 (diff)
Merge tag 'release_2012-04-02'
Signing page changes, other tweaks Conflicts: README local_settings.py.example requirements_prod.txt urls.py
Diffstat (limited to 'packages/views')
-rw-r--r--packages/views/__init__.py28
-rw-r--r--packages/views/signoff.py2
2 files changed, 20 insertions, 10 deletions
diff --git a/packages/views/__init__.py b/packages/views/__init__.py
index 08e0286c..aa2721af 100644
--- a/packages/views/__init__.py
+++ b/packages/views/__init__.py
@@ -1,3 +1,6 @@
+from string import Template
+from urllib import urlencode
+
from django.contrib import messages
from django.contrib.auth.decorators import permission_required
from django.contrib.auth.models import User
@@ -9,12 +12,10 @@ from django.views.decorators.http import require_POST
from django.views.decorators.vary import vary_on_headers
from django.views.generic.simple import direct_to_template
-from string import Template
-from urllib import urlencode
-
-from main.models import Package, PackageFile, Arch, Repo
+from main.models import Package, PackageFile, PackageDepend, Arch, Repo
from mirrors.models import MirrorUrl
-from ..models import PackageRelation, PackageGroup
+from ..models import (PackageRelation, PackageGroup, License,
+ Conflict, Provision, Replacement)
from ..utils import (get_group_info, get_differences_info,
multilib_differences, get_wrong_permissions)
@@ -29,6 +30,8 @@ class PackageJSONEncoder(DjangoJSONEncoder):
'pkgrel', 'epoch', 'pkgdesc', 'url', 'filename', 'compressed_size',
'installed_size', 'build_date', 'last_update', 'flag_date',
'maintainers', 'packager' ]
+ pkg_list_attributes = [ 'groups', 'licenses', 'conflicts',
+ 'provides', 'replaces', 'depends' ]
def default(self, obj):
if hasattr(obj, '__iter__'):
@@ -37,13 +40,18 @@ class PackageJSONEncoder(DjangoJSONEncoder):
if isinstance(obj, Package):
data = dict((attr, getattr(obj, attr))
for attr in self.pkg_attributes)
- data['groups'] = obj.groups.all()
+ for attr in self.pkg_list_attributes:
+ data[attr] = getattr(obj, attr).all()
return data
if isinstance(obj, PackageFile):
filename = obj.filename or ''
return obj.directory + filename
- if isinstance(obj, (Repo, Arch, PackageGroup)):
+ if isinstance(obj, (Repo, Arch)):
return obj.name.lower()
+ if isinstance(obj, (PackageGroup, License)):
+ return obj.name
+ if isinstance(obj, (Conflict, Provision, Replacement, PackageDepend)):
+ return unicode(obj)
elif isinstance(obj, User):
return obj.username
return super(PackageJSONEncoder, self).default(obj)
@@ -177,7 +185,8 @@ def group_details(request, arch, name):
def files(request, name, repo, arch):
pkg = get_object_or_404(Package,
pkgname=name, repo__name__iexact=repo, arch__name=arch)
- fileslist = PackageFile.objects.filter(pkg=pkg).order_by('directory', 'filename')
+ # files are inserted in sorted order, so preserve that
+ fileslist = PackageFile.objects.filter(pkg=pkg).order_by('id')
dir_count = sum(1 for f in fileslist if f.is_directory)
files_count = len(fileslist) - dir_count
context = {
@@ -201,7 +210,8 @@ def details_json(request, name, repo, arch):
def files_json(request, name, repo, arch):
pkg = get_object_or_404(Package,
pkgname=name, repo__name__iexact=repo, arch__name=arch)
- fileslist = PackageFile.objects.filter(pkg=pkg).order_by('directory', 'filename')
+ # files are inserted in sorted order, so preserve that
+ fileslist = PackageFile.objects.filter(pkg=pkg).order_by('id')
data = {
'pkgname': pkg.pkgname,
'repo': pkg.repo.name.lower(),
diff --git a/packages/views/signoff.py b/packages/views/signoff.py
index cf00b0b9..63341a1d 100644
--- a/packages/views/signoff.py
+++ b/packages/views/signoff.py
@@ -180,7 +180,7 @@ class SignoffJSONEncoder(DjangoJSONEncoder):
def signoffs_json(request):
signoff_groups = sorted(get_signoff_groups(), key=attrgetter('pkgbase'))
data = {
- 'version': 1,
+ 'version': 2,
'signoff_groups': signoff_groups,
}
to_json = simplejson.dumps(data, ensure_ascii=False,