def _get_sorts(request, sort): items = [] url = request.get_full_path() sorts = forms.sort_by item = MenuItem() (item.text, item.url) = (_('Keyword Match'), urlparams(url, sort=None)) if not sort: item.selected = True items.append(item) for key, val in sorts: if key == '': continue item = MenuItem() (item.text, item.url) = (val, urlparams(url, sort=key, page=None)) if sort == key: item.selected = True items.append(item) return items
def _get_sorts(request, sort): items = [] url = request.get_full_path() sorts = forms.sort_by item = MenuItem() (item.text, item.url) = (_('Keyword Match'), urlparams(url, sort=None)) if not sort: item.selected = True items.append(item) for key, val in sorts: # TODO(davedash): Remove 'name' altogether if nobody complains. if key == '' or key == 'name': continue item = MenuItem() (item.text, item.url) = (val, urlparams(url, sort=key, page=None)) if sort == key: item.selected = True items.append(item) return items
def _get_tags(request, tags, selected): items = [] url = request.get_full_path() for tag in tags: item = MenuItem() (item.text, item.url) = (tag.tag_text.lower(), urlparams(url, tag=tag.tag_text.encode('utf8').lower(), page=None)) if tag.tag_text.lower() == selected: item.selected = True items.append(item) return items
def _get_categories(request, categories, addon_type=None, category=None): items = [] url = request.get_full_path() i = MenuItem() (i.text, i.url) = (_('All'), urlparams(url, atype=None, cat=None, page=None)) if not addon_type and not category: i.selected = True items.append(i) # Bucket the categories as addon_types so we can display them in a # hierarchy. bucket = defaultdict(list) for cat in categories: item = MenuItem() (item.text, item.url) = (cat.name, urlparams(url, atype=None, page=None, cat="%d,%d" % (cat.type, cat.id))) if category == cat.id: item.selected = True bucket[cat.type].append(item) for key in sorted(bucket): children = bucket[key] item = MenuItem() item.children = children (item.text, item.url) = (amo.ADDON_TYPES[key], urlparams(url, atype=key, cat=None, page=None)) if not category and addon_type == key: item.selected = True items.append(item) return items
def _get_platforms(request, platforms, selected=None): items = [] url = request.get_full_path() if amo.PLATFORM_ALL.id in platforms: platforms = amo.PLATFORMS.keys() for platform in platforms: if platform == amo.PLATFORM_ALL.id: continue item = MenuItem() p = amo.PLATFORMS[platform] (item.text, item.url) = (p.name, urlparams(url, pid=(p.id or None), page=None)) if p.id == selected: item.selected = True items.append(item) return items
def _get_activities(request, action): url = request.get_full_path() choices = (None, 'updates', 'status', 'collections', 'reviews') text = {None: _('All Activity'), 'updates': _('Add-on Updates'), 'status': _('Add-on Status'), 'collections': _('User Collections'), 'reviews': _('User Reviews'), } items = [] for c in choices: i = MenuItem() i.text = text[c] i.url, i.selected = urlparams(url, page=None, action=c), (action == c) items.append(i) return items
def _get_addons(request, addons, addon_id): """Create a list of ``MenuItem``s for the activity feed.""" items = [] a = MenuItem() a.selected = (not addon_id) (a.text, a.url) = (_('All My Add-ons'), reverse('devhub.feed_all')) items.append(a) for addon in addons: item = MenuItem() try: item.selected = (addon_id and addon.id == int(addon_id)) except ValueError: pass # We won't get here... EVER url = reverse('devhub.feed', args=[addon.slug]) item.text, item.url = addon.name, url items.append(item) return items
def _get_sorts(request, sort): items = [] url = request.get_full_path() item = MenuItem() (item.text, item.url) = (_('Keyword Match'), urlparams(url, sort=None)) if not sort: item.selected = True items.append(item) for key, val in sort_by: if key == '': continue item = MenuItem() (item.text, item.url) = (val, urlparams(url, sort=key, page=None)) if sort == key: item.selected = True items.append(item) return items
def _get_versions(request, versions, version): compats = [] url = request.get_full_path() c = MenuItem() (c.text, c.url) = (_('All Versions'), urlparams(url, lver=None, page=None)) if not version or version == 'any': c.selected = True compats.append(c) seen = {} exclude = request.APP.__dict__.get('exclude_versions', []) versions.sort(reverse=True) for v in versions: # v is a version_int so we can get the major and minor: v = dict_from_int(v) if v['minor1'] == 99: text = '%s.*' % v['major'] v_float = float('%s.99' % v['major']) else: text = '%s.%s' % (v['major'], v['minor1']) v_float = float(text) if seen.get(text): continue seen[text] = 1 if v_float < request.APP.min_display_version or v_float in exclude: continue c = MenuItem() c.text = text c.url = urlparams(url, lver=c.text, page=None) if c.text == version: c.selected = True compats.append(c) return compats
def _get_addons(request, addons, addon_id, action): """Create a list of ``MenuItem``s for the activity feed.""" items = [] a = MenuItem() a.selected = (not addon_id) (a.text, a.url) = (_('All My Add-ons'), reverse('devhub.feed_all')) if action: a.url += '?action=' + action items.append(a) for addon in addons: item = MenuItem() try: item.selected = (addon_id and addon.id == int(addon_id)) except ValueError: pass # We won't get here... EVER url = reverse('devhub.feed', args=[addon.slug]) if action: url += '?action=' + action item.text, item.url = addon.name, url items.append(item) return items