Skip to content

Commit 24adc31

Browse files
committed
Beta add-ons aren't add-ons! (bug 663248)
1 parent 889df6c commit 24adc31

File tree

4 files changed

+38
-4
lines changed

4 files changed

+38
-4
lines changed

apps/addons/models.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -468,14 +468,16 @@ def update_version(self):
468468

469469
@property
470470
def latest_version(self):
471-
"""Returns the absolutely newest version; status doesn't matter. """
471+
"""Returns the absolutely newest non-beta version. """
472472
if self.type == amo.ADDON_PERSONA:
473473
return
474474
if not self._latest_version:
475475
try:
476-
self._latest_version = self.versions.latest()
476+
v = (self.versions.exclude(files__status=amo.STATUS_BETA)
477+
.latest())
478+
self._latest_version = v
477479
except Version.DoesNotExist:
478-
pass
480+
self._latest_version = None
479481

480482
return self._latest_version
481483

apps/addons/tests/test_models.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,17 @@ def test_latest_version_no_version(self):
165165
a = Addon.objects.get(pk=3723)
166166
eq_(a.latest_version, None)
167167

168+
def test_latest_version_ignore_beta(self):
169+
a = Addon.objects.get(pk=3615)
170+
171+
v1 = Version.objects.create(addon=a, version='1.0')
172+
f1 = File.objects.create(version=v1)
173+
eq_(a.latest_version.id, v1.id)
174+
175+
v2 = Version.objects.create(addon=a, version='2.0beta')
176+
f2 = File.objects.create(version=v2, status=amo.STATUS_BETA)
177+
eq_(a.latest_version.id, v1.id) # Still should be f1
178+
168179
def test_current_beta_version(self):
169180
a = Addon.objects.get(pk=5299)
170181
eq_(a.current_beta_version.id, 50000)

apps/editors/tests/test_views.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1498,6 +1498,24 @@ def test_no_items(self):
14981498
div = doc('#review-files-header').next().find('td').eq(1).find('div')
14991499
eq_(div.text(), "This version has not been reviewed.")
15001500

1501+
def test_hide_beta(self):
1502+
version = self.addon.latest_version
1503+
file = version.files.all()[0]
1504+
version.pk = None
1505+
version.version = '0.3beta'
1506+
version.save()
1507+
1508+
doc = pq(self.client.get(self.url).content)
1509+
eq_(doc('#review-files tr.listing-header').length, 2)
1510+
1511+
file.pk = None
1512+
file.status = amo.STATUS_BETA
1513+
file.version = version
1514+
file.save()
1515+
1516+
doc = pq(self.client.get(self.url).content)
1517+
eq_(doc('#review-files tr.listing-header').length, 1)
1518+
15011519
def test_listing_link(self):
15021520
response = self.client.get(self.url)
15031521
text = pq(response.content).find('#actions-addon li a').eq(0).text()

apps/editors/views.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -430,9 +430,12 @@ def review(request, addon):
430430
# We only allow the user to check/uncheck files for "pending"
431431
allow_unchecking_files = form.helper.review_type == "pending"
432432

433-
versions = (Version.objects.filter(addon=addon).order_by('-created')
433+
versions = (Version.objects.filter(addon=addon)
434+
.exclude(files__status=amo.STATUS_BETA)
435+
.order_by('-created')
434436
.transform(Version.transformer_activity)
435437
.transform(Version.transformer))
438+
436439
pager = amo.utils.paginate(request, versions, 5)
437440

438441
num_pages = pager.paginator.num_pages

0 commit comments

Comments
 (0)