diff options
author | Dan McGee <dan@archlinux.org> | 2012-08-07 01:16:51 -0500 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2012-08-07 01:16:53 -0500 |
commit | 7d9ed0b881bd05878e7a54f785c2551bc6e336d6 (patch) | |
tree | 790658dc0f8e253b15be626ab9d121c4f306e7c7 | |
parent | 8ca64af397718f7dda0080467d202c6a70a33c8c (diff) |
Add reverse conflicts to package details
This is a place where calling vercmp could come in really handy.
Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r-- | main/models.py | 10 | ||||
-rw-r--r-- | templates/packages/details.html | 13 |
2 files changed, 20 insertions, 3 deletions
diff --git a/main/models.py b/main/models.py index 7d8ea755..b49edde3 100644 --- a/main/models.py +++ b/main/models.py @@ -258,6 +258,16 @@ class Package(models.Model): return (sort_order.get(dep.deptype, 1000), dep.name) return sorted(deps, key=sort_key) + @cache_function(123) + def reverse_conflicts(self): + """ + Returns a list of packages with conflicts against this package. + """ + # TODO: fix this; right now we cheat since we can't do proper version + # number checking without using alpm or vercmp directly. + return Package.objects.filter(conflicts__name=self.pkgname, + conflicts__comparison='').distinct() + @cache_function(125) def base_package(self): """ diff --git a/templates/packages/details.html b/templates/packages/details.html index 201e3074..9e898b7f 100644 --- a/templates/packages/details.html +++ b/templates/packages/details.html @@ -126,16 +126,23 @@ <td class="wrap">{% include "packages/details_relatedto.html" %}</td> </tr> {% endif %}{% endwith %} + {% with pkg.replaces.all as all_related %}{% if all_related %} + <tr> + <th>Replaces:</th> + <td class="wrap">{% include "packages/details_relatedto.html" %}</td> + </tr> + {% endif %}{% endwith %} {% with pkg.conflicts.all as all_related %}{% if all_related %} <tr> <th>Conflicts:</th> <td class="wrap">{% include "packages/details_relatedto.html" %}</td> </tr> {% endif %}{% endwith %} - {% with pkg.replaces.all as all_related %}{% if all_related %} + {% with pkg.reverse_conflicts as rev_conflicts %}{% if rev_conflicts %} <tr> - <th>Replaces:</th> - <td class="wrap">{% include "packages/details_relatedto.html" %}</td> + <th>Reverse Conflicts:</th> + <td class="wrap">{% for conflict in rev_conflicts %} + {% pkg_details_link conflict %}{% if not forloop.last %}, {% endif %}{% endfor %}</td> </tr> {% endif %}{% endwith %} <tr> |