Merge lp:~elachuni/ubuntu-webcatalog/import-backports-no-ajax into lp:ubuntu-webcatalog

Proposed by Anthony Lenton
Status: Merged
Approved by: Anthony Lenton
Approved revision: 113
Merged at revision: 113
Proposed branch: lp:~elachuni/ubuntu-webcatalog/import-backports-no-ajax
Merge into: lp:ubuntu-webcatalog
Diff against target: 251 lines (+18/-98)
6 files modified
src/webcatalog/management/commands/import_app_install_data.py (+1/-0)
src/webcatalog/templates/webcatalog/recommended_apps.html (+0/-39)
src/webcatalog/tests/test_commands.py (+1/-0)
src/webcatalog/tests/test_views.py (+8/-40)
src/webcatalog/urls.py (+3/-0)
src/webcatalog/views.py (+5/-19)
To merge this branch: bzr merge lp:~elachuni/ubuntu-webcatalog/import-backports-no-ajax
Reviewer Review Type Date Requested Status
Natalia Bidart (community) Approve
Review via email: mp+102902@code.launchpad.net

Commit message

Import bckports together with app-install-data, and removed vary_on_header decorators

Description of the change

This branch implements two fixes for the current staging deploy:
 - Removed the use of vary_on_headers
 - Added backports to the list of imported repos.

To post a comment you must log in.
Revision history for this message
Natalia Bidart (nataliabidart) wrote :

