Skip to content

Commit

Permalink
unreviewed styling for beta buttons (bug 565136)
Browse files Browse the repository at this point in the history
  • Loading branch information
jbalogh committed Jun 23, 2010
1 parent 8502b32 commit 01269f9
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 4 deletions.
10 changes: 8 additions & 2 deletions apps/addons/buttons.py
Expand Up @@ -75,10 +75,14 @@ def __init__(self, addon, app, lang, version=None, show_eula=True,
self.size = size
self.detailed = detailed

self.is_beta = self.version and self.version.is_beta
version_unreviewed = (self.version and self.version.is_unreviewed)
self.unreviewed = addon.is_unreviewed() or version_unreviewed
self.unreviewed = (addon.is_unreviewed() or version_unreviewed or
self.is_beta)
self.self_hosted = addon.status == amo.STATUS_LISTED
self.featured = (not self.unreviewed and not self.self_hosted
self.featured = (not self.unreviewed
and not self.self_hosted
and not self.is_beta
and addon.is_featured(app, lang)
or addon.is_category_featured(app, lang))
self.is_persona = addon.type == amo.ADDON_PERSONA
Expand Down Expand Up @@ -110,6 +114,8 @@ def prepare(self):
self.install_class.append('accept')
if self.size:
self.button_class.append(self.size)
if self.is_beta:
self.install_class.append('beta')

def attrs(self):
rv = {}
Expand Down
12 changes: 12 additions & 0 deletions apps/addons/tests/test_buttons.py
Expand Up @@ -26,6 +26,7 @@ def setup(self):

self.version = v = Mock()
v.is_unreviewed = False
v.is_beta = False
self.addon.current_version = v

self.file = self.get_file(amo.PLATFORM_ALL)
Expand Down Expand Up @@ -224,6 +225,17 @@ def test_unreviewed(self):
eq_(b.install_class, ['unreviewed'])
eq_(b.install_text, 'Not Reviewed')

def test_beta(self):
# Throw featured in there to make sure it's ignored.
self.addon.is_featured.return_value = True
self.version.is_beta = True
b = self.get_button()
assert not b.featured
assert b.is_beta
eq_(b.button_class, ['download', 'caution'])
eq_(b.install_class, ['unreviewed', 'beta'])
eq_(b.install_text, 'Not Reviewed')

def test_self_hosted(self):
# Throw featured in there to make sure it's ignored.
self.addon.is_featured.return_value = True
Expand Down
5 changes: 5 additions & 0 deletions apps/versions/models.py
Expand Up @@ -59,6 +59,11 @@ def is_unreviewed(self):
return filter(lambda f: f.status == amo.STATUS_UNREVIEWED,
self.all_files)

@amo.cached_property
def is_beta(self):
return filter(lambda f: f.status == amo.STATUS_BETA,
self.all_files)

@classmethod
def _compat_map(cls, avs):
apps = {}
Expand Down
5 changes: 3 additions & 2 deletions media/js/zamboni/buttons.js
Expand Up @@ -201,13 +201,14 @@ var installButton = function() {

// What kind of button are we dealing with?
var selfhosted = $this.hasClass('selfhosted'),
unreviewed = $this.hasClass('unreviewed'),
beta = $this.hasClass('beta');
unreviewed = $this.hasClass('unreviewed') && !beta,
persona = $this.hasClass('persona'),
contrib = $this.hasClass('contrib'),
search = $this.hasattr('data-search'),
eula = $this.hasClass('eula');

if (unreviewed && !(selfhosted || eula || contrib)) {
if (unreviewed && !(selfhosted || eula || contrib || beta)) {
$button.addPopup(message('unreviewed'));
}

Expand Down

0 comments on commit 01269f9

Please sign in to comment.