add impala category landing placeholder
This commit is contained in:
Родитель
79df0a7ae1
Коммит
fdd5a90854
|
@ -408,7 +408,7 @@ def attrs(ctx, *args, **kw):
|
|||
def side_nav(context, addon_type):
|
||||
app = context['request'].APP.id
|
||||
return caching.cached(lambda: _side_nav(context, addon_type),
|
||||
'side-nav-%s' % app)
|
||||
'side-nav-%s-%s' % (app, addon_type))
|
||||
|
||||
|
||||
def _side_nav(context, addon_type):
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
<h2>{{ _('Categories') }}</h2>
|
||||
<ul>
|
||||
{% for cat in categories %}
|
||||
<li><a href="{{ cat.get_url_path() }}">{{ cat.name }}</a></li>
|
||||
<li id="c-{{ cat.id }}"><a href="{{ cat.get_url_path() }}">{{ cat.name }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</nav>
|
||||
|
|
|
@ -0,0 +1,47 @@
|
|||
{% extends "impala/base.html" %}
|
||||
|
||||
{% block title %}
|
||||
{{ page_title(category.name if category else _('Extensions')) }}
|
||||
{% endblock %}
|
||||
|
||||
{% block extrahead %}
|
||||
{% if category %}
|
||||
<style>
|
||||
#c-{{ category.id }} a {
|
||||
background: #ecf5fe;
|
||||
color: #333;
|
||||
font-weight: bold;
|
||||
}
|
||||
#c-{{ category.id }} a:after {
|
||||
color: inherit;
|
||||
}
|
||||
</style>
|
||||
<link rel="canonical" href="{{ category.get_url_path() }}">
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
{% block rss_feed %}
|
||||
{% with sort = {'featured': 'featured',
|
||||
'created': 'newest',
|
||||
'popular': 'popular',
|
||||
'rating': 'averagerating'}[sorting] %}
|
||||
{% if not sort %}
|
||||
{% set sort = 'updated' %}
|
||||
{% endif %}
|
||||
|
||||
{% if category %}
|
||||
{% set feed = url('browse.extensions.rss', category.slug) %}
|
||||
{% else %}
|
||||
{% set feed = url('browse.extensions.rss') %}
|
||||
{% endif %}
|
||||
<link rel="alternate" type="application/rss+xml" title="RSS"
|
||||
href="{{ feed }}?sort={{ sort }}">
|
||||
{% endwith %}
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<section class="secondary">
|
||||
{{ side_nav(amo.ADDON_EXTENSION) }}
|
||||
</section>
|
||||
{% block primary %}{% endblock %}
|
||||
{% endblock %}
|
|
@ -0,0 +1,19 @@
|
|||
{% extends "browse/impala/base_listing.html" %}
|
||||
|
||||
{% set addon_sets = filter.all() %}
|
||||
|
||||
{% set more_links = {
|
||||
'created': _('View All Recently Added'),
|
||||
'users': _('View All Most Popular'),
|
||||
'rating': _('View All Top Rated'),
|
||||
} %}
|
||||
|
||||
{% block bodyclass %}category-landing{% endblock %}
|
||||
|
||||
{% block primary %}
|
||||
<section class="primary">
|
||||
<div class="island c">
|
||||
<h2>{{ category.name }}</h2>
|
||||
</div>
|
||||
</section>
|
||||
{% endblock %}
|
|
@ -1,13 +1,9 @@
|
|||
{% extends "impala/base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<section class="secondary">
|
||||
{{ side_nav(amo.ADDON_EXTENSION) }}
|
||||
</section>
|
||||
|
||||
{% extends "browse/impala/base_listing.html" %}
|
||||
|
||||
{% block primary %}
|
||||
<section class="primary">
|
||||
<div class="island c">
|
||||
<h2>{{ _('Extensions') }}</h2>
|
||||
<h2>{{ category.name if category else _('Extensions') }}</h2>
|
||||
</div>
|
||||
</section>
|
||||
{% endblock %}
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
from django.conf.urls.defaults import patterns, url
|
||||
from browse.feeds import CategoriesRss, SearchToolsRss
|
||||
from django.shortcuts import redirect
|
||||
|
||||
from amo.urlresolvers import reverse
|
||||
from amo.utils import urlparams
|
||||
from browse.feeds import CategoriesRss, FeaturedRss, SearchToolsRss
|
||||
from . import views
|
||||
from browse.feeds import FeaturedRss
|
||||
|
||||
|
||||
urlpatterns = patterns('',
|
||||
|
@ -9,6 +12,10 @@ urlpatterns = patterns('',
|
|||
name='browse.language-tools'),
|
||||
|
||||
url('^featured$', views.featured, name='browse.featured'),
|
||||
# TODO: When we launch the impala pages, add a redirect for this.
|
||||
url('^i/featured$',
|
||||
lambda r: redirect(reverse('browse.i_extensions') + '?sort=featured',
|
||||
permanent=True)),
|
||||
|
||||
url('^themes/(?P<category>[^/]+)?$', views.themes,
|
||||
name='browse.themes'),
|
||||
|
|
|
@ -144,7 +144,7 @@ def themes(request, category=None):
|
|||
'search_cat': '%s,0' % amo.ADDON_THEME})
|
||||
|
||||
|
||||
def _extensions(request, category=None, template=None):
|
||||
def _extensions(request, category=None, is_impala=False, template=None):
|
||||
TYPE = amo.ADDON_EXTENSION
|
||||
|
||||
if category is not None:
|
||||
|
@ -153,7 +153,10 @@ def _extensions(request, category=None, template=None):
|
|||
|
||||
if ('sort' not in request.GET and not request.MOBILE
|
||||
and category and category.count > 4):
|
||||
return category_landing(request, category)
|
||||
if is_impala:
|
||||
return impala_category_landing(request, category)
|
||||
else:
|
||||
return category_landing(request, category)
|
||||
|
||||
addons, filter = addon_listing(request, [TYPE])
|
||||
|
||||
|
@ -169,12 +172,13 @@ def _extensions(request, category=None, template=None):
|
|||
|
||||
|
||||
@mobile_template('browse/{mobile/}extensions.html')
|
||||
def extensions(request, category=None, template=None):
|
||||
return _extensions(request, category, template)
|
||||
def extensions(request, category=None, is_impala=False, template=None):
|
||||
return _extensions(request, category, is_impala, template)
|
||||
|
||||
|
||||
def impala_extensions(request, category=None, template=None):
|
||||
return _extensions(request, category, 'browse/impala/extensions.html')
|
||||
def impala_extensions(request, category=None, is_impala=True, template=None):
|
||||
return _extensions(request, category, is_impala,
|
||||
'browse/impala/extensions.html')
|
||||
|
||||
|
||||
@mobile_template('browse/{mobile/}extensions.html')
|
||||
|
@ -227,16 +231,26 @@ class CategoryLandingFilter(BaseFilter):
|
|||
return manual_order(filter, self.ids, pk_name='addons.id')
|
||||
|
||||
|
||||
def category_landing(request, category):
|
||||
def _category_landing(request, category,
|
||||
template='browse/category_landing.html'):
|
||||
base = (Addon.objects.listed(request.APP).exclude(type=amo.ADDON_PERSONA)
|
||||
.filter(categories__id=category.id))
|
||||
filter = CategoryLandingFilter(request, base, category,
|
||||
key='browse', default='featured')
|
||||
return jingo.render(request, 'browse/category_landing.html',
|
||||
return jingo.render(request, template,
|
||||
{'category': category, 'filter': filter,
|
||||
'search_cat': '%s,0' % category.type})
|
||||
|
||||
|
||||
def category_landing(request, category):
|
||||
return _category_landing(request, category)
|
||||
|
||||
|
||||
def impala_category_landing(request, category):
|
||||
return _category_landing(request, category,
|
||||
'browse/impala/category_landing.html')
|
||||
|
||||
|
||||
def es_category_landing(request, category):
|
||||
# TODO: Match CategoryLandingFilter.
|
||||
qs = (Addon.search().filter(type=TYPE, app=request.APP.id,
|
||||
|
|
|
@ -91,6 +91,7 @@ a {
|
|||
color: #333;
|
||||
font-weight: bold;
|
||||
}
|
||||
a.selected,
|
||||
a:hover {
|
||||
background: #ECF5FE;
|
||||
}
|
||||
|
@ -111,7 +112,6 @@ a {
|
|||
a:focus:after,
|
||||
a.selected:after {
|
||||
color: inherit;
|
||||
display: inline;
|
||||
}
|
||||
}
|
||||
h2 {
|
||||
|
@ -215,4 +215,4 @@ a.more-info {
|
|||
height: 32px;
|
||||
width: 750px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче