harvest-dev team mailing list archive
-
harvest-dev team
-
Mailing list archive
-
Message #00516
[Merge] lp:~dholbach/harvest/701983 into lp:harvest
Daniel Holbach has proposed merging lp:~dholbach/harvest/701983 into lp:harvest with lp:~dholbach/harvest/fix-settings as a prerequisite.
Requested reviews:
harvest-dev (harvest-dev)
Related bugs:
#701983 Provide easy way to programmatically get number and type of opportunities for a package
https://bugs.launchpad.net/bugs/701983
For more details, see:
https://code.launchpad.net/~dholbach/harvest/701983/+merge/46347
--
https://code.launchpad.net/~dholbach/harvest/701983/+merge/46347
Your team harvest-dev is requested to review the proposed merge of lp:~dholbach/harvest/701983 into lp:harvest.
=== modified file 'harvest/opportunities/urls.py'
--- harvest/opportunities/urls.py 2010-10-05 13:31:20 +0000
+++ harvest/opportunities/urls.py 2011-01-14 21:37:15 +0000
@@ -8,7 +8,11 @@
url(r'^package/(?P<package_name>.+)/$',
'opportunities.views.single_package',
name='single_package'),
-
+
+ url(r'^json/(?P<package_name>.+)/$',
+ 'opportunities.views.json_package_summary',
+ name='json_package_summary'),
+
url(r'^opportunity/(?P<opportunity_id>[\d]+)/edit/$',
'opportunities.views.opportunity_edit',
name='opportunity_edit'),
=== modified file 'harvest/opportunities/views.py'
--- harvest/opportunities/views.py 2010-12-08 16:43:33 +0000
+++ harvest/opportunities/views.py 2011-01-14 21:37:15 +0000
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from django.contrib.auth.decorators import login_required
from django.db.models import F
-from django.http import HttpResponseRedirect
+from django.http import HttpResponseRedirect, HttpResponse
from django.shortcuts import get_object_or_404
from django.shortcuts import render_to_response as render
from django.template import RequestContext
@@ -12,6 +12,8 @@
import models
from wrappers import PackageWrapper, PackageListWrapper
+import json
+
# Returns all valid opportunities in the given QuerySet
def _get_valid_opportunities(opportunities_list):
return opportunities_list.filter(valid=True, opportunitylist__active=True,
@@ -76,6 +78,18 @@
context,
context_instance=RequestContext(request))
+def json_package_summary(request, package_name):
+ package = get_object_or_404(models.SourcePackage, name=package_name)
+ opportunities_list = _get_valid_opportunities(package.opportunity_set)
+ data = {}
+ for opportunity in opportunities_list:
+ if not data.has_key(opportunity.opportunitylist.name):
+ data[opportunity.opportunitylist.name] = 0
+ data[opportunity.opportunitylist.name] += 1
+ data["total"] = len(opportunities_list)
+
+ return HttpResponse(json.dumps(data))
+
@login_required
def opportunity_edit(request, opportunity_id, template='opportunities/opportunity_edit.html'):
opportunity = get_object_or_404(models.Opportunity, id=opportunity_id)