Skip to content

Commit

Permalink
Beta add-ons aren't add-ons! (bug 663248)
Browse files Browse the repository at this point in the history
  • Loading branch information
gkoberger committed Jun 16, 2011
1 parent 889df6c commit 24adc31
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 4 deletions.
8 changes: 5 additions & 3 deletions apps/addons/models.py
Expand Up @@ -468,14 +468,16 @@ def update_version(self):

@property
def latest_version(self):
"""Returns the absolutely newest version; status doesn't matter. """
"""Returns the absolutely newest non-beta version. """
if self.type == amo.ADDON_PERSONA:
return
if not self._latest_version:
try:
self._latest_version = self.versions.latest()
v = (self.versions.exclude(files__status=amo.STATUS_BETA)
.latest())
self._latest_version = v
except Version.DoesNotExist:
pass
self._latest_version = None

return self._latest_version

Expand Down
11 changes: 11 additions & 0 deletions apps/addons/tests/test_models.py
Expand Up @@ -165,6 +165,17 @@ def test_latest_version_no_version(self):
a = Addon.objects.get(pk=3723)
eq_(a.latest_version, None)

def test_latest_version_ignore_beta(self):
a = Addon.objects.get(pk=3615)

v1 = Version.objects.create(addon=a, version='1.0')
f1 = File.objects.create(version=v1)
eq_(a.latest_version.id, v1.id)

v2 = Version.objects.create(addon=a, version='2.0beta')
f2 = File.objects.create(version=v2, status=amo.STATUS_BETA)
eq_(a.latest_version.id, v1.id) # Still should be f1

def test_current_beta_version(self):
a = Addon.objects.get(pk=5299)
eq_(a.current_beta_version.id, 50000)
Expand Down
18 changes: 18 additions & 0 deletions apps/editors/tests/test_views.py
Expand Up @@ -1498,6 +1498,24 @@ def test_no_items(self):
div = doc('#review-files-header').next().find('td').eq(1).find('div')
eq_(div.text(), "This version has not been reviewed.")

def test_hide_beta(self):
version = self.addon.latest_version
file = version.files.all()[0]
version.pk = None
version.version = '0.3beta'
version.save()

doc = pq(self.client.get(self.url).content)
eq_(doc('#review-files tr.listing-header').length, 2)

file.pk = None
file.status = amo.STATUS_BETA
file.version = version
file.save()

doc = pq(self.client.get(self.url).content)
eq_(doc('#review-files tr.listing-header').length, 1)

def test_listing_link(self):
response = self.client.get(self.url)
text = pq(response.content).find('#actions-addon li a').eq(0).text()
Expand Down
5 changes: 4 additions & 1 deletion apps/editors/views.py
Expand Up @@ -430,9 +430,12 @@ def review(request, addon):
# We only allow the user to check/uncheck files for "pending"
allow_unchecking_files = form.helper.review_type == "pending"

versions = (Version.objects.filter(addon=addon).order_by('-created')
versions = (Version.objects.filter(addon=addon)
.exclude(files__status=amo.STATUS_BETA)
.order_by('-created')
.transform(Version.transformer_activity)
.transform(Version.transformer))

pager = amo.utils.paginate(request, versions, 5)

num_pages = pager.paginator.num_pages
Expand Down

0 comments on commit 24adc31

Please sign in to comment.