Looks goods!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/webcatalog/management/commands/import_app_install_data.py'
--- src/webcatalog/management/commands/import_app_install_data.py 2012-04-20 06:41:56 +0000
+++ src/webcatalog/management/commands/import_app_install_data.py 2012-04-20 17:03:19 +0000
@@ -55,6 +55,7 @@
55 sources = """55 sources = """
56deb http://archive.ubuntu.com/ubuntu {distroseries} main universe56deb http://archive.ubuntu.com/ubuntu {distroseries} main universe
57deb http://archive.ubuntu.com/ubuntu {distroseries}-updates main universe57deb http://archive.ubuntu.com/ubuntu {distroseries}-updates main universe
58deb http://archive.ubuntu.com/ubuntu {distroseries}-backports main universe
58deb http://archive.canonical.com/ubuntu {distroseries} partner59deb http://archive.canonical.com/ubuntu {distroseries} partner
59deb http://extras.ubuntu.com/ubuntu {distroseries} main60deb http://extras.ubuntu.com/ubuntu {distroseries} main
60"""61"""
6162
=== removed file 'src/webcatalog/templates/webcatalog/recommended_apps.html'
--- src/webcatalog/templates/webcatalog/recommended_apps.html 2012-04-19 21:13:41 +0000
+++ src/webcatalog/templates/webcatalog/recommended_apps.html 1970-01-01 00:00:00 +0000
@@ -1,39 +0,0 @@
1{% extends "webcatalog/base.html" %}
2{% load i18n %}
3{% load webcatalog %}
4
5{% block head_extra %}
6 <link rel="stylesheet" type="text/css" href="{% url wc-combo %}?light/css/reset.css&light/css/styles.css&css/webcatalog.css&light/css/forms.css&css/carousel.css"/>
7 <script src="{% url wc-combo %}?yui/3.4.0/build/yui/yui-min.js&js/carousel.js"></script>
8{% endblock %}
9
10{% block title %}Recommended apps for {{ application.name }}{% endblock %}
11{% block header %}Recommended apps for {{ application.name }}{% endblock %}
12
13{% block content %}
14 {% include "webcatalog/breadcrumbs_snippet.html" %}
15 <div id="sc-mockup">
16 <div class="header">
17 {% rating_summary application.ratings_average 'large' application.ratings_total %}
18 <img class="icon64" src="{{ application.icon_url_or_default }}"/>
19 <h2>{{ application.name }}</h2>
20 <p>{{ application.comment }}</p>
21 </div>
22 </div>
23<div class="featured-widget">
24 {% include "webcatalog/recommended_apps_widget.html" %}
25</div>
26<script type="text/javascript">
27YUI({combine: true, comboBase: '{% url wc-combo %}?', root: 'yui/3.4.0/build/'}).use('uwc-carousel', function(Y) {
28 var caro = new Y.uwc.Carousel({
29 nodeContainer: ".featured-widget .carousel",
30 controlsContainer: ".featured-widget .carousel-controls",
31 containerHeight: 200,
32 containerWidth: 912,
33 autoPlay: false
34 });
35 Y.all('.slide').removeClass('disabled');
36});
37</script>
38{% endblock %}
39
400
=== modified file 'src/webcatalog/tests/test_commands.py'
--- src/webcatalog/tests/test_commands.py 2012-04-19 21:20:32 +0000
+++ src/webcatalog/tests/test_commands.py 2012-04-20 17:03:19 +0000
@@ -341,6 +341,7 @@
341 self.assertEqual("""341 self.assertEqual("""
342deb http://archive.ubuntu.com/ubuntu natty main universe342deb http://archive.ubuntu.com/ubuntu natty main universe
343deb http://archive.ubuntu.com/ubuntu natty-updates main universe343deb http://archive.ubuntu.com/ubuntu natty-updates main universe
344deb http://archive.ubuntu.com/ubuntu natty-backports main universe
344deb http://archive.canonical.com/ubuntu natty partner345deb http://archive.canonical.com/ubuntu natty partner
345deb http://extras.ubuntu.com/ubuntu natty main346deb http://extras.ubuntu.com/ubuntu natty main
346""",347""",
347348
=== modified file 'src/webcatalog/tests/test_views.py'
--- src/webcatalog/tests/test_views.py 2012-04-20 14:38:41 +0000
+++ src/webcatalog/tests/test_views.py 2012-04-20 17:03:19 +0000
@@ -958,16 +958,15 @@
958 self.assertContains(response, 'review_summary1')958 self.assertContains(response, 'review_summary1')
959 self.assertContains(response, 'review_summary2')959 self.assertContains(response, 'review_summary2')
960960
961 def test_renders_reviews_only_for_json_request(self):961 def test_renders_reviews_only_for_ajax_request(self):
962 app = self.factory.make_application()962 app = self.factory.make_application()
963 self.mock_get_reviews.return_value = [963 self.mock_get_reviews.return_value = [
964 self.make_review_details(summary='review_summary1'),964 self.make_review_details(summary='review_summary1'),
965 self.make_review_details(summary='review_summary2'),965 self.make_review_details(summary='review_summary2'),
966 ]966 ]
967967
968 response = self.client.get(reverse('wc-package-reviews',968 response = self.client.get(reverse('wc-package-reviews-ajax',
969 args=[app.distroseries.code_name, app.package_name]),969 args=[app.distroseries.code_name, app.package_name]))
970 HTTP_X_REQUESTED_WITH='XMLHttpRequest')
971970
972 self.assertTemplateNotUsed(971 self.assertTemplateNotUsed(
973 response, 'webcatalog/application_review_list.html')972 response, 'webcatalog/application_review_list.html')
@@ -1015,25 +1014,12 @@
1015 self.assertEqual(1, mock_urlopen.call_count)1014 self.assertEqual(1, mock_urlopen.call_count)
10161015
1017 @patch('webcatalog.utilities.WebServices.get_screenshots_for_package')1016 @patch('webcatalog.utilities.WebServices.get_screenshots_for_package')
1018 def test_renders_screenshots(self, mock_get_screenshots):1017 def test_renders_json(self, mock_get_screenshots):
1019 mock_get_screenshots.return_value = self.expected1018 mock_get_screenshots.return_value = self.expected
10201019
1021 response = self.client.get(reverse('wc-package-screenshots',1020 response = self.client.get(reverse('wc-package-screenshots',
1022 args=[self.app.package_name]))1021 args=[self.app.package_name]))
10231022
1024 self.assertTemplateUsed(
1025 response, 'webcatalog/application_screenshots.html')
1026 for url in self.expected:
1027 self.assertContains(response, url)
1028
1029 @patch('webcatalog.utilities.WebServices.get_screenshots_for_package')
1030 def test_renders_json_for_json_request(self, mock_get_screenshots):
1031 mock_get_screenshots.return_value = self.expected
1032
1033 response = self.client.get(reverse('wc-package-screenshots',
1034 args=[self.app.package_name]),
1035 HTTP_X_REQUESTED_WITH='XMLHttpRequest')
1036
1037 self.assertTemplateNotUsed(1023 self.assertTemplateNotUsed(
1038 response, 'webcatalog/application_review_list.html')1024 response, 'webcatalog/application_review_list.html')
1039 self.assertEqual('application/json', response['content-type'])1025 self.assertEqual('application/json', response['content-type'])
@@ -1089,37 +1075,18 @@
10891075
1090 self.assertEqual(404, response.status_code)1076 self.assertEqual(404, response.status_code)
10911077
1092 def test_renders_recommendations(self):1078 def test_renders_widget_only(self):
1093 app = self.factory.make_application(package_name='firefox')1079 self.factory.make_application(package_name='firefox')
1094 pkgnames = ['nautilus-gksu', 'tribaltrouble2', 'acm']
1095 for pkgname in pkgnames:
1096 self.factory.make_application(package_name=pkgname)
10971080
1098 response = self.client.get(1081 response = self.client.get(
1099 reverse('wc-package-recommends', args=['firefox']))1082 reverse('wc-package-recommends', args=['firefox']))
11001083
1101 self.assertEqual(200, response.status_code)
1102 self.assertTemplateUsed(
1103 response, 'webcatalog/recommended_apps.html')
1104 # Only recommendations for apps that exist in the database are
1105 # included.
1106 self.assertContains(response, '<div class="top-rated-stars">', 3)
1107
1108 def test_renders_widget_only_for_json_requests(self):
1109 app = self.factory.make_application(package_name='firefox')
1110
1111 response = self.client.get(
1112 reverse('wc-package-recommends', args=['firefox']),
1113 HTTP_X_REQUESTED_WITH='XMLHttpRequest')
1114
1115 self.assertTemplateNotUsed(
1116 response, 'webcatalog/recommended_apps.html')
1117 self.assertTemplateUsed(1084 self.assertTemplateUsed(
1118 response, 'webcatalog/recommended_apps_widget.html')1085 response, 'webcatalog/recommended_apps_widget.html')
11191086
1120 def test_handles_multiple_versions_of_app(self):1087 def test_handles_multiple_versions_of_app(self):
1121 # Same app in two distroseries.1088 # Same app in two distroseries.
1122 app = self.factory.make_application(package_name='firefox')1089 self.factory.make_application(package_name='firefox')
1123 app2 = self.factory.make_application(package_name='firefox')1090 app2 = self.factory.make_application(package_name='firefox')
11241091
1125 response = self.client.get(1092 response = self.client.get(
@@ -1128,6 +1095,7 @@
11281095
1129 self.assertEqual(app2, response.context['application'])1096 self.assertEqual(app2, response.context['application'])
11301097
1098
1131class ComboViewTestCase(TestCase):1099class ComboViewTestCase(TestCase):
1132 """Tests for ComboView."""1100 """Tests for ComboView."""
11331101
11341102
=== modified file 'src/webcatalog/urls.py'
--- src/webcatalog/urls.py 2012-04-19 21:55:17 +0000
+++ src/webcatalog/urls.py 2012-04-20 17:03:19 +0000
@@ -46,6 +46,9 @@
46 url(r'^applications/(?P<distro>[-.+\w]+)/(?P<package_name>[-.+:\w]+)/'46 url(r'^applications/(?P<distro>[-.+\w]+)/(?P<package_name>[-.+:\w]+)/'
47 r'reviews/$',47 r'reviews/$',
48 'application_reviews', name="wc-package-reviews"),48 'application_reviews', name="wc-package-reviews"),
49 url(r'^applications/(?P<distro>[-.+\w]+)/(?P<package_name>[-.+:\w]+)/'
50 r'reviews-ajax/$', 'application_reviews', kwargs={'ajax': True},
51 name="wc-package-reviews-ajax"),
49 url(r'^recommends/(?P<package_name>[-.+:\w]+)/$',52 url(r'^recommends/(?P<package_name>[-.+:\w]+)/$',
50 'application_recommends', name="wc-package-recommends"),53 'application_recommends', name="wc-package-recommends"),
51 url(r'^search/$', 'search', name="wc-search"),54 url(r'^search/$', 'search', name="wc-search"),
5255
=== modified file 'src/webcatalog/views.py'
--- src/webcatalog/views.py 2012-04-20 14:39:25 +0000
+++ src/webcatalog/views.py 2012-04-20 17:03:19 +0000
@@ -42,7 +42,6 @@
42 )42 )
43from django.template import RequestContext43from django.template import RequestContext
44from django.utils.translation import ugettext as _44from django.utils.translation import ugettext as _
45from django.views.decorators.vary import vary_on_headers
4645
47from webcatalog.forms import EmailDownloadLinkForm46from webcatalog.forms import EmailDownloadLinkForm
48from webcatalog.models import (47from webcatalog.models import (
@@ -194,8 +193,7 @@
194 request, atts))193 request, atts))
195194
196195
197@vary_on_headers('X_REQUESTED_WITH')196def application_reviews(request, package_name, distro, ajax=False, page=1):
198def application_reviews(request, package_name, distro, page=1):
199 app = get_object_or_404(Application, package_name=package_name,197 app = get_object_or_404(Application, package_name=package_name,
200 distroseries__code_name=distro)198 distroseries__code_name=distro)
201 # XXX michaeln 2011-09-15 bug=851662 Better review language options.199 # XXX michaeln 2011-09-15 bug=851662 Better review language options.
@@ -203,7 +201,7 @@
203 distroseries=distro, page=page)201 distroseries=distro, page=page)
204202
205 context = dict(application=app, reviews=reviews)203 context = dict(application=app, reviews=reviews)
206 if request.is_ajax():204 if ajax:
207 template = 'webcatalog/application_review_list_snippet.html'205 template = 'webcatalog/application_review_list_snippet.html'
208 else:206 else:
209 context['distroseries'] = distro207 context['distroseries'] = distro
@@ -213,7 +211,6 @@
213 return render_to_response(template, RequestContext(request, context))211 return render_to_response(template, RequestContext(request, context))
214212
215213
216@vary_on_headers('X_REQUESTED_WITH')
217def application_recommends(request, package_name):214def application_recommends(request, package_name):
218 app = Application.objects.find_best_or_404(package_name=package_name)215 app = Application.objects.find_best_or_404(package_name=package_name)
219216
@@ -231,27 +228,16 @@
231 break228 break
232229
233 context = dict(application=app, recommended_apps=recommended_apps)230 context = dict(application=app, recommended_apps=recommended_apps)
234 if request.is_ajax():231 template = "webcatalog/recommended_apps_widget.html"
235 template = "webcatalog/recommended_apps_widget.html"
236 else:
237 template = "webcatalog/recommended_apps.html"
238 context['breadcrumbs'] = app.crumbs()
239 return render_to_response(template, RequestContext(request, context))232 return render_to_response(template, RequestContext(request, context))
240233
241234
242@vary_on_headers('X_REQUESTED_WITH')
243def application_screenshots(request, package_name):235def application_screenshots(request, package_name):
244 app = get_object_or_404(Application, package_name=package_name,236 app = get_object_or_404(Application, package_name=package_name,
245 is_latest=True)237 is_latest=True)
246 screenshots = WebServices().get_screenshots_for_package(package_name)238 screenshots = WebServices().get_screenshots_for_package(package_name)
247 if request.is_ajax():239 return HttpResponse(json.dumps(screenshots),
248 return HttpResponse(json.dumps(screenshots),240 mimetype='application/json')
249 mimetype='application/json')
250 else:
251 context = dict(application=app, screenshots=screenshots,
252 breadcrumbs=app.crumbs())
253 return render_to_response('webcatalog/application_screenshots.html',
254 RequestContext(request, context))
255241
256242
257def combo_view(request):243def combo_view(request):

Subscribers

People subscribed via source and target branches