diff options
author | Johannes Löthberg <johannes@kyriasis.com> | 2017-11-28 21:06:47 +0100 |
---|---|---|
committer | Angel Velásquez <angvp@archlinux.org> | 2017-11-28 15:06:47 -0500 |
commit | a4cc538c3bb9a23e6b77ccc03a279185863efd3c (patch) | |
tree | d81849d7ab3b21b7d6fbfaade905b7e7c0ddb3a3 | |
parent | 6363af204c6f0d62e099f23da2b8a042704f10f9 (diff) | |
download | archweb-a4cc538c3bb9a23e6b77ccc03a279185863efd3c.tar.gz archweb-a4cc538c3bb9a23e6b77ccc03a279185863efd3c.zip |
Return different dep types under different keys in JSON results
* Return different dep types under different keys in JSON results
* packages/utils: Put dependency type list above class
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
-rw-r--r-- | packages/utils.py | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/packages/utils.py b/packages/utils.py index e1331b8c..6a9376bc 100644 --- a/packages/utils.py +++ b/packages/utils.py @@ -472,13 +472,16 @@ def get_signoff_groups(repos=None, user=None): return signoff_groups +DEPENDENCY_TYPES = [('D', 'depends'), ('O', 'optdepends'), + ('M', 'makedepends'), ('C', 'checkdepends')] + class PackageJSONEncoder(DjangoJSONEncoder): pkg_attributes = ['pkgname', 'pkgbase', 'repo', 'arch', 'pkgver', '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'] + 'provides', 'replaces'] def default(self, obj): if hasattr(obj, '__iter__'): @@ -488,6 +491,9 @@ class PackageJSONEncoder(DjangoJSONEncoder): data = {attr: getattr(obj, attr) for attr in self.pkg_attributes} for attr in self.pkg_list_attributes: data[attr] = getattr(obj, attr).all() + all_deps = obj.depends.all() + for (deptype, name) in DEPENDENCY_TYPES: + data[name] = all_deps.filter(deptype=deptype) return data if isinstance(obj, PackageFile): filename = obj.filename or '' |