def mkt_breadcrumbs(context, product=None, items=None, crumb_size=40, add_default=True, cls=None): """ Wrapper function for ``breadcrumbs``. **items** list of [(url, label)] to be inserted after Add-on. **product** Adds the App/Add-on name to the end of the trail. If items are specified then the App/Add-on will be linked. **add_default** Prepends trail back to home when True. Default is True. """ if add_default: crumbs = [(reverse('home'), _('Home'))] else: crumbs = [] if product: if items: url_ = product.get_detail_url() else: # The Product is the end of the trail. url_ = None crumbs += [(None, _('Apps')), (url_, product.name)] if items: crumbs.extend(items) if len(crumbs) == 1: crumbs = [] crumbs = [(u, truncate(label, crumb_size)) for (u, label) in crumbs] t = env.get_template('site/helpers/breadcrumbs.html').render( {'breadcrumbs': crumbs, 'cls': cls}) return jinja2.Markup(t)
def test_suggestions(self): response = self.client.get(self.url, data={"lang": "en-US"}) parsed = json.loads(response.content) eq_(parsed[0], "") self.assertSetEqual(parsed[1], [unicode(self.app1.name), unicode(self.app2.name)]) self.assertSetEqual(parsed[2], [unicode(self.app1.description), unicode(truncate(self.app2.description))]) self.assertSetEqual(parsed[3], [absolutify(self.app1.get_detail_url()), absolutify(self.app2.get_detail_url())]) self.assertSetEqual(parsed[4], [self.app1.get_icon_url(64), self.app2.get_icon_url(64)])
def get(self, request, *args, **kwargs): results, query = self.search(request) names = [] descs = [] urls = [] icons = [] for base_data in results.data['objects']: names.append(base_data['name']) descs.append(truncate(base_data['description'])) urls.append(base_data['absolute_url']) icons.append(base_data['icon']) # This results a list. Usually this is a bad idea, but we don't return # any user-specific data, it's fully anonymous, so we're fine. return HttpResponse(json.dumps([query, names, descs, urls, icons]), content_type='application/x-suggestions+json')
def test_suggestions(self): response = self.client.get(self.url, data={'lang': 'en-US'}) parsed = json.loads(response.content) eq_(parsed[0], '') self.assertSetEqual(parsed[1], [unicode(self.app1.name), unicode(self.app2.name)]) self.assertSetEqual(parsed[2], [ unicode(self.app1.description), unicode(truncate(self.app2.description)) ]) self.assertSetEqual(parsed[3], [ absolutify(self.app1.get_detail_url()), absolutify(self.app2.get_detail_url()) ]) self.assertSetEqual( parsed[4], [self.app1.get_icon_url(64), self.app2.get_icon_url(64)])
def impala_breadcrumbs(context, items=list(), add_default=True, crumb_size=40): """ show a list of breadcrumbs. If url is None, it won't be a link. Accepts: [(url, label)] """ if add_default: crumbs = [(urlresolvers.reverse('home'), _('Apps Marketplace'))] else: crumbs = [] # add user-defined breadcrumbs if items: try: crumbs += items except TypeError: crumbs.append(items) crumbs = [(url, truncate(label, crumb_size)) for (url, label) in crumbs] c = {'breadcrumbs': crumbs, 'has_home': add_default} t = env.get_template('amo/impala/breadcrumbs.html').render(c) return jinja2.Markup(t)
def impala_breadcrumbs(context, items=list(), add_default=True, crumb_size=40): """ show a list of breadcrumbs. If url is None, it won't be a link. Accepts: [(url, label)] """ if add_default: crumbs = [(reverse('home'), _('Apps Marketplace'))] else: crumbs = [] # add user-defined breadcrumbs if items: try: crumbs += items except TypeError: crumbs.append(items) crumbs = [(url, truncate(label, crumb_size)) for (url, label) in crumbs] c = {'breadcrumbs': crumbs, 'has_home': add_default} t = env.get_template('amo/impala/breadcrumbs.html').render(c) return jinja2.Markup(t)
def truncate_response(obj): return truncate(obj.response, 50)